blit: add shadow, and aux bank flipping code to the simple framebuffer pei blitter

This commit is contained in:
dwsJason 2018-09-01 10:16:04 -04:00
parent b36cab1c12
commit 9dd2c1874b
2 changed files with 53 additions and 4 deletions

View File

@ -24,6 +24,10 @@ PresentPalette start BLITCODE
tdc
sta dp
*---------------------
sei
_shadowON
_auxON
*---------------------
clc
@ -41,7 +45,14 @@ peiloop anop
jmp peiloop
*---------------------
done anop
done anop
*---------------------
_auxOFF
_shadowOFF
cli
*---------------------
lda dp
tcd
@ -64,7 +75,10 @@ PresentSCB start BLITCODE
tdc
sta dp
*---------------------
sei
_shadowON
_auxON
*---------------------
lda #$9D00
@ -79,6 +93,10 @@ PresentSCB start BLITCODE
pei &ct*2
aif &ct,^loop
*---------------------
_auxOFF
_shadowOFF
cli
*---------------------
lda dp
tcd
@ -100,12 +118,19 @@ PresentFrameBuffer start BLITCODE
tsc
sta stack
tax
tdc
sta dp
*---------------------
sei
_shadowON
_auxON
*---------------------
ldy #5 ; re-enable interrupts every 5 pages
clc
lda #$2000
peiloop anop
@ -118,10 +143,34 @@ peiloop anop
inc a
cmp #$9d00
bcs done
dey
bpl nextpage
tay
_auxOFF
txs
cli
sei
* _auxON
ora #$0030
sta >$00C068
tya
ldy #5
nextpage anop
jmp peiloop
*---------------------
done anop
done anop
*---------------------
_auxOFF
_shadowOFF
cli
*---------------------
lda dp
tcd

View File

@ -1 +1 @@
MACRO &lab _pushpage &lab lcla &addr &addr seta 254 lcla &loop &loop seta 128 .ploop pei &addr &addr seta &addr-2 &loop seta &loop-1 aif &loop,^ploop MEND macro &lab asl4 &lab lcla &ct &ct seta 4 .top asl a &ct seta &ct-1 aif &ct>0,^top mend
MACRO &lab _pushpage &lab lcla &addr &addr seta 254 lcla &loop &loop seta 128 .ploop pei &addr &addr seta &addr-2 &loop seta &loop-1 aif &loop,^ploop MEND macro &lab asl4 &lab lcla &ct &ct seta 4 .top asl a &ct seta &ct-1 aif &ct>0,^top mend macro &lab _auxON &lab lda >$00C068 ora #$0030 sta >$00C068 mend macro &lab _auxOFF &lab lda >$00C068 and #$FFCF sta >$00C068 mend macro &lab _shadowON &lab lda >$00C035 and #$FFF7 sta >$00C035 mend macro &lab _shadowOFF &lab lda >$00C035 ora #$0008 sta >$00C035 mend