Prev: 800A Up: Map Next: 80FD
80D1: Game Selection Menu
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.
View the equivalent code in;
Prev: 800A Up: Map Next: 80FD