; DEBUG = 10F90-113D0, 113F0-11800
;
; 10F90-10FA0 = CD1 LBA / CD2 LBA / CD3 LBA / CD4 LBA
; 10FA0-10FB0 = DVD5 state / CD #
; 10FB0-11050 = address -> time LBA remap
; 11050-110A0 = address -> time DVD5 remap
; 110A0-11150 = time -> address LBA remap
; 11150-111A0 = write correct CD #
; 111A0-111xx = movie resume - DVD5 remap



; write time data
;8005fa98 : 3C038008  LUI     800806f0 (v1), 8008 (32776),
;8005fa9c : 8C630770  LW      80080000 (v1), 0770 (80080000 (v1)) [80080770]
;-->
;8005faa0 : 90420000  LBU     801ffcc8 (v0), 0000 (801ffcc8 (v0)) [801ffcc8]
;8005faa4 : 00000000  NOP    
;8005faa8 : A0620000  SB      00000016 (v0), 0000 (1f801802 (v1)) [1f801802]
;-->
;8005faac : 8CA20000  LW      00000016 (v0), 0000 (800806f0 (a1)) [800806f0]
;8005fab0 : 24840001  ADDIU   00000000 (a0), 00000000 (a0), 0001 (1),
;8005fab4 : 0082102A  SLT     00000003 (v0), 00000001 (a0), 00000003 (v0),
;8005fab8 : 1440FFF7  BNE     00000001 (v0), 00000000 (r0), 8005fa98,
;8005fabc : 02041021  ADDU    00000001 (v0), 801ffcc8 (s0), 00000001 (a0),



org $800111a0

; OLD code

lbu v0,0(v0)
nop

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

; NOTE:
; checking DVD5 state doesn't work

; no DVD5 sectors
lui at,$8001
sw r0,$0fa0(at)





; check CD3 (2)
lui at,$8001
lbu at,$0fa4(at)
ori ra,r0,2
bne at,ra,EXIT
nop

; check frames (2) = cdrWrite1 param
;ori ra,r0,2
bne a0,ra,EXIT
nop



; Avoid these ranges
; 0:2:0 - 0:2:17
; 135:0:0 - 159:59:74

; REMINDER: MSF time is in BCD (!!)

; check minutes (>= 135) = NO DVD5
lbu at,0(s0)
nop
sltiu ra,at,$D5
beq ra,r0,EXIT
nop


; minutes 1-134 = DVD5
bne at,r0,RAISE_FLAG
nop


; seconds 0-1, 3-59 = DVD5
lbu at,1(s0)
nop
;ori ra,r0,2
bne at,a0,RAISE_FLAG
nop


; frames 0-23 = NO DVD5
;lbu at,2(s0)
;nop
sltiu at,v0,$24
bne at,r0,EXIT
nop





RAISE_FLAG:

; raise DVD5 flag
ori v0,v0,$80


; DVD5 sectors
lui at,$8001
sw at,$0fa0(at)

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

EXIT:

; store time
j $8005faac
sb v0,0(v1)
