Prev: B3D5 Up: Map Next: B498
B473: Game Selection Menu
Used by the routines at HandlerHallOfFame and HandlerGameMenu.
GameMenu B473 LD DE,$B498 DE=GameSelection_Attributes.
B476 EXX Switch to the shadow registers.
B477 LD HL,$B4A0 HL'=GameSelection_Position.
B47A LD DE,$B4B0 DE'=GameSelection_Text.
There are eight lines of text.
B47D LD B,$08 B'=08 (counter).
This entry point is used by the routines at HallOfFame and NewHighScore.
GameMenu_Loop B47F EXX Switch back to the normal registers.
B480 LD A,(DE) Copy a byte from DE to Current_MenuAttr.
B481 LD ($96A8),A
B484 INC DE Increment DE by one.
B485 EXX Switch to the shadow registers.
B486 PUSH BC Stash BC' on the stack.
B487 LD A,(HL) A=HL' (grab the position data).
B488 INC HL Increment HL' (position data pointer) by two.
B489 INC HL
B48A PUSH HL Stash HL' (position data pointer) on the stack.
B48B DEC HL Decrease HL' (position data pointer) by one.
B48C LD H,(HL) A=HL' (grab the position data).
B48D LD L,A L'=A.
B48E CALL MenuWriteText Call MenuWriteText.
B491 EXX Switch back to the normal registers.
B492 POP HL Restore HL and BC from the stack.
B493 POP BC
B494 INC DE Increase DE by one.
B495 DJNZ GameMenu_Loop Decrease counter by one and loop back to GameMenu_Loop until counter is zero.
B497 RET Return.
View the equivalent code in;
Prev: B3D5 Up: Map Next: B498