![]() |
Routines |
| Prev: 29117 | Up: Map | Next: 29178 |
| 29118 | LD A,(32748) | A=0 if using 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 character 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 no (relevant) key was pressed |
| 29177 | RET | |
| Prev: 29117 | Up: Map | Next: 29178 |