Routines |
Prev: 73B6 | Up: Map | Next: 73F1 |
Input method; used by the routine at GetControls.
|
||||
In demo mode, we never let the game run out of fuel or lives.
|
||||
DemoModeInput | 73B7 | LD A,$04 | Write 04 to *Lives. | |
73B9 | LD ($7839),A | |||
73BC | LD HL,$3400 | Write 3400 to *Fuel. | ||
73BF | LD ($783C),HL | |||
73C2 | CALL KeyboardInput | Call KeyboardInput. | ||
73C5 | AND A | Jump to DemoModeControls if no keys are being pressed. | ||
73C6 | JR Z,DemoModeControls | |||
73C8 | NOP | No operation. | ||
73C9 | NOP | |||
73CA | NOP | |||
73CB | NOP | |||
73CC | NOP | |||
73CD | NOP | |||
Any input jumps back to the start screen.
|
||||
73CE | JP StartScreen | Jump to StartScreen. | ||
Randomly send controls for the game.
|
||||
DemoModeControls | 73D1 | CALL GetRandomNumber | Call GetRandomNumber. | |
73D4 | AND %00001100 | Ensure the random number is either 04, 08 or 0C. | ||
73D6 | JR Z,DemoModeControls | |||
73D8 | XOR %00001100 | Flip bits 2-3 so 04 becomes 08, 08 becomes 04 and 0C becomes 00. | ||
73DA | LD HL,($7831) | HL=*7831. | ||
73DD | INC L | Increment L by three. | ||
73DE | INC L | |||
73DF | INC L | |||
73E0 | LD D,A | D=A. | ||
73E1 | LD A,($7822) | A=*Speed. | ||
73E4 | CP (HL) | Compare A with *HL. | ||
73E5 | LD A,$00 | A=00. | ||
73E7 | JR Z,DemoModeInput_1 | Jump to DemoModeInput_1 if A was equal to *HL on line 73E4. | ||
73E9 | JR C,DemoModeInput_0 | Jump to DemoModeInput_0 if A was lower than *HL on line 73E4. | ||
73EB | LD A,$03 | A=03. | ||
DemoModeInput_0 | 73ED | XOR %00000001 | Flip bits 0. | |
DemoModeInput_1 | 73EF | OR D | Set the bits from D. | |
73F0 | RET | Return. |
Prev: 73B6 | Up: Map | Next: 73F1 |