Codice per Commodore 64

Lunedì 5 Marzo, 2007

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 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:

CODE:
  1. POKE 53280,4
  2. SYS 64766

INPUT CON LE VIRGOLETTE

Mette le doppie virgolette dopo la richiesta da tastiera

CODE:
  1. 100 POKE 198,1:POKE 631,34
  2. 110 INPUT A$

LINEA VERTICALE CON LE POKE

Crea una linea animata verticale

CODE:
  1. 100 PRINT CHR$(147)
  2. 110 FOR R = 1 TO 24
  3. 120 POKE 55296+33+40*R,5
  4. 130 POKE 1024+33+40*R,71
  5. 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.

CODE:
  1. POKE 53270,32
  2. 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.

CODE:
  1. POKE 775,200

CURSORE LAMPEGGIANTE

CODE:
  1. 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

CODE:
  1. 10 FOR J = 40960 TO 49151
  2. 20 POKE J, PEEK(J)
  3. 30 NEXT J
  4. 40 FOR J = 41848 TO 41853
  5. 50 READ L$
  6. 60 POKE J, ASC(L$)
  7. 70 NEXT J
  8. 80 DATA E,D,D,I,E,!
  9.  
  10. POKE 1,54

SE ACCIDENTALMENTE DIGITATE "NEW"

Questa riga permette di recuperare un listato in caso si digiti accidentalmente il comando NEW

CODE:
  1. 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... ;)

Post correlati

5 commenti a: “Codice per Commodore 64”

  1. getAvatar 1.0 Venerdì 09 Marzo, 2007 alle 21:41
    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.

  2. getAvatar 1.0 Lunedì 10 Dicembre, 2007 alle 18:24
    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…

  3. getAvatar 1.0 Martedì 11 Dicembre, 2007 alle 22:44
    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 ;) ).

  4. getAvatar 1.0 Martedì 11 Dicembre, 2007 alle 22:53
    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?

  5. getAvatar 1.0 Lunedì 10 Novembre, 2008 alle 17:28
    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)

Lascia un commento

TAG XHTML permessi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Usa <pre> per racchiudere codice