passport/src/patchers/rwtsswap.a

39 lines
1.1 KiB
Plaintext
Executable File

;-------------------------------
; #RWTSSWAP
; after DOS loads, program calls
; subroutines at $BA69 and $BA7F
; to swap RWTS parameters on the
; fly
; e.g. Puzzle Master
;-------------------------------
_rwtsswap
lda gIsBoot0 ; if DOS 3.3 boot0 loader
bne rwtsswap_exit
lda gIsBoot1 ; and DOS 3.3 boot1 loader
bne rwtsswap_exit
lda #$04
ldx #$69
ldy #$0B
jsr compare ; and T00,S04,$69 ==
!byte $A0,07,$B9,$DF,$BC,$99,$94,$B9
!byte $88,$10,$F7
bcs rwtsswap_exit
lda #$04
ldx #$7F
ldy #$0B
jsr compare ; and T00,S04,$7F ==
!byte $A0,07,$B9,$E7,$BC,$99,$94,$B9
!byte $88,$10,$F7
bcs rwtsswap_exit
lda #$04
ldx #$69
ldy #$01
jsr modify ; then set T00,S04,$69 =
!byte $60
lda #$04
ldx #$7F
ldy #$01
jsr modify ; and set T00,S04,$7F =
!byte $60
rwtsswap_exit