Routines |
Prev: 45894 | Up: Map | Next: 46195 |
Used by the routine at GameInitialisation.
|
||||||||||||||||||||
HandlerGameMenu | 46037 | LD A,255 | Write 255 to FlagHallOfFame. | |||||||||||||||||
46039 | LD (38583),A | |||||||||||||||||||
46042 | CALL ClearPlayArea_Attributes | Call ClearPlayArea_Attributes. | ||||||||||||||||||
46045 | CALL ClearPlayArea | Call ClearPlayArea. | ||||||||||||||||||
46048 | LD HL,25030 | HL=Room_Special_MainMenu. | ||||||||||||||||||
46051 | CALL DrawRoom | Call DrawRoom. | ||||||||||||||||||
46054 | CALL GameMenu | Call GameMenu. | ||||||||||||||||||
46057 | CALL HallOfFameCheck | Call HallOfFameCheck. | ||||||||||||||||||
46060 | LD DE,48231 | HL=MusicData_GameComplete. | ||||||||||||||||||
46063 | CALL PlayAudio_WaitKey | Call PlayAudio_WaitKey. | ||||||||||||||||||
HandlerGameMenu_0 | 46066 | CALL GameMenu | Call GameMenu. | |||||||||||||||||
46069 | LD A,247 | Read from the keyboard;
|
||||||||||||||||||
46071 | OUT (253),A | |||||||||||||||||||
46073 | IN A,(254) | |||||||||||||||||||
46075 | CPL | Flip the bits. | ||||||||||||||||||
46076 | LD E,A | Store the result in E. | ||||||||||||||||||
46077 | LD A,(38546) | A=GameOptions. | ||||||||||||||||||
Handle 1UP game selection.
|
||||||||||||||||||||
GameSelect_Check1UP | 46080 | BIT 0,E | Has key "1" been pressed? ("1 PLAYER GAME"). | |||||||||||||||||
46082 | JR Z,GameSelect_Check2UP | If not jump to GameSelect_Check2UP. | ||||||||||||||||||
46084 | RES 0,A | Reset bit 0. | ||||||||||||||||||
Handle 2UP game selection.
|
||||||||||||||||||||
GameSelect_Check2UP | 46086 | BIT 1,E | Has key "2" been pressed? ("2 PLAYER GAME"). | |||||||||||||||||
46088 | JR Z,GameSelect_CheckKeyboard | If not jump to GameSelect_CheckKeyboard. | ||||||||||||||||||
46090 | SET 0,A | Set bit 0. | ||||||||||||||||||
Handle Keyboard selection.
|
||||||||||||||||||||
GameSelect_CheckKeyboard | 46092 | BIT 2,E | Has key "3" been pressed? ("KEYBOARD"). | |||||||||||||||||
46094 | JR Z,GameSelect_CheckKempston | If not jump to GameSelect_CheckKempston. | ||||||||||||||||||
46096 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
Handle Kempston Joystick selection.
|
||||||||||||||||||||
GameSelect_CheckKempston | 46098 | BIT 3,E | Has key "4" been pressed? ("KEMPSTON JOYSTICK"). | |||||||||||||||||
46100 | JR Z,GameSelect_CheckCursor | If not jump to GameSelect_CheckCursor. | ||||||||||||||||||
46102 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
46104 | OR %00000010 | Set control method = 2. | ||||||||||||||||||
Handle Cursor Joystick selection.
|
||||||||||||||||||||
GameSelect_CheckCursor | 46106 | BIT 4,E | Has key "3" been pressed? ("CURSOR JOYSTICK"). | |||||||||||||||||
46108 | JR Z,HandlerGameMenu_1 | If not jump to HandlerGameMenu_1. | ||||||||||||||||||
46110 | AND %11111001 | Keep only bits 0, 3-7. | ||||||||||||||||||
46112 | OR %00000100 | Set control method = 4. | ||||||||||||||||||
This entry point is used by the routine at PlayAudio_WaitKey.
|
||||||||||||||||||||
HandlerGameMenu_1 | 46114 | LD C,A | Temporarily store A (GameOptions) in C. | |||||||||||||||||
46115 | LD A,239 | Read from the keyboard;
|
||||||||||||||||||
46117 | OUT (253),A | |||||||||||||||||||
46119 | IN A,(254) | |||||||||||||||||||
46121 | CPL | Flip the bits. | ||||||||||||||||||
46122 | LD E,A | Store the result in E. | ||||||||||||||||||
46123 | LD A,C | Restore the previous game options value to A. | ||||||||||||||||||
Handle Interface II Joystick selection.
|
||||||||||||||||||||
GameSelect_CheckInterface2 | 46124 | BIT 4,E | Has key "6" been pressed? ("INTERFACE II"). | |||||||||||||||||
46126 | JR Z,HandlerGameMenu_2 | If not jump to HandlerGameMenu_2. | ||||||||||||||||||
46128 | OR %00000110 | Set control method = 6. | ||||||||||||||||||
HandlerGameMenu_2 | 46130 | LD (38546),A | Write A to GameOptions. | |||||||||||||||||
Handle starting a new game.
|
||||||||||||||||||||
GameSelect_Start | 46133 | BIT 0,E | Has key "0" been pressed? ("START GAME"). | |||||||||||||||||
46135 | RET NZ | If so, return. | ||||||||||||||||||
46136 | CALL HallOfFameCheck | Call HallOfFameCheck. | ||||||||||||||||||
46139 | JP HandlerGameMenu_0 | Jump to HandlerGameMenu_0. | ||||||||||||||||||
HallOfFameCheck | 46142 | LD HL,38583 | HL=FlagHallOfFame. | |||||||||||||||||
46145 | LD A,(38546) | A=GameOptions. | ||||||||||||||||||
46148 | CP (HL) | |||||||||||||||||||
46149 | LD (38583),A | Write A to FlagHallOfFame. | ||||||||||||||||||
46152 | CALL HandlerHallOfFame | Call HandlerHallOfFame. | ||||||||||||||||||
Handle flashing each selection.
|
||||||||||||||||||||
46155 | LD HL,46232 | HL=GameSelection_Attributes. | ||||||||||||||||||
46158 | LD A,(38546) | A=GameOptions. | ||||||||||||||||||
46161 | LD C,A | Temporarily store A (GameOptions) in C. | ||||||||||||||||||
There are two player options to choose from (1UP or 2UP game).
|
||||||||||||||||||||
46162 | LD B,2 | B=2. | ||||||||||||||||||
46164 | AND %00000001 | Keep only bit 0 (the player options). | ||||||||||||||||||
46166 | CALL HandlerMenuAttributeFlash | Call HandlerMenuAttributeFlash. | ||||||||||||||||||
46169 | LD A,C | Restore the previous game options value to A. | ||||||||||||||||||
46170 | RRCA | Shift off the 1UP/ 2UP player options. | ||||||||||||||||||
46171 | AND %00000011 | Keep only bits 0-1 (the control options). | ||||||||||||||||||
There are four control methods to choose from.
|
||||||||||||||||||||
46173 | LD B,4 | B=4 (counter). | ||||||||||||||||||
46175 | CALL HandlerMenuAttributeFlash | Call HandlerMenuAttributeFlash. | ||||||||||||||||||
46178 | RET | Return. | ||||||||||||||||||
Selection flashing routine.
|
||||||||||||||||||||
HandlerMenuAttributeFlash | 46179 | AND A | Jump to MenuAttributeUnset if A is zero. | |||||||||||||||||
46180 | JR NZ,MenuAttributeUnset | |||||||||||||||||||
MenuAttributeSet | 46182 | SET 7,(HL) | Set the FLASH attribute for the current selection. | |||||||||||||||||
46184 | JR MenuAttributeNext | Jump to MenuAttributeNext, we're done here. | ||||||||||||||||||
HandlerMenuAttributeFlash_Loop | 46186 | DEC A | Decrease A by one. | |||||||||||||||||
46187 | JR Z,MenuAttributeSet | Jump to MenuAttributeSet if A is zero. | ||||||||||||||||||
MenuAttributeUnset | 46189 | RES 7,(HL) | Unset the FLASH attribute for the current selection. | |||||||||||||||||
MenuAttributeNext | 46191 | INC HL | Move onto the next selection attribute. | |||||||||||||||||
46192 | DJNZ HandlerMenuAttributeFlash_Loop | Decrease counter by one and loop back to HandlerMenuAttributeFlash_Loop until counter is zero. | ||||||||||||||||||
46194 | RET | Return. |
Prev: 45894 | Up: Map | Next: 46195 |