Spectrum ROM | Routines |
Prev: 00703 | Up: Map |
The key value is tested and a return made if 'no-key' or 'shift-only'; otherwise the 'main code' for that key is found.
|
|||||||
K_TEST | 00798 | LD B,D | Copy the shift byte. | ||||
00799 | LD D,0 | Clear the D register for later. | |||||
00801 | LD A,E | Move the key number. | |||||
00802 | CP 39 | Return now if the key was 'CAPS SHIFT' only or 'no-key'. | |||||
00804 | RET NC | ||||||
00805 | CP 24 | Jump forward unless the E key was SYMBOL SHIFT. | |||||
00807 | JR NZ,K_MAIN | ||||||
00809 | BIT 7,B | However accept SYMBOL SHIFT and another key; return with SYMBOL SHIFT only. | |||||
00811 | RET NZ | ||||||
The 'main code' is found by indexing into the main key table.
|
|||||||
K_MAIN | 00812 | LD HL,517 | The base address of the main key table. | ||||
00815 | ADD HL,DE | Index into the table and fetch the 'main code'. | |||||
00816 | LD A,(HL) | ||||||
00817 | SCF | Signal 'valid keystroke' before returning. | |||||
00818 | RET |
Prev: 00703 | Up: Map |