Codice per Commodore 64
Lunedì 5 Marzo, 2007Ho recuperato il mio blocchetto del Commodore 64 per verificare il porting dell'emultatore FC64 proposto quache Post fa! Purtroppo alcune funzionalità della tastiera non sono proprio riuscito a farle funzionare, quindi non ho potuto provare e inserire alcuni listati interessanti (vecchi ricordi nostalgici). Se ricordate, il Commodore 64 aveva combinazioni speciali usate durante la scrittura del codice BASIC, come il simbolo della R in negativo (reverse) o il cuoricino, sempre in negativo, per pulire lo schermo. Se qualcuno trova il modo di farlo... Tuttavia alcune limitazioni possono essere aggirate ricorrendo al comando BASIC CHR$. Ad esempio per pulire lo schermo basta usare PRINT CHR$(147), che corrisponde al cuoricino in negativo!
Altri Tricks, come bloccare e sbloccare la combinazione RUN/STOP RESTORE sono anch'essi fuori dalla mia portata... per ora.
Questa è la lista del codice che ho provate e funziona:
-
POKE 53280,4
-
SYS 64766
INPUT CON LE VIRGOLETTE
Mette le doppie virgolette dopo la richiesta da tastiera
-
100 POKE 198,1:POKE 631,34
-
110 INPUT A$
LINEA VERTICALE CON LE POKE
Crea una linea animata verticale
-
100 PRINT CHR$(147)
-
110 FOR R = 1 TO 24
-
120 POKE 55296+33+40*R,5
-
130 POKE 1024+33+40*R,71
-
140 NEXT R
RESTRINGIMENTO DELLO SCHERMO
Accesso diretto al VIC Video, permette di restringere orizzonatalmente e verticalmente l'area visibile del Commodore 64. Usato per gli scrool orizzontale e verticale.
-
POKE 53270,32
-
POKE 53265,23
BLOCCARE IL COMANDO LIST
Scrivere un qualsiasi listato e digitate il seguente codice. Provate ora a digitare LIST e vedrete che il listato non è più visualizzabile, nonostante al RUN il codice funzioni uguale.
-
POKE 775,200
CURSORE LAMPEGGIANTE
-
POKE 788,55
SOSTITUIRE LA SCRITTA READY. CON EDDIE!
Le prime 3 righe copiano il Kernel dalla ROM alla RAM, considerate che ci mette un po', almeno un minutino a copiare il Kernel, ma le vale la pena. Le ultime sostituiscono la scritta "READY." con "EDDIE!". Ricordatevi alla fine di digitare POKE 1,54 - che sposta il puntamento al Kernel dalla ROM alla RAM. Se volete provare con altri caratteri le volte successive basta eseguire le righe di codice dalla 40 in poi, quindi usate RUN 40
-
10 FOR J = 40960 TO 49151
-
20 POKE J, PEEK(J)
-
30 NEXT J
-
40 FOR J = 41848 TO 41853
-
50 READ L$
-
60 POKE J, ASC(L$)
-
70 NEXT J
-
80 DATA E,D,D,I,E,!
-
-
POKE 1,54
SE ACCIDENTALMENTE DIGITATE "NEW"
Questa riga permette di recuperare un listato in caso si digiti accidentalmente il comando NEW
-
POKE 2050,1:SYS 42291:POKE 45,PEEK(34):POKE 46,PEEK(35):CLR
Ho provato anche codice Assembly, inserendolo come DATA e altre POKE. Tutto sembra funzionare.
Di esempi e codicilli ne ho davvero molti, quindi mi fermo qui - per ora. Spero che quanto prima venga implementato nell'emulatore anche il SID, così da far rivivere tanti effetti e suoni del vecchio - ma sempre meraviglioso - Commodore 64! Anche un Assembly non sarebbe male...






















Claus Wahlers ha detto:
Thanks for the nice article, and sorry for posting in English, my Italian is a bit rusty
I am working on a better frontend for FC64, including debugger, hex editor, basic editor and assembler/disassembler. Actually FC64 already includes full debugger, assembler/disassembler and memory dump functionality, it’s just not yet reflected in the UI. I thought you might be interested.
upnews.it ha detto:
undolog » Blog Archive » Codice per Commodore 64…
Ho recuperato il mio blocchetto del Commodore 64 per verificare il porting dell’emultatore FC64 proposto quache Post fa! Purtroppo alcune funzionalità della tastiera non sono proprio riuscito a farle funzionare, quindi non ho potuto provare e inserir…
Falko ha detto:
Per bloccare run stop-restore si usa poke 788,52 , mentre per il solo restore poke788,51 e per annullare il tutto il poke, 788,49. Per quanto riguarda il primo dei 3 che ho trascritto ne sono certo (lo usavo quando spostavo i codici basic in assembler per chiudere il codice
).
Giovambattista Fazioli ha detto:
@Falko: grazie! Te lo confermo anch’io… quello che non sono riuscito a fare (ed è per questo che non ho inserito queste Pokes) e simulare RUN/STOP RESTORE nell’emulatore Commodore 64 creato in Flex/Flash ActionScript 3.0. Sai per caso quali sono i tasti corrispondenti alla tastiera “ora” tradizionale?
piccolametal ha detto:
io come emulatore uso VICE, per la testiera mi aiuto con questa immagine http://upload.wikimedia.org/wikipedia/commons/thumb/d/db/PET_Keyboard.svg/800px-PET_Keyboard.svg.png ma anche con una fots che puoi scaricare qui http://piccolametal.altervista.org/programmi/cbm-directory-charset.fon (fa sempre parte del pacchetto dell’emulatore che uso)