Optimize raster mutliplexer
This commit is contained in:
parent
01365c38b7
commit
c3e89d5d32
|
@ -24,6 +24,8 @@ __asm irq0
|
|||
tya
|
||||
pha
|
||||
|
||||
asl $d019
|
||||
|
||||
ldx nextIRQ
|
||||
l1:
|
||||
lda rasterIRQNext, x
|
||||
|
@ -39,7 +41,6 @@ l1:
|
|||
|
||||
ji:
|
||||
jsr $0000
|
||||
jx:
|
||||
|
||||
inc nextIRQ
|
||||
ldx nextIRQ
|
||||
|
@ -47,42 +48,17 @@ jx:
|
|||
lda rasterIRQNext, x
|
||||
cmp #$ff
|
||||
beq e2
|
||||
// carry is cleared at this point
|
||||
|
||||
tay
|
||||
|
||||
sec
|
||||
sbc #3
|
||||
cmp $d012
|
||||
bcc l1
|
||||
|
||||
dey
|
||||
sbc #2
|
||||
cmp $d012
|
||||
bcc l1
|
||||
|
||||
sty $d012
|
||||
w1:
|
||||
jmp ex
|
||||
|
||||
e2:
|
||||
ldx npos
|
||||
stx tpos
|
||||
inc rirq_count
|
||||
|
||||
bit $d011
|
||||
bmi e1
|
||||
|
||||
sta $d012
|
||||
|
||||
asl $d019
|
||||
jmp ex
|
||||
|
||||
e1:
|
||||
ldx #0
|
||||
stx nextIRQ
|
||||
lda rasterIRQNext, x
|
||||
sec
|
||||
sbc #1
|
||||
sta $d012
|
||||
|
||||
ex:
|
||||
asl $d019
|
||||
|
||||
pla
|
||||
tay
|
||||
|
@ -91,6 +67,26 @@ ex:
|
|||
pla
|
||||
rti
|
||||
|
||||
e2:
|
||||
|
||||
ldx npos
|
||||
stx tpos
|
||||
inc rirq_count
|
||||
|
||||
bit $d011
|
||||
bmi e1
|
||||
|
||||
sta $d012
|
||||
jmp ex
|
||||
|
||||
e1:
|
||||
ldx #0
|
||||
stx nextIRQ
|
||||
ldy rasterIRQNext
|
||||
dey
|
||||
sty $d012
|
||||
jmp ex
|
||||
|
||||
}
|
||||
|
||||
__asm irq1
|
||||
|
@ -125,7 +121,7 @@ jx:
|
|||
tay
|
||||
|
||||
sec
|
||||
sbc #3
|
||||
sbc #4
|
||||
cmp $d012
|
||||
bcc l1
|
||||
|
||||
|
@ -344,7 +340,9 @@ void rirq_sort(void)
|
|||
rasterIRQNext[i] = rasterIRQRows[rasterIRQIndex[i]];
|
||||
|
||||
npos++;
|
||||
vic.raster = rasterIRQNext[nextIRQ] - 1;
|
||||
byte yp = rasterIRQNext[nextIRQ];
|
||||
if (yp != 0xff)
|
||||
vic.raster = yp - 1;
|
||||
}
|
||||
|
||||
void rirq_start(void)
|
||||
|
|
Loading…
Reference in New Issue