xref: /csrg-svn/usr.bin/tn3270/ctlr/api.h (revision 31168)
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 
1731167Sminshall /*
1831167Sminshall  * The names which correspond to the above gate numbers.
1931167Sminshall  */
2031167Sminshall 
2131167Sminshall #define	NAME_SESSMGR	"SESSMGR "
2231161Sminshall #define	NAME_KEYBOARD	"KEYBOARD"
2331167Sminshall #define	NAME_COPY	"COPY    "
2431167Sminshall #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 
3731167Sminshall #define	QUERY_SESSION_ID		0x01
3831167Sminshall #define	QUERY_SESSION_PARMS		0x02
3931167Sminshall #define	QUERY_SESSION_CURSOR		0x0b
4031159Sminshall 
4131167Sminshall #define	CONNECT_TO_KEYBOARD		0x01
4231159Sminshall #define	DISCONNECT_FROM_KEYBOARD	0x02
4331167Sminshall #define	WRITE_KEYSTROKE			0x04
4431167Sminshall #define	DISABLE_INPUT			0x05
4531167Sminshall #define	ENABLE_INPUT			0x06
4631159Sminshall 
4731167Sminshall #define	COPY_STRING			0x01
4831159Sminshall 
4931167Sminshall #define	READ_OIA_GROUP			0x02
5031167Sminshall 
5131167Sminshall /*
5231167Sminshall  * For each service, we define the assoicated parameter blocks.
5331167Sminshall  */
5431167Sminshall 
5531167Sminshall /*
5631167Sminshall  * Supervisor Services
5731167Sminshall  */
5831167Sminshall 
5931167Sminshall typedef struct {
6031167Sminshall     char	gate_name[8];
6131167Sminshall } NameResolveParms;
6231167Sminshall 
6331167Sminshall 
6431167Sminshall /*
6531167Sminshall  * Session Information Services
6631167Sminshall  */
6731167Sminshall 
6831167Sminshall typedef struct {
6931167Sminshall     char
7031167Sminshall 	short_name,
7131167Sminshall 	type,
7231167Sminshall 	session_id,
7331167Sminshall 	reserved,
7431167Sminshall 	long_name[8];
7531167Sminshall } NameArrayElement;
7631167Sminshall 
7731167Sminshall typedef struct {
7831167Sminshall     char
7931167Sminshall 	length,
8031167Sminshall 	number_matching_session;
8131167Sminshall     NameArrayElement
8231167Sminshall 	name_array_element;		/* Variable number */
8331167Sminshall } NameArray;
8431167Sminshall 
8531167Sminshall typedef struct {
8631167Sminshall     char
8731167Sminshall 	rc,
8831167Sminshall 	function_id,
8931167Sminshall 	option_code,
9031167Sminshall 	data_code;
9131167Sminshall     NameArray far
9231167Sminshall 	*name_array;
9331167Sminshall     char
9431167Sminshall 	long_name[8];
9531167Sminshall } QuerySessionIdParms;
9631167Sminshall 
9731167Sminshall typedef struct {
9831167Sminshall     char
9931167Sminshall 	rc,
10031167Sminshall 	function_id,
10131167Sminshall 	session_id,
10231167Sminshall 	reserved,
10331167Sminshall 	session_type,
10431167Sminshall 	session_characteristics,
10531167Sminshall 	rows,
10631167Sminshall 	columns;
10731167Sminshall     char far
10831167Sminshall 	*presentation_space;
109*31168Sminshall } QuerySessionParametersParms;
11031167Sminshall 
11131167Sminshall #define	TYPE_WSCTL		0x01		/* Work Station Control */
11231167Sminshall #define	TYPE_DFT		0x02		/* DFT Host Session */
11331167Sminshall #define	TYPE_CUT		0x03		/* CUT Host Session */
11431167Sminshall #define	TYPE_NOTEPAD		0x04		/* Notepad Session */
11531167Sminshall #define	TYPE_PC			0x05		/* Personal Computer Session */
11631167Sminshall 
11731167Sminshall #define	CHARACTERISTIC_EAB	0x80		/* Extended Attribute Buffer */
11831167Sminshall #define	CHARACTERISTIC_PSS	0x40		/* Program Symbols Supported */
11931167Sminshall 
12031167Sminshall typedef struct {
12131167Sminshall     char
12231167Sminshall 	rc,
12331167Sminshall 	function_id,
12431167Sminshall 	session_id,
12531167Sminshall 	cursor_type,
12631167Sminshall 	row_address,				/* from 0 */
12731167Sminshall 	column_address;				/* from 0 */
12831167Sminshall } QuerySessionCursorParms;
12931167Sminshall 
13031167Sminshall #define	CURSOR_INHIBITED_AUTOSCROLL	0x10
13131167Sminshall #define	CURSOR_INHIBITED		0x04
13231167Sminshall #define	CURSOR_BLINKING			0x02
13331167Sminshall #define	CURSOR_BOX			0x01
13431167Sminshall typedef struct {
13531167Sminshall     char
13631167Sminshall 	rc,
13731167Sminshall 	function_id,
13831167Sminshall 	session_id,
13931167Sminshall 	reserved;
14031167Sminshall     int
14131167Sminshall 	event_queue_id,
14231167Sminshall 	input_queue_id;
14331167Sminshall     char
14431167Sminshall 	intercept_options,
14531167Sminshall 	first_connection_identifier;
14631167Sminshall } ConnectToKeyboardParms;
14731167Sminshall 
14831167Sminshall typedef struct {
14931167Sminshall     char
15031167Sminshall 	rc,
15131167Sminshall 	function_id,
15231167Sminshall 	session_id,
15331167Sminshall 	reserved;
15431167Sminshall     int
155*31168Sminshall 	connectors_task_id;
15631167Sminshall } DisconnectFromKeyboardParms;
15731167Sminshall 
15831167Sminshall typedef struct {
15931167Sminshall     char
16031167Sminshall 	scancode,
16131167Sminshall 	shift_state;
16231167Sminshall } KeystrokeEntry;
16331167Sminshall 
16431167Sminshall typedef struct {
16531167Sminshall     int
16631167Sminshall 	length;			/* Length (in bytes) of list */
16731167Sminshall     KeystrokeEntry keystrokes;	/* Variable size */
16831167Sminshall } KeystrokeList;
16931167Sminshall 
17031167Sminshall typedef struct {
17131167Sminshall     char
17231167Sminshall 	rc,
17331167Sminshall 	function_id,
17431167Sminshall 	session_id,
17531167Sminshall 	reserved;
17631167Sminshall     int
17731167Sminshall 	connectors_task_id;
17831167Sminshall     char
17931167Sminshall 	options,
18031167Sminshall 	number_of_keys_sent;
18131167Sminshall     union {
18231167Sminshall 	KeystrokeEntry
18331167Sminshall 	    keystroke_entry;
18431167Sminshall 	KeystrokeList far
18531167Sminshall 	    *keystroke_list;
18631167Sminshall     } keystroke_specifier;
18731167Sminshall } WriteKeystrokeParms;
18831167Sminshall 
18931167Sminshall typedef struct {
19031167Sminshall     char
19131167Sminshall 	rc,
19231167Sminshall 	function_id,
19331167Sminshall 	session_id,
19431167Sminshall 	reserved;
19531167Sminshall     int
19631167Sminshall 	connectors_task_id;
19731167Sminshall } DisableInputParms;
19831167Sminshall 
19931167Sminshall typedef DisableInputParms EnableInputParms;
20031167Sminshall 
20131167Sminshall typedef struct {
20231167Sminshall     char
20331167Sminshall 	session_id,
20431167Sminshall 	reserved;
20531167Sminshall     char far
20631167Sminshall 	*buffer;
20731167Sminshall     char
20831167Sminshall 	characteristics,
20931167Sminshall 	session_type;
21031167Sminshall     int
21131167Sminshall 	begin;			/* Offset within buffer */
21231167Sminshall } BufferDescriptor;
21331167Sminshall 
21431167Sminshall typedef struct {
21531167Sminshall     char
21631167Sminshall 	rc,
21731167Sminshall 	function_id;
21831167Sminshall     BufferDescriptor
21931167Sminshall 	source;
22031167Sminshall     int
22131167Sminshall 	source_end;		/* Offset within source buffer */
22231167Sminshall     BufferDescriptor
22331167Sminshall 	target;
22431167Sminshall     char
22531167Sminshall 	copy_mode,
22631167Sminshall 	reserved;
22731167Sminshall } CopyStringParms;
22831167Sminshall 
22931167Sminshall #define	COPY_MODE_7_COLOR		0x80	/* Else 4 color mode */
23031167Sminshall #define	COPY_MODE_FIELD_ATTRIBUTES	0x40	/* Else don't copy attributes */
23131167Sminshall 
23231167Sminshall typedef struct {
23331167Sminshall     char
23431167Sminshall 	rc,
23531167Sminshall 	function_id,
23631167Sminshall 	session_id,
23731167Sminshall 	reserved;
23831167Sminshall     char far
23931167Sminshall 	*oia_buffer;
24031167Sminshall     char
24131167Sminshall 	oia_group_number;
24231167Sminshall } ReadOiaGroupParms;
24331167Sminshall 
24431167Sminshall #define	OIA_ALL_GROUPS				0xFF
24531167Sminshall #define	OIA_ONLINE_OWNERSHIP			0x01
24631167Sminshall #	define	OIA_SETUP		0x80
24731167Sminshall #	define	OIA_TEST		0x40
24831167Sminshall #	define	OIA_SSCP_LU		0x20
24931167Sminshall #	define	OIA_LU_LU		0x10
25031167Sminshall #	define	OIA_UNOWNED		0x08
25131167Sminshall #	define	OIA_SUBSYSTEM_READY	0x04
25231167Sminshall 
25331167Sminshall #define	OIA_CHARACTER_SELECTION			0x02
25431167Sminshall #	define	OIA_EXTENDED_SELECT	0x80
25531167Sminshall #	define	OIA_APL			0x40
25631167Sminshall #	define	OIA_KANA		0x20
25731167Sminshall #	define	OIA_ALPHA		0x10
25831167Sminshall #	define	OIA_TEXT		0x08
25931167Sminshall 
26031167Sminshall #define	OIA_SHIFT_STATE				0x03
26131167Sminshall #	define	OIA_NUMERIC		0x80
26231167Sminshall #	define	OIA_UPPER_SHIFT		0x40
26331167Sminshall 
26431167Sminshall #define	OIA_PSS_GROUP_1				0x04
26531167Sminshall #define	OIA_HIGHLIGHT_GROUP_1			0x05
26631167Sminshall #define	OIA_COLOR_GROUP_1			0x06
26731167Sminshall #	define	OIA_SELECTABLE		0x80
26831167Sminshall #	define	OIA_FIELD_INHERIT	0x40
26931167Sminshall 
27031167Sminshall #define	OIA_INSERT				0x07
27131167Sminshall #	define	OIA_INSERT_MODE		0x80
27231167Sminshall 
27331167Sminshall /* We define this to be a 'long' followed by a 'char' (5 bytes) */
27431167Sminshall 
27531167Sminshall #define	OIA_INPUT_INHIBITED			0x08
27631167Sminshall 
27731167Sminshall #	define	OIA_NON_RESETTABLE	0x80000000
27831167Sminshall #	define	OIA_SECURITY_KEY	0x40000000
27931167Sminshall #	define	OIA_MACHINE_CHECK	0x20000000
28031167Sminshall #	define	OIA_COMM_CHECK		0x10000000
28131167Sminshall #	define	OIA_PROGRAM_CHECK	0x08000000
28231167Sminshall #	define	OIA_RETRY		0x04000000
28331167Sminshall #	define	OIA_DEVICE_NOT_WORKING	0x02000000
28431167Sminshall #	define	OIA_DEVICE_VERY_BUSY	0x01000000
28531167Sminshall 
28631167Sminshall #	define	OIA_DEVICE_BUSY		0x00800000
28731167Sminshall #	define	OIA_TERMINAL_WAIT	0x00400000
28831167Sminshall #	define	OIA_MINUS_SYMBOL	0x00200000
28931167Sminshall #	define	OIA_MINUS_FUNCTION	0x00100000
29031167Sminshall #	define	OIA_TOO_MUCH_ENTERED	0x00080000
29131167Sminshall #	define	OIA_NOT_ENOUGH_ENTERED	0x00040000
29231167Sminshall #	define	OIA_WRONG_NUMBER	0x00020000
29331167Sminshall #	define	OIA_NUMERIC_FIELD	0x00010000
29431167Sminshall 
29531167Sminshall #	define	OIA_OP_UNAUTHORIZED	0x00008000
29631167Sminshall #	define	OIA_OP_UNAUTHORIZED_MIN	0x00004000
29731167Sminshall #	define	OIA_INVALID_DEAD_KEY_COMBO 0x00002000
29831167Sminshall #	define	OIA_WRONG_PLACE		0x00001000
29931167Sminshall 
30031167Sminshall #	define	OIA_MESSAGE_PENDING	0x00000080
30131167Sminshall #	define	OIA_PARTITION_WAIT	0x00000040
30231167Sminshall #	define	OIA_SYSTEM_WAIT		0x00000020
30331167Sminshall #	define	OIA_HARDWARE_MISMATCH	0x00000010
30431167Sminshall #	define	OIA_LOGICAL_TERM_NOT_CONF 0x00000008
30531167Sminshall 
30631167Sminshall 
30731167Sminshall #	define	OIA_AUTOKEY_INHIBIT	0x80
30831167Sminshall #	define	OIA_API_INHIBIT		0x40
30931167Sminshall 
31031167Sminshall #define	OIA_PSS_GROUP_2				0x09
31131167Sminshall #	define	OIA_PS_SELECTED		0x80
31231167Sminshall #	define	OIA_PC_DISPLAY_DISABLE	0x40
31331167Sminshall 
31431167Sminshall #define	OIA_HIGHLIGHT_GROUP_2			0x0a
31531167Sminshall #define	OIA_COLOR_GROUP_2			0x0b
31631167Sminshall #	define	OIA_SELECTED		0x80
31731167Sminshall 
31831167Sminshall #define	OIA_COMMUNICATION_ERROR_REMINDER	0x0c
31931167Sminshall #	define	OIA_COMM_ERROR		0x80
32031167Sminshall #	define	OIA_RTM			0x40
32131167Sminshall 
32231167Sminshall #define	OIA_PRINTER_STATUS			0x0d
32331167Sminshall #	define	OIA_PRINT_NOT_CUSTOM	0x80
32431167Sminshall #	define	OIA_PRINTER_MALFUNCTION	0x40
32531167Sminshall #	define	OIA_PRINTER_PRINTING	0x20
32631167Sminshall #	define	OIA_ASSIGN_PRINTER	0x10
32731167Sminshall #	define	OIA_WHAT_PRINTER	0x08
32831167Sminshall #	define	OIA_PRINTER_ASSIGNMENT	0x04
32931167Sminshall 
33031167Sminshall #define	OIA_AUTOKEY_PLAY_RECORD_STATUS		0x10
33131167Sminshall #	define	OIA_PLAY		0x80
33231167Sminshall #	define	OIA_RECORD		0x40
33331167Sminshall 
33431167Sminshall #define	OIA_AUTOKEY_ABORT_PAUSE_STATUS		0x11
33531167Sminshall #	define	OIA_RECORDING_OVERFLOW	0x80
33631167Sminshall #	define	OIA_PAUSE		0x40
33731167Sminshall 
33831167Sminshall #define	OIA_ENLARGE_STATE			0x12
33931167Sminshall #	define	OIA_WINDOW_IS_ENLARGED	0x80
34031167Sminshall 
34131167Sminshall 
34231167Sminshall 
343