![]() |
Routines |
| Prev: F2CE | Up: Map | Next: F349 |
|
Used by the routine at StartGame.
|
|||||
|
|||||
| Draw_TimeBar | F31E | LD HL,$50E1 | Set the location of where to start drawing the time bar in HL (50E1 in the screen buffer). | ||
| F321 | LD B,$14 | Set a counter in B for the total length. | |||
| Draw_TimeBar_Loop | F323 | LD C,$04 | Set a pixel counter in C for the height of each segment. | ||
| F325 | PUSH HL | Stash the current screen position on the stack. | |||
| Draw_TimeBarColumn | F326 | SCF | Set the carry flag (prepare for the right rotation). | ||
| F327 | RR (HL) | Rotate *HL right one position. | |||
| F329 | JP C,TimeBarNextColumn | If the carry flag is set after the rotation, move to the next column - jump to TimeBarNextColumn. | |||
| F32C | INC H | Increment H by one. | |||
| F32D | DEC C | Decrease the pixel counter by one. | |||
| F32E | JP NZ,Draw_TimeBarColumn | Jump back to Draw_TimeBarColumn until the full height of the bar has been drawn. | |||
| F331 | POP HL | Restore the screen position from the stack. | |||
| F332 | JP Draw_TimeBar_Loop | Keep jumping back to Draw_TimeBar_Loop. | |||
| TimeBarNextColumn | F335 | POP HL | Restore the screen position from the stack. | ||
| F336 | INC HL | Increment the screen position by one. | |||
|
Wait for the next frame.
|
|||||
| F337 | HALT | Halt operation (suspend CPU until the next interrupt). | |||
| F338 | DJNZ Draw_TimeBar_Loop | Decrease the length counter by one and loop back to Draw_TimeBar_Loop until the entire time bar has been drawn. | |||
|
Set up the time bar being active and counting down in the game.
|
|||||
| F33A | DEC HL | Decrease the screen position by one and write it to *TimeBar_CurrentPosition. | |||
| F33B | LD ($D85B),HL | ||||
| F33E | LD A,$01 | Set *TimeBar_Active to 01 to make it active. | |||
| F340 | LD ($D85D),A | ||||
| F343 | LD A,$14 | Set *TimeBar_Length to 14 for the length in character blocks. | |||
| F345 | LD ($D85E),A | ||||
| F348 | RET | Return. | |||
| Prev: F2CE | Up: Map | Next: F349 |