COMPILATION LISTING OF SEGMENT window_call Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/13/87 1327.7 mst Thu Options: optimize map 1 /****^ ****************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* ****************************************************** */ 9 10 /* Command interface for video */ 11 /* format: style4,delnl,insnl,indattr,ifthen,dclind9 */ 12 /* Benson I. Margulies, too late in the summer of 1981 */ 13 /* Modified by Chris Jones, 29 October 1981, to handle "undocumented" keys 14* and control args. */ 15 /* Modified by Jon A. Rochlis, 14 June 1983, to add supported_terminal and 16* video_invoked keywords. */ 17 /* Modified by JR, 1 October 1983, to add support for partial screen width 18* windows. */ 19 /* Modified by JR, 28 June 1984, to add get_window_width, since I forgot about 20* it in October. */ 21 /* Modified by C. Marker 6 September 1984, to add -line_speed. */ 22 23 wdc: 24 window_call: 25 procedure options (variable); 26 27 declare cu_$arg_list_ptr entry returns (ptr); 28 declare arg_list_ptr pointer; 29 30 arg_list_ptr = cu_$arg_list_ptr (); 31 32 begin; /* to allow some useful declarations */ 33 34 declare 1 irep (window_call_data_$n_ctl_args) aligned, 35 2 allowed bit (1) aligned, 36 2 required bit (1) aligned, 37 2 found bit (1) aligned, 38 2 argument fixed bin, 39 2 arg aligned, /* if there was a following key */ 40 3 value fixed bin, 41 3 ptr pointer unaligned, 42 3 length fixed bin (21); 43 44 45 declare key character (32); 46 declare keyx fixed bin (21); 47 48 declare 1 this_f aligned like function based (this_f_ptr); 49 declare this_f_ptr pointer; 50 51 52 declare argument_ptr pointer; 53 declare argument_length fixed bin (21); 54 declare argument character (argument_length) based (argument_ptr); 55 56 declare rs_ptr pointer; 57 declare rs_length fixed bin (21); 58 declare return_string character (rs_length) varying based (rs_ptr); 59 60 declare save_argument character (32); 61 62 declare this_is_an_af bit (1) aligned; 63 declare error_reporter entry options (variable) variable; 64 declare n_arguments fixed bin; 65 declare iocb_ptr pointer; 66 declare code fixed bin (35); 67 declare (ctlx, argx) fixed bin; 68 69 declare ME character (32) init ("window_call") internal static options (constant); 70 71 declare com_err_ entry () options (variable); 72 declare active_fnc_err_ entry () options (variable); 73 declare requote_string_ entry (character (*)) returns (character (*)); 74 75 declare cu_$af_return_arg_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 76 declare cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 77 declare cv_dec_check_ entry (character (*), fixed binary (35)) returns (fixed binary (35)); 78 declare ioa_ entry () options (variable); 79 80 declare video_utils_$turn_on_login_channel 81 entry (fixed binary (35), character (*)); 82 declare video_utils_$turn_off_login_channel 83 entry (fixed binary (35)); 84 85 declare ( 86 error_table_$nodescr, 87 error_table_$not_act_fnc, 88 error_table_$noarg, 89 error_table_$bad_arg, 90 error_table_$badopt, 91 error_table_$active_function, 92 error_table_$bad_conversion, 93 video_et_$wsys_invoked, 94 video_et_$wsys_not_invoked 95 ) ext static fixed bin (35); 96 97 declare video_data_$terminal_iocb 98 pointer external; 99 100 declare (addr, character, length, ltrim, null, substr, translate) 101 builtin; 102 1 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 1 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 1 3 1 4 /* format: style3 */ 1 5 1 6 declare window_$bell entry (pointer, fixed binary (35)); 1 7 declare window_$clear_region 1 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 1 9 declare window_$clear_to_end_of_line 1 10 entry (pointer, fixed binary (35)); 1 11 declare window_$clear_to_end_of_window 1 12 entry (pointer, fixed binary (35)); 1 13 declare window_$clear_window 1 14 entry (pointer, fixed binary (35)); 1 15 declare window_$delete_chars 1 16 entry (pointer, fixed binary, fixed binary (35)); 1 17 declare window_$get_cursor_position 1 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 1 19 1 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 1 21 1 22 declare window_$get_echoed_chars 1 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 1 24 fixed binary (35)); 1 25 declare window_$get_unechoed_chars 1 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 1 27 fixed binary (35)); 1 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 1 29 declare window_$overwrite_text 1 30 entry (pointer, character (*), fixed binary (35)); 1 31 declare window_$position_cursor 1 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 1 33 1 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 1 35 1 36 declare window_$position_cursor_rel 1 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 1 38 1 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 1 40* code); */ 1 41 1 42 declare window_$scroll_region 1 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 1 44 declare window_$sync entry (pointer, fixed binary (35)); 1 45 1 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 1 47 1 48 declare window_$write_raw_text 1 49 entry (pointer, character (*), fixed binary (35)); 1 50 1 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 1 52 1 53 declare window_$write_sync_read 1 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 1 55 character (1) var, fixed binary (35)); 1 56 1 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 1 58 1 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 1 60 1 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 1 62 1 63 declare window_$change_column 1 64 entry (pointer, fixed binary, fixed binary (35)); 1 65 1 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 1 67 declare ( 1 68 window_$get_one_unechoed, 1 69 window_$get_one_unechoed_char 1 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 1 71 1 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 1 73 1 74 declare window_$destroy entry (pointer, fixed binary (35)); 1 75 1 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 1 77 1 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 1 79* buffer_len, n_returned, code); */ 1 80 1 81 1 82 /* end include file window_dcls.incl.pl1 */ 103 2 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 2 2 /* format: style3 */ 2 3 2 4 /* Modified 26 January 1982 by William York to add the set_more_handler 2 5* and reset_more_handler control orders. */ 2 6 /* Modified October 1982 by WMY to add set and get_token_characters, 2 7* set and get_more_prompt. */ 2 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 2 9* structure. */ 2 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 2 11* partial screen width windows. */ 2 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 2 13* This should be removed when window_info.incl.pl1 is created. */ 2 14 /* Modified 29 February 1984 by Barmar to add version 1 2 15* get_editor_key_bindings_info. */ 2 16 /* Modified 1 March 1984 by Barmar to add version 1 2 17* set_editor_key_bindings_info. */ 2 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 2 19* line_editor_key_bindings_info, which includes the name, description, and 2 20* info path */ 2 21 2 22 /* structure for the set_window_info and get_window_info 2 23* control orders. */ 2 24 2 25 dcl 1 window_position_info 2 26 based (window_position_info_ptr), 2 27 2 version fixed bin, 2 28 2 origin, 2 29 3 column fixed bin, 2 30 3 line fixed bin, 2 31 2 extent, 2 32 3 width fixed bin, 2 33 3 height fixed bin; 2 34 2 35 dcl (window_position_info_version, window_position_info_version_1) 2 36 fixed bin internal static init (1) options (constant); 2 37 dcl window_position_info_ptr 2 38 pointer; 2 39 2 40 /* structure for the set_window_status and get_window_status 2 41* control orders */ 2 42 2 43 declare window_status_info_ptr 2 44 pointer; 2 45 declare 1 window_status_info 2 46 aligned based (window_status_info_ptr), 2 47 2 version fixed bin, 2 48 2 status_string bit (36) aligned; /* string (window_status) */ 2 49 /* see window_status.incl.pl1 for the contents of this string */ 2 50 2 51 2 52 declare (window_status_version, window_status_version_1) 2 53 fixed bin internal static init (1) options (constant); 2 54 2 55 /* info structure for the set_more_responses and get_more_responses control 2 56* orders */ 2 57 2 58 2 59 dcl 1 more_responses_info 2 60 aligned based (more_responses_info_ptr), 2 61 2 version fixed bin, 2 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 2 63 2 n_noes fixed bin, 2 64 2 yeses char (32) unaligned, 2 65 2 noes char (32) unaligned; 2 66 2 67 dcl (more_responses_info_version_1, more_responses_version) 2 68 fixed bin internal static init (1) options (constant); 2 69 dcl more_responses_info_ptr 2 70 pointer; 2 71 2 72 /* structure for the set_break_table and get_break_table 2 73* control orders */ 2 74 2 75 declare break_table_ptr pointer; 2 76 declare 1 break_table_info aligned based (break_table_ptr), 2 77 2 version fixed bin, 2 78 2 breaks (0:127) bit (1) unaligned; 2 79 2 80 declare (break_table_info_version, break_table_info_version_1) 2 81 fixed bin init (1) internal static options (constant); 2 82 2 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 2 84 2 version fixed bin, 2 85 2 flags unaligned, 2 86 3 old_handler_valid 2 87 bit(1), 2 88 3 pad bit(35), 2 89 2 more_handler entry (pointer, bit(1) aligned), 2 90 2 old_more_handler entry (pointer, bit(1) aligned); 2 91 2 92 declare more_handler_info_ptr pointer; 2 93 2 94 declare (more_handler_info_version, more_handler_info_version_3) 2 95 fixed bin internal static options (constant) init (3); 2 96 2 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 2 98 2 version char(8), 2 99 2 token_character_count 2 100 fixed bin, 2 101 2 token_characters 2 102 char (128) unaligned; 2 103 2 104 declare token_characters_info_ptr pointer; 2 105 2 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 2 107 2 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 2 109 2 version char(8), 2 110 2 more_prompt char(80); 2 111 2 112 declare more_prompt_info_ptr pointer; 2 113 2 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 2 115 2 116 /* Line editor stuff ... */ 2 117 2 118 dcl line_editor_key_binding_info_ptr 2 119 pointer; 2 120 2 121 dcl line_editor_binding_count 2 122 fixed bin; 2 123 dcl line_editor_longest_sequence 2 124 fixed bin; 2 125 /* For each binding, action defines what to do for that sequence. Constants 2 126* are defined in window_editor_values.incl.pl1. Only if action is set to 2 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 2 128 2 129 dcl 1 line_editor_key_binding_info 2 130 aligned based (line_editor_key_binding_info_ptr), 2 131 2 version char(8), 2 132 2 binding_count fixed bin, 2 133 2 longest_sequence fixed bin, 2 134 2 bindings (line_editor_binding_count refer 2 135 (line_editor_key_binding_info.binding_count)), 2 136 3 sequence char(line_editor_longest_sequence refer 2 137 (line_editor_key_binding_info.longest_sequence)) varying, 2 138 3 action fixed bin, 2 139 3 numarg_action fixed binary, 2 140 3 editor_routine entry (pointer, fixed bin(35)), 2 141 3 name char (64) varying unaligned, 2 142 3 description char (256) varying unaligned, 2 143 3 info_path unaligned, 2 144 4 info_dir char (168), 2 145 4 info_entry char (32); 2 146 2 147 2 148 dcl line_editor_key_binding_info_version_3 2 149 char(8) static options (constant) init ("lekbi003"); 2 150 2 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 2 152 2 version char (8), 2 153 2 flags, 2 154 3 entire_state bit (1) unaligned, 2 155 3 mbz bit (35) unaligned, 2 156 2 key_binding_info_ptr ptr, 2 157 2 entire_state_ptr ptr; 2 158 2 159 dcl get_editor_key_bindings_info_ptr ptr; 2 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 2 161 2 162 dcl 1 set_editor_key_bindings_info aligned 2 163 based (set_editor_key_bindings_info_ptr), 2 164 2 version char (8), 2 165 2 flags, 2 166 3 replace bit (1) unaligned, 2 167 3 update bit (1) unaligned, 2 168 3 mbz bit (34) unaligned, 2 169 2 key_binding_info_ptr ptr; 2 170 2 171 dcl set_editor_key_bindings_info_ptr ptr; 2 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 2 173 2 174 /* This should be moved to window_info.incl.pl1 when that include file is 2 175* created. JR 2/1/84 */ 2 176 2 177 dcl 1 window_edit_line_info 2 178 based (window_edit_line_info_ptr), 2 179 2 version char (8), 2 180 2 line_ptr ptr, 2 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 2 182 2 183 dcl window_edit_line_info_version_1 2 184 char (8) static options (constant) init ("wedl0001"); 2 185 2 186 dcl window_edit_line_info_ptr 2 187 ptr; 2 188 2 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 104 3 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 3 2 3 3 /* Written 05/04/78 by C. D. Tavares */ 3 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 3 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 3 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 3 7 3 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 3 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 3 10 iox_$close entry (pointer, fixed bin (35)), 3 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 3 12 iox_$delete_record entry (pointer, fixed bin (35)), 3 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 3 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 3 15 iox_$err_not_attached entry options (variable), 3 16 iox_$err_not_closed entry options (variable), 3 17 iox_$err_no_operation entry options (variable), 3 18 iox_$err_not_open entry options (variable), 3 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 3 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 3 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 3 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 3 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 3 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 3 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 3 28 iox_$propagate entry (pointer), 3 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 3 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 3 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 3 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 3 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 3 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 3 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 3 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 3 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 3 40 3 41 dcl (iox_$user_output, 3 42 iox_$user_input, 3 43 iox_$user_io, 3 44 iox_$error_output) external static pointer; 3 45 3 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 105 4 1 /* Begin include file ..... iox_modes.incl.pl1 */ 4 2 4 3 /* Written by C. D. Tavares, 03/17/75 */ 4 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 4 5 4 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 4 7 ("stream_input", "stream_output", "stream_input_output", 4 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 4 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 4 10 "direct_input", "direct_output", "direct_update"); 4 11 4 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 4 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 4 14 4 15 dcl (Stream_input initial (1), 4 16 Stream_output initial (2), 4 17 Stream_input_output initial (3), 4 18 Sequential_input initial (4), 4 19 Sequential_output initial (5), 4 20 Sequential_input_output initial (6), 4 21 Sequential_update initial (7), 4 22 Keyed_sequential_input initial (8), 4 23 Keyed_sequential_output initial (9), 4 24 Keyed_sequential_update initial (10), 4 25 Direct_input initial (11), 4 26 Direct_output initial (12), 4 27 Direct_update initial (13)) fixed bin int static options (constant); 4 28 4 29 /* End include file ..... iox_modes.incl.pl1 */ 106 107 108 /* Someday ... */ 109 110 111 call cu_$af_return_arg_rel (n_arguments, rs_ptr, rs_length, code, arg_list_ptr); 112 113 if n_arguments = 0 | code = error_table_$nodescr then do; 114 /* was called as AF, no args */ 115 if code = 0 then 116 call active_fnc_err_ (0, ME, "Usage: window_call call KEY ARGUMENTS."); 117 else call com_err_ (0, ME, "Usage: window_call KEY ARGUMENTS."); 118 go to RETURN; 119 end; 120 121 if code = error_table_$not_act_fnc then do; 122 this_is_an_af = "0"b; 123 error_reporter = com_err_; 124 end; 125 126 else do; /* Code MUST be 0, by contract */ 127 this_is_an_af = "1"b; 128 error_reporter = active_fnc_err_; 129 end; 130 131 wcd_functions_ptr = addr (window_call_data_$functions); 132 wcd_names_ptr = addr (window_call_data_$names); 133 wcd_string_ptr = addr (window_call_data_$string); 134 wcd_ctl_args_ptr = addr (window_call_data_$ctl_args); 135 136 call cu_$arg_ptr_rel (1, argument_ptr, argument_length, (0), arg_list_ptr); 137 138 if character (argument, 1) = "-" then do; 139 call error_reporter (error_table_$noarg, ME, "The function keyword must be the first argument."); 140 go to RETURN; 141 end; 142 143 do keyx = 1 to window_call_data_$n_keys while (argument ^= ""); 144 if argument = window_call_data_names (keyx).long | argument = window_call_data_names (keyx).short 145 | argument = window_call_data_names (keyx).undocumented_long 146 | argument = window_call_data_names (keyx).undocumented_short then 147 go to HAVE_KEYX; 148 end; 149 150 call ERROR_REPORTER (error_table_$badopt, ME, "Unrecognized key ""^a"".", argument); 151 go to RETURN; 152 153 HAVE_KEYX: 154 key = window_call_data_names (keyx).long; 155 this_f_ptr = addr (window_call_data_functions (keyx)); 156 157 if this_is_an_af & ^this_f.af_allowed then do; 158 call active_fnc_err_ (error_table_$active_function, ME); 159 go to RETURN; 160 end; 161 162 /* Now we are ready to parse for this_f */ 163 164 irep.found (*) = "0"b; 165 irep.arg (*).ptr = null; 166 irep.arg (*).length = 0; 167 irep = this_f.args, by name; /* pick up flags */ 168 irep = window_call_data_ctl_args, by name; 169 170 main_argument_loop: 171 do argx = 2 to n_arguments; 172 call cu_$arg_ptr_rel (argx, argument_ptr, argument_length, (0), arg_list_ptr); 173 174 /* first see if its a control argument. It has to be, we have no 175* positionals */ 176 177 if character (argument, 1) ^= "-" | length (argument) < 2 then do; 178 call ERROR_REPORTER (error_table_$badopt, ME, "The argument ^a is out of place.", argument); 179 go to RETURN; 180 end; 181 182 /* Now, is it a control argument we 183* (1) recognize at all, and 184* (2) allow for this key? */ 185 186 do ctlx = 1 to window_call_data_$n_ctl_args; 187 if (substr (argument, 2) = window_call_data_ctl_args (ctlx).name.long 188 | substr (argument, 2) = window_call_data_ctl_args (ctlx).name.undocumented_long 189 | substr (argument, 2) = window_call_data_ctl_args (ctlx).name.short 190 | substr (argument, 2) = window_call_data_ctl_args (ctlx).name.undocumented_short) 191 & irep (ctlx).allowed then 192 go to HAVE_CTLX; 193 end; 194 195 /* Unrecognized */ 196 197 call ERROR_REPORTER (error_table_$badopt, ME, "^a.", argument); 198 go to RETURN; 199 200 HAVE_CTLX: 201 irep (ctlx).found = "1"b; 202 203 if irep (ctlx).argument ^= A_NONE then do; 204 /* trailing parameter dept */ 205 argx = argx + 1; 206 save_argument = argument; 207 if argx > n_arguments then do; 208 NOARG: 209 call ERROR_REPORTER (error_table_$noarg, ME, 210 "Control argument ^a requires a ^[^s^;numeric^;string^] parameter.", save_argument, 211 irep (ctlx).argument); 212 go to RETURN; 213 end; 214 215 call cu_$arg_ptr_rel (argx, argument_ptr, argument_length, (0), arg_list_ptr); 216 217 if irep (ctlx).argument = A_NUMBER then do; 218 irep (ctlx).value = cv_dec_check_ (argument, code); 219 if code ^= 0 then do; 220 221 if character (argument, 1) = "-" then 222 go to NOARG; 223 224 if code <= length (argument) then 225 call ERROR_REPORTER (error_table_$bad_conversion, ME, 226 "Converting ^a to an integer.", argument); 227 else call ERROR_REPORTER (code, ME, "Converting ^a to an integer.", argument); 228 go to RETURN; 229 end; 230 end; 231 else do; 232 irep (ctlx).ptr = argument_ptr; 233 irep (ctlx).length = argument_length; 234 end; 235 end; 236 end main_argument_loop; 237 238 /* Last Parse Step. Make sure all the requirements were met */ 239 240 241 do ctlx = 1 to window_call_data_$n_ctl_args; 242 if irep (ctlx).required & ^irep (ctlx).found then do; 243 USAGE: 244 call ERROR_REPORTER (error_table_$noarg, ME, "Usage: window_call ^a ^a.", key, 245 substr (window_call_data_string, this_f.usage.index, this_f.usage.length)); 246 go to RETURN; 247 end; 248 end; 249 250 /* Here Endeth the Parse. */ 251 252 253 /* Here come the semantics. One action routine for each function. */ 254 255 go to DO_IT (keyx); /* we trust keyx */ 256 257 /* The order of these must match the order they are generated 258* in window_call_data_. A perfect job for pl1_macro, but thats 259* too much hair for now. Anyway, we would have to carry constants 260* invented in one program into another. */ 261 262 DO_IT (1): /* clear window */ 263 call get_iocb; /* use -io_switch or user_i/o */ 264 call window_$clear_window (iocb_ptr, code); 265 go to CHECK_RETURN; 266 267 DO_IT (2): /* Bell */ 268 call get_iocb; 269 call window_$bell (iocb_ptr, code); 270 go to CHECK_RETURN; 271 272 DO_IT (3): /* Clear Region */ 273 call get_iocb; 274 275 if ^irep (C_COLUMN).found then 276 irep (C_COLUMN).value = 1; 277 if ^irep (C_N_COLUMNS).found then do; 278 call get_window_info; 279 irep (C_N_COLUMNS).value = window_info.width - irep (C_COLUMN).value + 1; 280 end; 281 call window_$clear_region (iocb_ptr, irep (C_LINE).value, irep (C_COLUMN).value, irep (C_N_LINES).value, 282 irep (C_N_COLUMNS).value, code); 283 go to CHECK_RETURN; 284 285 DO_IT (4): /* Clear to end of line */ 286 call get_iocb; 287 call window_$clear_to_end_of_line (iocb_ptr, code); 288 go to CHECK_RETURN; 289 290 DO_IT (5): 291 call get_iocb; 292 call window_$clear_to_end_of_window (iocb_ptr, code); 293 go to CHECK_RETURN; 294 295 DO_IT (6): 296 call get_iocb; 297 call window_$delete_chars (iocb_ptr, irep (C_COUNT).value, code); 298 go to CHECK_RETURN; 299 300 DO_IT (7): /* Get Position */ 301 begin; 302 declare (l, c) fixed bin; 303 304 call get_iocb; 305 call window_$get_cursor_position (iocb_ptr, l, c, code); 306 if code ^= 0 then 307 go to CHECK_RETURN; 308 309 if this_is_an_af then 310 return_string = ltrim (character (l)) || " " || ltrim (character (c)); 311 else call ioa_ ("Line = ^d; Column = ^d.", l, c); 312 go to RETURN; 313 end; 314 315 316 DO_IT (8): /* Get echoed chars */ 317 call get ("1"b); /* Does not return */ 318 319 DO_IT (9): /* Get unechoed */ 320 call get ("0"b); 321 322 DO_IT (10): /* insert_text */ 323 call get_iocb; 324 declare text character (irep (C_STRING).length) based (irep (C_STRING).ptr); 325 326 327 call window_$insert_text (iocb_ptr, text, code); 328 go to CHECK_RETURN; 329 330 DO_IT (11): /* Overwrite_text */ 331 call get_iocb; 332 call window_$overwrite_text (iocb_ptr, text, code); 333 go to CHECK_RETURN; 334 335 DO_IT (12): /* position cursor */ 336 call get_iocb; 337 call window_$position_cursor (iocb_ptr, irep (C_LINE).value, irep (C_COLUMN).value, code); 338 go to CHECK_RETURN; 339 340 341 DO_IT (13): /* position cursor rel */ 342 call get_iocb; 343 call window_$position_cursor_rel (iocb_ptr, irep (C_LINE).value, irep (C_COLUMN).value, code); 344 go to CHECK_RETURN; 345 346 347 DO_IT (14): /* Scroll Region */ 348 call get_iocb; 349 if ^irep (C_LINE).found then 350 irep (C_LINE).value = 1; 351 352 if ^irep (C_N_LINES).found then do; 353 call get_window_info; 354 irep (C_N_LINES).value = window_info.height - irep (C_LINE).value + 1; 355 end; 356 357 call window_$scroll_region (iocb_ptr, irep (C_LINE).value, irep (C_N_LINES).value, irep (C_COUNT).value, 358 code); 359 go to CHECK_RETURN; 360 361 DO_IT (15): /* SYNC */ 362 call get_iocb; 363 call window_$sync (iocb_ptr, code); 364 go to CHECK_RETURN; 365 366 DO_IT (16): /* Write Sync Read */ 367 begin; 368 declare buffer character (irep (C_COUNT).value); 369 declare break character (1) varying; 370 declare n_read fixed bin (21); 371 declare prompt character (irep (C_STRING).length) based (irep (C_STRING).ptr); 372 373 call get_iocb; 374 call window_$write_sync_read (iocb_ptr, prompt, length (buffer), buffer, n_read, break, code); 375 if code ^= 0 then 376 go to CHECK_RETURN; 377 378 begin; 379 declare read character (n_read) defined (buffer) position (1); 380 if this_is_an_af then 381 return_string = requote_string_ (read) || " " || requote_string_ ((break)); 382 else call ioa_ ("Read = ^a; Break = ^a.", requote_string_ (read), requote_string_ ((break))); 383 end; /* inner begin */ 384 end; /* outer begin */ 385 go to RETURN; 386 387 /* INVOKE */ 388 389 DO_IT (17): 390 if video_data_$terminal_iocb ^= null () then do; 391 call ERROR_REPORTER (video_et_$wsys_invoked, ME); 392 go to RETURN; 393 end; 394 395 begin options (non_quick); 396 declare reason character (512); 397 declare line_speed fixed bin; 398 399 if irep (C_LINE_SPEED).found then do; /* we have line speed */ 400 line_speed = irep (C_LINE_SPEED).value; 401 if line_speed < 0 then do; 402 call ERROR_REPORTER (error_table_$bad_arg, ME, "^a", "Negative value not allowed for line speed."); 403 go to RETURN; 404 end; 405 end; 406 407 call video_utils_$turn_on_login_channel (code, reason); 408 if code ^= 0 then do; 409 call ERROR_REPORTER (code, ME, "^a", reason); 410 go to RETURN; 411 end; 412 413 if irep (C_LINE_SPEED).found then do; /* we have line speed */ 414 call iox_$control (video_data_$terminal_iocb, "set_line_speed", addr (line_speed), code); 415 if code ^= 0 then 416 go to CHECK_RETURN; 417 end; 418 419 go to RETURN; 420 end; 421 422 /* REVOKE */ 423 424 DO_IT (18): 425 call video_utils_$turn_off_login_channel ((0)); 426 go to RETURN; 427 428 /* CREATE */ 429 430 DO_IT (19): 431 begin options (non_quick); 432 declare wiocbp pointer; 433 declare 1 wpi aligned like window_position_info; 434 declare switch_name character (irep (C_SWITCH).length) based (irep (C_SWITCH).ptr); 435 436 call iox_$find_iocb (switch_name, wiocbp, code); 437 if code ^= 0 then 438 go to CHECK_RETURN; 439 440 wpi.version = window_position_info_version_1; 441 if irep (C_LINE).found then 442 wpi.origin.line = irep (C_LINE).value; 443 else wpi.origin.line = 1; 444 445 if irep (C_N_LINES).found then 446 wpi.extent.height = irep (C_N_LINES).value; 447 else wpi.extent.height = 0; 448 449 if irep (C_COLUMN).found then 450 wpi.origin.column = irep (C_COLUMN).value; 451 else wpi.origin.column = 0; 452 453 if irep (C_N_COLUMNS).found then 454 wpi.extent.width = irep (C_N_COLUMNS).value; 455 else wpi.extent.width = 0; 456 457 call window_$create (video_data_$terminal_iocb, addr (wpi), wiocbp, code); 458 if code ^= 0 then 459 go to CHECK_RETURN; 460 return; 461 462 end; 463 464 DO_IT (20): 465 call get_iocb; /* Delete Window */ 466 467 call window_$destroy (iocb_ptr, code); 468 if code ^= 0 then 469 go to CHECK_RETURN; 470 return; /* Change Window */ 471 472 DO_IT (21): 473 call get_iocb; 474 call get_window_info; 475 476 /* Life is more complicated with partial width windows. One can now change 477* widths as well as heights ... up until this point, one had to specify 478* at least one of C_LINE/C_N_LINES, now one must specify one of those *or* 479* one of C_COLUMN/C_N_COLUMNS. */ 480 481 if ^(irep (C_LINE).found | irep (C_N_LINES).found | 482 irep (C_COLUMN).found | irep (C_N_COLUMNS).found) 483 then go to USAGE; 484 485 if irep (C_LINE).found then 486 window_info.origin.line = irep (C_LINE).value; 487 488 if irep (C_N_LINES).found then 489 window_info.height = irep (C_N_LINES).value; 490 else do; /* use rest of screen */ 491 call get_capabilities (video_data_$terminal_iocb); 492 if window_info.origin.line + window_info.height - 1 > ci.rows then 493 window_info.height = ci.rows - window_info.origin.line + 1; 494 end; 495 496 if irep (C_COLUMN).found then 497 window_info.origin.column = irep (C_COLUMN).value; 498 499 if irep (C_N_COLUMNS).found then 500 window_info.width = irep (C_N_COLUMNS).value; 501 else do; /* use rest of screen */ 502 call get_capabilities (video_data_$terminal_iocb); 503 if window_info.origin.column + window_info.width - 1 > ci.columns then 504 window_info.width = ci.columns - window_info.origin.column + 1; 505 end; 506 507 call iox_$control (iocb_ptr, "set_window_info", addr (window_info), code); 508 go to CHECK_RETURN; 509 510 DO_IT (22): /* get first line */ 511 call get_iocb; 512 call get_window_info; 513 if this_is_an_af then 514 return_string = ltrim (character (window_info.origin.line)); 515 else call ioa_ ("First line = ^d.", window_info.origin.line); 516 go to RETURN; 517 518 DO_IT (23): /* get n lines */ 519 call get_iocb; 520 call get_window_info; 521 522 if this_is_an_af then 523 return_string = ltrim (character (window_info.height)); 524 else call ioa_ ("Height = ^d.", window_info.height); 525 go to RETURN; 526 527 DO_IT (24): /* get n columns */ 528 call get_iocb; 529 call get_window_info; 530 531 if this_is_an_af then 532 return_string = ltrim (character (window_info.width)); 533 else call ioa_ ("Width = ^d.", window_info.width); 534 go to RETURN; 535 5 1 /* BEGIN INCLUDE FILE terminal_capabilities.incl.pl1 BIM May 1981 */ 5 2 /* format: style3 */ 5 3 dcl 1 capabilities_info aligned based (capabilities_info_ptr), 5 4 2 version fixed bin, 5 5 2 screensize, 5 6 3 columns fixed bin, 5 7 3 rows fixed bin, 5 8 2 flags, 5 9 3 scroll_region bit (1) unal, 5 10 3 insert_chars bit (1) unal, 5 11 3 insert_mode bit (1) unal, 5 12 3 delete_chars bit (1) unal, 5 13 3 overprint bit (1) unal, 5 14 3 pad bit (31) unal, 5 15 2 line_speed fixed bin; /* chars per sec */ 5 16 5 17 dcl (capabilities_info_version_1, capabilities_info_version) 5 18 fixed bin internal static init (1) options (constant); 5 19 dcl capabilities_info_ptr 5 20 pointer; 5 21 5 22 /* END INCLUDE FILE terminal_capabilities.incl.pl1 */ 536 537 declare 1 ci aligned like capabilities_info; 538 539 DO_IT (25): /* get_terminal_height */ 540 call get_capabilities (video_data_$terminal_iocb); 541 if this_is_an_af then 542 return_string = ltrim (character (ci.screensize.rows)); 543 else call ioa_ ("Terminal Height = ^d rows.", ci.screensize.rows); 544 go to RETURN; 545 546 DO_IT (26): /* get terminal width */ 547 call get_capabilities (video_data_$terminal_iocb); 548 if this_is_an_af then 549 return_string = ltrim (character (ci.screensize.columns)); 550 else call ioa_ ("Terminal Width = ^d columns.", ci.screensize.columns); 551 go to RETURN; 552 553 DO_IT (27): /* Get one (but always block) */ 554 call get_iocb; 555 begin; 556 declare one character (1) varying; 557 558 call window_$get_one_unechoed_char (iocb_ptr, one, "1"b, code); 559 if code ^= 0 then 560 go to CHECK_RETURN; 561 562 if this_is_an_af then 563 return_string = requote_string_ ((one)); 564 else call ioa_ ("Char = ""^a""", one); 565 return; 566 end; 567 568 DO_IT(28): /* supported terminal */ 569 6 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 6 2 6 3 /* Created 5/25/77 by J. Stern */ 6 4 6 5 6 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 6 7 2 version fixed bin, /* version number of this sturcture */ 6 8 2 id char (4) unaligned, /* terminal id from answerback */ 6 9 2 term_type char (32) unaligned, /* terminal type name */ 6 10 2 line_type fixed bin, /* line type number */ 6 11 2 baud_rate fixed bin, 6 12 2 reserved (4) fixed bin; /* reserved for future use */ 6 13 6 14 6 15 dcl terminal_info_ptr ptr; 6 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 6 17 6 18 6 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 570 571 572 dcl 1 ti like terminal_info; 573 574 dcl supported_ttp bit(1); 575 dcl ttp_length fixed binary, 576 ttp_ptr pointer; 577 dcl ttp char (ttp_length) based (ttp_ptr); 578 579 dcl ttt_info_$video_info entry (char(*), fixed bin, ptr, ptr, fixed bin(35)); 580 dcl error_table_$no_table fixed bin(35) ext static; 581 582 dcl uppercase char (26) static options (constant) init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 583 dcl lowercase char (26) static options (constant) init ("abcdefghijklmnopqrstuvwxyz"); 584 585 if irep(C_TERMINAL_TYPE).found then 586 do; /* user gave us a terminal type */ 587 ttp_length = irep(C_TERMINAL_TYPE).length; 588 ttp_ptr = irep(C_TERMINAL_TYPE).ptr; 589 end; 590 else 591 do; /* user didn't give us one, let's get the current type */ 592 ti.version = 1; 593 call iox_$control(iox_$user_io, "terminal_info", addr(ti), code); 594 if code ^= 0 then goto CHECK_RETURN; 595 ttp_length = length(ti.term_type); 596 ttp_ptr = addr(ti.term_type); 597 end; 598 599 ttp = translate(ttp, uppercase, lowercase); /* ttt_info_ is case sensitive */ 600 call ttt_info_$video_info (ttp, (0), null(), null(), code); 601 602 if code ^= 0 & code ^= error_table_$no_table then goto CHECK_RETURN; 603 if code = error_table_$no_table then supported_ttp = "0"b; 604 else supported_ttp = "1"b; 605 606 if this_is_an_af then 607 if supported_ttp then return_string = "true"; else return_string = "false"; 608 else 609 call ioa_ ("The ^a terminal type is ^[not ^]supported by the video system.", ttp, ^supported_ttp); 610 goto RETURN; 611 612 DO_IT(29): /* video invoked? */ 613 614 dcl video_invoked bit(1); 615 616 video_invoked = video_data_$terminal_iocb ^= null(); 617 618 if this_is_an_af then 619 if video_invoked then return_string = "true"; else return_string = "false"; 620 else 621 call ioa_ ("The video system has ^[not ^]been invoked.", ^video_invoked); 622 goto RETURN; 623 624 get_capabilities: 625 procedure (iocb_ptr); 626 627 declare iocb_ptr ptr; 628 629 ci.version = capabilities_info_version_1; 630 call iox_$control (iocb_ptr, "get_capabilities", addr (ci), code); 631 if code ^= 0 then 632 go to CHECK_RETURN; 633 end get_capabilities; 634 635 get: 636 procedure (echo_flag); 637 declare break character (1) varying; 638 declare buffer character (irep (C_COUNT).value); 639 declare echo_flag bit (1) aligned; 640 declare n_read fixed bin (21); 641 642 call get_iocb; 643 644 if echo_flag then 645 call window_$get_echoed_chars (iocb_ptr, length (buffer), buffer, n_read, break, code); 646 else call window_$get_unechoed_chars (iocb_ptr, length (buffer), buffer, n_read, break, code); 647 if code ^= 0 then 648 go to CHECK_RETURN; 649 650 begin; 651 declare read character (n_read) defined (buffer) pos (1); 652 653 if this_is_an_af then 654 return_string = requote_string_ (read) || " " || requote_string_ ((break)); 655 else call ioa_ ("Read = ^a, Break = ^a.", requote_string_ (read), requote_string_ ((break))); 656 end; 657 go to RETURN; 658 end get; 659 660 get_iocb: 661 procedure; 662 663 if ^irep (C_SWITCH).found then 664 iocb_ptr = iox_$user_io; 665 else begin; 666 declare switch_name character (irep (C_SWITCH).length) based (irep (C_SWITCH).ptr); 667 668 call iox_$look_iocb (switch_name, iocb_ptr, code); 669 if code ^= 0 then 670 go to CHECK_RETURN; 671 end; 672 end get_iocb; 673 674 675 declare 1 window_info aligned like window_position_info; 676 677 get_window_info: 678 procedure; 679 680 window_info.version = window_position_info_version_1; 681 call iox_$control (iocb_ptr, "get_window_info", addr (window_info), code); 682 if code ^= 0 then 683 go to CHECK_RETURN; 684 end get_window_info; 685 686 CHECK_RETURN: 687 if code ^= 0 then 688 call ERROR_REPORTER (code, ME, "(^a)", key); 689 go to RETURN; 690 691 ERROR_REPORTER: 692 procedure options (variable, support); 693 694 declare code fixed bin (35) based (code_ptr); 695 declare code_ptr pointer; 696 declare error_table_$undefined_order_request 697 fixed bin (35) ext static; 698 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 699 declare cu_$generate_call entry (entry, ptr); 700 701 call cu_$arg_ptr (1, code_ptr, (0), (0)); /* assume we are called with at least one */ 702 if code = error_table_$undefined_order_request then 703 cu_$arg_list_ptr () -> arg_list.arg_ptrs (1) = addr (video_et_$wsys_not_invoked); 704 call cu_$generate_call (error_reporter, cu_$arg_list_ptr ()); 705 7 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 7 2* 7 3* James R. Davis 10 May 79 */ 7 4 7 5 7 6 7 7 /****^ HISTORY COMMENTS: 7 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 7 9* audit(86-07-15,Schroth): 7 10* added command_name_arglist declaration to allow the storage of the 7 11* command name given to the command processor 7 12* END HISTORY COMMENTS */ 7 13 7 14 dcl 1 arg_list aligned based, 7 15 2 header, 7 16 3 arg_count fixed bin (17) unsigned unal, 7 17 3 pad1 bit (1) unal, 7 18 3 call_type fixed bin (18) unsigned unal, 7 19 3 desc_count fixed bin (17) unsigned unal, 7 20 3 pad2 bit (19) unal, 7 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 7 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 7 23 7 24 7 25 dcl 1 command_name_arglist aligned based, 7 26 2 header, 7 27 3 arg_count fixed bin (17) unsigned unal, 7 28 3 pad1 bit (1) unal, 7 29 3 call_type fixed bin (18) unsigned unal, 7 30 3 desc_count fixed bin (17) unsigned unal, 7 31 3 mbz bit(1) unal, 7 32 3 has_command_name bit(1) unal, 7 33 3 pad2 bit (17) unal, 7 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 7 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 7 36 2 name, 7 37 3 command_name_ptr pointer, 7 38 3 command_name_length fixed bin (21); 7 39 7 40 7 41 7 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 7 43 2 header, 7 44 3 arg_count fixed bin (17) unsigned unal, 7 45 3 pad1 bit (1) unal, 7 46 3 call_type fixed bin (18) unsigned unal, 7 47 3 desc_count fixed bin (17) unsigned unal, 7 48 3 pad2 bit (19) unal, 7 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 7 50 2 envptr ptr, 7 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 7 52 7 53 7 54 dcl ( 7 55 Quick_call_type init (0), 7 56 Interseg_call_type init (4), 7 57 Envptr_supplied_call_type 7 58 init (8) 7 59 ) fixed bin (18) unsigned unal int static options (constant); 7 60 7 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 7 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 7 63* an argument list of the proper size in the user's stack 7 64* 7 65**/ 7 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 706 707 708 end ERROR_REPORTER; 709 710 end; /* The begin block */ 711 RETURN: 712 return; 713 714 8 1 /* Begin include file window_call_info_.incl.pl1 */ 8 2 /* Written by Benson I. Margulies, sometime in 1981 */ 8 3 /* Modified by Chris Jones, 29 October 1981, to add "undocumented" names */ 8 4 /* Modified by Jon A. Rochlis, 14 June 1983, to add C_TERMINAL_TYPE control arg and bumped N_CTL_ARGS to 9 */ 8 5 /* Modified by C. Marker, 6 September 1984, to add C_LINE_SPEED control arg and bumped N_CTL_ARGS to 10 */ 8 6 /* format: style3 */ 8 7 8 8 declare 1 packed_string aligned, 8 9 2 index fixed bin (21), 8 10 2 length fixed bin (21); 8 11 8 12 declare 1 ctl_arg unaligned based, 8 13 2 allowed bit (1) unaligned, 8 14 2 required bit (1) unaligned; 8 15 8 16 declare 1 function aligned based, 8 17 2 args (10 /* N_CTL_ARGS */) unaligned like ctl_arg, 8 18 2 af_allowed bit (1) unaligned, /* just for check */ 8 19 2 usage like packed_string aligned; 8 20 8 21 declare 1 ctl_arg_info aligned based, 8 22 2 name aligned, 8 23 3 long character (16) unaligned, 8 24 3 undocumented_long 8 25 character (16) unaligned, 8 26 3 short character (8) unaligned, 8 27 3 undocumented_short 8 28 character (8) unaligned, 8 29 2 argument fixed bin; 8 30 8 31 declare ( 8 32 A_NONE init (1), 8 33 A_NUMBER init (2), 8 34 A_STRING init (3) 8 35 ) fixed bin internal static options (constant); 8 36 8 37 declare ( 8 38 C_LINE init (1), 8 39 C_COLUMN init (2), 8 40 C_COUNT init (3), 8 41 C_N_LINES init (4), 8 42 C_SWITCH init (5), 8 43 C_SCREEN init (6), 8 44 C_STRING init (7), 8 45 C_N_COLUMNS init (8), 8 46 C_TERMINAL_TYPE init (9), 8 47 C_LINE_SPEED init (10), 8 48 N_CTL_ARGS init (10) 8 49 ) internal static options (constant) fixed bin; 8 50 8 51 declare window_call_data_$n_keys 8 52 fixed bin external static; 8 53 declare window_call_data_$n_ctl_args 8 54 fixed bin external static; 8 55 declare window_call_data_$string_length 8 56 fixed bin (21) external static; 8 57 8 58 declare wcd_string_ptr pointer; 8 59 declare window_call_data_$string 8 60 bit (36) aligned external static; 8 61 8 62 declare window_call_data_string 8 63 character (window_call_data_$string_length) aligned based (wcd_string_ptr); 8 64 8 65 declare wcd_names_ptr pointer; 8 66 declare window_call_data_$names 8 67 bit (36) aligned external static; 8 68 8 69 declare 1 window_call_data_names 8 70 (window_call_data_$n_keys) aligned based (wcd_names_ptr), 8 71 2 long character (32) unaligned, 8 72 2 undocumented_long 8 73 character (32) unaligned, 8 74 2 short character (8) unaligned, 8 75 2 undocumented_short 8 76 character (8) unaligned; 8 77 8 78 declare wcd_functions_ptr pointer; 8 79 declare window_call_data_$functions 8 80 bit (36) aligned external static; 8 81 8 82 declare 1 window_call_data_functions 8 83 (window_call_data_$n_keys) aligned like function based (wcd_functions_ptr); 8 84 8 85 declare wcd_ctl_args_ptr pointer; 8 86 declare window_call_data_$ctl_args 8 87 bit (36) aligned external static; 8 88 8 89 declare 1 window_call_data_ctl_args 8 90 (window_call_data_$n_ctl_args) aligned like ctl_arg_info based (wcd_ctl_args_ptr); 8 91 8 92 /* End include file window_call_info_.incl.pl1 */ 715 716 717 end window_call; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/13/87 1323.4 window_call.pl1 >special_ldd>install>MR12.1-1086>window_call.pl1 103 1 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 104 2 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 105 3 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 106 4 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 536 5 03/27/82 0429.7 terminal_capabilities.incl.pl1 >ldd>include>terminal_capabilities.incl.pl1 570 6 06/29/77 1624.0 terminal_info.incl.pl1 >ldd>include>terminal_info.incl.pl1 706 7 08/05/86 0856.8 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 715 8 12/03/84 1015.1 window_call_info_.incl.pl1 >ldd>include>window_call_info_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. A_NONE constant fixed bin(17,0) initial dcl 8-31 ref 203 A_NUMBER constant fixed bin(17,0) initial dcl 8-31 ref 217 C_COLUMN constant fixed bin(17,0) initial dcl 8-37 ref 275 275 279 281 337 343 449 449 481 496 496 C_COUNT constant fixed bin(17,0) initial dcl 8-37 ref 297 357 368 638 C_LINE constant fixed bin(17,0) initial dcl 8-37 ref 281 337 343 349 349 354 357 441 441 481 485 485 C_LINE_SPEED constant fixed bin(17,0) initial dcl 8-37 ref 399 400 413 C_N_COLUMNS constant fixed bin(17,0) initial dcl 8-37 ref 277 279 281 453 453 481 499 499 C_N_LINES constant fixed bin(17,0) initial dcl 8-37 ref 281 352 354 357 445 445 481 488 488 C_STRING constant fixed bin(17,0) initial dcl 8-37 ref 327 327 327 332 332 332 374 374 374 C_SWITCH constant fixed bin(17,0) initial dcl 8-37 ref 436 436 436 663 668 668 668 C_TERMINAL_TYPE constant fixed bin(17,0) initial dcl 8-37 ref 585 587 588 ME 000053 constant char(32) initial unaligned dcl 69 set ref 115* 117* 139* 150* 158* 178* 197* 208* 224* 227* 243* 391* 402* 409* 686* active_fnc_err_ 000032 constant entry external dcl 72 ref 115 128 158 addr builtin function dcl 100 ref 131 132 133 134 155 414 414 457 457 507 507 593 593 596 630 630 681 681 702 af_allowed 0(20) based bit(1) level 2 packed unaligned dcl 48 ref 157 allowed 000100 automatic bit(1) array level 2 dcl 34 set ref 187 arg 4 000100 automatic structure array level 2 dcl 34 arg_list based structure level 1 dcl 7-14 arg_list_ptr 000100 automatic pointer dcl 28 set ref 30* 111* 136* 172* 215* arg_ptrs 2 based pointer array level 2 dcl 7-14 set ref 702* args based structure array level 2 packed unaligned dcl 48 ref 167 argument 3 000100 automatic fixed bin(17,0) array level 2 in structure "irep" dcl 34 in begin block on line 32 set ref 203 208* 217 argument based char unaligned dcl 54 in begin block on line 32 set ref 138 143 144 144 144 144 150* 177 177 178* 187 187 187 187 197* 206 218* 221 224 224* 227* argument_length 000116 automatic fixed bin(21,0) dcl 53 set ref 136* 138 143 144 144 144 144 150 150 172* 177 177 178 178 187 187 187 187 197 197 206 215* 218 218 221 224 224 224 227 227 233 argument_ptr 000114 automatic pointer dcl 52 set ref 136* 138 143 144 144 144 144 150 172* 177 177 178 187 187 187 187 197 206 215* 218 221 224 224 227 232 argx 000146 automatic fixed bin(17,0) dcl 67 set ref 170* 172* 205* 205 207 215* break 000100 automatic varying char(1) dcl 637 in procedure "get" set ref 644* 646* 653 655 break 000100 automatic varying char(1) dcl 369 in begin block on line 366 set ref 374* 380 382 buffer 000102 automatic char unaligned dcl 638 in procedure "get" set ref 644 644 644* 646 646 646* 653 653 655 655 buffer 000100 automatic char unaligned dcl 368 in begin block on line 366 set ref 374 374 374* 380 380 382 382 c 000220 automatic fixed bin(17,0) dcl 302 set ref 305* 309 311* capabilities_info based structure level 1 dcl 5-3 capabilities_info_version_1 constant fixed bin(17,0) initial dcl 5-17 ref 629 character builtin function dcl 100 ref 138 177 221 309 309 513 522 531 541 548 ci 000147 automatic structure level 1 dcl 537 set ref 630 630 code 000144 automatic fixed bin(35,0) dcl 66 in begin block on line 32 set ref 111* 113 115 121 218* 219 224 227* 264* 269* 281* 287* 292* 297* 305* 306 327* 332* 337* 343* 357* 363* 374* 375 407* 408 409* 414* 415 436* 437 457* 458 467* 468 507* 558* 559 593* 594 600* 602 602 603 630* 631 644* 646* 647 668* 669 681* 682 686 686* code based fixed bin(35,0) dcl 694 in procedure "ERROR_REPORTER" ref 702 code_ptr 000100 automatic pointer dcl 695 set ref 701* 702 column 1 000102 automatic fixed bin(17,0) level 3 in structure "wpi" dcl 433 in begin block on line 430 set ref 449* 451* column 1 000201 automatic fixed bin(17,0) level 3 in structure "window_info" dcl 675 in begin block on line 32 set ref 496* 503 503 columns 1 000147 automatic fixed bin(17,0) level 3 dcl 537 set ref 503 503 548 550* com_err_ 000030 constant entry external dcl 71 ref 117 123 ctl_arg based structure level 1 packed unaligned dcl 8-12 ctl_arg_info based structure level 1 dcl 8-21 ctlx 000145 automatic fixed bin(17,0) dcl 67 set ref 186* 187 187 187 187 187* 200 203 208 217 218 232 233 241* 242 242* cu_$af_return_arg_rel 000036 constant entry external dcl 75 ref 111 cu_$arg_list_ptr 000010 constant entry external dcl 27 ref 30 702 704 704 cu_$arg_ptr 000162 constant entry external dcl 698 ref 701 cu_$arg_ptr_rel 000040 constant entry external dcl 76 ref 136 172 215 cu_$generate_call 000164 constant entry external dcl 699 ref 704 cv_dec_check_ 000042 constant entry external dcl 77 ref 218 echo_flag parameter bit(1) dcl 639 ref 635 644 error_reporter 000134 automatic entry variable dcl 63 set ref 123* 128* 139 704* error_table_$active_function 000064 external static fixed bin(35,0) dcl 85 set ref 158* error_table_$bad_arg 000060 external static fixed bin(35,0) dcl 85 set ref 402* error_table_$bad_conversion 000066 external static fixed bin(35,0) dcl 85 set ref 224* error_table_$badopt 000062 external static fixed bin(35,0) dcl 85 set ref 150* 178* 197* error_table_$no_table 000156 external static fixed bin(35,0) dcl 580 ref 602 603 error_table_$noarg 000056 external static fixed bin(35,0) dcl 85 set ref 139* 208* 243* error_table_$nodescr 000052 external static fixed bin(35,0) dcl 85 ref 113 error_table_$not_act_fnc 000054 external static fixed bin(35,0) dcl 85 ref 121 error_table_$undefined_order_request 000160 external static fixed bin(35,0) dcl 696 ref 702 extent 3 000102 automatic structure level 2 in structure "wpi" dcl 433 in begin block on line 430 extent 3 000201 automatic structure level 2 in structure "window_info" dcl 675 in begin block on line 32 found 2 000100 automatic bit(1) array level 2 dcl 34 set ref 164* 200* 242 275 277 349 352 399 413 441 445 449 453 481 481 481 481 485 488 496 499 585 663 function based structure level 1 dcl 8-16 height 4 000201 automatic fixed bin(17,0) level 3 in structure "window_info" dcl 675 in begin block on line 32 set ref 354 488* 492 492* 522 524* height 4 000102 automatic fixed bin(17,0) level 3 in structure "wpi" dcl 433 in begin block on line 430 set ref 445* 447* index 1 based fixed bin(21,0) level 3 dcl 48 ref 243 243 ioa_ 000044 constant entry external dcl 78 ref 311 382 515 524 533 543 550 564 608 620 655 iocb_ptr 000142 automatic pointer dcl 65 in begin block on line 32 set ref 264* 269* 281* 287* 292* 297* 305* 327* 332* 337* 343* 357* 363* 374* 467* 507* 558* 644* 646* 663* 668* 681* iocb_ptr parameter pointer dcl 627 in procedure "get_capabilities" set ref 624 630* iox_$control 000144 constant entry external dcl 3-8 ref 414 507 593 630 681 iox_$find_iocb 000146 constant entry external dcl 3-8 ref 436 iox_$look_iocb 000150 constant entry external dcl 3-8 ref 668 iox_$user_io 000152 external static pointer dcl 3-41 set ref 593* 663 irep 000100 automatic structure array level 1 dcl 34 set ref 167* 168* key 000100 automatic char(32) unaligned dcl 45 set ref 153* 243* 686* keyx 000110 automatic fixed bin(21,0) dcl 46 set ref 143* 144 144 144 144* 153 155 255 l 000217 automatic fixed bin(17,0) dcl 302 set ref 305* 309 311* length 2 based fixed bin(21,0) level 3 in structure "this_f" dcl 48 in begin block on line 32 ref 243 243 length 6 000100 automatic fixed bin(21,0) array level 3 in structure "irep" dcl 34 in begin block on line 32 set ref 166* 233* 327 327 332 332 374 374 436 436 587 668 668 length builtin function dcl 100 in begin block on line 32 ref 177 224 374 374 595 644 644 646 646 line 2 000201 automatic fixed bin(17,0) level 3 in structure "window_info" dcl 675 in begin block on line 32 set ref 485* 492 492 513 515* line 2 000102 automatic fixed bin(17,0) level 3 in structure "wpi" dcl 433 in begin block on line 430 set ref 441* 443* line_speed 000300 automatic fixed bin(17,0) dcl 397 set ref 400* 401 414 414 long based char(32) array level 2 packed unaligned dcl 8-69 ref 144 153 lowercase 000035 constant char(26) initial unaligned dcl 583 ref 599 ltrim builtin function dcl 100 ref 309 309 513 522 531 541 548 n_arguments 000140 automatic fixed bin(17,0) dcl 64 set ref 111* 113 170 207 n_read 000102 automatic fixed bin(21,0) dcl 640 in procedure "get" set ref 644* 646* 651 n_read 000102 automatic fixed bin(21,0) dcl 370 in begin block on line 366 set ref 374* 379 null builtin function dcl 100 ref 165 389 600 600 600 600 616 one 000222 automatic varying char(1) dcl 556 set ref 558* 562 564* origin 1 000201 automatic structure level 2 in structure "window_info" dcl 675 in begin block on line 32 origin 1 000102 automatic structure level 2 in structure "wpi" dcl 433 in begin block on line 430 packed_string 000102 automatic structure level 1 dcl 8-8 prompt based char unaligned dcl 371 set ref 374* ptr 5 000100 automatic pointer array level 3 packed unaligned dcl 34 set ref 165* 232* 327 332 374 436 588 668 read defined char unaligned dcl 651 in begin block on line 650 set ref 653* 655* read defined char unaligned dcl 379 in begin block on line 378 set ref 380* 382* reason 000100 automatic char(512) unaligned dcl 396 set ref 407* 409* required 1 000100 automatic bit(1) array level 2 dcl 34 set ref 242 requote_string_ 000034 constant entry external dcl 73 ref 380 380 382 382 562 653 653 655 655 return_string based varying char dcl 58 set ref 309* 380* 513* 522* 531* 541* 548* 562* 606* 607* 618* 619* 653* rows 2 000147 automatic fixed bin(17,0) level 3 dcl 537 set ref 492 492 541 543* rs_length 000122 automatic fixed bin(21,0) dcl 57 set ref 111* 309 380 513 522 531 541 548 562 606 607 618 619 653 rs_ptr 000120 automatic pointer dcl 56 set ref 111* 309 380 513 522 531 541 548 562 606 607 618 619 653 save_argument 000123 automatic char(32) unaligned dcl 60 set ref 206* 208* screensize 1 000147 automatic structure level 2 dcl 537 short 20 based char(8) array level 2 packed unaligned dcl 8-69 ref 144 substr builtin function dcl 100 ref 187 187 187 187 243 243 supported_ttp 000174 automatic bit(1) unaligned dcl 574 set ref 603* 604* 606 608 switch_name based char unaligned dcl 666 in begin block on line 665 set ref 668* switch_name based char unaligned dcl 434 in begin block on line 430 set ref 436* term_type 2 000154 automatic char(32) level 2 packed unaligned dcl 572 set ref 595 596 terminal_info based structure level 1 dcl 568 text based char unaligned dcl 324 set ref 327* 332* this_f based structure level 1 dcl 48 this_f_ptr 000112 automatic pointer dcl 49 set ref 155* 157 167 243 243 243 243 this_is_an_af 000133 automatic bit(1) dcl 62 set ref 122* 127* 157 309 380 513 522 531 541 548 562 606 618 653 ti 000154 automatic structure level 1 unaligned dcl 572 set ref 593 593 translate builtin function dcl 100 ref 599 ttp based char unaligned dcl 577 set ref 599* 599 600* 608* ttp_length 000175 automatic fixed bin(17,0) dcl 575 set ref 587* 595* 599 599 600 600 608 608 ttp_ptr 000176 automatic pointer dcl 575 set ref 588* 596* 599 599 600 608 ttt_info_$video_info 000154 constant entry external dcl 579 ref 600 undocumented_long 10 based char(32) array level 2 packed unaligned dcl 8-69 ref 144 undocumented_short 22 based char(8) array level 2 packed unaligned dcl 8-69 ref 144 uppercase 000044 constant char(26) initial unaligned dcl 582 ref 599 usage 1 based structure level 2 dcl 48 value 4 000100 automatic fixed bin(17,0) array level 3 dcl 34 set ref 218* 275* 279* 279 281* 281* 281* 281* 297* 337* 337* 343* 343* 349* 354* 354 357* 357* 357* 368 400 441 445 449 453 485 488 496 499 638 version 000154 automatic fixed bin(17,0) level 2 in structure "ti" dcl 572 in begin block on line 32 set ref 592* version 000102 automatic fixed bin(17,0) level 2 in structure "wpi" dcl 433 in begin block on line 430 set ref 440* version 000201 automatic fixed bin(17,0) level 2 in structure "window_info" dcl 675 in begin block on line 32 set ref 680* version 000147 automatic fixed bin(17,0) level 2 in structure "ci" dcl 537 in begin block on line 32 set ref 629* video_data_$terminal_iocb 000074 external static pointer dcl 97 set ref 389 414* 457* 491* 502* 539* 546* 616 video_et_$wsys_invoked 000070 external static fixed bin(35,0) dcl 85 set ref 391* video_et_$wsys_not_invoked 000072 external static fixed bin(35,0) dcl 85 set ref 702 video_invoked 000200 automatic bit(1) unaligned dcl 612 set ref 616* 618 620 video_utils_$turn_off_login_channel 000050 constant entry external dcl 82 ref 424 video_utils_$turn_on_login_channel 000046 constant entry external dcl 80 ref 407 wcd_ctl_args_ptr 000112 automatic pointer dcl 8-85 set ref 134* 168 187 187 187 187 wcd_functions_ptr 000110 automatic pointer dcl 8-78 set ref 131* 155 wcd_names_ptr 000106 automatic pointer dcl 8-65 set ref 132* 144 144 144 144 153 wcd_string_ptr 000104 automatic pointer dcl 8-58 set ref 133* 243 243 width 3 000102 automatic fixed bin(17,0) level 3 in structure "wpi" dcl 433 in begin block on line 430 set ref 453* 455* width 3 000201 automatic fixed bin(17,0) level 3 in structure "window_info" dcl 675 in begin block on line 32 set ref 279 499* 503 503* 531 533* window_$bell 000076 constant entry external dcl 1-6 ref 269 window_$clear_region 000100 constant entry external dcl 1-7 ref 281 window_$clear_to_end_of_line 000102 constant entry external dcl 1-9 ref 287 window_$clear_to_end_of_window 000104 constant entry external dcl 1-11 ref 292 window_$clear_window 000106 constant entry external dcl 1-13 ref 264 window_$create 000140 constant entry external dcl 1-72 ref 457 window_$delete_chars 000110 constant entry external dcl 1-15 ref 297 window_$destroy 000142 constant entry external dcl 1-74 ref 467 window_$get_cursor_position 000112 constant entry external dcl 1-17 ref 305 window_$get_echoed_chars 000114 constant entry external dcl 1-22 ref 644 window_$get_one_unechoed_char 000136 constant entry external dcl 1-67 ref 558 window_$get_unechoed_chars 000116 constant entry external dcl 1-25 ref 646 window_$insert_text 000120 constant entry external dcl 1-28 ref 327 window_$overwrite_text 000122 constant entry external dcl 1-29 ref 332 window_$position_cursor 000124 constant entry external dcl 1-31 ref 337 window_$position_cursor_rel 000126 constant entry external dcl 1-36 ref 343 window_$scroll_region 000130 constant entry external dcl 1-42 ref 357 window_$sync 000132 constant entry external dcl 1-44 ref 363 window_$write_sync_read 000134 constant entry external dcl 1-53 ref 374 window_call_data_$ctl_args 000026 external static bit(36) dcl 8-86 set ref 134 window_call_data_$functions 000024 external static bit(36) dcl 8-79 set ref 131 window_call_data_$n_ctl_args 000014 external static fixed bin(17,0) dcl 8-53 ref 34 168 186 241 window_call_data_$n_keys 000012 external static fixed bin(17,0) dcl 8-51 ref 143 window_call_data_$names 000022 external static bit(36) dcl 8-66 set ref 132 window_call_data_$string 000020 external static bit(36) dcl 8-59 set ref 133 window_call_data_$string_length 000016 external static fixed bin(21,0) dcl 8-55 ref 243 243 window_call_data_ctl_args based structure array level 1 dcl 8-89 ref 168 window_call_data_functions based structure array level 1 dcl 8-82 set ref 155 window_call_data_names based structure array level 1 dcl 8-69 window_call_data_string based char dcl 8-62 ref 243 243 window_info 000201 automatic structure level 1 dcl 675 set ref 507 507 681 681 window_position_info based structure level 1 unaligned dcl 2-25 window_position_info_version_1 constant fixed bin(17,0) initial dcl 2-35 ref 440 680 wiocbp 000100 automatic pointer dcl 432 set ref 436* 457* wpi 000102 automatic structure level 1 dcl 433 set ref 457 457 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_STRING internal static fixed bin(17,0) initial dcl 8-31 C_SCREEN internal static fixed bin(17,0) initial dcl 8-37 Direct_input internal static fixed bin(17,0) initial dcl 4-15 Direct_output internal static fixed bin(17,0) initial dcl 4-15 Direct_update internal static fixed bin(17,0) initial dcl 4-15 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 7-54 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 7-54 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 4-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 4-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 4-15 N_CTL_ARGS internal static fixed bin(17,0) initial dcl 8-37 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 7-54 Sequential_input internal static fixed bin(17,0) initial dcl 4-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 4-15 Sequential_output internal static fixed bin(17,0) initial dcl 4-15 Sequential_update internal static fixed bin(17,0) initial dcl 4-15 Stream_input internal static fixed bin(17,0) initial dcl 4-15 Stream_input_output internal static fixed bin(17,0) initial dcl 4-15 Stream_output internal static fixed bin(17,0) initial dcl 4-15 arg_list_with_envptr based structure level 1 dcl 7-42 break_table_info based structure level 1 dcl 2-76 break_table_info_version internal static fixed bin(17,0) initial dcl 2-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 2-80 break_table_ptr automatic pointer dcl 2-75 capabilities_info_ptr automatic pointer dcl 5-19 capabilities_info_version internal static fixed bin(17,0) initial dcl 5-17 command_name_arglist based structure level 1 dcl 7-25 get_editor_key_bindings_info based structure level 1 dcl 2-151 get_editor_key_bindings_info_ptr automatic pointer dcl 2-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 2-160 iox_$attach_loud 000000 constant entry external dcl 3-8 iox_$attach_name 000000 constant entry external dcl 3-8 iox_$attach_ptr 000000 constant entry external dcl 3-8 iox_$close 000000 constant entry external dcl 3-8 iox_$close_file 000000 constant entry external dcl 3-8 iox_$delete_record 000000 constant entry external dcl 3-8 iox_$destroy_iocb 000000 constant entry external dcl 3-8 iox_$detach 000000 constant entry external dcl 3-8 iox_$detach_iocb 000000 constant entry external dcl 3-8 iox_$err_no_operation 000000 constant entry external dcl 3-8 iox_$err_not_attached 000000 constant entry external dcl 3-8 iox_$err_not_closed 000000 constant entry external dcl 3-8 iox_$err_not_open 000000 constant entry external dcl 3-8 iox_$error_output external static pointer dcl 3-41 iox_$find_iocb_n 000000 constant entry external dcl 3-8 iox_$get_chars 000000 constant entry external dcl 3-8 iox_$get_line 000000 constant entry external dcl 3-8 iox_$modes 000000 constant entry external dcl 3-8 iox_$move_attach 000000 constant entry external dcl 3-8 iox_$open 000000 constant entry external dcl 3-8 iox_$open_file 000000 constant entry external dcl 3-8 iox_$position 000000 constant entry external dcl 3-8 iox_$propagate 000000 constant entry external dcl 3-8 iox_$put_chars 000000 constant entry external dcl 3-8 iox_$read_key 000000 constant entry external dcl 3-8 iox_$read_length 000000 constant entry external dcl 3-8 iox_$read_record 000000 constant entry external dcl 3-8 iox_$rewrite_record 000000 constant entry external dcl 3-8 iox_$seek_key 000000 constant entry external dcl 3-8 iox_$user_input external static pointer dcl 3-41 iox_$user_output external static pointer dcl 3-41 iox_$write_record 000000 constant entry external dcl 3-8 iox_modes internal static char(24) initial array dcl 4-6 line_editor_binding_count automatic fixed bin(17,0) dcl 2-121 line_editor_key_binding_info based structure level 1 dcl 2-129 line_editor_key_binding_info_ptr automatic pointer dcl 2-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 2-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 2-123 more_handler_info based structure level 1 dcl 2-83 more_handler_info_ptr automatic pointer dcl 2-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 2-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 2-94 more_prompt_info based structure level 1 dcl 2-108 more_prompt_info_ptr automatic pointer dcl 2-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 2-114 more_responses_info based structure level 1 dcl 2-59 more_responses_info_ptr automatic pointer dcl 2-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 2-67 more_responses_version internal static fixed bin(17,0) initial dcl 2-67 set_editor_key_bindings_info based structure level 1 dcl 2-162 set_editor_key_bindings_info_ptr automatic pointer dcl 2-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 2-172 short_iox_modes internal static char(4) initial array dcl 4-12 terminal_info_ptr automatic pointer dcl 6-15 terminal_info_version internal static fixed bin(17,0) initial dcl 6-16 token_characters_info based structure level 1 dcl 2-97 token_characters_info_ptr automatic pointer dcl 2-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 2-106 window_$change_column 000000 constant entry external dcl 1-63 window_$change_line 000000 constant entry external dcl 1-59 window_$edit_line 000000 constant entry external dcl 1-76 window_$get_one_unechoed 000000 constant entry external dcl 1-67 window_$write_raw_text 000000 constant entry external dcl 1-48 window_edit_line_info based structure level 1 unaligned dcl 2-177 window_edit_line_info_ptr automatic pointer dcl 2-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 2-183 window_position_info_ptr automatic pointer dcl 2-37 window_position_info_version internal static fixed bin(17,0) initial dcl 2-35 window_status_info based structure level 1 dcl 2-45 window_status_info_ptr automatic pointer dcl 2-43 window_status_version internal static fixed bin(17,0) initial dcl 2-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 2-52 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_RETURN 004775 constant label dcl 686 ref 265 270 283 288 293 298 306 328 333 338 344 359 364 375 415 437 458 468 508 559 594 602 631 647 669 682 DO_IT 000000 constant label array(29) dcl 262 ref 255 ERROR_REPORTER 005602 constant entry internal dcl 691 ref 150 178 197 208 224 227 243 391 402 409 686 HAVE_CTLX 001407 constant label dcl 200 ref 187 HAVE_KEYX 001002 constant label dcl 153 set ref 144 NOARG 001424 constant label dcl 208 ref 221 RETURN 005667 constant label dcl 711 set ref 118 140 151 159 179 198 212 228 246 312 385 392 403 410 419 426 516 525 534 544 551 610 622 657 689 USAGE 001676 constant label dcl 243 ref 481 get 005074 constant entry internal dcl 635 ref 316 319 get_capabilities 005030 constant entry internal dcl 624 ref 491 502 539 546 get_iocb 005460 constant entry internal dcl 660 ref 262 267 272 285 290 295 304 322 330 335 341 347 361 373 464 472 510 518 527 553 642 get_window_info 005537 constant entry internal dcl 677 ref 278 353 474 512 520 529 main_argument_loop 001170 constant label dcl 170 wdc 000426 constant entry external dcl 23 window_call 000416 constant entry external dcl 23 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6756 7144 6077 6766 Length 7642 6077 166 462 656 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME window_call 80 external procedure is an external procedure. begin block on line 32 362 begin block uses auto adjustable storage. begin block on line 300 begin block shares stack frame of begin block on line 32. begin block on line 366 144 begin block uses auto adjustable storage. begin block on line 378 begin block shares stack frame of begin block on line 366. begin block on line 395 230 begin block is declared options(non_quick). begin block on line 430 90 begin block is declared options(non_quick). begin block on line 555 begin block shares stack frame of begin block on line 32. get_capabilities internal procedure shares stack frame of begin block on line 32. get 140 internal procedure uses auto adjustable storage. begin block on line 650 begin block shares stack frame of internal procedure get. get_iocb 80 internal procedure is called by several nonquick procedures. begin block on line 665 begin block shares stack frame of internal procedure get_iocb. get_window_info internal procedure shares stack frame of begin block on line 32. ERROR_REPORTER 82 internal procedure is called during a stack extension, and is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR_REPORTER 000100 code_ptr ERROR_REPORTER begin block on line 32 000100 irep begin block on line 32 000100 key begin block on line 32 000110 keyx begin block on line 32 000112 this_f_ptr begin block on line 32 000114 argument_ptr begin block on line 32 000116 argument_length begin block on line 32 000120 rs_ptr begin block on line 32 000122 rs_length begin block on line 32 000123 save_argument begin block on line 32 000133 this_is_an_af begin block on line 32 000134 error_reporter begin block on line 32 000140 n_arguments begin block on line 32 000142 iocb_ptr begin block on line 32 000144 code begin block on line 32 000145 ctlx begin block on line 32 000146 argx begin block on line 32 000147 ci begin block on line 32 000154 ti begin block on line 32 000174 supported_ttp begin block on line 32 000175 ttp_length begin block on line 32 000176 ttp_ptr begin block on line 32 000200 video_invoked begin block on line 32 000201 window_info begin block on line 32 000217 l begin block on line 300 000220 c begin block on line 300 000222 one begin block on line 555 begin block on line 366 000100 break begin block on line 366 000100 buffer begin block on line 366 000102 n_read begin block on line 366 begin block on line 395 000100 reason begin block on line 395 000300 line_speed begin block on line 395 begin block on line 430 000100 wiocbp begin block on line 430 000102 wpi begin block on line 430 get 000100 break get 000102 n_read get 000102 buffer get window_call 000100 arg_list_ptr window_call 000102 packed_string window_call 000104 wcd_string_ptr window_call 000106 wcd_names_ptr window_call 000110 wcd_functions_ptr window_call 000112 wcd_ctl_args_ptr window_call THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp cat_realloc_chars enter_begin_block leave_begin_block call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other begin_return_mac return_mac tra_ext_1 alloc_auto_adj bound_ck_signal shorten_stack ext_entry int_entry set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_return_arg_rel cu_$arg_list_ptr cu_$arg_ptr cu_$arg_ptr_rel cu_$generate_call cv_dec_check_ ioa_ iox_$control iox_$find_iocb iox_$look_iocb requote_string_ ttt_info_$video_info video_utils_$turn_off_login_channel video_utils_$turn_on_login_channel window_$bell window_$clear_region window_$clear_to_end_of_line window_$clear_to_end_of_window window_$clear_window window_$create window_$delete_chars window_$destroy window_$get_cursor_position window_$get_echoed_chars window_$get_one_unechoed_char window_$get_unechoed_chars window_$insert_text window_$overwrite_text window_$position_cursor window_$position_cursor_rel window_$scroll_region window_$sync window_$write_sync_read THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$bad_conversion error_table_$badopt error_table_$no_table error_table_$noarg error_table_$nodescr error_table_$not_act_fnc error_table_$undefined_order_request iox_$user_io video_data_$terminal_iocb video_et_$wsys_invoked video_et_$wsys_not_invoked window_call_data_$ctl_args window_call_data_$functions window_call_data_$n_ctl_args window_call_data_$n_keys window_call_data_$names window_call_data_$string window_call_data_$string_length LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000415 30 000434 32 000442 34 000446 208 000454 111 000456 113 000475 115 000503 117 000533 118 000560 121 000563 122 000565 123 000566 124 000572 127 000573 128 000575 131 000601 132 000604 133 000606 134 000610 136 000612 138 000633 139 000644 140 000670 143 000673 144 000711 148 000742 150 000744 151 000777 153 001002 155 001005 157 001013 158 001020 159 001035 164 001040 165 001052 166 001066 167 001100 168 001137 170 001170 172 001177 177 001220 178 001234 179 001267 186 001272 187 001303 193 001350 197 001352 198 001404 200 001407 203 001411 205 001414 206 001415 207 001421 208 001424 212 001462 215 001465 217 001506 218 001513 219 001542 221 001544 224 001555 227 001613 228 001645 230 001650 232 001651 233 001653 236 001655 241 001657 242 001667 243 001676 246 001744 248 001750 255 001752 262 001754 264 001760 265 001771 267 001772 269 001776 270 002007 272 002010 275 002014 277 002024 278 002027 279 002030 281 002041 283 002071 285 002072 287 002076 288 002107 290 002110 292 002114 293 002125 295 002126 297 002132 298 002147 304 002150 305 002154 306 002171 309 002173 311 002300 312 002324 316 002327 319 002337 322 002347 327 002353 328 002403 330 002404 332 002410 333 002440 335 002441 337 002445 338 002466 341 002467 343 002473 344 002514 347 002515 349 002521 352 002531 353 002534 354 002535 357 002546 359 002572 361 002573 363 002577 364 002610 366 002611 368 002615 374 002627 373 002632 374 002637 375 002711 379 002717 380 002721 382 003041 383 003132 384 003133 385 003134 389 003137 391 003144 392 003160 395 003163 399 003167 400 003175 401 003177 402 003200 403 003233 407 003236 408 003253 409 003256 410 003305 413 003310 414 003314 415 003350 419 003356 424 003361 426 003371 430 003374 436 003400 437 003431 440 003437 441 003441 443 003452 445 003454 447 003463 449 003464 451 003473 453 003474 455 003503 457 003504 458 003523 460 003531 464 003533 467 003537 468 003550 470 003552 472 003554 474 003560 481 003561 485 003601 488 003606 491 003614 492 003623 496 003634 499 003643 502 003652 503 003661 507 003672 508 003726 510 003727 512 003733 513 003734 515 003770 516 004013 518 004016 520 004022 522 004023 524 004057 525 004100 527 004103 529 004107 531 004110 533 004144 534 004166 539 004171 541 004200 543 004234 544 004254 546 004257 548 004266 550 004322 551 004342 553 004345 558 004351 559 004370 562 004372 564 004437 565 004461 585 004463 587 004470 588 004472 589 004475 592 004476 593 004500 594 004534 595 004536 596 004540 599 004542 600 004553 602 004612 603 004617 604 004624 606 004626 607 004644 608 004656 610 004707 616 004712 618 004720 619 004736 620 004750 622 004772 686 004775 689 005024 710 005027 624 005030 629 005032 630 005034 631 005070 633 005072 635 005073 638 005102 644 005114 646 005117 642 005122 644 005127 646 005173 647 005232 651 005240 653 005242 655 005362 656 005453 657 005454 660 005457 663 005466 668 005477 669 005530 672 005536 677 005537 680 005540 681 005542 682 005576 684 005600 691 005601 701 005610 702 005630 704 005646 708 005666 711 005667 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved