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 |