; DEBUG = 11480-118B0
;
; 11480-11490 = CD1 LBA / CD2 LBA / CD3 LBA / CD4 LBA
; 11490-114A0 = DVD5 state / CD #
; 114A0-11510 = address -> time LBA remap
; 11510-11560 = address -> time DVD5 remap
; 11560-115F0 = time -> address LBA remap
; 115F0-116xx = movie resume - DVD5 remap



; write time data
;80063370 : 3C038008  LUI     80080360 (v1), 8008 (32776),
;80063374 : 8C6303E0  LW      80080000 (v1), 03e0 (80080000 (v1)) [800803e0]
;-->
;80063378 : 90420000  LBU     801ffe48 (v0), 0000 (801ffe48 (v0)) [801ffe48]
;8006337c : 00000000  NOP    
;80063380 : A0620000  SB      00000000 (v0), 0000 (1f801802 (v1)) [1f801802]
;-->
;80063384 : 8CA20000  LW      00000000 (v0), 0000 (80080360 (a1)) [80080360]
;80063388 : 24840001  ADDIU   00000000 (a0), 00000000 (a0), 0001 (1),
;8006338c : 0082102A  SLT     00000003 (v0), 00000001 (a0), 00000003 (v0),
;80063390 : 1440FFF7  BNE     00000001 (v0), 00000000 (r0), 80063370,
;80063394 : 02041021  ADDU    00000001 (v0), 801ffe48 (s0), 00000001 (a0),



org $800115f0

; OLD code

lbu v0,0(v0)
nop

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

; NOTE:
; checking DVD5 state doesn't work

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




; check CD2 (1) / CD4 (3) = low DVD5
;       CD1 (0) / CD3 (2) = middle DVD5
lui at,$8008
lbu at,$2a5c(at)
ori ra,r0,3
beq at,ra,EXIT
ori ra,r0,1
beq 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
; 132:0:0 - 159:59:74

; REMINDER: MSF time is in BCD (!!)
; check minutes (>= 132) = NO DVD5
lbu at,0(s0)
nop
sltiu ra,at,$D2
beq ra,r0,EXIT
nop


; minutes 1-131 = 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,$1490(at)

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

EXIT:

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