pokegold-spaceworld/home/time.asm
2020-09-22 16:06:05 -04:00

139 lines
1.9 KiB
NASM

INCLUDE "constants.asm"
SECTION "home/time.asm", ROM0
LatchClock:
ld a, 0
ld [MBC3LatchClock], a
ld a, 1
ld [MBC3LatchClock], a
ret
UpdateTime::
ldh a, [hRTCStatusFlags]
bit 0, a
ret nz
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
call LatchClock
ld a, RTC_S
ld [MBC3SRamBank], a
ld a, [MBC3RTC]
and $7f
ldh [hRTCSeconds], a
ld a, RTC_M
ld [MBC3SRamBank], a
ld a, [MBC3RTC]
and $7f
ldh [hRTCMinutes], a
ld a, RTC_H
ld [MBC3SRamBank], a
ld a, [MBC3RTC]
and $1f
ldh [hRTCHours], a
call CloseSRAM
ld a, [wDebugFlags]
bit DEBUG_FIELD_F, a
jr z, .asm_0478
ld a, [wd153]
bit 7, a
jr nz, .asm_048a
.asm_0478
ldh a, [hRTCHours]
ld b, a
ld hl, .Data_049c
.asm_047e
ld a, [hli]
cp b
jr nc, .asm_0485
inc hl
jr .asm_047e
.asm_0485
ld a, [hl]
ld [wTimeOfDay], a
ret
.asm_048a
ldh a, [hRTCSeconds]
ld b, a
ld hl, .Data_04a4
.asm_0490
ld a, [hli]
cp b
jr nc, .asm_0497
inc hl
jr .asm_0490
.asm_0497
ld a, [hl]
ld [wTimeOfDay], a
ret
.Data_049c:
db $06, $01
db $09, $03
db $0f, $00
db $18, $01
.Data_04a4:
db $1e, $00
db $23, $01
db $32, $02
db $3b, $03
Function04ac::
ld hl, hRTCStatusFlags
set 0, [hl]
call Function04ea
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
call LatchClock
ld a, RTC_S
ld [MBC3SRamBank], a
ld a, 0
ld [MBC3RTC], a
ld a, RTC_M
ld [MBC3SRamBank], a
ld a, [wStartMinute]
ld [MBC3RTC], a
ld a, RTC_H
ld [MBC3SRamBank], a
ld a, [wStartHour]
ld [MBC3RTC], a
ld a, [wStartDay]
ldh [hRTCDays], a
call CloseSRAM
ld hl, hRTCStatusFlags
res 0, [hl]
ret
Function04ea::
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
call LatchClock
ld a, RTC_DH
ld [MBC3SRamBank], a
ld a, [MBC3RTC]
set 6, a
ld [MBC3RTC], a
call CloseSRAM
ret
Function0502::
ld a, SRAM_ENABLE
ld [MBC3SRamEnable], a
call LatchClock
ld a, RTC_DH
ld [MBC3SRamBank], a
ld a, [MBC3RTC]
res 6, a
ld [MBC3RTC], a
call CloseSRAM
ret