xref: /csrg-svn/usr.bin/tn3270/ctlr/oia.h (revision 62327)
148756Sbostic /*-
2*62327Sbostic  * Copyright (c) 1988, 1993
3*62327Sbostic  *	The Regents of the University of California.  All rights reserved.
433816Sbostic  *
548756Sbostic  * %sccs.include.redist.c%
633816Sbostic  *
7*62327Sbostic  *	@(#)oia.h	8.1 (Berkeley) 06/06/93
833816Sbostic  */
933816Sbostic 
1033816Sbostic /*
1131088Sminshall  * This file describes the Operator Information Area in the 3270.
1231192Sminshall  *
1331192Sminshall  * Our OIA looks like that used by the 3270 PC and PC 3270 products.
1431088Sminshall  */
1531088Sminshall 
1631181Sminshall #define	INCLUDED_OIA
1731181Sminshall 
1831088Sminshall typedef struct {
1931192Sminshall     char
2031192Sminshall 	online_ownership,
2131192Sminshall 	character_selection,
2231192Sminshall 	shift_state,
2331192Sminshall 	pss_group_1,
2431192Sminshall 	highlight_group_1,
2531192Sminshall 	color_group_1,
2631192Sminshall 	insert,
2731192Sminshall 	input_inhibited[5],
2831192Sminshall 	pss_group_2,
2931192Sminshall 	highlight_group_2,
3031192Sminshall 	color_group_2,
3131192Sminshall 	comm_error_reminder,
3231192Sminshall 	printer_status,
3331192Sminshall 	reserved_group_14,
3431192Sminshall 	reserved_group_15,
3531192Sminshall 	autokey_play_record_status,
3631192Sminshall 	autokey_abort_pause_status,
3731192Sminshall 	enlarge_state;
3831088Sminshall } OIA;
3931192Sminshall 
4031192Sminshall /* Bits in online_ownership */
4131192Sminshall #define	OIA_SETUP		0x80
4231192Sminshall #define	OIA_TEST		0x40
4331192Sminshall #define	OIA_SSCP_LU		0x20
4431192Sminshall #define	OIA_LU_LU		0x10
4531192Sminshall #define	OIA_UNOWNED		0x08
4631192Sminshall #define	OIA_SUBSYSTEM_READY	0x04
4731192Sminshall 
4831192Sminshall /* Bit in character_selection */
4931192Sminshall #define	OIA_EXTENDED_SELECT	0x80
5031192Sminshall #define	OIA_APL			0x40
5131192Sminshall #define	OIA_KANA		0x20
5231192Sminshall #define	OIA_ALPHA		0x10
5331192Sminshall #define	OIA_TEXT		0x08
5431192Sminshall 
5531192Sminshall /* Bits in shift_state */
5631192Sminshall #define	OIA_NUMERIC		0x80
5731192Sminshall #define	OIA_UPPER_SHIFT		0x40
5831192Sminshall 
5931192Sminshall /* Bits in pss_group_1, highlight_group_1, and color_group_1 */
6031192Sminshall #define	OIA_SELECTABLE		0x80
6131192Sminshall #define	OIA_FIELD_INHERIT	0x40
6231192Sminshall 
6331192Sminshall /* Bits in insert */
6431192Sminshall #define	OIA_INSERT_MODE		0x80
6531192Sminshall 
6631192Sminshall /* We define this to be a 'long' followed by a 'char' (5 bytes) */
6731192Sminshall 
6831192Sminshall #define	OIA_NON_RESETTABLE	0x80
6931192Sminshall #define	OIA_SECURITY_KEY	0x40
7031192Sminshall #define	OIA_MACHINE_CHECK	0x20
7131192Sminshall #define	OIA_COMM_CHECK		0x10
7231192Sminshall #define	OIA_PROGRAM_CHECK	0x08
7331192Sminshall #define	OIA_RETRY		0x04
7431192Sminshall #define	OIA_DEVICE_NOT_WORKING	0x02
7531192Sminshall #define	OIA_DEVICE_VERY_BUSY	0x01
7631192Sminshall 
7731192Sminshall #define	OIA_DEVICE_BUSY		  0x80
7831192Sminshall #define	OIA_TERMINAL_WAIT	  0x40
7931192Sminshall #define	OIA_MINUS_SYMBOL	  0x20
8031192Sminshall #define	OIA_MINUS_FUNCTION	  0x10
8131192Sminshall #define	OIA_TOO_MUCH_ENTERED	  0x08
8231192Sminshall #define	OIA_NOT_ENOUGH_ENTERED	  0x04
8331192Sminshall #define	OIA_WRONG_NUMBER	  0x02
8431192Sminshall #define	OIA_NUMERIC_FIELD	  0x01
8531192Sminshall 
8631192Sminshall #define	OIA_OP_UNAUTHORIZED	    0x80
8731192Sminshall #define	OIA_OP_UNAUTHORIZED_MIN	    0x40
8831192Sminshall #define	OIA_INVALID_DEAD_KEY_COMBO  0x20
8931192Sminshall #define	OIA_WRONG_PLACE		    0x10
9031192Sminshall 
9131192Sminshall #define	OIA_MESSAGE_PENDING	      0x80
9231192Sminshall #define	OIA_PARTITION_WAIT	      0x40
9331192Sminshall #define	OIA_SYSTEM_WAIT		      0x20
9431192Sminshall #define	OIA_HARDWARE_MISMATCH	      0x10
9531192Sminshall #define	OIA_LOGICAL_TERM_NOT_CONF     0x08
9631192Sminshall 
9731192Sminshall 
9831192Sminshall #define	OIA_AUTOKEY_INHIBIT	        0x80
9931192Sminshall #define	OIA_API_INHIBIT		        0x40
10031192Sminshall 
10131192Sminshall /* Bits in pss_group_2 */
10231192Sminshall #define	OIA_PS_SELECTED		0x80
10331192Sminshall #define	OIA_PC_DISPLAY_DISABLE	0x40
10431192Sminshall 
10531192Sminshall /* Bits in highlight_group_2 and color_group_2 */
10631192Sminshall #define	OIA_SELECTED		0x80
10731192Sminshall 
10831192Sminshall /* Bits in comm_error_reminder */
10931192Sminshall #define	OIA_COMM_ERROR		0x80
11031192Sminshall #define	OIA_RTM			0x40
11131192Sminshall 
11231192Sminshall /* Bits in printer_status */
11331192Sminshall #define	OIA_PRINT_NOT_CUSTOM	0x80
11431192Sminshall #define	OIA_PRINTER_MALFUNCTION	0x40
11531192Sminshall #define	OIA_PRINTER_PRINTING	0x20
11631192Sminshall #define	OIA_ASSIGN_PRINTER	0x10
11731192Sminshall #define	OIA_WHAT_PRINTER	0x08
11831192Sminshall #define	OIA_PRINTER_ASSIGNMENT	0x04
11931192Sminshall 
12031192Sminshall /* Bits in autokey_play_record_status */
12131192Sminshall #define	OIA_PLAY		0x80
12231192Sminshall #define	OIA_RECORD		0x40
12331192Sminshall 
12431192Sminshall /* Bits in autokey_abort_pause_status */
12531192Sminshall #define	OIA_RECORDING_OVERFLOW	0x80
12631192Sminshall #define	OIA_PAUSE		0x40
12731192Sminshall 
12831192Sminshall /* Bits in enlarge_state */
12931192Sminshall #define	OIA_WINDOW_IS_ENLARGED	0x80
13031192Sminshall 
13131192Sminshall /* Define functions to set and read the oia */
13231192Sminshall 
13331214Sminshall #define	SetOiaOnlineA(oia) SetOiaMyJob((oia))		/* Side-effect */
13431192Sminshall #define	ResetOiaOnlineA(oia) \
13531192Sminshall 	/* Nothing defined for this */
13631192Sminshall 
13731192Sminshall #define	IsOiaReady3274(oia)	((oia)->online_ownership&OIA_SUBSYSTEM_READY)
13831192Sminshall #define	ResetOiaReady3274(oia)	(oia)->online_ownership &= ~OIA_SUBSYSTEM_READY
13931192Sminshall #define	SetOiaReady3274(oia)	(oia)->online_ownership |= OIA_SUBSYSTEM_READY
14031192Sminshall 
14131192Sminshall #define	IsOiaMyJob(oia)		((oia)->online_ownership&OIA_LU_LU)
14231192Sminshall #define	ResetOiaMyJob(oia)	(oia)->online_ownership &= ~OIA_LU_LU
14331192Sminshall #define	SetOiaMyJob(oia)	(oia)->online_ownership |= OIA_LU_LU
14431192Sminshall 
14531192Sminshall #define	IsOiaInsert(oia)	((oia)->online_ownership&OIA_INSERT_MODE)
14631192Sminshall #define	ResetOiaInsert(oia)	(oia)->online_ownership &= ~OIA_INSERT_MODE
14731192Sminshall #define	SetOiaInsert(oia)	(oia)->online_ownership |= OIA_INSERT_MODE
14831192Sminshall 
14931192Sminshall #define	IsOiaSystemLocked(oia)	((oia)->input_inhibited[3]&OIA_SYSTEM_WAIT)
15031192Sminshall #define	ResetOiaSystemLocked(oia) \
15131192Sminshall 				(oia)->input_inhibited[3] &= ~OIA_SYSTEM_WAIT
15231192Sminshall #define	SetOiaSystemLocked(oia)	(oia)->input_inhibited[3] |= OIA_SYSTEM_WAIT
15331192Sminshall 
15431214Sminshall #define	IsOiaTWait(oia)		((oia)->input_inhibited[1]&OIA_TERMINAL_WAIT)
15531192Sminshall #define	ResetOiaTWait(oia)	(oia)->input_inhibited[1] &= ~OIA_TERMINAL_WAIT
15631192Sminshall #define	SetOiaTWait(oia)	(oia)->input_inhibited[1] |= OIA_TERMINAL_WAIT
15731192Sminshall 
15831214Sminshall #define	IsOiaApiInhibit(oia)	((oia)->input_inhibited[4] &   OIA_API_INHIBIT)
15931214Sminshall #define	ResetOiaApiInhibit(oia)	((oia)->input_inhibited[4] &= ~OIA_API_INHIBIT)
16031214Sminshall #define	SetOiaApiInhibit(oia)	((oia)->input_inhibited[4] |=  OIA_API_INHIBIT)
16131214Sminshall 
16231192Sminshall /* A macro to let the world know that someone has modified the OIA. */
16331192Sminshall #define	SetOiaModified()	oia_modified = 1
16431515Sminshall #define	SetPsModified()		ps_modified = 1
165