Prev: BFD9 Up: Map Next: C03B
C00C: Get Time Period
Handles calculating a time-period code for scheduling events.
Time Period Code Meaning
01 Late night/ evening (8 PM - 5 AM)
02 7 PM
03 Afternoon (1 PM - 6 PM)
04 Morning/ Midday (7 AM - 12 PM)
05 6 AM
Output
A Time period code
GetTimePeriod C00C LD A,($9FE2) Fetch *Messaging_AM_PM.
C00F CP $61 Check if its "A" for AM.
C011 LD A,($9FE0) Load *CurrentTime_Hour into A.
Is it morning?
C014 JR Z,TimePeriod_AM Jump to TimePeriod_AM if *Messaging_AM_PM is ASCII 61 ("a").
It's the afternoon (as in, "PM").
C016 CP $0C Jump to TimePeriod_Morning if it's noon (12 PM).
C018 JR Z,TimePeriod_Morning
C01A CP $08 Jump to TimePeriod_Pre_8PM if it's before 8 PM.
C01C JR C,TimePeriod_Pre_8PM
It's late PM/ evening; 8 PM - 11 PM.
TimePeriod_LateEvening C01E LD A,$01 A=01.
C020 RET Return.
It's before 8 PM, but break this down further.
TimePeriod_Pre_8PM C021 CP $07 Jump to TimePeriod_Afternoon if its not 7 PM.
C023 JR NZ,TimePeriod_Afternoon
It's 7 PM.
C025 LD A,$02 A=02.
C027 RET Return.
It's afternoon/ early PM; 1 PM - 6 PM.
TimePeriod_Afternoon C028 LD A,$03 A=03.
C02A RET Return.
It's morning, but break this down further.
TimePeriod_AM C02B CP $0C Jump to TimePeriod_LateEvening if it's midnight (12 AM).
C02D JR Z,TimePeriod_LateEvening
C02F CP $06 Jump to TimePeriod_LateEvening if it's before 6 AM.
C031 JR C,TimePeriod_LateEvening
C033 JR Z,TimePeriod_EarlyMorning Jump to TimePeriod_EarlyMorning if it's 6 AM.
It's morning; 7 AM - noon (12 PM).
TimePeriod_Morning C035 LD A,$04 A=04.
C037 RET Return.
It's early morning; 6 AM.
TimePeriod_EarlyMorning C038 LD A,$05 A=05.
C03A RET Return.
Prev: BFD9 Up: Map Next: C03B