![]() |
Routines |
| Prev: 60032 | Up: Map | Next: 60120 |
|
Used by the routine at 31126. Returns with the zero flag set if no game keys were pressed. Otherwise returns with A holding the value from the keypress offset table corresponding to the last key pressed or joystick movement made. This offset (an odd number from 1 to 39) points at an entry in the table of keypress handling routines at 60672.
|
||||
| 60082 | CALL 60121 | Collect the ASCII code of the last key pressed in A | ||
| 60085 | JR NZ,60146 | Jump if a key was pressed | ||
| 60087 | LD A,(32762) | Collect the input device indicator from 32762 | ||
| 60090 | AND A | Are we using the Kempston joystick? | ||
| 60091 | RET Z | Return with the zero flag set if not | ||
|
We are using the Kempston joystick.
|
||||
| 60092 | IN A,(31) | Take a reading from the joystick port | ||
| 60094 | AND 31 | Any input from the joystick? | ||
| 60096 | RET Z | Return if not | ||
| 60097 | LD L,80 | 80='P' (RIGHT) | ||
| 60099 | RRCA | Was the joystick moved right? | ||
| 60100 | JR C,60147 | Jump if so | ||
| 60102 | DEC L | L=79='O' (LEFT) | ||
| 60103 | RRCA | Was the joystick moved left? | ||
| 60104 | JR C,60147 | Jump if so | ||
| 60106 | LD L,65 | 65='A' (DOWN) | ||
| 60108 | RRCA | Was the joystick moved down? | ||
| 60109 | JR C,60147 | Jump if so | ||
| 60111 | LD L,81 | 81='Q' (UP) | ||
| 60113 | RRCA | Was the joystick moved up? | ||
| 60114 | JR C,60147 | Jump if so | ||
| 60116 | LD L,107 | 107='k' (knock on or open a door) | ||
| 60118 | JR 60147 | Collect and return the keypress offset that corresponds to the joystick movement | ||
| Prev: 60032 | Up: Map | Next: 60120 |