mirror of
https://github.com/blondie7575/GSCats.git
synced 2024-11-05 02:08:21 +00:00
204 lines
2.0 KiB
ArmAsm
204 lines
2.0 KiB
ArmAsm
.macro OP8
|
|
.i8
|
|
.a8
|
|
.endmacro
|
|
|
|
|
|
.macro OP16
|
|
.i16
|
|
.a16
|
|
.endmacro
|
|
|
|
|
|
.macro BITS8
|
|
sep #%00110000
|
|
OP8
|
|
.endmacro
|
|
|
|
|
|
.macro BITS16
|
|
rep #%00110000
|
|
OP16
|
|
.endmacro
|
|
|
|
|
|
.macro DBR bankNum
|
|
BITS8
|
|
lda bankNum
|
|
pha
|
|
plb
|
|
BITS16
|
|
.endmacro
|
|
|
|
|
|
.macro SYNCDBR
|
|
phk
|
|
plb
|
|
.endmacro
|
|
|
|
|
|
.macro EMULATION
|
|
sec ; Enable 8-bit mode
|
|
xce
|
|
OP8
|
|
.endmacro
|
|
|
|
|
|
.macro NATIVE
|
|
clc ; Enable 16-bit mode
|
|
xce
|
|
BITS16
|
|
.endmacro
|
|
|
|
|
|
.macro SHRVIDEO
|
|
BITS8
|
|
lda NEWVIDEO
|
|
ora #%11000001
|
|
sta NEWVIDEO
|
|
BITS16
|
|
.endmacro
|
|
|
|
|
|
.macro CLASSICVIDEO
|
|
BITS8
|
|
lda NEWVIDEO
|
|
and #%00111111
|
|
sta NEWVIDEO
|
|
BITS16
|
|
.endmacro
|
|
|
|
|
|
.macro FASTGRAPHICS
|
|
sei
|
|
sep #%00100000 ; 16-bit A only, to preserve X/Y
|
|
.a8
|
|
|
|
lda SHADOW
|
|
sta shadowRegister
|
|
lda #0
|
|
sta SHADOW
|
|
|
|
lda STACKCTL
|
|
sta stackRegister
|
|
ora #$30
|
|
sta STACKCTL
|
|
|
|
rep #%00100000
|
|
.a16
|
|
tsc
|
|
sta stackPtr
|
|
.endmacro
|
|
|
|
|
|
.macro SLOWGRAPHICS
|
|
sep #%00100000 ; 16-bit A only, to preserve X/Y
|
|
.a8
|
|
|
|
lda shadowRegister
|
|
sta SHADOW
|
|
|
|
lda stackRegister
|
|
sta STACKCTL
|
|
|
|
rep #%00100000
|
|
.a16
|
|
lda stackPtr
|
|
tcs
|
|
|
|
cli
|
|
.endmacro
|
|
|
|
|
|
.macro LOADPARAM24 bankNumDoubled,addr16
|
|
lda #bankNumDoubled
|
|
sta PARAM24+1
|
|
lda #addr16
|
|
sta PARAM24
|
|
.endmacro
|
|
|
|
|
|
.macro pstring Arg
|
|
.byte .strlen(Arg), Arg
|
|
.endmacro
|
|
|
|
|
|
.macro qbyte Arg
|
|
.dbyt Arg>>16,Arg&$0000ffff
|
|
.endmacro
|
|
|
|
.macro BREAK
|
|
pha
|
|
lda breakpoint
|
|
beq nobrk
|
|
pla
|
|
brk
|
|
nobrk:
|
|
pla
|
|
.endmacro
|
|
|
|
;;;;;;;;;;
|
|
; Stack Macros
|
|
|
|
|
|
.macro SAVE_AXY ; Saves all registers
|
|
pha
|
|
phx
|
|
phy
|
|
.endmacro
|
|
|
|
|
|
.macro RESTORE_AXY ; Restores all registers
|
|
ply
|
|
plx
|
|
pla
|
|
.endmacro
|
|
|
|
|
|
.macro SAVE_AY ; Saves accumulator and Y index
|
|
pha
|
|
phy
|
|
.endmacro
|
|
|
|
|
|
.macro RESTORE_AY ; Restores accumulator and Y index
|
|
ply
|
|
pla
|
|
.endmacro
|
|
|
|
|
|
.macro SAVE_AX ; Saves accumulator and X index
|
|
pha
|
|
phx
|
|
.endmacro
|
|
|
|
|
|
.macro RESTORE_AX ; Restores accumulator and X index
|
|
plx
|
|
pla
|
|
.endmacro
|
|
|
|
|
|
.macro SAVE_XY ; Saves X and Y index
|
|
phx
|
|
phy
|
|
.endmacro
|
|
|
|
|
|
.macro RESTORE_XY ; Restores X and Y index
|
|
ply
|
|
plx
|
|
.endmacro
|
|
|
|
|
|
.macro SAVE_P0 ; Saves PARAML0
|
|
lda PARAML0
|
|
pha
|
|
.endmacro
|
|
|
|
|
|
.macro RESTORE_P0 ; Restores PARAML0
|
|
pla
|
|
sta PARAML0
|
|
.endmacro
|