Prev: A62E Up: Map Next: A6C7
A675: Game Selection Menu
Used by the routine at GameEntryPoint.
Prints "Please select method of control".
GameMenu A675 LD HL,$AB8B HL=Messaging_SelectControl.
A678 LD DE,$4820 DE=4820 (screen buffer location).
A67B CALL PrintString Call PrintString.
Prints "1 : Keyboard ( cursor keys )".
A67E LD HL,$ABAB HL=Messaging_SelectKeyboard.
A681 LD DE,$4861 DE=4861 (screen buffer location).
A684 CALL PrintString Call PrintString.
Prints "2 : Kempston joystick".
A687 LD HL,$ABC8 HL=Messaging_SelectKempston.
A68A LD DE,$4881 DE=4881 (screen buffer location).
A68D CALL PrintString Call PrintString.
Prints "3 : Interface 2".
A690 LD HL,$ABDE HL=Messaging_SelectInterface2.
A693 LD DE,$48A1 DE=48A1 (screen buffer location).
A696 CALL PrintString Call PrintString.
Prints "4 : Cursor key type joysticks".
A699 LD HL,$ABEE HL=Messaging_SelectCursor.
A69C LD DE,$48C1 DE=48C1 (screen buffer location).
A69F CALL PrintString Call PrintString.
Handle retrieving the players input.
A6A2 LD BC,$F7FE Read from the keyboard;
Port Number Bit
0 1 2 3 4
F7 1 2 3 4 5
GameMenu_Loop A6A5 IN A,(C)
A6A7 BIT 0,A If "1" is pressed, set HL to Handler_Controls_Keyboard and jump to GameMenu_WriteControl.
A6A9 LD HL,$B6BF
A6AC JR Z,GameMenu_WriteControl
A6AE BIT 3,A If "4" is pressed jump to GameMenu_WriteControl.
A6B0 JR Z,GameMenu_WriteControl
A6B2 LD HL,$B6E5 If "2" is pressed, set HL to Handler_Controls_Kempston and jump to GameMenu_WriteControl.
A6B5 BIT 1,A
A6B7 JR Z,GameMenu_WriteControl
A6B9 LD HL,$B703 If "3" is not pressed, set HL to Handler_Controls_Interface2 and jump to GameMenu_Loop.
A6BC BIT 2,A
A6BE JR NZ,GameMenu_Loop
The controller routine is written as the target address for a CALL operation at Handler_Controls.
GameMenu_WriteControl A6C0 LD ($B6BC),HL Write the appropriate controller location from HL into the CALL target at *B6BC.
A6C3 CALL PressAnyKey_0 Call PressAnyKey_0.
A6C6 RET Return.
Prev: A62E Up: Map Next: A6C7