Prev: 32812 Up: Map Next: 33021
32977: Game Selection Menu
Used by the routine at Game_Restart.
GameMenu 32977 LD DE,33038 DE=GameSelection_Attributes.
32980 EXX Switch to the shadow registers.
32981 LD HL,33045 HL'=GameSelection_Position.
32984 LD DE,33052 DE'=String_GameSelection.
There are seven lines of text.
32987 LD B,7 B'=7 (counter).
GameMenu_Loop 32989 EXX Switch back to the normal registers.
32990 LD A,(DE) Copy a byte from DE to Current_MenuAttr.
32991 LD (24166),A
32994 INC DE Increment DE by one.
32995 EXX Switch to the shadow registers.
32996 PUSH BC Stash BC' on the stack.
32997 LD A,(HL) A=HL' (grab the position data).
32998 INC HL Increment HL' (position data pointer) by one.
32999 PUSH HL Stash HL' (position data pointer) on the stack.
33000 LD H,A H'=A L'=56.
33001 LD L,56
33003 CALL MenuWriteText Call MenuWriteText.
33006 EXX Switch back to the normal registers.
33007 POP HL Restore HL and BC from the stack.
33008 POP BC
33009 INC DE Increment DE by one.
33010 DJNZ GameMenu_Loop Decrease counter by one and loop back to GameMenu_Loop until counter is zero.
33012 LD HL,47104 HL=47104 (screen buffer location).
33015 LD DE,33162 DE=String_Copyright.
33018 JP PrintStringColour Jump to PrintStringColour.
View the equivalent code in;
Prev: 32812 Up: Map Next: 33021