COMPILATION LISTING OF SEGMENT tut_main_menu_ 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.1 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 /* Changed 3/30/84 by J. Siwila: zeroed out user_io_window_info in order to 10* be sure that stack garbage does not interfere with invocation of 11* tut_main_menu. */ 12 13 /* This procedure sets up and displays the main menu in the Tutorial. */ 14 15 16 /* format: style2 */ 17 tut_main_menu_: 18 proc (menu_io, function_key_data_ptr, Phelp_args, pseudo); 19 20 /* Automatic */ 21 22 dcl change_origin bit (1) aligned; 23 dcl choice fixed bin; 24 dcl choices (10) char (30) var; 25 dcl code fixed bin (35); 26 dcl fkey bit (1) aligned; 27 dcl headers (1) char (30) var; 28 dcl init_display bit (1) aligned init ("0"b); 29 dcl menu_io ptr; 30 dcl menu_io_switch_name char (32); 31 dcl menu_ptr ptr; 32 dcl my_area area (4095); 33 dcl 1 my_menu_format like menu_format; 34 dcl 1 my_menu_requirements like menu_requirements; 35 dcl new_io_height fixed bin; 36 dcl 1 true_io_window_info like window_position_info; 37 dcl seg_name char (15) init ("tut_main_menu_0"); 38 dcl seg_name_1 char (16) init ("tut_the_tutorial"); 39 dcl seg_name_2 char (12) init ("tut_glossary"); 40 dcl seg_name_3 char (12) init ("tut_practice"); 41 dcl trailers (2) char (40) var; 42 dcl 1 user_io_window_info like window_position_info; 43 dcl ME_MAIN_MENU char (14) init ("tut_main_menu_"); 44 dcl last fixed bin init (0); 45 dcl last1 fixed bin init (0); 46 dcl pseudo bit (1) aligned; 47 48 /* Builtin */ 49 50 dcl (null, addr, empty, unspec) 51 builtin; 52 dcl (program_interrupt, any_other) 53 condition; 54 55 /* Entries */ 56 57 dcl cu_$cl entry () options (variable); 58 dcl tut_get_seg_ entry () options (variable); 59 dcl tut_getting_help_ entry () options (variable); 60 dcl tut_giving_commands_ entry () options (variable); 61 dcl tut_log_in_ entry () options (variable); 62 dcl tut_mail_ entry () options (variable); 63 dcl tut_storing_information_ 64 entry () options (variable); 65 dcl tut_wordpro_ entry () options (variable); 66 dcl tut_writing_text_ entry () options (variable); 67 dcl tut_quit_ entry () options (variable); 68 dcl tut_terminate_sys_ entry () options (variable); 69 dcl tut_window_ entry () options (variable); 70 dcl unique_chars_ entry (bit (*)) returns (char (15)); 71 dcl tut_bottom_ entry () options (variable); 72 73 /* External */ 74 75 dcl video_data_$terminal_iocb 76 ptr external; 77 dcl video_was_already_on bit (1) aligned external; 78 79 /* Create the menu */ 80 81 choices (1) = "The Tutorial"; 82 choices (2) = "New Terms"; 83 choices (3) = "Practice"; 84 choices (4) = "Getting Help with Multics"; 85 choices (5) = "Giving Commands"; 86 choices (6) = "Writing Text"; 87 choices (7) = "Messages and Mail"; 88 choices (8) = "Storing Information"; 89 choices (9) = "Logging In and Out"; 90 choices (10) = "Wordprocessing"; 91 92 headers (1) = "<<>>"; 93 if pseudo 94 then trailers (1) = "Use ESC q to Exit"; 95 else trailers (1) = "Use Function Key F4 to Exit"; 96 trailers (2) = "-"; 97 98 unspec (user_io_window_info) = "0"b; 99 unspec (true_io_window_info) = "0"b; 100 user_io_window_info.version = window_position_info_version_1; 101 call iox_$control (iox_$user_io, "get_window_info", addr (user_io_window_info), code); 102 if code ^= 0 103 then do; 104 call tut_quit_ (code, ME_MAIN_MENU, "Can't get window info.", menu_io, user_io_window_info); 105 return; 106 end; 107 my_menu_format.version = menu_format_version_1; 108 my_menu_format.max_width = user_io_window_info.extent.width; 109 my_menu_format.max_height = 8; 110 my_menu_format.n_columns = 2; 111 my_menu_format.center_headers = "1"b; 112 my_menu_format.center_trailers = "1"b; 113 my_menu_format.pad = "0"b; 114 my_menu_format.pad_char = "-"; 115 116 my_menu_requirements = menu_requirements_version_1; 117 118 /* Now carve out temporary menu I/O window from the user_i/o window. */ 119 120 121 menu_io_switch_name = "menu_i/o" || unique_chars_ ("0"b); 122 call iox_$find_iocb (menu_io_switch_name, menu_io, code); 123 if code ^= 0 124 then do; 125 call tut_quit_ (code, ME_MAIN_MENU, "Unable to get IOCB pointer for menu window.", menu_io, 126 user_io_window_info); 127 return; 128 end; 129 call window_$create (video_data_$terminal_iocb, addr (user_io_window_info), menu_io, code); 130 if code ^= 0 131 then do; 132 call tut_quit_ (code, ME_MAIN_MENU, "Unable to create the menu_i/o window.", menu_io, 133 user_io_window_info); 134 return; 135 end; 136 137 SET_UP: 138 change_origin = "0"b; 139 call tut_window_ (menu_io, true_io_window_info, my_menu_format.max_height, change_origin, code); 140 if code ^= 0 141 then return; 142 new_io_height = user_io_window_info.height - my_menu_format.max_height; 143 START: 144 change_origin = "1"b; 145 call tut_window_ (iox_$user_io, true_io_window_info, new_io_height, change_origin, code); 146 if code ^= 0 147 then return; 148 149 call menu_$create (choices, headers, trailers, addr (my_menu_format), MENU_OPTION_KEYS, addr (my_area), 150 addr (my_menu_requirements), menu_ptr, code); 151 if code ^= 0 152 then do; 153 call tut_quit_ (code, ME_MAIN_MENU, "Unable to create menu.", menu_io, user_io_window_info); 154 return; 155 end; 156 157 /* Display menus */ 158 159 160 call menu_$display (menu_io, menu_ptr, code); 161 if code ^= 0 162 then do; 163 call tut_quit_ (code, ME_MAIN_MENU, "Unable to display menu.", menu_io, user_io_window_info); 164 return; 165 end; 166 167 if init_display 168 then go to NEXT; 169 else do; 170 init_display = "1"b; 171 call tut_get_seg_ (seg_name, menu_io, user_io_window_info, code); 172 if code ^= 0 173 then return; 174 end; 175 176 NEXT: 177 on condition (program_interrupt) go to START; 178 179 /* Now start processing input from user */ 180 181 do while ("1"b); 182 183 /* Get an option number or function key value from user. */ 184 185 code = 0; 186 call iox_$control (iox_$user_io, "reset_more", null (), code); 187 call menu_$get_choice (menu_io, menu_ptr, function_key_data_ptr, fkey, choice, code); 188 189 /* Perform an action depending on the user's selection. */ 190 191 if code ^= 0 192 then do; 193 call tut_quit_ (code, ME_MAIN_MENU, "Unable to get choice.", menu_io, user_io_window_info); 194 return; 195 end; 196 if fkey 197 then do; 198 if choice = 1 199 then do; 200 call tut_bottom_ (true_io_window_info, new_io_height, my_menu_format.max_height, 201 Phelp_args, code); 202 if code ^= 0 203 then return; 204 end; 205 206 else if choice = 2 207 then do; 208 call tut_cl (); 209 if code ^= 0 210 then return; 211 end; 212 else if choice = 3 213 then if last ^= 0 214 then do; 215 if last ^= last1 216 then last = last1; 217 call prev_menu (); 218 end; 219 else call window_$bell (menu_io, (0)); 220 else if choice = 4 221 then do; 222 call EXIT (); 223 return; 224 end; 225 else call window_$bell (menu_io, (0)); 226 end; 227 else do; 228 if choice = 1 229 then do; 230 call the_tut (); 231 if code ^= 0 232 then return; 233 end; 234 else if choice = 2 235 then do; 236 call terms (); 237 if code ^= 0 238 then return; 239 end; 240 else if choice = 3 241 then do; 242 call prac (); 243 if code ^= 0 244 then return; 245 end; 246 else if choice = 4 247 then do; 248 MENU1: 249 if last1 ^= 0 250 then last = last1; 251 call tut_getting_help_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, 252 choice, last1, Phelp_args, pseudo, code); 253 if code ^= 0 254 then return; 255 if fkey 256 then if choice = 3 257 then call prev_menu (); 258 else do; 259 call EXIT (); 260 return; 261 end; 262 else do; 263 init_display = "1"b; 264 goto SET_UP; 265 end; 266 end; 267 268 else if choice = 5 269 then do; 270 MENU2: 271 if last1 ^= 0 272 then last = last1; 273 call tut_giving_commands_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, 274 choice, last1, Phelp_args, pseudo, code); 275 if code ^= 0 276 then return; 277 if fkey 278 then if choice = 3 279 then call prev_menu (); 280 else do; 281 call EXIT (); 282 return; 283 end; 284 else do; 285 init_display = "1"b; 286 goto SET_UP; 287 end; 288 end; 289 290 else if choice = 6 291 then do; 292 MENU3: 293 if last1 ^= 0 294 then last = last1; 295 call tut_writing_text_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, 296 choice, last1, Phelp_args, pseudo, code); 297 if code ^= 0 298 then return; 299 if fkey 300 then if choice = 3 301 then call prev_menu (); 302 else do; 303 call EXIT (); 304 return; 305 end; 306 else do; 307 init_display = "1"b; 308 goto SET_UP; 309 end; 310 end; 311 312 else if choice = 7 313 then do; 314 MENU4: 315 if last1 ^= 0 316 then last = last1; 317 call tut_mail_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, choice, 318 last1, Phelp_args, pseudo, code); 319 if code ^= 0 320 then return; 321 if fkey 322 then if choice = 3 323 then call prev_menu (); 324 else do; 325 call EXIT (); 326 return; 327 end; 328 else do; 329 init_display = "1"b; 330 goto SET_UP; 331 end; 332 end; 333 334 else if choice = 8 335 then do; 336 MENU5: 337 if last1 ^= 0 338 then last = last1; 339 call tut_storing_information_ (menu_io, user_io_window_info, function_key_data_ptr, 340 fkey, choice, last1, Phelp_args, pseudo, code); 341 if code ^= 0 342 then return; 343 if fkey 344 then if choice = 3 345 then call prev_menu (); 346 else do; 347 call EXIT (); 348 return; 349 end; 350 else do; 351 init_display = "1"b; 352 goto SET_UP; 353 end; 354 end; 355 356 else if choice = 9 357 then do; 358 MENU6: 359 if last1 ^= 0 360 then last = last1; 361 call tut_log_in_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, choice, 362 last1, Phelp_args, pseudo, code); 363 if code ^= 0 364 then return; 365 if fkey 366 then if choice = 3 367 then call prev_menu (); 368 else do; 369 call EXIT (); 370 return; 371 end; 372 else do; 373 init_display = "1"b; 374 goto SET_UP; 375 end; 376 end; 377 378 else if choice = 10 379 then do; 380 MENU7: 381 if last1 ^= 0 382 then last = last1; 383 call tut_wordpro_ (menu_io, user_io_window_info, function_key_data_ptr, fkey, choice, 384 last1, Phelp_args, pseudo, code); 385 if code ^= 0 386 then return; 387 if fkey 388 then if choice = 3 389 then call prev_menu (); 390 else do; 391 call EXIT (); 392 return; 393 end; 394 else do; 395 init_display = "1"b; 396 goto SET_UP; 397 end; 398 end; 399 400 else call window_$bell (menu_io, (0)); 401 end; 402 end; 403 return; 404 405 /* Procedures for nonmenu options */ 406 407 the_tut: 408 proc (); 409 410 call tut_get_seg_ (seg_name_1, menu_io, user_io_window_info, code); 411 return; 412 413 end the_tut; 414 415 terms: 416 proc (); 417 418 call tut_get_seg_ (seg_name_2, menu_io, user_io_window_info, code); 419 return; 420 421 end terms; 422 423 prac: 424 proc (); 425 426 call tut_get_seg_ (seg_name_3, menu_io, user_io_window_info, code); 427 return; 428 429 end prac; 430 431 EXIT: 432 proc (); 433 434 if choice = 4 435 then do; 436 call tut_terminate_sys_ (menu_io, user_io_window_info); 437 if video_was_already_on 438 then call window_$clear_window (iox_$user_io, (0)); 439 fkey = "0"b; 440 return; 441 end; 442 else call window_$bell (menu_io, (0)); 443 end EXIT; 444 445 prev_menu: 446 proc (); 447 448 if last = 0 449 then goto SET_UP; 450 else if last = 1 451 then goto MENU1; 452 else if last = 2 453 then goto MENU2; 454 else if last = 3 455 then goto MENU3; 456 else if last = 4 457 then goto MENU4; 458 else if last = 5 459 then goto MENU5; 460 else if last = 6 461 then goto MENU6; 462 else if last = 7 463 then goto MENU7; 464 else call window_$bell (menu_io, (0)); 465 466 end prev_menu; 467 468 tut_cl: 469 proc (); 470 471 on any_other system; 472 call window_$clear_window (iox_$user_io, code); 473 if code ^= 0 474 then do; 475 call tut_quit_ (code, ME_MAIN_MENU, "Unable to clear window.", menu_io, user_io_window_info); 476 return; 477 end; 478 trailers (1) = "Type ""pi"" and RETURN to reenter tutorial"; 479 call menu_$create (choices, headers, trailers, addr (my_menu_format), MENU_OPTION_KEYS, addr (my_area), 480 addr (my_menu_requirements), menu_ptr, code); 481 if code ^= 0 482 then do; 483 call tut_quit_ (code, ME_MAIN_MENU, "Unable to create menu.", menu_io, user_io_window_info); 484 return; 485 end; 486 call menu_$display (menu_io, menu_ptr, code); 487 if code ^= 0 488 then do; 489 call tut_quit_ (code, ME_MAIN_MENU, "Unable to display menu", menu_io, user_io_window_info); 490 return; 491 end; 492 if pseudo 493 then trailers (1) = "Use ESC q to Exit"; 494 else trailers (1) = "Use Function Key F4 to Exit"; 495 call cu_$cl; 496 497 end tut_cl; 498 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 */ 499 500 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 * * * * * */ 501 502 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 ---------------- */ 503 504 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 */ 505 506 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 */ 507 508 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 */ 509 510 511 end tut_main_menu_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/13/88 1315.0 tut_main_menu_.pl1 >spec>install>MR12.2-1109>tut_main_menu_.pl1 499 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 501 2 09/13/88 1257.6 help_args_.incl.pl1 >spec>install>MR12.2-1109>help_args_.incl.pl1 503 3 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 505 4 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 507 5 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 509 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 149* 479* ME_MAIN_MENU 010352 automatic char(14) initial packed unaligned dcl 43 set ref 43* 104* 125* 132* 153* 163* 193* 475* 483* 489* Phelp_args parameter pointer dcl 2-55 set ref 17 200* 251* 273* 295* 317* 339* 361* 383* addr builtin function dcl 50 ref 101 101 129 129 149 149 149 149 149 149 479 479 479 479 479 479 any_other 000000 stack reference condition dcl 52 ref 471 center_headers 4 010261 automatic bit(1) level 3 packed packed unaligned dcl 33 set ref 111* center_trailers 4(01) 010261 automatic bit(1) level 3 packed packed unaligned dcl 33 set ref 112* change_origin 000100 automatic bit(1) dcl 22 set ref 137* 139* 143* 145* choice 000101 automatic fixed bin(17,0) dcl 23 set ref 187* 198 206 212 220 228 234 240 246 251* 255 268 273* 277 290 295* 299 312 317* 321 334 339* 343 356 361* 365 378 383* 387 434 choices 000102 automatic varying char(30) array dcl 24 set ref 81* 82* 83* 84* 85* 86* 87* 88* 89* 90* 149* 479* code 000234 automatic fixed bin(35,0) dcl 25 set ref 101* 102 104* 122* 123 125* 129* 130 132* 139* 140 145* 146 149* 151 153* 160* 161 163* 171* 172 185* 186* 187* 191 193* 200* 202 209 231 237 243 251* 253 273* 275 295* 297 317* 319 339* 341 361* 363 383* 385 410* 418* 426* 472* 473 475* 479* 481 483* 486* 487 489* constraints 1 010261 automatic structure level 2 unaligned dcl 33 cu_$cl 000010 constant entry external dcl 57 ref 495 empty builtin function dcl 50 ref 32 extent 3 010345 automatic structure level 2 unaligned dcl 42 fkey 000235 automatic bit(1) dcl 26 set ref 187* 196 251* 255 273* 277 295* 299 317* 321 339* 343 361* 365 383* 387 439* flags 4 010261 automatic structure level 2 packed packed unaligned dcl 33 function_key_data_ptr parameter pointer dcl 1-34 set ref 17 187* 251* 273* 295* 317* 339* 361* 383* headers 000236 automatic varying char(30) array dcl 27 set ref 92* 149* 479* height 4 010345 automatic fixed bin(17,0) level 3 dcl 42 set ref 142 init_display 000247 automatic bit(1) initial dcl 28 set ref 28* 167 170* 263* 285* 307* 329* 351* 373* 395* iox_$control 000050 constant entry external dcl 3-8 ref 101 186 iox_$find_iocb 000052 constant entry external dcl 3-8 ref 122 iox_$user_io 000054 external static pointer dcl 3-41 set ref 101* 145* 186* 437* 472* key_info based structure level 1 packed packed unaligned dcl 1-28 last 010356 automatic fixed bin(17,0) initial dcl 44 set ref 44* 212 215 215* 248* 270* 292* 314* 336* 358* 380* 448 450 452 454 456 458 460 462 last1 010357 automatic fixed bin(17,0) initial dcl 45 set ref 45* 215 215 248 248 251* 270 270 273* 292 292 295* 314 314 317* 336 336 339* 358 358 361* 380 380 383* max_height 2 010261 automatic fixed bin(17,0) level 3 dcl 33 set ref 109* 139* 142 200* max_width 1 010261 automatic fixed bin(17,0) level 3 dcl 33 set ref 108* menu_$create 000056 constant entry external dcl 4-8 ref 149 479 menu_$display 000060 constant entry external dcl 4-20 ref 160 486 menu_$get_choice 000062 constant entry external dcl 4-26 ref 187 menu_format based structure level 1 dcl 4-76 menu_format_version_1 constant fixed bin(17,0) initial dcl 4-97 ref 107 menu_io parameter pointer dcl 29 set ref 17 104* 122* 125* 129* 132* 139* 153* 160* 163* 171* 187* 193* 219* 225* 251* 273* 295* 317* 339* 361* 383* 400* 410* 418* 426* 436* 442* 464* 475* 483* 486* 489* menu_io_switch_name 000250 automatic char(32) packed unaligned dcl 30 set ref 121* 122* menu_ptr 000260 automatic pointer dcl 31 set ref 149* 160* 187* 479* 486* menu_requirements based structure level 1 dcl 4-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 4-97 ref 116 my_area 000262 automatic area(4095) dcl 32 set ref 32* 149 149 479 479 my_menu_format 010261 automatic structure level 1 unaligned dcl 33 set ref 149 149 479 479 my_menu_requirements 010267 automatic structure level 1 unaligned dcl 34 set ref 116* 149 149 479 479 n_columns 3 010261 automatic fixed bin(17,0) level 2 dcl 33 set ref 110* new_io_height 010273 automatic fixed bin(17,0) dcl 35 set ref 142* 145* 200* null builtin function dcl 50 ref 186 186 pad 4(02) 010261 automatic bit(34) level 3 packed packed unaligned dcl 33 set ref 113* pad_char 5 010261 automatic char(1) level 2 packed packed unaligned dcl 33 set ref 114* program_interrupt 010360 stack reference condition dcl 52 ref 176 pseudo parameter bit(1) dcl 46 set ref 17 93 251* 273* 295* 317* 339* 361* 383* 492 seg_name 010301 automatic char(15) initial packed unaligned dcl 37 set ref 37* 171* seg_name_1 010305 automatic char(16) initial packed unaligned dcl 38 set ref 38* 410* seg_name_2 010311 automatic char(12) initial packed unaligned dcl 39 set ref 39* 418* seg_name_3 010314 automatic char(12) initial packed unaligned dcl 40 set ref 40* 426* trailers 010317 automatic varying char(40) array dcl 41 set ref 93* 95* 96* 149* 478* 479* 492* 494* true_io_window_info 010274 automatic structure level 1 unaligned dcl 36 set ref 99* 139* 145* 200* tut_bottom_ 000042 constant entry external dcl 71 ref 200 tut_get_seg_ 000012 constant entry external dcl 58 ref 171 410 418 426 tut_getting_help_ 000014 constant entry external dcl 59 ref 251 tut_giving_commands_ 000016 constant entry external dcl 60 ref 273 tut_log_in_ 000020 constant entry external dcl 61 ref 361 tut_mail_ 000022 constant entry external dcl 62 ref 317 tut_quit_ 000032 constant entry external dcl 67 ref 104 125 132 153 163 193 475 483 489 tut_storing_information_ 000024 constant entry external dcl 63 ref 339 tut_terminate_sys_ 000034 constant entry external dcl 68 ref 436 tut_window_ 000036 constant entry external dcl 69 ref 139 145 tut_wordpro_ 000026 constant entry external dcl 65 ref 383 tut_writing_text_ 000030 constant entry external dcl 66 ref 295 unique_chars_ 000040 constant entry external dcl 70 ref 121 unspec builtin function dcl 50 set ref 98* 99* user_io_window_info 010345 automatic structure level 1 unaligned dcl 42 set ref 98* 101 101 104* 125* 129 129 132* 153* 163* 171* 193* 251* 273* 295* 317* 339* 361* 383* 410* 418* 426* 436* 475* 483* 489* version 010345 automatic fixed bin(17,0) level 2 in structure "user_io_window_info" dcl 42 in procedure "tut_main_menu_" set ref 100* version 010261 automatic fixed bin(17,0) level 2 in structure "my_menu_format" dcl 33 in procedure "tut_main_menu_" set ref 107* video_data_$terminal_iocb 000044 external static pointer dcl 75 set ref 129* video_was_already_on 000046 external static bit(1) dcl 77 ref 437 width 3 010345 automatic fixed bin(17,0) level 3 dcl 42 set ref 108 window_$bell 000064 constant entry external dcl 5-6 ref 219 225 400 442 464 window_$clear_window 000066 constant entry external dcl 5-13 ref 437 472 window_$create 000070 constant entry external dcl 5-72 ref 129 window_position_info based structure level 1 unaligned dcl 6-25 window_position_info_version_1 constant fixed bin(17,0) initial dcl 6-35 ref 100 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_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 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_$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_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. EXIT 002661 constant entry internal dcl 431 ref 222 259 281 303 325 347 369 391 MENU1 001672 constant label dcl 248 ref 450 MENU2 001766 constant label dcl 270 ref 452 MENU3 002062 constant label dcl 292 ref 454 MENU4 002156 constant label dcl 314 ref 456 MENU5 002252 constant label dcl 336 ref 458 MENU6 002346 constant label dcl 358 ref 460 MENU7 002442 constant label dcl 380 ref 462 NEXT 001364 constant label dcl 176 ref 167 SET_UP 001035 constant label dcl 137 ref 264 286 308 330 352 374 396 448 START 001075 constant label dcl 143 ref 176 prac 002631 constant entry internal dcl 423 ref 242 prev_menu 002735 constant entry internal dcl 445 ref 217 255 277 299 321 343 365 387 terms 002601 constant entry internal dcl 415 ref 236 the_tut 002551 constant entry internal dcl 407 ref 230 tut_cl 002773 constant entry internal dcl 468 ref 208 tut_main_menu_ 000332 constant entry external dcl 17 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3652 3744 3325 3662 Length 4322 3325 72 341 325 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tut_main_menu_ 4534 external procedure is an external procedure. on unit on line 176 64 on unit the_tut internal procedure shares stack frame of external procedure tut_main_menu_. terms internal procedure shares stack frame of external procedure tut_main_menu_. prac internal procedure shares stack frame of external procedure tut_main_menu_. EXIT internal procedure shares stack frame of external procedure tut_main_menu_. prev_menu internal procedure shares stack frame of external procedure tut_main_menu_. tut_cl 142 internal procedure enables or reverts conditions. on unit on line 471 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tut_main_menu_ 000100 change_origin tut_main_menu_ 000101 choice tut_main_menu_ 000102 choices tut_main_menu_ 000234 code tut_main_menu_ 000235 fkey tut_main_menu_ 000236 headers tut_main_menu_ 000247 init_display tut_main_menu_ 000250 menu_io_switch_name tut_main_menu_ 000260 menu_ptr tut_main_menu_ 000262 my_area tut_main_menu_ 010261 my_menu_format tut_main_menu_ 010267 my_menu_requirements tut_main_menu_ 010273 new_io_height tut_main_menu_ 010274 true_io_window_info tut_main_menu_ 010301 seg_name tut_main_menu_ 010305 seg_name_1 tut_main_menu_ 010311 seg_name_2 tut_main_menu_ 010314 seg_name_3 tut_main_menu_ 010317 trailers tut_main_menu_ 010345 user_io_window_info tut_main_menu_ 010352 ME_MAIN_MENU tut_main_menu_ 010356 last tut_main_menu_ 010357 last1 tut_main_menu_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry op_empty_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$cl iox_$control iox_$find_iocb menu_$create menu_$display menu_$get_choice tut_bottom_ tut_get_seg_ tut_getting_help_ tut_giving_commands_ tut_log_in_ tut_mail_ tut_quit_ tut_storing_information_ tut_terminate_sys_ tut_window_ tut_wordpro_ tut_writing_text_ unique_chars_ window_$bell window_$clear_window window_$create THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io video_data_$terminal_iocb video_was_already_on LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000325 28 000337 32 000340 37 000343 38 000346 39 000351 40 000357 43 000363 44 000371 45 000372 81 000373 82 000400 83 000405 84 000412 85 000417 86 000424 87 000431 88 000436 89 000443 90 000450 92 000455 93 000462 95 000474 96 000501 98 000505 99 000510 100 000513 101 000514 102 000550 104 000552 105 000612 107 000613 108 000615 109 000617 110 000621 111 000623 112 000625 113 000627 114 000631 116 000633 121 000640 122 000672 123 000715 125 000717 127 000754 129 000755 130 000775 132 000777 134 001034 137 001035 139 001036 140 001070 142 001072 143 001075 145 001077 146 001130 149 001132 151 001206 153 001210 154 001250 160 001251 161 001265 163 001267 164 001327 167 001330 170 001332 171 001334 172 001362 176 001364 181 001403 185 001404 186 001405 187 001437 191 001461 193 001463 194 001523 196 001524 198 001527 200 001532 202 001563 204 001565 206 001566 208 001570 209 001574 211 001576 212 001577 215 001603 217 001607 218 001610 219 001611 220 001625 222 001627 223 001630 225 001631 226 001644 228 001645 230 001650 231 001651 233 001653 234 001654 236 001656 237 001657 239 001661 240 001662 242 001664 243 001665 245 001667 246 001670 248 001672 251 001675 253 001743 255 001745 259 001755 260 001756 261 001757 263 001760 264 001762 266 001763 268 001764 270 001766 273 001771 275 002037 277 002041 281 002051 282 002052 283 002053 285 002054 286 002056 288 002057 290 002060 292 002062 295 002065 297 002133 299 002135 303 002145 304 002146 305 002147 307 002150 308 002152 310 002153 312 002154 314 002156 317 002161 319 002227 321 002231 325 002241 326 002242 327 002243 329 002244 330 002246 332 002247 334 002250 336 002252 339 002255 341 002323 343 002325 347 002335 348 002336 349 002337 351 002340 352 002342 354 002343 356 002344 358 002346 361 002351 363 002417 365 002421 369 002431 370 002432 371 002433 373 002434 374 002436 376 002437 378 002440 380 002442 383 002445 385 002513 387 002515 391 002525 392 002526 393 002527 395 002530 396 002532 398 002533 400 002534 402 002547 403 002550 407 002551 410 002552 411 002600 415 002601 418 002602 419 002630 423 002631 426 002632 427 002660 431 002661 434 002662 436 002665 437 002703 439 002717 440 002720 442 002721 443 002734 445 002735 448 002736 450 002740 452 002742 454 002744 456 002746 458 002750 460 002752 462 002754 464 002756 466 002771 468 002772 471 003000 472 003015 473 003027 475 003032 476 003072 478 003073 479 003100 481 003154 483 003157 484 003217 486 003220 487 003234 489 003237 490 003277 492 003300 494 003312 495 003317 497 003324 ----------------------------------------------------------- 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