COMPILATION LISTING OF SEGMENT tut_giving_commands_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/13/88 1318.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* Written by J. Siwila 3/30/83 */ 8 9 /* This procedure sets up and displays the menu in the Tutorial dealing with 10* commands. */ 11 12 /* format: style2 */ 13 tut_giving_commands_: 14 proc (menu_io, user_io_window_info, function_key_data_ptr, fkey, choice, last1, Phelp_args, pseudo, code); 15 16 /* Automatic */ 17 18 dcl change_origin bit (1) aligned; 19 dcl choice fixed bin; 20 dcl choices (10) char (30) var; 21 dcl code fixed bin (35); 22 dcl init_display bit (1) aligned init ("0"b); 23 dcl fkey bit (1) aligned; 24 dcl headers (1) char (30) var; 25 dcl menu_io ptr; 26 dcl menu_ptr ptr; 27 dcl my_area area (4095); 28 dcl 1 my_menu_format like menu_format; 29 dcl 1 my_menu_requirements like menu_requirements; 30 dcl 1 true_window_info like window_position_info; 31 dcl new_io_height fixed bin; 32 dcl seg_name char (21) init ("tut_giving_commands_0"); 33 dcl seg_name_1 char (16) init ("tut_command_line"); 34 dcl seg_name_2 char (13) init ("tut_pathnames"); 35 dcl seg_name_3 char (21) init ("tut_control_arguments"); 36 dcl seg_name_4 char (21) init ("tut_multiple_commands"); 37 dcl seg_name_5 char (12) init ("tut_sh_names"); 38 dcl seg_name_6 char (17) init ("tut_abbreviations"); 39 dcl seg_name_7 char (11) init ("tut_erasing"); 40 dcl seg_name_8 char (16) init ("tut_interrupting"); 41 dcl seg_name_9 char (14) init ("tut_error_msgs"); 42 dcl trailers (2) char (40) var; 43 dcl 1 user_io_window_info like window_position_info; 44 dcl ME_COMMANDS char (20) init ("tut_giving_commands_"); 45 dcl last1 fixed bin; 46 dcl pseudo bit (1) aligned; 47 48 /* Builtin */ 49 50 dcl (null, empty, addr) builtin; 51 52 /* Condition */ 53 54 dcl (program_interrupt, any_other) 55 condition; 56 57 /* Entries */ 58 59 dcl cu_$cl entry () options (variable); 60 dcl tut_get_seg_ entry () options (variable); 61 dcl tut_quit_ entry () options (variable); 62 dcl tut_bottom_ entry () options (variable); 63 dcl tut_window_ entry () options (variable); 64 65 /* External */ 66 67 dcl video_data_$terminal_iocb 68 ptr external; 69 70 71 /* Create the menu */ 72 73 choices (1) = "A Command Line"; 74 choices (2) = "Pathnames"; 75 choices (3) = "Control Arguments"; 76 choices (4) = "Multiple Commands"; 77 choices (5) = "Short Names"; 78 choices (6) = "Abbreviations"; 79 choices (7) = "Changing the Command Line"; 80 choices (8) = "Interrupting Commands"; 81 choices (9) = "Error Messages"; 82 choices (10) = "Return to First Menu"; 83 84 headers (1) = "<<>>"; 85 if pseudo 86 then trailers (1) = "Use ESC q to Exit"; 87 else trailers (1) = "Use Function Key F4 to Exit"; 88 trailers (2) = "-"; 89 90 my_menu_format.version = menu_format_version_1; 91 my_menu_format.max_width = user_io_window_info.extent.width; 92 my_menu_format.max_height = 8; 93 my_menu_format.n_columns = 2; 94 my_menu_format.center_headers = "1"b; 95 my_menu_format.center_trailers = "1"b; 96 my_menu_format.pad = "0"b; 97 my_menu_format.pad_char = "-"; 98 99 my_menu_requirements = menu_requirements_version_1; 100 101 /* Now carve the menu I/O window out of the user_i/o window. */ 102 103 change_origin = "0"b; 104 call tut_window_ (menu_io, true_window_info, my_menu_format.max_height, change_origin, code); 105 if code ^= 0 106 then return; 107 new_io_height = user_io_window_info.height - my_menu_format.max_height; 108 START: 109 change_origin = "1"b; 110 call tut_window_ (iox_$user_io, true_window_info, new_io_height, change_origin, code); 111 if code ^= 0 112 then return; 113 114 call menu_$create (choices, headers, trailers, addr (my_menu_format), MENU_OPTION_KEYS, addr (my_area), 115 addr (my_menu_requirements), menu_ptr, code); 116 if code ^= 0 117 then do; 118 call tut_quit_ (code, ME_COMMANDS, "Unable to create menu.", menu_io, user_io_window_info); 119 return; 120 end; 121 122 /* Display menus */ 123 124 125 call menu_$display (menu_io, menu_ptr, code); 126 if code ^= 0 127 then do; 128 call tut_quit_ (code, ME_COMMANDS, "Unable to display menu.", menu_io, user_io_window_info); 129 return; 130 end; 131 132 if init_display 133 then goto NEXT; 134 else do; 135 init_display = "1"b; 136 call tut_get_seg_ (seg_name, menu_io, user_io_window_info, code); 137 if code ^= 0 138 then return; 139 end; 140 141 NEXT: 142 on condition (program_interrupt) go to START; 143 144 /* Now start processing input from user */ 145 146 do while ("1"b); 147 148 /* Get an option number or function key value from user. */ 149 150 code = 0; 151 call iox_$control (iox_$user_io, "reset_more", null (), code); 152 call menu_$get_choice (menu_io, menu_ptr, function_key_data_ptr, fkey, choice, code); 153 154 /* Perform an action depending on the user's selection. */ 155 156 if code ^= 0 157 then do; 158 call tut_quit_ (code, ME_COMMANDS, "Unable to get choice.", menu_io, user_io_window_info); 159 return; 160 end; 161 if fkey 162 then if choice = 1 163 then do; 164 call tut_bottom_ (true_window_info, new_io_height, my_menu_format.max_height, Phelp_args, 165 code); 166 if code ^= 0 167 then return; 168 end; 169 else if choice = 2 170 then do; 171 call tut_cl (); 172 if code ^= 0 173 then return; 174 end; 175 else if choice = 3 176 then do; 177 last1 = 2; 178 return; 179 end; 180 else if choice = 4 181 then return; 182 else call window_$bell (menu_io, (0)); 183 184 else do; 185 if choice = 1 186 then do; 187 call command_line (); 188 if code ^= 0 189 then return; 190 end; 191 else if choice = 2 192 then do; 193 call pathnames (); 194 if code ^= 0 195 then return; 196 end; 197 else if choice = 3 198 then do; 199 call control_args (); 200 if code ^= 0 201 then return; 202 end; 203 else if choice = 4 204 then do; 205 call multiple (); 206 if code ^= 0 207 then return; 208 end; 209 else if choice = 5 210 then do; 211 call short (); 212 if code ^= 0 213 then return; 214 end; 215 else if choice = 6 216 then do; 217 call abbrevs (); 218 if code ^= 0 219 then return; 220 end; 221 else if choice = 7 222 then do; 223 call erasing (); 224 if code ^= 0 225 then return; 226 end; 227 else if choice = 8 228 then do; 229 call interrupting (); 230 if code ^= 0 231 then return; 232 end; 233 else if choice = 9 234 then do; 235 call error (); 236 if code ^= 0 237 then return; 238 end; 239 else if choice = 10 240 then do; 241 last1 = 2; 242 return; 243 end; 244 else call window_$bell (menu_io, (0)); 245 end; 246 end; 247 248 /* Procedures for options. */ 249 250 command_line: 251 proc (); 252 253 call tut_get_seg_ (seg_name_1, menu_io, user_io_window_info, code); 254 return; 255 256 end command_line; 257 258 pathnames: 259 proc (); 260 261 call tut_get_seg_ (seg_name_2, menu_io, user_io_window_info, code); 262 return; 263 264 end pathnames; 265 266 control_args: 267 proc (); 268 269 call tut_get_seg_ (seg_name_3, menu_io, user_io_window_info, code); 270 return; 271 272 end control_args; 273 274 multiple: 275 proc (); 276 277 call tut_get_seg_ (seg_name_4, menu_io, user_io_window_info, code); 278 return; 279 280 end multiple; 281 282 short: 283 proc (); 284 285 call tut_get_seg_ (seg_name_5, menu_io, user_io_window_info, code); 286 return; 287 288 end short; 289 290 abbrevs: 291 proc (); 292 293 call tut_get_seg_ (seg_name_6, menu_io, user_io_window_info, code); 294 return; 295 296 end abbrevs; 297 298 erasing: 299 proc (); 300 301 call tut_get_seg_ (seg_name_7, menu_io, user_io_window_info, code); 302 return; 303 304 end erasing; 305 306 interrupting: 307 proc (); 308 309 call tut_get_seg_ (seg_name_8, menu_io, user_io_window_info, code); 310 return; 311 312 end interrupting; 313 314 error: 315 proc (); 316 317 call tut_get_seg_ (seg_name_9, menu_io, user_io_window_info, code); 318 return; 319 320 end error; 321 322 tut_cl: 323 proc (); 324 325 on any_other system; 326 call window_$clear_window (iox_$user_io, code); 327 if code ^= 0 328 then do; 329 call tut_quit_ (code, ME_COMMANDS, "Unable to clear window.", menu_io, user_io_window_info); 330 return; 331 end; 332 trailers (1) = "Type ""pi"" and RETURN to reenter tutorial"; 333 call menu_$create (choices, headers, trailers, addr (my_menu_format), MENU_OPTION_KEYS, addr (my_area), 334 addr (my_menu_requirements), menu_ptr, code); 335 if code ^= 0 336 then do; 337 call tut_quit_ (code, ME_COMMANDS, "Unable to create menu.", menu_io, user_io_window_info); 338 return; 339 end; 340 call menu_$display (menu_io, menu_ptr, code); 341 if code ^= 0 342 then do; 343 call tut_quit_ (code, ME_COMMANDS, "Unable to display menu", menu_io, user_io_window_info); 344 return; 345 end; 346 if pseudo 347 then trailers (1) = "Use ESC q to Exit"; 348 else trailers (1) = "Use Function Key F4 to Exit"; 349 call cu_$cl; 350 351 end tut_cl; 352 1 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 1 2* 1 3* This include file defines the structure used for ttt_info_$function_key_data 1 4* MCR 4671 James R. Davis Sept 80 1 5**/ 1 6 1 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 1 8 2 version fixed bin, 1 9 2 highest fixed bin, /* highest fkey */ 1 10 2 sequence, /* string of all seqs. */ 1 11 3 seq_ptr pointer, 1 12 3 seq_len fixed bin (21), 1 13 2 cursor_motion_keys, 1 14 3 home (0:3) like key_info, 1 15 3 left (0:3) like key_info, 1 16 3 up (0:3) like key_info, 1 17 3 right (0:3) like key_info, 1 18 3 down (0:3) like key_info, 1 19 2 function_keys (0:function_key_data_highest refer 1 20 (function_key_data.highest), 0:3) like key_info; 1 21 1 22 dcl (KEY_PLAIN init (0), 1 23 KEY_SHIFT init (1), 1 24 KEY_CTRL init (2), 1 25 KEY_CTRL_AND_SHIFT init (3) 1 26 ) fixed bin internal static options (constant); 1 27 1 28 dcl 1 key_info unaligned based (key_info_ptr), 1 29 2 sequence_index fixed bin (12) unsigned unaligned, 1 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 1 31 1 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 1 33 based (function_key_data.sequence.seq_ptr); 1 34 dcl function_key_data_ptr ptr; 1 35 dcl function_key_data_highest fixed bin; 1 36 dcl function_key_data_version_1 1 37 fixed bin internal static options (constant) init (1); 1 38 dcl key_info_ptr ptr; 1 39 1 40 1 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 353 354 2 1 /* BEGIN: help_args_.incl.pl1 * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* Name: help_args_.incl.pl1 */ 2 6 /* */ 2 7 /* This include file declares the structure used by the help command and other subsystems */ 2 8 /* to pass info segment selection and printing control information to the help_ */ 2 9 /* subroutine. This based structure is NEVER allocated. Instead, the caller of help_ */ 2 10 /* must call help_$init to get a pointer to a temporary segment which is used for */ 2 11 /* storage for the structure. The structure contains 5 arrays with refer extents, */ 2 12 /* allowing complete freedom in the numbers of selection values given. Typically, the */ 2 13 /* caller fills in the arrays at the top of the structure first, growing the arrays */ 2 14 /* as each new element is added. After each array is filled, the caller begins filling */ 2 15 /* in the next array. Note that, on return from help_$init, all of the arrays have 0 */ 2 16 /* extents, except that the search_dirs array contains the list of directories to be */ 2 17 /* searched in to find info segments, as defined by the search facility. The caller */ 2 18 /* may of course change or replace these search directories. */ 2 19 /* */ 2 20 /* A legend describing the variable naming convention follows. */ 2 21 /* */ 2 22 /* STARTING LETTER STANDS FOR */ 2 23 /* P pointer to */ 2 24 /* L length of */ 2 25 /* D descriptor of */ 2 26 /* S switch */ 2 27 /* V version */ 2 28 /* */ 2 29 /* Status */ 2 30 /* */ 2 31 /* 0) Created: October, 1978 by Gary Dixon */ 2 32 /* 1) Modified: June 4, 1983 by Gary Dixon - add Sctl.inhibit_errors flag. */ 2 33 /* 2) Modified: April, 1985 by L.Adams - use Vhelp_args_2. */ 2 34 /* */ 2 35 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 36 2 37 /****^ HISTORY COMMENTS: 2 38* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 2 39* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 2 40* Declares structure used by the help command and other subsystems to pass 2 41* info segment selection and printing control information the help_ 2 42* subroutine. 2 43* 2) change(87-01-26,LJAdams), approve(87-09-03,MCR7766), 2 44* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 45* Added lep to Sctl. 2 46* Added Sctl.cs to indicate if search or section requests are to be case 2 47* sensitive or not. 2 48* Changed version to Vhelp_args_3. 2 49* 3) change(88-02-12,LJAdams), approve(88-03-07,MCR7857), 2 50* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 51* Added help_data_ptr to point to a second help_args structure that will be 2 52* used for list_requests. 2 53* END HISTORY COMMENTS */ 2 54 2 55 dcl 1 help_args aligned based (Phelp_args), /* help's input arguments. */ 2 56 2 version fixed bin, /* = 3, currently. Use Vhelp_args_3. */ 2 57 /* (set by help_$init, checked by caller) */ 2 58 2 Sctl, /* control argument switches. */ 2 59 /* (SET BY CALLER OF help_) */ 2 60 (3 he_only, /* print only a heading, nothing else. */ 2 61 3 he_pn, /* when heading printed, include info pathname. */ 2 62 3 he_info_name, /* when heading printed, include info_name. */ 2 63 3 he_counts, /* when heading printed, include line counts. */ 2 64 /* If none of the 3 switches above are set, */ 2 65 /* then only info header is incl. in heading. */ 2 66 3 title, /* -title */ 2 67 3 scn, /* -section */ 2 68 3 srh, /* -search */ 2 69 3 bf, /* -brief */ 2 70 3 ca, /* -control_arg */ 2 71 3 ep, /* -entry_point */ 2 72 3 all, /* -all */ 2 73 3 lep, /* -lep */ 2 74 3 cs, /* -case_sensitive */ 2 75 3 inhibit_errors) /* inhibits error diagnostics when desired */ 2 76 /* information is not found. Useful for */ 2 77 /* subsystems like ted that want to diagnose */ 2 78 /* their own errors. */ 2 79 bit(1) unal, 2 80 3 mbz1 bit(22) unal, 2 81 2 Nsearch_dirs fixed bin, /* number of info_segment (or other) search dirs. */ 2 82 /* (set by help_$init, CALLER CAN CHANGE) */ 2 83 2 Npaths fixed bin, /* number of info segment names. */ 2 84 /* (SET BY CALLER OF help_) */ 2 85 2 Ncas fixed bin, /* number of control arg names given with -ca */ 2 86 /* (SET BY CALLER OF help_) */ 2 87 2 Nscns fixed bin, /* number of section substrings. */ 2 88 /* (SET BY CALLER OF help_) */ 2 89 2 Nsrhs fixed bin, /* number of search strings. */ 2 90 /* (SET BY CALLER OF help_) */ 2 91 2 min_Lpgh fixed bin, /* minimum length of a paragraph. */ 2 92 /* (set by help_$init, CALLER CAN CHANGE) */ 2 93 2 max_Lpgh fixed bin, /* maximum lines in group of aggregated paragraphs*/ 2 94 /* or in paragraphs constructed by help_. */ 2 95 /* (set by help_$init, CALLER CAN CHANGE) */ 2 96 2 Lspace_between_infos fixed bin, /* spaces inserted between infos when several */ 2 97 /* printed by one invocation. */ 2 98 /* (set by help_$init, CALLER CAN CHANGE) */ 2 99 2 min_date_time fixed bin(71), /* do not process infos modified before this date.*/ 2 100 /* (SET BY CALLER OF help_) */ 2 101 2 sci_ptr ptr, /* sci_ptr when help_ is invoked by a subsystem. */ 2 102 /* This must be set to null when not invoked */ 2 103 /* from a subsystem. */ 2 104 2 help_data_ptr ptr, /* ptr to second help_args (used for list rqts) */ 2 105 2 pad2 (6) fixed bin, /* reserved for future expansion. */ 2 106 2 107 /* End of fixed-length part of the structure. */ 2 108 2 109 2 search_dirs (0 refer (help_args.Nsearch_dirs)) 2 110 char (168) unal, /* directories help_ will look in to find info */ 2 111 /* segments when relative paths (without < or >)*/ 2 112 /* are given. When help_$init is called, the */ 2 113 /* current search rules (from a search list of */ 2 114 /* caller's choice) will be given here. Caller */ 2 115 /* may modify this list if desired before */ 2 116 /* calling help_. */ 2 117 2 path (0 refer (help_args.Npaths)), /* names of sought info segments. */ 2 118 3 value char(425) varying, /* These are the args themselves, without */ 2 119 /* processing by expand_pathname_, etc. */ 2 120 /* Their length is length(path) + length("$") */ 2 121 /* + length(entry_point_name). */ 2 122 /* Note that entry_point_names can be 256 chars.*/ 2 123 /* (SET BY CALLER OF help_) */ 2 124 3 info_name char(32) unal, /* name of logical info to be printed. */ 2 125 /* (SET BY CALLER OF help_) */ 2 126 /* "" = help_ should set this to entry part */ 2 127 /* of path.value, minus the suffix. */ 2 128 /* other = logical info name not a name on the */ 2 129 /* physical info segment. */ 2 130 3 dir (1) char(168) unal, /* dir part of a pathname (set by help_). */ 2 131 3 ent char(32) unal, /* ent part of name (set by help_). */ 2 132 3 ep char(32) varying, /* entry point part of name. (set by help_) */ 2 133 3 code fixed bin(35), /* error code while processing this path. */ 2 134 /* (set by help_) */ 2 135 3 S, /* switches indicating path type. */ 2 136 (4 pn_ctl_arg, /* -pn ctl given before this path. */ 2 137 /* (SET BY CALLER OF help_) */ 2 138 4 info_name_not_starname, /* caller-supplied path.info_name is not a */ 2 139 /* star name, even if it has * or ? chars. */ 2 140 /* (SET BY CALLER OF help_) */ 2 141 4 less_greater, /* A < or > appears in path.value. */ 2 142 /* (set by help_) */ 2 143 4 starname_ent, /* on if ent is a starname. */ 2 144 /* (set by help_) */ 2 145 4 starname_info_name, /* on if info_name is a starname. */ 2 146 /* (set by help_) */ 2 147 4 separate_info_name) bit(1) unal, /* on if info_name given by caller. */ 2 148 /* (set by help_) */ 2 149 4 pad3 bit(30) unal, 2 150 2 ca (0 refer (help_args.Ncas)) /* the ctl_arg names, without leading - just as */ 2 151 char(32) varying, /* req'd by the -ca ctl_arg of help. */ 2 152 /* (SET BY CALLER OF help_) */ 2 153 2 scn (0 refer (help_args.Nscns)) /* substrings sought in section titles. */ 2 154 char(80) varying, /* (SET BY CALLER OF help_) */ 2 155 2 srh (0 refer (help_args.Nsrhs)) /* search strings. */ 2 156 char(80) varying, /* (SET BY CALLER OF help_) */ 2 157 Phelp_args ptr, 2 158 Vhelp_args_3 fixed bin int static options(constant) init(3); 2 159 2 160 dcl help_ entry (char(*), ptr, char(*), fixed bin, fixed bin(35)), 2 161 help_$init entry (char(*), char(*), char(*), fixed bin, ptr, fixed bin(35)), 2 162 help_$term entry (char(*), ptr, fixed bin(35)); 2 163 2 164 /* END OF: help_args_.incl.pl1 * * * * * */ 355 356 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 ---------------- */ 357 358 4 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 4 2* declarations for the menu_ subroutines MTB 493 4 3* James R. Davis 26 Jan 81 to 20 Februrary 81 4 4**/ 4 5 4 6 /* format: off */ 4 7 4 8 dcl menu_$create entry ( 4 9 (*) char (*) varying, /* input: choices */ 4 10 (*) char (*) varying, /* input: headers */ 4 11 (*) char (*) varying, /* input: trailers */ 4 12 pointer, /* input: to format info */ 4 13 (*) char (1) unal, /* input: keys to use */ 4 14 pointer, /* input: to area */ 4 15 pointer, /* input: to needs str. */ 4 16 pointer, /* to menu: output */ 4 17 fixed bin (35) /* code */ 4 18 ); 4 19 4 20 dcl menu_$display entry ( 4 21 pointer, /* window */ 4 22 pointer, /* menu */ 4 23 fixed bin (35) /* code */ 4 24 ); 4 25 4 26 dcl menu_$get_choice entry ( 4 27 pointer, /* window */ 4 28 pointer, /* menu */ 4 29 pointer, /* to function key info */ 4 30 bit (1) aligned, /* function key hi: output */ 4 31 fixed bin, /* output: selection number */ 4 32 fixed bin (35) /* output: code */ 4 33 ); 4 34 4 35 dcl menu_$describe entry ( 4 36 pointer, /* menu */ 4 37 pointer, /* needs */ 4 38 fixed bin (35) /* code */ 4 39 ); 4 40 4 41 dcl menu_$destroy entry ( 4 42 pointer, /* menu */ 4 43 fixed bin (35) /* code */ 4 44 ); 4 45 4 46 dcl menu_$store entry ( 4 47 character (*), 4 48 character (*), 4 49 character (*), 4 50 bit (1) aligned, 4 51 pointer, 4 52 fixed bin (35)); 4 53 4 54 dcl menu_$retrieve entry ( 4 55 character (*), 4 56 character (*), 4 57 character (*), 4 58 pointer, 4 59 pointer, 4 60 fixed bin (35)); 4 61 dcl menu_$delete entry ( 4 62 character (*), 4 63 character (*), 4 64 character (*), 4 65 fixed binary (35)); 4 66 4 67 dcl menu_$list entry ( 4 68 character (*), 4 69 character (*), 4 70 character (*), 4 71 pointer, 4 72 fixed bin, 4 73 pointer, 4 74 fixed bin (35)); 4 75 4 76 dcl 1 menu_format aligned based (menu_format_ptr), 4 77 2 version fixed bin, 4 78 2 constraints, 4 79 3 max_width fixed bin, 4 80 3 max_height fixed bin, 4 81 2 n_columns fixed bin, 4 82 2 flags, 4 83 3 center_headers bit (1) unal, 4 84 3 center_trailers bit (1) unal, 4 85 3 pad bit (34) unal, 4 86 2 pad_char char (1); 4 87 4 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 4 89 2 version fixed bin, 4 90 2 lines_needed fixed bin, 4 91 2 width_needed fixed bin, 4 92 2 n_options fixed bin; 4 93 4 94 dcl menu_format_ptr pointer; 4 95 dcl menu_requirements_ptr pointer; 4 96 4 97 dcl (menu_format_version_1, menu_requirements_version_1) 4 98 fixed bin internal static init (1) options (constant); 4 99 4 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 4 101 options (constant) init 4 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 4 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 4 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 4 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 4 106 4 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 359 360 5 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 5 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 5 3 5 4 /* format: style3 */ 5 5 5 6 declare window_$bell entry (pointer, fixed binary (35)); 5 7 declare window_$clear_region 5 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 5 9 declare window_$clear_to_end_of_line 5 10 entry (pointer, fixed binary (35)); 5 11 declare window_$clear_to_end_of_window 5 12 entry (pointer, fixed binary (35)); 5 13 declare window_$clear_window 5 14 entry (pointer, fixed binary (35)); 5 15 declare window_$delete_chars 5 16 entry (pointer, fixed binary, fixed binary (35)); 5 17 declare window_$get_cursor_position 5 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 19 5 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 5 21 5 22 declare window_$get_echoed_chars 5 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 5 24 fixed binary (35)); 5 25 declare window_$get_unechoed_chars 5 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 5 27 fixed binary (35)); 5 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 5 29 declare window_$overwrite_text 5 30 entry (pointer, character (*), fixed binary (35)); 5 31 declare window_$position_cursor 5 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 33 5 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 5 35 5 36 declare window_$position_cursor_rel 5 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 5 38 5 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 5 40* code); */ 5 41 5 42 declare window_$scroll_region 5 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 5 44 declare window_$sync entry (pointer, fixed binary (35)); 5 45 5 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 5 47 5 48 declare window_$write_raw_text 5 49 entry (pointer, character (*), fixed binary (35)); 5 50 5 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 5 52 5 53 declare window_$write_sync_read 5 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 5 55 character (1) var, fixed binary (35)); 5 56 5 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 5 58 5 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 5 60 5 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 5 62 5 63 declare window_$change_column 5 64 entry (pointer, fixed binary, fixed binary (35)); 5 65 5 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 5 67 declare ( 5 68 window_$get_one_unechoed, 5 69 window_$get_one_unechoed_char 5 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 5 71 5 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 5 73 5 74 declare window_$destroy entry (pointer, fixed binary (35)); 5 75 5 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 5 77 5 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 5 79* buffer_len, n_returned, code); */ 5 80 5 81 5 82 /* end include file window_dcls.incl.pl1 */ 361 362 6 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 6 2 /* format: style3 */ 6 3 6 4 /* Modified 26 January 1982 by William York to add the set_more_handler 6 5* and reset_more_handler control orders. */ 6 6 /* Modified October 1982 by WMY to add set and get_token_characters, 6 7* set and get_more_prompt. */ 6 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 6 9* structure. */ 6 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 6 11* partial screen width windows. */ 6 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 6 13* This should be removed when window_info.incl.pl1 is created. */ 6 14 /* Modified 29 February 1984 by Barmar to add version 1 6 15* get_editor_key_bindings_info. */ 6 16 /* Modified 1 March 1984 by Barmar to add version 1 6 17* set_editor_key_bindings_info. */ 6 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 6 19* line_editor_key_bindings_info, which includes the name, description, and 6 20* info path */ 6 21 6 22 /* structure for the set_window_info and get_window_info 6 23* control orders. */ 6 24 6 25 dcl 1 window_position_info 6 26 based (window_position_info_ptr), 6 27 2 version fixed bin, 6 28 2 origin, 6 29 3 column fixed bin, 6 30 3 line fixed bin, 6 31 2 extent, 6 32 3 width fixed bin, 6 33 3 height fixed bin; 6 34 6 35 dcl (window_position_info_version, window_position_info_version_1) 6 36 fixed bin internal static init (1) options (constant); 6 37 dcl window_position_info_ptr 6 38 pointer; 6 39 6 40 /* structure for the set_window_status and get_window_status 6 41* control orders */ 6 42 6 43 declare window_status_info_ptr 6 44 pointer; 6 45 declare 1 window_status_info 6 46 aligned based (window_status_info_ptr), 6 47 2 version fixed bin, 6 48 2 status_string bit (36) aligned; /* string (window_status) */ 6 49 /* see window_status.incl.pl1 for the contents of this string */ 6 50 6 51 6 52 declare (window_status_version, window_status_version_1) 6 53 fixed bin internal static init (1) options (constant); 6 54 6 55 /* info structure for the set_more_responses and get_more_responses control 6 56* orders */ 6 57 6 58 6 59 dcl 1 more_responses_info 6 60 aligned based (more_responses_info_ptr), 6 61 2 version fixed bin, 6 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 6 63 2 n_noes fixed bin, 6 64 2 yeses char (32) unaligned, 6 65 2 noes char (32) unaligned; 6 66 6 67 dcl (more_responses_info_version_1, more_responses_version) 6 68 fixed bin internal static init (1) options (constant); 6 69 dcl more_responses_info_ptr 6 70 pointer; 6 71 6 72 /* structure for the set_break_table and get_break_table 6 73* control orders */ 6 74 6 75 declare break_table_ptr pointer; 6 76 declare 1 break_table_info aligned based (break_table_ptr), 6 77 2 version fixed bin, 6 78 2 breaks (0:127) bit (1) unaligned; 6 79 6 80 declare (break_table_info_version, break_table_info_version_1) 6 81 fixed bin init (1) internal static options (constant); 6 82 6 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 6 84 2 version fixed bin, 6 85 2 flags unaligned, 6 86 3 old_handler_valid 6 87 bit(1), 6 88 3 pad bit(35), 6 89 2 more_handler entry (pointer, bit(1) aligned), 6 90 2 old_more_handler entry (pointer, bit(1) aligned); 6 91 6 92 declare more_handler_info_ptr pointer; 6 93 6 94 declare (more_handler_info_version, more_handler_info_version_3) 6 95 fixed bin internal static options (constant) init (3); 6 96 6 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 6 98 2 version char(8), 6 99 2 token_character_count 6 100 fixed bin, 6 101 2 token_characters 6 102 char (128) unaligned; 6 103 6 104 declare token_characters_info_ptr pointer; 6 105 6 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 6 107 6 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 6 109 2 version char(8), 6 110 2 more_prompt char(80); 6 111 6 112 declare more_prompt_info_ptr pointer; 6 113 6 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 6 115 6 116 /* Line editor stuff ... */ 6 117 6 118 dcl line_editor_key_binding_info_ptr 6 119 pointer; 6 120 6 121 dcl line_editor_binding_count 6 122 fixed bin; 6 123 dcl line_editor_longest_sequence 6 124 fixed bin; 6 125 /* For each binding, action defines what to do for that sequence. Constants 6 126* are defined in window_editor_values.incl.pl1. Only if action is set to 6 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 6 128 6 129 dcl 1 line_editor_key_binding_info 6 130 aligned based (line_editor_key_binding_info_ptr), 6 131 2 version char(8), 6 132 2 binding_count fixed bin, 6 133 2 longest_sequence fixed bin, 6 134 2 bindings (line_editor_binding_count refer 6 135 (line_editor_key_binding_info.binding_count)), 6 136 3 sequence char(line_editor_longest_sequence refer 6 137 (line_editor_key_binding_info.longest_sequence)) varying, 6 138 3 action fixed bin, 6 139 3 numarg_action fixed binary, 6 140 3 editor_routine entry (pointer, fixed bin(35)), 6 141 3 name char (64) varying unaligned, 6 142 3 description char (256) varying unaligned, 6 143 3 info_path unaligned, 6 144 4 info_dir char (168), 6 145 4 info_entry char (32); 6 146 6 147 6 148 dcl line_editor_key_binding_info_version_3 6 149 char(8) static options (constant) init ("lekbi003"); 6 150 6 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 6 152 2 version char (8), 6 153 2 flags, 6 154 3 entire_state bit (1) unaligned, 6 155 3 mbz bit (35) unaligned, 6 156 2 key_binding_info_ptr ptr, 6 157 2 entire_state_ptr ptr; 6 158 6 159 dcl get_editor_key_bindings_info_ptr ptr; 6 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 6 161 6 162 dcl 1 set_editor_key_bindings_info aligned 6 163 based (set_editor_key_bindings_info_ptr), 6 164 2 version char (8), 6 165 2 flags, 6 166 3 replace bit (1) unaligned, 6 167 3 update bit (1) unaligned, 6 168 3 mbz bit (34) unaligned, 6 169 2 key_binding_info_ptr ptr; 6 170 6 171 dcl set_editor_key_bindings_info_ptr ptr; 6 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 6 173 6 174 /* This should be moved to window_info.incl.pl1 when that include file is 6 175* created. JR 2/1/84 */ 6 176 6 177 dcl 1 window_edit_line_info 6 178 based (window_edit_line_info_ptr), 6 179 2 version char (8), 6 180 2 line_ptr ptr, 6 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 6 182 6 183 dcl window_edit_line_info_version_1 6 184 char (8) static options (constant) init ("wedl0001"); 6 185 6 186 dcl window_edit_line_info_ptr 6 187 ptr; 6 188 6 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 363 364 365 end tut_giving_commands_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/13/88 1315.0 tut_giving_commands_.pl1 >spec>install>MR12.2-1109>tut_giving_commands_.pl1 353 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 355 2 09/13/88 1257.6 help_args_.incl.pl1 >spec>install>MR12.2-1109>help_args_.incl.pl1 357 3 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 359 4 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 361 5 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 363 6 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_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. MENU_OPTION_KEYS 000000 constant char(1) initial array packed unaligned dcl 4-100 set ref 114* 333* ME_COMMANDS 010372 automatic char(20) initial packed unaligned dcl 44 set ref 44* 118* 128* 158* 329* 337* 343* Phelp_args parameter pointer dcl 2-55 set ref 13 164* addr builtin function dcl 50 ref 114 114 114 114 114 114 333 333 333 333 333 333 any_other 000000 stack reference condition dcl 54 ref 325 center_headers 4 010247 automatic bit(1) level 3 packed packed unaligned dcl 28 set ref 94* center_trailers 4(01) 010247 automatic bit(1) level 3 packed packed unaligned dcl 28 set ref 95* change_origin 000100 automatic bit(1) dcl 18 set ref 103* 104* 108* 110* choice parameter fixed bin(17,0) dcl 19 set ref 13 152* 161 169 175 180 185 191 197 203 209 215 221 227 233 239 choices 000101 automatic varying char(30) array dcl 20 set ref 73* 74* 75* 76* 77* 78* 79* 80* 81* 82* 114* 333* code parameter fixed bin(35,0) dcl 21 set ref 13 104* 105 110* 111 114* 116 118* 125* 126 128* 136* 137 150* 151* 152* 156 158* 164* 166 172 188 194 200 206 212 218 224 230 236 253* 261* 269* 277* 285* 293* 301* 309* 317* 326* 327 329* 333* 335 337* 340* 341 343* constraints 1 010247 automatic structure level 2 unaligned dcl 28 cu_$cl 000010 constant entry external dcl 59 ref 349 empty builtin function dcl 50 ref 27 extent 3 parameter structure level 2 unaligned dcl 43 fkey parameter bit(1) dcl 23 set ref 13 152* 161 flags 4 010247 automatic structure level 2 packed packed unaligned dcl 28 function_key_data_ptr parameter pointer dcl 1-34 set ref 13 152* headers 000234 automatic varying char(30) array dcl 24 set ref 84* 114* 333* height 4 parameter fixed bin(17,0) level 3 dcl 43 set ref 107 init_display 000233 automatic bit(1) initial dcl 22 set ref 22* 132 135* iox_$control 000022 constant entry external dcl 3-8 ref 151 iox_$user_io 000024 external static pointer dcl 3-41 set ref 110* 151* 326* key_info based structure level 1 packed packed unaligned dcl 1-28 last1 parameter fixed bin(17,0) dcl 45 set ref 13 177* 241* max_height 2 010247 automatic fixed bin(17,0) level 3 dcl 28 set ref 92* 104* 107 164* max_width 1 010247 automatic fixed bin(17,0) level 3 dcl 28 set ref 91* menu_$create 000026 constant entry external dcl 4-8 ref 114 333 menu_$display 000030 constant entry external dcl 4-20 ref 125 340 menu_$get_choice 000032 constant entry external dcl 4-26 ref 152 menu_format based structure level 1 dcl 4-76 menu_format_version_1 constant fixed bin(17,0) initial dcl 4-97 ref 90 menu_io parameter pointer dcl 25 set ref 13 104* 118* 125* 128* 136* 152* 158* 182* 244* 253* 261* 269* 277* 285* 293* 301* 309* 317* 329* 337* 340* 343* menu_ptr 000246 automatic pointer dcl 26 set ref 114* 125* 152* 333* 340* menu_requirements based structure level 1 dcl 4-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 4-97 ref 99 my_area 000250 automatic area(4095) dcl 27 set ref 27* 114 114 333 333 my_menu_format 010247 automatic structure level 1 unaligned dcl 28 set ref 114 114 333 333 my_menu_requirements 010255 automatic structure level 1 unaligned dcl 29 set ref 99* 114 114 333 333 n_columns 3 010247 automatic fixed bin(17,0) level 2 dcl 28 set ref 93* new_io_height 010266 automatic fixed bin(17,0) dcl 31 set ref 107* 110* 164* null builtin function dcl 50 ref 151 151 pad 4(02) 010247 automatic bit(34) level 3 packed packed unaligned dcl 28 set ref 96* pad_char 5 010247 automatic char(1) level 2 packed packed unaligned dcl 28 set ref 97* program_interrupt 010400 stack reference condition dcl 54 ref 141 pseudo parameter bit(1) dcl 46 ref 13 85 346 seg_name 010267 automatic char(21) initial packed unaligned dcl 32 set ref 32* 136* seg_name_1 010275 automatic char(16) initial packed unaligned dcl 33 set ref 33* 253* seg_name_2 010301 automatic char(13) initial packed unaligned dcl 34 set ref 34* 261* seg_name_3 010305 automatic char(21) initial packed unaligned dcl 35 set ref 35* 269* seg_name_4 010313 automatic char(21) initial packed unaligned dcl 36 set ref 36* 277* seg_name_5 010321 automatic char(12) initial packed unaligned dcl 37 set ref 37* 285* seg_name_6 010324 automatic char(17) initial packed unaligned dcl 38 set ref 38* 293* seg_name_7 010331 automatic char(11) initial packed unaligned dcl 39 set ref 39* 301* seg_name_8 010334 automatic char(16) initial packed unaligned dcl 40 set ref 40* 309* seg_name_9 010340 automatic char(14) initial packed unaligned dcl 41 set ref 41* 317* trailers 010344 automatic varying char(40) array dcl 42 set ref 85* 87* 88* 114* 332* 333* 346* 348* true_window_info 010261 automatic structure level 1 unaligned dcl 30 set ref 104* 110* 164* tut_bottom_ 000016 constant entry external dcl 62 ref 164 tut_get_seg_ 000012 constant entry external dcl 60 ref 136 253 261 269 277 285 293 301 309 317 tut_quit_ 000014 constant entry external dcl 61 ref 118 128 158 329 337 343 tut_window_ 000020 constant entry external dcl 63 ref 104 110 user_io_window_info parameter structure level 1 unaligned dcl 43 set ref 13 118* 128* 136* 158* 253* 261* 269* 277* 285* 293* 301* 309* 317* 329* 337* 343* version 010247 automatic fixed bin(17,0) level 2 dcl 28 set ref 90* width 3 parameter fixed bin(17,0) level 3 dcl 43 set ref 91 window_$bell 000034 constant entry external dcl 5-6 ref 182 244 window_$clear_window 000036 constant entry external dcl 5-13 ref 326 window_position_info based structure level 1 unaligned dcl 6-25 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. KEY_CTRL internal static fixed bin(17,0) initial dcl 1-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 1-22 KEY_PLAIN internal static fixed bin(17,0) initial dcl 1-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 1-22 Vhelp_args_3 internal static fixed bin(17,0) initial dcl 2-55 break_table_info based structure level 1 dcl 6-76 break_table_info_version internal static fixed bin(17,0) initial dcl 6-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 6-80 break_table_ptr automatic pointer dcl 6-75 function_key_data based structure level 1 dcl 1-7 function_key_data_highest automatic fixed bin(17,0) dcl 1-35 function_key_data_version_1 internal static fixed bin(17,0) initial dcl 1-36 function_key_seqs based char packed unaligned dcl 1-32 get_editor_key_bindings_info based structure level 1 dcl 6-151 get_editor_key_bindings_info_ptr automatic pointer dcl 6-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-160 help_ 000000 constant entry external dcl 2-160 help_$init 000000 constant entry external dcl 2-160 help_$term 000000 constant entry external dcl 2-160 help_args based structure level 1 dcl 2-55 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 000000 constant entry external dcl 3-8 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_$look_iocb 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 key_info_ptr automatic pointer dcl 1-38 line_editor_binding_count automatic fixed bin(17,0) dcl 6-121 line_editor_key_binding_info based structure level 1 dcl 6-129 line_editor_key_binding_info_ptr automatic pointer dcl 6-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 6-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 6-123 menu_$delete 000000 constant entry external dcl 4-61 menu_$describe 000000 constant entry external dcl 4-35 menu_$destroy 000000 constant entry external dcl 4-41 menu_$list 000000 constant entry external dcl 4-67 menu_$retrieve 000000 constant entry external dcl 4-54 menu_$store 000000 constant entry external dcl 4-46 menu_format_ptr automatic pointer dcl 4-94 menu_requirements_ptr automatic pointer dcl 4-95 more_handler_info based structure level 1 dcl 6-83 more_handler_info_ptr automatic pointer dcl 6-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 6-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 6-94 more_prompt_info based structure level 1 dcl 6-108 more_prompt_info_ptr automatic pointer dcl 6-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 6-114 more_responses_info based structure level 1 dcl 6-59 more_responses_info_ptr automatic pointer dcl 6-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 6-67 more_responses_version internal static fixed bin(17,0) initial dcl 6-67 set_editor_key_bindings_info based structure level 1 dcl 6-162 set_editor_key_bindings_info_ptr automatic pointer dcl 6-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-172 token_characters_info based structure level 1 dcl 6-97 token_characters_info_ptr automatic pointer dcl 6-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 6-106 video_data_$terminal_iocb external static pointer dcl 67 window_$change_column 000000 constant entry external dcl 5-63 window_$change_line 000000 constant entry external dcl 5-59 window_$clear_region 000000 constant entry external dcl 5-7 window_$clear_to_end_of_line 000000 constant entry external dcl 5-9 window_$clear_to_end_of_window 000000 constant entry external dcl 5-11 window_$create 000000 constant entry external dcl 5-72 window_$delete_chars 000000 constant entry external dcl 5-15 window_$destroy 000000 constant entry external dcl 5-74 window_$edit_line 000000 constant entry external dcl 5-76 window_$get_cursor_position 000000 constant entry external dcl 5-17 window_$get_echoed_chars 000000 constant entry external dcl 5-22 window_$get_one_unechoed 000000 constant entry external dcl 5-67 window_$get_one_unechoed_char 000000 constant entry external dcl 5-67 window_$get_unechoed_chars 000000 constant entry external dcl 5-25 window_$insert_text 000000 constant entry external dcl 5-28 window_$overwrite_text 000000 constant entry external dcl 5-29 window_$position_cursor 000000 constant entry external dcl 5-31 window_$position_cursor_rel 000000 constant entry external dcl 5-36 window_$scroll_region 000000 constant entry external dcl 5-42 window_$sync 000000 constant entry external dcl 5-44 window_$write_raw_text 000000 constant entry external dcl 5-48 window_$write_sync_read 000000 constant entry external dcl 5-53 window_edit_line_info based structure level 1 unaligned dcl 6-177 window_edit_line_info_ptr automatic pointer dcl 6-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 6-183 window_position_info_ptr automatic pointer dcl 6-37 window_position_info_version internal static fixed bin(17,0) initial dcl 6-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 6-35 window_status_info based structure level 1 dcl 6-45 window_status_info_ptr automatic pointer dcl 6-43 window_status_version internal static fixed bin(17,0) initial dcl 6-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 6-52 NAMES DECLARED BY EXPLICIT CONTEXT. NEXT 001120 constant label dcl 141 ref 132 START 000630 constant label dcl 108 ref 141 abbrevs 001670 constant entry internal dcl 290 ref 217 command_line 001500 constant entry internal dcl 250 ref 187 control_args 001560 constant entry internal dcl 266 ref 199 erasing 001720 constant entry internal dcl 298 ref 223 error 002000 constant entry internal dcl 314 ref 235 interrupting 001750 constant entry internal dcl 306 ref 229 multiple 001610 constant entry internal dcl 274 ref 205 pathnames 001530 constant entry internal dcl 258 ref 193 short 001640 constant entry internal dcl 282 ref 211 tut_cl 002031 constant entry internal dcl 322 ref 171 tut_giving_commands_ 000333 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2550 2610 2363 2560 Length 3142 2363 40 316 164 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tut_giving_commands_ 4642 external procedure is an external procedure. on unit on line 141 64 on unit command_line internal procedure shares stack frame of external procedure tut_giving_commands_. pathnames internal procedure shares stack frame of external procedure tut_giving_commands_. control_args internal procedure shares stack frame of external procedure tut_giving_commands_. multiple internal procedure shares stack frame of external procedure tut_giving_commands_. short internal procedure shares stack frame of external procedure tut_giving_commands_. abbrevs internal procedure shares stack frame of external procedure tut_giving_commands_. erasing internal procedure shares stack frame of external procedure tut_giving_commands_. interrupting internal procedure shares stack frame of external procedure tut_giving_commands_. error internal procedure shares stack frame of external procedure tut_giving_commands_. tut_cl 142 internal procedure enables or reverts conditions. on unit on line 325 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tut_giving_commands_ 000100 change_origin tut_giving_commands_ 000101 choices tut_giving_commands_ 000233 init_display tut_giving_commands_ 000234 headers tut_giving_commands_ 000246 menu_ptr tut_giving_commands_ 000250 my_area tut_giving_commands_ 010247 my_menu_format tut_giving_commands_ 010255 my_menu_requirements tut_giving_commands_ 010261 true_window_info tut_giving_commands_ 010266 new_io_height tut_giving_commands_ 010267 seg_name tut_giving_commands_ 010275 seg_name_1 tut_giving_commands_ 010301 seg_name_2 tut_giving_commands_ 010305 seg_name_3 tut_giving_commands_ 010313 seg_name_4 tut_giving_commands_ 010321 seg_name_5 tut_giving_commands_ 010324 seg_name_6 tut_giving_commands_ 010331 seg_name_7 tut_giving_commands_ 010334 seg_name_8 tut_giving_commands_ 010340 seg_name_9 tut_giving_commands_ 010344 trailers tut_giving_commands_ 010372 ME_COMMANDS tut_giving_commands_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this return_mac tra_ext_1 enable_op ext_entry int_entry op_empty_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$cl iox_$control menu_$create menu_$display menu_$get_choice tut_bottom_ tut_get_seg_ tut_quit_ tut_window_ window_$bell window_$clear_window THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 13 000324 22 000340 27 000341 32 000344 33 000347 34 000355 35 000363 36 000366 37 000371 38 000377 39 000405 40 000412 41 000416 44 000422 73 000430 74 000435 75 000442 76 000447 77 000453 78 000460 79 000465 80 000472 81 000477 82 000504 84 000511 85 000516 87 000530 88 000535 90 000541 91 000543 92 000546 93 000550 94 000552 95 000554 96 000556 97 000560 99 000562 103 000567 104 000570 105 000621 107 000624 108 000630 110 000632 111 000664 114 000667 116 000743 118 000746 119 001005 125 001006 126 001021 128 001024 129 001063 132 001064 135 001066 136 001070 137 001115 141 001120 146 001137 150 001140 151 001142 152 001174 156 001216 158 001221 159 001260 161 001261 164 001267 166 001317 168 001322 169 001323 171 001325 172 001331 174 001334 175 001335 177 001337 178 001341 180 001342 182 001344 185 001357 187 001362 188 001363 190 001366 191 001367 193 001371 194 001372 196 001375 197 001376 199 001400 200 001401 202 001404 203 001405 205 001407 206 001410 208 001413 209 001414 211 001416 212 001417 214 001422 215 001423 217 001425 218 001426 220 001431 221 001432 223 001434 224 001435 226 001440 227 001441 229 001443 230 001444 232 001447 233 001450 235 001452 236 001453 238 001456 239 001457 241 001461 242 001463 244 001464 246 001476 365 001477 250 001500 253 001501 254 001527 258 001530 261 001531 262 001557 266 001560 269 001561 270 001607 274 001610 277 001611 278 001637 282 001640 285 001641 286 001667 290 001670 293 001671 294 001717 298 001720 301 001721 302 001747 306 001750 309 001751 310 001777 314 002000 317 002001 318 002027 322 002030 325 002036 326 002053 327 002066 329 002072 330 002131 332 002132 333 002137 335 002214 337 002220 338 002257 340 002260 341 002273 343 002277 344 002336 346 002337 348 002350 349 002355 351 002362 ----------------------------------------------------------- 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