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