|
|
1.1 root 1: #ifndef _IBMKEYS_DOT_H
2: #define _IBMKEYS_DOT_H
3:
4: /*
5: * IBMKEYS.H 5.20A June 8, 1995
6: *
7: * The Greenleaf Comm Library
8: *
9: * Copyright (C)1986-1995 Greenleaf Software Inc. All Rights Reserved.
10: *
11: * NOTES
12: *
13: * Define Keys for the 83/84 key and 101/102 key IBM PC keyboards,
14: * structures, constants and function prototypes for keyboard functions.
15: *
16: * MODIFICATIONS
17: *
18: * December 12, 1992 4.00A : Initial release
19: *
20: */
21:
22:
23: #include "compiler.h"
24:
25: #define F1 0x3b00 /* F1 ........... */
26: #define F2 0x3c00
27: #define F3 0x3d00
28: #define F4 0x3e00
29: #define F5 0x3f00
30: #define F6 0x4000
31: #define F7 0x4100
32: #define F8 0x4200
33: #define F9 0x4300
34: #define F10 0x4400
35: #define F11 0x8500 /* Enhanced Keyboards Only */
36: #define F12 0x8600 /* Enhanced Keyboards Only */
37:
38: #define SF1 0x5400 /* Shift-F1 ...... */
39: #define SF2 0x5500
40: #define SF3 0x5600
41: #define SF4 0x5700
42: #define SF5 0x5800
43: #define SF6 0x5900
44: #define SF7 0x5a00
45: #define SF8 0x5b00
46: #define SF9 0x5c00
47: #define SF10 0x5d00
48: #define SF11 0x8700 /* Enhanced Keyboards Only */
49: #define SF12 0x8800 /* Enhanced Keyboards Only */
50:
51: #define CF1 0x5e00 /* Control-F1 */
52: #define CF2 0x5f00
53: #define CF3 0x6000
54: #define CF4 0x6100
55: #define CF5 0x6200
56: #define CF6 0x6300
57: #define CF7 0x6400
58: #define CF8 0x6500
59: #define CF9 0x6600
60: #define CF10 0x6700
61: #define CF11 0x8900 /* Enhanced Keyboards Only */
62: #define CF12 0x8a00 /* Enhanced Keyboards Only */
63:
64: #define AF1 0x6800 /* Alt - F1 */
65: #define AF2 0x6900
66: #define AF3 0x6a00
67: #define AF4 0x6b00
68: #define AF5 0x6c00
69: #define AF6 0x6d00
70: #define AF7 0x6e00
71: #define AF8 0x6f00
72: #define AF9 0x7000
73: #define AF10 0x7100
74: #define AF11 0x8b00 /* Enhanced Keyboards Only */
75: #define AF12 0x8c00 /* Enhanced Keyboards Only */
76:
77: #define ALTA 0x1e00 /* Alt - A .... */
78: #define ALTB 0x3000
79: #define ALTC 0x2e00
80: #define ALTD 0x2000
81: #define ALTE 0x1200
82: #define ALTF 0x2100
83: #define ALTG 0x2200
84: #define ALTH 0x2300
85: #define ALTI 0x1700
86: #define ALTJ 0x2400
87: #define ALTK 0x2500
88: #define ALTL 0x2600
89: #define ALTM 0x3200
90: #define ALTN 0x3100
91: #define ALTO 0x1800
92: #define ALTP 0x1900
93: #define ALTQ 0x1000
94: #define ALTR 0x1300
95: #define ALTS 0x1f00
96: #define ALTT 0x1400
97: #define ALTU 0x1600
98: #define ALTV 0x2f00
99: #define ALTW 0x1100
100: #define ALTX 0x2d00
101: #define ALTY 0x1500
102: #define ALTZ 0x2c00
103:
104: #define ALT1 0x7800 /* Alt - 1 .... */
105: #define ALT2 0x7900
106: #define ALT3 0x7a00
107: #define ALT4 0x7b00
108: #define ALT5 0x7c00
109: #define ALT6 0x7d00
110: #define ALT7 0x7e00
111: #define ALT8 0x7f00
112: #define ALT9 0x8000
113: #define ALT0 0x8100
114:
115: #define ALTEQUAL 0x8300 /* Alt = */
116: #define ALTMINUS 0x8200 /* Alt - */
117:
118: #define CTRLCURLF 0x7300 /* Ctrl <- */
119: #define CTRLCURRT 0x7400 /* Ctrl -> */
120: #define CTRLEND 0x7500 /* Ctrl End */
121: #define CTRLHOME 0x7700 /* Ctrl Home */
122: #define CTRLPGDN 0x7600 /* Ctrl PgDn */
123: #define CTRLPGUP 0x8400 /* Ctrl PgUp */
124:
125: #define CURDN 0x5000 /* down arrow */
126: #define CURLF 0x4b00 /* <- */
127: #define CENTER 0x4c00
128: #define CURRT 0x4d00 /* -> */
129: #define CURUP 0x4800 /* up arrow */
130: #if !defined( GF_WIN32 ) || ( defined( GF_WIN32 ) && defined( DOSX386 ) )
131: /*
132: * Windows NT header files define this guy, let's make sure we don't clash.
133: */
134: # if !defined( DELETE )
135: #define DELETE 0x5300 /* Del */
136: # endif
137: #endif
138: #define ENDKEY 0x4f00 /* END key */
139: #define HOME 0x4700 /* HOME key */
140: #define INSERT 0x5200 /* Ins */
141: #define PGDN 0x5100 /* PgDn */
142: #define PGUP 0x4900 /* PgUp */
143: #define REVTAB 0x0F00 /* Shift Tab */
144:
145: #define CTRLBREAK 0 /* for when breakchk(ON) */
146: #define NOKEY 0xffff
147:
148: /*
149: * The following constants apply to the 101/102 key enhanced
150: * keyboard.
151: */
152: #define ALTACCENT 0x2900 /* Alt Accent (`) */
153: #define ALTAPOST 0x2800 /* Alt Apostrophe (') */
154: #define ALTAST 0x3700 /* Alt * */
155: #define ALTBACKSLASH 0x2b00 /* Alt Backslash (\) */
156: #define ALTBS 0x0e00 /* Alt-Backspace */
157: #define ALTCB 0x1b00 /* Alt close bracket */
158: #define ALTCOMMA 0x3300 /* Alt Comma */
159: #define ALTCURDN 0xa000 /* Alt Cursor Down */
160: #define ALTCURLF 0x9b00 /* Alt Cursor Left */
161: #define ALTCURRT 0x9d00 /* Alt Cursor Right */
162: #define ALTCURUP 0x9800 /* Alt Cursor Up */
163: #define ALTDELETE 0xa300 /* Alt Delete */
164: #define ALTEND 0x9f00 /* Alt End */
165: #define ALTENTER 0xa600 /* Alt Enter (keypad) */
166: #define ALTESC 0x0100 /* Alt Escape */
167: #define ALTHOME 0x9700 /* Alt Home */
168: #define ALTINSERT 0xa200 /* Alt Insert */
169: #define ALTKBMINUS 0x4a00 /* Alt Keypad - */
170: #define ALTKBPLUS 0x4e00 /* Alt Keypad + */
171: #define ALTOB 0x1a00 /* Alt open bracket */
172: #define ALTPERIOD 0x3400 /* Alt Period */
173: #define ALTPGDN 0xa100 /* Alt Page Down */
174: #define ALTPGUP 0x9900 /* Alt Page Up */
175: #define ALTRETURN 0x1c00 /* Alt Return */
176: #define ALTSEMI 0x2700 /* Alt Semicolon */
177: #define ALTSLASH 0x3500 /* Alt Slash */
178: #define ALTTAB 0xa500 /* Alt-Tab */
179: #define ALTXSLASH 0xa400 /* Alt Slash (keypad) */
180:
181: #define CTRLAST 0x9600 /* Control * */
182: #define CTRLCENTER 0x8f00 /* Control Center */
183: #define CTRLCURDN 0x9100 /* Control Down Arrow */
184: #define CTRLDELETE 0x9300 /* Control Delete */
185: #define CTRLINSERT 0x9200 /* Control Insert */
186: #define CTRLKPMINUS 0x8e00 /* Control Keypad - */
187: #define CTRLKPPLUS 0x9000 /* Control Keypad + */
188: #define CTRLPRTSC 0x7200 /* Ctrl PrtSc */
189: #define CTRLTAB 0x9400 /* Control Tab */
190: #define CTRLUP 0x8d00 /* Control UP-Arrow */
191:
192: /* End 101/102 key Enhanced keyboard constants */
193:
194: /*
195: * Returns (masks) from kbshift()
196: */
197: #define ALTKEY 0x0008
198: #define CAPSKEY 0x0040
199: #define CTRLKEY 0x0004
200: #define INSKEY 0x0080
201: #define LFALTKEY 0x0200 /* Enhanced Keyboard Only */
202: #define LFCTRLKEY 0x0100 /* Enhanced Keyboard Only */
203: #define LFSHIFTKEY 0x0002
204: #define NUMLOCK 0x0020
205: #define RTALTKEY 0x0800 /* Enhanced Keyboard Only */
206: #define RTCTRLKEY 0x0400 /* Enhanced Keyboard Only */
207: #define RTSHIFTKEY 0x0001
208: #define SCRL_LOCK 0x0010
209:
210:
211: /*
212: * The SCANB() macro can be used to transform the 16 bit "getkey()" code
213: * into an 8 bit scan code.
214: */
215: #define SCANB(code) (code>>8) /* Tag: Misc Private */
216:
217:
218: #ifdef __cplusplus
219: extern "C" {
220: #endif
221:
222: int GF_CDECL enhkbd(void);
223: int GF_CDECL gfkbhit(void);
224: int GF_CDECL breakchk(int option);
225: unsigned int GF_CDECL getkey(void);
226: unsigned GF_CDECL kbfetch(void);
227: unsigned GF_CDECL kbshift(void);
228:
229: #ifdef __cplusplus
230: }
231: #endif
232:
233: #endif /* _IBMKEYS_DOT_H */
234:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.