Prev: 25067 Up: Map Next: 25229
25184: Game Selection Menu
Used by the routine at GameInitialisation.
GameMenu 25184 LD DE,25229 DE=GameSelection_Attributes.
25187 EXX Switch to the shadow registers.
25188 LD HL,25235 HL'=GameSelection_Position.
25191 LD DE,25241 DE'=GameSelection_Text.
There are six lines of text.
25194 LD B,6 B'=6 (counter).
GameMenu_Loop 25196 EXX Switch back to the normal registers.
25197 LD A,(DE) Copy a byte from DE to Current_MenuAttr.
25198 LD (24022),A
25201 INC DE Increment DE by one.
25202 EXX Switch to the shadow registers.
25203 PUSH BC Stash BC' on the stack.
25204 LD A,(HL) A=HL' (grab the position data).
25205 INC HL Increment HL' (position data pointer) by one.
25206 PUSH HL Stash HL' (position data pointer) on the stack.
25207 LD H,A H'=A L'=48.
25208 LD L,48
25210 CALL PrintMenuItem Call PrintMenuItem.
25213 EXX Switch back to the normal registers.
25214 POP HL Restore HL and BC from the stack.
25215 POP BC
25216 INC DE Increase DE by one.
25217 DJNZ GameMenu_Loop Decrease counter by one and loop back to GameMenu_Loop until counter is zero.
25219 LD HL,47104 HL=47104 (screen buffer position).
25222 LD DE,24640 DE=Message_Rights.
25225 CALL PrintString Call PrintString.
25228 RET Return.
View the equivalent code in;
Prev: 25067 Up: Map Next: 25229