![]() |
Routines |
| Prev: 92E4 | Up: Map | Next: 932C |
|
|
||||
| Time_Counter | 92FF | DEFB $F0,$D8 | Guessing at the length. | |
| 9301 | DEFB $18,$FC | |||
| 9303 | DEFB $9C,$FF | |||
| 9305 | DEFB $F6,$FF | |||
| 9307 | DEFB $FF,$FF | Terminator. | ||
|
On entry HL contains the time as the LSB, e.g. for 30s HL will be 001E.
|
||||
| Process_Time | 9309 | PUSH HL | Pushes HL, DE and BC onto the stack. | |
| 930A | PUSH DE | |||
| 930B | PUSH BC | |||
| 930C | LD DE,$92FF | Point to Time_Counter. | ||
| Process_Time_Loop | 930F | LD A,(DE) | Load the next byte pair from the address pointer into BC. | |
| 9310 | LD C,A | |||
| 9311 | INC DE | |||
| 9312 | LD A,(DE) | |||
| 9313 | LD B,A | |||
| 9314 | INC DE | Increase the address pointer by one and stash it on the stack for later. | ||
| 9315 | PUSH DE | |||
| 9316 | LD A,$2F | Store 2F in A. | ||
|
Count "up" from ASCII "0" until the correct representation is reached.
|
||||
| Process_Time_Char | 9318 | INC A | Increment A by one (so on the first pass A will now contain ASCII "0"). | |
| 9319 | LD D,H | Copy the remaining time into DE. | ||
| 931A | LD E,L | |||
| 931B | ADD HL,BC | Adds the remaining time to the 16-bit number held in BC. | ||
| 931C | JR C,Process_Time_Char | If the carry flag is set loop back to Process_Time_Char. | ||
| 931E | EX DE,HL | Swap the DE and HL registers. | ||
| 931F | LD (IX+$00),A | Write the processed ASCII number character to the time print buffer. | ||
| 9322 | INC IX | Increment IX by one to process the next character in the time buffer once looped around. | ||
| 9324 | POP DE | Restore the byte pair address pointer from the stack. | ||
| 9325 | INC C | Loop back to Process_Time_Loop until the terminator is reached (FF+01 will set the zero flag). | ||
| 9326 | JR NZ,Process_Time_Loop | |||
| 9328 | POP BC | Restores BC, DE and HL from the stack. | ||
| 9329 | POP DE | |||
| 932A | POP HL | |||
| 932B | RET | Return. | ||
| Prev: 92E4 | Up: Map | Next: 932C |