Commit | Line | Data |
---|---|---|
ee01fcaa KB |
1 | /* |
2 | * Copyright (c) 1988 Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
5 | * Redistribution and use in source and binary forms are permitted | |
b36fc510 KB |
6 | * provided that the above copyright notice and this paragraph are |
7 | * duplicated in all such forms and that any documentation, | |
8 | * advertising materials, and other materials related to such | |
9 | * distribution and use acknowledge that the software was developed | |
10 | * by the University of California, Berkeley. The name of the | |
11 | * University may not be used to endorse or promote products derived | |
12 | * from this software without specific prior written permission. | |
13 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR | |
14 | * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED | |
15 | * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
ee01fcaa | 16 | * |
d43d1075 | 17 | * @(#)function.h 4.1 (Berkeley) %G% |
ee01fcaa KB |
18 | */ |
19 | ||
44d721ab GM |
20 | /* |
21 | * The following are the various functions which the keyboard can ask | |
22 | * the controller to perform. | |
23 | * | |
24 | * Note that this file (the following entries) are scanned by mkhit.c, | |
25 | * and that the format must remain more-or-less consistent | |
26 | * [ \t]*TOKEN | |
27 | */ | |
28 | ||
29 | enum ctlrfcn { | |
30 | ||
31 | undefined = 0, /* Not yet touched */ | |
32 | ||
33 | FCN_NULL, /* Illegal sequence */ | |
34 | ||
35 | FCN_RESET, /* unlock keyboard */ | |
b6dea594 GM |
36 | FCN_MAKE_SHIFT_LOCK, |
37 | FCN_BREAK_SHIFT_LOCK, | |
44d721ab GM |
38 | |
39 | FCN_MAKE_SHIFT, /* shift key pressed DOWN */ | |
40 | FCN_BREAK_SHIFT, /* shift key released */ | |
41 | ||
42 | FCN_MAKE_ALT, /* alt key pressed DOWN */ | |
43 | FCN_BREAK_ALT, /* alt key released */ | |
44 | ||
45 | FCN_MAKE_CTRL, | |
46 | ||
1ae3d61d GM |
47 | FCN_CAPS_LOCK, |
48 | ||
44d721ab GM |
49 | FCN_MONOCASE, /* DISPLAY in upper case */ |
50 | FCN_DVCNL, | |
51 | ||
52 | FCN_CHARACTER, /* Not one of the following, but ... */ | |
53 | FCN_VERTICAL_BAR, /* EBCDIC solid vertical bar */ | |
54 | FCN_CENTSIGN, /* EBCDIC cent sign */ | |
55 | FCN_SPACE, /* EBCDIC space */ | |
56 | FCN_DP, /* EBCDIC dup character */ | |
57 | FCN_FM, /* EBCDIC field mark */ | |
58 | ||
59 | FCN_AID, /* Some AID key */ | |
60 | FCN_ATTN, | |
61 | FCN_CURSEL, /* Cursor select function (and aid) */ | |
62 | FCN_TEST, /* Test function */ | |
63 | ||
64 | FCN_EINP, /* erase input (dangerous) */ | |
65 | FCN_EEOF, | |
66 | FCN_DELETE, | |
67 | FCN_INSRT, | |
68 | FCN_TAB, | |
69 | FCN_BTAB, | |
70 | FCN_NL, | |
71 | FCN_HOME, | |
72 | FCN_UP, | |
73 | FCN_DOWN, | |
74 | FCN_RIGHT, | |
75 | FCN_LEFT, | |
76 | FCN_LEFT2, | |
77 | FCN_RIGHT2, | |
78 | ||
79 | #if !defined(PURE3274) | |
80 | /* | |
81 | * Local editing functions | |
82 | */ | |
83 | FCN_SETTAB, /* set a column tab */ | |
84 | FCN_DELTAB, | |
85 | FCN_COLTAB, | |
86 | FCN_COLBAK, | |
87 | FCN_INDENT, /* more margin over one col tab */ | |
88 | FCN_UNDENT, | |
89 | FCN_SETMRG, | |
90 | FCN_SETHOM, | |
91 | FCN_CLRTAB, | |
92 | FCN_ERASE, /* erase last character */ | |
93 | FCN_WERASE, | |
94 | FCN_FERASE, | |
95 | FCN_WORDTAB, /* tab to start of next word */ | |
96 | FCN_WORDBACKTAB, | |
97 | FCN_WORDEND, /* find next end of word */ | |
98 | FCN_FIELDEND, /* find next end of field */ | |
99 | ||
100 | /* | |
101 | * APL functions | |
102 | */ | |
103 | FCN_APLON, /* start using apl character set */ | |
104 | FCN_APLOFF, | |
105 | FCN_APLEND, | |
106 | ||
107 | FCN_PCON, | |
108 | FCN_PCOFF, | |
109 | FCN_INIT, /* re-init screen */ | |
110 | FCN_SYNCH, /* synch up after line/control error */ | |
111 | FCN_FLINP, /* flush input buffer */ | |
112 | FCN_RESHOW, /* redraw screen */ | |
113 | FCN_MASTER_RESET, /* FLINP, RESET, RESHOW, + more */ | |
114 | ||
115 | FCN_DISC, /* suspend application */ | |
116 | FCN_ESCAPE, /* enter command mode */ | |
117 | ||
118 | FCN_ALTK, /* Dvorak keyboard */ | |
119 | ||
120 | FCN_XOFF, /* suspend output to screen */ | |
121 | FCN_XON, /* resume output to screen */ | |
122 | ||
123 | FCN_LPRT /* print screen on printer */ | |
124 | #endif /* !defined(PURE3274) */ | |
125 | }; | |
261af60d GM |
126 | /* |
127 | * The following is the structure which defines what a 3270 keystroke | |
128 | * can do. | |
129 | */ | |
130 | ||
131 | struct hits { | |
132 | unsigned char keynumber; | |
133 | struct hit { | |
44d721ab GM |
134 | enum ctlrfcn ctlrfcn; |
135 | unsigned char code; /* AID value or 3270 display code */ | |
261af60d GM |
136 | } hit[4]; /* plain, shifted, alted, shiftalted */ |
137 | }; | |
138 | ||
139 | extern struct hits hits[]; | |
1ae3d61d GM |
140 | |
141 | /* | |
142 | * Definitions of the shift state (and the left/right shift key position). | |
143 | */ | |
144 | ||
145 | #define SHIFT_RIGHT 0x20 /* Right shift key is down */ | |
146 | #define SHIFT_LEFT 0x10 /* Left shift key is down */ | |
147 | #define SHIFT_CONTROL 0x08 /* Control shift state (unused) */ | |
148 | #define SHIFT_ALT 0x04 /* ALT shift state */ | |
149 | #define SHIFT_CAPS 0x02 /* Caps lock state */ | |
150 | #define SHIFT_UPSHIFT 0x01 /* Upshift state */ |