static char mybuffer
[2000];
fprintf(stderr
, "Error: [0x%x/0x%x:0x%x/0x%x] from %s.\n",
api_sup_fcn_id
, api_sup_errno
,
api_fcn_fcn_id
, api_fcn_errno
, string
);
return "work station control";
return "distributed function terminal";
return "control unit terminal";
return "personal computer";
QuerySessionParametersParms pa
;
QuerySessionCursorParms cu
;
ConnectToKeyboardParms conn
;
DisconnectFromKeyboardParms disc
;
DisableInputParms disable
;
fprintf(stderr
, "API function not available.\n");
id
.option_code
= ID_OPTION_BY_NAME
;
id
.name_array
= &namearray
;
namearray
.length
= sizeof namearray
;
if (api_query_session_id(&id
)) {
api_perror("api_query_session_id");
} else if (namearray
.number_matching_session
== 0) {
fprintf(stderr
, "query_session_id: No matching sessions!\n");
printf("Session short name 0x%x, type is ",
namearray
.name_array_element
.short_name
);
printf("%s", session_type(namearray
.name_array_element
.type
));
printf(", session ID is: 0x%x\n",
namearray
.name_array_element
.session_id
);
session_id
= namearray
.name_array_element
.session_id
;
pa
.rc
= pa
.function_id
= 0;
pa
.session_id
= session_id
;
if (api_query_session_parameters(&pa
) == -1) {
api_perror("api_query_session_parameters");
printf("Session type %s, ", session_type(pa
.session_type
));
if (pa
.session_characteristics
&CHARACTERISTIC_EAB
) {
if (pa
.session_characteristics
&CHARACTERISTIC_PSS
) {
printf("%d rows, %d columns ", pa
.rows
, pa
.columns
);
if (pa
.presentation_space
) {
printf("presentation space at 0x%x:0x%x.\n",
FP_SEG(pa
.presentation_space
), FP_OFF(pa
.presentation_space
));
printf("(no direct presentation space access).\n");
cu
.rc
= cu
.function_id
= 0;
cu
.session_id
= session_id
;
if (api_query_session_cursor(&cu
) == -1) {
api_perror("api_query_session_cursor");
if (cu
.cursor_type
&CURSOR_INHIBITED_AUTOSCROLL
) {
printf(" inhibited autoscroll");
if (cu
.cursor_type
&CURSOR_INHIBITED
) {
if (cu
.cursor_type
&CURSOR_BLINKING
) {
if (cu
.cursor_type
&CURSOR_BOX
) {
printf("at row %d, column %d.\n", cu
.row_address
, cu
.column_address
);
re
.rc
= re
.function_id
= 0;
re
.session_id
= session_id
;
re
.oia_buffer
= (char far
*) &oia
;
re
.oia_group_number
= API_OIA_ALL_GROUPS
;
if (api_read_oia_group(&re
) == -1) {
api_perror("api_read_oia_group");
if (IsOiaReady3274(&oia
)) {
if (IsOiaSystemLocked(&oia
)) {
printf("system locked, ");
printf("terminal wait, ");
printf("are some bits from the OIA.\n");
conn
.rc
= conn
.function_id
= 0;
conn
.session_id
= session_id
;
conn
.event_queue_id
= conn
.input_queue_id
= 0;
conn
.intercept_options
= 0;
if (api_connect_to_keyboard(&conn
) == -1) {
api_perror("api_connect_to_keyboard");
if (conn
.first_connection_identifier
) {
printf("First keyboard connection.\n");
printf("Not first keyboard connection.\n");
disable
.rc
= disable
.function_id
= 0;
disable
.session_id
= session_id
;
disable
.connectors_task_id
= 0;
if (api_disable_input(&disable
) == -1) {
api_perror("api_disable_input");
wr
.rc
= wr
.function_id
= 0;
wr
.session_id
= session_id
;
wr
.connectors_task_id
= 0;
wr
.options
= OPTION_SINGLE_KEYSTROKE
;
wr
.number_of_keys_sent
= 0;
wr
.keystroke_specifier
.keystroke_entry
.scancode
= 0x3a;
wr
.keystroke_specifier
.keystroke_entry
.shift_state
= 0;
if (api_write_keystroke(&wr
) == -1) {
api_perror("api_write_keystroke");
if (wr
.number_of_keys_sent
!= 1) {
"write_keystroke claims to have sent %d keystrokes.\n",
printf("Keystroke sent.\n");
enable
.rc
= enable
.function_id
= 0;
enable
.session_id
= session_id
;
enable
.connectors_task_id
= 0;
if (api_enable_input(&enable
) == -1) {
api_perror("api_enable");
disc
.rc
= disc
.function_id
= 0;
disc
.session_id
= session_id
;
disc
.connectors_task_id
= 0;
if (api_disconnect_from_keyboard(&disc
) == -1) {
api_perror("api_disconnect_from_keyboard");
printf("Disconnected from keyboard.\n");
for (i
= 0; i
< 100; i
++) {
copy
.rc
= copy
.function_id
= 0;
copy
.source
.session_id
= session_id
;
copy
.source
.characteristics
= 0;
copy
.source
.session_type
= TYPE_DFT
;
copy
.target
.session_id
= 0;
copy
.target
.buffer
= mybuffer
;
copy
.target
.characteristics
= 0;
copy
.target
.session_type
= TYPE_DFT
;
if (api_copy_string(©
) == -1) {
api_perror("api_copy_string");
printf("Copied data out.\n");