COMPILATION LISTING OF SEGMENT explain_doc Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 06/18/86 1331.3 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(86-06-12,GJohnson), approve(86-06-12,MCR7410), 10* audit(86-06-17,Martinson), install(86-06-18,MR12.0-1079): 11* Changed to use iox_ user_output. 12* END HISTORY COMMENTS */ 13 14 15 /* format: style2 */ 16 explain_doc: 17 edoc: 18 proc; 19 20 21 /* HISTORY: 22*Written by Jim Paradise, fall 1980. 23*Modified: 24*03/03/81 by M. Pierret to include request loop and allow quitting 25* without closing data base. 26*06/04/81 M. Pierret "Another section?" to "More information?", 27* added "y" as acceptable answer, made description default. 28* added -no_description, -nd control arguments. 29*10/19/81 by M. Pierret to use display_info instead of display_flags. 30* 31*03/24/83 by J. Siwila to add menu displays for 12 groups of Multics 32* manuals and substring searching of input strings for mrds, 33* linus, and mrpg manuals. Also added "n" as acceptable 34* answer to prompt and took short names out of display. 35*04/22/83 by Matthew Pierret: Reformatted the HISTORY section so that it is 36* useable by subsys maintenance tools. Added a DESCRIPTION section. 37* Changed to set display_info.short_name_flag to off by default. 38* Added an automatic local_display_info, like display_info, upon 39* which display_info is based (display_info_ptr = addr 40* (local_display_info)). 41*05/24/83 by Matthew Pierret: Changed control arg processing loop to start 42* at 2 instead of 1, as the first non-null value in the 43* control_argument array is the control_argument(2). 44* Changed "-pathname" to "-database_pathname" and "-pn" to "-dbpn" 45* in the control_argument array. Filled out the argument_type array 46* to the same extent as the control_argument array. 47*07/15/83 by James Siwila: Added -no_audience, -no_table_of_contents, and 48* -no_new_features control arguments and a facility for displaying 49* the 12 manual subsets when the menu facility is not available or 50* not invoked by the user. 51*09/01/83 by M. Pierret: Removed -brief control argument. 52*09/23/83 by M. Pierret: General cleanup of code. Changed headers and trailers 53* of menus to be slightly more descriptive. Changed error messages 54* to be more descriptive and more complete. Added support of 55* -output_file. Changed handling of groups by setting up an include 56* file of based choice arrays (on for each group) with initial 57* attributes of the choices for each group. That way the GROUP case 58* statement cases are reduce to allocating the proper choices array. 59* Changed display of acceptable requests to be two-columned. 60* Changed default database path to >doc>facilities_data_dir. 61*09/29/83 by M. Pierret: Changed to always get new opening when -dbpn is 62* specified, and to close the existing opening if there is one. 63* Made -output_file_sw mean also -no_request_loop. 64*09/30/83 by Matthew Pierret: Changed to print "explain_doc must be followed..." 65* instead of "Command name must be followed..." and to use a local 66* variable for the code argument instead of (0) in calls in the 67* clean_up subroutine - dsl_$close was complaining about not getting 68* a correctly declared argument. Changed cleanup routines to cleanup 69* the screen if use_menu is on rather than video_is_on. Changed the 70* "new user" group name to "new_user". 71**/ 72 73 /* 74*DESCRIPTION: 75* This command retrieves information about a Multics documentaiton 76* manual stored in the online_doc.db database, and displays that information 77* for the user. 78* Usage: explain_doc ID {-control_args}; where ID may be a manual order 79* number (e.g., AG93) or the full name or short name of a manual. 80**/ 81 82 83 /* Automatic */ 84 85 dcl output_switch_name char (32); 86 dcl manual_id char (64) var; 87 dcl reply char (256) varying; 88 dcl request char (256) varying; 89 dcl mrds_database_path char (168); 90 dcl output_file_path char (168); 91 92 dcl ( 93 accept_control_argument, 94 mrds_scope_set, 95 completely_processed_reply, 96 display_all_manuals, 97 enter_request_loop init ("1"b), 98 manual_number_found, 99 quit_signalled 100 ) bit (1) aligned; 101 dcl (database_path_sw, output_file_sw) 102 bit (1) aligned init ("0"b); 103 104 dcl 1 local_display_info aligned like display_info; 105 106 dcl (accept_idx, first_delimiter, idx, manual_number, number_of_manuals, request_idx, start_idx) 107 fixed bin; 108 dcl arg_len fixed bin; 109 dcl arg_idx fixed bin; 110 dcl nargs fixed bin; 111 dcl control_argument_idx fixed bin; 112 dcl code fixed bin (35); 113 dcl mrds_dbi fixed bin (35) init (0); 114 dcl current_mrds_dbi fixed bin (35) init (0); 115 116 dcl manual_array (200) fixed bin; 117 dcl (arg_ptr, output_ptr, work_area_ptr) 118 ptr; 119 120 /* Based */ 121 122 dcl arg based (arg_ptr) char (arg_len); 123 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 124 125 /* Constant */ 126 127 dcl control_argument (1:29) char (32) varying options (constant) 128 init ("explain_doc", "-output_file", "-of", "-database_pathname", "-dbpn", 129 "-description", "-desc", "-audience", "-aud", "-table_of_contents", "-toc", 130 "-new_features", "-nf", "", "", "-no_request_loop", "-nrql", "-request_loop", 131 "-rql", "-all", "-a", "-no_description", "-no_desc", "-no_audience", "-no_aud", 132 "-no_table_of_contents", "-no_toc", "-no_new_features", "-no_nf") internal static; 133 dcl argument_type (1:29) char (64) varying options (constant) 134 init ("manual identifier", (2) (1)"output file pathname", 135 (2) (1)"database pathname", (24) (1)"") internal static; 136 dcl myname char (11) options (constant) init ("explain_doc") internal static; 137 dcl acceptable_requests (0:16) char (17) varying int static 138 init ("", "?", "yes", "y", "no", "n", "quit", "q", "description", "desc", 139 "audience", "aud", "table_of_contents", "toc", "new_features", "nf", "all"); 140 dcl ( 141 QUESTION_MARK_REQUEST_IDX 142 init (1), 143 FIRST_REQUEST_IDX init (2), 144 FIRST_SECTION_NAME_IDX init (8) 145 ) fixed bin internal static options (constant); 146 dcl LOWER_CASE_ALPHA char (26) int static options (constant) init ("abcdefghijklmnopqrstuvwxyz"); 147 dcl UPPER_CASE_ALPHA char (26) int static options (constant) init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 148 149 /* Builtin */ 150 151 dcl (addr, after, before, copy, empty, hbound, index, length, ltrim, null, rtrim, string, substr, translate, 152 unspec) builtin; 153 154 /* Condition */ 155 156 dcl cleanup condition; 157 158 159 /* Entry */ 160 161 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 162 dcl absolute_pathname_$add_suffix 163 entry (char (*), char (*), char (*), fixed bin (35)); 164 dcl active_fnc_err_ entry () options (variable); 165 dcl com_err_ entry options (variable); 166 dcl complain entry variable options (variable); 167 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 168 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 169 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 170 dcl display_doc entry (ptr, fixed bin (35), fixed bin, ptr, char (*) var, fixed bin (35)); 171 dcl dsl_$close entry () options (variable); 172 dcl dsl_$dl_scope_all entry (fixed binary (35), fixed binary (35)); 173 dcl dsl_$open entry options (variable); 174 dcl dsl_$retrieve entry options (variable); 175 dcl dsl_$set_scope_all entry options (variable); 176 dcl ioa_ entry options (variable); 177 dcl online_doc_db_index$set_index 178 entry (fixed bin (35)); 179 dcl online_doc_db_index$return_index 180 entry (fixed bin (35)); 181 dcl command_query_ entry () options (variable); 182 dcl define_area_ entry (ptr, fixed bin (35)); 183 dcl release_area_ entry (ptr); 184 dcl unique_chars_ entry (bit (*)) returns (char (15)); 185 186 /* External */ 187 188 dcl ( 189 error_table_$noarg, 190 error_table_$badopt, 191 error_table_$bad_arg, 192 error_table_$not_act_fnc, 193 error_table_$active_function, 194 error_table_$noentry, 195 mrds_error_$tuple_not_found, 196 mrds_error_$invalid_db_index 197 ) ext fixed bin (35); 198 dcl sys_info$max_seg_size ext fixed bin (35); 199 200 /* Menu dcls */ 201 202 dcl video_data_$terminal_iocb 203 ptr external; 204 dcl (video_is_on, use_menu) 205 bit (1) aligned; 206 dcl 1 user_io_window_info like window_position_info; 207 dcl reason char (512); 208 209 /* END OF DECLARATIONS */ 210 211 /* format: indcomtxt,^indblkcom */ 212 213 output_ptr, work_area_ptr = null; 214 mrds_scope_set, use_menu = "0"b; 215 video_is_on = (video_data_$terminal_iocb ^= null); 216 217 mrds_database_path = ">doc>facilities_data_dir>online_doc.db"; 218 219 manual_id = ""; 220 221 display_info_ptr = addr (local_display_info); 222 string (display_info) = "0"b; 223 display_info.header.order_number_flag, display_info.header.full_name_flag, 224 display_info.header.release_supported_flag, display_info.header.revision_flag, 225 display_info.text.description_flag = "1"b; 226 227 call cu_$af_return_arg (nargs, (null), (0), code); 228 if code = 0 229 then call active_fnc_err_ (error_table_$active_function, myname, ""); 230 else if code ^= error_table_$not_act_fnc 231 then do; 232 call com_err_ (code, myname); 233 return; 234 end; 235 236 complain = com_err_; 237 238 if nargs = 0 239 then do; 240 call complain (error_table_$noarg, myname, "^/Usage: ^a topic_name {-control_args}", myname); 241 return; 242 end; 243 accept_control_argument = "0"b; /* First argument cannot be a control argument. */ 244 control_argument_idx = 1; /* First argument must be of argument_type (1) - topic name. */ 245 246 ARGUMENT_PROCESSING_LOOP: 247 do arg_idx = 1 to nargs; 248 call cu_$arg_ptr (arg_idx, arg_ptr, arg_len, code); 249 if index (arg, "-") ^= 1 250 then do; 251 goto ARG (control_argument_idx); 252 253 /*** The argument is not a control argument. If no control argument has 254* been processed yet, the argument is of type argument_type (1). If a 255* control argument has been processed but the last control argument does not 256* expect an arguemnt, control_argument_idx is 0 and this case is in error. 257* If an argument to a control argument is expected, it is of type 258* argument_type (control_argument_idx). */ 259 260 ARG (0): /* unexpected argument */ 261 call complain (error_table_$badopt, myname, "Argument is out of place: ^a.", arg); 262 return; 263 264 ARG (1): /* manual identifier, immediately follows the command name. */ 265 if length (arg) + length (manual_id) + 1 > 64 266 then do; 267 call complain (error_table_$bad_arg, myname, 268 "^/The manual identifier ""^a ^a"" exceeds the 64 character limit.", manual_id, 269 arg); 270 return; 271 end; 272 else if manual_id = "" 273 then manual_id = ltrim (rtrim (arg)); 274 else manual_id = manual_id || " " || ltrim (rtrim (arg)); 275 accept_control_argument = "1"b; /* Next arg may be a control argument */ 276 control_argument_idx = 1; /* But next arg may also be more of manual_id */ 277 goto NEXT_1; 278 279 ARG (2): /* output file pathname */ 280 call absolute_pathname_ (arg, output_file_path, code); 281 if code ^= 0 282 then do; 283 call complain (code, myname, "Output file pathname argument ^a.", arg); 284 return; 285 end; 286 287 accept_control_argument = "1"b; 288 control_argument_idx = 0; 289 goto NEXT_1; 290 291 ARG (4): /* database pathname */ 292 call absolute_pathname_$add_suffix (arg, "db", mrds_database_path, code); 293 if code ^= 0 294 then do; 295 call complain (code, myname, "Data base pathname argument ^a.", arg); 296 return; 297 end; 298 299 accept_control_argument = "1"b; 300 control_argument_idx = 0; 301 goto NEXT_1; 302 303 NEXT_1: 304 end; 305 else if ^accept_control_argument 306 then do; 307 308 /*** A control argument was specified, but the command was not expecting 309* a control argument at this point. It was expecting the argument 310* associated with control_argument(control_argument_idx), which is 311* described in argument_type (control_argument_idx). 312* It should never be the case that accept_control_argument is off and 313* control_argument_idx is equal to 0. */ 314 315 call complain (error_table_$noarg, myname, "^a must be followed by a^[n^] ^a.", 316 control_argument (control_argument_idx), 317 (index ("aeiouh", substr (argument_type (control_argument_idx), 1, 1)) > 0), 318 argument_type (control_argument_idx)); 319 return; 320 end; 321 else do; 322 323 /*** The argument is a control argument and it is expected. Find the control 324* argument in the control_argument array. The index into this array identifies 325* the case to process in the following case statement (computed goto). */ 326 327 do control_argument_idx = 2 to hbound (control_argument, 1) 328 while (control_argument (control_argument_idx) ^= arg); 329 end; 330 if control_argument_idx > hbound (control_argument, 1) 331 then do; 332 call complain (error_table_$badopt, myname, "^a", arg); 333 return; 334 end; 335 336 goto CONTROL_ARG (control_argument_idx); 337 338 /*** Case of control argument with the index control_argument_idx. In each 339* case where an argument is expected to follow the control argument, 340* accept_control_argument is turned off so that an error occurs if the 341* next argument is a control argument. If no argument is expected, 342* accept_control_argument is turned on, meaning that control arguments are 343* allowed, and control_argument_idx is set to 0, indicating that there is 344* no control argument expecting an argument. */ 345 346 347 CONTROL_ARG (2): 348 CONTROL_ARG (3): /* -output_file, -of */ 349 output_file_sw = "1"b; 350 accept_control_argument = "0"b; 351 control_argument_idx = 2; 352 goto NEXT_ARG; 353 354 CONTROL_ARG (4): 355 CONTROL_ARG (5): /* -database_pathname, -dbpn */ 356 database_path_sw = "1"b; 357 accept_control_argument = "0"b; 358 control_argument_idx = 4; 359 goto NEXT_ARG; 360 361 CONTROL_ARG (6): 362 CONTROL_ARG (7): /* -description, -desc */ 363 display_info.text.description_flag = "1"b; 364 accept_control_argument = "1"b; /* Next argument may be control argument */ 365 control_argument_idx = 0; /* No non-control argument argument is expected. */ 366 goto NEXT_ARG; 367 368 CONTROL_ARG (8): 369 CONTROL_ARG (9): /* -audience, -aud */ 370 display_info.text.audience_flag = "1"b; 371 accept_control_argument = "1"b; /* Next argument may be control argument */ 372 control_argument_idx = 0; /* No non-control argument argument is expected. */ 373 goto NEXT_ARG; 374 375 CONTROL_ARG (10): 376 CONTROL_ARG (11): /* -table_of_contents, -toc */ 377 display_info.text.table_of_contents_flag = "1"b; 378 accept_control_argument = "1"b; /* Next argument may be control argument */ 379 control_argument_idx = 0; /* No non-control argument argument is expected. */ 380 goto NEXT_ARG; 381 382 CONTROL_ARG (12): 383 CONTROL_ARG (13): /* -new_features, -nf */ 384 display_info.text.new_features_flag = "1"b; 385 accept_control_argument = "1"b; /* Next argument may be control argument */ 386 control_argument_idx = 0; /* No non-control argument argument is expected. */ 387 goto NEXT_ARG; 388 389 CONTROL_ARG (14): 390 CONTROL_ARG (15): /* "", "" */ 391 goto NEXT_ARG; 392 393 CONTROL_ARG (16): 394 CONTROL_ARG (17): /* -no_request_loop, -nrql */ 395 enter_request_loop = "0"b; 396 accept_control_argument = "1"b; /* Next argument may be control argument */ 397 control_argument_idx = 0; /* No non-control argument argument is expected. */ 398 goto NEXT_ARG; 399 400 CONTROL_ARG (18): 401 CONTROL_ARG (19): /* -request_loop, -rql */ 402 enter_request_loop = "1"b; 403 accept_control_argument = "1"b; /* Next argument may be control argument */ 404 control_argument_idx = 0; /* No non-control argument argument is expected. */ 405 goto NEXT_ARG; 406 407 CONTROL_ARG (20): 408 CONTROL_ARG (21): /* -all, -a */ 409 string (display_info) = copy ("1"b, length (string (display_info))); 410 display_info.header.topics_flag = "0"b; 411 accept_control_argument = "1"b; /* Next argument may be control argument */ 412 control_argument_idx = 0; /* No non-control argument argument is expected. */ 413 goto NEXT_ARG; 414 415 CONTROL_ARG (22): 416 CONTROL_ARG (23): /* -no_description, -nd */ 417 display_info.text.description_flag = "0"b; 418 accept_control_argument = "1"b; /* Next argument may be control argument */ 419 control_argument_idx = 0; /* No non-control argument argument is expected. */ 420 goto NEXT_ARG; 421 422 CONTROL_ARG (24): 423 CONTROL_ARG (25): /* -no_audience, -naud */ 424 display_info.text.audience_flag = "0"b; 425 accept_control_argument = "1"b; /* Next argument may be control argument */ 426 control_argument_idx = 0; /* No non-control argument argument is expected. */ 427 goto NEXT_ARG; 428 429 CONTROL_ARG (26): 430 CONTROL_ARG (27): /* -no_table_of_contents, -ntoc */ 431 display_info.text.table_of_contents_flag = "0"b; 432 accept_control_argument = "1"b; /* Next argument may be control argument */ 433 control_argument_idx = 0; /* No non-control argument argument is expected. */ 434 goto NEXT_ARG; 435 436 CONTROL_ARG (28): 437 CONTROL_ARG (29): /* -no_new_features, -nnf */ 438 display_info.text.new_features_flag = "0"b; 439 accept_control_argument = "1"b; /* Next argument may be control argument */ 440 control_argument_idx = 0; /* No non-control argument argument is expected. */ 441 goto NEXT_ARG; 442 NEXT_ARG: 443 ; 444 end; 445 end ARGUMENT_PROCESSING_LOOP; 446 447 448 if ^accept_control_argument 449 then do; 450 451 /*** An argument was expected since control_argument_idx is non-zero, and 452* the argument was not optional, since accept_control_argument is off. */ 453 454 call complain (error_table_$noarg, myname, "^a must be followed by a^[n^] ^a.", 455 control_argument (control_argument_idx), 456 (index ("aeiouh", substr (argument_type (control_argument_idx), 1, 1)) > 0), 457 argument_type (control_argument_idx)); 458 return; 459 end; 460 461 if output_file_sw 462 then enter_request_loop = "0"b; 463 464 /**** End of argument processing. Execute the command. */ 465 466 on cleanup call cleanup_all; 467 468 /*** Prepare to access the online_doc data base by setting MRDS scope and/or 469* opening the data base. */ 470 471 call online_doc_db_index$return_index (current_mrds_dbi); 472 473 if database_path_sw 474 then mrds_dbi = 0; /* To guarantee a new opening. */ 475 else mrds_dbi = current_mrds_dbi; /* Use existing opening if there is one. */ 476 477 if mrds_dbi = 0 478 then do; 479 480 /*** The online_doc data base has not been opened yet in this process. Open it. */ 481 482 call open_data_base (mrds_database_path, mrds_dbi, code); 483 if code ^= 0 484 then call cleanup_and_abort (code, 485 "^/^10xThe data base is temporarily out of service. Try again shortly.^/^10xIf this problem persists, see your administrator.^s" 486 , ""); 487 end; 488 489 /*** Set the MRDS scope to allow this opening to read and to prevent nothing */ 490 491 call dsl_$set_scope_all (mrds_dbi, 1, 0, 30, code); 492 if code ^= 0 493 then if code = mrds_error_$invalid_db_index 494 then do; 495 496 /*** The index held by online_doc_db_index is incorrect. Reset it to zero and 497* re-open the data base. */ 498 499 call online_doc_db_index$set_index (0); 500 call open_data_base (mrds_database_path, mrds_dbi, code); 501 if code ^= 0 502 then call cleanup_and_abort (code, 503 "^/^10xThe data base is temporarily out of service. Try again shortly.^/^10xIf this problem persists, see your administrator.^s" 504 , ""); 505 call dsl_$set_scope_all (mrds_dbi, 1, 0, 30, code); 506 end; 507 508 if code ^= 0 509 then call cleanup_and_abort (code, 510 "^/^10xThe data base is temporarily out of service. Try again shortly.^/^10xIf this problem persists, see your administrator.^s" 511 , ""); 512 mrds_scope_set = "1"b; 513 514 /*** Set up query_info structure for later use in find_manual_number and nonmenu. */ 515 516 query_info.version = query_info_version_4; 517 query_info.switches.yes_or_no_sw = "0"b; 518 query_info.switches.suppress_name_sw = "1"b; 519 query_info.switches.cp_escape_control = "11"b; 520 query_info.switches.suppress_spacing = "0"b; 521 query_info.switches.padding = "0"b; 522 query_info.status_code = 0; 523 query_info.query_code = 0; 524 query_info.question_iocbp = null (); 525 query_info.answer_iocbp = null (); 526 query_info.repeat_time = 0; 527 528 /*** Find the identifying manual_number of the manual specified by the caller. */ 529 530 call find_manual_number (manual_id, display_all_manuals, manual_number_found, manual_number); 531 532 code = 0; 533 534 if display_all_manuals 535 then do; 536 537 /*** Retrieve the identifying manual number of all manuals. */ 538 539 manual_number_found = "1"b; 540 541 call dsl_$retrieve (mrds_dbi, "-range (x full_name_rel) -select x.manual_number", manual_number, code) 542 ; 543 if code ^= 0 544 then call cleanup_and_abort (error_table_$noentry, 545 "^/No information was found about any manuals in the data base ^a.", mrds_database_path); 546 547 number_of_manuals = 0; 548 do while (code = 0 & number_of_manuals < hbound (manual_array, 1)); 549 550 number_of_manuals = number_of_manuals + 1; 551 manual_array (number_of_manuals) = manual_number; 552 553 call dsl_$retrieve (mrds_dbi, "-another", manual_number, code); 554 if code ^= 0 & code ^= mrds_error_$tuple_not_found 555 then call cleanup_and_abort (code, "^/Could not retrieve information about all of the manuals.", 556 ""); 557 558 code = 0; 559 end; 560 end; 561 562 if ^manual_number_found 563 then call cleanup_and_abort (error_table_$noentry, "^/No manual information for ""^a""", rtrim (manual_id)); 564 565 if output_file_sw 566 then do; 567 568 /*** Output should be directed to output_file_path. */ 569 570 output_switch_name = "online_doc_output" || unique_chars_ ("0"b); 571 call iox_$attach_name (output_switch_name, output_ptr, ("vfile_ " || output_file_path || " -extend"), 572 null, code); 573 if code ^= 0 574 then call cleanup_and_abort (code, "^/Output could not be directed to ^a.", (output_file_path)); 575 call iox_$open (output_ptr, Stream_output, "0"b, code); 576 if code ^= 0 577 then call cleanup_and_abort (code, "^/Output could not be directed to ^a.", (output_file_path)); 578 end; 579 else output_ptr = iox_$user_output; 580 581 quit_signalled = "0"b; 582 583 PRINT_AND_PROMPT_LOOP: 584 do while (^quit_signalled); 585 586 /*** Display information about selected manuals */ 587 588 if string (display_info) ^= "0"b /* Have something to print */ 589 then if ^display_all_manuals 590 then call display_doc (output_ptr, mrds_dbi, manual_number, display_info_ptr, "", code); 591 else do idx = 1 to number_of_manuals; 592 593 manual_number = manual_array (idx); 594 call display_doc (output_ptr, mrds_dbi, manual_number, display_info_ptr, "", code); 595 end; 596 597 if enter_request_loop 598 then do; 599 600 /*** Caller wants to be prompted for more information. Display prompt and 601* get caller's reply. */ 602 603 call command_query_ (addr (query_info), reply, myname, "More information?"); 604 string (display_info) = "0"b; /* Assume nothing */ 605 completely_processed_reply = "0"b; 606 end; 607 else completely_processed_reply, quit_signalled = "1"b; 608 /* Avoid processing of reply as there is none and exit prompt loop. */ 609 610 PROCESS_REPLY_TO_PROMPT_LOOP: 611 do while (^completely_processed_reply); 612 613 /*** Process each request in the reply, where requests are delimited by " ". */ 614 615 reply = ltrim (reply); 616 617 if index (reply, " ") = 0 618 then do; 619 request = reply; 620 reply = ""; 621 end; 622 else do; 623 request = before (reply, " "); 624 reply = ltrim (after (reply, " ")); 625 end; 626 627 do request_idx = 0 to hbound (acceptable_requests, 1) 628 while (acceptable_requests (request_idx) ^= request); 629 end; 630 631 goto REQUEST (request_idx); 632 633 /*** Go to the case which handles the caller's request. */ 634 635 REQUEST (0): /* "" */ 636 completely_processed_reply = "1"b; 637 goto NEXT_REQUEST; 638 REQUEST (1): /* ? */ 639 REQUEST (2): /* yes */ 640 REQUEST (3): /* y */ 641 if request_idx = QUESTION_MARK_REQUEST_IDX 642 then do; 643 start_idx = FIRST_REQUEST_IDX; 644 call ioa_ ("^/The following requests are acceptable:"); 645 end; 646 else do; 647 start_idx = FIRST_SECTION_NAME_IDX; 648 call ioa_ ("^/The following sections can be displayed:"); 649 end; 650 651 do accept_idx = start_idx by 2 to hbound (acceptable_requests, 1); 652 call ioa_ ("^7x^a^[,^35t^a,^;^s^]", acceptable_requests (accept_idx), 653 (accept_idx < hbound (acceptable_requests, 1)), 654 acceptable_requests (min (accept_idx + 1, hbound (acceptable_requests, 1)))); 655 end; 656 657 if request_idx = QUESTION_MARK_REQUEST_IDX 658 then completely_processed_reply = "1"b; 659 else do; 660 call command_query_ (addr (query_info), reply, myname, 661 "Which section(s) do you wish to see?"); 662 string (display_info) = "0"b; 663 completely_processed_reply = "0"b; 664 end; 665 goto NEXT_REQUEST; 666 REQUEST (4): 667 REQUEST (5): 668 REQUEST (6): 669 REQUEST (7): /* no, n, quit, q */ 670 completely_processed_reply, quit_signalled = "1"b; 671 goto NEXT_REQUEST; 672 REQUEST (8): 673 REQUEST (9): /* description, desc */ 674 display_info.text.description_flag = "1"b; 675 goto NEXT_REQUEST; 676 REQUEST (10): 677 REQUEST (11): /* audience, */ 678 display_info.text.audience_flag = "1"b; 679 goto NEXT_REQUEST; 680 REQUEST (12): 681 REQUEST (13): /* table_of_contents, toc */ 682 display_info.text.table_of_contents_flag = "1"b; 683 goto NEXT_REQUEST; 684 REQUEST (14): 685 REQUEST (15): /* new_features, */ 686 display_info.text.new_features_flag = "1"b; 687 goto NEXT_REQUEST; 688 REQUEST (16): /* all */ 689 string (display_info.text) = copy ("1"b, length (string (display_info.text))); 690 goto NEXT_REQUEST; 691 REQUEST (17): /* invalid response */ 692 call ioa_ ("""^a"" is not a valid response. Type ? for a list of valid responses.", rtrim (request)); 693 completely_processed_reply = "1"b; 694 string (display_info) = "0"b; /* In case some flags were set because of this reply. */ 695 goto NEXT_REQUEST; 696 697 NEXT_REQUEST: 698 end PROCESS_REPLY_TO_PROMPT_LOOP; 699 end PRINT_AND_PROMPT_LOOP; 700 701 if code ^= 0 702 then call complain (code, myname); 703 704 call clean_up; 705 706 MAIN_RETURN: 707 return; 708 709 /* cleanup procedures */ 710 711 712 cleanup_and_abort: 713 proc (cab_code, cab_err_msg, cab_err_msg_arg); 714 715 dcl cab_code fixed bin (35); 716 dcl cab_err_msg char (*) var; 717 dcl cab_err_msg_arg char (*); 718 719 if use_menu 720 then call cleanup_screen; 721 call clean_up; 722 call complain (cab_code, myname, cab_err_msg, cab_err_msg_arg); 723 goto MAIN_RETURN; 724 725 end cleanup_and_abort; 726 727 cleanup_all: 728 proc; 729 730 call cleanup_screen; 731 call clean_up; 732 733 end cleanup_all; 734 735 clean_up: 736 proc; 737 738 dcl cu_code fixed bin (35) init (0); 739 740 if output_ptr ^= null & output_file_sw 741 then do; 742 call iox_$close (output_ptr, (cu_code)); 743 call iox_$detach_iocb (output_ptr, (cu_code)); 744 end; 745 746 if mrds_scope_set 747 then call dsl_$dl_scope_all (mrds_dbi, (cu_code)); 748 if current_mrds_dbi ^= 0 & current_mrds_dbi ^= mrds_dbi 749 then call dsl_$close (current_mrds_dbi, (cu_code)); 750 if work_area_ptr ^= null 751 then call release_area_ (work_area_ptr); 752 753 end clean_up; 754 755 cleanup_screen: 756 proc; 757 758 if use_menu 759 then call window_$clear_window (iox_$user_io, (0)); 760 761 762 end cleanup_screen; 763 764 find_manual_number: 765 proc (fmn_manual_id, fmn_display_all_manuals, fmn_manual_number_found, fmn_manual_number); 766 767 dcl fmn_manual_id char (*) varying; 768 dcl fmn_display_all_manuals 769 bit (1) aligned; 770 dcl fmn_manual_number_found 771 bit (1) aligned; 772 dcl fmn_manual_number fixed bin; 773 774 dcl (manual_name, manual_id_string) 775 char (64) varying; 776 dcl headers (2) char (70) var; 777 dcl trailers (2) char (50) var; 778 dcl order_number char (4); 779 780 dcl (fits_order_number_pattern, fkey) 781 bit (1) aligned; 782 783 dcl choice fixed bin; 784 dcl group_name_idx fixed bin; 785 dcl manual_number fixed bin; 786 787 dcl menu_ptr ptr; 788 789 dcl ( 790 LOWER_CASE_ALPHA char (26) init ("abcdefghijklmnopqrstuvwxyz"), 791 UPPER_CASE_ALPHA char (26) init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 792 NUMERIC char (10) init ("0123456789"), 793 GROUP_PROMPT char (80) var 794 init ("Select from the list by typing the associated number and RETURN:") 795 ) internal static options (constant); 796 797 798 dcl 1 local_area_info aligned like area_info; 799 dcl 1 local_menu_format like menu_format; 800 dcl 1 local_menu_requirements 801 like menu_requirements; 802 803 804 unspec (local_area_info) = "0"b; 805 local_area_info.version = 1; 806 local_area_info.control.extend = "1"b; 807 local_area_info.owner = myname; 808 local_area_info.size = sys_info$max_seg_size; 809 local_area_info.areap = null; 810 811 call define_area_ (addr (local_area_info), code); 812 if code ^= 0 813 then call cleanup_and_abort (code, "Cannot define area.", ""); 814 815 work_area_ptr = local_area_info.areap; 816 817 fmn_display_all_manuals = "0"b; 818 fmn_manual_number_found = "0"b; 819 fmn_manual_number = 0; 820 manual_id_string = translate (fmn_manual_id, LOWER_CASE_ALPHA, UPPER_CASE_ALPHA); 821 822 if manual_id_string = "*" 823 then do; 824 fmn_display_all_manuals = "1"b; 825 return; 826 end; 827 828 829 if length (manual_id_string) >= 4 & length (manual_id_string) <= 8 830 then do; 831 832 /*** This may be an order number. See if manual_id_string fits the order number 833* pattern, AA99{xxx}, and search for the manual with that order number if it 834* fits the pattern. */ 835 836 fits_order_number_pattern = "1"b; 837 if verify (substr (manual_id_string, 1, 2), LOWER_CASE_ALPHA) ^= 0 838 then fits_order_number_pattern = "0"b; 839 if verify (substr (manual_id_string, 3, 2), NUMERIC) ^= 0 840 then fits_order_number_pattern = "0"b; 841 842 if fits_order_number_pattern 843 then do; 844 order_number = 845 translate (substr (manual_id_string, 1, 4), UPPER_CASE_ALPHA, LOWER_CASE_ALPHA); 846 call dsl_$retrieve (mrds_dbi, 847 "-range (x full_name_rel) -select x.manual_number -where x.order_number = .V.", 848 order_number, manual_number, code); 849 if code = 0 850 then fmn_manual_number_found = "1"b; 851 else if code ^= mrds_error_$tuple_not_found 852 then call cleanup_and_abort (code, 853 "^/This unexpected error occurred while searching for order ^/number ^a.", 854 order_number); 855 code = 0; 856 end; 857 end; 858 859 if ^fmn_manual_number_found 860 then do; 861 862 /*** No manual was found when manual_id_string was interpreted as an order number. 863* Try again using manual_id_string as a manual name. */ 864 865 manual_name = canonicalize_name (manual_id_string); 866 call dsl_$retrieve (mrds_dbi, "-range (x name_rel) -select x.manual_number -where x.name = .V.", 867 manual_name, manual_number, code); 868 if code = 0 869 then fmn_manual_number_found = "1"b; 870 else if code ^= mrds_error_$tuple_not_found 871 then call cleanup_and_abort (code, 872 "^/This unexpected error occurred while searching for manual name ""^a"".", (manual_name)); 873 code = 0; 874 end; 875 876 if ^fmn_manual_number_found 877 then do; 878 879 /*** No manual found with supplied name either. See if the supplied name 880* identifies one of a set of common groups of manuals, as defined in group_name. */ 881 882 do group_name_idx = 1 to hbound (group_name, 1) 883 while (index (manual_name, group_name (group_name_idx)) = 0); 884 end; 885 if group_name_idx > hbound (group_name, 1) 886 then call cleanup_and_abort (error_table_$noentry, 887 "^/No manual with an order number or name corresponding^/to ""^a"" was found.", 888 rtrim (manual_id_string)); 889 890 891 goto GROUP (group_name_idx); 892 893 /*** The manual_id_string specified does not match a manual name, but is one of a set 894* of very commonly used terms. Some of these terms refer to groups of manuals, 895* such as the Multics Programming Manuals (MPM) or Multics Administrator's 896* Manuals (MAM), or is the name of a product whose name does not match the 897* name of the manual in which it is described, such as MRDS, LINUS or WORDPRO. 898* For each case which deals with a group of manuals, allocate a structure 899* which contains a choices array with all of the manual names. The structures 900* are declared with initial attributes in online_doc_groups.incl.pl1. The 901* choices array will be used to set up a menu or to print the choices. 902* Those that deal with a single manual only just retrievpFor those that deals with a single manual only, 903* just get the manual_number of the manual. */ 904 905 GROUP (1): /* mpm */ 906 alloc mpm_choices in (work_area); 907 number_of_choices = mpm_choices.number_of_choices; 908 choices_ptr = addr (mpm_choices.choices (1)); 909 goto END_GROUP_CASE; 910 911 GROUP (2): /* mam */ 912 alloc mam_choices in (work_area); 913 number_of_choices = mam_choices.number_of_choices; 914 choices_ptr = addr (mam_choices.choices (1)); 915 goto END_GROUP_CASE; 916 917 GROUP (3): /* i/o */ 918 alloc io_choices in (work_area); 919 number_of_choices = io_choices.number_of_choices; 920 choices_ptr = addr (io_choices.choices (1)); 921 goto END_GROUP_CASE; 922 923 GROUP (4): /* cobol */ 924 alloc cobol_choices in (work_area); 925 number_of_choices = cobol_choices.number_of_choices; 926 choices_ptr = addr (cobol_choices.choices (1)); 927 goto END_GROUP_CASE; 928 929 GROUP (5): /* wordpro */ 930 alloc wordpro_choices in (work_area); 931 number_of_choices = wordpro_choices.number_of_choices; 932 choices_ptr = addr (wordpro_choices.choices (1)); 933 goto END_GROUP_CASE; 934 935 GROUP (6): /* emacs */ 936 alloc emacs_choices in (work_area); 937 number_of_choices = emacs_choices.number_of_choices; 938 choices_ptr = addr (emacs_choices.choices (1)); 939 goto END_GROUP_CASE; 940 941 942 GROUP (7): /* sdn */ 943 alloc sdn_choices in (work_area); 944 number_of_choices = sdn_choices.number_of_choices; 945 choices_ptr = addr (sdn_choices.choices (1)); 946 goto END_GROUP_CASE; 947 948 949 GROUP (8): /* plm */ 950 alloc plm_choices in (work_area); 951 number_of_choices = plm_choices.number_of_choices; 952 choices_ptr = addr (plm_choices.choices (1)); 953 goto END_GROUP_CASE; 954 955 956 GROUP (9): /* xmail */ 957 alloc xmail_choices in (work_area); 958 number_of_choices = xmail_choices.number_of_choices; 959 choices_ptr = addr (xmail_choices.choices (1)); 960 goto END_GROUP_CASE; 961 962 GROUP (10): /* pl1 */ 963 alloc pl1_choices in (work_area); 964 number_of_choices = pl1_choices.number_of_choices; 965 choices_ptr = addr (pl1_choices.choices (1)); 966 goto END_GROUP_CASE; 967 968 969 GROUP (11): /* fortran */ 970 alloc fortran_choices in (work_area); 971 number_of_choices = fortran_choices.number_of_choices; 972 choices_ptr = addr (fortran_choices.choices (1)); 973 goto END_GROUP_CASE; 974 975 976 GROUP (12): /* new_user */ 977 alloc new_user_choices in (work_area); 978 number_of_choices = new_user_choices.number_of_choices; 979 choices_ptr = addr (new_user_choices.choices (1)); 980 goto END_GROUP_CASE; 981 982 983 GROUP (13): /* mrds */ 984 call dsl_$retrieve (mrds_dbi, 985 "-range (x full_name_rel) -select x.manual_number -where x.order_number = .V.", "AW53", 986 manual_number, code); 987 if code = 0 988 then fmn_manual_number_found = "1"b; 989 else call cleanup_and_abort (code, 990 "^/This programming error occurred while searching for^/the manual with order number ^a.", 991 "AW53"); 992 goto END_GROUP_CASE; 993 994 GROUP (14): /* linus */ 995 call dsl_$retrieve (mrds_dbi, 996 "-range (x full_name_rel) -select x.manual_number -where x.order_number = .V.", "AZ49", 997 manual_number, code); 998 if code = 0 999 then fmn_manual_number_found = "1"b; 1000 else call cleanup_and_abort (code, 1001 "^/This programming error occurred while searching for^/the manual with order number ^a.", 1002 "AZ49"); 1003 goto END_GROUP_CASE; 1004 1005 GROUP (15): /* mrpg */ 1006 call dsl_$retrieve (mrds_dbi, 1007 "-range (x full_name_rel) -select x.manual_number -where x.order_number = .V.", "CC69", 1008 manual_number, code); 1009 if code = 0 1010 then fmn_manual_number_found = "1"b; 1011 else call cleanup_and_abort (code, 1012 "^/This programming error occurred while searching for^/the manual with order number ^a.", 1013 "CC69"); 1014 goto END_GROUP_CASE; 1015 end; 1016 1017 END_GROUP_CASE: 1018 if ^fmn_manual_number_found 1019 then do; 1020 1021 /*** No manual has been selected yet. Give user a choice of which manual 1022* to see. */ 1023 1024 headers (1) = "The manual may refer to any of the following."; 1025 headers (2) = "On which manual do you wish to see information?"; 1026 trailers (1) = "-"; 1027 trailers (2) = "Type the associated number to select a manual."; 1028 1029 if video_is_on 1030 then call setup_menu (use_menu); 1031 1032 if use_menu 1033 then call menu (); /* Select with a menu. */ 1034 else call nonmenu (); /* Select without a menu */ 1035 end; 1036 1037 1038 if fmn_manual_number_found 1039 then fmn_manual_number = manual_number; 1040 1041 return; 1042 1043 /* **** Subroutines of find_manual_number, setup_menu, menu and nonmenu. */ 1044 1045 setup_menu: 1046 proc (sm_use_menu); 1047 1048 dcl sm_use_menu bit (1) aligned; 1049 dcl sm_code fixed bin (35); 1050 1051 sm_code = 0; 1052 sm_use_menu = "0"b; 1053 1054 user_io_window_info.version = window_position_info_version_1; 1055 call iox_$control (iox_$user_io, "get_window_info", addr (user_io_window_info), sm_code); 1056 if sm_code ^= 0 1057 then call sm_cleanup_and_return; 1058 1059 call window_$clear_window (iox_$user_io, sm_code); 1060 if sm_code ^= 0 1061 then call sm_cleanup_and_return; 1062 1063 local_menu_format.version = menu_format_version_1; 1064 local_menu_format.max_width = user_io_window_info.width; 1065 1066 local_menu_format.n_columns = 1; 1067 local_menu_format.center_headers = "1"b; 1068 local_menu_format.center_trailers = "1"b; 1069 local_menu_format.pad = "0"b; 1070 local_menu_format.pad_char = "-"; 1071 1072 local_menu_requirements.version = menu_requirements_version_1; 1073 local_menu_format.max_height = hbound (choices, 1) + 5; 1074 1075 if local_menu_format.max_height > user_io_window_info.extent.height 1076 then call sm_cleanup_and_return; 1077 1078 call menu_$create (choices, headers, trailers, addr (local_menu_format), MENU_OPTION_KEYS, work_area_ptr, 1079 addr (local_menu_requirements), menu_ptr, code); 1080 if code ^= 0 1081 then call sm_cleanup_and_return; 1082 1083 call menu_$display (iox_$user_io, menu_ptr, sm_code); 1084 if code ^= 0 1085 then call sm_cleanup_and_return; 1086 1087 sm_use_menu = "1"b; 1088 1089 SM_RETURN: 1090 return; 1091 1092 sm_cleanup_and_return: 1093 proc; 1094 1095 call cleanup_screen; 1096 goto SM_RETURN; 1097 1098 end sm_cleanup_and_return; 1099 1100 end setup_menu; 1101 1102 menu: 1103 proc (); 1104 1105 /**** The menu subroutine displays a menu of manuals and returns the 1106* user's choice to find_manual_number by setting the value of manual_number. 1107* The menu must already be created and formatted. */ 1108 1109 dcl got_choice bit (1) aligned; 1110 1111 got_choice = "0"b; 1112 1113 do while (^got_choice); 1114 1115 call menu_$get_choice (iox_$user_io, menu_ptr, null, fkey, choice, code); 1116 if code ^= 0 1117 then call cleanup_and_abort (code, "Unable to get menu choice.", ""); 1118 1119 if fkey 1120 then call window_$bell (iox_$user_io, 0); 1121 else if choice = hbound (choices, 1) 1122 then got_choice = "1"b; /* None. Exit. */ 1123 else if choice < hbound (choices, 1) 1124 then do; 1125 1126 /*** A valid choice was made. Get the manual number of the selected manual. */ 1127 1128 got_choice = "1"b; 1129 manual_name = canonicalize_name ((choices (choice))); 1130 1131 call dsl_$retrieve (mrds_dbi, "-range (x name_rel) -select x.manual_number -where x.name = .V.", 1132 manual_name, manual_number, code); 1133 if code = 0 1134 then fmn_manual_number_found = "1"b; 1135 else if code = mrds_error_$tuple_not_found 1136 then call cleanup_and_abort (code, 1137 "^/The data base does not contain a complete selection of^/manuals. The ""^a"" manual is missing." 1138 , (choices (choice))); 1139 else call cleanup_and_abort (code, "^/This error occurred attempting to find the ""^a"" manual.", 1140 (choices (choice))); 1141 1142 call window_$clear_window (iox_$user_io, code); 1143 if code ^= 0 1144 then call cleanup_and_abort (code, "Unable to clear window.", ""); 1145 1146 end; 1147 else call window_$bell (iox_$user_io, 0); 1148 end; 1149 1150 return; 1151 1152 end menu; 1153 1154 nonmenu: 1155 proc (); 1156 1157 /*** Display a list of manual names, as in a menu, and prompt the user for 1158* a choice. */ 1159 1160 dcl got_choice bit (1) aligned; 1161 dcl (choice, choice_idx) fixed bin; 1162 dcl choice_string char (32) varying; 1163 1164 1165 display_info.display_leading_blank_line = "1"b; 1166 1167 call ioa_ ("^/^5x^a^/", headers (1)); 1168 1169 do choice_idx = 1 to hbound (choices, 1); 1170 call ioa_ ("^2x(^d) ^a", choice_idx, choices (choice_idx)); 1171 end; 1172 1173 got_choice = "0"b; 1174 do while (^got_choice); 1175 call command_query_ (addr (query_info), choice_string, "", GROUP_PROMPT); 1176 choice = cv_dec_check_ ((choice_string), code); 1177 if code ^= 0 1178 then call complain (code, myname, "^/You must reply with an integer number between 1 and ^d, inclusive.", 1179 hbound (choices, 1)); 1180 else if choice < 1 | choice > hbound (choices, 1) 1181 then call complain (code, myname, "^/You must reply with an integer number.", hbound (choices, 1)); 1182 else got_choice = "1"b; 1183 end; 1184 1185 if choice ^= hbound (choices, 1) 1186 then do; 1187 manual_name = canonicalize_name ((choices (choice))); 1188 1189 call dsl_$retrieve (mrds_dbi, "-range (x name_rel) -select x.manual_number -where x.name = .V.", 1190 manual_name, manual_number, code); 1191 if code = 0 1192 then fmn_manual_number_found = "1"b; 1193 else if code = mrds_error_$tuple_not_found 1194 then call cleanup_and_abort (code, 1195 "^/The data base does not contain a complete selection of^/manuals. The ""^a"" manual is missing." 1196 , (choices (choice))); 1197 else call cleanup_and_abort (code, "^/This error occurred attempting to find the ""^a"" manual.", 1198 (choices (choice))); 1199 end; 1200 1201 end nonmenu; 1202 1203 end find_manual_number; 1204 1205 open_data_base: 1206 proc (odb_mrds_database_path, odb_mrds_dbi, odb_code); 1207 1208 dcl odb_mrds_database_path char (*); 1209 dcl odb_mrds_dbi fixed bin (35); 1210 dcl odb_code fixed bin (35); 1211 1212 call dsl_$open (odb_mrds_database_path, odb_mrds_dbi, 1, odb_code); 1213 if odb_code = 0 1214 then call online_doc_db_index$set_index (odb_mrds_dbi); 1215 1216 return; 1217 1218 end open_data_base; 1219 1220 canonicalize_name: 1221 proc (cn_input_string) returns (char (64) var); 1222 1223 dcl cn_input_string char (64) var; 1224 dcl cn_canonical_name char (64) var; 1225 dcl cn_string char (64) var; 1226 dcl cn_temp_string char (64) var; 1227 1228 cn_string = cn_input_string; 1229 1230 cn_string = translate (cn_string, "__", "- "); 1231 do while (index (cn_string, "__") ^= 0); 1232 cn_temp_string = after (cn_string, "__"); 1233 cn_string = before (cn_string, "__") || "_" || cn_temp_string; 1234 end; 1235 1236 cn_canonical_name = translate (cn_string, LOWER_CASE_ALPHA, UPPER_CASE_ALPHA); 1237 1238 return (cn_canonical_name); 1239 1240 end canonicalize_name; 1241 1 1 /* **** BEGIN INCLUDE FILE online_doc_groups.incl.pl1 **** */ 1 2 1 3 /* HISTORY: 1 4*Written by M. Pierret, 09/20/83. 1 5*Modified: 1 6*10/03/83 by Matthew Pierret: Changed "new user" to "new_user" 1 7**/ 1 8 1 9 dcl 1 mpm_choices aligned based (group_choices_ptr), 1 10 2 number_of_choices fixed bin (35), 1 11 2 mbz fixed bin (35) init (0), 1 12 2 choices (5 refer (mpm_choices.number_of_choices)) char (64) varying 1 13 init ( 1 14 "Introduction to Programming on Multics", 1 15 "Multics Programmer's Reference Guide", 1 16 "Multics Commands and Active Functions", 1 17 "Multics Subroutines and Input/Output Modules", 1 18 "None of the Above" 1 19 ); 1 20 1 21 dcl 1 mam_choices aligned based (group_choices_ptr), 1 22 2 number_of_choices fixed bin (35), 1 23 2 mbz fixed bin (35) init (0), 1 24 2 choices (7 refer (mam_choices.number_of_choices)) char (64) varying 1 25 init ( 1 26 "Multics Administrators' Manual--System", 1 27 "Multics Administrators' Manual--Project", 1 28 "Multics Administrators' Manual--Registration and Accounting", 1 29 "Multics Administrators' Manual--Resource Control", 1 30 "Multics Administrators' Manual--Communications", 1 31 "System Metering", 1 32 "None of the Above" 1 33 ); 1 34 1 35 dcl 1 io_choices aligned based (group_choices_ptr), 1 36 2 number_of_choices fixed bin (35), 1 37 2 mbz fixed bin (35) init (0), 1 38 2 choices (3 refer (io_choices.number_of_choices)) char (64) varying 1 39 init ( 1 40 "Multics Bulk Input/Output", 1 41 "Multics Subroutines and Input/Output Modules", 1 42 "None of the Above" 1 43 ); 1 44 1 45 dcl 1 cobol_choices aligned based (group_choices_ptr), 1 46 2 number_of_choices fixed bin (35), 1 47 2 mbz fixed bin (35) init (0), 1 48 2 choices (3 refer (cobol_choices.number_of_choices)) char (64) varying init ( 1 49 "Multics COBOL Reference Manual", 1 50 "Multics COBOL Users' Guide", 1 51 "None of the Above" 1 52 ); 1 53 1 54 dcl 1 wordpro_choices aligned based (group_choices_ptr), 1 55 2 number_of_choices fixed bin (35), 1 56 2 mbz fixed bin (35) init (0), 1 57 2 choices (3 refer (wordpro_choices.number_of_choices)) char (64) varying init ( 1 58 "WORDPRO Reference Guide", 1 59 "Guide to Multics WORDPRO for New Users", 1 60 "None of the Above" 1 61 ); 1 62 1 63 dcl 1 emacs_choices aligned based (group_choices_ptr), 1 64 2 number_of_choices fixed bin (35), 1 65 2 mbz fixed bin (35) init (0), 1 66 2 choices (4 refer (emacs_choices.number_of_choices)) char (64) varying init ( 1 67 "Introduction to Emacs Text Editor", 1 68 "Emacs Text Editor User's Guide", 1 69 "Multics Emacs Extension Writers' Guide", 1 70 "None of the Above" 1 71 ); 1 72 1 73 dcl 1 sdn_choices aligned based (group_choices_ptr), 1 74 2 number_of_choices fixed bin (35), 1 75 2 mbz fixed bin (35) init (0), 1 76 2 choices (5 refer (sdn_choices.number_of_choices)) char (64) varying init ( 1 77 "Multics User Ring Input/Output System SDN", 1 78 "Message Segment Facility SDN", 1 79 "Communication System SDN", 1 80 "Multics Library Maintenance SDN Preliminary Edition", 1 81 "None of the Above" 1 82 ); 1 83 1 84 dcl 1 plm_choices aligned based (group_choices_ptr), 1 85 2 number_of_choices fixed bin (35), 1 86 2 mbz fixed bin (35) init (0), 1 87 2 choices (6 refer (plm_choices.number_of_choices)) char (64) varying init ( 1 88 "Multics Storage System PLM", 1 89 "System Initialization PLM", 1 90 "Multics Reconfiguration PLM", 1 91 "Hardware and Software Formats PLM", 1 92 "Multics Library Maintenance PLM", 1 93 "None of the Above" 1 94 ); 1 95 1 96 dcl 1 xmail_choices aligned based (group_choices_ptr), 1 97 2 number_of_choices fixed bin (35), 1 98 2 mbz fixed bin (35) init (0), 1 99 2 choices (3 refer (xmail_choices.number_of_choices)) char (64) varying init ( 1 100 "Multics Executive Mail Facility Pocket Guide", 1 101 "Executive Mail Editing Operations Reference Card", 1 102 "None of the Above" 1 103 ); 1 104 1 105 dcl 1 pl1_choices aligned based (group_choices_ptr), 1 106 2 number_of_choices fixed bin (35), 1 107 2 mbz fixed bin (35) init (0), 1 108 2 choices (3 refer (pl1_choices.number_of_choices)) char (64) varying init ( 1 109 "Multics PL/1 Language Specification", 1 110 "Multics PL/1 Reference Manual", 1 111 "None of the Above" 1 112 ); 1 113 1 114 dcl 1 fortran_choices aligned based (group_choices_ptr), 1 115 2 number_of_choices fixed bin (35), 1 116 2 mbz fixed bin (35) init (0), 1 117 2 choices (3 refer (fortran_choices.number_of_choices)) char (64) varying init ( 1 118 "Multics FORTRAN Reference Manual", 1 119 "Multics FORTRAN Users' Guide", 1 120 "None of the Above" 1 121 ); 1 122 1 123 dcl 1 new_user_choices aligned based (group_choices_ptr), 1 124 2 number_of_choices fixed bin (35), 1 125 2 mbz fixed bin (35) init (0), 1 126 2 choices (5 refer (new_user_choices.number_of_choices)) char (64) varying init ( 1 127 "New User's Introduction to Multics--Part 1", 1 128 "New User's Introduction to Multics--Part 2", 1 129 "Introduction to Emacs Text Editor", 1 130 "Guide to Multics WORDPRO for New Users", 1 131 "None of the Above" 1 132 ); 1 133 1 134 1 135 dcl choices (number_of_choices) char (64) var based (choices_ptr); 1 136 1 137 dcl group_name (15) char (8) var internal static options (constant) 1 138 init ("mpm", "mam", "i/o", "cobol", "wordpro", "emacs", "sdn", "plm", "xmail", 1 139 "pl1", "fortran", "new_user", "mrds", "linus", "mrpg"); 1 140 1 141 dcl group_choices_ptr ptr; 1 142 dcl choices_ptr ptr; 1 143 dcl number_of_choices fixed bin; 1 144 1 145 /* ****** END INCLUDE FILE online_doc_groups.incl.pl1 **** */ 1242 1243 2 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 2 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 2 3 /* version number changed to 4, 08/10/78 WOS */ 2 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 2 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 2 6 2 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 2 8 2 version fixed bin, /* version of this structure - must be set, see below */ 2 9 2 switches aligned, /* various bit switch values */ 2 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 2 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 2 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 2 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 2 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 2 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 2 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 2 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 2 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 2 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 2 20 2 21 /* Limit of data defined for version 2 */ 2 22 2 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 2 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 2 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 2 26 /* minimum of 30 seconds required for repeat */ 2 27 /* otherwise, no repeat will occur */ 2 28 /* Limit of data defined for version 4 */ 2 29 2 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 2 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 2 32 2 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 2 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 2 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 2 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 2 37 2 38 /* END INCLUDE FILE query_info.incl.pl1 */ 1244 1245 3 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 3 2 /* format: style3 */ 3 3 3 4 /* Modified 26 January 1982 by William York to add the set_more_handler 3 5* and reset_more_handler control orders. */ 3 6 /* Modified October 1982 by WMY to add set and get_token_characters, 3 7* set and get_more_prompt. */ 3 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 3 9* structure. */ 3 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 3 11* partial screen width windows. */ 3 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 3 13* This should be removed when window_info.incl.pl1 is created. */ 3 14 /* Modified 29 February 1984 by Barmar to add version 1 3 15* get_editor_key_bindings_info. */ 3 16 /* Modified 1 March 1984 by Barmar to add version 1 3 17* set_editor_key_bindings_info. */ 3 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 3 19* line_editor_key_bindings_info, which includes the name, description, and 3 20* info path */ 3 21 3 22 /* structure for the set_window_info and get_window_info 3 23* control orders. */ 3 24 3 25 dcl 1 window_position_info 3 26 based (window_position_info_ptr), 3 27 2 version fixed bin, 3 28 2 origin, 3 29 3 column fixed bin, 3 30 3 line fixed bin, 3 31 2 extent, 3 32 3 width fixed bin, 3 33 3 height fixed bin; 3 34 3 35 dcl (window_position_info_version, window_position_info_version_1) 3 36 fixed bin internal static init (1) options (constant); 3 37 dcl window_position_info_ptr 3 38 pointer; 3 39 3 40 /* structure for the set_window_status and get_window_status 3 41* control orders */ 3 42 3 43 declare window_status_info_ptr 3 44 pointer; 3 45 declare 1 window_status_info 3 46 aligned based (window_status_info_ptr), 3 47 2 version fixed bin, 3 48 2 status_string bit (36) aligned; /* string (window_status) */ 3 49 /* see window_status.incl.pl1 for the contents of this string */ 3 50 3 51 3 52 declare (window_status_version, window_status_version_1) 3 53 fixed bin internal static init (1) options (constant); 3 54 3 55 /* info structure for the set_more_responses and get_more_responses control 3 56* orders */ 3 57 3 58 3 59 dcl 1 more_responses_info 3 60 aligned based (more_responses_info_ptr), 3 61 2 version fixed bin, 3 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 3 63 2 n_noes fixed bin, 3 64 2 yeses char (32) unaligned, 3 65 2 noes char (32) unaligned; 3 66 3 67 dcl (more_responses_info_version_1, more_responses_version) 3 68 fixed bin internal static init (1) options (constant); 3 69 dcl more_responses_info_ptr 3 70 pointer; 3 71 3 72 /* structure for the set_break_table and get_break_table 3 73* control orders */ 3 74 3 75 declare break_table_ptr pointer; 3 76 declare 1 break_table_info aligned based (break_table_ptr), 3 77 2 version fixed bin, 3 78 2 breaks (0:127) bit (1) unaligned; 3 79 3 80 declare (break_table_info_version, break_table_info_version_1) 3 81 fixed bin init (1) internal static options (constant); 3 82 3 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 3 84 2 version fixed bin, 3 85 2 flags unaligned, 3 86 3 old_handler_valid 3 87 bit(1), 3 88 3 pad bit(35), 3 89 2 more_handler entry (pointer, bit(1) aligned), 3 90 2 old_more_handler entry (pointer, bit(1) aligned); 3 91 3 92 declare more_handler_info_ptr pointer; 3 93 3 94 declare (more_handler_info_version, more_handler_info_version_3) 3 95 fixed bin internal static options (constant) init (3); 3 96 3 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 3 98 2 version char(8), 3 99 2 token_character_count 3 100 fixed bin, 3 101 2 token_characters 3 102 char (128) unaligned; 3 103 3 104 declare token_characters_info_ptr pointer; 3 105 3 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 3 107 3 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 3 109 2 version char(8), 3 110 2 more_prompt char(80); 3 111 3 112 declare more_prompt_info_ptr pointer; 3 113 3 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 3 115 3 116 /* Line editor stuff ... */ 3 117 3 118 dcl line_editor_key_binding_info_ptr 3 119 pointer; 3 120 3 121 dcl line_editor_binding_count 3 122 fixed bin; 3 123 dcl line_editor_longest_sequence 3 124 fixed bin; 3 125 /* For each binding, action defines what to do for that sequence. Constants 3 126* are defined in window_editor_values.incl.pl1. Only if action is set to 3 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 3 128 3 129 dcl 1 line_editor_key_binding_info 3 130 aligned based (line_editor_key_binding_info_ptr), 3 131 2 version char(8), 3 132 2 binding_count fixed bin, 3 133 2 longest_sequence fixed bin, 3 134 2 bindings (line_editor_binding_count refer 3 135 (line_editor_key_binding_info.binding_count)), 3 136 3 sequence char(line_editor_longest_sequence refer 3 137 (line_editor_key_binding_info.longest_sequence)) varying, 3 138 3 action fixed bin, 3 139 3 numarg_action fixed binary, 3 140 3 editor_routine entry (pointer, fixed bin(35)), 3 141 3 name char (64) varying unaligned, 3 142 3 description char (256) varying unaligned, 3 143 3 info_path unaligned, 3 144 4 info_dir char (168), 3 145 4 info_entry char (32); 3 146 3 147 3 148 dcl line_editor_key_binding_info_version_3 3 149 char(8) static options (constant) init ("lekbi003"); 3 150 3 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 3 152 2 version char (8), 3 153 2 flags, 3 154 3 entire_state bit (1) unaligned, 3 155 3 mbz bit (35) unaligned, 3 156 2 key_binding_info_ptr ptr, 3 157 2 entire_state_ptr ptr; 3 158 3 159 dcl get_editor_key_bindings_info_ptr ptr; 3 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 3 161 3 162 dcl 1 set_editor_key_bindings_info aligned 3 163 based (set_editor_key_bindings_info_ptr), 3 164 2 version char (8), 3 165 2 flags, 3 166 3 replace bit (1) unaligned, 3 167 3 update bit (1) unaligned, 3 168 3 mbz bit (34) unaligned, 3 169 2 key_binding_info_ptr ptr; 3 170 3 171 dcl set_editor_key_bindings_info_ptr ptr; 3 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 3 173 3 174 /* This should be moved to window_info.incl.pl1 when that include file is 3 175* created. JR 2/1/84 */ 3 176 3 177 dcl 1 window_edit_line_info 3 178 based (window_edit_line_info_ptr), 3 179 2 version char (8), 3 180 2 line_ptr ptr, 3 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 3 182 3 183 dcl window_edit_line_info_version_1 3 184 char (8) static options (constant) init ("wedl0001"); 3 185 3 186 dcl window_edit_line_info_ptr 3 187 ptr; 3 188 3 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 1246 1247 4 1 /* BEGIN INCLUDE FILE display_doc_info.incl.pl1 */ 4 2 4 3 /* this file contains the declarations for the flags, etc. needed by 4 4*display_doc. 4 5* 4 6*HISTORY: 4 7*Written by Jim Paradise, 09/29/80 4 8*Modified: 4 9*81-03-05 by M. Pierret to lengthen to two words. 4 10*81-10-19 by M. Pierret changing name from display_doc_data to display_doc_info, 4 11* display_flags to display_info. Added topics_flag for displaying 4 12* selected topics (for wdoc). 4 13*83-09-01 by M. Pierret adding display_leading_blank_line. 4 14*83-09-20 by M. Pierret removing one bit from pad1. 4 15*-----------------------------------------------------------------------------*/ 4 16 /* format: style2 */ 4 17 4 18 dcl display_info_ptr ptr; 4 19 4 20 dcl 1 display_info aligned based (display_info_ptr), 4 21 2 header unal, 4 22 3 order_number_flag 4 23 bit (1), 4 24 3 revision_flag bit (1), 4 25 3 full_name_flag bit (1), 4 26 3 short_name_flag bit (1), 4 27 3 release_supported_flag 4 28 bit (1), 4 29 3 topics_flag bit (1), 4 30 2 pad1 bit (30) unal, 4 31 2 text unal, 4 32 3 description_flag bit (1), 4 33 3 audience_flag bit (1), 4 34 3 table_of_contents_flag 4 35 bit (1), 4 36 3 new_features_flag 4 37 bit (1), 4 38 2 display_leading_blank_line 4 39 bit (1) unal, 4 40 2 pad2 bit (31) unal; 4 41 4 42 /* END INCLUDE FILE display_doc_info.incl.pl1 */ 1248 1249 5 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 5 2 5 3 /* Written 05/04/78 by C. D. Tavares */ 5 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 5 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 5 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 5 7 5 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 5 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 5 10 iox_$close entry (pointer, fixed bin (35)), 5 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 5 12 iox_$delete_record entry (pointer, fixed bin (35)), 5 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 5 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 5 15 iox_$err_not_attached entry options (variable), 5 16 iox_$err_not_closed entry options (variable), 5 17 iox_$err_no_operation entry options (variable), 5 18 iox_$err_not_open entry options (variable), 5 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 5 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 5 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 5 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 5 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 5 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 5 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 5 28 iox_$propagate entry (pointer), 5 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 5 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 5 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 5 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 5 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 5 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 5 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 5 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 5 40 5 41 dcl (iox_$user_output, 5 42 iox_$user_input, 5 43 iox_$user_io, 5 44 iox_$error_output) external static pointer; 5 45 5 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 1250 1251 6 1 /* Begin include file ..... iox_modes.incl.pl1 */ 6 2 6 3 /* Written by C. D. Tavares, 03/17/75 */ 6 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 6 5 6 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 6 7 ("stream_input", "stream_output", "stream_input_output", 6 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 6 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 6 10 "direct_input", "direct_output", "direct_update"); 6 11 6 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 6 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 6 14 6 15 dcl (Stream_input initial (1), 6 16 Stream_output initial (2), 6 17 Stream_input_output initial (3), 6 18 Sequential_input initial (4), 6 19 Sequential_output initial (5), 6 20 Sequential_input_output initial (6), 6 21 Sequential_update initial (7), 6 22 Keyed_sequential_input initial (8), 6 23 Keyed_sequential_output initial (9), 6 24 Keyed_sequential_update initial (10), 6 25 Direct_input initial (11), 6 26 Direct_output initial (12), 6 27 Direct_update initial (13)) fixed bin int static options (constant); 6 28 6 29 /* End include file ..... iox_modes.incl.pl1 */ 1252 1253 7 1 /* BEGIN INCLUDE FILE menu_dcls.incl.pl1 7 2* declarations for the menu_ subroutines MTB 493 7 3* James R. Davis 26 Jan 81 to 20 Februrary 81 7 4**/ 7 5 7 6 /* format: off */ 7 7 7 8 dcl menu_$create entry ( 7 9 (*) char (*) varying, /* input: choices */ 7 10 (*) char (*) varying, /* input: headers */ 7 11 (*) char (*) varying, /* input: trailers */ 7 12 pointer, /* input: to format info */ 7 13 (*) char (1) unal, /* input: keys to use */ 7 14 pointer, /* input: to area */ 7 15 pointer, /* input: to needs str. */ 7 16 pointer, /* to menu: output */ 7 17 fixed bin (35) /* code */ 7 18 ); 7 19 7 20 dcl menu_$display entry ( 7 21 pointer, /* window */ 7 22 pointer, /* menu */ 7 23 fixed bin (35) /* code */ 7 24 ); 7 25 7 26 dcl menu_$get_choice entry ( 7 27 pointer, /* window */ 7 28 pointer, /* menu */ 7 29 pointer, /* to function key info */ 7 30 bit (1) aligned, /* function key hi: output */ 7 31 fixed bin, /* output: selection number */ 7 32 fixed bin (35) /* output: code */ 7 33 ); 7 34 7 35 dcl menu_$describe entry ( 7 36 pointer, /* menu */ 7 37 pointer, /* needs */ 7 38 fixed bin (35) /* code */ 7 39 ); 7 40 7 41 dcl menu_$destroy entry ( 7 42 pointer, /* menu */ 7 43 fixed bin (35) /* code */ 7 44 ); 7 45 7 46 dcl menu_$store entry ( 7 47 character (*), 7 48 character (*), 7 49 character (*), 7 50 bit (1) aligned, 7 51 pointer, 7 52 fixed bin (35)); 7 53 7 54 dcl menu_$retrieve entry ( 7 55 character (*), 7 56 character (*), 7 57 character (*), 7 58 pointer, 7 59 pointer, 7 60 fixed bin (35)); 7 61 dcl menu_$delete entry ( 7 62 character (*), 7 63 character (*), 7 64 character (*), 7 65 fixed binary (35)); 7 66 7 67 dcl menu_$list entry ( 7 68 character (*), 7 69 character (*), 7 70 character (*), 7 71 pointer, 7 72 fixed bin, 7 73 pointer, 7 74 fixed bin (35)); 7 75 7 76 dcl 1 menu_format aligned based (menu_format_ptr), 7 77 2 version fixed bin, 7 78 2 constraints, 7 79 3 max_width fixed bin, 7 80 3 max_height fixed bin, 7 81 2 n_columns fixed bin, 7 82 2 flags, 7 83 3 center_headers bit (1) unal, 7 84 3 center_trailers bit (1) unal, 7 85 3 pad bit (34) unal, 7 86 2 pad_char char (1); 7 87 7 88 dcl 1 menu_requirements aligned based (menu_requirements_ptr), 7 89 2 version fixed bin, 7 90 2 lines_needed fixed bin, 7 91 2 width_needed fixed bin, 7 92 2 n_options fixed bin; 7 93 7 94 dcl menu_format_ptr pointer; 7 95 dcl menu_requirements_ptr pointer; 7 96 7 97 dcl (menu_format_version_1, menu_requirements_version_1) 7 98 fixed bin internal static init (1) options (constant); 7 99 7 100 dcl MENU_OPTION_KEYS (35) char (1) unal internal static 7 101 options (constant) init 7 102 ("1", "2", "3", "4", "5", "6", "7", "8", "9", 7 103 "A", "B", "C", "D", "E", "F", "G", "H", "I", 7 104 "J", "K", "L", "M", "N", "O", "P", "Q", "R", 7 105 "S", "T", "U", "V", "W", "X", "Y", "Z"); 7 106 7 107 /* END INCLUDE FILE ... menu_dcls.incl.pl1 */ 1254 1255 8 1 /* begin include fine window_dcls.incl.pl1 BIM June 1981 */ 8 2 /* Modified 9 October 1983 by Jon A. Rochlis to add window_$edit_line. */ 8 3 8 4 /* format: style3 */ 8 5 8 6 declare window_$bell entry (pointer, fixed binary (35)); 8 7 declare window_$clear_region 8 8 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary, fixed binary (35)); 8 9 declare window_$clear_to_end_of_line 8 10 entry (pointer, fixed binary (35)); 8 11 declare window_$clear_to_end_of_window 8 12 entry (pointer, fixed binary (35)); 8 13 declare window_$clear_window 8 14 entry (pointer, fixed binary (35)); 8 15 declare window_$delete_chars 8 16 entry (pointer, fixed binary, fixed binary (35)); 8 17 declare window_$get_cursor_position 8 18 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 19 8 20 /* Call window_$get_echoed_chars (iocb_ptr, n_to_read, read_buffer, n_read, read_break, code); */ 8 21 8 22 declare window_$get_echoed_chars 8 23 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 8 24 fixed binary (35)); 8 25 declare window_$get_unechoed_chars 8 26 entry (pointer, fixed binary (21), character (*), fixed binary (21), character (1) var, 8 27 fixed binary (35)); 8 28 declare window_$insert_text entry (pointer, character (*), fixed binary (35)); 8 29 declare window_$overwrite_text 8 30 entry (pointer, character (*), fixed binary (35)); 8 31 declare window_$position_cursor 8 32 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 33 8 34 /* Call window_$position_cursor_rel (iocb_ptr, delta_line, delta_column, code); */ 8 35 8 36 declare window_$position_cursor_rel 8 37 entry (pointer, fixed binary, fixed binary, fixed binary (35)); 8 38 8 39 /* Call window_$scroll_region (iocb_ptr, first_line_of_region, n_lines_of_region, distance_to_scroll_region_negative_is_up, 8 40* code); */ 8 41 8 42 declare window_$scroll_region 8 43 entry (pointer, fixed binary, fixed binary, fixed binary, fixed binary (35)); 8 44 declare window_$sync entry (pointer, fixed binary (35)); 8 45 8 46 /* Call window_$write_raw_text (iocb_ptr, text_string, code); */ 8 47 8 48 declare window_$write_raw_text 8 49 entry (pointer, character (*), fixed binary (35)); 8 50 8 51 /* Call window_$write_sync_read (iocb_ptr, prompt_string, n_to_read, read_buffer, n_read, break_char, code); */ 8 52 8 53 declare window_$write_sync_read 8 54 entry (pointer, character (*), fixed bin (21), character (*), fixed binary (21), 8 55 character (1) var, fixed binary (35)); 8 56 8 57 /* Call window_$change_line (iocb_ptr, new_line, code); */ 8 58 8 59 declare window_$change_line entry (pointer, fixed binary, fixed binary (35)); 8 60 8 61 /* Call window_$change_column (iocb_ptr, new_column, code); */ 8 62 8 63 declare window_$change_column 8 64 entry (pointer, fixed binary, fixed binary (35)); 8 65 8 66 /* Call window_$get_one_unechoed (iocb_ptr, char_or_len_0, block_flag, code); */ 8 67 declare ( 8 68 window_$get_one_unechoed, 8 69 window_$get_one_unechoed_char 8 70 ) entry (pointer, character (1) var, bit (1) aligned, fixed binary (35)); 8 71 8 72 declare window_$create entry (pointer, pointer, pointer, fixed binary (35)); 8 73 8 74 declare window_$destroy entry (pointer, fixed binary (35)); 8 75 8 76 declare window_$edit_line entry (pointer, pointer, pointer, fixed bin(21), fixed bin(21), fixed bin(35)); 8 77 8 78 /* call window_$edit_line (iocb_ptr, window_edit_line_info_ptr, buffer_ptr, 8 79* buffer_len, n_returned, code); */ 8 80 8 81 8 82 /* end include file window_dcls.incl.pl1 */ 1256 1257 9 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 9 2 9 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 9 4 9 5 dcl area_infop ptr; 9 6 9 7 dcl 1 area_info aligned based (area_infop), 9 8 2 version fixed bin, /* version number for this structure is 1 */ 9 9 2 control aligned like area_control, /* control bits for the area */ 9 10 2 owner char (32) unal, /* creator of the area */ 9 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 9 12 2 size fixed bin (18), /* size of the area in words */ 9 13 2 version_of_area fixed bin, /* version of area (returned only) */ 9 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 9 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 9 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 9 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 9 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 9 19 9 20 dcl 1 area_control aligned based, 9 21 2 extend bit (1) unal, /* says area is extensible */ 9 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 9 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 9 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 9 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 9 26 2 system bit (1) unal, /* says area is managed by system */ 9 27 2 pad bit (30) unal; 9 28 9 29 /* END INCLUDE FILE area_info.incl.pl1 */ 1258 1259 1260 end explain_doc; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/18/86 1331.3 explain_doc.pl1 >spec>install>1079>explain_doc.pl1 1242 1 10/10/83 1419.3 online_doc_groups.incl.pl1 >ldd>include>online_doc_groups.incl.pl1 1244 2 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 1246 3 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 1248 4 10/10/83 1419.3 display_doc_info.incl.pl1 >ldd>include>display_doc_info.incl.pl1 1250 5 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 1252 6 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 1254 7 03/27/82 0429.3 menu_dcls.incl.pl1 >ldd>include>menu_dcls.incl.pl1 1256 8 09/12/84 0916.7 window_dcls.incl.pl1 >ldd>include>window_dcls.incl.pl1 1258 9 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_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. FIRST_REQUEST_IDX constant fixed bin(17,0) initial dcl 140 ref 643 FIRST_SECTION_NAME_IDX constant fixed bin(17,0) initial dcl 140 ref 647 GROUP_PROMPT 000102 constant varying char(80) initial dcl 789 set ref 1175* LOWER_CASE_ALPHA 000245 constant char(26) initial unaligned dcl 146 in procedure "edoc" ref 1236 LOWER_CASE_ALPHA 000141 constant char(26) initial unaligned dcl 789 in procedure "find_manual_number" ref 820 837 844 MENU_OPTION_KEYS 000150 constant char(1) initial array unaligned dcl 7-100 set ref 1078* NUMERIC 000127 constant char(10) initial unaligned dcl 789 ref 839 QUESTION_MARK_REQUEST_IDX constant fixed bin(17,0) initial dcl 140 ref 638 657 Stream_output 001733 constant fixed bin(17,0) initial dcl 6-15 set ref 575* UPPER_CASE_ALPHA 000236 constant char(26) initial unaligned dcl 147 in procedure "edoc" ref 1236 UPPER_CASE_ALPHA 000132 constant char(26) initial unaligned dcl 789 in procedure "find_manual_number" ref 820 844 absolute_pathname_ 000156 constant entry external dcl 161 ref 279 absolute_pathname_$add_suffix 000160 constant entry external dcl 162 ref 291 accept_control_argument 000457 automatic bit(1) dcl 92 set ref 243* 275* 287* 299* 305 350* 357* 364* 371* 378* 385* 396* 403* 411* 418* 425* 432* 439* 448 accept_idx 000472 automatic fixed bin(17,0) dcl 106 set ref 651* 652 652 652* acceptable_requests 000010 internal static varying char(17) initial array dcl 137 set ref 627 627 651 652* 652 652 652* active_fnc_err_ 000162 constant entry external dcl 164 ref 228 addr builtin function dcl 151 ref 221 603 603 660 660 811 811 908 914 920 926 932 938 945 952 959 965 972 979 1055 1055 1078 1078 1078 1078 1175 1175 after builtin function dcl 151 ref 624 1232 answer_iocbp 6 001056 automatic pointer initial level 2 dcl 2-7 set ref 525* 2-7* area_control based structure level 1 dcl 9-20 area_info based structure level 1 dcl 9-7 areap 16 001276 automatic pointer level 2 dcl 798 set ref 809* 815 arg based char unaligned dcl 122 set ref 249 260* 264 267* 272 274 279* 283* 291* 295* 327 332* arg_idx 000501 automatic fixed bin(17,0) dcl 109 set ref 246* 248* arg_len 000500 automatic fixed bin(17,0) dcl 108 set ref 248* 249 260 260 264 267 267 272 274 279 279 283 283 291 291 295 295 327 332 332 arg_ptr 001020 automatic pointer dcl 117 set ref 248* 249 260 264 267 272 274 279 283 291 295 327 332 argument_type 000257 constant varying char(64) initial array dcl 133 set ref 315 315* 454 454* audience_flag 1(01) based bit(1) level 3 packed unaligned dcl 4-20 set ref 368* 422* 676* before builtin function dcl 151 ref 623 1233 cab_code parameter fixed bin(35,0) dcl 715 set ref 712 722* cab_err_msg parameter varying char dcl 716 set ref 712 722* cab_err_msg_arg parameter char unaligned dcl 717 set ref 712 722* center_headers 4 001322 automatic bit(1) level 3 packed unaligned dcl 799 set ref 1067* center_trailers 4(01) 001322 automatic bit(1) level 3 packed unaligned dcl 799 set ref 1068* choice 001271 automatic fixed bin(17,0) dcl 783 in procedure "find_manual_number" set ref 1115* 1121 1123 1129 1135 1139 choice 001371 automatic fixed bin(17,0) dcl 1161 in procedure "nonmenu" set ref 1176* 1180 1180 1185 1187 1193 1197 choice_idx 001372 automatic fixed bin(17,0) dcl 1161 set ref 1169* 1170* 1170* choice_string 001373 automatic varying char(32) dcl 1162 set ref 1175* 1176 choices 2 based varying char(64) initial array level 2 in structure "wordpro_choices" dcl 1-54 in procedure "edoc" set ref 929* 929* 929* 932 choices based varying char(64) array dcl 1-135 in procedure "edoc" set ref 1073 1078* 1121 1123 1129 1135 1139 1169 1170* 1177 1177 1180 1180 1180 1185 1187 1193 1197 choices 2 based varying char(64) initial array level 2 in structure "plm_choices" dcl 1-84 in procedure "edoc" set ref 949* 949* 949* 949* 949* 949* 952 choices 2 based varying char(64) initial array level 2 in structure "cobol_choices" dcl 1-45 in procedure "edoc" set ref 923* 923* 923* 926 choices 2 based varying char(64) initial array level 2 in structure "fortran_choices" dcl 1-114 in procedure "edoc" set ref 969* 969* 969* 972 choices 2 based varying char(64) initial array level 2 in structure "mpm_choices" dcl 1-9 in procedure "edoc" set ref 905* 905* 905* 905* 905* 908 choices 2 based varying char(64) initial array level 2 in structure "io_choices" dcl 1-35 in procedure "edoc" set ref 917* 917* 917* 920 choices 2 based varying char(64) initial array level 2 in structure "new_user_choices" dcl 1-123 in procedure "edoc" set ref 976* 976* 976* 976* 976* 979 choices 2 based varying char(64) initial array level 2 in structure "pl1_choices" dcl 1-105 in procedure "edoc" set ref 962* 962* 962* 965 choices 2 based varying char(64) initial array level 2 in structure "sdn_choices" dcl 1-73 in procedure "edoc" set ref 942* 942* 942* 942* 942* 945 choices 2 based varying char(64) initial array level 2 in structure "mam_choices" dcl 1-21 in procedure "edoc" set ref 911* 911* 911* 911* 911* 911* 911* 914 choices 2 based varying char(64) initial array level 2 in structure "emacs_choices" dcl 1-63 in procedure "edoc" set ref 935* 935* 935* 935* 938 choices 2 based varying char(64) initial array level 2 in structure "xmail_choices" dcl 1-96 in procedure "edoc" set ref 956* 956* 956* 959 choices_ptr 001052 automatic pointer dcl 1-142 set ref 908* 914* 920* 926* 932* 938* 945* 952* 959* 965* 972* 979* 1073 1078 1121 1123 1129 1135 1139 1169 1170 1177 1177 1180 1180 1180 1185 1187 1193 1197 cleanup 001026 stack reference condition dcl 156 ref 466 cn_canonical_name 001422 automatic varying char(64) dcl 1224 set ref 1236* 1238 cn_input_string parameter varying char(64) dcl 1223 ref 1220 1228 cn_string 001443 automatic varying char(64) dcl 1225 set ref 1228* 1230* 1230 1231 1232 1233* 1233 1236 cn_temp_string 001464 automatic varying char(64) dcl 1226 set ref 1232* 1233 cobol_choices based structure level 1 dcl 1-45 set ref 923 code 000504 automatic fixed bin(35,0) dcl 112 set ref 227* 228 230 232* 248* 279* 281 283* 291* 293 295* 482* 483 483* 491* 492 492 500* 501 501* 505* 508 508* 532* 541* 543 548 553* 554 554 554* 558* 571* 573 573* 575* 576 576* 588* 594* 701 701* 811* 812 812* 846* 849 851 851* 855* 866* 868 870 870* 873* 983* 987 989* 994* 998 1000* 1005* 1009 1011* 1078* 1080 1084 1115* 1116 1116* 1131* 1133 1135 1135* 1139* 1142* 1143 1143* 1176* 1177 1177* 1180* 1189* 1191 1193 1193* 1197* com_err_ 000164 constant entry external dcl 165 ref 232 236 command_query_ 000216 constant entry external dcl 181 ref 603 660 1175 complain 001034 automatic entry variable dcl 166 set ref 236* 240 260 267 283 295 315 332 454 701 722 1177 1180 completely_processed_reply 000461 automatic bit(1) dcl 92 set ref 605* 607* 610 635* 657* 663* 666* 693* constraints 1 001322 automatic structure level 2 unaligned dcl 799 control 1 001276 automatic structure level 2 dcl 798 control_argument 001234 constant varying char(32) initial array dcl 127 set ref 315* 327 327 330 454* control_argument_idx 000503 automatic fixed bin(17,0) dcl 111 set ref 244* 251 276* 288* 300* 315 315 315 327* 327* 330 336 351* 358* 365* 372* 379* 386* 397* 404* 412* 419* 426* 433* 440* 454 454 454 copy builtin function dcl 151 ref 407 688 cp_escape_control 1(02) 001056 automatic bit(2) initial level 3 packed unaligned dcl 2-7 set ref 519* 2-7* cu_$af_return_arg 000170 constant entry external dcl 168 ref 227 cu_$arg_ptr 000166 constant entry external dcl 167 ref 248 cu_code 000100 automatic fixed bin(35,0) initial dcl 738 set ref 738* 742 743 746 748 current_mrds_dbi 000506 automatic fixed bin(35,0) initial dcl 114 set ref 114* 471* 475 748 748 748* cv_dec_check_ 000172 constant entry external dcl 169 ref 1176 database_path_sw 000466 automatic bit(1) initial dcl 101 set ref 101* 354* 473 define_area_ 000220 constant entry external dcl 182 ref 811 description_flag 1 based bit(1) level 3 packed unaligned dcl 4-20 set ref 223* 361* 415* 672* display_all_manuals 000462 automatic bit(1) dcl 92 set ref 530* 534 588 display_doc 000174 constant entry external dcl 170 ref 588 594 display_info based structure level 1 dcl 4-20 set ref 222* 407* 407 588 604* 662* 694* display_info_ptr 001074 automatic pointer dcl 4-18 set ref 221* 222 223 223 223 223 223 361 368 375 382 407 407 410 415 422 429 436 588 588* 594* 604 662 672 676 680 684 688 688 694 1165 display_leading_blank_line 1(04) based bit(1) level 2 packed unaligned dcl 4-20 set ref 1165* dsl_$close 000176 constant entry external dcl 171 ref 748 dsl_$dl_scope_all 000200 constant entry external dcl 172 ref 746 dsl_$open 000202 constant entry external dcl 173 ref 1212 dsl_$retrieve 000204 constant entry external dcl 174 ref 541 553 846 866 983 994 1005 1131 1189 dsl_$set_scope_all 000206 constant entry external dcl 175 ref 491 505 emacs_choices based structure level 1 dcl 1-63 set ref 935 enter_request_loop 000463 automatic bit(1) initial dcl 92 set ref 92* 393* 400* 461* 597 error_table_$active_function 000236 external static fixed bin(35,0) dcl 188 set ref 228* error_table_$bad_arg 000232 external static fixed bin(35,0) dcl 188 set ref 267* error_table_$badopt 000230 external static fixed bin(35,0) dcl 188 set ref 260* 332* error_table_$noarg 000226 external static fixed bin(35,0) dcl 188 set ref 240* 315* 454* error_table_$noentry 000240 external static fixed bin(35,0) dcl 188 set ref 543* 562* 885* error_table_$not_act_fnc 000234 external static fixed bin(35,0) dcl 188 ref 230 explanation_len 14 001056 automatic fixed bin(21,0) initial level 2 dcl 2-7 set ref 2-7* explanation_ptr 12 001056 automatic pointer initial level 2 dcl 2-7 set ref 2-7* extend 1 001276 automatic bit(1) level 3 packed unaligned dcl 798 set ref 806* extent 3 001042 automatic structure level 2 unaligned dcl 206 fits_order_number_pattern 001267 automatic bit(1) dcl 780 set ref 836* 837* 839* 842 fkey 001270 automatic bit(1) dcl 780 set ref 1115* 1119 flags 4 001322 automatic structure level 2 packed unaligned dcl 799 fmn_display_all_manuals parameter bit(1) dcl 768 set ref 764 817* 824* fmn_manual_id parameter varying char dcl 767 ref 764 820 fmn_manual_number parameter fixed bin(17,0) dcl 772 set ref 764 819* 1038* fmn_manual_number_found parameter bit(1) dcl 770 set ref 764 818* 849* 859 868* 876 987* 998* 1009* 1017 1038 1133* 1191* fortran_choices based structure level 1 dcl 1-114 set ref 969 full_name_flag 0(02) based bit(1) level 3 packed unaligned dcl 4-20 set ref 223* got_choice 001370 automatic bit(1) dcl 1160 in procedure "nonmenu" set ref 1173* 1174 1182* got_choice 001360 automatic bit(1) dcl 1109 in procedure "menu" set ref 1111* 1113 1121* 1128* group_choices_ptr 001050 automatic pointer dcl 1-141 set ref 905* 907 908 911* 913 914 917* 919 920 923* 925 926 929* 931 932 935* 937 938 942* 944 945 949* 951 952 956* 958 959 962* 964 965 969* 971 972 976* 978 979 group_name 000161 constant varying char(8) initial array dcl 1-137 ref 882 882 885 group_name_idx 001272 automatic fixed bin(17,0) dcl 784 set ref 882* 882* 885 891 hbound builtin function dcl 151 ref 327 330 548 627 651 652 652 882 885 1073 1121 1123 1169 1177 1177 1180 1180 1180 1185 header based structure level 2 packed unaligned dcl 4-20 headers 001164 automatic varying char(70) array dcl 776 set ref 1024* 1025* 1078* 1167* height 4 001042 automatic fixed bin(17,0) level 3 dcl 206 set ref 1075 idx 000473 automatic fixed bin(17,0) dcl 106 set ref 591* 593* index builtin function dcl 151 ref 249 315 454 617 882 1231 io_choices based structure level 1 dcl 1-35 set ref 917 ioa_ 000210 constant entry external dcl 176 ref 644 648 652 691 1167 1170 iox_$attach_name 000252 constant entry external dcl 5-8 ref 571 iox_$close 000254 constant entry external dcl 5-8 ref 742 iox_$control 000256 constant entry external dcl 5-8 ref 1055 iox_$detach_iocb 000260 constant entry external dcl 5-8 ref 743 iox_$open 000262 constant entry external dcl 5-8 ref 575 iox_$user_io 000266 external static pointer dcl 5-41 set ref 758* 1055* 1059* 1083* 1115* 1119* 1142* 1147* iox_$user_output 000264 external static pointer dcl 5-41 ref 579 length builtin function dcl 151 ref 264 264 407 688 829 829 literal_sw 1(05) 001056 automatic bit(1) initial level 3 packed unaligned dcl 2-7 set ref 2-7* local_area_info 001276 automatic structure level 1 dcl 798 set ref 804* 811 811 local_display_info 000470 automatic structure level 1 dcl 104 set ref 221 local_menu_format 001322 automatic structure level 1 unaligned dcl 799 set ref 1078 1078 local_menu_requirements 001330 automatic structure level 1 unaligned dcl 800 set ref 1078 1078 ltrim builtin function dcl 151 ref 272 274 615 624 mam_choices based structure level 1 dcl 1-21 set ref 911 manual_array 000507 automatic fixed bin(17,0) array dcl 116 set ref 548 551* 593 manual_id 000110 automatic varying char(64) dcl 86 set ref 219* 264 267* 272 272* 274* 274 530* 562 562 manual_id_string 001143 automatic varying char(64) dcl 774 set ref 820* 822 829 829 837 839 844 865* 885 885 manual_name 001122 automatic varying char(64) dcl 774 set ref 865* 866* 870 882 1129* 1131* 1187* 1189* manual_number 001273 automatic fixed bin(17,0) dcl 785 in procedure "find_manual_number" set ref 846* 866* 983* 994* 1005* 1038 1131* 1189* manual_number 000474 automatic fixed bin(17,0) dcl 106 in procedure "edoc" set ref 530* 541* 551 553* 588* 593* 594* manual_number_found 000464 automatic bit(1) dcl 92 set ref 530* 539* 562 max_height 2 001322 automatic fixed bin(17,0) level 3 dcl 799 set ref 1073* 1075 max_width 1 001322 automatic fixed bin(17,0) level 3 dcl 799 set ref 1064* mbz 1 based fixed bin(35,0) initial level 2 in structure "xmail_choices" dcl 1-96 in procedure "edoc" set ref 956* mbz 1 based fixed bin(35,0) initial level 2 in structure "emacs_choices" dcl 1-63 in procedure "edoc" set ref 935* mbz 1 based fixed bin(35,0) initial level 2 in structure "wordpro_choices" dcl 1-54 in procedure "edoc" set ref 929* mbz 1 based fixed bin(35,0) initial level 2 in structure "io_choices" dcl 1-35 in procedure "edoc" set ref 917* mbz 1 based fixed bin(35,0) initial level 2 in structure "mam_choices" dcl 1-21 in procedure "edoc" set ref 911* mbz 1 based fixed bin(35,0) initial level 2 in structure "sdn_choices" dcl 1-73 in procedure "edoc" set ref 942* mbz 1 based fixed bin(35,0) initial level 2 in structure "mpm_choices" dcl 1-9 in procedure "edoc" set ref 905* mbz 1 based fixed bin(35,0) initial level 2 in structure "new_user_choices" dcl 1-123 in procedure "edoc" set ref 976* mbz 1 based fixed bin(35,0) initial level 2 in structure "cobol_choices" dcl 1-45 in procedure "edoc" set ref 923* mbz 1 based fixed bin(35,0) initial level 2 in structure "fortran_choices" dcl 1-114 in procedure "edoc" set ref 969* mbz 1 based fixed bin(35,0) initial level 2 in structure "pl1_choices" dcl 1-105 in procedure "edoc" set ref 962* mbz 1 based fixed bin(35,0) initial level 2 in structure "plm_choices" dcl 1-84 in procedure "edoc" set ref 949* menu_$create 000270 constant entry external dcl 7-8 ref 1078 menu_$display 000272 constant entry external dcl 7-20 ref 1083 menu_$get_choice 000274 constant entry external dcl 7-26 ref 1115 menu_format based structure level 1 dcl 7-76 menu_format_version_1 constant fixed bin(17,0) initial dcl 7-97 ref 1063 menu_ptr 001274 automatic pointer dcl 787 set ref 1078* 1083* 1115* menu_requirements based structure level 1 dcl 7-88 menu_requirements_version_1 constant fixed bin(17,0) initial dcl 7-97 ref 1072 mpm_choices based structure level 1 dcl 1-9 set ref 905 mrds_database_path 000333 automatic char(168) unaligned dcl 89 set ref 217* 291* 482* 500* 543* mrds_dbi 000505 automatic fixed bin(35,0) initial dcl 113 set ref 113* 473* 475* 477 482* 491* 500* 505* 541* 553* 588* 594* 746* 748 846* 866* 983* 994* 1005* 1131* 1189* mrds_error_$invalid_db_index 000244 external static fixed bin(35,0) dcl 188 ref 492 mrds_error_$tuple_not_found 000242 external static fixed bin(35,0) dcl 188 ref 554 851 870 1135 1193 mrds_scope_set 000460 automatic bit(1) dcl 92 set ref 214* 512* 746 myname 000254 constant char(11) initial unaligned dcl 136 set ref 228* 232* 240* 240* 260* 267* 283* 295* 315* 332* 454* 603* 660* 701* 722* 807 1177* 1180* n_columns 3 001322 automatic fixed bin(17,0) level 2 dcl 799 set ref 1066* nargs 000502 automatic fixed bin(17,0) dcl 110 set ref 227* 238 246 new_features_flag 1(03) based bit(1) level 3 packed unaligned dcl 4-20 set ref 382* 436* 684* new_user_choices based structure level 1 dcl 1-123 set ref 976 null builtin function dcl 151 ref 213 215 227 524 525 571 571 2-7 2-7 2-7 740 750 809 1115 1115 number_of_choices based fixed bin(35,0) level 2 in structure "sdn_choices" dcl 1-73 in procedure "edoc" set ref 942* 944 number_of_choices based fixed bin(35,0) level 2 in structure "plm_choices" dcl 1-84 in procedure "edoc" set ref 949* 951 number_of_choices 001054 automatic fixed bin(17,0) dcl 1-143 in procedure "edoc" set ref 907* 913* 919* 925* 931* 937* 944* 951* 958* 964* 971* 978* 1073 1078 1121 1123 1169 1177 1177 1180 1180 1180 1185 number_of_choices based fixed bin(35,0) level 2 in structure "mpm_choices" dcl 1-9 in procedure "edoc" set ref 905* 907 number_of_choices based fixed bin(35,0) level 2 in structure "new_user_choices" dcl 1-123 in procedure "edoc" set ref 976* 978 number_of_choices based fixed bin(35,0) level 2 in structure "io_choices" dcl 1-35 in procedure "edoc" set ref 917* 919 number_of_choices based fixed bin(35,0) level 2 in structure "fortran_choices" dcl 1-114 in procedure "edoc" set ref 969* 971 number_of_choices based fixed bin(35,0) level 2 in structure "pl1_choices" dcl 1-105 in procedure "edoc" set ref 962* 964 number_of_choices based fixed bin(35,0) level 2 in structure "wordpro_choices" dcl 1-54 in procedure "edoc" set ref 929* 931 number_of_choices based fixed bin(35,0) level 2 in structure "cobol_choices" dcl 1-45 in procedure "edoc" set ref 923* 925 number_of_choices based fixed bin(35,0) level 2 in structure "emacs_choices" dcl 1-63 in procedure "edoc" set ref 935* 937 number_of_choices based fixed bin(35,0) level 2 in structure "xmail_choices" dcl 1-96 in procedure "edoc" set ref 956* 958 number_of_choices based fixed bin(35,0) level 2 in structure "mam_choices" dcl 1-21 in procedure "edoc" set ref 911* 913 number_of_manuals 000475 automatic fixed bin(17,0) dcl 106 set ref 547* 548 550* 550 551 591 odb_code parameter fixed bin(35,0) dcl 1210 set ref 1205 1212* 1213 odb_mrds_database_path parameter char unaligned dcl 1208 set ref 1205 1212* odb_mrds_dbi parameter fixed bin(35,0) dcl 1209 set ref 1205 1212* 1213* online_doc_db_index$return_index 000214 constant entry external dcl 179 ref 471 online_doc_db_index$set_index 000212 constant entry external dcl 177 ref 499 1213 order_number 001266 automatic char(4) unaligned dcl 778 set ref 844* 846* 851* order_number_flag based bit(1) level 3 packed unaligned dcl 4-20 set ref 223* output_file_path 000405 automatic char(168) unaligned dcl 90 set ref 279* 571 573 576 output_file_sw 000467 automatic bit(1) initial dcl 101 set ref 101* 347* 461 565 740 output_ptr 001022 automatic pointer dcl 117 set ref 213* 571* 575* 579* 588* 594* 740 742* 743* output_switch_name 000100 automatic char(32) unaligned dcl 85 set ref 570* 571* owner 2 001276 automatic char(32) level 2 packed unaligned dcl 798 set ref 807* pad 4(02) 001322 automatic bit(34) level 3 packed unaligned dcl 799 set ref 1069* pad_char 5 001322 automatic char(1) level 2 packed unaligned dcl 799 set ref 1070* padding 1(07) 001056 automatic bit(29) initial level 3 packed unaligned dcl 2-7 set ref 521* 2-7* pl1_choices based structure level 1 dcl 1-105 set ref 962 plm_choices based structure level 1 dcl 1-84 set ref 949 prompt_after_explanation 1(06) 001056 automatic bit(1) initial level 3 packed unaligned dcl 2-7 set ref 2-7* query_code 3 001056 automatic fixed bin(35,0) initial level 2 dcl 2-7 set ref 523* 2-7* query_info 001056 automatic structure level 1 dcl 2-7 set ref 603 603 660 660 1175 1175 query_info_version_4 constant fixed bin(17,0) initial dcl 2-34 ref 516 question_iocbp 4 001056 automatic pointer initial level 2 dcl 2-7 set ref 524* 2-7* quit_signalled 000465 automatic bit(1) dcl 92 set ref 581* 583 607* 666* release_area_ 000222 constant entry external dcl 183 ref 750 release_supported_flag 0(04) based bit(1) level 3 packed unaligned dcl 4-20 set ref 223* repeat_time 10 001056 automatic fixed bin(71,0) initial level 2 dcl 2-7 set ref 526* 2-7* reply 000131 automatic varying char(256) dcl 87 set ref 603* 615* 615 617 619 620* 623 624* 624 660* request 000232 automatic varying char(256) dcl 88 set ref 619* 623* 627 691 691 request_idx 000476 automatic fixed bin(17,0) dcl 106 set ref 627* 627* 631 638 657 revision_flag 0(01) based bit(1) level 3 packed unaligned dcl 4-20 set ref 223* rtrim builtin function dcl 151 ref 272 274 562 562 691 691 885 885 sdn_choices based structure level 1 dcl 1-73 set ref 942 size 13 001276 automatic fixed bin(18,0) level 2 dcl 798 set ref 808* sm_code 001342 automatic fixed bin(35,0) dcl 1049 set ref 1051* 1055* 1056 1059* 1060 1083* sm_use_menu parameter bit(1) dcl 1048 set ref 1045 1052* 1087* start_idx 000477 automatic fixed bin(17,0) dcl 106 set ref 643* 647* 651 status_code 2 001056 automatic fixed bin(35,0) initial level 2 dcl 2-7 set ref 522* 2-7* string builtin function dcl 151 set ref 222* 407* 407 588 604* 662* 688* 688 694* substr builtin function dcl 151 ref 315 454 837 839 844 suppress_name_sw 1(01) 001056 automatic bit(1) initial level 3 packed unaligned dcl 2-7 set ref 518* 2-7* suppress_spacing 1(04) 001056 automatic bit(1) initial level 3 packed unaligned dcl 2-7 set ref 520* 2-7* switches 1 001056 automatic structure level 2 dcl 2-7 sys_info$max_seg_size 000246 external static fixed bin(35,0) dcl 198 ref 808 table_of_contents_flag 1(02) based bit(1) level 3 packed unaligned dcl 4-20 set ref 375* 429* 680* text 1 based structure level 2 packed unaligned dcl 4-20 set ref 688* 688 topics_flag 0(05) based bit(1) level 3 packed unaligned dcl 4-20 set ref 410* trailers 001232 automatic varying char(50) array dcl 777 set ref 1026* 1027* 1078* translate builtin function dcl 151 ref 820 844 1230 1236 unique_chars_ 000224 constant entry external dcl 184 ref 570 unspec builtin function dcl 151 set ref 804* use_menu 001041 automatic bit(1) dcl 204 set ref 214* 719 758 1029* 1032 user_io_window_info 001042 automatic structure level 1 unaligned dcl 206 set ref 1055 1055 version 001276 automatic fixed bin(17,0) level 2 in structure "local_area_info" dcl 798 in procedure "find_manual_number" set ref 805* version 001056 automatic fixed bin(17,0) level 2 in structure "query_info" dcl 2-7 in procedure "edoc" set ref 516* version 001330 automatic fixed bin(17,0) level 2 in structure "local_menu_requirements" dcl 800 in procedure "find_manual_number" set ref 1072* version 001042 automatic fixed bin(17,0) level 2 in structure "user_io_window_info" dcl 206 in procedure "edoc" set ref 1054* version 001322 automatic fixed bin(17,0) level 2 in structure "local_menu_format" dcl 799 in procedure "find_manual_number" set ref 1063* video_data_$terminal_iocb 000250 external static pointer dcl 202 ref 215 video_is_on 001040 automatic bit(1) dcl 204 set ref 215* 1029 width 3 001042 automatic fixed bin(17,0) level 3 dcl 206 set ref 1064 window_$bell 000276 constant entry external dcl 8-6 ref 1119 1147 window_$clear_window 000300 constant entry external dcl 8-13 ref 758 1059 1142 window_position_info based structure level 1 unaligned dcl 3-25 window_position_info_version_1 constant fixed bin(17,0) initial dcl 3-35 ref 1054 wordpro_choices based structure level 1 dcl 1-54 set ref 929 work_area based area dcl 123 ref 905 911 917 923 929 935 942 949 956 962 969 976 work_area_ptr 001024 automatic pointer dcl 117 set ref 213* 750 750* 815* 905 911 917 923 929 935 942 949 956 962 969 976 1078* xmail_choices based structure level 1 dcl 1-96 set ref 956 yes_or_no_sw 1 001056 automatic bit(1) initial level 3 packed unaligned dcl 2-7 set ref 517* 2-7* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 6-15 Direct_output internal static fixed bin(17,0) initial dcl 6-15 Direct_update internal static fixed bin(17,0) initial dcl 6-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 6-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 6-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 6-15 Sequential_input internal static fixed bin(17,0) initial dcl 6-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 6-15 Sequential_output internal static fixed bin(17,0) initial dcl 6-15 Sequential_update internal static fixed bin(17,0) initial dcl 6-15 Stream_input internal static fixed bin(17,0) initial dcl 6-15 Stream_input_output internal static fixed bin(17,0) initial dcl 6-15 area_info_version_1 internal static fixed bin(17,0) initial dcl 9-3 area_infop automatic pointer dcl 9-5 break_table_info based structure level 1 dcl 3-76 break_table_info_version internal static fixed bin(17,0) initial dcl 3-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 3-80 break_table_ptr automatic pointer dcl 3-75 empty builtin function dcl 151 first_delimiter automatic fixed bin(17,0) dcl 106 get_editor_key_bindings_info based structure level 1 dcl 3-151 get_editor_key_bindings_info_ptr automatic pointer dcl 3-159 get_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 3-160 iox_$attach_loud 000000 constant entry external dcl 5-8 iox_$attach_ptr 000000 constant entry external dcl 5-8 iox_$close_file 000000 constant entry external dcl 5-8 iox_$delete_record 000000 constant entry external dcl 5-8 iox_$destroy_iocb 000000 constant entry external dcl 5-8 iox_$detach 000000 constant entry external dcl 5-8 iox_$err_no_operation 000000 constant entry external dcl 5-8 iox_$err_not_attached 000000 constant entry external dcl 5-8 iox_$err_not_closed 000000 constant entry external dcl 5-8 iox_$err_not_open 000000 constant entry external dcl 5-8 iox_$error_output external static pointer dcl 5-41 iox_$find_iocb 000000 constant entry external dcl 5-8 iox_$find_iocb_n 000000 constant entry external dcl 5-8 iox_$get_chars 000000 constant entry external dcl 5-8 iox_$get_line 000000 constant entry external dcl 5-8 iox_$look_iocb 000000 constant entry external dcl 5-8 iox_$modes 000000 constant entry external dcl 5-8 iox_$move_attach 000000 constant entry external dcl 5-8 iox_$open_file 000000 constant entry external dcl 5-8 iox_$position 000000 constant entry external dcl 5-8 iox_$propagate 000000 constant entry external dcl 5-8 iox_$put_chars 000000 constant entry external dcl 5-8 iox_$read_key 000000 constant entry external dcl 5-8 iox_$read_length 000000 constant entry external dcl 5-8 iox_$read_record 000000 constant entry external dcl 5-8 iox_$rewrite_record 000000 constant entry external dcl 5-8 iox_$seek_key 000000 constant entry external dcl 5-8 iox_$user_input external static pointer dcl 5-41 iox_$write_record 000000 constant entry external dcl 5-8 iox_modes internal static char(24) initial array dcl 6-6 line_editor_binding_count automatic fixed bin(17,0) dcl 3-121 line_editor_key_binding_info based structure level 1 dcl 3-129 line_editor_key_binding_info_ptr automatic pointer dcl 3-118 line_editor_key_binding_info_version_3 internal static char(8) initial unaligned dcl 3-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 3-123 menu_$delete 000000 constant entry external dcl 7-61 menu_$describe 000000 constant entry external dcl 7-35 menu_$destroy 000000 constant entry external dcl 7-41 menu_$list 000000 constant entry external dcl 7-67 menu_$retrieve 000000 constant entry external dcl 7-54 menu_$store 000000 constant entry external dcl 7-46 menu_format_ptr automatic pointer dcl 7-94 menu_requirements_ptr automatic pointer dcl 7-95 more_handler_info based structure level 1 dcl 3-83 more_handler_info_ptr automatic pointer dcl 3-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 3-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 3-94 more_prompt_info based structure level 1 dcl 3-108 more_prompt_info_ptr automatic pointer dcl 3-112 more_prompt_info_version_1 internal static char(8) initial unaligned dcl 3-114 more_responses_info based structure level 1 dcl 3-59 more_responses_info_ptr automatic pointer dcl 3-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 3-67 more_responses_version internal static fixed bin(17,0) initial dcl 3-67 query_info_version_3 internal static fixed bin(17,0) initial dcl 2-33 query_info_version_5 internal static fixed bin(17,0) initial dcl 2-35 query_info_version_6 internal static fixed bin(17,0) initial dcl 2-36 reason automatic char(512) unaligned dcl 207 set_editor_key_bindings_info based structure level 1 dcl 3-162 set_editor_key_bindings_info_ptr automatic pointer dcl 3-171 set_editor_key_bindings_info_version_1 internal static char(8) initial unaligned dcl 3-172 short_iox_modes internal static char(4) initial array dcl 6-12 token_characters_info based structure level 1 dcl 3-97 token_characters_info_ptr automatic pointer dcl 3-104 token_characters_info_version_1 internal static char(8) initial unaligned dcl 3-106 window_$change_column 000000 constant entry external dcl 8-63 window_$change_line 000000 constant entry external dcl 8-59 window_$clear_region 000000 constant entry external dcl 8-7 window_$clear_to_end_of_line 000000 constant entry external dcl 8-9 window_$clear_to_end_of_window 000000 constant entry external dcl 8-11 window_$create 000000 constant entry external dcl 8-72 window_$delete_chars 000000 constant entry external dcl 8-15 window_$destroy 000000 constant entry external dcl 8-74 window_$edit_line 000000 constant entry external dcl 8-76 window_$get_cursor_position 000000 constant entry external dcl 8-17 window_$get_echoed_chars 000000 constant entry external dcl 8-22 window_$get_one_unechoed 000000 constant entry external dcl 8-67 window_$get_one_unechoed_char 000000 constant entry external dcl 8-67 window_$get_unechoed_chars 000000 constant entry external dcl 8-25 window_$insert_text 000000 constant entry external dcl 8-28 window_$overwrite_text 000000 constant entry external dcl 8-29 window_$position_cursor 000000 constant entry external dcl 8-31 window_$position_cursor_rel 000000 constant entry external dcl 8-36 window_$scroll_region 000000 constant entry external dcl 8-42 window_$sync 000000 constant entry external dcl 8-44 window_$write_raw_text 000000 constant entry external dcl 8-48 window_$write_sync_read 000000 constant entry external dcl 8-53 window_edit_line_info based structure level 1 unaligned dcl 3-177 window_edit_line_info_ptr automatic pointer dcl 3-186 window_edit_line_info_version_1 internal static char(8) initial unaligned dcl 3-183 window_position_info_ptr automatic pointer dcl 3-37 window_position_info_version internal static fixed bin(17,0) initial dcl 3-35 window_status_info based structure level 1 dcl 3-45 window_status_info_ptr automatic pointer dcl 3-43 window_status_version internal static fixed bin(17,0) initial dcl 3-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 3-52 NAMES DECLARED BY EXPLICIT CONTEXT. ARG 000000 constant label array(0:4) dcl 260 ref 251 ARGUMENT_PROCESSING_LOOP 003666 constant label dcl 246 CONTROL_ARG 000005 constant label array(2:29) dcl 347 ref 336 END_GROUP_CASE 011260 constant label dcl 1017 ref 909 915 921 927 933 939 946 953 960 966 973 980 992 1003 1014 GROUP 000063 constant label array(15) dcl 905 ref 891 MAIN_RETURN 006571 constant label dcl 706 ref 723 NEXT_1 004343 constant label dcl 303 ref 277 289 301 NEXT_ARG 004643 constant label dcl 442 ref 352 359 366 373 380 387 389 398 405 413 420 427 434 441 NEXT_REQUEST 006546 constant label dcl 697 ref 637 665 671 675 679 683 687 690 695 PRINT_AND_PROMPT_LOOP 005707 constant label dcl 583 PROCESS_REPLY_TO_PROMPT_LOOP 006077 constant label dcl 610 REQUEST 000041 constant label array(0:17) dcl 635 ref 631 SM_RETURN 011544 constant label dcl 1089 ref 1096 canonicalize_name 012652 constant entry internal dcl 1220 ref 865 1129 1187 clean_up 006700 constant entry internal dcl 735 ref 704 721 731 cleanup_all 006663 constant entry internal dcl 727 ref 466 cleanup_and_abort 006573 constant entry internal dcl 712 ref 483 501 508 543 554 562 573 576 812 851 870 885 989 1000 1011 1116 1135 1139 1143 1193 1197 cleanup_screen 007022 constant entry internal dcl 755 ref 719 730 1095 edoc 003466 constant entry external dcl 16 explain_doc 003476 constant entry external dcl 16 find_manual_number 007045 constant entry internal dcl 764 ref 530 menu 011553 constant entry internal dcl 1102 ref 1032 nonmenu 012126 constant entry internal dcl 1154 ref 1034 open_data_base 012576 constant entry internal dcl 1205 ref 482 500 setup_menu 011330 constant entry internal dcl 1045 ref 1029 sm_cleanup_and_return 011545 constant entry internal dcl 1092 ref 1056 1060 1075 1080 1084 NAMES DECLARED BY CONTEXT OR IMPLICATION. min builtin function ref 652 verify builtin function ref 837 839 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 15052 15354 14337 15062 Length 16050 14337 302 460 513 146 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME edoc 1414 external procedure is an external procedure. on unit on line 466 70 on unit cleanup_and_abort 86 internal procedure is called during a stack extension. cleanup_all internal procedure shares stack frame of on unit on line 466. clean_up 82 internal procedure is called by several nonquick procedures. cleanup_screen 72 internal procedure is called by several nonquick procedures. find_manual_number internal procedure shares stack frame of external procedure edoc. setup_menu internal procedure shares stack frame of external procedure edoc. sm_cleanup_and_return internal procedure shares stack frame of external procedure edoc. menu internal procedure shares stack frame of external procedure edoc. nonmenu internal procedure shares stack frame of external procedure edoc. open_data_base internal procedure shares stack frame of external procedure edoc. canonicalize_name internal procedure shares stack frame of external procedure edoc. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 acceptable_requests edoc STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME clean_up 000100 cu_code clean_up edoc 000100 output_switch_name edoc 000110 manual_id edoc 000131 reply edoc 000232 request edoc 000333 mrds_database_path edoc 000405 output_file_path edoc 000457 accept_control_argument edoc 000460 mrds_scope_set edoc 000461 completely_processed_reply edoc 000462 display_all_manuals edoc 000463 enter_request_loop edoc 000464 manual_number_found edoc 000465 quit_signalled edoc 000466 database_path_sw edoc 000467 output_file_sw edoc 000470 local_display_info edoc 000472 accept_idx edoc 000473 idx edoc 000474 manual_number edoc 000475 number_of_manuals edoc 000476 request_idx edoc 000477 start_idx edoc 000500 arg_len edoc 000501 arg_idx edoc 000502 nargs edoc 000503 control_argument_idx edoc 000504 code edoc 000505 mrds_dbi edoc 000506 current_mrds_dbi edoc 000507 manual_array edoc 001020 arg_ptr edoc 001022 output_ptr edoc 001024 work_area_ptr edoc 001034 complain edoc 001040 video_is_on edoc 001041 use_menu edoc 001042 user_io_window_info edoc 001050 group_choices_ptr edoc 001052 choices_ptr edoc 001054 number_of_choices edoc 001056 query_info edoc 001074 display_info_ptr edoc 001122 manual_name find_manual_number 001143 manual_id_string find_manual_number 001164 headers find_manual_number 001232 trailers find_manual_number 001266 order_number find_manual_number 001267 fits_order_number_pattern find_manual_number 001270 fkey find_manual_number 001271 choice find_manual_number 001272 group_name_idx find_manual_number 001273 manual_number find_manual_number 001274 menu_ptr find_manual_number 001276 local_area_info find_manual_number 001322 local_menu_format find_manual_number 001330 local_menu_requirements find_manual_number 001342 sm_code setup_menu 001360 got_choice menu 001370 got_choice nonmenu 001371 choice nonmenu 001372 choice_idx nonmenu 001373 choice_string nonmenu 001422 cn_canonical_name canonicalize_name 001443 cn_string canonicalize_name 001464 cn_temp_string canonicalize_name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_ne_as alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable shorten_stack ext_entry int_entry int_entry_desc set_cs_eis index_cs_eis alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ absolute_pathname_$add_suffix active_fnc_err_ com_err_ command_query_ cu_$af_return_arg cu_$arg_ptr cv_dec_check_ define_area_ display_doc dsl_$close dsl_$dl_scope_all dsl_$open dsl_$retrieve dsl_$set_scope_all ioa_ iox_$attach_name iox_$close iox_$control iox_$detach_iocb iox_$open menu_$create menu_$display menu_$get_choice online_doc_db_index$return_index online_doc_db_index$set_index release_area_ unique_chars_ window_$bell window_$clear_window THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$badopt error_table_$noarg error_table_$noentry error_table_$not_act_fnc iox_$user_io iox_$user_output mrds_error_$invalid_db_index mrds_error_$tuple_not_found sys_info$max_seg_size video_data_$terminal_iocb LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 92 003425 101 003427 113 003431 114 003432 2 7 003433 16 003465 213 003504 214 003507 215 003511 217 003517 219 003522 221 003523 222 003525 223 003530 227 003542 228 003561 230 003605 232 003610 233 003624 236 003625 238 003632 240 003634 241 003662 243 003663 244 003664 246 003666 248 003675 249 003712 251 003726 260 003730 262 003763 264 003764 267 003771 270 004030 272 004031 274 004072 275 004155 276 004160 277 004162 279 004163 281 004207 283 004211 284 004243 287 004244 288 004246 289 004247 291 004250 293 004302 295 004304 296 004336 299 004337 300 004341 301 004342 305 004343 315 004345 319 004426 327 004427 329 004446 330 004450 332 004453 333 004505 336 004506 347 004507 350 004511 351 004512 352 004514 354 004515 357 004517 358 004520 359 004522 361 004523 364 004526 365 004530 366 004531 368 004532 371 004535 372 004537 373 004540 375 004541 378 004544 379 004546 380 004547 382 004550 385 004553 386 004555 387 004556 389 004557 393 004560 396 004561 397 004563 398 004564 400 004565 403 004567 404 004570 405 004571 407 004572 410 004601 411 004603 412 004605 413 004606 415 004607 418 004612 419 004614 420 004615 422 004616 425 004621 426 004623 427 004624 429 004625 432 004630 433 004632 434 004633 436 004634 439 004637 440 004641 441 004642 442 004643 445 004644 448 004646 454 004650 458 004731 461 004732 466 004735 471 004753 473 004762 475 004766 477 004770 482 004772 483 004775 491 005024 492 005060 499 005065 500 005074 501 005077 505 005126 508 005162 512 005211 516 005213 517 005215 518 005217 519 005221 520 005223 521 005225 522 005227 523 005230 524 005231 525 005233 526 005234 530 005236 532 005241 534 005242 539 005245 541 005247 543 005276 547 005326 548 005327 550 005335 551 005336 553 005341 554 005367 558 005421 559 005422 562 005423 565 005475 570 005500 571 005525 573 005575 575 005630 576 005647 578 005701 579 005702 581 005706 583 005707 588 005712 591 005757 593 005767 594 005771 595 006025 597 006027 603 006031 604 006066 605 006072 606 006073 607 006074 610 006077 615 006102 617 006124 619 006136 620 006143 621 006144 623 006145 624 006162 627 006225 629 006242 631 006244 635 006246 637 006250 638 006251 643 006254 644 006256 645 006272 647 006273 648 006275 651 006311 652 006317 655 006366 657 006371 660 006377 662 006431 663 006435 665 006436 666 006437 671 006442 672 006443 675 006446 676 006447 679 006452 680 006453 683 006456 684 006457 687 006462 688 006463 690 006474 691 006475 693 006536 694 006541 695 006545 699 006546 701 006547 704 006565 706 006571 712 006572 719 006613 721 006624 722 006631 723 006660 727 006663 730 006664 731 006671 733 006676 735 006677 738 006705 740 006706 742 006715 743 006727 746 006743 748 006761 750 007004 753 007020 755 007021 758 007027 762 007044 764 007045 804 007056 805 007061 806 007063 807 007065 808 007070 809 007073 811 007075 812 007107 815 007136 817 007140 818 007142 819 007143 820 007144 822 007163 824 007171 825 007173 829 007174 836 007201 837 007203 839 007216 842 007231 844 007233 846 007237 849 007272 851 007300 855 007330 859 007331 865 007335 866 007337 868 007372 870 007400 873 007440 876 007442 882 007446 884 007464 885 007466 891 007540 905 007543 907 007636 908 007640 909 007642 911 007643 913 007762 914 007764 915 007766 917 007767 919 010036 920 010040 921 010042 923 010043 925 010112 926 010114 927 010116 929 010117 931 010166 932 010170 933 010172 935 010173 937 010254 938 010256 939 010260 942 010261 944 010354 945 010356 946 010360 949 010361 951 010466 952 010470 953 010472 956 010473 958 010542 959 010544 960 010546 962 010547 964 010616 965 010620 966 010622 969 010623 971 010672 972 010674 973 010676 976 010677 978 010772 979 010774 980 010776 983 010777 987 011034 989 011042 992 011071 994 011072 998 011127 1000 011135 1003 011164 1005 011165 1009 011222 1011 011230 1014 011257 1017 011260 1024 011264 1025 011271 1026 011276 1027 011302 1029 011307 1032 011313 1034 011320 1038 011321 1041 011327 1045 011330 1051 011332 1052 011333 1054 011334 1055 011336 1056 011370 1059 011373 1060 011404 1063 011407 1064 011411 1066 011413 1067 011415 1068 011417 1069 011421 1070 011423 1072 011425 1073 011427 1075 011432 1078 011435 1080 011520 1083 011523 1084 011536 1087 011541 1089 011544 1092 011545 1095 011546 1096 011552 1102 011553 1111 011554 1113 011555 1115 011560 1116 011603 1119 011632 1121 011650 1123 011657 1128 011660 1129 011662 1131 011676 1133 011731 1135 011737 1139 012005 1142 012050 1143 012062 1146 012111 1147 012112 1148 012124 1150 012125 1154 012126 1165 012127 1167 012132 1169 012154 1170 012163 1171 012215 1173 012217 1174 012220 1175 012222 1176 012251 1177 012303 1180 012340 1182 012400 1183 012402 1185 012403 1187 012406 1189 012422 1191 012455 1193 012463 1197 012531 1199 012574 1201 012575 1205 012576 1212 012607 1213 012637 1216 012651 1220 012652 1228 012654 1230 012662 1231 012700 1232 012714 1233 012740 1234 013003 1236 013005 1238 013023 ----------------------------------------------------------- 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