Keycode Reference
The Prizm's syscalls and related keyboard functions use different methods of representing keys. These values vary in size and are tied to specific groups of syscalls. The Reading Input tutorial page has information on such syscalls and their uses.
Contents
Matrix Key Codes
Matrix Hexadecimal Codes | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 070A |
F2 060A |
F3 050A |
F4 040A |
F5 030A |
F6 020A | |||||||||
Shift 0709 |
Optn 0609 |
Vars 0509 |
Menu 0409 |
| ||||||||||
Alpha 0708 |
𝓍² 0608 |
^ 0508 |
Exit 0408 | |||||||||||
X,θ,T 0707 |
log 0607 |
ln 0507 |
sin 0407 |
cos 0307 |
tan 0207 | |||||||||
ab/c 0706 |
F↔D 0606 |
( 0506 |
) 0406 |
, 0306 |
→ 0206 |
7 0705 |
8 0605 |
9 0505 |
DEL 0405 |
AC/ON 0101 |
4 0704 |
5 0604 |
6 0504 |
× 0404 |
÷ 0304 |
1 0703 |
2 0603 |
3 0503 |
+ 0403 |
- 0303 |
0 0702 |
. 0602 |
EXP 0502 |
(‒) 0402 |
EXE 0302 |
The matrix key codes are a 2 byte column/row pair specified as 0xCCRR. These correlate to the column and row of the keyboard matrix that the key is located at. The following functions use this key format:
- GetKeyWait_OS
- Keyboard_PutKeycode (first two parameters)
The two tables in this section show the same information, presented in different ways.
Matrix Hexadecimal Codes | |||||||
---|---|---|---|---|---|---|---|
F1 | F2 | F3 | F4 | F5 | F6 | 0A | |
SHIFT | OPTN | VARS | MENU | ← | ↑ | 09 | |
ALPHA | x^2 | ^ | EXIT | ↓ | → | 08 | |
X,θ,T | log | ln | sin | cos | tan | 07 | |
a b/c | F↔D | ( | ) | , | → | 06 | |
7 | 8 | 9 | DEL | 05 | |||
4 | 5 | 6 | × | ÷ | 04 | ||
1 | 2 | 3 | + | - | 03 | ||
0 | . | EXP | (-) | EXE | 02 | ||
AC/On | 01 | ||||||
07 | 06 | 05 | 04 | 03 | 02 | 01 |
Program Key Codes
Program Codes | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 79 |
F2 69 |
F3 59 |
F4 49 |
F5 39 |
F6 29 | |||||||||
Shift 78 |
Optn 68 |
Vars 58 |
Menu 48 |
| ||||||||||
Alpha 77 |
𝓍² 67 |
^ 57 |
Exit 47 | |||||||||||
X,θ,T 76 |
log 66 |
ln 56 |
sin 46 |
cos 36 |
tan 26 | |||||||||
ab/c 75 |
F↔D 65 |
( 55 |
) 45 |
, 35 |
→ 25 |
7 74 |
8 64 |
9 54 |
DEL 44 |
AC/ON 10 |
4 73 |
5 63 |
6 53 |
× 43 |
÷ 33 |
1 72 |
2 62 |
3 52 |
+ 42 |
- 32 |
0 71 |
. 61 |
EXP 51 |
(‒) 41 |
EXE 31 |
The key codes here are decimal values made up of the column and row as CR. The following functions use this key format:
- PRGM_GetKey - Function to emulate legacy functionality, see PRGM_GetKey_OS for definition.
Character and Control Codes
Character codes are not directly mapped to the physical keys on the keyboard. The values use the state of key modifiers to return a value pertaining to the specific function of a key (pressing EXIT returns a code that's different from when pressing SHIFT then EXIT). The following syscalls use these codes:
- GetKey
- Keyboard_PutKeycode (third parameter)
- EditMBStringCtrl and variants
- EditMBStringChar and variants
The values in the tables below are in hexadecimal.
C&C Codes (no modifier) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 7539 |
F2 753A |
F3 753B |
F4 753C |
F5 753D |
F6 753E | |||||||||
Shift 7536 |
Optn 7538 |
Vars 7540 |
Menu 7533 |
| ||||||||||
Alpha 7537 |
𝓍² 008B |
^ 00A8 |
Exit 7532 | |||||||||||
X,θ,T 7531 |
log 0095 |
ln 0085 |
sin 0081 |
cos 0082 |
tan 0083 | |||||||||
ab/c 00BB |
F↔D 755E |
( 0028 |
) 0029 |
, 002C |
→ 000E |
7 0037 |
8 0038 |
9 0039 |
DEL 7549 |
AC/ON 753F |
4 0034 |
5 0035 |
6 0036 |
× 00A9 |
÷ 00B9 |
1 0031 |
2 0032 |
3 0033 |
+ 0089 |
- 0099 |
0 0030 |
. 002E |
EXP 000F |
(‒) 0087 |
EXE 7534 |
C&C Codes (Shift) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 7539 |
F2 753A |
F3 753B |
F4 753C |
F5 753D |
F6 753E | |||||||||
Shift 7536 |
Optn 756B |
Vars 754C |
Menu 7555 |
| ||||||||||
Alpha 7537 |
𝓍² 0086 |
^ 00B8 |
Exit 754D | |||||||||||
X,θ,T 7F54 |
log 00B5 |
ln 00A5 |
sin 0091 |
cos 0092 |
tan 0093 | |||||||||
ab/c 7566 |
F↔D 754A |
( 0096 |
) 009B |
, -- |
→ -- |
7 7567 |
8 7562 |
9 7554 |
DEL 7551 |
AC/ON -- |
4 7594 |
5 7595 |
6 -- |
× 007B |
÷ 007D |
1 7F51 |
2 7F40 |
3 -- |
+ 005B |
- 005D |
0 7F50 |
. 003D |
EXP 00D0 |
(‒) 00C0 |
EXE 000D |
C&C Codes (Alpha uppercase) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 7539 |
F2 753A |
F3 753B |
F4 753C |
F5 753D |
F6 753E | |||||||||
Shift 7536 |
Optn 7538 |
Vars 7540 |
Menu 7533 |
| ||||||||||
Alpha 7537 |
𝓍² 00CD |
^ 00CE |
Exit 7532 | |||||||||||
X,θ,T 0041 |
log 0042 |
ln 0043 |
sin 0044 |
cos 0045 |
tan 0046 | |||||||||
ab/c 0047 |
F↔D 0048 |
( 0049 |
) 004A |
, 004B |
→ 004C |
7 004D |
8 004E |
9 004F |
DEL 755D |
AC/ON 753F |
4 0050 |
5 0051 |
6 0052 |
× 0053 |
÷ 0054 |
1 0055 |
2 0056 |
3 0057 |
+ 0058 |
- 0059 |
0 005A |
. 0020 |
EXP 0022 |
(‒) 7576 |
EXE 7534 |
C&C Codes (Alpha lowercase) | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
F1 7539 |
F2 753A |
F3 753B |
F4 753C |
F5 753D |
F6 753E | |||||||||
Shift 7536 |
Optn 7538 |
Vars 7540 |
Menu 7533 |
| ||||||||||
Alpha 7537 |
𝓍² 00CD |
^ 00CE |
Exit 7532 | |||||||||||
X,θ,T 0061 |
log 0062 |
ln 0063 |
sin 0064 |
cos 0065 |
tan 0066 | |||||||||
ab/c 0067 |
F↔D 0068 |
( 0069 |
) 006A |
, 006B |
→ 006C |
7 006D |
8 006E |
9 006F |
DEL 755D |
AC/ON 753F |
4 0070 |
5 0071 |
6 0072 |
× 0073 |
÷ 0074 |
1 0075 |
2 0076 |
3 0077 |
+ 0078 |
- 0079 |
0 007A |
. 0020 |
EXP 0022 |
(‒) 7576 |
EXE 7534 |
Notes
- The values of the characters in Alpha mode are the same as their ASCII codes, both for upper- and lower-case.
- Certain keys have a different value when modifiers are on, even when there is nothing printed on the keyboard to indicate such. Examples include Shift+Optn and Shift+cursor keys.
- Control codes start at 0x7530 (decimal: 30000) and are meant to be redirected to syscalls such as EditMBStringCtrl; character codes are much lower values and should be redirected to syscalls like EditMBStringChar.
Direct Keyboard Matrix
TODO