1 #ifndef AKEY_H_
2 #define AKEY_H_
3 /* akey.h: Atari key codes */
4 
5 /* INPUT_key_code values */
6 #define AKEY_NONE -1
7 
8 /* Special key codes. */
9 #define AKEY_WARMSTART             -2
10 #define AKEY_COLDSTART             -3
11 #define AKEY_EXIT                  -4
12 #define AKEY_BREAK                 -5
13 #define AKEY_UI                    -7
14 #define AKEY_SCREENSHOT            -8
15 #define AKEY_SCREENSHOT_INTERLACE  -9
16 #define AKEY_START                 -10
17 #define AKEY_SELECT                -11
18 #define AKEY_OPTION                -12
19 #define AKEY_PBI_BB_MENU           -13
20 #define AKEY_CX85_1                -14
21 #define AKEY_CX85_2                -15
22 #define AKEY_CX85_3                -16
23 #define AKEY_CX85_4                -17
24 #define AKEY_CX85_5                -18
25 #define AKEY_CX85_6                -19
26 #define AKEY_CX85_7                -20
27 #define AKEY_CX85_8                -21
28 #define AKEY_CX85_9                -22
29 #define AKEY_CX85_0                -23
30 #define AKEY_CX85_PERIOD           -24
31 #define AKEY_CX85_MINUS            -25
32 #define AKEY_CX85_PLUS_ENTER       -26
33 #define AKEY_CX85_ESCAPE           -27
34 #define AKEY_CX85_NO               -28
35 #define AKEY_CX85_DELETE           -29
36 #define AKEY_CX85_YES              -30
37 #define AKEY_TURBO                 -31
38 #ifdef USE_UI_BASIC_ONSCREEN_KEYBOARD
39 #define AKEY_KEYB                  -32
40 #endif
41 #ifdef DIRECTX
42 	/* special menu directives */
43 	#define AKEY32_MENU_SAVE_CONFIG     -107
44 	#define AKEY32_UI_MOUSE_CLICK       -108
45 #endif
46 
47 #define AKEY_SHFT 0x40
48 #define AKEY_CTRL 0x80
49 #define AKEY_SHFTCTRL 0xc0
50 
51 #define AKEY_0 0x32
52 #define AKEY_1 0x1f
53 #define AKEY_2 0x1e
54 #define AKEY_3 0x1a
55 #define AKEY_4 0x18
56 #define AKEY_5 0x1d
57 #define AKEY_6 0x1b
58 #define AKEY_7 0x33
59 #define AKEY_8 0x35
60 #define AKEY_9 0x30
61 
62 #define AKEY_CTRL_0 (AKEY_CTRL | AKEY_0)
63 #define AKEY_CTRL_1 (AKEY_CTRL | AKEY_1)
64 #define AKEY_CTRL_2 (AKEY_CTRL | AKEY_2)
65 #define AKEY_CTRL_3 (AKEY_CTRL | AKEY_3)
66 #define AKEY_CTRL_4 (AKEY_CTRL | AKEY_4)
67 #define AKEY_CTRL_5 (AKEY_CTRL | AKEY_5)
68 #define AKEY_CTRL_6 (AKEY_CTRL | AKEY_6)
69 #define AKEY_CTRL_7 (AKEY_CTRL | AKEY_7)
70 #define AKEY_CTRL_8 (AKEY_CTRL | AKEY_8)
71 #define AKEY_CTRL_9 (AKEY_CTRL | AKEY_9)
72 
73 #define AKEY_a 0x3f
74 #define AKEY_b 0x15
75 #define AKEY_c 0x12
76 #define AKEY_d 0x3a
77 #define AKEY_e 0x2a
78 #define AKEY_f 0x38
79 #define AKEY_g 0x3d
80 #define AKEY_h 0x39
81 #define AKEY_i 0x0d
82 #define AKEY_j 0x01
83 #define AKEY_k 0x05
84 #define AKEY_l 0x00
85 #define AKEY_m 0x25
86 #define AKEY_n 0x23
87 #define AKEY_o 0x08
88 #define AKEY_p 0x0a
89 #define AKEY_q 0x2f
90 #define AKEY_r 0x28
91 #define AKEY_s 0x3e
92 #define AKEY_t 0x2d
93 #define AKEY_u 0x0b
94 #define AKEY_v 0x10
95 #define AKEY_w 0x2e
96 #define AKEY_x 0x16
97 #define AKEY_y 0x2b
98 #define AKEY_z 0x17
99 
100 #define AKEY_A (AKEY_SHFT | AKEY_a)
101 #define AKEY_B (AKEY_SHFT | AKEY_b)
102 #define AKEY_C (AKEY_SHFT | AKEY_c)
103 #define AKEY_D (AKEY_SHFT | AKEY_d)
104 #define AKEY_E (AKEY_SHFT | AKEY_e)
105 #define AKEY_F (AKEY_SHFT | AKEY_f)
106 #define AKEY_G (AKEY_SHFT | AKEY_g)
107 #define AKEY_H (AKEY_SHFT | AKEY_h)
108 #define AKEY_I (AKEY_SHFT | AKEY_i)
109 #define AKEY_J (AKEY_SHFT | AKEY_j)
110 #define AKEY_K (AKEY_SHFT | AKEY_k)
111 #define AKEY_L (AKEY_SHFT | AKEY_l)
112 #define AKEY_M (AKEY_SHFT | AKEY_m)
113 #define AKEY_N (AKEY_SHFT | AKEY_n)
114 #define AKEY_O (AKEY_SHFT | AKEY_o)
115 #define AKEY_P (AKEY_SHFT | AKEY_p)
116 #define AKEY_Q (AKEY_SHFT | AKEY_q)
117 #define AKEY_R (AKEY_SHFT | AKEY_r)
118 #define AKEY_S (AKEY_SHFT | AKEY_s)
119 #define AKEY_T (AKEY_SHFT | AKEY_t)
120 #define AKEY_U (AKEY_SHFT | AKEY_u)
121 #define AKEY_V (AKEY_SHFT | AKEY_v)
122 #define AKEY_W (AKEY_SHFT | AKEY_w)
123 #define AKEY_X (AKEY_SHFT | AKEY_x)
124 #define AKEY_Y (AKEY_SHFT | AKEY_y)
125 #define AKEY_Z (AKEY_SHFT | AKEY_z)
126 
127 #define AKEY_CTRL_a (AKEY_CTRL | AKEY_a)
128 #define AKEY_CTRL_b (AKEY_CTRL | AKEY_b)
129 #define AKEY_CTRL_c (AKEY_CTRL | AKEY_c)
130 #define AKEY_CTRL_d (AKEY_CTRL | AKEY_d)
131 #define AKEY_CTRL_e (AKEY_CTRL | AKEY_e)
132 #define AKEY_CTRL_f (AKEY_CTRL | AKEY_f)
133 #define AKEY_CTRL_g (AKEY_CTRL | AKEY_g)
134 #define AKEY_CTRL_h (AKEY_CTRL | AKEY_h)
135 #define AKEY_CTRL_i (AKEY_CTRL | AKEY_i)
136 #define AKEY_CTRL_j (AKEY_CTRL | AKEY_j)
137 #define AKEY_CTRL_k (AKEY_CTRL | AKEY_k)
138 #define AKEY_CTRL_l (AKEY_CTRL | AKEY_l)
139 #define AKEY_CTRL_m (AKEY_CTRL | AKEY_m)
140 #define AKEY_CTRL_n (AKEY_CTRL | AKEY_n)
141 #define AKEY_CTRL_o (AKEY_CTRL | AKEY_o)
142 #define AKEY_CTRL_p (AKEY_CTRL | AKEY_p)
143 #define AKEY_CTRL_q (AKEY_CTRL | AKEY_q)
144 #define AKEY_CTRL_r (AKEY_CTRL | AKEY_r)
145 #define AKEY_CTRL_s (AKEY_CTRL | AKEY_s)
146 #define AKEY_CTRL_t (AKEY_CTRL | AKEY_t)
147 #define AKEY_CTRL_u (AKEY_CTRL | AKEY_u)
148 #define AKEY_CTRL_v (AKEY_CTRL | AKEY_v)
149 #define AKEY_CTRL_w (AKEY_CTRL | AKEY_w)
150 #define AKEY_CTRL_x (AKEY_CTRL | AKEY_x)
151 #define AKEY_CTRL_y (AKEY_CTRL | AKEY_y)
152 #define AKEY_CTRL_z (AKEY_CTRL | AKEY_z)
153 
154 #define AKEY_CTRL_A (AKEY_CTRL | AKEY_A)
155 #define AKEY_CTRL_B (AKEY_CTRL | AKEY_B)
156 #define AKEY_CTRL_C (AKEY_CTRL | AKEY_C)
157 #define AKEY_CTRL_D (AKEY_CTRL | AKEY_D)
158 #define AKEY_CTRL_E (AKEY_CTRL | AKEY_E)
159 #define AKEY_CTRL_F (AKEY_CTRL | AKEY_F)
160 #define AKEY_CTRL_G (AKEY_CTRL | AKEY_G)
161 #define AKEY_CTRL_H (AKEY_CTRL | AKEY_H)
162 #define AKEY_CTRL_I (AKEY_CTRL | AKEY_I)
163 #define AKEY_CTRL_J (AKEY_CTRL | AKEY_J)
164 #define AKEY_CTRL_K (AKEY_CTRL | AKEY_K)
165 #define AKEY_CTRL_L (AKEY_CTRL | AKEY_L)
166 #define AKEY_CTRL_M (AKEY_CTRL | AKEY_M)
167 #define AKEY_CTRL_N (AKEY_CTRL | AKEY_N)
168 #define AKEY_CTRL_O (AKEY_CTRL | AKEY_O)
169 #define AKEY_CTRL_P (AKEY_CTRL | AKEY_P)
170 #define AKEY_CTRL_Q (AKEY_CTRL | AKEY_Q)
171 #define AKEY_CTRL_R (AKEY_CTRL | AKEY_R)
172 #define AKEY_CTRL_S (AKEY_CTRL | AKEY_S)
173 #define AKEY_CTRL_T (AKEY_CTRL | AKEY_T)
174 #define AKEY_CTRL_U (AKEY_CTRL | AKEY_U)
175 #define AKEY_CTRL_V (AKEY_CTRL | AKEY_V)
176 #define AKEY_CTRL_W (AKEY_CTRL | AKEY_W)
177 #define AKEY_CTRL_X (AKEY_CTRL | AKEY_X)
178 #define AKEY_CTRL_Y (AKEY_CTRL | AKEY_Y)
179 #define AKEY_CTRL_Z (AKEY_CTRL | AKEY_Z)
180 
181 #define AKEY_HELP 0x11
182 #define AKEY_DOWN 0x8f
183 #define AKEY_LEFT 0x86
184 #define AKEY_RIGHT 0x87
185 #define AKEY_UP 0x8e
186 #define AKEY_BACKSPACE 0x34
187 #define AKEY_DELETE_CHAR 0xb4
188 #define AKEY_DELETE_LINE 0x74
189 #define AKEY_INSERT_CHAR 0xb7
190 #define AKEY_INSERT_LINE 0x77
191 #define AKEY_ESCAPE 0x1c
192 #define AKEY_ATARI 0x27
193 #define AKEY_CAPSLOCK 0x7c
194 #define AKEY_CAPSTOGGLE 0x3c
195 #define AKEY_TAB 0x2c
196 #define AKEY_SETTAB 0x6c
197 #define AKEY_CLRTAB 0xac
198 #define AKEY_RETURN 0x0c
199 #define AKEY_SPACE 0x21
200 #define AKEY_EXCLAMATION 0x5f
201 #define AKEY_DBLQUOTE 0x5e
202 #define AKEY_HASH 0x5a
203 #define AKEY_DOLLAR 0x58
204 #define AKEY_PERCENT 0x5d
205 #define AKEY_AMPERSAND 0x5b
206 #define AKEY_QUOTE 0x73
207 #define AKEY_AT 0x75
208 #define AKEY_PARENLEFT 0x70
209 #define AKEY_PARENRIGHT 0x72
210 #define AKEY_LESS 0x36
211 #define AKEY_GREATER 0x37
212 #define AKEY_EQUAL 0x0f
213 #define AKEY_QUESTION 0x66
214 #define AKEY_MINUS 0x0e
215 #define AKEY_PLUS 0x06
216 #define AKEY_ASTERISK 0x07
217 #define AKEY_SLASH 0x26
218 #define AKEY_COLON 0x42
219 #define AKEY_SEMICOLON 0x02
220 #define AKEY_COMMA 0x20
221 #define AKEY_FULLSTOP 0x22
222 #define AKEY_UNDERSCORE 0x4e
223 #define AKEY_BRACKETLEFT 0x60
224 #define AKEY_BRACKETRIGHT 0x62
225 #define AKEY_CIRCUMFLEX 0x47
226 #define AKEY_BACKSLASH 0x46
227 #define AKEY_BAR 0x4f
228 #define AKEY_CLEAR (AKEY_SHFT | AKEY_LESS)
229 #define AKEY_CARET (AKEY_SHFT | AKEY_ASTERISK)
230 #define AKEY_F1 0x03
231 #define AKEY_F2 0x04
232 #define AKEY_F3	0x13
233 #define AKEY_F4 0x14
234 
235 /* Following keys cannot be read with both shift and control pressed:
236    J K L ; + * Z X C V B F1 F2 F3 F4 HELP	 */
237 
238 /* 5200 key codes */
239 #define AKEY_5200_START 0x39
240 #define AKEY_5200_PAUSE 0x31
241 #define AKEY_5200_RESET 0x29
242 #define AKEY_5200_0 0x25
243 #define AKEY_5200_1 0x3f
244 #define AKEY_5200_2 0x3d
245 #define AKEY_5200_3 0x3b
246 #define AKEY_5200_4 0x37
247 #define AKEY_5200_5 0x35
248 #define AKEY_5200_6 0x33
249 #define AKEY_5200_7 0x2f
250 #define AKEY_5200_8 0x2d
251 #define AKEY_5200_9 0x2b
252 #define AKEY_5200_HASH 0x23
253 #define AKEY_5200_ASTERISK 0x27
254 
255 #endif /* AKEY_H_ */
256