![]() |
Routines |
| Prev: 808A | Up: Map | Next: 80D1 |
|
Used by the routine at 8000.
|
||||
| 8092 | LD IX,$8122 | 8122 = options data | ||
| 8096 | LD IY,$826B | 826B = strings to print | ||
| 809A | LD B,$05 | Five lines | ||
| 809C | PUSH BC | Remember number of lines. | ||
|
This entry point is used by the routines at 91E8 (printing the score) and 949E (printing the number of lives).
|
||||
| 809D | LD H,$00 | Put the Y position in HL. | ||
| 809F | LD L,(IX+$01) | |||
| 80A2 | ADD HL,HL | Double it to point at a whole word. | ||
| 80A3 | LD DE,$EA60 | Add the base pointer to screen addresses (EA60). so HL now points to the right row on screen. | ||
| 80A6 | ADD HL,DE | |||
| 80A7 | LD D,$00 | Put the X position in DE. | ||
| 80A9 | LD E,(IX+$00) | |||
| 80AC | LD A,(HL) | Extract the screen address for this row and put it in HL. | ||
| 80AD | INC HL | |||
| 80AE | LD H,(HL) | |||
| 80AF | LD L,A | |||
| 80B0 | ADD HL,DE | Add the column, so HL points to the correct place on screen. | ||
| 80B1 | LD A,(IY+$00) | Get the character to print. | ||
| 80B4 | RES 7,A | Bit 7 is used as a string terminator, not used here. | ||
| 80B6 | CALL $80D1 | Print the character. | ||
| 80B9 | LD A,(IY+$00) | Get the character again. | ||
| 80BC | INC IY | Move to the next character. | ||
| 80BE | INC HL | Move to the next screen position. | ||
| 80BF | BIT 7,A | If bit 7 is not set, loop back to print the next character. | ||
| 80C1 | JR Z,$80B1 | |||
| 80C3 | INC IX | Move to the next location data. | ||
| 80C5 | INC IX | |||
| 80C7 | INC IX | |||
| 80C9 | INC IX | |||
| 80CB | INC IX | |||
| 80CD | POP BC | Restore the number of lines. | ||
| 80CE | DJNZ $809C | Loop back round if there is more to do, otherwise exit. | ||
| 80D0 | RET | |||
| Prev: 808A | Up: Map | Next: 80D1 |