Ready64 Forum
Commodore 64 => Aiuto & Domande => Topic aperto da: COMMODORO - 28 Settembre 2013, 16:22:45
-
Ho provato a scrivere un programmino più semplice e ristretto possibile che cambia il charset standard.
Scaricando vari charset pronti noto che ci sono dei bug che non so se dipendono dal programma o dai charset. Per esempio se si prova a stampare le virgolette ""
lo schermo si riempie di caratteri.
Comunque ecco il micro listato:
*= $1000
lda #$18;setta l'indirizzo di memoria del
sta $d018;video e dei caratteri
write
jsr $ff9f; chiama routine del Kernal che fa lo scan della tastiera
jsr $ffe4; prende il carattere digitato e lo mette nell'accumulatore
jsr $ffd2;stampa il carattere memorizzato dall'accumulatore
jmp write; loop
*= $2000 ; indirizzo di memoria in cui viene memorizzato la mappa dei caratteri
INCBIN "arcadia.64c"
Allego anche il charset in questione
Lo so che il programmino può sembrare banale, ma non per un niubbo come me! ;)
P.S. Aspetto suggerimenti o risposte sul perché dei bugs!
-
Il charset non c'entra, stai mescolando clamorosamente il minestrone.
Non è una routine particolarmente "intelligente", ma puramente per scopi didattici provo ad indirizzarti almeno per farti capire cosa sta succedendo e, forse, come "migliorare" il loop: stai stampando una sfilza di CHR$(0).
-
Ciao Eregil e grazie della critica!
Questo codice é già meglio?
Funziona tutto mi sembra!
*= $1000 ;sys4096 per far partire il programmino
lda $d018;setta l'indirizzo di memoria del
ora #$0e;video e dei caratteri
sta $d018
rts
*= $3800 ; indirizzo di memoria in cui viene memorizzato la mappa dei caratteri
INCBIN "arcadia.64c"
Per favore puoi spiegarmi meglio cosa avevo fatto prima che non andava? :lol: