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