Prev: 61EB Up: Map Next: 628D
6260: Game Selection Menu
Used by the routine at GameInitialisation.
GameMenu 6260 LD DE,$628D DE=GameSelection_Attributes.
6263 EXX Switch to the shadow registers.
6264 LD HL,$6293 HL'=GameSelection_Position.
6267 LD DE,$6299 DE'=GameSelection_Text.
There are six lines of text.
626A LD B,$06 B'=06 (counter).
GameMenu_Loop 626C EXX Switch back to the normal registers.
626D LD A,(DE) Copy a byte from DE to Current_MenuAttr.
626E LD ($5DD6),A
6271 INC DE Increment DE by one.
6272 EXX Switch to the shadow registers.
6273 PUSH BC Stash BC' on the stack.
6274 LD A,(HL) A=HL' (grab the position data).
6275 INC HL Increment HL' (position data pointer) by one.
6276 PUSH HL Stash HL' (position data pointer) on the stack.
6277 LD H,A H'=A L'=30.
6278 LD L,$30
627A CALL PrintMenuItem Call PrintMenuItem.
627D EXX Switch back to the normal registers.
627E POP HL Restore HL and BC from the stack.
627F POP BC
6280 INC DE Increase DE by one.
6281 DJNZ GameMenu_Loop Decrease counter by one and loop back to GameMenu_Loop until counter is zero.
6283 LD HL,$B800 HL=B800 (screen buffer position).
6286 LD DE,$6040 DE=Message_Rights.
6289 CALL PrintString Call PrintString.
628C RET Return.
View the equivalent code in;
Prev: 61EB Up: Map Next: 628D