![]() |
Routines |
| Prev: 29117 | Up: Map | Next: 29178 |
| 29118 | LD A,(32748) | A=0 if we're using the keyboard, 1 if using Kempston | ||
| 29121 | AND A | Are we using the keyboard? | ||
| 29122 | JR Z,29154 | Jump if so | ||
| 29124 | IN A,(31) | |||
| 29126 | AND 31 | Any input from the joystick? | ||
| 29128 | JR Z,29154 | Jump if not | ||
| 29130 | LD L,80 | 80='P' (RIGHT) | ||
| 29132 | RRCA | |||
| 29133 | JR C,29151 | Jump if the joystick was moved right | ||
| 29135 | DEC L | L=79='O' (LEFT) | ||
| 29136 | RRCA | |||
| 29137 | JR C,29151 | Jump if the joystick was moved left | ||
| 29139 | LD L,65 | 65='A' (DOWN) | ||
| 29141 | RRCA | |||
| 29142 | JR C,29151 | Jump if the joystick was moved down | ||
| 29144 | LD L,81 | 81='Q' (UP) | ||
| 29146 | RRCA | |||
| 29147 | JR C,29151 | Jump if the joystick was moved up | ||
| 29149 | LD L,102 | 102='f' (fire) | ||
| 29151 | LD A,L | Pass the appropriate character code to A | ||
| 29152 | AND A | Reset the zero flag (we have input) | ||
| 29153 | RET | |||
|
This entry point is used by the startup routines at 20896, 21152 and 21664.
|
||||
| 29154 | LD HL,23611 | Point HL at the system variable FLAGS | ||
| 29157 | BIT 5,(HL) | Check the keypress flag | ||
| 29159 | RES 5,(HL) | Reset the flag ready for the next keypress | ||
| 29161 | RET Z | Return if no key was pressed | ||
| 29162 | LD A,(23560) | Collect the ASCII code of the key last pressed | ||
| 29165 | CP 13 | Was it ENTER? | ||
| 29167 | JR Z,29173 | Jump if so | ||
| 29169 | CP 32 | Was it a control character? | ||
| 29171 | JR C,29176 | Jump if so | ||
| 29173 | CP 128 | Was it an extended character? | ||
| 29175 | RET C | Return if not | ||
|
This entry point is used by the routine at 29118.
|
||||
| 29176 | XOR A | Set the zero flag to indicate that no (relevant) key was pressed | ||
| 29177 | RET | |||
| Prev: 29117 | Up: Map | Next: 29178 |