Identify more bit flags (#1153)
This commit is contained in:
@@ -5,7 +5,7 @@ StopRTC: ; unreferenced
|
||||
ld a, RTC_DH
|
||||
ld [MBC3SRamBank], a
|
||||
ld a, [MBC3RTC]
|
||||
set 6, a ; halt
|
||||
set RTC_DH_HALT, a
|
||||
ld [MBC3RTC], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
@@ -17,7 +17,7 @@ StartRTC:
|
||||
ld a, RTC_DH
|
||||
ld [MBC3SRamBank], a
|
||||
ld a, [MBC3RTC]
|
||||
res 6, a ; halt
|
||||
res RTC_DH_HALT, a
|
||||
ld [MBC3RTC], a
|
||||
call CloseSRAM
|
||||
ret
|
||||
@@ -80,7 +80,7 @@ SaveRTC:
|
||||
ld hl, MBC3RTC
|
||||
ld a, RTC_DH
|
||||
ld [MBC3SRamBank], a
|
||||
res 7, [hl]
|
||||
res RTC_DH_OVERFLOW, [hl]
|
||||
ld a, BANK(sRTCStatusFlags)
|
||||
ld [MBC3SRamBank], a
|
||||
xor a
|
||||
@@ -93,9 +93,7 @@ StartClock::
|
||||
call _FixDays
|
||||
call FixDays
|
||||
jr nc, .skip_set
|
||||
; bit 5: Day count exceeds 139
|
||||
; bit 6: Day count exceeds 255
|
||||
call RecordRTCStatus ; set flag on sRTCStatusFlags
|
||||
call RecordRTCStatus
|
||||
|
||||
.skip_set
|
||||
call StartRTC
|
||||
@@ -103,27 +101,26 @@ StartClock::
|
||||
|
||||
_FixDays:
|
||||
ld hl, hRTCDayHi
|
||||
bit 7, [hl]
|
||||
jr nz, .set_bit_7
|
||||
bit 6, [hl]
|
||||
jr nz, .set_bit_7
|
||||
bit RTC_DH_OVERFLOW, [hl]
|
||||
jr nz, .reset_rtc
|
||||
bit RTC_DH_HALT, [hl]
|
||||
jr nz, .reset_rtc
|
||||
xor a
|
||||
ret
|
||||
|
||||
.set_bit_7
|
||||
; Day count exceeds 16383
|
||||
ld a, %10000000
|
||||
call RecordRTCStatus ; set bit 7 on sRTCStatusFlags
|
||||
.reset_rtc
|
||||
ld a, RTC_RESET
|
||||
call RecordRTCStatus
|
||||
ret
|
||||
|
||||
ClockContinue:
|
||||
call CheckRTCStatus
|
||||
ld c, a
|
||||
and %11000000 ; Day count exceeded 255 or 16383
|
||||
and RTC_RESET | RTC_DAYS_EXCEED_255
|
||||
jr nz, .time_overflow
|
||||
|
||||
ld a, c
|
||||
and %00100000 ; Day count exceeded 139
|
||||
and RTC_DAYS_EXCEED_139
|
||||
jr z, .dont_update
|
||||
|
||||
call UpdateTime
|
||||
|
Reference in New Issue
Block a user