SETKEYS
.
The other way of reading the actual mapping is not an easy task.
The translation tables reside in different addresses based upon the current BIOS version.
; ; Routine reads a character from keyboard ; ; Carry flag is set if input available ; Accu holds character ; call XBIOS ; Read key dw 00dah ret nc ; No key pressed ; ; Analyze key number in reg C here. ; (E.g. cursor keys, number 6, 14, 15 and 79) ; ; If a key searched for will be found Accu must hold a ; value and the carry flag must be set ; .... ; ; Carry on if no control key found ; call XBIOS ; Rewrite number and state from registers B and C dw 00ddh ld c,6 ld e,-1 call BDOS ; Read character or a ret z ; No character read scf ret |
− | No value assigned | ??? | No meaning in CP/M 3 | ||||
No. | Key | Hex value | Meaning in CP/M 3 | No. | Key | Hex value | Meaning in CP/M 3 |
---|---|---|---|---|---|---|---|
0 | f4 f3 | 0x11 | Next screen | 15 | ← | 0x01 | Cursor left |
1 | RELAY | 0x12 | Left character into new line | 16 | DEL→ | 0x07 | Delete character on the right |
2 | f2 f1 | 0x1A | End of file | 18 | RETURN | 0x0D | End of line |
3 | PASTE | 0x17 | Recall previous line | 20 | EXCH FIND | 0x1D | ??? |
4 | UNIT PARA | − | − | 23 | [+] | 0x16 | ??? |
5 | WORD CHAR | 0x06 | Cursor right | 66 | STOP | 0x03 | Warmstart |
6 | → | 0x06 | Cursor right | 68 | TAB | 0x09 | Tabulator |
7 | − | − | 72 | ←DEL | 0x7F | Delete character on the left | |
8 | EXIT | (0x1B ) | ESCape | 73 | f6 f5 | 0x13 | Stop screen output |
10 | CUT | 0x14 | Writes character left to buffer | 75 | CAN | 0x08 | Cancel |
11 | COPY | 0x17 | Recalls previous line | 76 | [-] | 0x1C | ??? |
12 | DOC PAGE | − | − | 77 | f8 f7 | 0x10 | Toggle list output |
13 | LINE EOL | 0x06 0x02 | Cursor to start of line | 78 | ENTER | 0x0D | End of line |
14 | ↑ | 0x1F | Cursor up | 79 | ↓ | 0x1E | Cursor down |