; DEBUG = 2A960-2AC50
;
; 2A960-2A970 = CD1 LBA / CD2 LBA / <unused> / CD #
; 2A970-2A9A0 = address -> time MSF remap
; 2A9A0-2A9xx = swap nag removal



;-->
;80020e48 : 27BDFFE0  ADDIU   801ffe70 (sp), 801ffe70 (sp), ffe0 (65504),
;80020e4c : AFB10014  SW      00029800 (s1), 0014 (801ffe50 (sp)) [801ffe64]
;-->
;80020e50 : 3C118003  LUI     00029800 (s1), 8003 (32771),
;80020e54 : 2631CD7E  ADDIU   80030000 (s1), 80030000 (s1), cd7e (52606),
;80020e58 : AFBF0018  SW      8003e378 (ra), 0018 (801ffe50 (sp)) [801ffe68]




org $8002a9a0

;8003c580 : 0C008392  JAL     80020e48, 8003c580 (ra),
;8003c584 : 24040001  ADDIU   1f801110 (a0), 00000000 (r0), 0001 (1),
;--> ra (swap routine)
;8003c588 : 0C0047DF  JAL     80011f7c, 8003c588 (ra),
;8003c58c : 02402021  ADDU    03000000 (a0), 80090020 (s2), 00000000 (r0),


; safety check
lui v0,$0c00
ori v0,v0,$47df
lw at,0(ra)
nop
bne at,v0,EXIT
nop

; #########################
; #########################
; #########################
; #########################

; remove swap splash bitmap
sw r0,$fff8(ra)

; remove swap routine
sw r0,0(ra)

; cpu cache - avoid running old code
addiu ra,ra,4



; load cached CD #
lui a0,$8002+1
lbu v0,$a96c(a0)
nop

; 1->0
bne v0,r0,STORE_CD
ori v0,r0,0

; 0->1
ori v0,r0,1


STORE_CD:

; change internal CD #s
; - DONE!! - Do not show splash bitmap
jr ra
sb v0,$a96c(a0)

; =====================
; =====================
; =====================
; =====================

EXIT:

; OLD code

addiu sp,sp,$ffe0

j $80020e50
sw s1,$14(sp)
