Release 4.1
[unix-history] / usr / src / usr.bin / tn3270 / ctlr / function.h
CommitLineData
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
29enum 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
131struct 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
139extern 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 */