Changes for pyramid from sbanner1@cheops (S. John Banner).
[unix-history] / usr / src / usr.bin / tn3270 / ctlr / hostctlr.h
CommitLineData
89b9ae2e 1/*
c578271f 2 * @(#)hostctlr.h 3.1 (Berkeley) %G%
89b9ae2e
GM
3 */
4
5#define INCLUDED_HOST3270
6
7/* define orders given to 3270's */
8
9#define ORDER_SF 0x1d /* Start Field */
f6a34a60 10#define ORDER_SFE 0x29 /* Start Field Extended */
89b9ae2e 11#define ORDER_SBA 0x11 /* Set Buffer Address (for output) */
f6a34a60
GM
12#define ORDER_SA 0x28 /* Set Attribute */
13#define ORDER_MF 0x2c /* Modify field */
89b9ae2e
GM
14#define ORDER_IC 0x13 /* Insert Cursor (at buffer address) */
15#define ORDER_PT 0x05 /* Program Tab (absurdly complicated) */
16#define ORDER_RA 0x3c /* Repeat next character to some addr */
89b9ae2e
GM
17#define ORDER_EUA 0x12 /* Null out every unprotected field
18 * to some address.
19 */
f6a34a60 20#define ORDER_GE 0x08 /* Graphics Escape */
89b9ae2e
GM
21#define ORDER_YALE 0x2b /* This is a special YALE order, which
22 * introduces YALE extended orders
23 * (like setting tabs, etc.).
24 */
25
f6a34a60
GM
26/* The following is defined for initialization and error messages. */
27
28struct orders_def {
29 int
30 code; /* As in 3270 data stream */
31 char
32 *short_name, /* Short name */
33 *long_name; /* Long name */
34};
35
36#define ORDERS_DEF { \
37 ORDER_SF, "SF", "Start Field", \
38 ORDER_SFE, "SFE", "Start Field Extended", \
39 ORDER_SBA, "SBA", "Set Buffer Address", \
40 ORDER_SA, "SA", "Set Attribute", \
41 ORDER_MF, "MF", "Modify Field", \
42 ORDER_IC, "IC", "Insert Cursor", \
43 ORDER_PT, "PT", "Program Tab", \
44 ORDER_RA, "RA", "Repeat to Address", \
45 ORDER_EUA, "EUA", "Erase Unprotected to Address", \
46 ORDER_GE, "GE", "Graphics Escape", \
47 ORDER_YALE, "YALE", "Yale Order" \
48 }
49
89b9ae2e
GM
50
51#define ATTR_RESET 0x00 /* SA only - reset to default */
52# define ATTR_DEFAULT 0x00 /* reset to default */
53 /* Also for 0x41-43 below */
54#define ATTR_FIELD 0xC0 /* Field attributes */
55# define ATTR_MASK 0xc0 /* control bits */
56# define ATTR_PROT 0x20 /* protected bit */
57# define ATTR_NUMERIC 0x10 /* numeric field */
58# define ATTR_AUTO_SKIP_MASK 0x30 /* mask to check auto skip */
59# define ATTR_AUTO_SKIP_VALUE 0x30 /* value to have auto skip */
60# define ATTR_DSPD_MASK 0x0c /* highlighting, etc. */
61# define ATTR_DSPD_DNSPD 0x00 /* display, no select */
62# define ATTR_DSPD_DSPD 0x04 /* display, select */
63# define ATTR_DSPD_HIGH 0x08 /* highlighted, select */
64# define ATTR_DSPD_NONDISPLAY 0x0c /* non-display, no select */
65# define ATTR_MDT 0x01 /* modified data tag */
66
67#define ATTR_EXTENDED_HIGHLIGHT 0x41 /* Extended highlighting */
68# define ATTR_BLINK 0xf1 /* Blinking */
69# define ATTR_REVERSE_VIDEO 0xf2 /* Reverse video */
70# define ATTR_UNDERSCORE 0xf3 /* Underline */
71#define ATTR_COLOR 0x42 /* Color */
72# define ATTR_BLUE 0xf1
73# define ATTR_RED 0xf2
74# define ATTR_PINK 0xf3
75# define ATTR_GREEN 0xf4
76# define ATTR_TURQUOISE 0xf5
77# define ATTR_YELLOW 0xf6
78# define ATTR_WHITE 0xf7 /* for 3279; black for 3287; */
79 /* multicolor for triple */
80 /* plane symbol */
81#define ATTR_PROGRAMMED_SYMBOLS 0x43 /* Programmed Symbols */
82# define ATTR_SYMBOL_SET_LOW 0x40 /* Lowest loadable set ID */
83# define ATTR_SYMBOL_SET_HIGH 0xef /* Highest loadable set ID */
84# define ATTR_SYMBOL_SET_APLTEXT 0xf1
85
86/* Non-SNA control unit commands */
87
88#define CMD_ERASE_ALL_UNPROTECTED 0x0f
89#define CMD_ERASE_WRITE 0x05
90#define CMD_ERASE_WRITE_ALTERNATE 0x0d
91#define CMD_READ_BUFFER 0x02
92#define CMD_READ_MODIFIED 0x06
93#define CMD_WRITE 0x01
94#define CMD_WRITE_STRUCTURED_FIELD 0x11
95
96/* SNA control unit commands */
97
98#define CMD_SNA_COPY 0xf7
99#define CMD_SNA_ERASE_ALL_UNPROTECTED 0x6f
a4376681 100#define CMD_SNA_ERASE_WRITE 0xf5
89b9ae2e
GM
101#define CMD_SNA_ERASE_WRITE_ALTERNATE 0x7e
102#define CMD_SNA_READ_BUFFER 0xf2
103#define CMD_SNA_READ_MODIFIED 0xf6
104#define CMD_SNA_READ_MODIFIED_ALL 0x6e
105#define CMD_SNA_WRITE 0xf1
106#define CMD_SNA_WRITE_STRUCTURED_FIELD 0xf3
107
108
109#define WCC_RESET 0x40
110#define WCC_ALARM 0x04
111#define WCC_RESTORE 0x02
112#define WCC_RESET_MDT 0x01
113
114
115/* Special EBCDIC characters unique to a 3270 */
116
117#define EBCDIC_BLANK 0x40 /* Space */
118#define EBCDIC_CENTSIGN 0x4a /* Cent sign */
119#define EBCDIC_DUP 0x1c /* DUP character */
120#define EBCDIC_FM 0x1e /* Field mark character */
121#define EBCDIC_PERCENT 0x6c /* Percent sign */
122#define EBCDIC_SLASH 0x61 /* Slash */
123#define EBCDIC_SOH 0x01 /* Start of Heading */
124#define EBCDIC_STX 0x02 /* Start of Text */
125
126/* Structured field types */
127#define SF_3270DS 0x40 /* For write operations */
128#define SF_LPS 0x06 /* Load Programmed Symbols */
129#define SF_SRM 0x09 /* Set Reply Mode */
130#define SF_SWO 0x0b /* Set Window Origin */
131#define SF_READ_PARTITION 0x01 /* Read Partition (Query) */
132#define SF_ERASE_RESET 0x03 /* Erase (and/or Reset) */
133#define SF_SCS_DATA 0x41 /* SCS Data */
134#define SF_CREATE_PARTITION 0x0c /* Create a partition */
135\f
136/* AID characters sent to host.
137 *
138 * Note that this file (the following entries) are scanned by mkhit.c,
139 * and that the format must remain more-or-less consistent
140 * (#define\tAID_name\t[\t]*TOKEN)
141 */
142
143#define AID_NONE 0x60 /* No AID (display) */
144#define AID_NONE_PRINTER 0xe8 /* No AID (printer) */
145
146#define AID_PA1 0x6c
147#define AID_PA2 0x6e
148#define AID_PA3 0x6b
149#define AID_CLEAR 0x6d
150#define AID_TREQ 0xf0
151#define AID_ENTER 0x7d
152#define AID_SELPEN 0x7e /*
153 * Really, only SELPEN with DESIGNATOR
154 * = space or null
155 */
156#define AID_PF1 0xf1
157#define AID_PF2 0xf2
158#define AID_PF3 0xf3
159#define AID_PF4 0xf4
160#define AID_PF5 0xf5
161#define AID_PF6 0xf6
162#define AID_PF7 0xf7
163#define AID_PF8 0xf8
164#define AID_PF9 0xf9
165#define AID_PF10 0x7a
166#define AID_PF11 0x7b
167#define AID_PF12 0x7c
168#define AID_PF13 0xc1
169#define AID_PF14 0xc2
170#define AID_PF15 0xc3
171#define AID_PF16 0xc4
172#define AID_PF17 0xc5
173#define AID_PF18 0xc6
174#define AID_PF19 0xc7
175#define AID_PF20 0xc8
176#define AID_PF21 0xc9
177#define AID_PF22 0x4a
178#define AID_PF23 0x4b
179#define AID_PF24 0x4c
180#define AID_PF25 0xd1
181#define AID_PF26 0xd2
182#define AID_PF27 0xd3
183#define AID_PF28 0xd4
184#define AID_PF29 0xd5
185#define AID_PF30 0xd6
186#define AID_PF31 0xd7
187#define AID_PF32 0xd8
188#define AID_PF33 0xd9
189#define AID_PF34 0x5a
190#define AID_PF35 0x5b
191#define AID_PF36 0x5c