xref: /csrg-svn/usr.bin/tn3270/ctlr/api.h (revision 31167)
131159Sminshall /*
231159Sminshall  * This file contains header information used by the PC API routines.
331159Sminshall  */
431159Sminshall 
531159Sminshall #define	API_INTERRUPT_NUMBER	0x7A		/* API Interrupt Number */
631159Sminshall 
731159Sminshall /*
831159Sminshall  * Define the gate numbers.  These are returned via the Name Resolution
931159Sminshall  * service.
1031159Sminshall  */
1131159Sminshall 
1231159Sminshall #define	GATE_SESSMGR	1
1331159Sminshall #define	GATE_KEYBOARD	2
1431159Sminshall #define	GATE_COPY	3
1531159Sminshall #define	GATE_OIAM	4
1631159Sminshall 
17*31167Sminshall /*
18*31167Sminshall  * The names which correspond to the above gate numbers.
19*31167Sminshall  */
20*31167Sminshall 
21*31167Sminshall #define	NAME_SESSMGR	"SESSMGR "
2231161Sminshall #define	NAME_KEYBOARD	"KEYBOARD"
23*31167Sminshall #define	NAME_COPY	"COPY    "
24*31167Sminshall #define	NAME_OIAM	"OIAM    "
2531161Sminshall 
2631161Sminshall 
2731159Sminshall /*
2831159Sminshall  * Name Resolution is specified in AH.
2931159Sminshall  */
3031159Sminshall 
3131159Sminshall #define	NAME_RESOLUTION	0x81
3231159Sminshall 
3331159Sminshall /*
3431159Sminshall  * Codes specified in AL for various services.
3531159Sminshall  */
3631159Sminshall 
37*31167Sminshall #define	QUERY_SESSION_ID		0x01
38*31167Sminshall #define	QUERY_SESSION_PARMS		0x02
39*31167Sminshall #define	QUERY_SESSION_CURSOR		0x0b
4031159Sminshall 
41*31167Sminshall #define	CONNECT_TO_KEYBOARD		0x01
4231159Sminshall #define	DISCONNECT_FROM_KEYBOARD	0x02
43*31167Sminshall #define	WRITE_KEYSTROKE			0x04
44*31167Sminshall #define	DISABLE_INPUT			0x05
45*31167Sminshall #define	ENABLE_INPUT			0x06
4631159Sminshall 
47*31167Sminshall #define	COPY_STRING			0x01
4831159Sminshall 
49*31167Sminshall #define	READ_OIA_GROUP			0x02
50*31167Sminshall 
51*31167Sminshall /*
52*31167Sminshall  * For each service, we define the assoicated parameter blocks.
53*31167Sminshall  */
54*31167Sminshall 
55*31167Sminshall /*
56*31167Sminshall  * Supervisor Services
57*31167Sminshall  */
58*31167Sminshall 
59*31167Sminshall typedef struct {
60*31167Sminshall     char	gate_name[8];
61*31167Sminshall } NameResolveParms;
62*31167Sminshall 
63*31167Sminshall 
64*31167Sminshall /*
65*31167Sminshall  * Session Information Services
66*31167Sminshall  */
67*31167Sminshall 
68*31167Sminshall typedef struct {
69*31167Sminshall     char
70*31167Sminshall 	short_name,
71*31167Sminshall 	type,
72*31167Sminshall 	session_id,
73*31167Sminshall 	reserved,
74*31167Sminshall 	long_name[8];
75*31167Sminshall } NameArrayElement;
76*31167Sminshall 
77*31167Sminshall typedef struct {
78*31167Sminshall     char
79*31167Sminshall 	length,
80*31167Sminshall 	number_matching_session;
81*31167Sminshall     NameArrayElement
82*31167Sminshall 	name_array_element;		/* Variable number */
83*31167Sminshall } NameArray;
84*31167Sminshall 
85*31167Sminshall typedef struct {
86*31167Sminshall     char
87*31167Sminshall 	rc,
88*31167Sminshall 	function_id,
89*31167Sminshall 	option_code,
90*31167Sminshall 	data_code;
91*31167Sminshall     NameArray far
92*31167Sminshall 	*name_array;
93*31167Sminshall     char
94*31167Sminshall 	long_name[8];
95*31167Sminshall } QuerySessionIdParms;
96*31167Sminshall 
97*31167Sminshall typedef struct {
98*31167Sminshall     char
99*31167Sminshall 	rc,
100*31167Sminshall 	function_id,
101*31167Sminshall 	session_id,
102*31167Sminshall 	reserved,
103*31167Sminshall 	session_type,
104*31167Sminshall 	session_characteristics,
105*31167Sminshall 	rows,
106*31167Sminshall 	columns;
107*31167Sminshall     char far
108*31167Sminshall 	*presentation_space;
109*31167Sminshall } QuerySessionParmetersParms;
110*31167Sminshall 
111*31167Sminshall #define	TYPE_WSCTL		0x01		/* Work Station Control */
112*31167Sminshall #define	TYPE_DFT		0x02		/* DFT Host Session */
113*31167Sminshall #define	TYPE_CUT		0x03		/* CUT Host Session */
114*31167Sminshall #define	TYPE_NOTEPAD		0x04		/* Notepad Session */
115*31167Sminshall #define	TYPE_PC			0x05		/* Personal Computer Session */
116*31167Sminshall 
117*31167Sminshall #define	CHARACTERISTIC_EAB	0x80		/* Extended Attribute Buffer */
118*31167Sminshall #define	CHARACTERISTIC_PSS	0x40		/* Program Symbols Supported */
119*31167Sminshall 
120*31167Sminshall typedef struct {
121*31167Sminshall     char
122*31167Sminshall 	rc,
123*31167Sminshall 	function_id,
124*31167Sminshall 	session_id,
125*31167Sminshall 	cursor_type,
126*31167Sminshall 	row_address,				/* from 0 */
127*31167Sminshall 	column_address;				/* from 0 */
128*31167Sminshall } QuerySessionCursorParms;
129*31167Sminshall 
130*31167Sminshall #define	CURSOR_INHIBITED_AUTOSCROLL	0x10
131*31167Sminshall #define	CURSOR_INHIBITED		0x04
132*31167Sminshall #define	CURSOR_BLINKING			0x02
133*31167Sminshall #define	CURSOR_BOX			0x01
134*31167Sminshall typedef struct {
135*31167Sminshall     char
136*31167Sminshall 	rc,
137*31167Sminshall 	function_id,
138*31167Sminshall 	session_id,
139*31167Sminshall 	reserved;
140*31167Sminshall     int
141*31167Sminshall 	event_queue_id,
142*31167Sminshall 	input_queue_id;
143*31167Sminshall     char
144*31167Sminshall 	intercept_options,
145*31167Sminshall 	first_connection_identifier;
146*31167Sminshall } ConnectToKeyboardParms;
147*31167Sminshall 
148*31167Sminshall typedef struct {
149*31167Sminshall     char
150*31167Sminshall 	rc,
151*31167Sminshall 	function_id,
152*31167Sminshall 	session_id,
153*31167Sminshall 	reserved;
154*31167Sminshall     int
155*31167Sminshall 	connector_task_id;
156*31167Sminshall } DisconnectFromKeyboardParms;
157*31167Sminshall 
158*31167Sminshall typedef struct {
159*31167Sminshall     char
160*31167Sminshall 	scancode,
161*31167Sminshall 	shift_state;
162*31167Sminshall } KeystrokeEntry;
163*31167Sminshall 
164*31167Sminshall typedef struct {
165*31167Sminshall     int
166*31167Sminshall 	length;			/* Length (in bytes) of list */
167*31167Sminshall     KeystrokeEntry keystrokes;	/* Variable size */
168*31167Sminshall } KeystrokeList;
169*31167Sminshall 
170*31167Sminshall typedef struct {
171*31167Sminshall     char
172*31167Sminshall 	rc,
173*31167Sminshall 	function_id,
174*31167Sminshall 	session_id,
175*31167Sminshall 	reserved;
176*31167Sminshall     int
177*31167Sminshall 	connectors_task_id;
178*31167Sminshall     char
179*31167Sminshall 	options,
180*31167Sminshall 	number_of_keys_sent;
181*31167Sminshall     union {
182*31167Sminshall 	KeystrokeEntry
183*31167Sminshall 	    keystroke_entry;
184*31167Sminshall 	KeystrokeList far
185*31167Sminshall 	    *keystroke_list;
186*31167Sminshall     } keystroke_specifier;
187*31167Sminshall } WriteKeystrokeParms;
188*31167Sminshall 
189*31167Sminshall typedef struct {
190*31167Sminshall     char
191*31167Sminshall 	rc,
192*31167Sminshall 	function_id,
193*31167Sminshall 	session_id,
194*31167Sminshall 	reserved;
195*31167Sminshall     int
196*31167Sminshall 	connectors_task_id;
197*31167Sminshall } DisableInputParms;
198*31167Sminshall 
199*31167Sminshall typedef DisableInputParms EnableInputParms;
200*31167Sminshall 
201*31167Sminshall typedef struct {
202*31167Sminshall     char
203*31167Sminshall 	session_id,
204*31167Sminshall 	reserved;
205*31167Sminshall     char far
206*31167Sminshall 	*buffer;
207*31167Sminshall     char
208*31167Sminshall 	characteristics,
209*31167Sminshall 	session_type;
210*31167Sminshall     int
211*31167Sminshall 	begin;			/* Offset within buffer */
212*31167Sminshall } BufferDescriptor;
213*31167Sminshall 
214*31167Sminshall typedef struct {
215*31167Sminshall     char
216*31167Sminshall 	rc,
217*31167Sminshall 	function_id;
218*31167Sminshall     BufferDescriptor
219*31167Sminshall 	source;
220*31167Sminshall     int
221*31167Sminshall 	source_end;		/* Offset within source buffer */
222*31167Sminshall     BufferDescriptor
223*31167Sminshall 	target;
224*31167Sminshall     char
225*31167Sminshall 	copy_mode,
226*31167Sminshall 	reserved;
227*31167Sminshall } CopyStringParms;
228*31167Sminshall 
229*31167Sminshall #define	COPY_MODE_7_COLOR		0x80	/* Else 4 color mode */
230*31167Sminshall #define	COPY_MODE_FIELD_ATTRIBUTES	0x40	/* Else don't copy attributes */
231*31167Sminshall 
232*31167Sminshall typedef struct {
233*31167Sminshall     char
234*31167Sminshall 	rc,
235*31167Sminshall 	function_id,
236*31167Sminshall 	session_id,
237*31167Sminshall 	reserved;
238*31167Sminshall     char far
239*31167Sminshall 	*oia_buffer;
240*31167Sminshall     char
241*31167Sminshall 	oia_group_number;
242*31167Sminshall } ReadOiaGroupParms;
243*31167Sminshall 
244*31167Sminshall #define	OIA_ALL_GROUPS				0xFF
245*31167Sminshall #define	OIA_ONLINE_OWNERSHIP			0x01
246*31167Sminshall #	define	OIA_SETUP		0x80
247*31167Sminshall #	define	OIA_TEST		0x40
248*31167Sminshall #	define	OIA_SSCP_LU		0x20
249*31167Sminshall #	define	OIA_LU_LU		0x10
250*31167Sminshall #	define	OIA_UNOWNED		0x08
251*31167Sminshall #	define	OIA_SUBSYSTEM_READY	0x04
252*31167Sminshall 
253*31167Sminshall #define	OIA_CHARACTER_SELECTION			0x02
254*31167Sminshall #	define	OIA_EXTENDED_SELECT	0x80
255*31167Sminshall #	define	OIA_APL			0x40
256*31167Sminshall #	define	OIA_KANA		0x20
257*31167Sminshall #	define	OIA_ALPHA		0x10
258*31167Sminshall #	define	OIA_TEXT		0x08
259*31167Sminshall 
260*31167Sminshall #define	OIA_SHIFT_STATE				0x03
261*31167Sminshall #	define	OIA_NUMERIC		0x80
262*31167Sminshall #	define	OIA_UPPER_SHIFT		0x40
263*31167Sminshall 
264*31167Sminshall #define	OIA_PSS_GROUP_1				0x04
265*31167Sminshall #define	OIA_HIGHLIGHT_GROUP_1			0x05
266*31167Sminshall #define	OIA_COLOR_GROUP_1			0x06
267*31167Sminshall #	define	OIA_SELECTABLE		0x80
268*31167Sminshall #	define	OIA_FIELD_INHERIT	0x40
269*31167Sminshall 
270*31167Sminshall #define	OIA_INSERT				0x07
271*31167Sminshall #	define	OIA_INSERT_MODE		0x80
272*31167Sminshall 
273*31167Sminshall /* We define this to be a 'long' followed by a 'char' (5 bytes) */
274*31167Sminshall 
275*31167Sminshall #define	OIA_INPUT_INHIBITED			0x08
276*31167Sminshall 
277*31167Sminshall #	define	OIA_NON_RESETTABLE	0x80000000
278*31167Sminshall #	define	OIA_SECURITY_KEY	0x40000000
279*31167Sminshall #	define	OIA_MACHINE_CHECK	0x20000000
280*31167Sminshall #	define	OIA_COMM_CHECK		0x10000000
281*31167Sminshall #	define	OIA_PROGRAM_CHECK	0x08000000
282*31167Sminshall #	define	OIA_RETRY		0x04000000
283*31167Sminshall #	define	OIA_DEVICE_NOT_WORKING	0x02000000
284*31167Sminshall #	define	OIA_DEVICE_VERY_BUSY	0x01000000
285*31167Sminshall 
286*31167Sminshall #	define	OIA_DEVICE_BUSY		0x00800000
287*31167Sminshall #	define	OIA_TERMINAL_WAIT	0x00400000
288*31167Sminshall #	define	OIA_MINUS_SYMBOL	0x00200000
289*31167Sminshall #	define	OIA_MINUS_FUNCTION	0x00100000
290*31167Sminshall #	define	OIA_TOO_MUCH_ENTERED	0x00080000
291*31167Sminshall #	define	OIA_NOT_ENOUGH_ENTERED	0x00040000
292*31167Sminshall #	define	OIA_WRONG_NUMBER	0x00020000
293*31167Sminshall #	define	OIA_NUMERIC_FIELD	0x00010000
294*31167Sminshall 
295*31167Sminshall #	define	OIA_OP_UNAUTHORIZED	0x00008000
296*31167Sminshall #	define	OIA_OP_UNAUTHORIZED_MIN	0x00004000
297*31167Sminshall #	define	OIA_INVALID_DEAD_KEY_COMBO 0x00002000
298*31167Sminshall #	define	OIA_WRONG_PLACE		0x00001000
299*31167Sminshall 
300*31167Sminshall #	define	OIA_MESSAGE_PENDING	0x00000080
301*31167Sminshall #	define	OIA_PARTITION_WAIT	0x00000040
302*31167Sminshall #	define	OIA_SYSTEM_WAIT		0x00000020
303*31167Sminshall #	define	OIA_HARDWARE_MISMATCH	0x00000010
304*31167Sminshall #	define	OIA_LOGICAL_TERM_NOT_CONF 0x00000008
305*31167Sminshall 
306*31167Sminshall 
307*31167Sminshall #	define	OIA_AUTOKEY_INHIBIT	0x80
308*31167Sminshall #	define	OIA_API_INHIBIT		0x40
309*31167Sminshall 
310*31167Sminshall #define	OIA_PSS_GROUP_2				0x09
311*31167Sminshall #	define	OIA_PS_SELECTED		0x80
312*31167Sminshall #	define	OIA_PC_DISPLAY_DISABLE	0x40
313*31167Sminshall 
314*31167Sminshall #define	OIA_HIGHLIGHT_GROUP_2			0x0a
315*31167Sminshall #define	OIA_COLOR_GROUP_2			0x0b
316*31167Sminshall #	define	OIA_SELECTED		0x80
317*31167Sminshall 
318*31167Sminshall #define	OIA_COMMUNICATION_ERROR_REMINDER	0x0c
319*31167Sminshall #	define	OIA_COMM_ERROR		0x80
320*31167Sminshall #	define	OIA_RTM			0x40
321*31167Sminshall 
322*31167Sminshall #define	OIA_PRINTER_STATUS			0x0d
323*31167Sminshall #	define	OIA_PRINT_NOT_CUSTOM	0x80
324*31167Sminshall #	define	OIA_PRINTER_MALFUNCTION	0x40
325*31167Sminshall #	define	OIA_PRINTER_PRINTING	0x20
326*31167Sminshall #	define	OIA_ASSIGN_PRINTER	0x10
327*31167Sminshall #	define	OIA_WHAT_PRINTER	0x08
328*31167Sminshall #	define	OIA_PRINTER_ASSIGNMENT	0x04
329*31167Sminshall 
330*31167Sminshall #define	OIA_AUTOKEY_PLAY_RECORD_STATUS		0x10
331*31167Sminshall #	define	OIA_PLAY		0x80
332*31167Sminshall #	define	OIA_RECORD		0x40
333*31167Sminshall 
334*31167Sminshall #define	OIA_AUTOKEY_ABORT_PAUSE_STATUS		0x11
335*31167Sminshall #	define	OIA_RECORDING_OVERFLOW	0x80
336*31167Sminshall #	define	OIA_PAUSE		0x40
337*31167Sminshall 
338*31167Sminshall #define	OIA_ENLARGE_STATE			0x12
339*31167Sminshall #	define	OIA_WINDOW_IS_ENLARGED	0x80
340*31167Sminshall 
341*31167Sminshall 
342*31167Sminshall 
343