In questo breve tutorial veremo una coppia di programmi utili a copiare programmi, sia da cassetta a cassetta, sia da cassetta a disco. I due programmi necessari sono scaricabili usando il link a fondo pagina.
I due programmi in questione sono di dimensione molto ridotta e funzionano su VIC-20 di qualsiasi configurazione di memoria. Essi vanno caricati con
LOAD”nome”,8,1
per evitare che vengano rilocati in memoria e si lanciano entrambi con il comando:
SYS 673
Di seguito la procedura da seguire per copiare:
- da cassetta ad altra cassetta
- da cassetta a disco
Copia da cassetta a cassetta
- Caricare il programma CTAPE673 con LOAD”CTAPE673″,8,1 in modo da evitarne la rilocazione in memoria.
- Inserire la cassetta con il programma da copiare, già posizionata al punto giusto
- SYS 673 – dovrebbe apparire “PRESS PLAY ON TAPE”.
NB – Se lo schermo si “sbianca” come se avessi premuto RUN/STOP e RESTORE insieme, evidentemente hai caricato il programma CTAPE673 in modo sbagliato, ossia dimenticando l’opzione ,1 finale (detta anch secondary address) nella istruzione LOAD. - Premere PLAY sul registratore e attendere il caricamento. A fine caricamento lo schermo diventerà nero, segno che è il momento di cambiare cassetta.
- Premere STOP ed EJECT sul registratore, inserire poi la cassetta vuota su cui andremo a registrare la copia.
- Premere RETURN. Lo schermo ritornerà del colore normale (bianco e azzurro) e apparirà la scritta “PRESS RECORD & PLAY ON TAPE”
- Premere REC e PLAY sul registratore e attendere la fine della copia.
Copia da cassetta a disco
Una premessa importante: La cassetta ha una sua intrinseca sequenzialità, cioè in caso di programmi strutturati in più parti che vanno caricate ed eseguite in sequenza, chi le ha sviluppate non ha avuto bisogno di specificare il nome del file da caricare nelle varie operazioni LOAD: per default viene caricato il programma seguente trovato sul nastro.
Quando vado a trasferire un programma strutturato in più parti da nastro a disco posso incontrare difficoltà, perché il disco per sua natura non ha accesso sequenziale ai programmi ed è quindi necessario specificare il nome del file da caricare volta per volta. Con la procedura che illustro qui sarà facile trasferire i programmi da cassetta a disco ma poi, per fare in modo che le varie parti si concatenino correttamente è possibile che occorra fare modifiche che vanno escogitate caso per caso (consiglio di rivedere il tutorial “Trasferire da cassetta disco i programmi multiload“)
Ecco dunque la procedura da seguire per trasferire da cassetta a disco:
- Caricare il programma CDISK673 con LOAD”CDISK673″,8,1 in modo da evitarne la rilocazione in memoria.
- Inserire la cassetta con il programma da copiare, già posizionata al punto giusto
- SYS 673 – apparirà “PRESS PLAY ON TAPE”
- Premere PLAY sul registratore e attendere il caricamento. A fine caricamento lo schermo diventa nero, segno che possiamo ora salvare il file caricato sul disco.
- Inserire nel disk drive (device n.8) il floppy su cui andremo a registrare la copia.
- Premere RETURN. Lo schermo ritornerà del colore normale (bianco e azzurro), il floppy inizierà girare: attendere semplicemente la fine della copia.
Copiare su emulatori
La procedura vista funziona tranquillamente anche sugli emulatori VICE, posto che si vada a collegare l’immagine della cassetta di origine .tap con il comando apposito (solitamente Alt-T). L’emulatore ha, sotto File->Datassette Control i comandi per avviare il nastro, fermarlo, premere REC, eccetera.
Se vorremo salvare il file su una “cassetta” virtuale vuota sarà sufficiente collegarla al momento del cambio (schermo nero) usando ancora Alt-T e premendo il pulsante “New TAP Image – Create Image“. Se vorremo copiare su un dischetto virtuale .d64 useremo il comando abituale (solitamente Alt-8) per collegarlo, anche qui c’è un pulsante per creare una immagine di dischetto vuoto.
COPY673 commentato
Per i più smaliziati, ecco il programma in assembler con qualche commento. Esso potete vederlo facilmente usando VICMON oppure il monitor dell’emulatore, considerando il programma stesso si carica in memoria dalla locazione 673 (esadecimali: 02A1 – 02FC)
02a1 A9 01 LDA #$01 02a3 AA TAX 02a4 A8 TAY 02a5 20 BA FF JSR $FFBA 'SETLFS 02a8 A9 00 LDA #$00 02aa 20 BD FF JSR $FFBD 'SET FILENAME 02ad 20 D5 FF JSR $FFD5 'LOAD 02b0 A9 0D LDA #$0D 02b2 20 D2 FF JSR $FFD2 'OUTPUT CHAR TO CHANNEL 02b5 A9 08 LDA #$08 02b7 8D 0F 90 STA $900F 'SCHERMO NERO 02ba A9 0F LDA #$0F 02bc C5 C5 CMP $C5 02be D0 FC BNE $02BC 'ATTENDI PRESSIONE RETURN 02c0 A9 1B LDA #$1B 02c2 8D 0F 90 STA $900F 'SCHERMO NORMALE 02c5 A9 00 LDA #$00 02c7 85 C6 STA $C6 'SVUOTA BUFFER TASTIERA 02c9 A0 01 LDY #$01 02cb A2 01 LDX #$01 02cd A9 01 LDA #$01 02cf 20 BA FF JSR $FFBA 'SETLFS 02d2 A2 80 LDX #$80 02d4 BD 41 03 LDA $0341,X 02d7 9D 00 02 STA $0200,X 02da CA DEX 02db 10 F7 BPL $02D4 02dd A9 80 LDA #$80 02df A2 00 LDX #$00 02e1 A0 02 LDY #$02 02e3 20 BD FF JSR $FFBD 'SET FILENAME 02e6 AD 3D 03 LDA $033D 02e9 85 00 STA $00 02eb AD 3E 03 LDA $033E 02ee 85 01 STA $01 02f0 A9 00 LDA #$00 02f2 AE 3F 03 LDX $033F 02f5 AC 40 03 LDY $0340 02f8 20 D8 FF JSR $FFD8 'SAVE
Download
Scarica il dischetto d64 con i due programmi CTAPE673 e CDISK673