mirror of
https://github.com/a2-4am/4cade.git
synced 2024-12-30 18:30:39 +00:00
90 lines
1.6 KiB
Plaintext
90 lines
1.6 KiB
Plaintext
;license:MIT
|
|
;(c) 2020 by qkumba
|
|
;
|
|
; CFFA-specific work-around for an issue on the GS
|
|
;
|
|
|
|
HackThaCFFA
|
|
ldx #0
|
|
beq @CFFAbase1
|
|
@loopCFFA
|
|
cmp @CFFA_ID-1,x
|
|
bne @nextslot
|
|
@CFFAbase1
|
|
lda $C7F6,x
|
|
inx
|
|
cpx #5
|
|
bne @loopCFFA
|
|
sbc #'0'
|
|
cmp #2 ; only 3.0x and 3.1x
|
|
bcc @foundCFFA
|
|
rts
|
|
|
|
@nextslot
|
|
dec @CFFAbase1+2
|
|
lda @CFFAbase1+2
|
|
cmp #$C0
|
|
bne HackThaCFFA
|
|
rts
|
|
|
|
@foundCFFA
|
|
lda @CFFAbase1+2
|
|
sta @CFFAbase2+2
|
|
|
|
!cpu 65816
|
|
clc
|
|
xce
|
|
ldx #0
|
|
- inx
|
|
lda $FE0002,x
|
|
cmp #$FE ; find anything we can use as bank==#$FE
|
|
bne -
|
|
stx @patchROM+1
|
|
rep #$30
|
|
!al
|
|
!rl
|
|
sei
|
|
ldx #$00A0
|
|
lda $CFFF
|
|
@CFFAbase2
|
|
lda $D100 ; SMC
|
|
- dex
|
|
beq @returnCFFA
|
|
lda $CC04,x
|
|
eor #$02AE
|
|
bne -
|
|
tay
|
|
- lda @patchCFFA_b,y
|
|
sta $CC00,x
|
|
inx
|
|
inx
|
|
iny
|
|
iny
|
|
cpy #(@patchCFFA_e-@patchCFFA_b)
|
|
bcc -
|
|
|
|
@returnCFFA
|
|
cli
|
|
sec
|
|
xce
|
|
rts
|
|
|
|
!as
|
|
!rs
|
|
@patchCFFA_b
|
|
stz $C806
|
|
stz $C807 ; no error
|
|
@patchROM
|
|
lda #$D1 ; SMC
|
|
sta $C808
|
|
stz $C809
|
|
lda #$FE
|
|
sta $C80A ; handle at FE/00xx
|
|
stz $C80B
|
|
rts
|
|
@patchCFFA_e
|
|
|
|
@CFFA_ID !text "CF3K"
|
|
|
|
!cpu 6502
|