pokecrystal-board/engine/timeset.asm

774 lines
11 KiB
NASM
Raw Normal View History

TIMESET_UP_ARROW EQUS "\"♂\"" ; $ef
TIMESET_DOWN_ARROW EQUS "\"♀\"" ; $f5
2015-11-16 18:46:36 -08:00
InitClock: ; 90672 (24:4672)
; Ask the player to set the time.
ld a, [hInMenu]
push af
ld a, $1
ld [hInMenu], a
ld a, $0
2015-11-25 07:16:29 -08:00
ld [wSpriteUpdatesEnabled], a
2015-11-16 18:46:36 -08:00
ld a, $10
2018-01-23 14:39:09 -08:00
ld [wMusicFade], a
ld a, LOW(MUSIC_NONE)
2018-01-23 14:39:09 -08:00
ld [wMusicFadeID], a
ld a, HIGH(MUSIC_NONE)
2018-01-23 14:39:09 -08:00
ld [wMusicFadeID + 1], a
2015-11-16 18:46:36 -08:00
ld c, 8
call DelayFrames
2015-11-20 08:47:52 -08:00
call RotateFourPalettesLeft
2015-11-16 18:46:36 -08:00
call ClearTileMap
call ClearSprites
2016-06-06 15:23:00 -07:00
ld b, SCGB_DIPLOMA
2015-11-16 18:46:36 -08:00
call GetSGBLayout
xor a
ld [hBGMapMode], a
call LoadStandardFont
ld de, TimeSetBackgroundGFX
2017-12-28 04:32:33 -08:00
ld hl, vTiles2 tile $00
lb bc, BANK(TimeSetBackgroundGFX), 1
2015-11-16 18:46:36 -08:00
call Request1bpp
ld de, TimeSetUpArrowGFX
2017-12-28 04:32:33 -08:00
ld hl, vTiles2 tile $01
lb bc, BANK(TimeSetUpArrowGFX), 1
2015-11-16 18:46:36 -08:00
call Request1bpp
ld de, TimeSetDownArrowGFX
2017-12-28 04:32:33 -08:00
ld hl, vTiles2 tile $02
lb bc, BANK(TimeSetDownArrowGFX), 1
2015-11-16 18:46:36 -08:00
call Request1bpp
call .ClearScreen
call WaitBGMap
2015-11-20 08:47:52 -08:00
call RotateFourPalettesRight
2015-12-18 17:07:09 -08:00
ld hl, Text_WokeUpOak
2015-11-16 18:46:36 -08:00
call PrintText
2017-12-23 08:34:55 -08:00
ld hl, wTimeSetBuffer
2015-11-16 18:46:36 -08:00
ld bc, 50
xor a
call ByteFill
ld a, 10 ; default hour = 10 AM
2015-11-16 18:46:36 -08:00
ld [wInitHourBuffer], a
.loop
2015-12-18 17:07:09 -08:00
ld hl, Text_WhatTimeIsIt
2015-11-16 18:46:36 -08:00
call PrintText
hlcoord 3, 7
ld b, 2
ld c, 15
call TextBox
hlcoord 11, 7
ld [hl], $1
hlcoord 11, 10
ld [hl], $2
hlcoord 4, 9
call DisplayHourOClock
ld c, 10
call DelayFrames
.SetHourLoop:
2015-11-16 18:46:36 -08:00
call JoyTextDelay
call SetHour
jr nc, .SetHourLoop
ld a, [wInitHourBuffer]
2018-01-23 14:39:09 -08:00
ld [wStringBuffer2 + 1], a
2015-11-16 18:46:36 -08:00
call .ClearScreen
2015-12-18 17:07:09 -08:00
ld hl, Text_WhatHrs
2015-11-16 18:46:36 -08:00
call PrintText
call YesNoBox
jr nc, .HourIsSet
call .ClearScreen
jr .loop
.HourIsSet:
2015-12-18 17:07:09 -08:00
ld hl, Text_HowManyMinutes
2015-11-16 18:46:36 -08:00
call PrintText
hlcoord 11, 7
lb bc, 2, 7
call TextBox
hlcoord 15, 7
ld [hl], $1
hlcoord 15, 10
ld [hl], $2
hlcoord 12, 9
call DisplayMinutesWithMinString
ld c, 10
call DelayFrames
.SetMinutesLoop:
2015-11-16 18:46:36 -08:00
call JoyTextDelay
call SetMinutes
jr nc, .SetMinutesLoop
ld a, [wInitMinuteBuffer]
2018-01-23 14:39:09 -08:00
ld [wStringBuffer2 + 2], a
2015-11-16 18:46:36 -08:00
call .ClearScreen
2015-12-18 17:07:09 -08:00
ld hl, Text_WhoaMins
2015-11-16 18:46:36 -08:00
call PrintText
call YesNoBox
jr nc, .MinutesAreSet
call .ClearScreen
jr .HourIsSet
.MinutesAreSet:
call InitTimeOfDay
2015-11-16 18:46:36 -08:00
ld hl, OakText_ResponseToSetTime
call PrintText
call WaitPressAorB_BlinkCursor
pop af
ld [hInMenu], a
ret
.ClearScreen: ; 90783 (24:4783)
xor a
ld [hBGMapMode], a
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
ld a, $1
ld [hBGMapMode], a
ret
SetHour: ; 90795 (24:4795)
ld a, [hJoyPressed]
and A_BUTTON
jr nz, .Confirm
ld hl, hJoyLast
ld a, [hl]
and D_UP
jr nz, .up
ld a, [hl]
and D_DOWN
jr nz, .down
call DelayFrame
and a
ret
.down
ld hl, wInitHourBuffer
ld a, [hl]
and a
jr nz, .DecreaseThroughMidnight
ld a, 23 + 1
.DecreaseThroughMidnight:
2015-11-16 18:46:36 -08:00
dec a
ld [hl], a
jr .okay
.up
ld hl, wInitHourBuffer
ld a, [hl]
cp 23
jr c, .AdvanceThroughMidnight
ld a, -1
.AdvanceThroughMidnight:
2015-11-16 18:46:36 -08:00
inc a
ld [hl], a
.okay
hlcoord 4, 9
ld a, " "
ld bc, 15
call ByteFill
hlcoord 4, 9
call DisplayHourOClock
call WaitBGMap
and a
ret
.Confirm:
2015-11-16 18:46:36 -08:00
scf
ret
DisplayHourOClock: ; 907de (24:47de)
push hl
ld a, [wInitHourBuffer]
ld c, a
ld e, l
ld d, h
call PrintHour
inc hl
ld de, String_oclock
call PlaceString
pop hl
ret
; 907f1 (24:47f1)
2015-12-18 17:07:09 -08:00
UnreferencedFunction907f1: ; 907f1
2015-11-16 18:46:36 -08:00
ld h, d
ld l, e
push hl
call DisplayHourOClock
pop de
inc de
inc de
2015-12-18 17:07:09 -08:00
ld a, ":"
2015-11-16 18:46:36 -08:00
ld [de], a
inc de
push de
2015-12-18 17:07:09 -08:00
ld hl, 3
2015-11-16 18:46:36 -08:00
add hl, de
ld a, [de]
inc de
ld [hli], a
ld a, [de]
ld [hl], a
pop hl
call DisplayMinutesWithMinString
inc hl
inc hl
inc hl
2015-11-16 18:46:36 -08:00
ret
; 90810
SetMinutes: ; 90810 (24:4810)
ld a, [hJoyPressed]
and A_BUTTON
2015-12-18 17:07:09 -08:00
jr nz, .a_button
2015-11-16 18:46:36 -08:00
ld hl, hJoyLast
ld a, [hl]
and D_UP
2015-12-18 17:07:09 -08:00
jr nz, .d_up
2015-11-16 18:46:36 -08:00
ld a, [hl]
and D_DOWN
2015-12-18 17:07:09 -08:00
jr nz, .d_down
2015-11-16 18:46:36 -08:00
call DelayFrame
and a
ret
2015-12-18 17:07:09 -08:00
.d_down
ld hl, wInitMinuteBuffer
2015-11-16 18:46:36 -08:00
ld a, [hl]
and a
2015-12-18 17:07:09 -08:00
jr nz, .decrease
2015-11-16 18:46:36 -08:00
ld a, 59 + 1
2015-12-18 17:07:09 -08:00
.decrease
2015-11-16 18:46:36 -08:00
dec a
ld [hl], a
2015-12-18 17:07:09 -08:00
jr .finish_dpad
.d_up
ld hl, wInitMinuteBuffer
2015-11-16 18:46:36 -08:00
ld a, [hl]
cp 59
2015-12-18 17:07:09 -08:00
jr c, .increase
2015-11-16 18:46:36 -08:00
ld a, -1
2015-12-18 17:07:09 -08:00
.increase
2015-11-16 18:46:36 -08:00
inc a
ld [hl], a
2015-12-18 17:07:09 -08:00
.finish_dpad
2015-11-16 18:46:36 -08:00
hlcoord 12, 9
ld a, " "
ld bc, 7
call ByteFill
hlcoord 12, 9
call DisplayMinutesWithMinString
call WaitBGMap
and a
ret
2015-12-18 17:07:09 -08:00
.a_button
2015-11-16 18:46:36 -08:00
scf
ret
DisplayMinutesWithMinString: ; 90859 (24:4859)
ld de, wInitMinuteBuffer
2015-11-16 18:46:36 -08:00
call PrintTwoDigitNumberRightAlign
inc hl
ld de, String_min
call PlaceString
ret
PrintTwoDigitNumberRightAlign: ; 90867 (24:4867)
push hl
ld a, " "
ld [hli], a
ld [hl], a
pop hl
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
ret
; 90874 (24:4874)
2015-12-18 17:07:09 -08:00
Text_WokeUpOak: ; 0x90874
2015-11-16 18:46:36 -08:00
; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me?
text_jump UnknownText_0x1bc29c
db "@"
; 0x90879
2015-12-18 17:07:09 -08:00
Text_WhatTimeIsIt: ; 0x90879
2015-11-16 18:46:36 -08:00
; What time is it?
text_jump UnknownText_0x1bc2eb
db "@"
; 0x9087e
String_oclock:
db "o'clock@"
; 90886
2015-12-18 17:07:09 -08:00
Text_WhatHrs: ; 0x90886
2015-11-16 18:46:36 -08:00
; What?@ @
text_jump UnknownText_0x1bc2fd
start_asm
hlcoord 1, 16
call DisplayHourOClock
2015-12-18 17:07:09 -08:00
ld hl, .QuestionMark
2015-11-16 18:46:36 -08:00
ret
; 90895 (24:4895)
2015-12-18 17:07:09 -08:00
.QuestionMark: ; 0x90895
2015-11-16 18:46:36 -08:00
; ?
text_jump UnknownText_0x1bc305
db "@"
; 0x9089a
2015-12-18 17:07:09 -08:00
Text_HowManyMinutes: ; 0x9089a
2015-11-16 18:46:36 -08:00
; How many minutes?
text_jump UnknownText_0x1bc308
db "@"
; 0x9089f
String_min:
db "min.@"
; 908a4
2015-12-18 17:07:09 -08:00
Text_WhoaMins: ; 0x908a4
2015-11-16 18:46:36 -08:00
; Whoa!@ @
text_jump UnknownText_0x1bc31b
start_asm
hlcoord 7, 14
call DisplayMinutesWithMinString
2015-12-18 17:07:09 -08:00
ld hl, .QuestionMark
2015-11-16 18:46:36 -08:00
ret
; 908b3 (24:48b3)
2015-12-18 17:07:09 -08:00
.QuestionMark: ; 0x908b3
2015-11-16 18:46:36 -08:00
; ?
text_jump UnknownText_0x1bc323
db "@"
; 0x908b8
OakText_ResponseToSetTime: ; 0x908b8
start_asm
decoord 1, 14
ld a, [wInitHourBuffer]
ld c, a
call PrintHour
ld [hl], ":"
inc hl
ld de, wInitMinuteBuffer
2015-11-16 18:46:36 -08:00
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld b, h
ld c, l
ld a, [wInitHourBuffer]
cp MORN_HOUR
jr c, .nite
cp DAY_HOUR + 1
jr c, .morn
cp NITE_HOUR
jr c, .day
.nite:
2015-11-16 18:46:36 -08:00
ld hl, .sodark
ret
.morn:
2015-11-16 18:46:36 -08:00
ld hl, .overslept
ret
.day:
2015-11-16 18:46:36 -08:00
ld hl, .yikes
ret
; 908ec (24:48ec)
.overslept ; 0x908ec
2015-11-16 18:46:36 -08:00
; ! I overslept!
text_jump UnknownText_0x1bc326
db "@"
; 0x908f1
.yikes ; 0x908f1
2015-11-16 18:46:36 -08:00
; ! Yikes! I over- slept!
text_jump UnknownText_0x1bc336
db "@"
; 0x908f6
.sodark ; 0x908f6
2015-11-16 18:46:36 -08:00
; ! No wonder it's so dark!
text_jump UnknownText_0x1bc34f
db "@"
; 0x908fb
TimeSetBackgroundGFX: ; 908fb
2018-01-21 10:58:16 -08:00
INCBIN "gfx/new_game/timeset_bg.1bpp"
TimeSetUpArrowGFX: ; 90903
2018-01-21 10:58:16 -08:00
INCBIN "gfx/new_game/up_arrow.1bpp"
TimeSetDownArrowGFX: ; 9090b
2018-01-21 10:58:16 -08:00
INCBIN "gfx/new_game/down_arrow.1bpp"
2015-11-16 18:46:36 -08:00
; 90913
SetDayOfWeek: ; 90913
2015-11-16 18:46:36 -08:00
ld a, [hInMenu]
push af
ld a, $1
ld [hInMenu], a
ld de, TimeSetUpArrowGFX
ld hl, vTiles0 tile TIMESET_UP_ARROW
lb bc, BANK(TimeSetUpArrowGFX), 1
2015-11-16 18:46:36 -08:00
call Request1bpp
ld de, TimeSetDownArrowGFX
ld hl, vTiles0 tile TIMESET_DOWN_ARROW
lb bc, BANK(TimeSetDownArrowGFX), 1
2015-11-16 18:46:36 -08:00
call Request1bpp
xor a
2015-12-18 17:07:09 -08:00
ld [wTempDayOfWeek], a
.loop
2015-11-16 18:46:36 -08:00
hlcoord 0, 12
lb bc, 4, 18
call TextBox
call LoadStandardMenuHeader
2015-12-18 17:07:09 -08:00
ld hl, .WhatDayIsItText
2015-11-16 18:46:36 -08:00
call PrintText
hlcoord 9, 3
ld b, 2
ld c, 9
call TextBox
hlcoord 14, 3
ld [hl], TIMESET_UP_ARROW
2015-11-16 18:46:36 -08:00
hlcoord 14, 6
ld [hl], TIMESET_DOWN_ARROW
2015-11-16 18:46:36 -08:00
hlcoord 10, 5
2015-12-18 17:07:09 -08:00
call .PlaceWeekdayString
2015-11-25 07:16:29 -08:00
call ApplyTilemap
2015-11-16 18:46:36 -08:00
ld c, 10
call DelayFrames
2015-12-18 17:07:09 -08:00
.loop2
2015-11-16 18:46:36 -08:00
call JoyTextDelay
2015-12-18 17:07:09 -08:00
call .GetJoypadAction
jr nc, .loop2
2015-11-16 18:46:36 -08:00
call ExitMenu
call UpdateSprites
2015-12-18 17:07:09 -08:00
ld hl, .ConfirmWeekdayText
2015-11-16 18:46:36 -08:00
call PrintText
call YesNoBox
2015-12-18 17:07:09 -08:00
jr c, .loop
ld a, [wTempDayOfWeek]
2018-01-23 14:39:09 -08:00
ld [wStringBuffer2], a
call InitDayOfWeek
2015-11-16 18:46:36 -08:00
call LoadStandardFont
pop af
ld [hInMenu], a
ret
; 90993
2015-12-18 17:07:09 -08:00
.GetJoypadAction: ; 90993
2015-11-16 18:46:36 -08:00
ld a, [hJoyPressed]
and A_BUTTON
2015-12-18 17:07:09 -08:00
jr z, .not_A
2015-11-16 18:46:36 -08:00
scf
ret
2015-12-18 17:07:09 -08:00
.not_A
2015-11-16 18:46:36 -08:00
ld hl, hJoyLast
ld a, [hl]
and D_UP
2015-12-18 17:07:09 -08:00
jr nz, .d_up
2015-11-16 18:46:36 -08:00
ld a, [hl]
and D_DOWN
2015-12-18 17:07:09 -08:00
jr nz, .d_down
2015-11-16 18:46:36 -08:00
call DelayFrame
and a
ret
2015-12-18 17:07:09 -08:00
.d_down
ld hl, wTempDayOfWeek
2015-11-16 18:46:36 -08:00
ld a, [hl]
and a
2015-12-18 17:07:09 -08:00
jr nz, .decrease
ld a, SATURDAY + 1
2015-11-16 18:46:36 -08:00
2015-12-18 17:07:09 -08:00
.decrease
2015-11-16 18:46:36 -08:00
dec a
ld [hl], a
2015-12-18 17:07:09 -08:00
jr .finish_dpad
2015-11-16 18:46:36 -08:00
2015-12-18 17:07:09 -08:00
.d_up
ld hl, wTempDayOfWeek
2015-11-16 18:46:36 -08:00
ld a, [hl]
cp 6
2015-12-18 17:07:09 -08:00
jr c, .increase
ld a, SUNDAY - 1
2015-11-16 18:46:36 -08:00
2015-12-18 17:07:09 -08:00
.increase
2015-11-16 18:46:36 -08:00
inc a
ld [hl], a
2015-12-18 17:07:09 -08:00
.finish_dpad
2015-11-16 18:46:36 -08:00
xor a
ld [hBGMapMode], a
hlcoord 10, 4
2015-12-18 17:07:09 -08:00
ld b, 2
ld c, 9
2015-11-16 18:46:36 -08:00
call ClearBox
hlcoord 10, 5
2015-12-18 17:07:09 -08:00
call .PlaceWeekdayString
2015-11-16 18:46:36 -08:00
call WaitBGMap
and a
ret
; 909de
2015-12-18 17:07:09 -08:00
.PlaceWeekdayString: ; 909de
2015-11-16 18:46:36 -08:00
push hl
2015-12-18 17:07:09 -08:00
ld a, [wTempDayOfWeek]
2015-11-16 18:46:36 -08:00
ld e, a
ld d, 0
2015-12-18 17:07:09 -08:00
ld hl, .WeekdayStrings
2015-11-16 18:46:36 -08:00
add hl, de
add hl, de
2015-11-16 18:46:36 -08:00
ld a, [hli]
ld d, [hl]
ld e, a
pop hl
call PlaceString
ret
; 909f2
2015-12-18 17:07:09 -08:00
.WeekdayStrings: ; 909f2
2018-01-23 14:39:09 -08:00
; entries correspond to wCurDay constants (see constants/wram_constants.asm)
2015-12-18 17:07:09 -08:00
dw .Sunday
dw .Monday
dw .Tuesday
dw .Wednesday
dw .Thursday
dw .Friday
dw .Saturday
dw .Sunday
.Sunday: db " SUNDAY@"
.Monday: db " MONDAY@"
.Tuesday: db " TUESDAY@"
.Wednesday: db "WEDNESDAY@"
.Thursday: db "THURSDAY@"
.Friday: db " FRIDAY@"
.Saturday: db "SATURDAY@"
.WhatDayIsItText: ; 0x90a3f
2015-11-16 18:46:36 -08:00
; What day is it?
text_jump UnknownText_0x1bc369
db "@"
; 0x90a44
2015-12-18 17:07:09 -08:00
.ConfirmWeekdayText: ; 0x90a44
2015-11-16 18:46:36 -08:00
start_asm
hlcoord 1, 14
2015-12-18 17:07:09 -08:00
call .PlaceWeekdayString
ld hl, .IsIt
2015-11-16 18:46:36 -08:00
ret
; 90a4f (24:4a4f)
2015-12-18 17:07:09 -08:00
.IsIt: ; 0x90a4f
2015-11-16 18:46:36 -08:00
; , is it?
text_jump UnknownText_0x1bc37a
db "@"
; 0x90a54
InitialSetDSTFlag: ; 90a54
2015-11-16 18:46:36 -08:00
ld a, [wDST]
set 7, a
ld [wDST], a
hlcoord 1, 14
lb bc, 3, 18
call ClearBox
2015-12-18 17:07:09 -08:00
ld hl, .Text
call PlaceHLTextAtBC
2015-11-16 18:46:36 -08:00
ret
; 90a6c
2015-12-18 17:07:09 -08:00
.Text: ; 90a6c
2015-11-16 18:46:36 -08:00
start_asm
call UpdateTime
ld a, [hHours]
ld b, a
ld a, [hMinutes]
ld c, a
decoord 1, 14
2017-12-24 09:47:30 -08:00
farcall PrintHoursMins
2015-12-18 17:07:09 -08:00
ld hl, .DSTIsThatOK
2015-11-16 18:46:36 -08:00
ret
; 90a83 (24:4a83)
2015-12-18 17:07:09 -08:00
.DSTIsThatOK: ; 0x90a83
2015-11-16 18:46:36 -08:00
; DST, is that OK?
text_jump Text_DSTIsThatOK
db "@"
; 0x90a88
InitialClearDSTFlag: ; 90a88
2015-11-16 18:46:36 -08:00
ld a, [wDST]
res 7, a
ld [wDST], a
hlcoord 1, 14
lb bc, 3, 18
call ClearBox
2015-12-18 17:07:09 -08:00
ld hl, .Text
call PlaceHLTextAtBC
2015-11-16 18:46:36 -08:00
ret
; 90aa0
2015-12-18 17:07:09 -08:00
.Text: ; 90aa0
2015-11-16 18:46:36 -08:00
start_asm
call UpdateTime
ld a, [hHours]
ld b, a
ld a, [hMinutes]
ld c, a
decoord 1, 14
2017-12-24 09:47:30 -08:00
farcall PrintHoursMins
2015-12-18 17:07:09 -08:00
ld hl, .IsThatOK
2015-11-16 18:46:36 -08:00
ret
; 90ab7
2015-12-18 17:07:09 -08:00
.IsThatOK: ; 0x90ab7
2015-11-16 18:46:36 -08:00
; , is that OK?
text_jump UnknownText_0x1c5ff1
db "@"
; 0x90abc
2015-12-18 17:07:09 -08:00
DebugDisplayTime: ; 90abc
2015-11-16 18:46:36 -08:00
hlcoord 1, 14
lb bc, 3, SCREEN_WIDTH - 2
call ClearBox
2015-12-18 17:07:09 -08:00
ld hl, .Text
call PlaceHLTextAtBC
2015-11-16 18:46:36 -08:00
ret
; 90acc
2015-12-18 17:07:09 -08:00
.Text: ; 0x90acc
2015-11-16 18:46:36 -08:00
start_asm
call UpdateTime
hlcoord 1, 14
ld [hl], "R"
inc hl
ld [hl], "T"
inc hl
ld [hl], " "
inc hl
ld de, hRTCDayLo
2015-12-18 17:07:09 -08:00
call .PrintTime
2015-11-16 18:46:36 -08:00
hlcoord 1, 16
ld [hl], "D"
inc hl
ld [hl], "F"
inc hl
ld [hl], " "
inc hl
2018-01-23 14:39:09 -08:00
ld de, wStartDay
2015-12-18 17:07:09 -08:00
call .PrintTime
2015-11-16 18:46:36 -08:00
ld [hl], " "
inc hl
ld a, [wDST]
bit 7, a
jr z, .off
ld [hl], "O"
inc hl
ld [hl], "N"
inc hl
jr .done
.off
ld [hl], "O"
inc hl
ld [hl], "F"
inc hl
ld [hl], "F"
inc hl
.done
2015-12-18 17:07:09 -08:00
ld hl, .NowOnDebug
2015-11-16 18:46:36 -08:00
ret
; 90b13
2015-12-18 17:07:09 -08:00
.NowOnDebug: ; 0x90b13
2015-11-16 18:46:36 -08:00
text "<PARA>Now on DEBUG…"
prompt
; 0x90b23
2015-12-18 17:07:09 -08:00
.PrintTime: ; 90b23
2015-11-16 18:46:36 -08:00
lb bc, 1, 3
call PrintNum
ld [hl], "."
inc hl
inc de
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ld [hl], ":"
inc hl
inc de
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
; 90b3e
PrintHour: ; 90b3e (24:4b3e)
ld l, e
ld h, d
push bc
call GetTimeOfDayString
call PlaceString
ld l, c
ld h, b
inc hl
pop bc
call AdjustHourForAMorPM
ld [wd265], a
ld de, wd265
call PrintTwoDigitNumberRightAlign
ret
GetTimeOfDayString: ; 90b58 (24:4b58)
ld a, c
cp MORN_HOUR
2015-11-16 18:46:36 -08:00
jr c, .nite
cp DAY_HOUR
2015-11-16 18:46:36 -08:00
jr c, .morn
cp NITE_HOUR
2015-11-16 18:46:36 -08:00
jr c, .day
.nite
ld de, .nite_string
2015-11-16 18:46:36 -08:00
ret
.morn
ld de, .morn_string
2015-11-16 18:46:36 -08:00
ret
.day
ld de, .day_string
2015-11-16 18:46:36 -08:00
ret
; 90b71 (24:4b71)
.nite_string: db "NITE@"
.morn_string: db "MORN@"
.day_string: db "DAY@"
2015-11-16 18:46:36 -08:00
; 90b7f
AdjustHourForAMorPM:
; Convert the hour stored in c (0-23) to a 1-12 value
ld a, c
or a
jr z, .midnight
cp NOON_HOUR
2015-11-16 18:46:36 -08:00
ret c
ret z
sub NOON_HOUR
2015-11-16 18:46:36 -08:00
ret
.midnight
ld a, NOON_HOUR
2015-11-16 18:46:36 -08:00
ret