Concise Atari ST 68000 Programmer's Reference Guide

Keycode definitions

ASCII codes 0 to 127

 Dec  Hex  ASCII   Dec  Hex   ASCII   Dec  Hex   ASCII   Dec  Hex   ASCII
0 00 NUL 32 20 SPACE  64 40 @  96 60 `
1 01 SOH 33 21 !  65 41 A  97 61 a 
2 02 STX 34 22 "  66 42 B  98 62 b 
3 03 ETX 35 23 #  67 43 C  99 63 c 
4 04 EOT 36 24 $  68 44 D  100 64 d 
5 05 ENQ 37 25 %  69 45 E  101 65 e 
6 06 ACK 38 26 &  70 46 F  102 66 f 
7 07 BEL 39 27 '  71 47 G  103 67 g 
8 08 BS 40 28 (  72 48 H  104 68 h 
9 09 HT 41 29 )  73 49 I  105 69 i 
10 0A LF 42 2A *  74 4A J  106 6A j 
11 0B VT 43 2B +  75 4B K  107 6B k 
12 0C FF 44 2C ,  76 4C L  108 6C l 
13 0D CR 45 2D -  77 4D M  109 6D m 
14 0E SO 46 2E .  78 4E N  110 6E n 
15 0F SI 47 2F /  79 4F O  111 6F o 
16 10 DLE 48 30 0  80 50 P  112 70 p 
17 11 DC1 49 31 1  81 51 Q  113 71 q 
18 12 DC2 50 32 2  82 52 R  114 72 r 
19 13 DC3 51 33 3  83 53 S  115 73 s 
20 14 DC4 52 34 4  84 54 T  116 74 t 
21 15 NAK 53 35 5  85 55 U  117 75 u 
22 16 SYN 54 36 6  86 56 V  118 76 v 
23 17 ETB 55 37 7  87 57 W  119 77 w 
24 18 CAN 56 38 8  88 58 X  120 78 x 
25 19 EM 57 39 9  89 59 Y  121 79 y 
26 1A SUB 58 3A :  90 5A Z  122 7A z 
27 1B ESC 59 3B ;  91 5B [  123 7B { 
28 1C FS 60 3C <  92 5C \  124 7C | 
29 1D GS 61 3D =  93 5D ]  125 7D } 
30 1E RS 62 3E >  94 5E ^  126 7E ~ 
31 1F US 63 3F ?  95 5F _  127 7F DEL 

GSX compatible keyscan codes

 Dec  Hex Keytop   Dec  Hex Keytop   Dec  Hex Keytop   Dec  Hex Keytop
      32 20 D 64 40 F6 96 60 ISO KEY
1 01 ESC 33 21 F 65 41 F7 97 61 UNDO
2 02 1 34 22 G 66 42 F8 98 62 HELP
3 03 2 35 23 H 67 43 F9 99 63 kpd (
4 04 3 36 24 J 68 44 F10 100 64 kpd )
5 05 4 37 25 K 69 45 n.u. 101 65 kpd /
6 06 5 38 26 L 70 46 n.u. 102 66 kpd *
7 07 6 39 27 ; 71 47 HOME 103 67 kpd 7
8 08 7 40 28 ' 72 48 UP-ARROW 104 68 kpd 8
9 09 8 41 29 ' 73 49 n.u. 105 69 kpd 9
10 0A 9 42 2A LSHIFT 74 4A kpd. - 106 6A kpd 4
11 0B 0 43 2B \ 75 4B LEFT-ARROW 107 6B kpd 5
12 0C - 44 2C Z 76 4C n.u. 108 6C kpd 6
13 0D   45 2D X 77 4D RIGHT ARROW 109 6D kpd 1
14 0E BS 46 2E C 78 4E kpd + 110 6E kpd 2
15 0F TAB 47 2F V 79 4F n.u. 111 6F kpd 3
16 10 Q 48 30 B 80 50 DOWN ARROW 112 70 kpd 0
17 11 W 49 31 N 81 51 n.u. 113 71 kpd .
18 12 E 50 32 M 82 52 INSERT 114 72 kpd ENT
19 13 R 51 33 , 83 53 DEL      
20 14 T 52 34 . 84 54 n.u. 116 74 Left m/j button
21 15 Y 53 35 / 85 55   117 75 Right m/j button
22 16 U 54 36 R-SHIFT 86 56        
23 17 I 55 37 n.u. 87 57        
24 18 O 56 38 ALT 88 58        
25 19 P 57 39 SPACE 89 59        
26 1A [ 58 3A CAPS LOCK 90 5A        
27 1B ] 59 3B F1 91 5B        
28 1C RET 60 3C F2 92 5C   UK Keyboard
29 1D CNTL 61 3D F3 93 5D   43 2B #
30 1E A 62 3E F4 94 5E   96 60 \
31 1F S 63 3F F5 95 5F n.u.      

kpd = keypad
n.u. = not used
m/j button = mouse/joystick button

Returned highword lowbyte by BDOS c_conin function.


GEM VDI standard keyboard codes

High
byte
Low
byte
Char   High
byte
Low
byte
Char   High
byte
Low
byte
Char   High
byte
Low
byte
Char
03 00 CTRL 2 39 20 SPACE  03 40 @  29 60 '
1E 01 CTRL A 02 21 !  1E 41 A  1E 61 a 
30 02 CTRL B 28 22 "  30 42 B  30 62 b 
2E 03 CTRL C 2B 23 #  2E 43 C  2E 63 c 
20 04 CTRL D 05 24 $  20 44 D  20 64 d 
12 05 CTRL E 06 25 %  12 45 E  12 65 e 
21 06 CTRL F 08 26 &  21 46 F  21 66 f 
22 07 CTRL G 28 27 '  22 47 G  22 67 g 
23 08 CTRL H 0A 28 (  23 48 H  23 68 h 
17 09 CTRL I 0B 29 )  17 49 I  17 69 i 
24 0A CTRL J 09 2A *  24 4A J  24 6A j 
25 0B CTRL K 0D 2B +  25 4B K  25 6B k 
26 0C CTRL L 33 2C ,  26 4C L  26 6C l 
32 0D CTRL M 0C 2D -  32 4D M  32 6D m 
31 0E CTRL N 34 2E .  31 4E N  31 6E n 
18 0F CTRL O 35 2F /  18 4F O  18 6F o 
19 10 CTRL P 0B 30 0  19 50 P  19 70 p 
10 11 CTRL Q 02 31 1  10 51 Q  10 71 q 
13 12 CTRL R 03 32 2  13 52 R  13 72 r 
1F 13 CTRL S 04 33 3  1F 53 S  1F 73 s 
14 14 CTRL T 05 34 4  14 54 T  14 74 t 
16 15 CTRL U 06 35 5  16 55 U  16 75 u 
2F 16 CTRL V 07 36 6  2F 56 V  2F 76 v 
11 17 CTRL W 08 37 7  11 57 W  11 77 w 
2D 18 CTRL X 09 38 8  2D 58 X  2D 78 x 
15 19 CTRL Y 0A 39 9  15 59 Y 15 79 y 
2C 1A CTRL Z 27 3A :  2C 5A Z 2C 7A z 
1A 1B CTRL [ 27 3B ;  1A 5B [ 1A 7B { 
2B 1C CTRL \ 33 3C <  2B 5C \ 60 7C | 
1B 1D CTRL ] 0D 3D =  1B 5D ] 1B 7D } 
07 1E CTRL 6 34 3E >  07 5E ^ 29 7E ~ 
0C 1F CTRL - 35 3F ?  0C 5F _ 0E 7F DEL 

High
byte
Low
byte
Char   High
byte
Low
byte
Char   High
byte
Low
byte
Char   High
byte
Low
byte
Char
81 00 ALT 0 11 00 ALT W 66 00 *F29 72 00 * CTRL PRINT SCREEN
78 00 ALT 1 2D 00 ALT X 67 00 *F30 37 2A * PRINT SCREEN
79 00 ALT 2 15 00 ALT Y 68 00 *F31 01 1B ESCAPE
7A 00 ALT 3 2C 00 ALT Z 69 00 *F32 0E 08 BACKSPACE
7B 00 ALT 4 3B 00 F1 6A 00 *F33 82 00 ALT -
7C 00 ALT 5 3C 00 F2 6B 00 *F34 83 00 ALT =
7D 00 ALT 6 3D 00 F3 6C 00 *F35 1C 0D CR
7E 00 ALT 7 3E 00 F4 6D 00 *F36 1C 0A CTRL CR
7F 00 ALT 8 3F 00 F5 6E 00 *F37 4C 35 SHIFT kpd 5
80 00 ALT 9 40 00 F6 6F 00 *F38 4A 2D kpd -
1E 00 ALT A 41 00 F7 70 00 *F39 4E 2B kpd +
30 00 ALT B 42 00 F8 71 00 *F40 0F 09 TAB
2E 00 ALT C 43 00 F9 73 00 CTRL LEFT ARROW 0F 00 * BACK TAB
20 00 ALT D 44 00 F10 4D 00 RIGHT ARROW 4B 00 RIGHT ARROW
12 00 ALT E 54 00 SHIFT F1 4D 36 SHIFT RIGHT ARROW 4B 34 SHIFT RIGHT ARROW
21 00 ALT F 55 00 SHIFT F2 74 00 CTRL RIGHT ARROW 4F 00 * END
22 00 ALT G 56 00 SHIFT F3 50 00 DOWN ARROW 4F 31 * SHIFT END
23 00 ALT H 57 00 SHIFT F4 50 32 SHIFT DOWN ARROW 75 00 * CTRL END
17 00 ALT I 58 00 SHIFT F5 48 00 UP ARROW      
24 00 ALT J 59 00 SHIFT F6 48 38 SHIFT UP ARROW      
25 00 ALT K 5A 00 SHIFT F7 51 00 * PAGE DOWN      
26 00 ALT L 5B 00 SHIFT F8 51 33 * SHIFT PAGE DOWN      
32 00 ALT M 5C 00 SHIFT F9 76 00 * CTRL PAGE DOWN      
31 00 ANT N 5D 00 SHIFT F10 49 00 * PAGE UP      
18 00 ALT O 5E 00 *F21 49 39 * SHIFT PAGE UP      
19 00 ALT P 5F 00 *F22 84 00 * CTRL PAGE UP      
10 00 ALT Q 60 00 *F23 77 00 CTRL HOME      
13 00 ALT R 61 00 *F24 47 00 HOME      
1F 00 ALT S 62 00 *F25 47 37 SHIFT HOME      
14 00 ALT T 63 00 *F26 52 00 INSERT      
16 00 ALT U 64 00 *F27 52 30 DELETE      
2F 00 ALT V 65 00 *F28 53 00 SHIFT DELETE      

* These scan codes are not supported by the Atari BIOS.