COMPILATION LISTING OF SEGMENT fc_menu_video Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1933.05_Mon_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* 7* This program is the FORTRAN/COBOL menu displayer, getter of choices, etc. 8**/ 9 /* 10* Written April 1982 by Chris Jones 11* 12* 84-03-12 Davids: Added code to set the mbz field to 0 and the width field 13* to the value of fc_menu_data$user_io_window_info.width in the 14* auto_user_io_info structure. This structure is used to resize the user_io 15* window after the menu window is created. The width of the window was 16* some small random number. I expect that the problem was not noticed 17* before because it is only recently that partial width windows were 18* implemented in the video system. 19* 20* Added code to ckeck fkey_ptr after call to ttt_info_$function_key_data. 21* If pointer is null then the aalternate function key sequences are used. 22* Removed the code that checks for a non-zero error code being returned 23* there is no reason to return with an error code if we can continue with the 24* alternate set. Also added code to check the number of the highest function 25* key on the terminal with the number of the highest function key needed. If 26* the terminal cannot cover the needed key the alternate set of function keys 27* are used. The original code allowed for a subscript out-of-bounds if the 28* application needed more function keys then the terminal had. 29* 30* 84-09-11 Rochlis: changed auto_user_io_info.mbz to be auto_user_io_info.column 31* so this module will compile with the MR11 Video System. 32**/ 33 34 /* format: style4,delnl,insnl,indattr,ifthen,declareind10,dclind10 */ 35 fc_menu_video: 36 proc; 37 38 signal condition (bad_call_); /* not a true entrypoint */ 39 return; 40 41 /* Parameters */ 42 43 dcl p_code fixed bin (35) parameter; /* (Output) status code */ 44 dcl p_fkey fixed bin (35) parameter; /* (Output) non zero if a function key was hit */ 45 dcl p_function_key_info char (*) parameter; /* (Input) substitutes for function keys */ 46 dcl p_menu_id fixed bin (35) parameter; /* (Output) how a menu is identified */ 47 dcl p_menu_needs_array (3) fixed bin parameter; /* (Output) describes size of created menu */ 48 dcl 1 p_menu_needs_struc parameter aligned, /* (Output) ditto, for COBOL programs */ 49 2 lines_needed fixed bin, 50 2 width_needed fixed bin, 51 2 n_options fixed bin; 52 dcl p_selection fixed bin parameter; /* (Output) number of the choice */ 53 dcl p_window_id fixed bin (35) parameter; /* (Input) the windowiocb ptr packed */ 54 55 /* Automatic storage */ 56 57 dcl 1 auto_menu_requirements 58 like menu_requirements; 59 dcl 1 auto_user_io_info like window_position_info; 60 dcl fkey bit (1) aligned; /* set if a function key was hit */ 61 dcl fkey_ptr ptr; /* points to the function key info */ 62 dcl fkey_sequence_length fixed bin; /* length of ersatz function key string */ 63 dcl fkey_sequence_ptr ptr; /* pointer to same */ 64 dcl fortran_entry bit (1) aligned; /* distinguishes which kind of program called us */ 65 dcl fx fixed bin; /* index for function key info */ 66 dcl menu_ptr ptr; /* used in calls to the menu_ subroutines */ 67 dcl window_ptr ptr; /* used in calls to the window_ and menu_ subroutines */ 68 69 /* Based variables */ 70 71 dcl fkey_sequence char (fkey_sequence_length) based (fkey_sequence_ptr); 72 dcl window_array (fc_menu_data_$window_array_size) ptr based (fc_menu_data_$window_array_ptr); 73 /* array of windows we've created */ 74 75 /* Static storage and constants */ 76 77 dcl AUTO_WINDOW_IDX fixed bin init (1) static options (constant); 78 79 dcl LINES_NEEDED fixed bin init (1) static options (constant); 80 dcl WIDTH_NEEDED fixed bin init (2) static options (constant); 81 dcl N_OPTIONS fixed bin init (3) static options (constant); 82 83 /* External entries and variables */ 84 85 dcl error_table_$no_table fixed bin (35) ext static; 86 dcl error_table_$out_of_sequence 87 fixed bin (35) ext static; 88 89 dcl fc_menu_data_$auto_window 90 bit (1) aligned external static; 91 dcl 1 fc_menu_data_$auto_window_info 92 aligned like window_position_info external static; 93 dcl fc_menu_data_$auto_window_iocbp 94 ptr external static; 95 dcl fc_menu_data_$initialized 96 bit (1) aligned external static; 97 dcl 1 fc_menu_data_$user_io_window_info 98 aligned like window_position_info external static; 99 dcl fc_menu_data_$window_array_ptr 100 ptr external static; 101 dcl fc_menu_data_$window_array_size 102 fixed bin external static; 103 104 dcl iox_$user_io ptr ext static; 105 106 dcl video_data_$terminal_iocb 107 ptr external static; 108 109 dcl fc_menu_window$add_to_window_array 110 entry (ptr); 111 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 112 dcl iox_$find_iocb entry (char (*), ptr, fixed bin (35)); 113 dcl ttt_info_$function_key_data 114 entry (char (*), ptr, ptr, fixed bin (35)); 115 dcl unique_chars_ entry (bit (*)) returns (char (15)); 116 dcl window_$clear_window entry (ptr, fixed bin (35)); 117 dcl window_$create entry (ptr, ptr, ptr, fixed bin (35)); 118 119 /* Conditions and builtins */ 120 121 dcl (bad_call_, cleanup) condition; 122 123 dcl (addr, byte, length, null, rtrim, substr) 124 builtin; 125 126 /* Entry which returns information about a menu */ 127 128 fortran_describe: 129 entry (p_menu_id, p_menu_needs_array, p_code); 130 131 fortran_entry = "1"b; 132 goto describe_common; 133 134 cobol_describe: 135 entry (p_menu_id, p_menu_needs_struc, p_code); 136 137 fortran_entry = "0"b; 138 139 describe_common: 140 call must_have_initialized; 141 menu_ptr = unpack_ptr (p_menu_id); 142 auto_menu_requirements.version = menu_requirements_version_1; 143 call menu_$describe (menu_ptr, addr (auto_menu_requirements), p_code); 144 if fortran_entry then do; 145 p_menu_needs_array (LINES_NEEDED) = auto_menu_requirements.lines_needed; 146 p_menu_needs_array (WIDTH_NEEDED) = auto_menu_requirements.width_needed; 147 p_menu_needs_array (N_OPTIONS) = auto_menu_requirements.n_options; 148 end; 149 else do; 150 p_menu_needs_struc.lines_needed = auto_menu_requirements.lines_needed; 151 p_menu_needs_struc.width_needed = auto_menu_requirements.width_needed; 152 p_menu_needs_struc.n_options = auto_menu_requirements.n_options; 153 end; 154 return; 155 156 /* Entry to display a given menu. If the user has specified she wants to have us manage the menu window, 157* make sure it's big enough (creating it if necessary). */ 158 159 display: 160 entry (p_window_id, p_menu_id, p_code); 161 162 call must_have_initialized; 163 menu_ptr = unpack_ptr (p_menu_id); 164 if fc_menu_data_$auto_window then do; /* we manage the menu window */ 165 auto_menu_requirements.version = menu_requirements_version_1; 166 call menu_$describe (menu_ptr, addr (auto_menu_requirements), p_code); 167 /* find out how big a window we need */ 168 if p_code ^= 0 then 169 return; 170 171 /* If we don't have the menu window created yet, create it. */ 172 173 if window_array (AUTO_WINDOW_IDX) = null () then do; 174 call iox_$find_iocb ("fc_menu_." || unique_chars_ (""b), fc_menu_data_$auto_window_iocbp, p_code); 175 if p_code ^= 0 then 176 return; 177 fc_menu_data_$auto_window_info.line = fc_menu_data_$user_io_window_info.line; 178 /* start at the top of the user_i/o window */ 179 fc_menu_data_$auto_window_info.height = 0; 180 call window_$create (video_data_$terminal_iocb, addr (fc_menu_data_$auto_window_info), 181 fc_menu_data_$auto_window_iocbp, p_code); 182 if p_code ^= 0 then 183 return; 184 call fc_menu_window$add_to_window_array (fc_menu_data_$auto_window_iocbp); 185 end; 186 187 /* Ensure the auto window is big enough. */ 188 if auto_menu_requirements.lines_needed > fc_menu_data_$auto_window_info.height then do; 189 fc_menu_data_$auto_window_info.height = auto_menu_requirements.lines_needed; 190 call iox_$control (fc_menu_data_$auto_window_iocbp, "set_window_info", 191 addr (fc_menu_data_$auto_window_info), p_code); 192 if p_code ^= 0 then 193 return; 194 195 /* Shrink the user_i/o window now. */ 196 197 auto_user_io_info.version = window_position_info_version_1; 198 auto_user_io_info.column = 0; 199 auto_user_io_info.line = 200 fc_menu_data_$user_io_window_info.line + fc_menu_data_$auto_window_info.height; 201 auto_user_io_info.width = fc_menu_data_$user_io_window_info.width; 202 auto_user_io_info.height = 203 fc_menu_data_$user_io_window_info.height - fc_menu_data_$auto_window_info.height; 204 call iox_$control (iox_$user_io, "set_window_info", addr (auto_user_io_info), p_code); 205 if p_code ^= 0 then 206 return; 207 call window_$clear_window (iox_$user_io, p_code); 208 if p_code ^= 0 then 209 return; 210 end; 211 window_ptr = fc_menu_data_$auto_window_iocbp; 212 end; 213 else window_ptr = unpack_ptr (p_window_id); 214 215 /* Now, display the menu */ 216 217 call menu_$display (window_ptr, menu_ptr, p_code); 218 return; 219 220 /* Entry to get a choice from a displayed menu. */ 221 222 223 get_choice: 224 entry (p_window_id, p_menu_id, p_function_key_info, p_fkey, p_selection, p_code); 225 226 call must_have_initialized; 227 228 /* See if we have to fake function keys. */ 229 230 if p_function_key_info = "" then 231 fkey_ptr = null (); /* no function keys needed */ 232 else do; /* we've got to check */ 233 fkey_ptr = null (); 234 fkey_sequence_ptr = null (); 235 236 on cleanup call cleanup_get_choice; 237 238 call ttt_info_$function_key_data (get_term_type_name (), null (), fkey_ptr, p_code); 239 240 if fkey_ptr = null () /* if function key data could not be */ 241 then do; /* gotten - don't report error just make it */ 242 fkey_ptr = make_function_key_info (p_function_key_info); 243 goto GOT_FUNCTION_KEY_INFO; 244 end; 245 246 if fkey_ptr -> function_key_data.highest < length (rtrim (p_function_key_info)) - 1 247 then do; /* At least 1 Fkey has an index larger than the terminals's Fkeys */ 248 fkey_ptr = make_function_key_info (p_function_key_info); 249 goto GOT_FUNCTION_KEY_INFO; 250 end; 251 252 /* Loop through the function keys looking for any missing ones */ 253 254 do fx = 0 to length (rtrim (p_function_key_info)) - 1; 255 if (substr (p_function_key_info, fx + 1) ^= " ") 256 & (fkey_ptr -> function_key_data.function_keys.sequence_length (fx, KEY_PLAIN) = 0) then do; 257 /* we're missing one we need */ 258 free fkey_ptr -> function_key_data; 259 fkey_ptr = null (); 260 fkey_ptr = make_function_key_info (p_function_key_info); 261 goto GOT_FUNCTION_KEY_INFO; 262 end; 263 end; 264 end; 265 GOT_FUNCTION_KEY_INFO: 266 menu_ptr = unpack_ptr (p_menu_id); 267 if fc_menu_data_$auto_window then 268 window_ptr = fc_menu_data_$auto_window_iocbp; 269 else window_ptr = unpack_ptr (p_window_id); 270 call iox_$control (iox_$user_io, "reset_more", null (), (0)); 271 call menu_$get_choice (window_ptr, menu_ptr, fkey_ptr, fkey, p_selection, p_code); 272 if fkey then 273 p_fkey = 1; 274 else p_fkey = 0; 275 276 ERROR_RETURN: 277 call cleanup_get_choice; 278 return; 279 280 cleanup_get_choice: 281 proc; 282 283 if fkey_ptr ^= null () then do; 284 free fkey_ptr -> function_key_data; 285 fkey_ptr = null (); 286 end; 287 if fkey_sequence_ptr ^= null () then do; 288 free fkey_sequence; 289 fkey_sequence_ptr = null (); 290 end; 291 292 end cleanup_get_choice; 293 294 unpack_ptr: 295 proc (ptr_as_integer) returns (ptr); 296 297 dcl ptr_as_integer fixed bin (35); 298 299 dcl packed_ptr ptr unal based (addr (ptr_as_integer)); 300 301 return (packed_ptr); 302 303 end unpack_ptr; 304 305 get_term_type_name: 306 procedure () returns (char (32)); 307 declare 1 ti aligned like terminal_info; 308 309 ti.version = terminal_info_version; 310 call iox_$control (iox_$user_io, "terminal_info", addr (ti), p_code); 311 if p_code ^= 0 then 312 goto ERROR_RETURN; 313 return (ti.term_type); 314 315 end get_term_type_name; 316 317 make_function_key_info: 318 procedure (string) returns (pointer); 319 declare string char (*); 320 declare i fixed bin; 321 322 function_key_data_highest = length (rtrim (string)) - 1; 323 allocate function_key_data set (fkey_ptr); 324 fkey_sequence_length = 2 * length (rtrim (string)); 325 allocate fkey_sequence set (fkey_sequence_ptr); 326 fkey_ptr -> function_key_data.version = function_key_data_version_1; 327 fkey_ptr -> function_key_data.highest = function_key_data_highest; 328 fkey_ptr -> function_key_data.sequence.seq_ptr = addr (fkey_sequence); 329 fkey_ptr -> function_key_data.sequence.seq_len = length (fkey_sequence); 330 fkey_ptr -> function_key_data.home.sequence_index (*) = 0; 331 fkey_ptr -> function_key_data.home.sequence_length (*) = 0; 332 fkey_ptr -> function_key_data.left.sequence_index (*) = 0; 333 fkey_ptr -> function_key_data.left.sequence_length (*) = 0; 334 fkey_ptr -> function_key_data.up.sequence_index (*) = 0; 335 fkey_ptr -> function_key_data.up.sequence_length (*) = 0; 336 fkey_ptr -> function_key_data.right.sequence_index (*) = 0; 337 fkey_ptr -> function_key_data.right.sequence_length (*) = 0; 338 fkey_ptr -> function_key_data.down.sequence_index (*) = 0; 339 fkey_ptr -> function_key_data.down.sequence_length (*) = 0; 340 fkey_ptr -> function_key_data.function_keys.sequence_index (*, *) = 0; 341 fkey_ptr -> function_key_data.function_keys.sequence_length (*, *) = 0; 342 do i = 0 to length (rtrim (string)) - 1; 343 if substr (string, i + 1, 1) ^= " " then do; 344 substr (fkey_sequence, i * 2 + 1, 2) = byte (27) || substr (string, i + 1, 1); 345 fkey_ptr -> function_key_data.function_keys.sequence_index (i, KEY_PLAIN) = i * 2 + 1; 346 fkey_ptr -> function_key_data.function_keys.sequence_length (i, KEY_PLAIN) = 2; 347 end; 348 end; 349 350 return (fkey_ptr); 351 352 end make_function_key_info; 353 354 must_have_initialized: 355 proc; 356 357 if ^fc_menu_data_$initialized then 358 goto HAVE_NOT_INITIALIZED; 359 360 end must_have_initialized; 361 362 HAVE_NOT_INITIALIZED: 363 p_code = error_table_$out_of_sequence; 364 return; 365 1 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 1 2* declarations for the menu_ subroutines MTB 493 1 3* James R. Davis 26 Jan 81 to 20 Februrary 81 1 4**/ 1 5 1 6 /* format: off */ 1 7 1 8 dcl menu_$create entry ( 1 9 (*) char (*) varying, /* input: choices */ 1 10 (*) char (*) varying, /* input: headers */ 1 11 (*) char (*) varying, /* input: trailers */ 1 12 pointer, /* input: to format info */ 1 13 (*) char (1) unal, /* input: keys to use */ 1 14 pointer, /* input: to area */ 1 15 pointer, /* input: to needs str. */ 1 16 pointer, /* to menu: output */ 1 17 fixed bin (35) /* code */ 1 18 ); 1 19 1 20 dcl menu_$display entry ( 1 21 pointer, /* window */ 1 22 pointer, /* menu */ 1 23 fixed bin (35) /* code */ 1 24 ); 1 25 1 26 dcl menu_$get_choice entry ( 1 27 pointer, /* window */ 1 28 pointer, /* menu */ 1 29 pointer, /* to function key info */ 1 30 bit (1) aligned, /* function key hi: output */ 1 31 fixed bin, /* output: selection number */ 1 32 fixed bin (35) /* output: code */ 1 33 ); 1 34 1 35 dcl menu_$describe entry ( 1 36 pointer, /* menu */ 1 37 pointer, /* needs */ 1 38 fixed bin (35) /* code */ 1 39 ); 1 40 1 41 dcl menu_$destroy entry ( 1 42 pointer, /* menu */ 1 43 fixed bin (35) /* code */ 1 44 ); 1 45 1 46 dcl menu_$store entry ( 1 47 character (*), 1 48 character (*), 1 49 character (*), 1 50 bit (1) aligned, 1 51 pointer, 1 52 fixed bin (35)); 1 53 1 54 dcl menu_$retrieve entry ( 1 55 character (*), 1 56 character (*), 1 57 character (*), 1 58 pointer, 1 59 pointer, 1 60 fixed bin (35)); 1 61 dcl menu_$delete entry ( 1 62 character (*), 1 63 character (*), 1 64 character (*), 1 65 fixed binary (35)); 1 66 1 67 dcl menu_$list entry ( 1 68 character (*), 1 69 character (*), 1 70 character (*), 1 71 pointer, 1 72 fixed bin, 1 73 pointer, 1 74 fixed bin (35)); 1 75 1 76 dcl 1 menu_format aligned based (menu_format_ptr), 1 77 2 version fixed bin, 1 78 2 constraints, 1 79 3 max_width fixed bin, 1 80 3 max_height fixed bin, 1 81 2 n_columns fixed bin, 1 82 2 flags, 1 83 3 center_headers bit (1) unal, 1 84 3 center_trailers bit (1) unal, 1 85 3 pad bit (34) unal, 1 86 2 pad_char char (1); 1 87 1 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 1 89 2 version fixed bin, 1 90 2 lines_needed fixed bin, 1 91 2 width_needed fixed bin, 1 92 2 n_options fixed bin; 1 93 1 94 dcl menu_format_ptr pointer; 1 95 dcl menu_requirements_ptr pointer; 1 96 1 97 dcl (menu_format_version_1, menu_requirements_version_1) 1 98 fixed bin internal static init (1) options (constant); 1 99 1 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 1 101 options (constant) init 1 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 1 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 1 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 1 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 1 106 1 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 366 367 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 */ 368 369 3 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 3 2* 3 3* This include file defines the structure used for ttt_info_$function_key_data 3 4* MCR 4671 James R. Davis Sept 80 3 5**/ 3 6 3 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 3 8 2 version fixed bin, 3 9 2 highest fixed bin, /* highest fkey */ 3 10 2 sequence, /* string of all seqs. */ 3 11 3 seq_ptr pointer, 3 12 3 seq_len fixed bin (21), 3 13 2 cursor_motion_keys, 3 14 3 home (0:3) like key_info, 3 15 3 left (0:3) like key_info, 3 16 3 up (0:3) like key_info, 3 17 3 right (0:3) like key_info, 3 18 3 down (0:3) like key_info, 3 19 2 function_keys (0:function_key_data_highest refer 3 20 (function_key_data.highest), 0:3) like key_info; 3 21 3 22 dcl (KEY_PLAIN init (0), 3 23 KEY_SHIFT init (1), 3 24 KEY_CTRL init (2), 3 25 KEY_CTRL_AND_SHIFT init (3) 3 26 ) fixed bin internal static options (constant); 3 27 3 28 dcl 1 key_info unaligned based (key_info_ptr), 3 29 2 sequence_index fixed bin (12) unsigned unaligned, 3 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 3 31 3 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 3 33 based (function_key_data.sequence.seq_ptr); 3 34 dcl function_key_data_ptr ptr; 3 35 dcl function_key_data_highest fixed bin; 3 36 dcl function_key_data_version_1 3 37 fixed bin internal static options (constant) init (1); 3 38 dcl key_info_ptr ptr; 3 39 3 40 3 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 370 371 4 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 4 2 4 3 /* Created 5/25/77 by J. Stern */ 4 4 4 5 4 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 4 7 2 version fixed bin, /* version number of this sturcture */ 4 8 2 id char (4) unaligned, /* terminal id from answerback */ 4 9 2 term_type char (32) unaligned, /* terminal type name */ 4 10 2 line_type fixed bin, /* line type number */ 4 11 2 baud_rate fixed bin, 4 12 2 reserved (4) fixed bin; /* reserved for future use */ 4 13 4 14 4 15 dcl terminal_info_ptr ptr; 4 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 4 17 4 18 4 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 372 373 374 end fc_menu_video; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1933.0 fc_menu_video.pl1 >udd>sm>ds>w>ml>fc_menu_video.pl1 366 1 03/27/82 0529.3 menu_dcls.incl.pl1 >ldd>incl>menu_dcls.incl.pl1 368 2 09/12/84 1016.7 window_control_info.incl.pl1 >ldd>incl>window_control_info.incl.pl1 370 3 02/23/81 2246.3 function_key_data.incl.pl1 >ldd>incl>function_key_data.incl.pl1 372 4 06/29/77 1724.0 terminal_info.incl.pl1 >ldd>incl>terminal_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. AUTO_WINDOW_IDX constant fixed bin(17,0) initial dcl 77 ref 173 KEY_PLAIN constant fixed bin(17,0) initial dcl 3-22 ref 255 345 346 LINES_NEEDED constant fixed bin(17,0) initial dcl 79 ref 145 N_OPTIONS constant fixed bin(17,0) initial dcl 81 ref 147 WIDTH_NEEDED constant fixed bin(17,0) initial dcl 80 ref 146 addr builtin function dcl 123 ref 143 143 166 166 180 180 190 190 204 204 301 310 310 328 auto_menu_requirements 000100 automatic structure level 1 unaligned dcl 57 set ref 143 143 166 166 auto_user_io_info 000104 automatic structure level 1 unaligned dcl 59 set ref 204 204 bad_call_ 000126 stack reference condition dcl 121 ref 38 byte builtin function dcl 123 ref 344 cleanup 000134 stack reference condition dcl 121 ref 236 column 1 000104 automatic fixed bin(17,0) level 3 dcl 59 set ref 198* cursor_motion_keys 5 based structure level 2 dcl 3-7 down 25 based structure array level 3 dcl 3-7 error_table_$out_of_sequence 000010 external static fixed bin(35,0) dcl 86 ref 362 extent 3 000014 external static structure level 2 in structure "fc_menu_data_$auto_window_info" dcl 91 in procedure "fc_menu_video" extent 3 000022 external static structure level 2 in structure "fc_menu_data_$user_io_window_info" dcl 97 in procedure "fc_menu_video" extent 3 000104 automatic structure level 2 in structure "auto_user_io_info" unaligned dcl 59 in procedure "fc_menu_video" fc_menu_data_$auto_window 000012 external static bit(1) dcl 89 ref 164 267 fc_menu_data_$auto_window_info 000014 external static structure level 1 dcl 91 set ref 180 180 190 190 fc_menu_data_$auto_window_iocbp 000016 external static pointer dcl 93 set ref 174* 180* 184* 190* 211 267 fc_menu_data_$initialized 000020 external static bit(1) dcl 95 ref 357 fc_menu_data_$user_io_window_info 000022 external static structure level 1 dcl 97 fc_menu_data_$window_array_ptr 000024 external static pointer dcl 99 ref 173 fc_menu_window$add_to_window_array 000032 constant entry external dcl 109 ref 184 fkey 000111 automatic bit(1) dcl 60 set ref 271* 272 fkey_ptr 000112 automatic pointer dcl 61 set ref 230* 233* 238* 240 242* 246 248* 255 258 259* 260* 271* 283 284 285* 323* 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 345 346 350 fkey_sequence based char packed unaligned dcl 71 set ref 288 325 328 329 344* fkey_sequence_length 000114 automatic fixed bin(17,0) dcl 62 set ref 288 288 324* 325 325 328 329 344 fkey_sequence_ptr 000116 automatic pointer dcl 63 set ref 234* 287 288 289* 325* 328 329 344 fortran_entry 000120 automatic bit(1) dcl 64 set ref 131* 137* 144 function_key_data based structure level 1 dcl 3-7 set ref 258 284 323 function_key_data_highest 000142 automatic fixed bin(17,0) dcl 3-35 set ref 322* 323 323 327 function_key_data_version_1 constant fixed bin(17,0) initial dcl 3-36 ref 326 function_keys 31 based structure array level 2 dcl 3-7 fx 000121 automatic fixed bin(17,0) dcl 65 set ref 254* 255 255* height 4 000014 external static fixed bin(17,0) level 3 in structure "fc_menu_data_$auto_window_info" dcl 91 in procedure "fc_menu_video" set ref 179* 188 189* 199 202 height 4 000104 automatic fixed bin(17,0) level 3 in structure "auto_user_io_info" dcl 59 in procedure "fc_menu_video" set ref 202* height 4 000022 external static fixed bin(17,0) level 3 in structure "fc_menu_data_$user_io_window_info" dcl 97 in procedure "fc_menu_video" ref 202 highest 1 based fixed bin(17,0) level 2 dcl 3-7 set ref 246 258 284 323* 327* 340 341 home 5 based structure array level 3 dcl 3-7 i 000214 automatic fixed bin(17,0) dcl 320 set ref 342* 343 344 344 345 345 346* iox_$control 000034 constant entry external dcl 111 ref 190 204 270 310 iox_$find_iocb 000036 constant entry external dcl 112 ref 174 iox_$user_io 000026 external static pointer dcl 104 set ref 204* 207* 270* 310* key_info based structure level 1 packed packed unaligned dcl 3-28 left 11 based structure array level 3 dcl 3-7 length builtin function dcl 123 ref 246 254 322 324 329 342 line 2 000014 external static fixed bin(17,0) level 3 in structure "fc_menu_data_$auto_window_info" dcl 91 in procedure "fc_menu_video" set ref 177* line 2 000104 automatic fixed bin(17,0) level 3 in structure "auto_user_io_info" dcl 59 in procedure "fc_menu_video" set ref 199* line 2 000022 external static fixed bin(17,0) level 3 in structure "fc_menu_data_$user_io_window_info" dcl 97 in procedure "fc_menu_video" ref 177 199 lines_needed parameter fixed bin(17,0) level 2 in structure "p_menu_needs_struc" dcl 48 in procedure "fc_menu_video" set ref 150* lines_needed 1 000100 automatic fixed bin(17,0) level 2 in structure "auto_menu_requirements" dcl 57 in procedure "fc_menu_video" set ref 145 150 188 189 menu_$describe 000054 constant entry external dcl 1-35 ref 143 166 menu_$display 000050 constant entry external dcl 1-20 ref 217 menu_$get_choice 000052 constant entry external dcl 1-26 ref 271 menu_ptr 000122 automatic pointer dcl 66 set ref 141* 143* 163* 166* 217* 265* 271* menu_requirements based structure level 1 dcl 1-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 1-97 ref 142 165 n_options 2 parameter fixed bin(17,0) level 2 in structure "p_menu_needs_struc" dcl 48 in procedure "fc_menu_video" set ref 152* n_options 3 000100 automatic fixed bin(17,0) level 2 in structure "auto_menu_requirements" dcl 57 in procedure "fc_menu_video" set ref 147 152 null builtin function dcl 123 ref 173 230 233 234 238 238 240 259 270 270 283 285 287 289 origin 1 000104 automatic structure level 2 in structure "auto_user_io_info" unaligned dcl 59 in procedure "fc_menu_video" origin 1 000014 external static structure level 2 in structure "fc_menu_data_$auto_window_info" dcl 91 in procedure "fc_menu_video" origin 1 000022 external static structure level 2 in structure "fc_menu_data_$user_io_window_info" dcl 97 in procedure "fc_menu_video" p_code parameter fixed bin(35,0) dcl 43 set ref 128 134 143* 159 166* 168 174* 175 180* 182 190* 192 204* 205 207* 208 217* 223 238* 271* 310* 311 362* p_fkey parameter fixed bin(35,0) dcl 44 set ref 223 272* 274* p_function_key_info parameter char packed unaligned dcl 45 set ref 223 230 242* 246 248* 254 255 260* p_menu_id parameter fixed bin(35,0) dcl 46 set ref 128 134 141* 159 163* 223 265* p_menu_needs_array parameter fixed bin(17,0) array dcl 47 set ref 128 145* 146* 147* p_menu_needs_struc parameter structure level 1 dcl 48 set ref 134 p_selection parameter fixed bin(17,0) dcl 52 set ref 223 271* p_window_id parameter fixed bin(35,0) dcl 53 set ref 159 213* 223 269* packed_ptr based pointer packed unaligned dcl 299 ref 301 ptr_as_integer parameter fixed bin(35,0) dcl 297 set ref 294 301 right 21 based structure array level 3 dcl 3-7 rtrim builtin function dcl 123 ref 246 254 322 324 342 seq_len 4 based fixed bin(21,0) level 3 dcl 3-7 set ref 329* seq_ptr 2 based pointer level 3 dcl 3-7 set ref 328* sequence 2 based structure level 2 dcl 3-7 sequence_index 11 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 332* sequence_index 15 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 334* sequence_index 31 based fixed bin(12,0) array level 3 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 340* 345* sequence_index 25 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 338* sequence_index 21 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 336* sequence_index 5 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 330* sequence_length 11(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 333* sequence_length 25(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 339* sequence_length 15(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 335* sequence_length 31(12) based fixed bin(6,0) array level 3 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 255 341* 346* sequence_length 21(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 337* sequence_length 5(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 3-7 in procedure "fc_menu_video" set ref 331* string parameter char packed unaligned dcl 319 ref 317 322 324 342 343 344 substr builtin function dcl 123 set ref 255 343 344* 344 term_type 2 000166 automatic char(32) level 2 packed packed unaligned dcl 307 set ref 313 terminal_info based structure level 1 dcl 4-6 terminal_info_version constant fixed bin(17,0) initial dcl 4-16 ref 309 ti 000166 automatic structure level 1 dcl 307 set ref 310 310 ttt_info_$function_key_data 000040 constant entry external dcl 113 ref 238 unique_chars_ 000042 constant entry external dcl 115 ref 174 up 15 based structure array level 3 dcl 3-7 version 000166 automatic fixed bin(17,0) level 2 in structure "ti" dcl 307 in procedure "get_term_type_name" set ref 309* version 000104 automatic fixed bin(17,0) level 2 in structure "auto_user_io_info" dcl 59 in procedure "fc_menu_video" set ref 197* version based fixed bin(17,0) level 2 in structure "function_key_data" dcl 3-7 in procedure "fc_menu_video" set ref 326* version 000100 automatic fixed bin(17,0) level 2 in structure "auto_menu_requirements" dcl 57 in procedure "fc_menu_video" set ref 142* 165* video_data_$terminal_iocb 000030 external static pointer dcl 106 set ref 180* width 3 000104 automatic fixed bin(17,0) level 3 in structure "auto_user_io_info" dcl 59 in procedure "fc_menu_video" set ref 201* width 3 000022 external static fixed bin(17,0) level 3 in structure "fc_menu_data_$user_io_window_info" dcl 97 in procedure "fc_menu_video" ref 201 width_needed 2 000100 automatic fixed bin(17,0) level 2 in structure "auto_menu_requirements" dcl 57 in procedure "fc_menu_video" set ref 146 151 width_needed 1 parameter fixed bin(17,0) level 2 in structure "p_menu_needs_struc" dcl 48 in procedure "fc_menu_video" set ref 151* window_$clear_window 000044 constant entry external dcl 116 ref 207 window_$create 000046 constant entry external dcl 117 ref 180 window_array based pointer array dcl 72 ref 173 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 197 window_ptr 000124 automatic pointer dcl 67 set ref 211* 213* 217* 267* 269* 271* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. KEY_CTRL internal static fixed bin(17,0) initial dcl 3-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 3-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 3-22 MENU_OPTION_KEYS internal static char(1) initial array packed unaligned dcl 1-100 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 error_table_$no_table external static fixed bin(35,0) dcl 85 fc_menu_data_$window_array_size external static fixed bin(17,0) dcl 101 function_key_data_ptr automatic pointer dcl 3-34 function_key_seqs based char packed unaligned dcl 3-32 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 packed unaligned dcl 2-160 key_info_ptr automatic pointer dcl 3-38 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 packed unaligned dcl 2-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 2-123 menu_$create 000000 constant entry external dcl 1-8 menu_$delete 000000 constant entry external dcl 1-61 menu_$destroy 000000 constant entry external dcl 1-41 menu_$list 000000 constant entry external dcl 1-67 menu_$retrieve 000000 constant entry external dcl 1-54 menu_$store 000000 constant entry external dcl 1-46 menu_format based structure level 1 dcl 1-76 menu_format_ptr automatic pointer dcl 1-94 menu_format_version_1 internal static fixed bin(17,0) initial dcl 1-97 menu_requirements_ptr automatic pointer dcl 1-95 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 packed 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 packed unaligned dcl 2-172 terminal_info_ptr automatic pointer dcl 4-15 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 packed unaligned dcl 2-106 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 packed 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. ERROR_RETURN 001152 constant label dcl 276 ref 311 GOT_FUNCTION_KEY_INFO 001034 constant label dcl 265 ref 243 249 261 HAVE_NOT_INITIALIZED 001157 constant label dcl 362 ref 357 cleanup_get_choice 001164 constant entry internal dcl 280 ref 236 276 cobol_describe 000110 constant entry external dcl 134 describe_common 000123 constant label dcl 139 ref 132 display 000206 constant entry external dcl 159 fc_menu_video 000052 constant entry external dcl 35 fortran_describe 000067 constant entry external dcl 128 get_choice 000557 constant entry external dcl 223 get_term_type_name 001232 constant entry internal dcl 305 ref 238 238 make_function_key_info 001302 constant entry internal dcl 317 ref 242 248 260 must_have_initialized 001745 constant entry internal dcl 354 ref 139 162 226 unpack_ptr 001225 constant entry internal dcl 294 ref 141 163 213 265 269 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2276 2354 1757 2306 Length 2656 1757 56 266 316 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fc_menu_video 233 external procedure is an external procedure. on unit on line 236 64 on unit cleanup_get_choice 64 internal procedure is called by several nonquick procedures. unpack_ptr internal procedure shares stack frame of external procedure fc_menu_video. get_term_type_name internal procedure shares stack frame of external procedure fc_menu_video. make_function_key_info internal procedure shares stack frame of external procedure fc_menu_video. must_have_initialized internal procedure shares stack frame of external procedure fc_menu_video. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fc_menu_video 000100 auto_menu_requirements fc_menu_video 000104 auto_user_io_info fc_menu_video 000111 fkey fc_menu_video 000112 fkey_ptr fc_menu_video 000114 fkey_sequence_length fc_menu_video 000116 fkey_sequence_ptr fc_menu_video 000120 fortran_entry fc_menu_video 000121 fx fc_menu_video 000122 menu_ptr fc_menu_video 000124 window_ptr fc_menu_video 000142 function_key_data_highest fc_menu_video 000166 ti get_term_type_name 000214 i make_function_key_info THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac signal_op enable_op ext_entry ext_entry_desc int_entry alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. fc_menu_window$add_to_window_array iox_$control iox_$find_iocb menu_$describe menu_$display menu_$get_choice ttt_info_$function_key_data unique_chars_ window_$clear_window window_$create THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$out_of_sequence fc_menu_data_$auto_window fc_menu_data_$auto_window_info fc_menu_data_$auto_window_iocbp fc_menu_data_$initialized fc_menu_data_$user_io_window_info fc_menu_data_$window_array_ptr iox_$user_io video_data_$terminal_iocb LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000051 38 000057 39 000062 128 000063 131 000101 132 000103 134 000104 137 000122 139 000123 141 000124 142 000134 143 000136 144 000153 145 000155 146 000162 147 000165 148 000170 150 000171 151 000174 152 000177 154 000201 159 000202 162 000220 163 000221 164 000231 165 000234 166 000236 168 000252 173 000254 174 000264 175 000327 177 000331 179 000336 180 000337 182 000355 184 000357 188 000366 189 000373 190 000374 192 000427 197 000431 198 000433 199 000434 201 000442 202 000444 204 000447 205 000502 207 000504 208 000515 211 000517 212 000523 213 000524 217 000535 218 000550 223 000551 226 000577 230 000600 233 000612 234 000614 236 000615 238 000637 240 000667 242 000673 243 000711 246 000712 248 000733 249 000750 254 000751 255 000761 258 001003 259 001011 260 001013 261 001031 263 001032 265 001034 267 001044 269 001053 270 001064 271 001117 272 001141 274 001150 276 001152 278 001156 362 001157 364 001162 280 001163 283 001171 284 001176 285 001205 287 001210 288 001214 289 001221 292 001224 294 001225 301 001227 305 001232 309 001234 310 001236 311 001272 313 001274 317 001302 322 001313 323 001330 324 001341 325 001357 326 001365 327 001367 328 001372 329 001373 330 001376 331 001411 332 001426 333 001441 334 001456 335 001471 336 001506 337 001521 338 001536 339 001551 340 001566 341 001621 342 001651 343 001673 344 001701 345 001723 346 001734 348 001737 350 001741 354 001745 357 001746 360 001751 ----------------------------------------------------------- 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