1 //  This may look like C code, but it is really -*- C++ -*-
2 
3 //  ------------------------------------------------------------------
4 //  The Goldware Library
5 //  Copyright (C) 1990-1999 Odinn Sorensen
6 //  Copyright (C) 1999-2000 Alexander S. Aganichev
7 //  ------------------------------------------------------------------
8 //  This library is free software; you can redistribute it and/or
9 //  modify it under the terms of the GNU Library General Public
10 //  License as published by the Free Software Foundation; either
11 //  version 2 of the License, or (at your option) any later version.
12 //
13 //  This library is distributed in the hope that it will be useful,
14 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 //  Library General Public License for more details.
17 //
18 //  You should have received a copy of the GNU Library General Public
19 //  License along with this program; if not, write to the Free
20 //  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 //  MA 02111-1307, USA
22 //  ------------------------------------------------------------------
23 //  $Id: gkbdcode.h,v 1.1 2011/02/18 19:46:01 stas_degteff Exp $
24 //  ------------------------------------------------------------------
25 //  GCUI: Golded+ Character-oriented User Interface.
26 //  Define mnemonic symbols for full set of PC-Compatible non-display
27 //  control and extended keycodes.
28 //  ------------------------------------------------------------------
29 
30 #ifndef __gkbdcode_h
31 #define __gkbdcode_h
32 
33 
34 //  ------------------------------------------------------------------
35 //  Notes and Caveats (from the original TCXL 6.0 TCXLCOD.H file)
36 //
37 //  1.  The keycode symbols suffixed with 'G' and marked in the 'G'
38 //      column are the "Grey" keys around the numeric keypad or in a
39 //      separate cursor-key cluster on "enhanced" keyboards. Those
40 //      marked in the 'N' column are on numeric keypad.
41 //  2.  The keycodes marked in the 'E' column are only available on
42 //      "enhanced" 101/102-key keyboards with extended keyboard BIOS
43 //      support enabled. The extended BIOS returns keycodes containing
44 //      0xE0 to distinguish duplicated keys, which are marked in the
45 //      'T' column.
46 //  3.  If an "enhanced" keyboard and extended BIOS is detected, the
47 //      DEFAULT is to enable extended BIOS support and translation of
48 //      any duplicate extended keycodes.
49 //  4.  Keycodes are ordered by character-code, then scan-code.
50 //  5.  Control-Break, which has an actual keycode of 0x000 is
51 //      returned as 0xFFFF.
52 //  6.  The ASCII control-code names are shown in square brackets.
53 //  7.  The Key_M_??? mouse-return codes are those returned by
54 //      _MouGet().
55 //  ------------------------------------------------------------------
56 
57 #include <gdefs.h>
58 
59 
60 //  ------------------------------------------------------------------
61 
62 #define  Key_Lsr     '<'
63 #define  Key_Gtr     '>'
64 #define  Key_Multi   '*'
65 #define  Key_Plus    '+'
66 #define  Key_Minus   '-'
67 
68 
69 //  ------------------------------------------------------------------
70                                      //- Normal key -------- N G E T -
71 #define  Key_0       '0'             // <0>                  - - - -
72 #define  Key_1       '1'             // <1>                  - - - -
73 #define  Key_2       '2'             // <2>                  - - - -
74 #define  Key_3       '3'             // <3>                  - - - -
75 #define  Key_4       '4'             // <4>                  - - - -
76 #define  Key_5       '5'             // <5>                  - - - -
77 #define  Key_6       '6'             // <6>                  - - - -
78 #define  Key_7       '7'             // <7>                  - - - -
79 #define  Key_8       '8'             // <8>                  - - - -
80 #define  Key_9       '9'             // <9>                  - - - -
81 
82 #define  Key_A       0x1E61          // <a>                  - - - -
83 #define  Key_B       0x3062          // <b>                  - - - -
84 #define  Key_C       0x2E63          // <c>                  - - - -
85 #define  Key_D       0x2064          // <d>                  - - - -
86 #define  Key_E       0x1265          // <e>                  - - - -
87 #define  Key_F       0x2166          // <f>                  - - - -
88 #define  Key_G       0x2267          // <g>                  - - - -
89 #define  Key_H       0x2368          // <h>                  - - - -
90 #define  Key_I       0x1769          // <i>                  - - - -
91 #define  Key_J       0x246a          // <j>                  - - - -
92 #define  Key_K       0x256b          // <k>                  - - - -
93 #define  Key_L       0x266c          // <l>                  - - - -
94 #define  Key_M       0x326d          // <m>                  - - - -
95 #define  Key_N       0x316e          // <n>                  - - - -
96 #define  Key_O       0x186f          // <o>                  - - - -
97 #define  Key_P       0x1970          // <p>                  - - - -
98 #define  Key_Q       0x1071          // <q>                  - - - -
99 #define  Key_R       0x1372          // <r>                  - - - -
100 #define  Key_S       0x1F73          // <s>                  - - - -
101 #define  Key_T       0x1474          // <t>                  - - - -
102 #define  Key_U       0x1675          // <u>                  - - - -
103 #define  Key_V       0x2F76          // <v>                  - - - -
104 #define  Key_W       0x1177          // <w>                  - - - -
105 #define  Key_X       0x2D78          // <x>                  - - - -
106 #define  Key_Y       0x1579          // <y>                  - - - -
107 #define  Key_Z       0x2C7A          // <z>                  - - - -
108 #define  Key_StrG    0x372A          //   <*>                - G - -
109 #define  Key_PlsG    0x4E2B          //   <+>                - G - -
110 #define  Key_Com     0x332C          //   <,>                - - - -
111 #define  Key_MinG    0x4A2D          //   <->                - G - -
112 #define  Key_Dot     0x342E          //   <.>                - - - -
113 #define  Key_BS      0x0E08          //   <BS>               - - - -
114 #define  Key_5Num    0x4C00          //   <Cent>             N - E -
115 #define  Key_Del     0x5300          //   <Del>              N - - -
116 #define  Key_DelG    0x53E0          //   <Del>     Grey     - G E T
117 #define  Key_Dwn     0x5000          //   <Down>             N - - -
118 #define  Key_DwnG    0x50E0          //   <Down>    Grey     - G E T
119 #define  Key_End     0x4F00          //   <End>              N - - -
120 #define  Key_EndG    0x4FE0          //   <End>     Grey     - G E T
121 #define  Key_Ent     0x1C0D          //   <Enter>            - - - -
122 #define  Key_EntG    0xE00D          //   <Enter>   Grey     - G E T
123 #define  Key_Esc     0x011B          //   <Esc>              - - - -
124 #define  Key_F1      0x3B00          //   <F1>               - - - -
125 #define  Key_F2      0x3C00          //   <F2>               - - - -
126 #define  Key_F3      0x3D00          //   <F3>               - - - -
127 #define  Key_F4      0x3E00          //   <F4>               - - - -
128 #define  Key_F5      0x3F00          //   <F5>               - - - -
129 #define  Key_F6      0x4000          //   <F6>               - - - -
130 #define  Key_F7      0x4100          //   <F7>               - - - -
131 #define  Key_F8      0x4200          //   <F8>               - - - -
132 #define  Key_F9      0x4300          //   <F9>               - - - -
133 #define  Key_F10     0x4400          //   <F10>              - - - -
134 #define  Key_F11     0x8500          //   <F11>              - - E -
135 #define  Key_F12     0x8600          //   <F12>              - - E -
136 #define  Key_Home    0x4700          //   <Home>             N - - -
137 #define  Key_HomeG   0x47E0          //   <Home>    Grey     - G E T
138 #define  Key_Ins     0x5200          //   <Ins>              N - - -
139 #define  Key_InsG    0x52E0          //   <Ins>     Grey     - G E T
140 #define  Key_Lft     0x4B00          //   <Left>             N - - -
141 #define  Key_LftG    0x4BE0          //   <Left>    Grey     - G E T
142 #define  Key_PgDn    0x5100          //   <PgDn>             N - - -
143 #define  Key_PgDnG   0x51E0          //   <PgDn>    Grey     - G E T
144 #define  Key_PgUp    0x4900          //   <PgUp>             N - - -
145 #define  Key_PgUpG   0x49E0          //   <PgUp>    Grey     - G E T
146 #define  Key_Rgt     0x4D00          //   <Right>            N - - -
147 #define  Key_RgtG    0x4DE0          //   <Right>   Grey     - G E T
148 #define  Key_Space   0x3920          //   <Space>            - - - -
149 #define  Key_Tab     0x0F09          //   <Tab>              - - - -
150 #define  Key_Up      0x4800          //   <Up>               N - - -
151 #define  Key_UpG     0x48E0          //   <Up>      Grey     - G E T
152 #define  Key_Quo     0x2827          // <'>                  - - - -
153 #define  Key_Min     0x0C2D          // <->                  - - - -
154 #define  Key_Sls     0x352F          // </>                  - - - -
155 #define  Key_Smi     0x273B          // <;>                  - - - -
156 #define  Key_Equ     0x0D3D          // <=>                  - - - -
157 #define  Key_Lbr     0x1A5B          // <[>                  - - - -
158 #define  Key_Bsl     0x2B5C          // <\>                  - - - -
159 #define  Key_Rbr     0x1B5D          // <]>                  - - - -
160 #define  Key_Grv     0x2960          // <`>                  - - - -
161 
162 //  ------------------------------------------------------------------
163                                      //- Shift key --------- N G E T -
164 #define  Key_S_0     0x0B29          // <0 )>                - - - -
165 #define  Key_S_1     0x0221          // <1 !>                - - - -
166 #define  Key_S_2     0x0340          // <2 @>                - - - -
167 #define  Key_S_3     0x0423          // <3 #>                - - - -
168 #define  Key_S_4     0x0524          // <4 $>                - - - -
169 #define  Key_S_5     0x0625          // <5 %>                - - - -
170 #define  Key_S_6     0x075E          // <6 ^>                - - - -
171 #define  Key_S_7     0x0826          // <7 &>                - - - -
172 #define  Key_S_8     0x092A          // <8 *>                - - - -
173 #define  Key_S_9     0x0A28          // <9 (>                - - - -
174 #define  Key_S_A     0x1E41          // <A>                  - - - -
175 #define  Key_S_B     0x3042          // <B>                  - - - -
176 #define  Key_S_C     0x2E43          // <C>                  - - - -
177 #define  Key_S_D     0x2044          // <D>                  - - - -
178 #define  Key_S_E     0x1245          // <E>                  - - - -
179 #define  Key_S_F     0x2146          // <F>                  - - - -
180 #define  Key_S_G     0x2247          // <G>                  - - - -
181 #define  Key_S_H     0x2348          // <H>                  - - - -
182 #define  Key_S_I     0x1749          // <I>                  - - - -
183 #define  Key_S_J     0x244a          // <J>                  - - - -
184 #define  Key_S_K     0x254b          // <K>                  - - - -
185 #define  Key_S_L     0x264c          // <L>                  - - - -
186 #define  Key_S_M     0x324d          // <M>                  - - - -
187 #define  Key_S_N     0x314e          // <N>                  - - - -
188 #define  Key_S_O     0x184f          // <O>                  - - - -
189 #define  Key_S_P     0x1950          // <P>                  - - - -
190 #define  Key_S_Q     0x1051          // <Q>                  - - - -
191 #define  Key_S_R     0x1352          // <R>                  - - - -
192 #define  Key_S_S     0x1F53          // <S>                  - - - -
193 #define  Key_S_T     0x1454          // <T>                  - - - -
194 #define  Key_S_U     0x1655          // <U>                  - - - -
195 #define  Key_S_V     0x2F56          // <V>                  - - - -
196 #define  Key_S_W     0x1157          // <W>                  - - - -
197 #define  Key_S_X     0x2D58          // <X>                  - - - -
198 #define  Key_S_Y     0x1559          // <Y>                  - - - -
199 #define  Key_S_Z     0x2C5a          // <Z>                  - - - -
200 #define  Key_S_Quo   0x2822          // <' ">                - - - -
201 #define  Key_S_Com   0x333C          // <, >>                - - - -
202 #define  Key_S_Min   0x0C5F          // <- _>                - - - -
203 #define  Key_S_Dot   0x343E          // <. <>                - - - -
204 #define  Key_S_Sls   0x353F          // </ ?>                - - - -
205 #define  Key_S_Smi   0x273A          // <; :>                - - - -
206 #define  Key_S_Equ   0x0D2B          // <= +>                - - - -
207 #define  Key_S_Lbr   0x1A7B          // <[ {>                - - - -
208 #define  Key_S_Bsl   0x2B7C          // <\ |>                - - - -
209 #define  Key_S_Rbr   0x1B7D          // <] }>                - - - -
210 #define  Key_S_Grv   0x297E          // <` ~>                - - - -
211 #define  Key_S_5Num  0x4C35          // S <Cent 5>           N - - -
212 #define  Key_S_F1    0x5400          // S <F1>               - - - -
213 #define  Key_S_F2    0x5500          // S <F2>               - - - -
214 #define  Key_S_F3    0x5600          // S <F3>               - - - -
215 #define  Key_S_F4    0x5700          // S <F4>               - - - -
216 #define  Key_S_F5    0x5800          // S <F5>               - - - -
217 #define  Key_S_F6    0x5900          // S <F6>               - - - -
218 #define  Key_S_F7    0x5A00          // S <F7>               - - - -
219 #define  Key_S_F8    0x5B00          // S <F8>               - - - -
220 #define  Key_S_F9    0x5C00          // S <F9>               - - - -
221 #define  Key_S_F10   0x5D00          // S <F10>              - - - -
222 #define  Key_S_F11   0x8700          // S <F11>              - - E -
223 #define  Key_S_F12   0x8800          // S <F12>              - - E -
224 #define  Key_S_Tab   0x0F00          // S <Tab>              - - - -
225 #if !defined(__UNIX__) || defined(__USE_NCURSES__)
226 #define  Key_S_Ins   0xD200          // S <Ins>     Grey     - G E T
227 #define  Key_S_Lft   0xCB00          // S <Left>    Grey     - G E T
228 #define  Key_S_PgDn  0xD100          // S <PgDn>    Grey     - G E T
229 #define  Key_S_PgUp  0xC900          // S <PgUp>    Grey     - G E T
230 #define  Key_S_Rgt   0xCD00          // S <Right>   Grey     - G E T
231 #define  Key_S_Up    0xC800          // S <Up>      Grey     - G E T
232 #define  Key_S_Dwn   0xD000          // S <Down>    Grey     - G E T
233 #define  Key_S_End   0xCF00          // S <End>     Grey     - G E T
234 #define  Key_S_Home  0xC700          // S <Home>    Grey     - G E T
235 #define  Key_S_Del   0xD300          // S <Del .>            N - - -
236 #else
237 #define  Key_S_Home  0x4737          // S <Home 7>           N - - -
238 #define  Key_S_HomeG 0x47E0          // S <Home>    Grey     - G E T
239 #define  Key_S_Ins   0x5230          // S <Ins 0>            N - - -
240 #define  Key_S_InsG  0x52E0          // S <Ins>     Grey     - G E T
241 #define  Key_S_Lft   0x4B34          // S <Left 4>           N - - -
242 #define  Key_S_LftG  0x4BE0          // S <Left>    Grey     - G E T
243 #define  Key_S_PgDn  0x5133          // S <PgDn 3>           N - - -
244 #define  Key_S_PgDnG 0x51E0          // S <PgDn>    Grey     - G E T
245 #define  Key_S_PgUp  0x4939          // S <PgUp 9>           N - - -
246 #define  Key_S_PgUpG 0x49E0          // S <PgUp>    Grey     - G E T
247 #define  Key_S_Rgt   0x4D36          // S <Right 6>          N - - -
248 #define  Key_S_RgtG  0x4DE0          // S <Right>   Grey     - G E T
249 #define  Key_S_Up    0x4838          // S <Up 8>             N - - -
250 #define  Key_S_UpG   0x48E0          // S <Up>      Grey     - G E T
251 #define  Key_S_Dwn   0x5032          // S <Down 2>           N - - -
252 #define  Key_S_DwnG  0x50E0          // S <Down>    Grey     - G E T
253 #define  Key_S_End   0x4F31          // S <End 1>            N - - -
254 #define  Key_S_EndG  0x4FE0          // S <End>     Grey     - G E T
255 #define  Key_S_Del   0x532E          // S <Del .>            N - - -
256 #define  Key_S_DelG  0x53E0          // S <Del>     Grey     - G E T
257 #endif
258 
259 //  ------------------------------------------------------------------
260                                      //- Control key ------- N G E T -
261 #define  Key_C_2     0x0300          // C <2 @>     [NUL]    - - - -
262 #define  Key_C_A     0x1E01          // C <A>       [SOH]    - - - -
263 #define  Key_C_B     0x3002          // C <B>       [STX]    - - - -
264 #define  Key_C_C     0x2E03          // C <C>       [ETX]    - - - -
265 #define  Key_C_D     0x2004          // C <D>       [EOT]    - - - -
266 #define  Key_C_E     0x1205          // C <E>       [ENQ]    - - - -
267 #define  Key_C_F     0x2106          // C <F>       [ACK]    - - - -
268 #define  Key_C_G     0x2207          // C <G>       [BEL]    - - - -
269 #define  Key_C_H     0x2308          // C <H>       [BS]     - - - -
270 #define  Key_C_I     0x1709          // C <I>       [HT]     - - - -
271 #define  Key_C_J     0x240A          // C <J>       [LF]     - - - -
272 #define  Key_C_K     0x250B          // C <K>       [VT]     - - - -
273 #define  Key_C_L     0x260C          // C <L>       [FF]     - - - -
274 #define  Key_C_M     0x320D          // C <M>       [CR]     - - - -
275 #define  Key_C_N     0x310E          // C <N>       [SO]     - - - -
276 #define  Key_C_O     0x180F          // C <O>       [SI]     - - - -
277 #define  Key_C_P     0x1910          // C <P>       [DLE]    - - - -
278 #define  Key_C_Q     0x1011          // C <Q>       [DC1]    - - - -
279 #define  Key_C_R     0x1312          // C <R>       [DC2]    - - - -
280 #define  Key_C_S     0x1F13          // C <S>       [DC3]    - - - -
281 #define  Key_C_T     0x1414          // C <T>       [DC4]    - - - -
282 #define  Key_C_U     0x1615          // C <U>       [NAK]    - - - -
283 #define  Key_C_V     0x2F16          // C <V>       [SYN]    - - - -
284 #define  Key_C_W     0x1117          // C <W>       [ETB]    - - - -
285 #define  Key_C_X     0x2D18          // C <X>       [CAN]    - - - -
286 #define  Key_C_Y     0x1519          // C <Y>       [EM]     - - - -
287 #define  Key_C_Z     0x2C1A          // C <Z>       [SUB]    - - - -
288 #define  Key_C_StrG  0x7200          // C <*>       Grey     - G E -
289 #define  Key_C_PlsG  0x9000          // C <+>       Grey     - G E -
290 #define  Key_C_Min   0x0C1F          // C <- _>              - - - -
291 #define  Key_C_MinG  0x8E00          // C <->       Grey     - G E -
292 #define  Key_C_6     0x071E          // C <7 &>     [RS]     - - - -
293 #define  Key_C_Brk   0xFFFF          // C <Break>   Grey     - - - -
294 #define  Key_C_BS    0x0E7F          // C <BS>      [RUB]    - - - -
295 #define  Key_C_5Num  0x8F00          // C <Cent 5>           N - E -
296 #define  Key_C_Del   0x9300          // C <Del 2>            - - E -
297 #define  Key_C_DelG  0x93E0          // C <Del>     Grey     - G E T
298 #define  Key_C_Dwn   0x9100          // C <Dwn 2>            - - E -
299 #define  Key_C_DwnG  0x91E0          // C <Dwn>     Grey     - G E T
300 #define  Key_C_End   0x7500          // C <End 1>            N - - -
301 #define  Key_C_EndG  0x75E0          // C <End>     Grey     - G E T
302 #define  Key_C_EntG  0xE00A          // C <Enter>   Grey     - G E T
303 #define  Key_C_Ent   0x1C0A          // C <Enter>   [LF]     - - - -
304 #define  Key_C_F1    0x5E00          // C <F1>               - - - -
305 #define  Key_C_F2    0x5F00          // C <F2>               - - - -
306 #define  Key_C_F3    0x6000          // C <F3>               - - - -
307 #define  Key_C_F4    0x6100          // C <F4>               - - - -
308 #define  Key_C_F5    0x6200          // C <F5>               - - - -
309 #define  Key_C_F6    0x6300          // C <F6>               - - - -
310 #define  Key_C_F7    0x6400          // C <F7>               - - - -
311 #define  Key_C_F8    0x6500          // C <F8>               - - - -
312 #define  Key_C_F9    0x6600          // C <F9>               - - - -
313 #define  Key_C_F10   0x6700          // C <F10>              - - - -
314 #define  Key_C_F11   0x8900          // C <F11>              - - E -
315 #define  Key_C_F12   0x8A00          // C <F12>              - - E -
316 #define  Key_C_Home  0x7700          // C <Home 7>           N - - -
317 #define  Key_C_HomeG 0x77E0          // C <Home>    Grey     - G E T
318 #define  Key_C_Ins   0x9200          // C <Ins 0>            - - E -
319 #define  Key_C_InsG  0x92E0          // C <Ins>     Grey     - G E T
320 #define  Key_C_Lft   0x7300          // C <Left 4>           N - - -
321 #define  Key_C_LftG  0x73E0          // C <Left>    Grey     - G E T
322 #define  Key_C_PgDn  0x7600          // C <PgDn 3>           N - - -
323 #define  Key_C_PgDnG 0x76E0          // C <PgDn>    Grey     - G E T
324 #define  Key_C_PgUp  0x8400          // C <PgUp 9>           N - - -
325 #define  Key_C_PgUpG 0x84E0          // C <PgUp>    Grey     - G E T
326 #define  Key_C_Rgt   0x7400          // C <Right 6>          N - - -
327 #define  Key_C_RgtG  0x74E0          // C <Right>   Grey     - G E T
328 #define  Key_C_Tab   0x9400          // C <Tab>              - - E -
329 #define  Key_C_Up    0x8D00          // C <Up 8>             - - E -
330 #define  Key_C_UpG   0x8DE0          // C <Up>      Grey     - G E T
331 #define  Key_C_Lbr   0x1A1B          // C <[ {>     [ESC]    - - - -
332 #define  Key_C_Bsl   0x2B1C          // C <\ |>     [FS]     - - - -
333 #define  Key_C_Rbr   0x1B1D          // C <] }>     [GS]     - - - -
334 
335 //  ------------------------------------------------------------------
336                                      //- Alt key ----------- N G E T -
337 #define  Key_A_0     0x8100          // A <0 )>              - - - -
338 #define  Key_A_1     0x7800          // A <1 !>              - - - -
339 #define  Key_A_2     0x7900          // A <2 @>              - - - -
340 #define  Key_A_3     0x7A00          // A <3 #>              - - - -
341 #define  Key_A_4     0x7B00          // A <4 ^>              - - - -
342 #define  Key_A_5     0x7C00          // A <5 %>              - - - -
343 #define  Key_A_6     0x7D00          // A <6 %>              - - - -
344 #define  Key_A_7     0x7E00          // A <7 &>              - - - -
345 #define  Key_A_8     0x7F00          // A <8 *>              - - - -
346 #define  Key_A_9     0x8000          // A <9 (>              - - - -
347 #define  Key_A_A     0x1E00          // A <A>                - - - -
348 #define  Key_A_B     0x3000          // A <B>                - - - -
349 #define  Key_A_C     0x2E00          // A <C>                - - - -
350 #define  Key_A_D     0x2000          // A <D>                - - - -
351 #define  Key_A_E     0x1200          // A <E>                - - - -
352 #define  Key_A_F     0x2100          // A <F>                - - - -
353 #define  Key_A_G     0x2200          // A <G>                - - - -
354 #define  Key_A_H     0x2300          // A <H>                - - - -
355 #define  Key_A_I     0x1700          // A <I>                - - - -
356 #define  Key_A_J     0x2400          // A <J>                - - - -
357 #define  Key_A_K     0x2500          // A <K>                - - - -
358 #define  Key_A_L     0x2600          // A <L>                - - - -
359 #define  Key_A_M     0x3200          // A <M>                - - - -
360 #define  Key_A_N     0x3100          // A <N>                - - - -
361 #define  Key_A_O     0x1800          // A <O>                - - - -
362 #define  Key_A_P     0x1900          // A <P>                - - - -
363 #define  Key_A_Q     0x1000          // A <Q>                - - - -
364 #define  Key_A_R     0x1300          // A <R>                - - - -
365 #define  Key_A_S     0x1F00          // A <S>                - - - -
366 #define  Key_A_T     0x1400          // A <T>                - - - -
367 #define  Key_A_U     0x1600          // A <U>                - - - -
368 #define  Key_A_V     0x2F00          // A <V>                - - - -
369 #define  Key_A_W     0x1100          // A <W>                - - - -
370 #define  Key_A_X     0x2D00          // A <X>                - - - -
371 #define  Key_A_Y     0x1500          // A <Y>                - - - -
372 #define  Key_A_Z     0x2C00          // A <Z>                - - - -
373 #define  Key_A_Quo   0x2800          // A <' ">              - - E -
374 #define  Key_A_PlsG  0x4E00          // A <+>       Grey     - G E -
375 #define  Key_A_Com   0x3300          // A <, <>              - - E -
376 #define  Key_A_Min   0x8200          // A <- _>              - - - -
377 #define  Key_A_MinG  0x4A00          // A <->       Grey     - G E -
378 #define  Key_A_Dot   0x3400          // A <. >>              - - E -
379 #define  Key_A_Sls   0x3500          // A </ ?>              - - E -
380 #define  Key_A_Smi   0x2700          // A <; :>              - - E -
381 #define  Key_A_Equ   0x8300          // A <= +>              - - - -
382 #define  Key_A_BS    0x0E00          // A <BS>               - - E -
383 #define  Key_A_5Num  0x4C00          // A <Cent 5>           N - E -
384 #define  Key_A_Del   0xA300          // A <Del>              - - E -
385 #define  Key_A_DelG  0xA300          // A <Del>     Grey     - G E -
386 #define  Key_A_Dwn   0xA000          // A <Dwn>              - - E -
387 #define  Key_A_DwnG  0xA000          // A <Dwn>     Grey     - G E -
388 #define  Key_A_End   0x9F00          // A <End>              - - E -
389 #define  Key_A_EndG  0x9F00          // A <End>     Grey     - G E -
390 #define  Key_A_EntG  0xA600          // A <Enter    Grey     - G E -
391 #define  Key_A_Ent   0x1C00          // A <Enter>            - - E -
392 #define  Key_A_Esc   0x0100          // A <Esc>              - - E -
393 #define  Key_A_F1    0x6800          // A <F1>               - - - -
394 #define  Key_A_F2    0x6900          // A <F2>               - - - -
395 #define  Key_A_F3    0x6A00          // A <F3>               - - - -
396 #define  Key_A_F4    0x6B00          // A <F4>               - - - -
397 #define  Key_A_F5    0x6C00          // A <F5>               - - - -
398 #define  Key_A_F6    0x6D00          // A <F6>               - - - -
399 #define  Key_A_F7    0x6E00          // A <F7>               - - - -
400 #define  Key_A_F8    0x6F00          // A <F8>               - - - -
401 #define  Key_A_F9    0x7000          // A <F9>               - - - -
402 #define  Key_A_F10   0x7100          // A <F10>              - - - -
403 #define  Key_A_F11   0x8B00          // A <F11>              - - E -
404 #define  Key_A_F12   0x8C00          // A <F12>              - - E -
405 #define  Key_A_Home  0x9700          // A <Home>             - - E -
406 #define  Key_A_HomeG 0x9700          // A <Home>    Grey     - G E -
407 #define  Key_A_Ins   0xA200          // A <Ins>              - - E -
408 #define  Key_A_InsG  0xA200          // A <Ins>     Grey     - G E -
409 #define  Key_A_Lft   0x9B00          // A <Left>             - - E -
410 #define  Key_A_LftG  0x9B00          // A <Left>    Grey     - G E -
411 #define  Key_A_PgDn  0xA100          // A <PgDn>             - - E -
412 #define  Key_A_PgDnG 0xA100          // A <PgDn>    Grey     - G E -
413 #define  Key_A_PgUp  0x9900          // A <PgUp>             - - E -
414 #define  Key_A_PgUpG 0x9900          // A <PgUp>    Grey     - G E -
415 #define  Key_A_Rgt   0x9D00          // A <Right             - - E -
416 #define  Key_A_RgtG  0x9D00          // A <Right    Grey     - G E -
417 #define  Key_A_Tab   0xA500          // A <Tab>              - - E -
418 #define  Key_A_Up    0x9800          // A <Up>               - - E -
419 #define  Key_A_UpG   0x9800          // A <Up>      Grey     - G E -
420 #define  Key_A_Lbr   0x1A00          // A <[ {>              - - E -
421 #define  Key_A_Bsl   0x2B00          // A <\ |>              - - E -
422 #define  Key_A_Rbr   0x1B00          // A <] }>              - - E -
423 #define  Key_A_Grv   0x2900          // A <` ~>              - - E -
424 
425 //  ------------------------------------------------------------------
426                                      //- Mouse KeyCode Returns -------
427 #define  Key_M_Scn   0xD4            // Scan-code
428 #define  Key_M_Clk   0x30            // Single-click keycodes
429 #define  Key_M_ClkL  0xD431          //    Left-button
430 #define  Key_M_ClkR  0xD432          //    Right-button
431 #define  Key_M_ClkM  0xD434          //    Middle-button
432 
433 #define  Key_M_DClk  0x20            // Double-click keycodes
434 #define  Key_M_DClkL 0xD421          //    Left-button
435 #define  Key_M_DClkR 0xD422          //    Right-button
436 #define  Key_M_DClkM 0xD424          //    Middle-button
437 
438 #define  Key_M_Prs   0x30            // Single-press keycodes
439 #define  Key_M_PrsL  0xD431          //    Left-button
440 #define  Key_M_PrsR  0xD432          //    Right-button
441 #define  Key_M_PrsM  0xD434          //    Middle-button
442 #define  Key_M_Rel   0x40            // Single-release keycodes
443 #define  Key_M_RelL  0xD441          //    Left-button
444 #define  Key_M_RelR  0xD442          //    Right-button
445 #define  Key_M_RelM  0xD444          //    Middle-button
446 
447 #define  Key_M_Mov   0x50            // Mouse motion keycodes
448 #define  Key_M_Up    0xD450          //    Motion [Up]
449 #define  Key_M_Dwn   0xD451          //    Motion [Down]
450 #define  Key_M_Lft   0xD452          //    Motion [Left]
451 #define  Key_M_Rgt   0xD453          //    Motion [Right]
452 
453 
454 //  ------------------------------------------------------------------
455 //  Goldware internal keycodes
456 
457 #define  Key_Tick    0x0200          // Timer tick
458 #define  Key_Auto    0xFD00          // Auto macro
459 #define  Key_Macro   0xFE00          // Macro
460 
461 
462 //  ------------------------------------------------------------------
463 
464 #endif
465 
466 //  ------------------------------------------------------------------
467