Routines |
Prev: 24925 | Up: Map | Next: 25019 |
24951 | LD A,96 | Message 96: newline | ||
24953 | LD (32722),A | Store this message number at 32722 so that it can be watched in the message queue | ||
24956 | CALL 30154 | Queue the message urgently | ||
24959 | LD A,97 | Message 97: 'JOYSTICK?' | ||
24961 | CALL 30154 | Queue this message urgently | ||
24964 | CALL 30972 | Wait until message 96 (newline) has left the queue (and therefore 'JOYSTICK?' is displayed) | ||
24967 | JR Z,24964 | |||
24969 | CALL 60121 | Wait for a keypress and collect its ASCII code in A | ||
24972 | JR Z,24969 | |||
24974 | SET 5,A | Convert the keypress to lower case | ||
24976 | LD HL,25019 | Point HL at the keypress offset patch table at 25019 | ||
24979 | LD DE,49968 | Point DE at the main keypress offset table | ||
24982 | LD BC,10 | There will be 10 bytes to copy | ||
24985 | CP 107 | Was 'k' pressed? | ||
24987 | JR NZ,25001 | Jump if not | ||
Now HL points at the appropriate keypress offset patch table (25029 if 'i' (Int2) was pressed, or 25019 otherwise), and A holds the input device indicator (107 if 'k' (Kempston) was pressed, or 0 otherwise).
|
||||
24989 | PUSH HL | Save the pointer to the keypress offset patch table briefly | ||
24990 | LD HL,65530 | Set the input device indicator for future games at 65530 | ||
24993 | LD (HL),A | |||
24994 | LD H,127 | Set the input device indicator for the current game at 32762 | ||
24996 | LD (HL),A | |||
24997 | POP HL | Restore the address of the keypress offset patch table to HL | ||
24998 | LDIR | Update the entries for keys 0-9 in the keypress offset table | ||
25000 | RET | |||
Some key other than 'k' (Kempston) was pressed.
|
||||
25001 | CP 99 | Was 'c' (Cursor) pressed? | ||
25003 | JR Z,25013 | Jump if so | ||
25005 | CP 110 | Was 'n' (None) pressed? | ||
25007 | JR Z,25013 | Jump if so | ||
25009 | LD L,197 | HL=25029 (keypress offset patch table for Int2) | ||
25011 | CP 105 | Set the zero flag if 'i' was pressed | ||
25013 | LD A,0 | 0 indicates that we're not using the Kempston joystick | ||
25015 | JR Z,24989 | Jump if 'i' (Int2) was pressed | ||
25017 | JR 24969 | Otherwise jump back to collect another keypress |
Prev: 24925 | Up: Map | Next: 25019 |