# Special Keyboard Keys

Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4 Armite F4 ArmiteH7 Picomite CMM2

MMBasic generates a single unique character for the function keys and other special keys on the keyboard.
These are shown in this table as hexadecimal and decimal numbers:

DEC OCT HEX BIN Description
128 200 80 10000000 Up Arrow
129 201 81 10000001 Down Arrow
130 202 82 10000010 Left Arrow
131 203 83 10000011 Right Arrow
132 204 84 10000100 Insert
134 206 86 10000110 Home
135 207 87 10000111 End
136 210 88 10001000 Page Up
137 211 89 10001001 Page Down
145 221 91 10010001 F1
146 222 92 10010010 F2
147 223 93 10010011 F3
148 224 94 10010100 F4
149 225 95 10010101 F5
150 226 96 10010110 F6
151 227 97 10010111 F7
152 230 98 10011000 F8
153 231 99 10011001 F9
154 232 9A 10011010 F10
155 233 9B 10011011 F11
156 234 9C 10011100 F12
157 235 9D 10011101 Print Screen (CMM2 KB only)
158 236 9E 10011110 Pause (CMM2 KB only)
159 237 9F 10011111 Shift-TAB (CMM2 KB only)
160 240 A0 10100000 Shift-DEL (CMM2 KB only)
161 241 A1 10100001 Shift-Down (CMM2 KB only)
163 242 A2 10100010 Shift-Right (CMM2 KB only)

If the shift key is simultaneously pressed then 40 (hex) is added to the code (this is the equivalent of setting bit 6). For example Shift-F10 will generate DA (hex).
The shift modifier only works with the function keys F1 to F12; it is ignored for the other keys.
MMBasic will translate most VT100 escape codes generated by terminal emulators such as TeraTerm and Putty to these codes (excluding the shift and control modifiers).
This means that a terminal emulator operating over a USB or a serial port opened as console will generate the same key codes as a directly attached keyboard.

Last edited: 19 December, 2020