-
Notifications
You must be signed in to change notification settings - Fork 2
/
ANY_KEY_TST
executable file
·379 lines (353 loc) · 19.6 KB
/
ANY_KEY_TST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
PROGRAM ANY_KEY_TST
! Copyright 1994-2021 Marcus Rhodes <marcus1@thinqware.com>
! This program is free software; You can redistribute it and/or
! modify it under the terms of the GNU general public license
! version 3 as published by the Free Software Foundation.
! Modified: 09/17/2020 12:04:10 by Marcus
! Platform: Any Pick; Any OS; Any Emulator; Any Emulation
! Function: Test-drives ANY_KEY
! See ANY_KEY_EQU for more.
! Examples: ANY_KEY_NUM
! Upcoming: Automatically detect the terminal AND emulator in order to
! record it along with the key-code sequences it generates.
! Write to ANY_KEYS.
! Read from ANY_KEYS.
! Generate new ANY_KEY_EQU and ANY_KEY_TBL.
! Improve the UI.
! Project : https://github.com/MarcusAureliusRhodes/AnyKey
! Old name: EMV_KEY_GET_TST
! New name: ANY_KEY_TST
! Catalog : ANY_KEY_TST
EQU IDENTITY TO 'ANY_KEY_TST'
INCLUDE ANY_KEY_EQU
KEYB_DBG = 2
CALL ANY_KEY_TRM
CRT @( -1 )
CRT 'OLD_KEYS = `' : LEN( OLD_KEYS ) : '` bytes'
CRT 'NEW_KEYS = `' : LEN( NEW_KEYS ) : '` bytes'
CRT
CRT 'Welcome to ' : IDENTITY : '. Press any key to continue. Escape = Quit.'
CRT
LOOP
ANY_BFFR = ''
BFFR_LEN = 0
TEXT_KEY = ''
META_KEY = ''
KEYB_DBG = 0
CALL ANY_KEY( TEXT_KEY, META_KEY )
CRT KEYB_TYP : ' -> ' : CRT_CODE 'L#24 -> ' : ( TEXT_KEY : META_KEY< 1 > ) 'L#18 -> ' :
BEGIN CASE
CASE TEXT_KEY NE '' ; CRT TEXT_KEY
CASE META_KEY EQ K_BACKSPACE ; CRT 'Backspace'
CASE META_KEY EQ K_DELETE ; CRT 'Delete'
CASE META_KEY EQ K_DOWN ; CRT 'Down'
CASE META_KEY EQ K_END ; CRT 'End'
CASE META_KEY EQ K_ENTER ; CRT 'Enter'
CASE META_KEY EQ K_ESCAPE ; CRT 'Escape'
CASE META_KEY EQ K_F01 ; CRT 'F01'
CASE META_KEY EQ K_F02 ; CRT 'F02'
CASE META_KEY EQ K_F03 ; CRT 'F03'
CASE META_KEY EQ K_F04 ; CRT 'F04'
CASE META_KEY EQ K_F05 ; CRT 'F05'
CASE META_KEY EQ K_F06 ; CRT 'F06'
CASE META_KEY EQ K_F07 ; CRT 'F07'
CASE META_KEY EQ K_F08 ; CRT 'F08'
CASE META_KEY EQ K_F09 ; CRT 'F09'
CASE META_KEY EQ K_F10 ; CRT 'F10'
CASE META_KEY EQ K_F11 ; CRT 'F11'
CASE META_KEY EQ K_F12 ; CRT 'F12'
CASE META_KEY EQ K_HOME ; CRT 'Home'
CASE META_KEY EQ K_INSERT ; CRT 'Insert'
CASE META_KEY EQ K_LEFT ; CRT 'Left'
CASE META_KEY EQ K_MENU ; CRT 'Menu'
CASE META_KEY EQ K_PAGE_DOWN ; CRT 'Page_Down'
CASE META_KEY EQ K_PAGE_UP ; CRT 'Page_Up'
CASE META_KEY EQ K_RIGHT ; CRT 'Right'
CASE META_KEY EQ K_TAB ; CRT 'Tab'
CASE META_KEY EQ K_UP ; CRT 'Up'
CASE META_KEY EQ KA_0 ; CRT 'Alt+0'
CASE META_KEY EQ KA_1 ; CRT 'Alt+1'
CASE META_KEY EQ KA_2 ; CRT 'Alt+2'
CASE META_KEY EQ KA_3 ; CRT 'Alt+3'
CASE META_KEY EQ KA_4 ; CRT 'Alt+4'
CASE META_KEY EQ KA_5 ; CRT 'Alt+5'
CASE META_KEY EQ KA_6 ; CRT 'Alt+6'
CASE META_KEY EQ KA_7 ; CRT 'Alt+7'
CASE META_KEY EQ KA_8 ; CRT 'Alt+8'
CASE META_KEY EQ KA_9 ; CRT 'Alt+9'
CASE META_KEY EQ KA_A ; CRT 'Alt+A'
CASE META_KEY EQ KA_ACCENT ; CRT 'Alt+`'
CASE META_KEY EQ KA_AMPERSAND ; CRT 'Alt+&'
CASE META_KEY EQ KA_AT ; CRT 'Alt+@'
CASE META_KEY EQ KA_B ; CRT 'Alt+B'
CASE META_KEY EQ KA_BACKSLASH ; CRT 'Alt+\'
CASE META_KEY EQ KA_BACKSPACE ; CRT 'Alt+Backspace'
CASE META_KEY EQ KA_BACKTICK ; CRT 'Alt+`'
CASE META_KEY EQ KA_BANG ; CRT 'Alt+!'
CASE META_KEY EQ KA_C ; CRT 'Alt+C'
CASE META_KEY EQ KA_CARET ; CRT 'Alt+^'
CASE META_KEY EQ KA_COMMA ; CRT 'Alt+,'
CASE META_KEY EQ KA_D ; CRT 'Alt+D'
CASE META_KEY EQ KA_DASH ; CRT 'Alt+-'
CASE META_KEY EQ KA_DELETE ; CRT 'Alt+Delete'
CASE META_KEY EQ KA_DOLLAR ; CRT 'Alt+$'
CASE META_KEY EQ KA_DOWN ; CRT 'Alt+Down'
CASE META_KEY EQ KA_DQUOTE ; CRT 'Alt+"'
CASE META_KEY EQ KA_E ; CRT 'Alt+E'
CASE META_KEY EQ KA_END ; CRT 'Alt+End'
CASE META_KEY EQ KA_ENTER ; CRT 'Alt+Enter'
CASE META_KEY EQ KA_EQUAL ; CRT 'Alt+='
CASE META_KEY EQ KA_ESCAPE ; CRT 'Alt+Escape'
CASE META_KEY EQ KA_F ; CRT 'Alt+F'
CASE META_KEY EQ KA_F01 ; CRT 'Alt+F01'
CASE META_KEY EQ KA_F02 ; CRT 'Alt+F02'
CASE META_KEY EQ KA_F03 ; CRT 'Alt+F03'
CASE META_KEY EQ KA_F04 ; CRT 'Alt+F04'
CASE META_KEY EQ KA_F05 ; CRT 'Alt+F05'
CASE META_KEY EQ KA_F06 ; CRT 'Alt+F06'
CASE META_KEY EQ KA_F07 ; CRT 'Alt+F07'
CASE META_KEY EQ KA_F08 ; CRT 'Alt+F08'
CASE META_KEY EQ KA_F09 ; CRT 'Alt+F09'
CASE META_KEY EQ KA_F10 ; CRT 'Alt+F10'
CASE META_KEY EQ KA_F11 ; CRT 'Alt+F11'
CASE META_KEY EQ KA_F12 ; CRT 'Alt+F12'
CASE META_KEY EQ KA_G ; CRT 'Alt+G'
CASE META_KEY EQ KA_H ; CRT 'Alt+H'
CASE META_KEY EQ KA_POUND ; CRT 'Alt+#'
CASE META_KEY EQ KA_HOME ; CRT 'Alt+Home'
CASE META_KEY EQ KA_I ; CRT 'Alt+I'
CASE META_KEY EQ KA_INSERT ; CRT 'Alt+Insert'
CASE META_KEY EQ KA_J ; CRT 'Alt+J'
CASE META_KEY EQ KA_K ; CRT 'Alt+K'
CASE META_KEY EQ KA_L ; CRT 'Alt+L'
CASE META_KEY EQ KA_LANGLE ; CRT 'Alt+<'
CASE META_KEY EQ KA_LBRACE ; CRT 'Alt+{'
CASE META_KEY EQ KA_LBRACKET ; CRT 'Alt+['
CASE META_KEY EQ KA_LEFT ; CRT 'Alt+Left'
CASE META_KEY EQ KA_LPAREN ; CRT 'Alt+('
CASE META_KEY EQ KA_M ; CRT 'Alt+M'
CASE META_KEY EQ KA_N ; CRT 'Alt+N'
CASE META_KEY EQ KA_O ; CRT 'Alt+O'
CASE META_KEY EQ KA_P ; CRT 'Alt+P'
CASE META_KEY EQ KA_PAGE_DOWN ; CRT 'Alt+Page_Down'
CASE META_KEY EQ KA_PAGE_UP ; CRT 'Alt+Page_Up'
CASE META_KEY EQ KA_PERCENT ; CRT 'Alt+%'
CASE META_KEY EQ KA_PERIOD ; CRT 'Alt+.'
CASE META_KEY EQ KA_PIPE ; CRT 'Alt+|'
CASE META_KEY EQ KA_PLUS ; CRT 'Alt++'
CASE META_KEY EQ KA_Q ; CRT 'Alt+Q'
CASE META_KEY EQ KA_QUERY ; CRT 'Alt+?'
CASE META_KEY EQ KA_R ; CRT 'Alt+R'
CASE META_KEY EQ KA_RANGLE ; CRT 'Alt+>'
CASE META_KEY EQ KA_RBRACE ; CRT 'Alt+}'
CASE META_KEY EQ KA_RBRACKET ; CRT 'Alt+]'
CASE META_KEY EQ KA_RIGHT ; CRT 'Alt+Right'
CASE META_KEY EQ KA_RPAREN ; CRT 'Alt+)'
CASE META_KEY EQ KA_S ; CRT 'Alt+S'
CASE META_KEY EQ KA_COLON ; CRT 'Alt+:'
CASE META_KEY EQ KA_SCOLON ; CRT 'Alt+;'
CASE META_KEY EQ KA_SLASH ; CRT 'Alt+/'
CASE META_KEY EQ KA_SPACE ; CRT 'Alt+Space'
CASE META_KEY EQ KA_SQUOTE ; CRT "Alt+'"
CASE META_KEY EQ KA_STAR ; CRT 'Alt+*'
CASE META_KEY EQ KA_T ; CRT 'Alt+T'
CASE META_KEY EQ KA_TAB ; CRT 'Alt+Tab'
CASE META_KEY EQ KA_TILDE ; CRT 'Alt+~'
CASE META_KEY EQ KA_U ; CRT 'Alt+U'
CASE META_KEY EQ KA_UNDERSCORE ; CRT 'Alt+_'
CASE META_KEY EQ KA_UP ; CRT 'Alt+Up'
CASE META_KEY EQ KA_V ; CRT 'Alt+V'
CASE META_KEY EQ KA_W ; CRT 'Alt+W'
CASE META_KEY EQ KA_X ; CRT 'Alt+X'
CASE META_KEY EQ KA_Y ; CRT 'Alt+Y'
CASE META_KEY EQ KA_Z ; CRT 'Alt+Z'
CASE META_KEY EQ KC_A ; CRT 'Ctrl+A'
CASE META_KEY EQ KC_AT ; CRT 'Ctrl+@'
CASE META_KEY EQ KC_B ; CRT 'Ctrl+B'
CASE META_KEY EQ KC_BACKSLASH ; CRT 'Ctrl+\'
CASE META_KEY EQ KC_BACKSPACE ; CRT 'Ctrl+Backspace'
CASE META_KEY EQ KC_C ; CRT 'Ctrl+C'
CASE META_KEY EQ KC_CARET ; CRT 'Ctrl+^'
CASE META_KEY EQ KC_D ; CRT 'Ctrl+D'
CASE META_KEY EQ KC_DELETE ; CRT 'Ctrl+Delete'
CASE META_KEY EQ KC_DOWN ; CRT 'Ctrl+Down'
CASE META_KEY EQ KC_E ; CRT 'Ctrl+E'
CASE META_KEY EQ KC_END ; CRT 'Ctrl+End'
CASE META_KEY EQ KC_ENTER ; CRT 'Ctrl+Enter'
CASE META_KEY EQ KC_ESCAPE ; CRT 'Ctrl+Escape'
CASE META_KEY EQ KC_F ; CRT 'Ctrl+F'
CASE META_KEY EQ KC_F01 ; CRT 'Ctrl+F01'
CASE META_KEY EQ KC_F02 ; CRT 'Ctrl+F02'
CASE META_KEY EQ KC_F03 ; CRT 'Ctrl+F03'
CASE META_KEY EQ KC_F04 ; CRT 'Ctrl+F04'
CASE META_KEY EQ KC_F05 ; CRT 'Ctrl+F05'
CASE META_KEY EQ KC_F06 ; CRT 'Ctrl+F06'
CASE META_KEY EQ KC_F07 ; CRT 'Ctrl+F07'
CASE META_KEY EQ KC_F08 ; CRT 'Ctrl+F08'
CASE META_KEY EQ KC_F09 ; CRT 'Ctrl+F09'
CASE META_KEY EQ KC_F10 ; CRT 'Ctrl+F10'
CASE META_KEY EQ KC_F11 ; CRT 'Ctrl+F11'
CASE META_KEY EQ KC_F12 ; CRT 'Ctrl+F12'
CASE META_KEY EQ KC_G ; CRT 'Ctrl+G'
CASE META_KEY EQ KC_H ; CRT 'Ctrl+H'
CASE META_KEY EQ KC_HOME ; CRT 'Ctrl+Home'
CASE META_KEY EQ KC_I ; CRT 'Ctrl+I'
CASE META_KEY EQ KC_INSERT ; CRT 'Ctrl+Insert'
CASE META_KEY EQ KC_J ; CRT 'Ctrl+J'
CASE META_KEY EQ KC_K ; CRT 'Ctrl+K'
CASE META_KEY EQ KC_L ; CRT 'Ctrl+L'
CASE META_KEY EQ KC_LEFT ; CRT 'Ctrl+Left'
CASE META_KEY EQ KC_M ; CRT 'Ctrl+M'
CASE META_KEY EQ KC_N ; CRT 'Ctrl+N'
CASE META_KEY EQ KC_O ; CRT 'Ctrl+O'
CASE META_KEY EQ KC_P ; CRT 'Ctrl+P'
CASE META_KEY EQ KC_PAGE_DOWN ; CRT 'Ctrl+Page_Down'
CASE META_KEY EQ KC_PAGE_UP ; CRT 'Ctrl+Page_Up'
CASE META_KEY EQ KC_Q ; CRT 'Ctrl+Q'
CASE META_KEY EQ KC_R ; CRT 'Ctrl+R'
CASE META_KEY EQ KC_RBRACKET ; CRT 'Ctrl+]'
CASE META_KEY EQ KC_RIGHT ; CRT 'Ctrl+Right'
CASE META_KEY EQ KC_S ; CRT 'Ctrl+S'
CASE META_KEY EQ KC_SLASH ; CRT 'Ctrl+/'
CASE META_KEY EQ KC_SPACE ; CRT 'Ctrl+Space'
CASE META_KEY EQ KC_T ; CRT 'Ctrl+T'
CASE META_KEY EQ KC_TAB ; CRT 'Ctrl+Tab'
CASE META_KEY EQ KC_TILDE ; CRT 'Ctrl+~'
CASE META_KEY EQ KC_U ; CRT 'Ctrl+U'
CASE META_KEY EQ KC_UNDERSCORE ; CRT 'Ctrl+_'
CASE META_KEY EQ KC_UP ; CRT 'Ctrl+Up'
CASE META_KEY EQ KC_V ; CRT 'Ctrl+V'
CASE META_KEY EQ KC_W ; CRT 'Ctrl+W'
CASE META_KEY EQ KC_X ; CRT 'Ctrl+X'
CASE META_KEY EQ KC_Y ; CRT 'Ctrl+Y'
CASE META_KEY EQ KC_Z ; CRT 'Ctrl+Z'
CASE META_KEY EQ KPC_0 ; CRT 'Key-pad Ctrl+0'
CASE META_KEY EQ KPC_1 ; CRT 'Key-pad Ctrl+1'
CASE META_KEY EQ KPC_2 ; CRT 'Key-pad Ctrl+2'
CASE META_KEY EQ KPC_3 ; CRT 'Key-pad Ctrl+3'
CASE META_KEY EQ KPC_4 ; CRT 'Key-pad Ctrl+4'
CASE META_KEY EQ KPC_5 ; CRT 'Key-pad Ctrl+5'
CASE META_KEY EQ KPC_6 ; CRT 'Key-pad Ctrl+6'
CASE META_KEY EQ KPC_7 ; CRT 'Key-pad Ctrl+7'
CASE META_KEY EQ KPC_8 ; CRT 'Key-pad Ctrl+8'
CASE META_KEY EQ KPC_9 ; CRT 'Key-pad Ctrl+9'
CASE META_KEY EQ KPC_DASH ; CRT 'Key-pad Ctrl+-'
CASE META_KEY EQ KPC_PERIOD ; CRT 'Key-pad Ctrl+.'
CASE META_KEY EQ KPC_ENTER ; CRT 'Key-pad Ctrl+Enter'
CASE META_KEY EQ KPC_PLUS ; CRT 'Key-pad Ctrl++'
CASE META_KEY EQ KPC_SLASH ; CRT 'Key-pad Ctrl+/'
CASE META_KEY EQ KPC_STAR ; CRT 'Key-pad Ctrl+*'
CASE META_KEY EQ KS_BACKSPACE ; CRT 'Shift+Backspace'
CASE META_KEY EQ KS_DELETE ; CRT 'Shift+Delete'
CASE META_KEY EQ KS_DOWN ; CRT 'Shift+Down'
CASE META_KEY EQ KS_END ; CRT 'Shift+End'
CASE META_KEY EQ KS_ENTER ; CRT 'Shift+Enter'
CASE META_KEY EQ KS_ESCAPE ; CRT 'Shift+Escape'
CASE META_KEY EQ KS_F01 ; CRT 'Shift+F01'
CASE META_KEY EQ KS_F02 ; CRT 'Shift+F02'
CASE META_KEY EQ KS_F03 ; CRT 'Shift+F03'
CASE META_KEY EQ KS_F04 ; CRT 'Shift+F04'
CASE META_KEY EQ KS_F05 ; CRT 'Shift+F05'
CASE META_KEY EQ KS_F06 ; CRT 'Shift+F06'
CASE META_KEY EQ KS_F07 ; CRT 'Shift+F07'
CASE META_KEY EQ KS_F08 ; CRT 'Shift+F08'
CASE META_KEY EQ KS_F09 ; CRT 'Shift+F09'
CASE META_KEY EQ KS_F10 ; CRT 'Shift+F10'
CASE META_KEY EQ KS_F11 ; CRT 'Shift+F11'
CASE META_KEY EQ KS_F12 ; CRT 'Shift+F12'
CASE META_KEY EQ KS_HOME ; CRT 'Shift+Home'
CASE META_KEY EQ KS_INSERT ; CRT 'Shift+Insert'
CASE META_KEY EQ KS_LEFT ; CRT 'Shift+Left'
CASE META_KEY EQ KS_PAGE_DOWN ; CRT 'Shift+Page_Down'
CASE META_KEY EQ KS_PAGE_UP ; CRT 'Shift+Page_Up'
CASE META_KEY EQ KS_RIGHT ; CRT 'Shift+Right'
CASE META_KEY EQ KS_SPACE ; CRT 'Shift+Space'
CASE META_KEY EQ KS_TAB ; CRT 'Shift+Tab'
CASE META_KEY EQ KS_UP ; CRT 'Shift+Up'
CASE META_KEY EQ KSA_A ; CRT 'Shift+Alt+A'
CASE META_KEY EQ KSA_B ; CRT 'Shift+Alt+B'
CASE META_KEY EQ KSA_BACKSPACE ; CRT 'Shift+Alt+Backspace'
CASE META_KEY EQ KSA_C ; CRT 'Shift+Alt+C'
CASE META_KEY EQ KSA_D ; CRT 'Shift+Alt+D'
CASE META_KEY EQ KSA_DELETE ; CRT 'Shift+Alt+Delete'
CASE META_KEY EQ KSA_DOWN ; CRT 'Shift+Alt+Down'
CASE META_KEY EQ KSA_E ; CRT 'Shift+Alt+E'
CASE META_KEY EQ KSA_END ; CRT 'Shift+Alt+End'
CASE META_KEY EQ KSA_ENTER ; CRT 'Shift+Alt+Enter'
CASE META_KEY EQ KSA_ESCAPE ; CRT 'Shift+Alt+Escape'
CASE META_KEY EQ KSA_F ; CRT 'Shift+Alt+F'
CASE META_KEY EQ KSA_F01 ; CRT 'Shift+Alt+F01'
CASE META_KEY EQ KSA_F02 ; CRT 'Shift+Alt+F02'
CASE META_KEY EQ KSA_F03 ; CRT 'Shift+Alt+F03'
CASE META_KEY EQ KSA_F04 ; CRT 'Shift+Alt+F04'
CASE META_KEY EQ KSA_F05 ; CRT 'Shift+Alt+F05'
CASE META_KEY EQ KSA_F06 ; CRT 'Shift+Alt+F06'
CASE META_KEY EQ KSA_F07 ; CRT 'Shift+Alt+F07'
CASE META_KEY EQ KSA_F08 ; CRT 'Shift+Alt+F08'
CASE META_KEY EQ KSA_F09 ; CRT 'Shift+Alt+F09'
CASE META_KEY EQ KSA_F10 ; CRT 'Shift+Alt+F10'
CASE META_KEY EQ KSA_F11 ; CRT 'Shift+Alt+F11'
CASE META_KEY EQ KSA_F12 ; CRT 'Shift+Alt+F12'
CASE META_KEY EQ KSA_G ; CRT 'Shift+Alt+G'
CASE META_KEY EQ KSA_H ; CRT 'Shift+Alt+H'
CASE META_KEY EQ KSA_HOME ; CRT 'Shift+Alt+Home'
CASE META_KEY EQ KSA_I ; CRT 'Shift+Alt+I'
CASE META_KEY EQ KSA_INSERT ; CRT 'Shift+Alt+Insert'
CASE META_KEY EQ KSA_J ; CRT 'Shift+Alt+J'
CASE META_KEY EQ KSA_K ; CRT 'Shift+Alt+K'
CASE META_KEY EQ KSA_L ; CRT 'Shift+Alt+L'
CASE META_KEY EQ KSA_LEFT ; CRT 'Shift+Alt+Left'
CASE META_KEY EQ KSA_M ; CRT 'Shift+Alt+M'
CASE META_KEY EQ KSA_N ; CRT 'Shift+Alt+N'
CASE META_KEY EQ KSA_O ; CRT 'Shift+Alt+O'
CASE META_KEY EQ KSA_P ; CRT 'Shift+Alt+P'
CASE META_KEY EQ KSA_PAGE_DOWN ; CRT 'Shift+Alt+Page_Down'
CASE META_KEY EQ KSA_PAGE_UP ; CRT 'Shift+Alt+Page_Up'
CASE META_KEY EQ KSA_Q ; CRT 'Shift+Alt+Q'
CASE META_KEY EQ KSA_R ; CRT 'Shift+Alt+R'
CASE META_KEY EQ KSA_RIGHT ; CRT 'Shift+Alt+Right'
CASE META_KEY EQ KSA_S ; CRT 'Shift+Alt+S'
CASE META_KEY EQ KSA_SPACE ; CRT 'Shift+Alt+Space'
CASE META_KEY EQ KSA_T ; CRT 'Shift+Alt+T'
CASE META_KEY EQ KSA_TAB ; CRT 'Shift+Alt+Tab'
CASE META_KEY EQ KSA_U ; CRT 'Shift+Alt+U'
CASE META_KEY EQ KSA_UP ; CRT 'Shift+Alt+Up'
CASE META_KEY EQ KSA_V ; CRT 'Shift+Alt+V'
CASE META_KEY EQ KSA_W ; CRT 'Shift+Alt+W'
CASE META_KEY EQ KSA_X ; CRT 'Shift+Alt+X'
CASE META_KEY EQ KSA_Y ; CRT 'Shift+Alt+Y'
CASE META_KEY EQ KSA_Z ; CRT 'Shift+Alt+Z'
CASE META_KEY EQ KSC_BACKSPACE ; CRT 'Shift+Ctrl+Backspace'
CASE META_KEY EQ KSC_DELETE ; CRT 'Shift+Ctrl+Delete'
CASE META_KEY EQ KSC_DOWN ; CRT 'Shift+Ctrl+Down'
CASE META_KEY EQ KSC_END ; CRT 'Shift+Ctrl+End'
CASE META_KEY EQ KSC_ENTER ; CRT 'Shift+Ctrl+Enter'
CASE META_KEY EQ KSC_ESCAPE ; CRT 'Shift+Ctrl+Escape'
CASE META_KEY EQ KSC_F01 ; CRT 'Shift+Ctrl+F01'
CASE META_KEY EQ KSC_F02 ; CRT 'Shift+Ctrl+F02'
CASE META_KEY EQ KSC_F03 ; CRT 'Shift+Ctrl+F03'
CASE META_KEY EQ KSC_F04 ; CRT 'Shift+Ctrl+F04'
CASE META_KEY EQ KSC_F05 ; CRT 'Shift+Ctrl+F05'
CASE META_KEY EQ KSC_F06 ; CRT 'Shift+Ctrl+F06'
CASE META_KEY EQ KSC_F07 ; CRT 'Shift+Ctrl+F07'
CASE META_KEY EQ KSC_F08 ; CRT 'Shift+Ctrl+F08'
CASE META_KEY EQ KSC_F09 ; CRT 'Shift+Ctrl+F09'
CASE META_KEY EQ KSC_F10 ; CRT 'Shift+Ctrl+F10'
CASE META_KEY EQ KSC_F11 ; CRT 'Shift+Ctrl+F11'
CASE META_KEY EQ KSC_F12 ; CRT 'Shift+Ctrl+F12'
CASE META_KEY EQ KSC_HOME ; CRT 'Shift+Ctrl+Home'
CASE META_KEY EQ KSC_INSERT ; CRT 'Shift+Ctrl+Insert'
CASE META_KEY EQ KSC_LEFT ; CRT 'Shift+Ctrl+Left'
CASE META_KEY EQ KSC_PAGE_DOWN ; CRT 'Shift+Ctrl+Page_Down'
CASE META_KEY EQ KSC_PAGE_UP ; CRT 'Shift+Ctrl+Page_Up'
CASE META_KEY EQ KSC_RIGHT ; CRT 'Shift+Ctrl+Right'
CASE META_KEY EQ KSC_SPACE ; CRT 'Shift+Ctrl+Space'
CASE META_KEY EQ KSC_UP ; CRT 'Shift+Ctrl+Up'
CASE META_KEY< 1 > EQ KM_L1 ; CRT 'Mouse Left Single-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 >
CASE META_KEY< 1 > EQ KM_L2 ; CRT 'Mouse Left Double-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 >
CASE META_KEY< 1 > EQ KM_R1 ; CRT 'Mouse Right Single-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 >
CASE META_KEY< 1 > EQ KM_R2 ; CRT 'Mouse Right Double-Click @ ' : META_KEY< 2 > : 'x' : META_KEY< 3 >
CASE 1 ; CRT 'Unknown key!'
END CASE
UNTIL META_KEY EQ K_ESCAPE DO REPEAT
STOP