Ready64 Forum
Commodore 64 => Programmazione, Grafica e Musica => Topic aperto da: Tremal-Naik - 10 Agosto 2004, 11:49:23
-
Finalmente!!!!!!!!!! Dopo ore e ore di esperimenti sono riuscito a creare la mia prima routine stabile!! Per ora ho provato solo con il polling su d012 e d011 ma penso che con l'IRQ cambiera' poco (giusto un conteggio diverso sul primo delay, cioe' la sequenza di NOP).
Ora debbo solo: eliminare quei NOP all'inizio (carta e matita mi daranno una mano :), creare un loop per generare la delaytablee gestire un po' meglio la colortable (magari evitando di sprecare n-mila byte per una colortable che si ripete ogni 8 byte).
Pero' anche se brutto funziona! :))
processor 6502
org $0800
dc.b $00, $0c, $08, $0a
dc.b $00
dc.b $9e, $20, "2304"
dc.w $00
dc.w $00
org $0900
sei
main
lda #$fe
sta $d020
lda #$f6
sta $d021
lda #$32
wait_032
cmp $d012
bne wait_032
ldx $d011
bmi wait_032
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ldx #$00
draw_again
ldy delay,x
lda color,x
inx
sta $d020
sta $d021
wait
dey
bne wait
cpx #color_end-color
bne draw_again
nop
nop
jmp main
rts
delay
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
dc.b 1,8,8,8,8,8,8,8
delay_end
color dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
dc.b 0,1,2,3,4,5,6,7
color_end
rts
-
Ottimo lavoro! C'e' da lavorare sulla tabella dei delay, anche usando una cosa del genere
txa
and #$07
tax
ldy delay,x
puoi ridurla a soli 8 byte, poi devi ricalcolare i nop per la sincronizzazione.
-
txa
and #$07
tax
ldy delay,x
Problema: aggiungendo queste righe mi si sballa il timing della stampa delle 8 righe. La cosa e' problematica per la prima riga in quanto ha un delay pari a 1 perche' in badline...
Adesso mi metto sotto per trovare alternative!
-
Problema: aggiungendo queste righe mi si sballa il timing della stampa delle 8 righe.
Come dicevo c'e' da rielaborare il timing. Questa e' una stable raster che non usa tabelle. E' di Fungus/Nostalgia
http://www.ffd2.com/fridge/vic/stableraster.txt (http://www.ffd2.com/fridge/vic/stableraster.txt)
-
Come dicevo c'e' da rielaborare il timing.
Ok, ma finche' si tratta di ricalcolare i primi nop non ci sono problemi ma e' proprio il primo ciclo sulla badline a mettermi nei guai... se aggiungo un'istruzione il ciclo diventa troppo lungo (ha delay pari a 1) e la rasterbar diventa lunga una riga abbondante... Anche togliendo i due nop rimango a corto di cicli...
Cmq adesso mi vado a vedere la routine che mi hai passato.