![]() |
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 |