![]() |
Routines |
| Prev: 800A | Up: Map | Next: 80FD |
|
Used by the routine at GameInitialisation.
|
||||
| GameMenu | 80D1 | LD DE,$810E | DE=GameSelection_Attributes. | |
| 80D4 | EXX | Switch to the shadow registers. | ||
| 80D5 | LD HL,$8115 | HL'=GameSelection_Position. | ||
| 80D8 | LD DE,$811C | DE'=GameSelection_Title. | ||
|
There are seven lines of text.
|
||||
| 80DB | LD B,$07 | B'=07 (counter). | ||
| GameMenu_Loop | 80DD | EXX | Switch back to the normal registers. | |
| 80DE | LD A,(DE) | Copy a byte from DE to Current_MenuAttr. | ||
| 80DF | LD ($5E66),A | |||
| 80E2 | INC DE | Increment DE by one. | ||
| 80E3 | EXX | Switch to the shadow registers. | ||
| 80E4 | PUSH BC | Stash BC' on the stack. | ||
| 80E5 | LD A,(HL) | A=HL' (grab the position data). | ||
| 80E6 | INC HL | Increment HL' (position data pointer) by one. | ||
| 80E7 | PUSH HL | Stash HL' (position data pointer) on the stack. | ||
| 80E8 | LD H,A | H'=A L'=38. | ||
| 80E9 | LD L,$38 | |||
| 80EB | CALL MenuWriteText | Call MenuWriteText. | ||
| 80EE | EXX | Switch back to the normal registers. | ||
| 80EF | POP HL | Restore HL and BC from the stack. | ||
| 80F0 | POP BC | |||
| 80F1 | INC DE | Increment DE by one. | ||
| 80F2 | DJNZ GameMenu_Loop | Decrease counter by one and loop back to GameMenu_Loop until counter is zero. | ||
| 80F4 | LD HL,$B800 | HL=B800 (screen buffer location). | ||
| 80F7 | LD DE,$818A | DE=Message_Copyright. | ||
| 80FA | JP PrintStringColour | Jump to PrintStringColour. | ||
| Prev: 800A | Up: Map | Next: 80FD |