131159Sminshall /* 231159Sminshall * This file contains header information used by the PC API routines. 331159Sminshall */ 431159Sminshall 5*31183Sminshall #if !defined(MSDOS) 6*31183Sminshall #define far /* For 'far *' checks */ 7*31183Sminshall #endif /* !defined(MSDOS) */ 8*31183Sminshall 931159Sminshall #define API_INTERRUPT_NUMBER 0x7A /* API Interrupt Number */ 1031159Sminshall 1131159Sminshall /* 1231159Sminshall * Define the gate numbers. These are returned via the Name Resolution 1331159Sminshall * service. 1431159Sminshall */ 1531159Sminshall 1631159Sminshall #define GATE_SESSMGR 1 1731159Sminshall #define GATE_KEYBOARD 2 1831159Sminshall #define GATE_COPY 3 1931159Sminshall #define GATE_OIAM 4 2031159Sminshall 2131167Sminshall /* 2231167Sminshall * The names which correspond to the above gate numbers. 2331167Sminshall */ 2431167Sminshall 2531167Sminshall #define NAME_SESSMGR "SESSMGR " 2631161Sminshall #define NAME_KEYBOARD "KEYBOARD" 2731167Sminshall #define NAME_COPY "COPY " 2831167Sminshall #define NAME_OIAM "OIAM " 2931161Sminshall 3031161Sminshall 3131159Sminshall /* 3231159Sminshall * Name Resolution is specified in AH. 3331159Sminshall */ 3431159Sminshall 3531159Sminshall #define NAME_RESOLUTION 0x81 3631159Sminshall 3731159Sminshall /* 3831159Sminshall * Codes specified in AL for various services. 3931159Sminshall */ 4031159Sminshall 4131167Sminshall #define QUERY_SESSION_ID 0x01 4231167Sminshall #define QUERY_SESSION_PARMS 0x02 4331167Sminshall #define QUERY_SESSION_CURSOR 0x0b 4431159Sminshall 4531167Sminshall #define CONNECT_TO_KEYBOARD 0x01 4631159Sminshall #define DISCONNECT_FROM_KEYBOARD 0x02 4731167Sminshall #define WRITE_KEYSTROKE 0x04 4831167Sminshall #define DISABLE_INPUT 0x05 4931167Sminshall #define ENABLE_INPUT 0x06 5031159Sminshall 5131167Sminshall #define COPY_STRING 0x01 5231159Sminshall 5331167Sminshall #define READ_OIA_GROUP 0x02 5431167Sminshall 5531167Sminshall /* 5631167Sminshall * For each service, we define the assoicated parameter blocks. 5731167Sminshall */ 5831167Sminshall 5931167Sminshall /* 6031167Sminshall * Supervisor Services 6131167Sminshall */ 6231167Sminshall 6331167Sminshall typedef struct { 6431167Sminshall char gate_name[8]; 6531167Sminshall } NameResolveParms; 6631167Sminshall 6731167Sminshall 6831167Sminshall /* 6931167Sminshall * Session Information Services 7031167Sminshall */ 7131167Sminshall 7231167Sminshall typedef struct { 7331167Sminshall char 7431167Sminshall short_name, 7531167Sminshall type, 7631167Sminshall session_id, 7731167Sminshall reserved, 7831167Sminshall long_name[8]; 7931167Sminshall } NameArrayElement; 8031167Sminshall 8131167Sminshall typedef struct { 8231167Sminshall char 8331167Sminshall length, 8431167Sminshall number_matching_session; 8531167Sminshall NameArrayElement 8631167Sminshall name_array_element; /* Variable number */ 8731167Sminshall } NameArray; 8831167Sminshall 8931167Sminshall typedef struct { 9031167Sminshall char 9131167Sminshall rc, 9231167Sminshall function_id, 9331167Sminshall option_code, 9431167Sminshall data_code; 9531167Sminshall NameArray far 9631167Sminshall *name_array; 9731167Sminshall char 9831167Sminshall long_name[8]; 9931167Sminshall } QuerySessionIdParms; 10031167Sminshall 10131167Sminshall typedef struct { 10231167Sminshall char 10331167Sminshall rc, 10431167Sminshall function_id, 10531167Sminshall session_id, 10631167Sminshall reserved, 10731167Sminshall session_type, 10831167Sminshall session_characteristics, 10931167Sminshall rows, 11031167Sminshall columns; 11131167Sminshall char far 11231167Sminshall *presentation_space; 11331168Sminshall } QuerySessionParametersParms; 11431167Sminshall 11531167Sminshall #define TYPE_WSCTL 0x01 /* Work Station Control */ 11631167Sminshall #define TYPE_DFT 0x02 /* DFT Host Session */ 11731167Sminshall #define TYPE_CUT 0x03 /* CUT Host Session */ 11831167Sminshall #define TYPE_NOTEPAD 0x04 /* Notepad Session */ 11931167Sminshall #define TYPE_PC 0x05 /* Personal Computer Session */ 12031167Sminshall 12131167Sminshall #define CHARACTERISTIC_EAB 0x80 /* Extended Attribute Buffer */ 12231167Sminshall #define CHARACTERISTIC_PSS 0x40 /* Program Symbols Supported */ 12331167Sminshall 12431167Sminshall typedef struct { 12531167Sminshall char 12631167Sminshall rc, 12731167Sminshall function_id, 12831167Sminshall session_id, 12931167Sminshall cursor_type, 13031167Sminshall row_address, /* from 0 */ 13131167Sminshall column_address; /* from 0 */ 13231167Sminshall } QuerySessionCursorParms; 13331167Sminshall 13431167Sminshall #define CURSOR_INHIBITED_AUTOSCROLL 0x10 13531167Sminshall #define CURSOR_INHIBITED 0x04 13631167Sminshall #define CURSOR_BLINKING 0x02 13731167Sminshall #define CURSOR_BOX 0x01 13831167Sminshall typedef struct { 13931167Sminshall char 14031167Sminshall rc, 14131167Sminshall function_id, 14231167Sminshall session_id, 14331167Sminshall reserved; 14431167Sminshall int 14531167Sminshall event_queue_id, 14631167Sminshall input_queue_id; 14731167Sminshall char 14831167Sminshall intercept_options, 14931167Sminshall first_connection_identifier; 15031167Sminshall } ConnectToKeyboardParms; 15131167Sminshall 15231167Sminshall typedef struct { 15331167Sminshall char 15431167Sminshall rc, 15531167Sminshall function_id, 15631167Sminshall session_id, 15731167Sminshall reserved; 15831167Sminshall int 15931168Sminshall connectors_task_id; 16031167Sminshall } DisconnectFromKeyboardParms; 16131167Sminshall 16231167Sminshall typedef struct { 16331167Sminshall char 16431167Sminshall scancode, 16531167Sminshall shift_state; 16631167Sminshall } KeystrokeEntry; 16731167Sminshall 16831167Sminshall typedef struct { 16931167Sminshall int 17031167Sminshall length; /* Length (in bytes) of list */ 17131167Sminshall KeystrokeEntry keystrokes; /* Variable size */ 17231167Sminshall } KeystrokeList; 17331167Sminshall 17431167Sminshall typedef struct { 17531167Sminshall char 17631167Sminshall rc, 17731167Sminshall function_id, 17831167Sminshall session_id, 17931167Sminshall reserved; 18031167Sminshall int 18131167Sminshall connectors_task_id; 18231167Sminshall char 18331167Sminshall options, 18431167Sminshall number_of_keys_sent; 18531167Sminshall union { 18631167Sminshall KeystrokeEntry 18731167Sminshall keystroke_entry; 18831167Sminshall KeystrokeList far 18931167Sminshall *keystroke_list; 19031167Sminshall } keystroke_specifier; 19131167Sminshall } WriteKeystrokeParms; 19231167Sminshall 19331167Sminshall typedef struct { 19431167Sminshall char 19531167Sminshall rc, 19631167Sminshall function_id, 19731167Sminshall session_id, 19831167Sminshall reserved; 19931167Sminshall int 20031167Sminshall connectors_task_id; 20131167Sminshall } DisableInputParms; 20231167Sminshall 20331167Sminshall typedef DisableInputParms EnableInputParms; 20431167Sminshall 20531167Sminshall typedef struct { 20631167Sminshall char 20731167Sminshall session_id, 20831167Sminshall reserved; 20931167Sminshall char far 21031167Sminshall *buffer; 21131167Sminshall char 21231167Sminshall characteristics, 21331167Sminshall session_type; 21431167Sminshall int 21531167Sminshall begin; /* Offset within buffer */ 21631167Sminshall } BufferDescriptor; 21731167Sminshall 21831167Sminshall typedef struct { 21931167Sminshall char 22031167Sminshall rc, 22131167Sminshall function_id; 22231167Sminshall BufferDescriptor 22331167Sminshall source; 22431167Sminshall int 22531167Sminshall source_end; /* Offset within source buffer */ 22631167Sminshall BufferDescriptor 22731167Sminshall target; 22831167Sminshall char 22931167Sminshall copy_mode, 23031167Sminshall reserved; 23131167Sminshall } CopyStringParms; 23231167Sminshall 23331167Sminshall #define COPY_MODE_7_COLOR 0x80 /* Else 4 color mode */ 23431167Sminshall #define COPY_MODE_FIELD_ATTRIBUTES 0x40 /* Else don't copy attributes */ 23531167Sminshall 23631167Sminshall typedef struct { 23731167Sminshall char 23831167Sminshall rc, 23931167Sminshall function_id, 24031167Sminshall session_id, 24131167Sminshall reserved; 24231167Sminshall char far 24331167Sminshall *oia_buffer; 24431167Sminshall char 24531167Sminshall oia_group_number; 24631167Sminshall } ReadOiaGroupParms; 24731167Sminshall 24831167Sminshall #define OIA_ALL_GROUPS 0xFF 24931167Sminshall #define OIA_ONLINE_OWNERSHIP 0x01 25031167Sminshall # define OIA_SETUP 0x80 25131167Sminshall # define OIA_TEST 0x40 25231167Sminshall # define OIA_SSCP_LU 0x20 25331167Sminshall # define OIA_LU_LU 0x10 25431167Sminshall # define OIA_UNOWNED 0x08 25531167Sminshall # define OIA_SUBSYSTEM_READY 0x04 25631167Sminshall 25731167Sminshall #define OIA_CHARACTER_SELECTION 0x02 25831167Sminshall # define OIA_EXTENDED_SELECT 0x80 25931167Sminshall # define OIA_APL 0x40 26031167Sminshall # define OIA_KANA 0x20 26131167Sminshall # define OIA_ALPHA 0x10 26231167Sminshall # define OIA_TEXT 0x08 26331167Sminshall 26431167Sminshall #define OIA_SHIFT_STATE 0x03 26531167Sminshall # define OIA_NUMERIC 0x80 26631167Sminshall # define OIA_UPPER_SHIFT 0x40 26731167Sminshall 26831167Sminshall #define OIA_PSS_GROUP_1 0x04 26931167Sminshall #define OIA_HIGHLIGHT_GROUP_1 0x05 27031167Sminshall #define OIA_COLOR_GROUP_1 0x06 27131167Sminshall # define OIA_SELECTABLE 0x80 27231167Sminshall # define OIA_FIELD_INHERIT 0x40 27331167Sminshall 27431167Sminshall #define OIA_INSERT 0x07 27531167Sminshall # define OIA_INSERT_MODE 0x80 27631167Sminshall 27731167Sminshall /* We define this to be a 'long' followed by a 'char' (5 bytes) */ 27831167Sminshall 27931167Sminshall #define OIA_INPUT_INHIBITED 0x08 28031167Sminshall 28131167Sminshall # define OIA_NON_RESETTABLE 0x80000000 28231167Sminshall # define OIA_SECURITY_KEY 0x40000000 28331167Sminshall # define OIA_MACHINE_CHECK 0x20000000 28431167Sminshall # define OIA_COMM_CHECK 0x10000000 28531167Sminshall # define OIA_PROGRAM_CHECK 0x08000000 28631167Sminshall # define OIA_RETRY 0x04000000 28731167Sminshall # define OIA_DEVICE_NOT_WORKING 0x02000000 28831167Sminshall # define OIA_DEVICE_VERY_BUSY 0x01000000 28931167Sminshall 29031167Sminshall # define OIA_DEVICE_BUSY 0x00800000 29131167Sminshall # define OIA_TERMINAL_WAIT 0x00400000 29231167Sminshall # define OIA_MINUS_SYMBOL 0x00200000 29331167Sminshall # define OIA_MINUS_FUNCTION 0x00100000 29431167Sminshall # define OIA_TOO_MUCH_ENTERED 0x00080000 29531167Sminshall # define OIA_NOT_ENOUGH_ENTERED 0x00040000 29631167Sminshall # define OIA_WRONG_NUMBER 0x00020000 29731167Sminshall # define OIA_NUMERIC_FIELD 0x00010000 29831167Sminshall 29931167Sminshall # define OIA_OP_UNAUTHORIZED 0x00008000 30031167Sminshall # define OIA_OP_UNAUTHORIZED_MIN 0x00004000 30131167Sminshall # define OIA_INVALID_DEAD_KEY_COMBO 0x00002000 30231167Sminshall # define OIA_WRONG_PLACE 0x00001000 30331167Sminshall 30431167Sminshall # define OIA_MESSAGE_PENDING 0x00000080 30531167Sminshall # define OIA_PARTITION_WAIT 0x00000040 30631167Sminshall # define OIA_SYSTEM_WAIT 0x00000020 30731167Sminshall # define OIA_HARDWARE_MISMATCH 0x00000010 30831167Sminshall # define OIA_LOGICAL_TERM_NOT_CONF 0x00000008 30931167Sminshall 31031167Sminshall 31131167Sminshall # define OIA_AUTOKEY_INHIBIT 0x80 31231167Sminshall # define OIA_API_INHIBIT 0x40 31331167Sminshall 31431167Sminshall #define OIA_PSS_GROUP_2 0x09 31531167Sminshall # define OIA_PS_SELECTED 0x80 31631167Sminshall # define OIA_PC_DISPLAY_DISABLE 0x40 31731167Sminshall 31831167Sminshall #define OIA_HIGHLIGHT_GROUP_2 0x0a 31931167Sminshall #define OIA_COLOR_GROUP_2 0x0b 32031167Sminshall # define OIA_SELECTED 0x80 32131167Sminshall 322*31183Sminshall #define OIA_COMM_ERROR_REMINDER 0x0c 32331167Sminshall # define OIA_COMM_ERROR 0x80 32431167Sminshall # define OIA_RTM 0x40 32531167Sminshall 32631167Sminshall #define OIA_PRINTER_STATUS 0x0d 32731167Sminshall # define OIA_PRINT_NOT_CUSTOM 0x80 32831167Sminshall # define OIA_PRINTER_MALFUNCTION 0x40 32931167Sminshall # define OIA_PRINTER_PRINTING 0x20 33031167Sminshall # define OIA_ASSIGN_PRINTER 0x10 33131167Sminshall # define OIA_WHAT_PRINTER 0x08 33231167Sminshall # define OIA_PRINTER_ASSIGNMENT 0x04 33331167Sminshall 33431167Sminshall #define OIA_AUTOKEY_PLAY_RECORD_STATUS 0x10 33531167Sminshall # define OIA_PLAY 0x80 33631167Sminshall # define OIA_RECORD 0x40 33731167Sminshall 33831167Sminshall #define OIA_AUTOKEY_ABORT_PAUSE_STATUS 0x11 33931167Sminshall # define OIA_RECORDING_OVERFLOW 0x80 34031167Sminshall # define OIA_PAUSE 0x40 34131167Sminshall 34231167Sminshall #define OIA_ENLARGE_STATE 0x12 34331167Sminshall # define OIA_WINDOW_IS_ENLARGED 0x80 34431167Sminshall 34531167Sminshall 34631167Sminshall 347*31183Sminshall #if defined(MSDOS) 348*31183Sminshall 349*31183Sminshall #if !defined(FP_SEG) 350*31183Sminshall #include <dos.h> 351*31183Sminshall #endif /* !defined(FP_SEG) */ 352*31183Sminshall 353*31183Sminshall #else /* defined(MSDOS) */ 354*31183Sminshall 355*31183Sminshall /* 356*31183Sminshall * These definitions are here to provide the descriptions of 357*31183Sminshall * some registers which are, normally, defined in <dos.h> on 358*31183Sminshall * a dos system. 359*31183Sminshall */ 360*31183Sminshall 361*31183Sminshall 362*31183Sminshall struct highlow { 363*31183Sminshall char 364*31183Sminshall ah, 365*31183Sminshall al, 366*31183Sminshall bh, 367*31183Sminshall bl, 368*31183Sminshall ch, 369*31183Sminshall cl, 370*31183Sminshall dh, 371*31183Sminshall dl; 372*31183Sminshall }; 373*31183Sminshall 374*31183Sminshall struct words { 375*31183Sminshall int 376*31183Sminshall ax, 377*31183Sminshall bx, 378*31183Sminshall cx, 379*31183Sminshall dx, 380*31183Sminshall si, 381*31183Sminshall di; 382*31183Sminshall }; 383*31183Sminshall 384*31183Sminshall union REGS { 385*31183Sminshall struct highlow h; 386*31183Sminshall struct words x; 387*31183Sminshall }; 388*31183Sminshall 389*31183Sminshall struct SREGS { 390*31183Sminshall int 391*31183Sminshall cs, 392*31183Sminshall ds, 393*31183Sminshall es, 394*31183Sminshall ss; 395*31183Sminshall }; 396*31183Sminshall #endif /* defined(MSDOS) (else section) */ 397