|  | Routines | 
| Prev: 615D | Up: Map | Next: 61BB | 
| 6177 | LD A,$60 | Message 0x60: newline | ||
| 6179 | LD ($7FD2),A | Store this message number at 7FD2 so that it can be watched in the message queue | ||
| 617C | CALL $75CA | Queue the message urgently | ||
| 617F | LD A,$61 | Message 0x61: 'JOYSTICK?' | ||
| 6181 | CALL $75CA | Queue this message urgently | ||
| 6184 | CALL $78FC | Wait until message 0x60 (newline) has left the queue (and therefore 'JOYSTICK?' is displayed) | ||
| 6187 | JR Z,$6184 | |||
| 6189 | CALL $EAD9 | Wait for a keypress and collect its ASCII code in A | ||
| 618C | JR Z,$6189 | |||
| 618E | SET 5,A | Convert the keypress to lower case | ||
| 6190 | LD HL,$61BB | Point HL at the keypress offset patch table at 61BB | ||
| 6193 | LD DE,$C330 | Point DE at the main keypress offset table | ||
| 6196 | LD BC,$000A | There will be 10 bytes to copy | ||
| 6199 | CP $6B | Was 'k' pressed? | ||
| 619B | JR NZ,$61A9 | Jump if not | ||
| 
Now HL points at the appropriate keypress offset patch table (61C5 if 'i' (Int2) was pressed, or 61BB otherwise), and A holds the input device indicator (0x6B if 'k' (Kempston) was pressed, or 0x00 otherwise).
 | ||||
| 619D | PUSH HL | Save the pointer to the keypress offset patch table briefly | ||
| 619E | LD HL,$FFFA | Set the input device indicator for future games at FFFA | ||
| 61A1 | LD (HL),A | |||
| 61A2 | LD H,$7F | Set the input device indicator for the current game at 7FFA | ||
| 61A4 | LD (HL),A | |||
| 61A5 | POP HL | Restore the address of the keypress offset patch table to HL | ||
| 61A6 | LDIR | Update the entries for keys 0-9 in the keypress offset table | ||
| 61A8 | RET | |||
| 
Some key other than 'k' (Kempston) was pressed.
 | ||||
| 61A9 | CP $63 | Was 'c' (Cursor) pressed? | ||
| 61AB | JR Z,$61B5 | Jump if so | ||
| 61AD | CP $6E | Was 'n' (None) pressed? | ||
| 61AF | JR Z,$61B5 | Jump if so | ||
| 61B1 | LD L,$C5 | HL=61C5 (keypress offset patch table for Int2) | ||
| 61B3 | CP $69 | Set the zero flag if 'i' was pressed | ||
| 61B5 | LD A,$00 | 0 indicates that we're not using the Kempston joystick | ||
| 61B7 | JR Z,$619D | Jump if 'i' (Int2) was pressed | ||
| 61B9 | JR $6189 | Otherwise jump back to collect another keypress | ||
| Prev: 615D | Up: Map | Next: 61BB |