Files
pokegold-spaceworld/home/time.asm
T
2018-06-17 11:16:28 -06:00

139 lines
1.9 KiB
NASM

include "constants.asm"
SECTION "RTC and Time Functions", ROM0 [$042B]
LatchClock: ; 42b (0:042b)
ld a, 0
ld [MBC3LatchClock], a
ld a, 1
ld [MBC3LatchClock], a
ret
UpdateTime:: ; 436 (0:0436)
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:: ; 4ea (0:04ea)
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:: ; 0502
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