![]() |
Routines |
| Prev: A62E | Up: Map | Next: A6C7 |
|
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;
|
||||||||||||||||||
| 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 |