![]() |
Routines |
| Prev: 71BD | Up: Map | Next: 71FA |
| 71BE | LD A,($7FEC) | A=0 if we're using the keyboard, 1 if using Kempston | ||
| 71C1 | AND A | Are we using the keyboard? | ||
| 71C2 | JR Z,$71E2 | Jump if so | ||
| 71C4 | IN A,($1F) | |||
| 71C6 | AND $1F | Any input from the joystick? | ||
| 71C8 | JR Z,$71E2 | Jump if not | ||
| 71CA | LD L,$50 | 0x50='P' (RIGHT) | ||
| 71CC | RRCA | |||
| 71CD | JR C,$71DF | Jump if the joystick was moved right | ||
| 71CF | DEC L | L=0x4F='O' (LEFT) | ||
| 71D0 | RRCA | |||
| 71D1 | JR C,$71DF | Jump if the joystick was moved left | ||
| 71D3 | LD L,$41 | 0x41='A' (DOWN) | ||
| 71D5 | RRCA | |||
| 71D6 | JR C,$71DF | Jump if the joystick was moved down | ||
| 71D8 | LD L,$51 | 0x51='Q' (UP) | ||
| 71DA | RRCA | |||
| 71DB | JR C,$71DF | Jump if the joystick was moved up | ||
| 71DD | LD L,$66 | 0x66='f' (fire) | ||
| 71DF | LD A,L | Pass the appropriate character code to A | ||
| 71E0 | AND A | Reset the zero flag (we have input) | ||
| 71E1 | RET | |||
|
This entry point is used by the startup routines at 51A0, 52A0 and 54A0.
|
||||
| 71E2 | LD HL,$5C3B | Point HL at the system variable FLAGS | ||
| 71E5 | BIT 5,(HL) | Check the keypress flag | ||
| 71E7 | RES 5,(HL) | Reset the flag ready for the next keypress | ||
| 71E9 | RET Z | Return if no key was pressed | ||
| 71EA | LD A,($5C08) | Collect the ASCII code of the key last pressed | ||
| 71ED | CP $0D | Was it ENTER? | ||
| 71EF | JR Z,$71F5 | Jump if so | ||
| 71F1 | CP $20 | Was it a control character? | ||
| 71F3 | JR C,$71F8 | Jump if so | ||
| 71F5 | CP $80 | Was it an extended character? | ||
| 71F7 | RET C | Return if not | ||
|
This entry point is used by the routine at 71BE.
|
||||
| 71F8 | XOR A | Set the zero flag to indicate that no (relevant) key was pressed | ||
| 71F9 | RET | |||
| Prev: 71BD | Up: Map | Next: 71FA |