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