Ho provato a scrivere la "logica" di una routine che genera mappe di gioco a blocchi.
La routine, genera 2 righe con i caratteri A e B, leggendo i dati dalla mappa ( A e B immaginateli come blocchi grafici Nulla / Terreno )
; Code by Fabbroz75
; solo scopo didattico
; da ottimizzare ed ampliare
maxline = 8
*= $0900 ; SYS2304 dal basic per eseguirla
cls lda #$00 ; colore 0
sta $d020 ; centro
sta $d021 ; bordo
jsr $e544 ; cancello lo schermo
ldx #$00
code lda map,x ; carico i dati della mappa
sta $0400,x ; stampo i caratteri nella prima riga
lda map,x+maxline; passo alla seconda colonna della mappa
sta $0428,x ; la stampo nella seconda riga
inx ; leggo i singoli byte
cpx #$08 ; ho letto 8 byte per riga?
bne code ; se no, continua finche'
; no ho letto tutta la mappa
lda #$0d ; Aggiungo un accapo
jsr $ffd2 ; solo per evitare che la scritta ready
; vada sopa mappa
rts ; torna al basic
map
byte 1,1,1,1,1,1,2,1
byte 1,2,2,2,2,1,2,1
ecco cosa genera:
AAAAAABA
ABBBBABA