Ecco qualche aggiornamento, ora va tutto meglio (anche se ci sono problemi di sincronizzazione), e sono riuscito a fare una mezza raster bar smanettando un po con il codice.
;raster split + interrupts
*=$0800
incprg "daredevil.64c"
*=$1000
incprg "music.dat"
*=$2000
incprg "elder_doppio.koa"
* = $4800;Sys 18432 to start!
jsr $1000
sei
jsr $e544;Screen clear
;Puliamo lo schermo video che useremo
lda #32
ldx #0
pulizia sta $5000,x
sta $5100,x
sta $5200,x
sta $5300,x
dex
bne pulizia
sei; fermiamo le interruzioni perchè il flickering mi dava fastidio
ldx #$00
stx $d021
copyloop
lda $3f40,x; copy colours to screen RAM
sta $0400,x
lda $4040,x
sta $0500,x
dex
bne copyloop
tax
;Display message
ldx #$00
dispmsg lda hellotxt,x
cmp #$40;IS TEXT CHAR OVER #$40.
bcc charokay;ELSE DON'T CHANGE
sec ;OTHERWISE CONVERT
sbc #$40;TO CORRECT CHARS.
charokay sta $0688,x
inx
cpx #$18
bne dispmsg
sei
lda #<irqrast
ldx #>irqrast
sta $0314
stx $0315
lda #$0
sta $d012
lda #$7f
sta $dc0d
lda #$1b
sta $d011
lda #$01
sta $d01a
cli
hold
lda #$0
sta $d020
sta $d021
lda #$30
raster1
cmp $d012
bne raster1
lda #$0
sta $d020
sta $d021
lda #$3b ; bitmap mode
ldx #$18 ; multi-colour mode
ldy #$18
sta $d011
stx $d016
sty $d018
lda #$a8
raster2
cmp $d012
bne raster2
lda #$1b
ldx #$08
ldy #$12;Trovare bit giusto
sta $d011 ; Clear high bit of $d012, set text mode
stx $d016 ; single-colour
sty $d018
lda #$0
sta $d020
sta $d021
jmp hold
irqrast
lda $dc0d ; ACK CIA 1 interrupts
lda $dd0d ; ACK CIA 2 interrupts
asl $d019 ; ACK VIC interrupts
lda #$b1
sta $d012
jsr txtwash
jsr rastwash
jsr $1003
lda #$b1
sta $d012
n2o
lda $c1
cmp $d012
bne n2o
;LDA #$B3
;STA $D012
cli
jmp $ea31
hellotxt .text "RASTER SPLIT!! "
;======================
;TEXT WASHING ROUTINE
;======================
txtwash
lda colour+$00
sta colour+$28
ldx #$00
cycle lda colour+$01,x
sta colour+$00,x
lda colour,x
sta $da88,x
inx
cpx #$28
bne cycle
rts
;======================
; RASTER BAR
;======================
rastwash
ldx #$00
cycle2
lda colour+$01,x
sta colour+$00,x
sta $d020
sta $d021
inx
cpx #$34;VERIFICARE!!!
bne cycle2
rts
;DATA TABLES FOR COLOURS
colour
.byte $06,$06,$06,$0e,$06,$0e
.byte $0e,$06,$0e,$0e,$0e,$03
.byte $0e,$03,$03,$0e,$03,$03
.byte $03,$01,$03,$01,$01,$03
.byte $01,$01,$01,$03,$01,$01
.byte $03,$01,$03,$03,$03,$0e
.byte $03,$03,$0e,$03,$0e,$0e
.byte $0e,$06,$0e,$0e,$06,$0e
.byte $06,$06,$06,$00,$00,$00