blit: add shadow, and aux bank flipping code to the simple framebuffer pei blitter
This commit is contained in:
parent
b36cab1c12
commit
9dd2c1874b
55
asm/blit.s
55
asm/blit.s
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue