martedì 10 luglio 2018

C64 Autostart Assembly

Un metodo per lanciare un codice Assembler su C64 senza usare un loader basic (e gli  svariati DATA). Questo codice, a differenza della macro start_at_address vista in questo post, non lancia diretttamente il codice quando finito il caricamento ma non e' necessario digitare nessun comando SYS, basta il comando RUN



Il codice e' il seguente

*=$801
BASIC: !BYTE $0B,$08,$01,$00,$9E,$32,$30,$36,$31,$00,$00,$00
 
             LDA........
             altro codice assembler


il comando precedente si traduce come
1 SYS 2061

ma come si traduce?? I comandi BASIC vengono inseriti in memoria nel C64 come token. Il codice $9E costituisce il token del comando SYS. In seguito $32, $30,$36,$31 sono i valori esadecimali dei caratteri che corrisponde in ASCII CODE al numero 2061

I due byte precedente $01,$00 indicano il numero di riga (byte basso, byte alto). In questo caso il numero di riga e' 1. I primi due byte in assoluto sono il puntatore alla prossima riga BASIC nel solito ordine byte basso/byte alto ... questo caso il puntatore e' a $80D ovvero a dove inizia il codice assembler

il valore 2061 corrisponde all'esadecimale $80D. In pratica la riga in codice BASIC fa puntare l'esecuzione del programma al primo byte dopo la stringa di inizializzione ($801 (2049) e' la base del codice basic in C64 + 12 byte della lunghezza  launcher, ovvero la stringa BASIC,  e' uguale a 2061)

I tre zeri finali corrispondo a : il terz'ultimo zero indica il terminatore di una riga BASIC. Gli ultimi due zeri indicano la fine del programma BASIC.


Recensione Retro Game Dev di Derek Morris

In un momento di esaltazione mi sono comprato il libro Retro Game Dev di Derek Morris sperando che fosse un sunto organizzato di quanto presente nei vari blog e forum sparsi per internet sull'argomento


E' stata una grossa delusione (non costosa perche' fortunatamente Amazon ha accettato il reso)...12 euro per scoprire in 120 pagine che praticamente non ci sono spiegazioni ma viene tutto rimandato a file da scaricare con codice commentato ma in ogni caso difficile da seguire...tanto vale fare da soli

PMII 11 - C64 con televisore anni 70

Gioco International Soccer su cartuccia e joystick originale Commodore. Per me si torna indietro al 1984 perche' con questa esatta configurazione ho iniziato ad usare un calcolatore




PMII 10 - Acecad Digitizer D-Series




PMII 9 - Canon Palmtronic 8M

Calcolatrice trovata per casa in un cestino lungo strada mentre stavo buttando via della carta sporca. Non ho potuto fare a meno di adottarla...peraltro e' funzionante .... manca lo sportello batteria


PMII 8 - Gioco anni 80 con cartrigde

Vecchio gioco anni 80 che monta un 6502 (Modello e marca non identificato ma molto probabilmente era un clone)


PMII 7 - Scheda madre portatile Cyrix Cx486SLC2

Scheda presa da un portatile con una cpu Cyrix cx486SLC2 e il coprocessore Cyrix CX83S87-33-JP


Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...