COMPILATION LISTING OF SEGMENT menu_create Compiled by: Multics PL/I Compiler, Release 33a, of May 30, 1990 Compiled at: ACTC Technologies Inc. Compiled on: 07/17/90 1543.3 mdt Tue Options: optimize map 1 /****^ ********************************************************* 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1990 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* ********************************************************* */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(90-05-16,Kallstrom), approve(90-05-16,MCR8176), 14* audit(90-06-21,Blackmore), install(90-07-17,MR12.4-1022): 15* fixed menu_get_choice so that the -dfkeys string is not used when the 16* number of characters in the string is the same as the number of function 17* keys defined for the terminal type. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style2 */ 22 23 menu_create: 24 procedure options (variable); /* COMMAND */ 25 26 /* The menu commands from MTB 494 27* menu_create, menu_display, menu_get_choice, menu_describe 28* 29* James R. Davis 21 Jan 81 30**/ 31 32 /* Maintained by Suzanne Krupp. 33* 34* Modified 06/08/81 by Suzanne Krupp to use menu_$store_menu and 35* menu_$retrieve menu to store retrieve menus from segments. 36* 37* Modified 06/30/81 by Suzanne Krupp to change maximum allowed options 38* from 35 to 61. 39* 40* Modified July 1981 BIM for cleanup to store/retrieve, list, delete. 41* 42* Audit changes October 1981 BIM. 43* 44* Modified November 1981 MRJ to fake function key data when not found in TTT 45* and to add control arg to specify options selectors. 46* 47* Modified 10 February 1982 by Chris Jones to initialize dfkey_string_len. 48* 49* 84-03-12 Davids: Modified argument processing of menu_describe entry to 50* allow more robust handling. You can now specify any combination of 51* -width, -height, and -count and things will work. There is no longer 52* any "knowledge" of how many arguments should be present. This fixes 53* TR phx15650 54**/ 55 56 declare get_system_free_area_ entry () returns (ptr); 57 declare requote_string_ entry (character (*)) returns (character (*)); 58 59 60 declare arg char (al) based (ap); 61 declare al fixed bin (21); 62 declare ap ptr; 63 declare alp ptr; /* to arg list */ 64 declare code fixed bin (35); 65 declare nargs fixed bin; 66 declare af_value char (afl) varying based (afp); 67 declare afl fixed bin (21); 68 declare afp ptr; 69 declare active bit (1) aligned; 70 declare complain entry variable options (variable); 71 declare answer char (3) var; 72 declare myname char (32); 73 declare pathname_present bit (1); 74 declare swname_present bit (1); 75 declare brief bit (1); 76 declare valid_args fixed bin; 77 declare pathname char (168); /* MENU seg path */ 78 declare dirname char (168); /* MENU seg dir */ 79 declare ename char (32); /* MENU seg entryname */ 80 81 declare 1 auto_query_info like query_info; 82 83 declare menu_namep ptr; 84 declare menu_name_len fixed bin; 85 declare menu_name char (menu_name_len) based (menu_namep); 86 87 declare iocbp ptr; 88 declare menu_ptr ptr; 89 90 declare SUFFIX char (5) internal static options (constant) init ("value"); 91 92 declare ( 93 error_table_$active_function, 94 error_table_$bad_conversion, 95 error_table_$badopt, 96 error_table_$bigarg, 97 error_table_$noarg, 98 error_table_$noentry, 99 error_table_$too_many_args 100 ) fixed bin (35) ext static; 101 102 103 declare (addr, empty, max, null, rtrim, size) 104 builtin; 105 106 call set_flavor_of_command ("menu_create", "0"b); 107 108 menu_create_block: 109 begin; 110 declare 1 mf aligned like menu_format; 111 declare 1 auto_menu_requirements 112 aligned like menu_requirements; 113 114 declare (n_choices, n_headers, n_trailers) 115 fixed bin; 116 declare max_choice_len fixed bin (21); 117 declare max_line_len fixed bin (21); 118 119 declare (keep_trying, create) bit (1) aligned; 120 121 declare command_query_ entry () options (variable); 122 123 declare option_keys_ptr pointer; 124 declare option_keys_len fixed bin (21); 125 declare option_keys (option_keys_len) char (1) unal based (option_keys_ptr); 126 127 if nargs < 2 128 then goto USAGE; 129 130 dirname, ename, pathname = ""; 131 pathname_present, brief, create = "0"b; 132 call get_menu_name (); 133 134 call scan_controls (); 135 n_choices = max (n_choices, 1); 136 n_headers = max (n_headers, 1); 137 n_trailers = max (n_trailers, 1); 138 begin; 139 declare argx fixed bin; 140 declare choices (n_choices) char (max_choice_len) varying; 141 declare headers (n_headers) char (max_line_len) varying; 142 declare trailers (n_trailers) char (max_line_len) varying; 143 declare (choicex, headerx, trailerx) 144 fixed bin; 145 146 choicex, headerx, trailerx = 0; 147 choices (*), headers (*), trailers (*) = ""; 148 do argx = 2 to nargs; 149 call arg_getter (argx, ap, al, (0)); 150 if arg = "-option" | arg = "-opt" 151 then call snarf (choicex, choices); 152 else if arg = "-header" | arg = "-he" 153 then call snarf (headerx, headers); 154 else if arg = "-trailer" | arg = "-tr" 155 then call snarf (trailerx, trailers); 156 end; 157 158 auto_menu_requirements.version = menu_requirements_version_1; 159 /* create starts out false, so we can query */ 160 161 call menu_$create (choices, headers, trailers, addr (mf), option_keys, null, 162 addr (auto_menu_requirements), menu_ptr, code); 163 if code ^= 0 164 then call gen_err (code, "Could not create the menu object."); 165 166 if ^pathname_present 167 then call get_default_vseg_path (); 168 169 keep_trying = "1"b; 170 answer = ""; 171 do while (keep_trying); 172 call menu_$store (dirname, ename, menu_name, create, menu_ptr, code); 173 if code = error_table_$noentry 174 then do; 175 if brief 176 then answer = "yes"; 177 else do; 178 call get_query_info (code); 179 call command_query_ (addr (auto_query_info), answer, myname, 180 "Segment not found: ^a. Do you wish to create it?", pathname); 181 end; 182 if answer = "yes" 183 then do; 184 keep_trying = "1"b; 185 create = "1"b; 186 end; 187 else call gen_err (code, rtrim (pathname)); 188 end; 189 else if code ^= 0 190 then call gen_err (code, "Trying to store " || menu_name || " in " || pathname || " ."); 191 else keep_trying = "0"b; 192 end; /* do while */ 193 194 return; 195 196 197 snarf: 198 procedure (ix, larr); 199 declare ix fixed bin parameter; 200 /* I/O index into array */ 201 declare larr (*) char (*) varying parameter; 202 /* I/O array of lines */ 203 ix = ix + 1; 204 argx = argx + 1; 205 call arg_getter (argx, ap, al, (0)); 206 larr (ix) = arg; 207 end snarf; 208 209 end; /* non quick begin block */ 210 211 /* Internal Procedures for create follow */ 212 213 214 215 /* look thru the command args, count headers, trailers, and options, and set format */ 216 scan_controls: 217 procedure (); 218 declare argx fixed bin; 219 declare get_line_length_$switch 220 entry (ptr, fixed bin (35)) returns (fixed bin); 221 222 max_choice_len, max_line_len = 0; 223 n_choices, n_headers, n_trailers = 0; 224 225 /* defaults */ 226 option_keys_ptr = addr (MENU_OPTION_KEYS); 227 option_keys_len = hbound (MENU_OPTION_KEYS, 1); 228 mf.version = menu_format_version_1; 229 mf.max_width = get_line_length_$switch ((null ()), code); 230 if code ^= 0 231 then do; 232 code = 0; 233 mf.max_width = 80; /* new get_line_length_ isnt in yet */ 234 end; 235 236 mf.max_height = 0; 237 mf.n_columns = 1; 238 mf.flags = "0"b; 239 mf.pad_char = " "; 240 241 do argx = 2 to nargs; 242 call arg_getter (argx, ap, al, (0)); 243 244 if arg = "-header" | arg = "-he" 245 then call accumulate (n_headers, max_line_len); 246 else if arg = "-trailer" | arg = "-tr" 247 then call accumulate (n_trailers, max_line_len); 248 else if arg = "-option" | arg = "-opt" 249 then call accumulate (n_choices, max_choice_len); 250 251 else if arg = "-columns" | arg = "-col" 252 then mf.n_columns = get_next_arg_num (); 253 254 else if arg = "-center_headers" | arg = "-ceh" 255 then mf.center_headers = "1"b; 256 else if arg = "-no_center_headers" | arg = "-nceh" 257 then mf.center_headers = "0"b; 258 else if arg = "-center_trailers" | arg = "-cet" 259 then mf.center_trailers = "1"b; 260 else if arg = "-no_center_trailers" | arg = "-ncet" 261 then mf.center_trailers = "0"b; 262 else if arg = "-line_length" | arg = "-ll" 263 then mf.max_width = get_next_arg_num (); 264 else if arg = "-pad" 265 then mf.pad_char = get_next_arg_char (); 266 else if arg = "-pathname" | arg = "-pn" 267 then do; 268 pathname_present = "1"b; 269 call get_next_arg (); 270 call get_menu_seg_info (); 271 end; 272 else if arg = "-brief" | arg = "-bf" 273 then brief = "1"b; 274 else if arg = "-option_keys" | arg = "-okeys" 275 then do; 276 call get_next_arg (); 277 option_keys_ptr = addr (arg); 278 option_keys_len = length (arg); 279 end; 280 else do; 281 call complain (error_table_$badopt, myname, "^a", arg); 282 goto ERROR_EXIT; 283 end; 284 end; /* control arg loop */ 285 286 return; 287 288 289 accumulate: 290 procedure (count, maxlen); 291 declare count fixed bin parameter; 292 /* input/output */ 293 declare maxlen fixed bin (21) parameter; 294 /* input/output */ 295 call get_next_arg (); 296 count = count + 1; /* found another */ 297 maxlen = max (maxlen, al); 298 end accumulate; 299 300 301 get_next_arg_num: 302 procedure returns (fixed bin); 303 declare x fixed bin (35); 304 declare cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 305 declare nscode fixed bin (35); 306 307 call get_next_arg (); 308 x = cv_dec_check_ (arg, nscode); 309 if nscode ^= 0 310 then do; 311 call complain (error_table_$bad_conversion, myname, "Not a decimal number: ^a.", arg); 312 goto ERROR_EXIT; 313 end; 314 315 return (x); 316 end get_next_arg_num; 317 318 get_next_arg_char: 319 procedure returns (char (1) aligned); 320 declare c char (1) aligned; 321 call get_next_arg (); 322 if al > 1 323 then do; 324 call complain (error_table_$bigarg, myname, "The pad argument must be a single character."); 325 goto ERROR_EXIT; 326 end; 327 c = arg; 328 return (c); 329 end get_next_arg_char; 330 331 get_next_arg: 332 procedure (); 333 if argx = nargs 334 then goto MISSING; 335 argx = argx + 1; 336 call arg_getter (argx, ap, al, (0)); 337 end get_next_arg; 338 end scan_controls; 339 340 341 MISSING: 342 call complain (error_table_$noarg, myname, "missing arg after ^a.", arg); 343 goto ERROR_EXIT; 344 end menu_create_block; 345 346 menu_get_choice: 347 entry options (variable); /* COMMAND/AF */ 348 call set_flavor_of_command ("menu_get_choice", "1"b); 349 350 get_menu_choice_begin: 351 begin; 352 declare funk ptr; /* to function key info */ 353 declare funky_area area (512); /* where to allocate funk info */ 354 /* like this we don't have to free, and we know the data is small */ 355 declare dfkey_string_ptr ptr; 356 declare dfkey_string_len fixed bin (21); 357 declare dfkey_string char (dfkey_string_len) based (dfkey_string_ptr) unal; 358 declare fkey bit (1) aligned; 359 declare keyno fixed bin; 360 declare argx fixed bin; 361 362 pathname_present, swname_present = "0"b; 363 funk, dfkey_string_ptr = null (); 364 dfkey_string_len = 0; 365 call get_menu_name (); 366 367 do argx = 2 to nargs; 368 call arg_getter (argx, ap, al, code); 369 if code ^= 0 370 then call gen_err (code, ""); 371 if arg = "-pathname" | arg = "-pn" 372 then do; 373 call get_next_choice_arg (); 374 call get_menu_seg_info (); 375 pathname_present = "1"b; 376 end; 377 else if arg = "-io_switch" | arg = "-is" 378 then do; 379 call get_next_choice_arg (); 380 call get_switch (); 381 swname_present = "1"b; 382 end; 383 else if arg = "-function_keys" | arg = "-fkeys" 384 then do; 385 call get_next_choice_arg (); 386 funk = make_function_key_info (arg); 387 end; 388 else if arg = "-default_function_keys" | arg = "-dfkeys" 389 then do; 390 call get_next_choice_arg (); 391 dfkey_string_ptr = addr (arg); 392 dfkey_string_len = length (arg); 393 end; 394 else go to BAD_OPT; 395 end; 396 397 if ^swname_present 398 then iocbp = iox_$user_io; /* we do output on *'s */ 399 if ^pathname_present 400 then call get_default_vseg_path (); 401 402 call lookup_menu (); 403 404 if funk = null () 405 then funk = get_function_key_info (); 406 407 call menu_$get_choice (iocbp, menu_ptr, funk, fkey, keyno, code); 408 if code ^= 0 409 then goto USAGE; 410 411 call result (key_str ()); 412 return; 413 414 415 /* internal procedures for get_menu_choice */ 416 417 get_next_choice_arg: 418 proc (); 419 420 argx = argx + 1; 421 call arg_getter (argx, ap, al, code); 422 if code ^= 0 423 then call gen_err (code, ""); 424 425 end get_next_choice_arg; 426 427 key_str: 428 procedure () returns (char (8) aligned); 429 declare s char (8) aligned; 430 declare ioa_$rsnnl entry () options (variable); 431 call ioa_$rsnnl ("^[F^]^d", s, (0), fkey, keyno); 432 return (s); 433 end key_str; 434 435 436 get_function_key_info: 437 procedure () returns (pointer); 438 declare f ptr; 439 declare fx fixed bin; 440 declare ttt_info_$function_key_data 441 entry (char (*), ptr, ptr, fixed bin (35)); 442 declare error_table_$no_table fixed bin (35) ext static; 443 funky_area = empty (); 444 445 call ttt_info_$function_key_data (get_term_type_name (), addr (funky_area), f, code); 446 if code = error_table_$no_table 447 then do; 448 code = 0; 449 if dfkey_string_ptr = null () 450 then f = make_function_key_info ("0123456789"); 451 else f = make_function_key_info (dfkey_string); 452 end; 453 else if code ^= 0 454 then do; 455 call complain (code, myname, "Getting function key data."); 456 goto ERROR_EXIT; 457 end; 458 else do; 459 if dfkey_string_ptr ^= null () & f -> function_key_data.highest + 1 < dfkey_string_len 460 then f = make_function_key_info (dfkey_string); 461 else do; /* make sure all required function keys are present */ 462 do fx = 1 to dfkey_string_len; 463 if (substr (dfkey_string, fx, 1) ^= " ") 464 & (f -> function_key_data.function_keys.sequence_length (fx - 1, KEY_PLAIN) = 0) 465 then do; 466 f = make_function_key_info (dfkey_string); 467 goto GOT_FUNCTION_KEY_INFO; 468 end; 469 end; 470 end; 471 end; 472 GOT_FUNCTION_KEY_INFO: 473 return (f); 474 475 476 get_term_type_name: 477 procedure () returns (char (32)); 478 declare 1 ti aligned like terminal_info; 479 480 ti.version = terminal_info_version; 481 call iox_$control (iox_$user_io, "terminal_info", addr (ti), code); 482 if code ^= 0 483 then do; 484 call complain (code, myname, "Getting terminal type."); 485 goto ERROR_EXIT; 486 end; 487 return (ti.term_type); 488 end get_term_type_name; 489 end get_function_key_info; 490 491 492 make_function_key_info: 493 procedure (string) returns (pointer); 494 declare string char (*); 495 declare sequence char (2 * length (string)) based (sequence_ptr); 496 declare sequence_ptr pointer; 497 declare i fixed bin; 498 499 function_key_data_highest = length (string) - 1; 500 allocate function_key_data in (funky_area); 501 allocate sequence in (funky_area); 502 function_key_data.version = function_key_data_version_1; 503 function_key_data.highest = function_key_data_highest; 504 function_key_data.sequence.seq_ptr = addr (sequence); 505 function_key_data.sequence.seq_len = length (sequence); 506 function_key_data.home.sequence_index (*) = 0; 507 function_key_data.home.sequence_length (*) = 0; 508 function_key_data.left.sequence_index (*) = 0; 509 function_key_data.left.sequence_length (*) = 0; 510 function_key_data.up.sequence_index (*) = 0; 511 function_key_data.up.sequence_length (*) = 0; 512 function_key_data.right.sequence_index (*) = 0; 513 function_key_data.right.sequence_length (*) = 0; 514 function_key_data.down.sequence_index (*) = 0; 515 function_key_data.down.sequence_length (*) = 0; 516 function_key_data.function_keys.sequence_index (*, *) = 0; 517 function_key_data.function_keys.sequence_length (*, *) = 0; 518 do i = 0 to length (string) - 1; 519 if substr (string, i + 1, 1) ^= " " 520 then do; 521 substr (sequence, i * 2 + 1, 2) = byte (27) || substr (string, i + 1, 1); 522 function_key_data.function_keys.sequence_index (i, KEY_PLAIN) = i * 2 + 1; 523 function_key_data.function_keys.sequence_length (i, KEY_PLAIN) = 2; 524 end; 525 end; 526 527 return (addr (function_key_data)); 528 529 end make_function_key_info; 530 531 end get_menu_choice_begin; 532 533 menu_display: 534 entry options (variable); 535 call set_flavor_of_command ("menu_display", "0"b); 536 537 menu_display_begin: 538 begin; 539 540 declare argx fixed bin; 541 542 pathname_present, swname_present = "0"b; 543 call get_menu_name (); 544 545 do argx = 2 to nargs; 546 call arg_getter (argx, ap, al, code); 547 if code ^= 0 548 then call gen_err (code, ""); 549 if arg = "-pathname" | arg = "-pn" 550 then do; 551 call get_next_display_arg (); 552 call get_menu_seg_info (); 553 pathname_present = "1"b; 554 end; 555 else if arg = "-io_switch" | arg = "-is" 556 then do; 557 call get_next_display_arg (); 558 call get_switch (); 559 swname_present = "1"b; 560 end; 561 else go to BAD_OPT; 562 end; 563 564 if ^swname_present 565 then iocbp = iox_$user_output; 566 if ^pathname_present 567 then call get_default_vseg_path (); 568 569 call lookup_menu (); 570 571 call menu_$display (iocbp, menu_ptr, code); 572 if code ^= 0 573 then call gen_err (code, menu_name); 574 575 return; 576 577 get_next_display_arg: 578 proc (); 579 580 argx = argx + 1; 581 call arg_getter (argx, ap, al, code); 582 if code ^= 0 583 then call gen_err (code, ""); 584 585 end get_next_display_arg; 586 587 end menu_display_begin; 588 589 menu_describe: 590 entry options (variable); 591 call set_flavor_of_command ("menu_describe", "1"b); 592 593 menu_describe_begin: 594 begin; 595 596 declare 1 mr aligned like menu_requirements; 597 declare ioa_ entry () options (variable); 598 declare argx fixed bin; 599 dcl width_flag bit (1); 600 dcl height_flag bit (1); 601 dcl count_flag bit (1); 602 603 width_flag = "0"b; 604 height_flag = "0"b; 605 count_flag = "0"b; 606 pathname_present = "0"b; 607 call get_menu_name (); 608 609 do argx = 2 to nargs; 610 call arg_getter (argx, ap, al, code); 611 if code ^= 0 612 then call gen_err (code, ""); 613 if arg = "-pathname" | arg = "-pn" 614 then do; 615 call get_next_desc_arg (); 616 call get_menu_seg_info (); 617 pathname_present = "1"b; 618 end; 619 else if arg = "-width" 620 then width_flag = "1"b; 621 else if arg = "-height" 622 then height_flag = "1"b; 623 else if arg = "-count" | arg = "-ct" 624 then count_flag = "1"b; 625 else go to BAD_OPT; 626 end; 627 628 if ^pathname_present 629 then call get_default_vseg_path (); 630 631 call lookup_menu (); 632 633 if active 634 then do; 635 if (width_flag & height_flag) | (width_flag & count_flag) | (height_flag & count_flag) 636 then code = error_table_$too_many_args; 637 if ^(width_flag | height_flag | count_flag) 638 then code = error_table_$noarg; 639 end; 640 if code ^= 0 641 then goto USAGE; 642 643 mr.version = menu_requirements_version_1; 644 call menu_$describe (menu_ptr, addr (mr), code); 645 if code ^= 0 646 then goto USAGE; 647 if ^active 648 then do; 649 if ^width_flag & ^height_flag & ^count_flag 650 /* no flags set - print everything */ 651 then call ioa_ ("Height: ^d; Width: ^d; ^d Option^[s^]", mr.n_options, mr.width_needed, 652 mr.n_options, (mr.n_options > 1)); 653 else call ioa_ ("^[Height: ^d; ^;^s^]^[Width: ^d; ^;^s^]^[^d Option^[s^]^;^s^s^]", height_flag, 654 mr.n_options, width_flag, mr.width_needed, count_flag, mr.n_options, 655 (mr.n_options > 1)); 656 end; 657 else do; 658 if width_flag 659 then call describe ("-width"); 660 else if height_flag 661 then call describe ("-height"); 662 else call describe ("-count"); 663 end; 664 return; 665 666 667 describe: 668 procedure (which); 669 declare which char (*) parameter; 670 declare v char (8) aligned; 671 declare n fixed bin; 672 declare (char, ltrim, rtrim) builtin; 673 674 if which = "-width" 675 then n = mr.width_needed; 676 else if which = "-height" 677 then n = mr.lines_needed; 678 else if which = "-count" | which = "-ct" 679 then n = mr.n_options; 680 else goto BAD_OPT; 681 v = rtrim (ltrim (char (n))); 682 call result (v); 683 end describe; 684 685 get_next_desc_arg: 686 proc (); 687 688 argx = argx + 1; 689 call arg_getter (argx, ap, al, code); 690 if code ^= 0 691 then call gen_err (code, ""); 692 693 end get_next_desc_arg; 694 695 end menu_describe_begin; 696 return; 697 698 menu_list: 699 entry options (variable); 700 701 call set_flavor_of_command ("menu_list", "1"b); 702 703 menu_list_begin: 704 begin; 705 declare ioa_ entry () options (variable); 1 1 /* Begin include file menu_list_info.incl.pl1 BIM July 1981 */ 1 2 /* format: style3 */ 1 3 1 4 declare menu_list_info_ptr pointer; 1 5 declare 1 menu_list_info aligned based (menu_list_info_ptr), 1 6 2 version fixed bin, 1 7 2 n_names fixed bin, 1 8 2 name_string_length 1 9 fixed bin (21), 1 10 2 names (menu_list_n_names refer (menu_list_info.n_names)) aligned, 1 11 3 position fixed bin (21), 1 12 3 length fixed bin (21), 1 13 2 name_string character (menu_list_name_string_length refer (menu_list_info.name_string_length)) 1 14 unaligned; 1 15 1 16 1 17 declare menu_list_n_names fixed bin; 1 18 declare menu_list_name_string_length 1 19 fixed bin (21); 1 20 1 21 declare menu_list_info_version_1 1 22 fixed bin init (1) internal static options (constant); 1 23 1 24 /* End include file menu_list_info.incl.pl1 */ 706 707 declare argx fixed bin; 708 declare starname character (128); 709 declare starname_present bit (1); 710 711 starname_present = "0"b; 712 pathname_present = "0"b; 713 714 if nargs > 0 715 then do argx = 1 to nargs; 716 call arg_getter (argx, ap, al, (0)); 717 if character (arg, 1) = "-" 718 then do; 719 if arg = "-pathname" | arg = "-pn" 720 then do; 721 call get_next_list_arg; 722 call get_menu_seg_info; 723 pathname_present = "1"b; 724 end; 725 else go to BAD_OPT; 726 end; 727 else do; 728 if starname_present 729 then call gen_err (error_table_$too_many_args, "Only one starname may be given."); 730 starname = arg; 731 starname_present = "1"b; 732 end; 733 end; 734 735 if ^starname_present 736 then starname = "**"; 737 738 if ^pathname_present 739 then call get_default_vseg_path; 740 741 menu_list_info_ptr = null (); 742 call menu_$list (dirname, ename, starname, get_system_free_area_ (), menu_list_info_version_1, 743 menu_list_info_ptr, code); 744 745 if code ^= 0 746 then call gen_err (code, ""); 747 if active 748 then af_value = ""; 749 750 do argx = 1 to menu_list_info.n_names; 751 begin; 752 declare name character (menu_list_info.names (argx).length) 753 defined (menu_list_info.name_string) 754 position (menu_list_info.names (argx).position); 755 if active 756 then af_value = af_value || requote_string_ (name) || " "; 757 else call ioa_ ("^a", name); 758 759 end; 760 end; 761 if active 762 then af_value = rtrim (af_value); 763 764 get_next_list_arg: 765 procedure; 766 767 if argx = nargs 768 then call gen_err (error_table_$noarg, "No pathname supplied with -pathname."); 769 argx = argx + 1; 770 call arg_getter (argx, ap, al, (0)); 771 end get_next_list_arg; 772 773 end menu_list_begin; 774 775 return; 776 777 menu_delete: 778 entry options (variable); 779 780 call set_flavor_of_command ("menu_delete", "0"b); 781 782 menu_delete_begin: 783 begin; 784 785 declare argx fixed bin; 786 pathname_present = "0"b; 787 788 call get_menu_name (); 789 790 do argx = 2 to nargs; 791 call arg_getter (argx, ap, al, (0)); 792 793 if arg = "-pathname" | arg = "-pn" 794 then do; 795 call get_next_delete_arg (); 796 call get_menu_seg_info (); 797 pathname_present = "1"b; 798 end; 799 else go to BAD_OPT; 800 end; 801 802 if ^pathname_present 803 then call get_default_vseg_path; 804 805 call menu_$delete (dirname, ename, menu_name, code); 806 if code ^= 0 807 then call gen_err (code, "Could not delete menu " || menu_name || " from segment " || pathname); 808 809 810 get_next_delete_arg: 811 procedure; 812 if argx = nargs 813 then call gen_err (error_table_$noarg, ""); 814 815 argx = argx + 1; 816 817 call arg_getter (argx, ap, al, (0)); 818 end get_next_delete_arg; 819 820 end menu_delete_begin; 821 return; 822 823 824 /* COMMON UTILITIES FOR THE VARIOUS COMMANDS AND ACTIVE FUNCTIONS */ 825 826 /* This procedure f8Jnf;G3ZRMultics Storage System Volume root_03 root_03 root PmFQbT 'T4&T "T oTTT)chc Q 943 944 get_default_vseg_path: 945 proc (); 946 947 declare user_info_ entry (char (*), char (*), char (*)); 948 declare user_info_$homedir entry (char (*)); 949 950 declare person_id char (22); 951 952 call user_info_ (person_id, "", ""); 953 call user_info_$homedir (dirname); 954 ename = rtrim (person_id) || ".value"; 955 pathname = rtrim (dirname) || ">" || ename; 956 957 end get_default_vseg_path; 958 959 960 get_query_info: 961 proc (code); 962 963 declare code fixed bin (35); 964 965 auto_query_info.version = query_info_version_5; 966 auto_query_info.yes_or_no_sw = "1"b; 967 auto_query_info.suppress_name_sw = "0"b; 968 auto_query_info.suppress_spacing = "0"b; 969 auto_query_info.cp_escape_control = "00"b; 970 auto_query_info.status_code = code; 971 auto_query_info.query_code = 0; 972 auto_query_info.question_iocbp = null; 973 auto_query_info.answer_iocbp = null; 974 auto_query_info.repeat_time = 0; 975 auto_query_info.explanation_ptr = null; 976 auto_query_info.explanation_len = 0; 977 978 end get_query_info; 979 980 981 gen_err: 982 procedure (a_code, a_str); 983 984 declare a_code fixed bin (35); 985 declare a_str char (*); 986 987 call complain (code, myname, "^a", a_str); 988 go to ERROR_EXIT; 989 990 end gen_err; 991 992 USAGE: 993 call complain (code, myname, "Usage: ^a MENU {-control_args}", myname); 994 go to ERROR_EXIT; 995 996 BAD_OPT: 997 call complain (error_table_$badopt, myname, "^a", arg); 998 goto ERROR_EXIT; 999 1000 ERROR_EXIT: 1001 return; 1002 2 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 2 2* declarations for the menu_ subroutines MTB 493 2 3* James R. Davis 26 Jan 81 to 20 Februrary 81 2 4**/ 2 5 2 6 /* format: off */ 2 7 2 8 dcl menu_$create entry ( 2 9 (*) char (*) varying, /* input: choices */ 2 10 (*) char (*) varying, /* input: headers */ 2 11 (*) char (*) varying, /* input: trailers */ 2 12 pointer, /* input: to format info */ 2 13 (*) char (1) unal, /* input: keys to use */ 2 14 pointer, /* input: to area */ 2 15 pointer, /* input: to needs str. */ 2 16 pointer, /* to menu: output */ 2 17 fixed bin (35) /* code */ 2 18 ); 2 19 2 20 dcl menu_$display entry ( 2 21 pointer, /* window */ 2 22 pointer, /* menu */ 2 23 fixed bin (35) /* code */ 2 24 ); 2 25 2 26 dcl menu_$get_choice entry ( 2 27 pointer, /* window */ 2 28 pointer, /* menu */ 2 29 pointer, /* to function key info */ 2 30 bit (1) aligned, /* function key hi: output */ 2 31 fixed bin, /* output: selection number */ 2 32 fixed bin (35) /* output: code */ 2 33 ); 2 34 2 35 dcl menu_$describe entry ( 2 36 pointer, /* menu */ 2 37 pointer, /* needs */ 2 38 fixed bin (35) /* code */ 2 39 ); 2 40 2 41 dcl menu_$destroy entry ( 2 42 pointer, /* menu */ 2 43 fixed bin (35) /* code */ 2 44 ); 2 45 2 46 dcl menu_$store entry ( 2 47 character (*), 2 48 character (*), 2 49 character (*), 2 50 bit (1) aligned, 2 51 pointer, 2 52 fixed bin (35)); 2 53 2 54 dcl menu_$retrieve entry ( 2 55 character (*), 2 56 character (*), 2 57 character (*), 2 58 pointer, 2 59 pointer, 2 60 fixed bin (35)); 2 61 dcl menu_$delete entry ( 2 62 character (*), 2 63 character (*), 2 64 character (*), 2 65 fixed binary (35)); 2 66 2 67 dcl menu_$list entry ( 2 68 character (*), 2 69 character (*), 2 70 character (*), 2 71 pointer, 2 72 fixed bin, 2 73 pointer, 2 74 fixed bin (35)); 2 75 2 76 dcl 1 menu_format aligned based (menu_format_ptr), 2 77 2 version fixed bin, 2 78 2 constraints, 2 79 3 max_width fixed bin, 2 80 3 max_height fixed bin, 2 81 2 n_columns fixed bin, 2 82 2 flags, 2 83 3 center_headers bit (1) unal, 2 84 3 center_trailers bit (1) unal, 2 85 3 pad bit (34) unal, 2 86 2 pad_char char (1); 2 87 2 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 2 89 2 version fixed bin, 2 90 2 lines_needed fixed bin, 2 91 2 width_needed fixed bin, 2 92 2 n_options fixed bin; 2 93 2 94 dcl menu_format_ptr pointer; 2 95 dcl menu_requirements_ptr pointer; 2 96 2 97 dcl (menu_format_version_1, menu_requirements_version_1) 2 98 fixed bin internal static init (1) options (constant); 2 99 2 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 2 101 options (constant) init 2 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 2 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 2 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 2 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 2 106 2 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 1003 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 ---------------- */ 1004 4 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 4 2 4 3 /* Created 5/25/77 by J. Stern */ 4 4 4 5 4 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 4 7 2 version fixed bin, /* version number of this sturcture */ 4 8 2 id char (4) unaligned, /* terminal id from answerback */ 4 9 2 term_type char (32) unaligned, /* terminal type name */ 4 10 2 line_type fixed bin, /* line type number */ 4 11 2 baud_rate fixed bin, 4 12 2 reserved (4) fixed bin; /* reserved for future use */ 4 13 4 14 4 15 dcl terminal_info_ptr ptr; 4 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 4 17 4 18 4 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 1005 5 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 5 2* 5 3* Values for the "access mode" argument so often used in hardcore 5 4* James R. Davis 26 Jan 81 MCR 4844 5 5* Added constants for SM access 4/28/82 Jay Pattin 5 6* Added text strings 03/19/85 Chris Jones 5 7**/ 5 8 5 9 5 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 5 11 dcl ( 5 12 N_ACCESS init ("000"b), 5 13 R_ACCESS init ("100"b), 5 14 E_ACCESS init ("010"b), 5 15 W_ACCESS init ("001"b), 5 16 RE_ACCESS init ("110"b), 5 17 REW_ACCESS init ("111"b), 5 18 RW_ACCESS init ("101"b), 5 19 S_ACCESS init ("100"b), 5 20 M_ACCESS init ("010"b), 5 21 A_ACCESS init ("001"b), 5 22 SA_ACCESS init ("101"b), 5 23 SM_ACCESS init ("110"b), 5 24 SMA_ACCESS init ("111"b) 5 25 ) bit (3) internal static options (constant); 5 26 5 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 5 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 5 29 5 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 5 31 static options (constant); 5 32 5 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 5 34 static options (constant); 5 35 5 36 dcl ( 5 37 N_ACCESS_BIN init (00000b), 5 38 R_ACCESS_BIN init (01000b), 5 39 E_ACCESS_BIN init (00100b), 5 40 W_ACCESS_BIN init (00010b), 5 41 RW_ACCESS_BIN init (01010b), 5 42 RE_ACCESS_BIN init (01100b), 5 43 REW_ACCESS_BIN init (01110b), 5 44 S_ACCESS_BIN init (01000b), 5 45 M_ACCESS_BIN init (00010b), 5 46 A_ACCESS_BIN init (00001b), 5 47 SA_ACCESS_BIN init (01001b), 5 48 SM_ACCESS_BIN init (01010b), 5 49 SMA_ACCESS_BIN init (01011b) 5 50 ) fixed bin (5) internal static options (constant); 5 51 5 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 1006 6 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 6 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 6 3 /* version number changed to 4, 08/10/78 WOS */ 6 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 6 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 6 6 6 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 6 8 2 version fixed bin, /* version of this structure - must be set, see below */ 6 9 2 switches aligned, /* various bit switch values */ 6 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 6 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 6 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 6 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 6 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 6 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 6 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 6 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 6 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 6 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 6 20 6 21 /* Limit of data defined for version 2 */ 6 22 6 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 6 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 6 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 6 26 /* minimum of 30 seconds required for repeat */ 6 27 /* otherwise, no repeat will occur */ 6 28 /* Limit of data defined for version 4 */ 6 29 6 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 6 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 6 32 6 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 6 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 6 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 6 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 6 37 6 38 /* END INCLUDE FILE query_info.incl.pl1 */ 1007 7 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 7 2* 7 3* This include file defines the structure used for ttt_info_$function_key_data 7 4* MCR 4671 James R. Davis Sept 80 7 5**/ 7 6 7 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 7 8 2 version fixed bin, 7 9 2 highest fixed bin, /* highest fkey */ 7 10 2 sequence, /* string of all seqs. */ 7 11 3 seq_ptr pointer, 7 12 3 seq_len fixed bin (21), 7 13 2 cursor_motion_keys, 7 14 3 home (0:3) like key_info, 7 15 3 left (0:3) like key_info, 7 16 3 up (0:3) like key_info, 7 17 3 right (0:3) like key_info, 7 18 3 down (0:3) like key_info, 7 19 2 function_keys (0:function_key_data_highest refer 7 20 (function_key_data.highest), 0:3) like key_info; 7 21 7 22 dcl (KEY_PLAIN init (0), 7 23 KEY_SHIFT init (1), 7 24 KEY_CTRL init (2), 7 25 KEY_CTRL_AND_SHIFT init (3) 7 26 ) fixed bin internal static options (constant); 7 27 7 28 dcl 1 ke|\3root_03 QEy AV0209 T4TAVtape_mult_  QEy AV0158 TecT쓨AVtape_mult_ )cQEy AV0033 Tk3&TAV!tape_mult_ =4QJm<AV0234 T]GhT4AVtape_mult_ CiQOzAV0213 T;eRT"_AVtape_mult_ EiOQAV0002 T *TbAVtape_mult_ >dQ/AV0153 TLTM6.AVtape_mult_ >Q;2AV0161 TЃTиLAVtape_mult_ h#jQ=AV0154 TQ 0`TQ+bAVtape_mult_ i?`DQTAV0176 TT{AVtape_mult_ LBTQAV0229 Tat4TbuAVtape_mult_ VwXQAV0104 TJTꚋ%AVhtape_mult_ WtVQAV0036 TlM,TlhHAV$tape_mult_ ^*_QAV0098 T9TnAVbtape_mult_ <NcQAV0170 Ts Ttmc2AVtape_mult_ KgQrAV0236 T bբT AVtape_mult_ NwQAV0089 T*AT١AVYtape_mult_ OuQ$DAV0126 T T AV~tape_mult_ a,ruQ<AV0069 T:T`gAVEtape_mult_ ]qxQJMAV0105 TKTSAVitape_mult_ KdQG8AV0094 T2TQAV^tape_mult_ PluQ[AV0184 TTcAVtape_mult_ FqQf*AV0238 T)T)AVtape_mult_ LkCQ{AV0202 T T *AVtape_mult_ LEQAV0226 TTAVtape_mult_ CiQ{AV0155 T߾TAVtape_mult_ A_MQAAV0092 TĴQBTĵ3LAV\tape_mult_ Ov=QAV0136 T6}"T7:~AVtape_mult_ Dh$Q;AV0004 327 336* 341 341 368* 371 371 377 377 383 383 386 386 388 388 391 392 421* 546* 549 549 555 555 581* 610* 613 613 619 621 623 623 689* 716* 717 719 719 730 770* 791* 793 793 817* 840* 844 859 859 860 860 871 871 872 996 996 alp 000104 automatic pointer dcl 63 set ref 904* 938* 940* answer 000122 automatic varying char(3) dcl 71 set ref 170* 175* 179* 182 answer_iocbp 6 000322 automatic pointer initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* answer_iocbp 6 000274 automatic pointer initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 973* ap 000102 automatic pointer dcl 62 set ref 149* 150 150 152 152 154 154 205* 206 242* 244 244 246 246 248 248 251 251 254 254 256 256 258 258 260 260 262 262 264 266 266 272 272 274 274 277 278 281 308 311 327 336* 341 368* 371 371 377 377 383 383 386 388 388 391 392 421* 546* 549 549 555 555 581* 610* 613 613 619 621 623 623 689* 716* 717 719 719 730 770* 791* 793 793 817* 840* 843 859 860 871 872 996 arg based char packed unaligned dcl 60 set ref 150 150 152 152 154 154 206 244 244 246 246 248 248 251 251 254 254 256 256 258 258 260 260 262 262 264 266 266 272 272 274 274 277 278 281* 308* 311* 327 341* 371 371 377 377 383 383 386* 388 388 391 392 549 549 555 555 613 613 619 621 623 623 717 719 719 730 793 793 859* 860* 871* 872 996* argl parameter fixed bin(21,0) dcl 934 set ref 930 938* 940* argn parameter fixed bin(17,0) dcl 932 set ref 930 938* 940* argp parameter pointer dcl 933 set ref 930 938* 940* argx 001554 automatic fixed bin(17,0) dcl 598 in begin block on line 593 set ref 609* 610* 688* 688 689* argx 001443 automatic fixed bin(17,0) dcl 360 in begin block on line 350 set ref 367* 368* 420* 420 421* argx 000376 automatic fixed bin(17,0) dcl 218 in procedure "scan_controls" set ref 241* 242* 333 335* 335 336* argx 000100 automatic fixed bin(17,0) dcl 139 in begin block on line 138 set ref 148* 149* 204* 204 205* argx 001604 automatic fixed bin(17,0) dcl 707 in begin block on line 703 set ref 714* 716* 750* 752 755 757 767 769* 769 770* argx 001540 automatic fixed bin(17,0) dcl 540 in begin block on line 537 set ref 545* 546* 580* 580 581* argx 001662 automatic fixed bin(17,0) dcl 785 in begin block on line 782 set ref 790* 791* 812 815* 815 817* auto_menu_requirements 000351 automatic structure level 1 dcl 111 set ref 161 161 auto_query_info 000274 automatic structure level 1 unaligned dcl 81 set ref 179 179 brief 000136 automatic bit(1) packed unaligned dcl 75 set ref 131* 175 272* c 000424 automatic char(1) dcl 320 set ref 327* 328 center_headers 4 000343 automatic bit(1) level 3 packed packed unaligned dcl 110 set ref 254* 256* center_trailers 4(01) 000343 automatic bit(1) level 3 packed packed unaligned dcl 110 set ref 258* 260* char builtin function dcl 672 ref 681 choices 000101 automatic varying char array dcl 140 set ref 147* 150* 161* choicex 000101 automatic fixed bin(17,0) dcl 143 set ref 146* 150* code 000106 automatic fixed bin(35,0) dcl 64 in procedure "menu_create" set ref 161* 163 163* 172* 173 178* 187* 189 189* 229* 230 232* 368* 369 369* 407* 408 421* 422 422* 445* 446 448* 453 455* 481* 482 484* 546* 547 547* 571* 572 572* 581* 582 582* 610* 611 611* 635* 637* 640 644* 645 689* 690 690* 742* 745 745* 805* 806 806* 831* 832 832* 840* 841 841* 859* 860 860* 871* 872 872* 905* 906 911* 913 916 918* 924* 987* 992* code parameter fixed bin(35,0) dcl 963 in procedure "get_query_info" ref 960 970 com_err_ 000110 constant entry external dcl 897 ref 920 924 command_query_ 000062 constant entry external dcl 121 ref 179 complain 000116 automatic entry variable dcl 70 set ref 281 311 324 341 455 484 909* 920* 987 992 996 constraints 1 000343 automatic structure level 2 dcl 110 count parameter fixed bin(17,0) dcl 291 set ref 289 296* 296 count_flag 001557 automatic bit(1) packed unaligned dcl 601 set ref 605* 623* 635 635 637 649 653* cp_escape_control 1(02) 000274 automatic bit(2) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* 969* cp_escape_control 1(02) 000322 automatic bit(2) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* create 000363 automatic bit(1) dcl 119 set ref 131* 172* 185* cu_$af_arg_ptr_rel 000120 constant entry external dcl 936 ref 938 cu_$af_return_arg 000114 constant entry external dcl 899 ref 905 cu_$arg_list_ptr 000112 constant entry external dcl 898 ref 904 cu_$arg_ptr_rel 000122 constant entry external dcl 937 ref 940 cursor_motion_keys 5 based structure level 2 dcl 7-7 cv_dec_check_ 000066 constant entry external dcl 304 ref 308 dfkey_string based char packed unaligned dcl 357 set ref 451* 459* 463 466* dfkey_string_len 001440 automatic fixed bin(21,0) dcl 356 set ref 364* 392* 451 451 459 459 459 462 463 466 466 dfkey_string_ptr 001436 automatic pointer dcl 355 set ref 363* 391* 449 451 459 459 463 466 dirname 000211 automatic char(168) packed unaligned dcl 78 set ref 130* 172* 742* 805* 831* 859* 862 953* 955 down 25 based structure array level 3 dcl 7-7 empty builtin function dcl 103 ref 353 443 ename 000263 automatic char(32) packed unaligned dcl 79 set ref 130* 172* 742* 805* 831* 859* 862 954* 955 error_table_$active_function 000014 external static fixed bin(35,0) dcl 92 ref 911 error_table_$bad_conversion 000016 external static fixed bin(35,0) dcl 92 set ref 311* error_table_$badopt 000020 external static fixed bin(35,0) dcl 92 set ref 281* 996* error_table_$bigarg 000022 external static fixed bin(35,0) dcl 92 set ref 324* error_table_$no_table 000074 external static fixed bin(35,0) dcl 442 ref 446 error_table_$noarg 000024 external static fixed bin(35,0) dcl 92 set ref 341* 637 767* 812* error_table_$noentry 000026 external static fixed bin(35,0) dcl 92 ref 173 error_table_$not_act_fnc 000116 external static fixed bin(35,0) dcl 900 ref 916 error_table_$too_many_args 000030 external static fixed bin(35,0) dcl 92 set ref 635 728* expand_pathname_$add_suffix 000102 constant entry external dcl 855 ref 859 explanation_len 14 000274 automatic fixed bin(21,0) initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 976* explanation_len 14 000322 automatic fixed bin(21,0) initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* explanation_ptr 12 000322 automatic pointer initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* explanation_ptr 12 000274 automatic pointer initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 975* f 001472 automatic pointer dcl 438 set ref 445* 449* 451* 459 459* 463 466* 472 fkey 001441 automatic bit(1) dcl 358 set ref 407* 431* flags 4 000343 automatic structure level 2 dcl 110 set ref 238* function_key_data based structure level 1 dcl 7-7 set ref 500 527 function_key_data_highest 000342 automatic fixed bin(17,0) dcl 7-35 set ref 499* 500 500 503 function_key_data_ptr 000340 automatic pointer dcl 7-34 set ref 500* 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 522 523 527 function_key_data_version_1 constant fixed bin(17,0) initial dcl 7-36 ref 502 function_keys 31 based structure array level 2 dcl 7-7 funk 000434 automatic pointer dcl 352 set ref 363* 386* 404 404* 407* funky_area 000436 automatic area(512) dcl 353 set ref 353* 443* 445 445 500 501 fx 001474 automatic fixed bin(17,0) dcl 439 set ref 462* 463 463* get_line_length_$switch 000064 constant entry external dcl 219 ref 229 get_system_free_area_ 000010 constant entry external dcl 56 ref 742 742 headers 000101 automatic varying char array dcl 141 set ref 147* 152* 161* headerx 000102 automatic fixed bin(17,0) dcl 143 set ref 146* 152* height_flag 001556 automatic bit(1) packed unaligned dcl 600 set ref 604* 621* 635 635 637 649 653* 660 highest 1 based fixed bin(17,0) level 2 dcl 7-7 set ref 459 500* 503* 516 517 home 5 based structure array level 3 dcl 7-7 i 001534 automatic fixed bin(17,0) dcl 497 set ref 518* 519 521 521 522 522 523* ioa_ 000076 constant entry external dcl 597 in begin block on line 593 ref 649 653 ioa_ 000100 constant entry external dcl 705 in begin block on line 703 ref 757 ioa_ 000104 constant entry external dcl 880 in procedure "result" ref 883 ioa_$rsnnl 000070 constant entry external dcl 430 ref 431 iocbp 000316 automatic pointer dcl 87 set ref 397* 407* 564* 571* 871* iox_$control 000052 constant entry external dcl 3- TǼ~TǼS4AVtape_mult_ g"`Q"AV0232 T=T=VAVtape_mult_ Qg}Q1:#AV0147 T45TRAVtape_mult_ Om Q6CsAV0190 TQaTRU3AVtape_mult_ Mg'Q;RCAV0196 TյsaTmAVtape_mult_ [pQ@U&AV0054 TV훈TV@AV6tape_mult_ OcQQESAV0173 TT׏FAVtape_mult_ LimQTfAV0021 Tfo[Tg$AVtape_mult_ TiQYAV0065 T|pTAVAtape_mult_ RiQ^%AV0239 Tmh&TmKUAVtape_mult_ UczQcAV0030 TT}AVtape_mult_ Mc QhѐAV0169 TuzTu,AVtape_mult_ MbuQ}AV0025 T߂T߃{AVtape_mult_ BesQ&AV0135 T $T XAVtape_mult_ Js9Q=AV0050 T6-TᑁAV2tape_mult_ [lQ>MAV0110 TpTĭAVntape_mult_ Jh Qa9AV0011 T晃W+T晘AV tape_mult_ EoQAV0152 TA|TAo+AVtape_mult_ Z2uQy0AV0182 T<TP AVtape_mult_ \oQ]AV0081 T#6?T$sAVQtape_mult_ gkQ%AV0191 T?¢TW,AVtape_mult_ LdQAV0039 T0κT0AV'tape_mult_ GlQAV0132 TTtjAVtape_mult_ Ya$QAV0019 T9T:AVtape_mult_ IbQAV0038 Too,TAV&tape_mult_ DvQAV0197 TE!TENXAVtape_mult_ eiQ#AV0181 T[*TʋAVtape_mult_ UrQ@AV0108 TQ8TRXyAVltape_mult_ \iQ@AV0043 TeϘTѰAV+tape_mult_ MiQL#AV0073 TTJ6TU4fAVItape_mult_ Gf&Q[AV0079 T based char packed unaligned dcl 85 set ref 172* 189 572* 805* 806 831* 832 menu_name_len 000314 automatic fixed bin(17,0) dcl 84 set ref 172 172 189 572 572 805 805 806 831 831 832 844* menu_namep 000312 automatic pointer dcl 83 set ref 172 189 572 805 806 831 832 843* menu_ptr 000320 automatic pointer dcl 88 set ref 161* 172* 407* 571* 644* 831* menu_requirements based structure level 1 dcl 2-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 2-97 ref 158 643 mf 000343 automatic structure level 1 dcl 110 set ref 161 161 mr 001550 automatic structure level 1 dcl 596 set ref 644 644 myname 000124 automatic char(32) packed unaligned dcl 72 set ref 179* 281* 311* 324* 341* 455* 484* 903* 924* 987* 992* 992* 996* n 001572 automatic fixed bin(17,0) dcl 671 set ref 674* 676* 678* 681 n_choices 000355 automatic fixed bin(17,0) dcl 114 set ref 135* 135 140 223* 248* n_columns 3 000343 automatic fixed bin(17,0) level 2 dcl 110 set ref 237* 251* n_headers 000356 automatic fixed bin(17,0) dcl 114 set ref 136* 136 141 223* 244* n_names 1 based fixed bin(17,0) level 2 dcl 1-5 ref 750 755 757 n_options 3 001550 automatic fixed bin(17,0) level 2 dcl 596 set ref 649* 649* 649 653* 653* 653 678 n_trailers 000357 automatic fixed bin(17,0) dcl 114 set ref 137* 137 142 223* 246* name defined char packed unaligned dcl 752 in begin block on line 751 set ref 755* 757* name parameter char packed unaligned dcl 893 in procedure "set_flavor_of_command" ref 887 903 name_string based char level 2 packed packed unaligned dcl 1-5 ref 755 755 757 757 name_string_length 2 based fixed bin(21,0) level 2 dcl 1-5 ref 755 757 names 3 based structure array level 2 dcl 1-5 nargs 000107 automatic fixed bin(17,0) dcl 65 set ref 127 148 241 333 367 545 609 714 714 767 790 812 905* nscode 000415 automatic fixed bin(35,0) dcl 305 set ref 308* 309 null builtin function dcl 103 ref 81 81 81 6-7 6-7 6-7 161 161 229 363 404 449 459 741 831 831 921 972 973 975 option_keys based char(1) array packed unaligned dcl 125 set ref 161* option_keys_len 000366 automatic fixed bin(21,0) dcl 124 set ref 161 227* 278* option_keys_ptr 000364 automatic pointer dcl 123 set ref 161 226* 277* pad_char 5 000343 automatic char(1) level 2 dcl 110 set ref 239* 264* padding 1(07) 000274 automatic bit(29) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* padding 1(07) 000322 automatic bit(29) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* pathname 000137 automatic char(168) packed unaligned dcl 77 set ref 130* 179* 187 187 189 806 832 862* 955* pathname_present 000134 automatic bit(1) packed unaligned dcl 73 set ref 131* 166 268* 362* 375* 399 542* 553* 566 606* 617* 628 712* 723* 738 786* 797* 802 person_id 000100 automatic char(22) packed unaligned dcl 950 set ref 952* 954 position 3 based fixed bin(21,0) array level 3 dcl 1-5 ref 755 757 prompt_after_explanation 1(06) 000322 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* prompt_after_explanation 1(06) 000274 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* query_code 3 000274 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 971* query_code 3 000322 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* query_info 000322 automatic structure level 1 dcl 6-7 query_info_version_5 constant fixed bin(17,0) initial dcl 6-35 ref 965 question_iocbp 4 000274 automatic pointer initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 972* question_iocbp 4 000322 automatic pointer initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* repeat_time 10 000274 automatic fixed bin(71,0) initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 974* repeat_time 10 000322 automatic fixed bin(71,0) initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* requote_string_ 000012 constant entry external dcl 57 ref 755 right 21 based structure array level 3 dcl 7-7 rtrim builtin function dcl 103 in procedure "menu_create" ref 187 187 761 862 862 954 955 rtrim builtin function dcl 672 in procedure "describe" ref 681 s 001462 automatic char(8) dcl 429 set ref 431* 432 seq_len 4 based fixed bin(21,0) level 3 dcl 7-7 set ref 505* seq_ptr 2 based pointer level 3 dcl 7-7 set ref 504* sequence 2 based structure level 2 in structure "function_key_data" dcl 7-7 in procedure "menu_create" sequence based char packed unaligned dcl 495 in procedure "make_function_key_info" set ref 501 504 505 521* sequence_index 25 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 514* sequence_index 5 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 506* sequence_index 21 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 512* sequence_index 15 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 510* sequence_index 11 based fixed bin(12,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 508* sequence_index 31 based fixed bin(12,0) array level 3 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 516* 522* sequence_length 11(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 509* sequence_length 15(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 511* sequence_length 25(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 515* sequence_length 31(12) based fixed bin(6,0) array level 3 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 463 517* 523* sequence_length 21(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 513* sequence_length 5(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed packed unsigned unaligned dcl 7-7 in procedure "menu_create" set ref 507* sequence_ptr 001532 automatic pointer dcl 496 set ref 501* 504 505 521 starname 001605 automatic char(128) packed unaligned dcl 708 set ref 730* 735* 742* starname_present 001645 automatic bit(1) packed unaligned dcl 709 set ref 711* 728 731* 735 status_code 2 000322 automatic fixed bin(35,0) initial level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" set ref 6-7* status_code 2 000274 automatic fixed bin(35,0) initial level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 81* 970* string parameter char packed unaligned dcl 494 ref 492 499 501 501 504 505 518 519 521 521 suppress_name_sw 1(01) 000274 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* 967* suppress_name_sw 1(01) 000322 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* suppress_spacing 1(04) 000274 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* 968* suppress_spacing 1(04) 000322 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* switches 1 000322 automatic structure level 2 in structure "query_info" dcl 6-7 in procedure "menu_create" switches 1 000274 automatic structure level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" swname_present 000135 automatic bit(1) packed unaligned dcl 74 set ref 362* 381* 397 542* 559* 564 term_type 2 001504 automatic char(32) level 2 packed packed unaligned dcl 478 set ref 487 terminal_info based structure level 1 dcl 4-6 terminal_info_version constant fixed bin(17,0) initial dcl 4-16 ref 480 ti 001504 automatic structure level 1 dcl 478 set ref 481 481 trailers 000101 automatic varying char array dcl 142 set ref 147* 154* 161* trailerx 000103 automatic fixed bin(17,0) dcl 143 set ref 146* 154* ttt_info_$function_key_data 000072 constant entry external dcl 440 ref 445 up 15 based structure array level 3 dcl 7-7 user_info_ 000124 constant entry external dcl 947 ref 952 user_info_$homedir 000126 constant entry external dcl 948 ref 953 v parameter char(8) dcl 879 in procedure "result" set ref 877 881 883* v 001570 automatic char(8) dcl 670 in procedure "describe" set ref 681* 682* version 000351 automatic fixed bin(17,0) level 2 in structure "auto_menu_requirements" dcl 111 in begin block on line 108 set ref 158* version 001550 automatic fixed bin(17,0) level 2 in structure "mr" dcl 596 in begin block on line 593 set ref 643* version 000343 automatic fixed bin(17,0) level 2 in structure "mf" dcl 110 in begin block on line 108 set ref 228* version 000274 automatic fixed bin(17,0) level 2 in structure "auto_query_info" dcl 81 in procedure "menu_create" set ref 965* version based fixed bin(17,0) level 2 in structure "function_key_data" dcl 7-7 in procedure "menu_create" set ref 502* version 001504 automatic fixed bin(17,0) level 2 in structure "ti" dcl 478 in procedure "get_term_type_name" set ref 480* which parameter char packed unaligned dcl 669 ref 667 674 676 678 678 width_flag 001555 automatic bit(1) packed unaligned dcl 599 set ref 603* 619* 635 635 637 649 653* 658 width_needed 2 001550 automatic fixed bin(17,0) level 2 dcl 596 set ref 649* 653* 674 x 000414 automatic fixed bin(35,0) dcl 303 set ref 308* 315 yes_or_no_sw 1 000322 automatic bit(1) initial level 3 in structure "query_info" packed packed unaligned dcl 6-7 in procedure "menu_create" set ref 6-7* yes_or_no_sw 1 000274 automatic bit(1) initial level 3 in structure "auto_query_info" packed packed unaligned dcl 81 in procedure "menu_create" set ref 81* 966* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 5-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 KEY_CTRL internal static fixed bin(17,0) initial dcl 7-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 7-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 7-22 M_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 5-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 W_ACCESS internal static bit(3) initial packed unaligned dcl 5-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 function_key_seqs based char packed unaligned dcl 7-32 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_$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_$write_record 000000 constant entry external dcl 3-8 key_info_ptr automatic pointer dcl 7-38 menu_$destroy 000000 constant entry external dcl 2-41 menu_format_ptr automatic pointer dcl 2-94 menu_list_n_names automatic fixed bin(17,0) dcl 1-17 menu_list_name_string_length automatic fixed bin(21,0) dcl 1-18 menu_requirements_ptr automatic pointer dcl 2-95 query_info_version_3 internal static fixed bin(17,0) initial dcl 6-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 6-34 query_info_version_6 internal static fixed bin(17,0) initial dcl 6-36 size builtin function dcl 103 terminal_info_ptr automatic pointer dcl 4-15 valid_args automatic fixed bin(17,0) dcl 76 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_OPT 006036 constant label dcl 996 ref 388 555 623 678 719 793 ERROR_EXIT 006071 constant label dcl 1000 ref 282 312 325 343 456 485 925 988 994 998 GOT_FUNCTION_KEY_INFO 003324 constant label dcl 472 ref 467 MISSING 001710 constant label dcl 341 ref 333 USAGE 006007 constant label dcl 992 ref 127 408 640 645 913 accumulate 002326 constant entry internal dcl 289 ref 244 246 248 arg_getter 006650 constant entry internal dcl 930 ref 149 205 242 336 368 421 546 581 610 689 716 770 791 817 840 describe 004704 constant entry internal dcl 667 ref 658 660 662 gen_err 007102 constant entry internal dcl 981 ref 163 187 189 369 422 547 572 582 611 690 728 745 767 806 812 832 841 860 872 get_default_vseg_path 006721 constant entry internal dcl 944 ref 166 399 566 628 738 802 get_function_key_info 003101 constant entry internal dcl 436 ref 404 get_menu_choice_begin 002543 constant label dcl 350 get_menu_name 006212 constant entry internal dcl 837 ref 132 365 543 607 788 get_menu_seg_info 006254 constant entry internal dcl 853 ref 270 374 552 616 722 796 get_next_arg 002475 constant entry internal dcl 331 ref 269 276 295 307 321 get_next_arg_char 002431 constant entry internal dcl 318 ref 264 get_next_arg_num 002341 constant entry internal dcl 301 ref 251 262 get_next_choice_arg 003000 constant entry internal dcl 417 ref 373 379 385 390 get_next_delete_arg 005746 constant entry internal dcl 810 ref 795 get_next_desc_arg 005010 constant entry internal dcl 685 ref 615 get_next_display_arg 004232 constant entry internal dcl 577 ref 551 557 get_next_list_arg 005476 constant entry internal dcl 764 ref 721 get_query_info 007050 constant entry internal dcl 960 ref 178 get_switch 006406 constant entry internal dcl 868 ref 380 558 get_term_type_name 003330 constant entry internal dcl 476 ref 445 445 key_str 003035 constant entry internal dcl 427 ref 411 411 lookup_menu 006072 constant entry internal dcl 828 ref 402 569 631 make_function_key_info 003427 constant entry internal dcl 492 ref 386 449 451 459 466 menu_create 000552 constant entry external dcl 23 menu_create_block 000571 constant label dcl 108 menu_delete 005543 constant entry external dcl 777 menu_delete_begin 005563 constant label dcl 782 menu_describe 004271 constant entry external dcl 589 menu_describe_begin 004312 constant label dcl 593 menu_display 004035 constant entry external dcl 533 menu_display_begin 004055 constant label dcl 537 menu_get_choice 002522 constant entry external dcl 346 menu_list 005047 constant entry external dcl 698 menu_list_begin 005066 constant label dcl 703 result 006471 constant entry internal dcl 877 ref 411 682 scan_controls 001750 constant entry internal dcl 216 ref 134 set_flavor_of_command 006531 constant entry internal dcl 887 ref 106 348 535 591 701 780 snarf 001626 constant entry internal dcl 197 ref 150 152 154 NAMES DECLARED BY CONTEXT OR IMPLICATION. byte builtin function ref 521 character builtin function ref 717 hbound builtin function ref 227 length builtin function ref 278 392 499 501 501 504 505 505 518 521 substr builtin function set ref 463 519 521* 521 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10066 10216 7354 10076 Length 10630 7354 130 376 511 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME menu_create 1700 external procedure is an external procedure. begin block on line 108 begin block shares stack frame of external procedure menu_create. begin block on line 138 222 begin block uses auto adjustable storage. snarf internal procedure shares stack frame of begin block on line 138. scan_controls internal procedure shares stack frame of external procedure menu_create. accumulate internal procedure shares stack frame of external procedure menu_create. get_next_arg_num internal procedure shares stack frame of external procedure menu_create. get_next_arg_char internal procedure shares stack frame of external procedure menu_create. get_next_arg internal procedure shares stack frame of external procedure menu_create. begin block on line 350 begin block shares stack frame of external procedure menu_create. get_next_choice_arg internal procedure shares stack frame of external procedure menu_create. key_str internal procedure shares stack frame of external procedure menu_create. get_function_key_info internal procedure shares stack frame of external procedure menu_create. get_term_type_name internal procedure shares stack frame of external procedure menu_create. make_function_key_info internal procedure shares stack frame of external procedure menu_create. begin block on line 537 begin block shares stack frame of external procedure menu_create. get_next_display_arg internal procedure shares stack frame of external procedure menu_create. begin block on line 593 begin block shares stack frame of external procedure menu_create. describe internal procedure shares stack frame of external procedure menu_create. get_next_desc_arg internal procedure shares stack frame of external procedure menu_create. begin block on line 703 begin block shares stack frame of external procedure menu_create. begin block on line 751 begin block shares stack frame of external procedure menu_create. get_next_list_arg internal procedure shares stack frame of external procedure menu_create. begin block on line 782 begin block shares stack frame of external procedure menu_create. get_next_delete_arg internal procedure shares stack frame of external procedure menu_create. lookup_menu internal procedure shares stack frame of external procedure menu_create. get_menu_name internal procedure shares stack frame of external procedure menu_create. get_menu_seg_info internal procedure shares stack frame of external procedure menu_create. get_switch internal procedure shares stack frame of external procedure menu_create. result internal procedure shares stack frame of external procedure menu_create. set_flavor_of_command internal procedure shares stack frame of external procedure menu_create. arg_getter 76 internal procedure is called by several nonquick procedures. get_default_vseg_path 86 internal procedure is called by several nonquick procedures. get_query_info internal procedure shares stack frame of begin block on line 138. gen_err 86 internal procedure is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 138 000100 argx begin block on line 138 000101 choicex begin block on line 138 000101 headers begin block on line 138 000101 choices begin block on line 138 000101 trailers begin block on line 138 000102 headerx begin block on line 138 000103 trailerx begin block on line 138 get_default_vseg_path 000100 person_id get_default_vseg_path menu_create 000100 al menu_create 000102 ap menu_create 000104 alp menu_create 000106 code menu_create 000107 nargs menu_create 000110 afl menu_create 000112 afp menu_create 000114 active menu_create 000116 complain menu_create 000122 answer menu_create 000124 myname menu_create 000134 pathname_present menu_create 000135 swname_present menu_create 000136 brief menu_create 000137 pathname menu_create 000211 dirname menu_create 000263 ename menu_create 000274 auto_query_info menu_create 000312 menu_namep menu_create 000314 menu_name_len menu_create 000316 iocbp menu_create 000320 menu_ptr menu_create 000322 query_info menu_create 000340 function_key_data_ptr menu_create 000342 function_key_data_highest menu_create 000343 mf begin block on line 108 000351 auto_menu_requirements begin block on line 108 000355 n_choices begin block on line 108 000356 n_headers begin block on line 108 000357 n_trailers begin block on line 108 000360 max_choice_len begin block on line 108 000361 max_line_len begin block on line 108 000362 keep_trying begin block on line 108 000363 create begin block on line 108 000364 option_keys_ptr begin block on line 108 000366 option_keys_len begin block on line 108 000376 argx scan_controls 000414 x get_next_arg_num 000415 nscode get_next_arg_num 000424 c get_next_arg_char 000434 funk begin block on line 350 000436 funky_area begin block on line 350 001436 dfkey_string_ptr begin block on line 350 001440 dfkey_string_len begin block on line 350 001441 fkey begin block on line 350 001442 keyno begin block on line 350 001443 argx begin block on line 350 001462 s key_str 001472 f get_function_key_info 001474 fx get_function_key_info 001504 ti get_term_type_name 001532 sequence_ptr make_function_key_info 001534 i make_function_key_info 001540 argx begin block on line 537 001550 mr begin block on line 593 001554 argx begin block on line 593 001555 width_flag begin block on line 593 001556 height_flag begin block on line 593 001557 count_flag begin block on line 593 001570 v describe 001572 n describe 001602 menu_list_info_ptr begin block on line 703 001604 argx begin block on line 703 001605 starname begin block on line 703 001645 starname_present begin block on line 703 001662 argx begin block on line 782 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a alloc_char_temp cat_realloc_chars enter_begin_block call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other begin_return_mac return_mac tra_ext_1 alloc_auto_adj shorten_stack ext_entry int_entry int_entry_desc op_alloc_ op_empty_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ command_query_ cu_$af_arg_ptr_rel cu_$af_return_arg cu_$arg_list_ptr cu_$arg_ptr_rel cv_dec_check_ expand_pathname_$add_suffix get_line_length_$switch get_system_free_area_ ioa_ ioa_ ioa_ ioa_$rsnnl iox_$control iox_$look_iocb menu_$create menu_$delete menu_$describe menu_$display menu_$get_choice menu_$list menu_$retrieve menu_$store requote_string_ ttt_info_$function_key_data user_info_ user_info_$homedir THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_conversion error_table_$badopt error_table_$bigarg error_table_$no_table error_table_$noarg error_table_$noentry error_table_$not_act_fnc error_table_$too_many_args iox_$user_io iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 81 000467 6 7 000517 23 000551 106 000560 127 000571 130 000574 131 000605 132 000610 134 000611 135 000612 136 000617 137 000624 138 000631 140 000634 141 000653 142 000671 150 000707 152 000721 154 000734 161 000747 146 001003 147 001006 148 001044 149 001055 150 001074 152 001125 154 001153 156 001200 158 001202 161 001205 163 001274 166 001317 169 001327 170 001332 171 001333 172 001337 173 001377 175 001404 178 001413 179 001421 182 001461 184 001467 185 001471 186 001472 187 001473 188 001530 189 001532 191 001620 192 001622 194 001623 209 001625 197 001626 203 001637 204 001641 205 001642 206 001661 207 001707 341 001710 343 001746 344 001747 216 001750 222 001751 223 001753 226 001756 227 001760 228 001762 229 001764 230 002001 232 002003 233 002004 236 002006 237 002007 238 002011 239 002017 241 002021 242 002031 244 002046 246 002063 248 002076 251 002111 254 002124 256 002137 258 002152 260 002165 262 002200 264 002213 266 002222 268 002232 269 002234 270 002235 271 002236 272 002237 274 002252 276 002262 277 002263 278 002265 279 002267 281 002270 282 002322 284 002323 286 002325 289 002326 295 002330 296 002331 297 002333 298 002340 301 002341 307 002343 308 002344 309 002367 311 002371 312 002424 315 002425 318 002431 321 002433 322 002434 324 002437 325 002463 327 002464 328 002471 331 002475 333 002476 335 002501 336 002502 337 002517 346 002520 348 002530 353 002543 362 002546 363 002550 364 002553 365 002554 367 002555 368 002565 369 002601 371 002617 373 002631 374 002632 375 002633 376 002635 377 002636 379 002646 380 002647 381 002650 382 002652 383 002653 385 002663 386 002664 387 002703 388 002704 390 002714 391 002715 392 002717 395 002721 397 002723 399 002731 402 002737 404 002740 407 002746 408 002767 411 002771 412 002775 531 002777 417 003000 420 003001 421 003002 422 003016 425 003034 427 003035 431 003037 432 003073 436 003101 443 003103 445 003106 446 003136 448 003142 449 003143 451 003157 452 003176 453 003177 455 003201 456 003224 459 003225 462 003256 463 003265 466 003302 467 003321 469 003322 472 003324 476 003330 480 003332 481 003334 482 003370 484 003372 485 003420 487 003421 492 003427 499 003440 500 003442 501 003454 502 003465 503 003467 504 003472 505 003473 506 003475 507 003511 508 003526 509 003541 510 003556 511 003571 512 003606 513 003621 514 003636 515 003651 516 003666 517 003721 518 003751 519 003761 521 003767 522 004011 523 004022 525 004025 527 004027 533 004033 535 004043 542 004055 543 004057 545 004060 546 004067 547 004103 549 004121 551 004133 552 004134 553 004135 554 004137 555 004140 557 004150 558 004151 559 004152 562 004154 564 004156 566 004164 569 004172 571 004173 572 004206 575 004227 587 004231 577 004232 580 004233 581 004234 582 004250 585 004266 589 004267 591 004277 603 004312 604 004313 605 004314 606 004315 607 004316 609 004317 610 004327 611 004343 613 004361 615 004373 616 004374 617 004375 618 004377 619 004400 621 004407 623 004416 626 004430 628 004432 631 004440 633 004441 635 004443 637 004470 640 004504 643 004506 644 004510 645 004525 647 004527 649 004531 653 004601 656 004651 658 004652 660 004663 662 004674 664 004701 695 004703 667 004704 674 004715 676 004726 678 004735 681 004747 682 005005 683 005007 685 005010 688 005011 689 005012 690 005026 693 005044 696 005045 698 005046 701 005055 711 005066 712 005067 714 005070 716 005101 717 005116 719 005127 721 005140 722 005141 723 005142 726 005144 728 005145 730 005167 731 005174 733 005176 735 005200 738 005205 741 005213 742 005215 745 005264 747 005302 750 005305 752 005315 755 005323 757 005420 760 005452 761 005454 773 005475 764 005476 767 005477 769 005522 770 005523 771 005540 775 005541 777 005542 780 005551 786 005563 788 005564 790 005565 791 005575 793 005612 795 005624 796 005625 797 005626 800 005630 802 005632 805 005640 806 005670 820 005744 810 005746 812 005747 815 005767 817 005770 818 006005 821 006006 992 006007 994 006035 996 006036 998 006070 1000 006071 828 006072 831 006073 832 006134 835 006210 837 006212 840 006213 841 006231 843 006247 844 006251 846 006253 853 006254 859 006255 860 006311 862 006332 864 006404 868 006406 871 006407 872 006433 875 006467 877 006471 881 006473 883 006510 884 006530 887 006531 903 006542 904 006547 905 006556 906 006573 908 006575 909 006577 911 006604 913 006612 915 006614 916 006615 918 006620 919 006621 920 006622 921 006626 922 006630 924 006631 925 006645 927 006646 930 006647 938 006655 940 006700 941 006717 944 006720 952 006726 953 006745 954 006757 955 007006 957 007046 960 007050 965 007052 966 007055 967 007057 968 007061 969 007063 970 007065 971 007067 972 007070 973 007072 974 007073 975 007075 976 007077 978 007100 981 007101 987 007115 988 007145 ----------------------------------------------------------- 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