|
|
1.1 root 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
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.
16: *
17: * @(#)function.h 4.1 (Berkeley) 12/4/88
18: */
19:
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 */
36: FCN_MAKE_SHIFT_LOCK,
37: FCN_BREAK_SHIFT_LOCK,
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:
47: FCN_CAPS_LOCK,
48:
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: };
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 {
134: enum ctlrfcn ctlrfcn;
135: unsigned char code; /* AID value or 3270 display code */
136: } hit[4]; /* plain, shifted, alted, shiftalted */
137: };
138:
139: extern struct hits hits[];
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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.