Prev: 60365 Up: Map Next: 60473
60405: Input Handler: Common
Handle game controls which are common across all input control routines.
InputHandler_Common 60405 POP IX Housekeeping; see Handler_PlayerInput. Restore IX and HL from the stack.
60407 POP HL
60408 LD A,(55352) Jump to Common_Continue if bit 7 of *Bomb is set.
60411 BIT 7,A
60413 JR NZ,Common_Continue
Handler for HOLD ("H").
60415 LD A,191 Read from the keyboard;
Port Number Bit
0 1 2 3 4
191 ENTER L K J H
60417 IN A,(254)
60419 RRA Jump to Common_CheckAbort if "H" (hold) is not being pressed.
60420 RRA
60421 RRA
60422 RRA
60423 RRA
60424 JR C,Common_CheckAbort
60426 LD A,R A=the contents of the Memory Refresh Register.
60428 PUSH AF Stash AF on the stack.
60429 DI Disable interrupts.
Handler for CONTINUE ("J").
Common_CheckContinue 60430 LD A,191 Read from the keyboard;
Port Number Bit
0 1 2 3 4
191 ENTER L K J H
60432 IN A,(254)
60434 RRA Jump to Common_CheckContinue if "J" (continue) is not being pressed.
60435 RRA
60436 RRA
60437 RRA
60438 JR C,Common_CheckContinue
60440 POP AF Restore AF from the stack.
60441 JP PO,Common_CheckAbort Jump to Common_CheckAbort if is odd.
60444 EI Enable interrupts.
Handler for ABORT ("R" and "T" together).
Common_CheckAbort 60445 LD A,251 Read from the keyboard;
Port Number Bit
0 1 2 3 4
251 Q W E R T
60447 IN A,(254)
60449 RRA Jump to Common_Continue if "R" (abort game - first key) is not being pressed.
60450 RRA
60451 RRA
60452 RRA
60453 JR C,Common_Continue
60455 RRA Jump to Common_Continue if "T" (abort game - second key) is not being pressed.
60456 JR C,Common_Continue
Initiate a game abort, do some housekeeping.
60458 POP IY Restore IY from the stack FOUR times.
60460 POP IY
60462 POP IY
60464 POP IY
60466 JP Game_Loop Jump to Game_Loop.
Load the control byte into the accumulator for the return to the calling routine.
Common_Continue 60469 LD A,(58802) A=*Data_Control.
60472 RET Return.
Prev: 60365 Up: Map Next: 60473