COMPILATION LISTING OF SEGMENT linus_display Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/29/86 0953.9 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the main level procedure called by ssu_ to implement the 9* linus display request. Description and usage follows. 10* 11* Description: This request takes far too many control arguments to 12* list here (currently it accepts 55). See the info segment for details 13* on the accepted control arguments and usage. 14* 15* Usage: 16* 17* Both parameters are passed to this request by ssu_. 18* 19* 20* Known Bugs: 21* 22* Other Problems: 23* 24* History: 25* 26* Written - Al Dupuis - August 1983 27* 28**/ 29 30 linus_display: proc (sci_ptr_parm, lcb_ptr_parm); 31 32 dcl sci_ptr_parm ptr parm; /* ptr to the subsystem control info structure */ 33 dcl lcb_ptr_parm ptr parm; /* ptr to the linus control block info structure */ 34 35 /* 36* Mainline Processing Overview. 37* 38* (1) Make sure the format options are up to date and that there is 39* data to create a report from. 40* 41* (2) Have the subroutine linus_display_process_args fill in the 42* default control args and update the defaults with arguments 43* supplied on the request line. 44* 45* (3) Delete existing report and table if appropriate, start new ones 46* if appropriate, possibly sort the table, setup for multi-pass 47* mode if appropriate. 48* 49* (4) Setup any output file, output switch, or the video system 50* depending on what control arguments were given. 51* 52* (5) Print, scroll, or page the report. 53* 54* (6) Perform termination as instructed by the control args. 55* 56**/ 57 58 arguments_have_been_processed = OFF; 59 cleanup_signalled = OFF; 60 61 on cleanup begin; 62 cleanup_signalled = ON; 63 call terminate; 64 end; 65 66 call initialize; 67 call linus_display_process_args (sci_ptr, lcb_ptr, work_area_ptr, 68 table_ip, addr (display_arg_results)); 69 arguments_have_been_processed = ON; 70 call fill_in_the_defaults; 71 72 call setup_io_switches; 73 74 if display_arg_results.scroll_flag 75 then call scroll_the_report; 76 else if display_arg_results.pages_flag 77 then call page_the_report; 78 else call print_report; 79 80 call terminate; 81 82 return; 83 84 begin_new_report: proc; 85 86 if display_arg_results.flags.keep_report_flag 87 | display_arg_results.flags.scroll_flag 88 then report_control_info.flags.permanent_report = ON; 89 else report_control_info.flags.permanent_report = OFF; 90 91 if display_arg_results.time_flag 92 then time1 = vclock; 93 94 call linus_fr_new_report (lcb_ptr, code); 95 if display_arg_results.time_flag 96 then do; 97 time2 = vclock; 98 report_control_info.report_setup_time = time2 - time1; 99 call ioa_$ioa_switch (iox_$error_output, 100 "Time used to setup the report was ^10.5f seconds.", 101 report_control_info.report_setup_time / 1000000); 102 end; 103 104 if code ^= 0 105 then call ssu_$abort_line (sci_ptr, code); 106 107 report_control_info.flags.report_has_been_started = ON; 108 report_control_info.flags.report_is_formatted = OFF; 109 report_control_info.flags.report_has_just_been_completed = OFF; 110 report_control_info.report_identifier 111 = report_control_info.options_identifier; 112 report_control_info.no_of_formatted_pages = 0; 113 report_control_info.report_formatting_time = 0; 114 report_control_info.report_display_time = 0; 115 report_control_info.ssu_evaluate_active_string_time = 0; 116 117 return; 118 119 end begin_new_report; 120 121 begin_new_retrieval: proc; 122 123 if display_arg_results.keep_retrieval_flag 124 | display_arg_results.sort_flag 125 then report_control_info.permanent_table = ON; 126 else report_control_info.permanent_table = OFF; 127 128 time1 = vclock; 129 call linus_table$new_table (lcb_ptr, 130 (report_control_info.temp_dir_name), 131 (report_control_info.permanent_table), code); 132 time2 = vclock; 133 report_control_info.table_loading_time = time2 - time1; 134 135 if code ^= 0 136 then call ssu_$abort_line (sci_ptr, code); 137 138 report_control_info.flags.table_has_been_started = ON; 139 report_control_info.flags.table_is_full = OFF; 140 report_control_info.flags.table_has_just_been_loaded = OFF; 141 report_control_info.retrieval_identifier 142 = table_info.retrieval_identifier; 143 report_control_info.no_of_rows_retrieved = table_info.row_count; 144 145 return; 146 147 end begin_new_retrieval; 148 149 delete_report: proc; 150 151 if display_arg_results.time_flag 152 then time1 = vclock; 153 154 call linus_fr_delete_report (lcb_ptr, code); 155 if display_arg_results.time_flag 156 then do; 157 time2 = vclock; 158 report_control_info.report_deletion_time = time2 - time1; 159 call ioa_$ioa_switch (iox_$error_output, 160 "Time used to delete the report was ^10.5f seconds.", 161 report_control_info.report_deletion_time / 1000000); 162 end; 163 164 if code ^= 0 165 then if cleanup_signalled 166 then call ssu_$print_message (sci_ptr, code); 167 else call ssu_$abort_line (sci_ptr, code); 168 else; 169 170 report_control_info.flags.report_has_been_started = OFF; 171 172 return; 173 174 end delete_report; 175 176 delete_table: proc; 177 178 if display_arg_results.time_flag 179 then time1 = vclock; 180 181 call linus_table$delete_table (lcb_ptr, code); 182 if display_arg_results.time_flag 183 then do; 184 time2 = vclock; 185 report_control_info.table_deletion_time = time2 - time1; 186 call ioa_$ioa_switch (iox_$error_output, 187 "Time used to delete the table was ^10.5f seconds.", 188 report_control_info.table_deletion_time / 1000000); 189 end; 190 191 if code ^= 0 192 then if cleanup_signalled 193 then call ssu_$print_message (sci_ptr, code); 194 else call ssu_$abort_line (sci_ptr, code); 195 else; 196 197 report_control_info.flags.table_has_been_started = OFF; 198 199 return; 200 201 end delete_table; 202 203 fill_in_the_defaults: proc; 204 205 /* 206* Delete the old table and old report if a new retrieval or report 207* has been requested and it wasn't deleted on our last termination. 208* The user may have asked for an existing table or report to be 209* used when it isn't possible. Examples of this are: when there isn't 210* an existing table; when invocations of the print, report, etc. 211* requests have occured since we were last active; when there isn't 212* an existing report; when the user has invoked the sfo request; 213* etc. If this has happened then it is treated as if the user asked 214* for a new report/table. 215**/ 216 217 if ^display_arg_results.new_retrieval_flag 218 then do; 219 if report_control_info.retrieval_identifier 220 ^= table_info.retrieval_identifier 221 | ^report_control_info.flags.table_has_been_started 222 then do; 223 if display_arg_results.long_flag 224 then call ssu_$print_message (sci_ptr, 0, 225 "Warning: A new retrieval will be started."); 226 display_arg_results.new_retrieval_flag = ON; 227 end; 228 else; 229 end; 230 else; 231 232 if display_arg_results.new_retrieval_flag 233 & report_control_info.flags.table_has_been_started 234 then call delete_table; 235 236 if ^display_arg_results.new_report_flag 237 then do; 238 if report_control_info.report_identifier 239 ^= report_control_info.options_identifier 240 | ^report_control_info.flags.report_has_been_started 241 | display_arg_results.new_retrieval_flag 242 then do; 243 if display_arg_results.long_flag 244 then call ssu_$print_message (sci_ptr, 0, 245 "Warning: A new report will be started."); 246 display_arg_results.new_report_flag = ON; 247 end; 248 else; 249 end; 250 else; 251 252 if display_arg_results.new_report_flag 253 & report_control_info.flags.report_has_been_started 254 then call delete_report; 255 256 /* 257* 258* Check for a new temp dir supplied by the user for placing the 259* retrieved data table and formatted report. We only allow a new 260* temp_dir when we're about to create a new table and report, because 261* the ptrs to the rows and formatted pages of existing reports and 262* tables would be invalid. 263* 264**/ 265 266 if display_arg_results.temp_dir_flag 267 then do; 268 allocate status_branch in (work_area) set (status_ptr); 269 call expand_pathname_ (display_arg_results.temp_dir_pathname, 270 directory_name, entry_name, code); 271 if code ^= 0 272 then call ssu_$abort_line (sci_ptr, code, 273 "^/While trying to expand the temp dir ^a.", 274 display_arg_results.temp_dir_pathname); 275 call hcs_$status_long (directory_name, entry_name, 1, 276 status_ptr, null (), code); 277 if code ^= 0 & code ^= error_table_$no_s_permission 278 then call ssu_$abort_line (sci_ptr, code, 279 "^/While trying to determine the unique id of ^a.", 280 display_arg_results.temp_dir_pathname); 281 if display_arg_results.new_report_flag 282 & display_arg_results.new_retrieval_flag 283 then do; 284 report_control_info.temp_dir_name 285 = display_arg_results.temp_dir_pathname; 286 report_control_info.temp_dir_unique_id 287 = status_branch.long.uid; 288 end; 289 else if report_control_info.temp_dir_unique_id = status_branch.long.uid 290 then; 291 else do; 292 if display_arg_results.long_flag 293 then call ssu_$print_message (sci_ptr, 0, 294 "Warning: The temp_dir ^a won't be used.", 295 rtrim (display_arg_results.temp_dir_pathname)); 296 display_arg_results.temp_dir_flag = OFF; 297 end; 298 end; 299 else; 300 301 /* 302* Check for multiple pass mode. 303**/ 304 305 if display_arg_results.flags.passes_flag 306 then if ^display_arg_results.flags.new_report_flag 307 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 308 "^/The control argument -passes can only be used with a new report."); 309 else do; 310 report_control_info.flags.multi_pass_mode = ON; 311 report_control_info.number_of_passes = display_arg_results.number_of_passes; 312 end; 313 else report_control_info.flags.multi_pass_mode = OFF; 314 /* 315* Begin a new retrieval and report if appropriate. 316**/ 317 318 if display_arg_results.new_retrieval_flag 319 then call begin_new_retrieval; 320 321 if display_arg_results.new_report_flag 322 then call begin_new_report; 323 324 /* 325* Sort the table if instructed. 326**/ 327 328 if display_arg_results.sort_flag 329 then do; 330 if ^report_control_info.flags.table_is_full 331 then call load_the_entire_table; 332 if display_arg_results.time_flag 333 then time1 = vclock; 334 call linus_table$sort (lcb_ptr, 335 display_arg_results.sort_information_ptr, code); 336 if display_arg_results.time_flag 337 then do; 338 time2 = vclock; 339 report_control_info.table_sorting_time = time2 - time1; 340 call ioa_$ioa_switch (iox_$error_output, 341 "Time used to sort the table was ^10.5f seconds.", 342 report_control_info.table_sorting_time / 1000000); 343 end; 344 if code ^= 0 345 then call ssu_$abort_line (sci_ptr, code); 346 end; 347 348 return; 349 350 end fill_in_the_defaults; 351 352 format_page: proc; 353 354 if display_arg_results.time_flag 355 then time1 = vclock; 356 call linus_fr_build_page (lcb_ptr, page_ip, code); 357 if display_arg_results.time_flag 358 then do; 359 time2 = vclock; 360 report_control_info.report_formatting_time 361 = report_control_info.report_formatting_time + (time2 - time1); 362 end; 363 if code ^= 0 364 then call ssu_$abort_line (sci_ptr, code); 365 366 if report_control_info.flags.report_has_just_been_completed 367 then do; 368 report_control_info.flags.report_has_just_been_completed = OFF; 369 if display_arg_results.time_flag 370 then call ioa_$ioa_switch (iox_$error_output, 371 "Time used to format the report was ^10.5f seconds." 372 || "^/(ssu_$evaluate_active_string used ^10.5f seconds of this time.)", 373 report_control_info.report_formatting_time / 1000000, 374 report_control_info.ssu_evaluate_active_string_time / 1000000); 375 else; 376 end; 377 378 if report_control_info.flags.table_has_just_been_loaded 379 then do; 380 report_control_info.flags.table_has_just_been_loaded = OFF; 381 if display_arg_results.time_flag 382 then call ioa_$ioa_switch (iox_$error_output, 383 "Time used to load the table was ^10.5f seconds.", 384 report_control_info.table_loading_time / 1000000); 385 else; 386 end; 387 388 call format_page_or_get_page_extra_processing (report_control_info.no_of_formatted_pages); 389 390 return; 391 392 end format_page; 393 394 format_page_or_get_page_extra_processing: proc ( 395 396 fpgpep_page_number_parm /* input: number of page just got or formatted */ 397 ); 398 dcl fpgpep_page_number_parm fixed bin (21) parm; 399 400 if fpgpep_page_number_parm = 1 401 then first_page_of_the_report = ON; 402 else first_page_of_the_report = OFF; 403 404 if report_control_info.report_is_formatted 405 & report_control_info.no_of_formatted_pages = fpgpep_page_number_parm 406 then last_page_of_the_report = ON; 407 else last_page_of_the_report = OFF; 408 409 if page_info.page_overstrike_info_ptr ^= null () 410 then do; 411 terminal_dependency = ON; 412 page_overstrike_ip = page_info.page_overstrike_info_ptr; 413 end; 414 else terminal_dependency = OFF; 415 416 return; 417 418 end format_page_or_get_page_extra_processing; 419 420 get_page: proc (target_page_parm); 421 422 dcl target_page_parm fixed bin (21) parm; 423 424 call linus_fr_get_page (lcb_ptr, target_page_parm, page_ip, code); 425 if code ^= 0 426 then call ssu_$abort_line (sci_ptr, code, 427 "While trying to get page ^d.", target_page_parm); 428 429 call format_page_or_get_page_extra_processing (target_page_parm); 430 431 return; 432 433 end get_page; 434 435 initialize: proc; 436 437 sci_ptr = sci_ptr_parm; 438 lcb_ptr = lcb_ptr_parm; 439 440 /* Make sure that there is data to create a report from, and that 441* the information on the columns is available. */ 442 443 call linus_table$translate_query (lcb_ptr, table_ip, code); 444 if code ^= 0 445 then call ssu_$abort_line (sci_ptr, code); 446 447 /* Make sure that the options are in sync with the current table. */ 448 449 call linus_options$initialize (lcb_ptr, code); 450 if code ^= 0 451 then call ssu_$abort_line (sci_ptr, code); 452 453 /* Automatic versions of a few odds and sodds we will need. */ 454 455 report_cip = lcb.report_control_info_ptr; 456 work_area_ptr = report_control_info.display_work_area_ptr; 457 call release_area_ (work_area_ptr); 458 work_area_ptr = report_control_info.display_work_area_ptr; 459 video_has_been_set_up = OFF; 460 461 return; 462 463 end initialize; 464 465 load_the_entire_table: proc; 466 467 if display_arg_results.time_flag 468 then time1 = vclock; 469 470 call linus_table$load_table (lcb_ptr, code); 471 if display_arg_results.time_flag 472 then do; 473 time2 = vclock; 474 report_control_info.table_loading_time 475 = report_control_info.table_loading_time + (time2 - time1); 476 call ioa_$ioa_switch (iox_$error_output, 477 "Time used to load the table was ^10.5f seconds.", 478 report_control_info.table_loading_time / 1000000); 479 end; 480 if code ^= 0 481 then if code = mrds_error_$tuple_not_found 482 then; 483 else call ssu_$abort_line (sci_ptr, code); 484 else; 485 486 report_control_info.flags.table_is_full = ON; 487 report_control_info.no_of_rows_retrieved = table_info.row_count; 488 489 return; 490 491 end load_the_entire_table; 492 493 page_the_report: proc; 494 495 dcl ptr_current_page_number fixed bin (21); 496 dcl ptr_specified_pages_as_a_string bit (NUMBER_OF_ALLOWED_SPECIFIED_PAGES) based (ptr_specified_pages_as_a_string_ptr); 497 dcl ptr_specified_pages_as_a_string_ptr ptr; 498 dcl ptr_still_paging bit (1) aligned; 499 500 if ^report_control_info.report_is_paginated 501 then do; 502 call print_report; 503 return; 504 end; 505 506 report_control_info.report_display_time = 0; 507 ptr_specified_pages_as_a_string_ptr = addr (display_arg_results.specified_pages (1)); 508 ptr_current_page_number = 1; 509 ptr_still_paging = ON; 510 511 do while (ptr_still_paging); 512 513 if ptr_current_page_number > report_control_info.no_of_formatted_pages 514 then call format_page; 515 else if display_arg_results.specified_pages (ptr_current_page_number) 516 then call get_page (ptr_current_page_number); 517 else; 518 519 if display_arg_results.specified_pages (ptr_current_page_number) 520 then call print_page; 521 522 if ^display_arg_results.last_page_flag 523 then if index (substr (ptr_specified_pages_as_a_string, ptr_current_page_number + 1), ON) = 0 524 then ptr_still_paging = OFF; 525 else ptr_current_page_number = ptr_current_page_number + 1; 526 else ptr_current_page_number = ptr_current_page_number + 1; 527 528 if report_control_info.report_is_formatted 529 & ptr_current_page_number > report_control_info.no_of_formatted_pages 530 then ptr_still_paging = OFF; 531 532 end; 533 534 if display_arg_results.last_page_flag 535 then if ^display_arg_results.specified_pages (report_control_info.no_of_formatted_pages) 536 then do; 537 if ^display_arg_results.new_report_flag 538 then call get_page (report_control_info.no_of_formatted_pages); 539 else; 540 call print_page; 541 end; 542 else; 543 else; 544 545 if display_arg_results.flags.time_flag 546 then call ioa_$ioa_switch (iox_$error_output, 547 "Time used to display the report was ^10.5f seconds.", 548 report_control_info.report_display_time / 1000000); 549 550 return; 551 552 end page_the_report; 553 554 print_page: proc; 555 556 dcl pp_chunk_of_line char (pp_number_of_chars) based (pp_chunk_of_line_ptr); 557 dcl pp_chunk_of_line_ptr ptr; 558 dcl pp_code fixed bin (35); 559 dcl pp_ioa_string char (4); 560 dcl pp_left_margin fixed bin; 561 dcl pp_loop fixed bin; 562 dcl pp_loop_limit fixed bin; 563 dcl pp_number_of_chars fixed bin; 564 dcl pp_overstrike_index fixed bin; 565 dcl pp_right_margin fixed bin; 566 567 if display_arg_results.time_flag 568 then time1 = vclock; 569 570 if ^display_arg_results.output_file_flag 571 then if report_control_info.report_is_paginated 572 | first_page_of_the_report 573 then call ioa_$ioa_switch_nnl ( 574 report_control_info.display_iocb_ptr, "^3/"); 575 else; 576 else; 577 578 if ^display_arg_results.character_positions_flag & ^terminal_dependency 579 then do; 580 call iox_$put_chars (report_control_info.display_iocb_ptr, 581 page_info.page_ptr, page_info.total_characters, pp_code); 582 if pp_code ^= 0 583 then call ssu_$abort_line (sci_ptr, pp_code); 584 end; 585 else do; 586 if display_arg_results.character_positions_flag 587 then do; 588 pp_right_margin = display_arg_results.right_margin_position; 589 pp_left_margin = display_arg_results.left_margin_position; 590 if pp_left_margin < 1 591 then pp_left_margin = 1; 592 if pp_right_margin >= page_info.width 593 then pp_right_margin = page_info.width - 1; 594 end; 595 else do; 596 pp_right_margin = page_info.width - 1; 597 pp_left_margin = 1; 598 end; 599 pp_number_of_chars = pp_right_margin - pp_left_margin + 1; 600 if pp_number_of_chars ^> 0 601 then call ssu_$abort_line (sci_ptr, linus_error_$bad_report_display, 602 "The specified character positions result in no characters being printed."); 603 pp_loop_limit = page_info.length - 1; 604 do pp_loop = 1 to pp_loop_limit; 605 pp_overstrike_index = ((pp_loop - 1) * page_info.width) + pp_left_margin; 606 pp_chunk_of_line_ptr = addr (page_defined_as_chars (pp_overstrike_index)); 607 if terminal_dependency 608 & index (substr (page_overstrike_info_redefined.bit_map, pp_overstrike_index, pp_number_of_chars), ON) ^= 0 609 then call make_terminal_dependent_string; 610 call ioa_$ioa_switch (report_control_info.display_iocb_ptr, 611 "^a", pp_chunk_of_line); 612 if terminal_dependency 613 then pp_number_of_chars = pp_right_margin - pp_left_margin + 1; 614 end; 615 pp_overstrike_index = (pp_loop_limit * page_info.width) + pp_left_margin; 616 pp_chunk_of_line_ptr = addr (page_defined_as_chars (pp_overstrike_index)); 617 if report_control_info.report_is_paginated | last_page_of_the_report 618 then pp_ioa_string = "^a^|"; 619 else pp_ioa_string = "^a^/"; 620 if terminal_dependency 621 & index (substr (page_overstrike_info_redefined.bit_map, pp_overstrike_index, pp_number_of_chars), ON) ^= 0 622 then call make_terminal_dependent_string; 623 call ioa_$ioa_switch_nnl (report_control_info.display_iocb_ptr, 624 pp_ioa_string, pp_chunk_of_line); 625 end; 626 627 if display_arg_results.time_flag 628 then do; 629 time2 = vclock; 630 report_control_info.report_display_time 631 = report_control_info.report_display_time + (time2 - time1); 632 end; 633 634 return; 635 636 make_terminal_dependent_string: proc; 637 638 dcl mtds_loop fixed bin; 639 dcl mtds_overstrike_index fixed bin; 640 641 spare_string = ""; 642 mtds_overstrike_index = pp_overstrike_index; 643 do mtds_loop = 1 to pp_number_of_chars; 644 spare_string = spare_string || substr (pp_chunk_of_line, mtds_loop, 1); 645 if page_overstrike_info.bit_map (mtds_overstrike_index) 646 then spare_string = spare_string 647 || BACKSPACE || page_overstrike_info.chars (mtds_overstrike_index); 648 mtds_overstrike_index = mtds_overstrike_index + 1; 649 end; 650 651 pp_number_of_chars = length (spare_string); 652 pp_chunk_of_line_ptr = addrel (addr (spare_string), 1); 653 654 return; 655 656 end make_terminal_dependent_string; 657 658 end print_page; 659 660 print_report: proc; 661 662 dcl pr_loop fixed bin (21); 663 dcl pr_loop_limit fixed bin (21); 664 665 report_control_info.report_display_time = 0; 666 667 if report_control_info.no_of_formatted_pages ^= 0 668 then do; 669 pr_loop_limit = report_control_info.no_of_formatted_pages; 670 do pr_loop = 1 to pr_loop_limit; 671 call get_page (pr_loop); 672 call print_page; 673 end; 674 end; 675 676 do while (^report_control_info.flags.report_is_formatted); 677 call format_page; 678 call print_page; 679 end; 680 681 if display_arg_results.flags.time_flag 682 then call ioa_$ioa_switch (iox_$error_output, 683 "Time used to display the report was ^10.5f seconds.", 684 report_control_info.report_display_time / 1000000); 685 686 return; 687 688 end print_report; 689 690 scroll_the_report: proc; 691 692 dcl str_still_looking_for_the_page bit (1) aligned; 693 694 scroll_ip = display_arg_results.scroll_info_ptr; 695 696 on display_buffer_empty begin; 697 if scroll_info.target_page_number <= report_control_info.no_of_formatted_pages 698 then call get_page (scroll_info.target_page_number); 699 else call format_page; 700 scroll_info.page_info_pointer = page_ip; 701 end; 702 703 do while (ON); 704 if scroll_info.flags.goto_line_number_pending 705 then call find_line_within_page; 706 else call find_page; 707 scroll_info.page_info_pointer = page_ip; 708 call linus_display_scroll$continue (scroll_ip, code); 709 if code ^= 0 710 then if code = error_table_$end_of_info 711 then return; 712 else call ssu_$abort_line (sci_ptr, code); 713 else; 714 end; 715 716 return; 717 718 check_for_end_of_report: proc; 719 720 scroll_info.flags.on_the_last_page = OFF; 721 722 if report_control_info.flags.report_is_formatted 723 then if scroll_info.target_page_number > report_control_info.no_of_formatted_pages 724 then do; 725 scroll_info.target_page_number = report_control_info.no_of_formatted_pages; 726 scroll_info.flags.on_the_last_page = ON; 727 end; 728 else; 729 else; 730 731 return; 732 733 end check_for_end_of_report; 734 735 find_line_within_page: proc; 736 737 dcl flwp_beginning_line_number fixed bin (35); 738 dcl flwp_ending_line_number fixed bin (35); 739 dcl flwp_line_number_is_beyond_end_of_report bit (1) aligned; 740 dcl flwp_still_looking_for_the_line bit (1) aligned; 741 742 scroll_info.flags.goto_line_number_pending = OFF; 743 flwp_still_looking_for_the_line = ON; 744 flwp_line_number_is_beyond_end_of_report = OFF; 745 scroll_info.target_page_number = 1; 746 flwp_beginning_line_number = 1; 747 748 do while (flwp_still_looking_for_the_line); 749 if scroll_info.target_page_number 750 <= report_control_info.no_of_formatted_pages 751 then call get_page (scroll_info.target_page_number); 752 else call format_page; 753 754 flwp_ending_line_number = flwp_beginning_line_number + page_info.length - 1; 755 if report_control_info.flags.report_is_formatted 756 then if scroll_info.target_page_number 757 = report_control_info.no_of_formatted_pages 758 then do; 759 scroll_info.flags.on_the_last_page = ON; 760 if scroll_info.target_line_number > flwp_ending_line_number 761 then flwp_line_number_is_beyond_end_of_report = ON; 762 end; 763 else; 764 else; 765 766 if (scroll_info.target_line_number >= flwp_beginning_line_number 767 & scroll_info.target_line_number <= flwp_ending_line_number) 768 | (flwp_line_number_is_beyond_end_of_report) 769 then flwp_still_looking_for_the_line = OFF; 770 else flwp_beginning_line_number = flwp_ending_line_number + 1; 771 772 if ^flwp_still_looking_for_the_line 773 then do; 774 if flwp_line_number_is_beyond_end_of_report 775 then scroll_info.target_line_number 776 = (flwp_ending_line_number - flwp_beginning_line_number) 777 - scroll_info.vertical_scroll_distance + 1; 778 else scroll_info.target_line_number 779 = scroll_info.target_line_number - flwp_beginning_line_number + 1; 780 end; 781 else scroll_info.target_page_number 782 = scroll_info.target_page_number + 1; 783 end; 784 785 return; 786 787 end find_line_within_page; 788 789 find_page: proc; 790 791 call check_for_end_of_report; 792 if scroll_info.target_page_number <= report_control_info.no_of_formatted_pages 793 then call get_page (scroll_info.target_page_number); 794 else do; 795 str_still_looking_for_the_page = ON; 796 do while (str_still_looking_for_the_page); 797 call format_page; 798 call check_for_end_of_report; 799 if scroll_info.target_page_number = report_control_info.no_of_formatted_pages 800 then str_still_looking_for_the_page = OFF; 801 end; 802 end; 803 804 return; 805 806 end find_page; 807 808 end scroll_the_report; 809 810 setup_io_switches: proc; 811 812 if display_arg_results.output_file_flag 813 then call setup_output_file; 814 else if display_arg_results.scroll_flag 815 then do; 816 call linus_display_scroll$start (sci_ptr, report_cip, 817 addr (display_arg_results), work_area_ptr); 818 video_has_been_set_up = ON; 819 end; 820 else if display_arg_results.output_switch_flag 821 then call setup_output_switch; 822 else report_control_info.display_iocb_ptr 823 = iox_$user_output; 824 825 return; 826 827 setup_output_file: proc; 828 829 switch_name = unique_chars_ ("0"b) || ".linus_display"; 830 if display_arg_results.truncate_flag 831 then attach_description = "vfile_ " 832 || rtrim (display_arg_results.output_file_directory_name) 833 || ">" || rtrim (display_arg_results.output_file_entry_name); 834 else attach_description = "vfile_ " 835 || rtrim (display_arg_results.output_file_directory_name) 836 || ">" || rtrim (display_arg_results.output_file_entry_name) 837 || " -extend"; 838 839 call iox_$attach_name (switch_name, iocb_ptr, attach_description, 840 null (), code); 841 if code ^= 0 842 then call ssu_$abort_line (sci_ptr, code, 843 "While trying to attach file ^a in dir ^a.", 844 rtrim (display_arg_results.output_file_entry_name), 845 rtrim (display_arg_results.output_file_directory_name)); 846 847 call iox_$open (iocb_ptr, Stream_output, "0"b, code); 848 if code ^= 0 849 then call ssu_$abort_line (sci_ptr, code, 850 "While trying to open file ^a in dir ^a.", 851 rtrim (display_arg_results.output_file_entry_name), 852 rtrim (display_arg_results.output_file_directory_name)); 853 854 report_control_info.display_iocb_ptr = iocb_ptr; 855 856 return; 857 858 end setup_output_file; 859 860 setup_output_switch: proc; 861 862 call iox_$look_iocb (display_arg_results.output_switch_name, 863 report_control_info.display_iocb_ptr, code); 864 if code = error_table_$no_iocb 865 then call ssu_$abort_line (sci_ptr, linus_error_$bad_report_display, 866 BAD_OUTPUT_SWITCH_MESSAGE); 867 868 if report_control_info.display_iocb_ptr -> iocb.attach_descrip_ptr = null () 869 | report_control_info.display_iocb_ptr -> iocb.open_descrip_ptr = null () 870 then call ssu_$abort_line (sci_ptr, linus_error_$bad_report_display, 871 BAD_OUTPUT_SWITCH_MESSAGE); 872 873 return; 874 875 end setup_output_switch; 876 877 end setup_io_switches; 878 879 terminate: proc; 880 881 if ^arguments_have_been_processed 882 then return; 883 884 /* Delete the table and report if instructed to do so. */ 885 886 if ^display_arg_results.keep_retrieval_flag 887 & report_control_info.flags.table_has_been_started 888 then call delete_table; 889 890 if ^display_arg_results.keep_report_flag 891 & report_control_info.flags.report_has_been_started 892 then call delete_report; 893 894 /* If we were writing the report to a file clean up. */ 895 896 if display_arg_results.output_file_flag 897 & (report_control_info.display_iocb_ptr ^= iox_$user_output 898 & report_control_info.display_iocb_ptr ^= null ()) 899 then do; 900 iocb_ptr = report_control_info.display_iocb_ptr; 901 call iox_$close (iocb_ptr, code); 902 call iox_$detach_iocb (iocb_ptr, code); 903 call iox_$destroy_iocb (iocb_ptr, code); 904 if cleanup_signalled & report_control_info.no_of_formatted_pages > 0 905 then call ssu_$print_message (sci_ptr, 0, 906 "The partial report is contained in ^/^a.", 907 rtrim (display_arg_results.output_file_directory_name) 908 || ">" || rtrim (display_arg_results.output_file_entry_name)); 909 else; 910 end; 911 else; 912 913 if display_arg_results.scroll_flag & video_has_been_set_up 914 then call linus_display_scroll$stop (display_arg_results.scroll_info_ptr); 915 916 return; 917 918 end terminate; 919 920 dcl BACKSPACE char (1) static int options (constant) init (""); 921 dcl BAD_OUTPUT_SWITCH_MESSAGE char (69) static int options (constant) init ( 922 "^/When -output_switch is used the switch must be opened and attached."); 923 dcl OFF bit (1) aligned static int options (constant) init ("0"b); 924 dcl ON bit (1) aligned static int options (constant) init ("1"b); 925 926 dcl addr builtin; 927 dcl addrel builtin; 928 dcl arguments_have_been_processed bit (1) aligned; 929 dcl attach_description char (256); 930 931 dcl cleanup condition; 932 dcl cleanup_signalled bit (1) aligned; 933 dcl code fixed bin (35); 934 935 dcl directory_name char (168); 936 dcl display_buffer_empty condition; 937 938 dcl entry_name char (32); 939 dcl error_table_$end_of_info fixed bin(35) ext static; 940 dcl error_table_$inconsistent fixed bin(35) ext static; 941 dcl error_table_$no_iocb fixed bin(35) ext static; 942 dcl error_table_$no_s_permission fixed bin(35) ext static; 943 dcl expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)); 944 945 dcl first_page_of_the_report bit (1) aligned; 946 dcl fixed builtin; 947 948 dcl hcs_$status_long entry (char(*), char(*), fixed bin(1), ptr, ptr, fixed bin(35)); 949 950 dcl index builtin; 951 dcl ioa_$ioa_switch entry() options(variable); 952 dcl ioa_$ioa_switch_nnl entry() options(variable); 953 dcl iocb_ptr ptr; 954 955 dcl last_page_of_the_report bit (1) aligned; 956 dcl length builtin; 957 dcl linus_display_process_args entry (ptr, ptr, ptr, ptr, ptr); 958 dcl linus_display_scroll$continue entry (ptr, fixed bin(35)); 959 dcl linus_display_scroll$start entry (ptr, ptr, ptr, ptr); 960 dcl linus_display_scroll$stop entry (ptr); 961 dcl linus_error_$bad_report_display fixed bin(35) ext static; 962 dcl linus_fr_build_page entry (ptr, ptr, fixed bin(35)); 963 dcl linus_fr_delete_report entry (ptr, fixed bin(35)); 964 dcl linus_fr_get_page entry (ptr, fixed bin (21), ptr, fixed bin (35)); 965 dcl linus_fr_new_report entry (ptr, fixed bin(35)); 966 dcl linus_options$initialize entry (ptr, fixed bin(35)); 967 dcl linus_table$delete_table entry (ptr, fixed bin(35)); 968 dcl linus_table$translate_query entry (ptr, ptr, fixed bin(35)); 969 dcl linus_table$load_table entry (ptr, fixed bin(35)); 970 dcl linus_table$new_table entry (ptr, char(168) var, bit (1) aligned, fixed bin(35)); 971 dcl linus_table$sort entry (ptr, ptr, fixed bin(35)); 972 973 dcl mrds_error_$tuple_not_found fixed bin(35) ext static; 974 975 dcl null builtin; 976 977 dcl rel builtin; 978 dcl release_area_ entry (ptr); 979 dcl rtrim builtin; 980 981 dcl sci_ptr ptr; 982 dcl spare_string char (MAXIMUM_OPTION_VALUE_LENGTH) varying; 983 dcl ssu_$abort_line entry() options(variable); 984 dcl ssu_$print_message entry() options(variable); 985 dcl substr builtin; 986 dcl switch_name char (42); 987 dcl sys_info$max_seg_size fixed bin(35) ext static; 988 989 dcl terminal_dependency bit (1) aligned; 990 dcl time1 float bin (63); 991 dcl time2 float bin (63); 992 993 dcl unique_chars_ entry (bit(*)) returns(char(15)); 994 995 dcl vclock builtin; 996 dcl video_has_been_set_up bit (1) aligned; 997 998 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 999 dcl work_area_ptr ptr; 1000 1 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 1 5 1 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 7 2 flag bit (1) unal, 1 8 2 type fixed bin (6) unsigned unal, 1 9 2 packed bit (1) unal, 1 10 2 number_dims fixed bin (4) unsigned unal, 1 11 2 size fixed bin (24) unsigned unal; 1 12 1 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 14 2 flag bit (1) unal, 1 15 2 type fixed bin (6) unsigned unal, 1 16 2 packed bit (1) unal, 1 17 2 number_dims fixed bin (4) unsigned unal, 1 18 2 scale fixed bin (11) unal, 1 19 2 precision fixed bin (12) unsigned unal; 1 20 1 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 1 22 2 flag bit (1) unal, /* = "1"b */ 1 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 1 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 1 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 1 26 2 size bit (24) unal, 1 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 1 28 3 low fixed bin (35), 1 29 3 high fixed bin (35), 1 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 1 31 2 real_type fixed bin (18) unsigned unal, 1 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 1 33 1 34 dcl arg_descriptor_ptr ptr; 1 35 1 36 dcl extended_arg_type fixed bin init (58); 1 37 1 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 1001 1002 2 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 2 2* 2 3* James R. Davis 10 May 79 */ 2 4 2 5 dcl 1 arg_list aligned based, 2 6 2 header, 2 7 3 arg_count fixed bin (17) unsigned unal, 2 8 3 pad1 bit (1) unal, 2 9 3 call_type fixed bin (18) unsigned unal, 2 10 3 desc_count fixed bin (17) unsigned unal, 2 11 3 pad2 bit (19) unal, 2 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 2 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 2 14 2 15 2 16 2 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 2 18 2 header, 2 19 3 arg_count fixed bin (17) unsigned unal, 2 20 3 pad1 bit (1) unal, 2 21 3 call_type fixed bin (18) unsigned unal, 2 22 3 desc_count fixed bin (17) unsigned unal, 2 23 3 pad2 bit (19) unal, 2 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 2 25 2 envptr ptr, 2 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 2 27 2 28 2 29 dcl ( 2 30 Quick_call_type init (0), 2 31 Interseg_call_type init (4), 2 32 Envptr_supplied_call_type 2 33 init (8) 2 34 ) fixed bin (18) unsigned unal int static options (constant); 2 35 2 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 2 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 2 38* an argument list of the proper size in the user's stack 2 39* 2 40**/ 2 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 1003 1004 3 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 3 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 3 3* version number to IOX2. */ 3 4 /* format: style2 */ 3 5 3 6 dcl 1 iocb aligned based, /* I/O control block. */ 3 7 2 version character (4) aligned, /* IOX2 */ 3 8 2 name char (32), /* I/O name of this block. */ 3 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 3 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 3 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 3 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 3 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 3 14 2 reserved bit (72), /* Reserved for future use. */ 3 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 3 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 3 17 /* open(p,mode,not_used,s) */ 3 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 3 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 20 /* get_line(p,bufptr,buflen,actlen,s) */ 3 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 3 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 3 24 /* put_chars(p,bufptr,buflen,s) */ 3 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 3 26 /* modes(p,newmode,oldmode,s) */ 3 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 3 28 /* position(p,u1,u2,s) */ 3 29 2 control entry (ptr, char (*), ptr, fixed (35)), 3 30 /* control(p,order,infptr,s) */ 3 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 32 /* read_record(p,bufptr,buflen,actlen,s) */ 3 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 3 34 /* write_record(p,bufptr,buflen,s) */ 3 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 3 36 /* rewrite_record(p,bufptr,buflen,s) */ 3 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 3 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 39 /* seek_key(p,key,len,s) */ 3 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 41 /* read_key(p,key,len,s) */ 3 42 2 read_length entry (ptr, fixed (21), fixed (35)), 3 43 /* read_length(p,len,s) */ 3 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 3 45 /* open_file(p,mode,desc,not_used,s) */ 3 46 2 close_file entry (ptr, char (*), fixed bin (35)), 3 47 /* close_file(p,desc,s) */ 3 48 2 detach entry (ptr, char (*), fixed bin (35)); 3 49 /* detach(p,desc,s) */ 3 50 3 51 declare iox_$iocb_version_sentinel 3 52 character (4) aligned external static; 3 53 3 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 1005 1006 4 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 4 2 4 3 /* Written 05/04/78 by C. D. Tavares */ 4 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 4 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 4 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 4 7 4 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 4 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 4 10 iox_$close entry (pointer, fixed bin (35)), 4 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 4 12 iox_$delete_record entry (pointer, fixed bin (35)), 4 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 4 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 4 15 iox_$err_not_attached entry options (variable), 4 16 iox_$err_not_closed entry options (variable), 4 17 iox_$err_no_operation entry options (variable), 4 18 iox_$err_not_open entry options (variable), 4 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 4 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 4 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 4 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 4 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 4 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 4 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 4 28 iox_$propagate entry (pointer), 4 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 4 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 4 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 4 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 4 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 4 40 4 41 dcl (iox_$user_output, 4 42 iox_$user_input, 4 43 iox_$user_io, 4 44 iox_$error_output) external static pointer; 4 45 4 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 1007 1008 5 1 /* Begin include file ..... iox_modes.incl.pl1 */ 5 2 5 3 /* Written by C. D. Tavares, 03/17/75 */ 5 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 5 5 5 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 5 7 ("stream_input", "stream_output", "stream_input_output", 5 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 5 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 5 10 "direct_input", "direct_output", "direct_update"); 5 11 5 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 5 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 5 14 5 15 dcl (Stream_input initial (1), 5 16 Stream_output initial (2), 5 17 Stream_input_output initial (3), 5 18 Sequential_input initial (4), 5 19 Sequential_output initial (5), 5 20 Sequential_input_output initial (6), 5 21 Sequential_update initial (7), 5 22 Keyed_sequential_input initial (8), 5 23 Keyed_sequential_output initial (9), 5 24 Keyed_sequential_update initial (10), 5 25 Direct_input initial (11), 5 26 Direct_output initial (12), 5 27 Direct_update initial (13)) fixed bin int static options (constant); 5 28 5 29 /* End include file ..... iox_modes.incl.pl1 */ 1009 1010 6 1 /* BEGIN INCLUDE FILE linus_display_arg_list.incl.pl1 6 2* 6 3* Shared structure between the linus_display request and 6 4* its argument processor, linus_display_process_args. 6 5* 6 6* Al Dupuis - August 1983 6 7**/ 6 8 /* format: off */ 6 9 6 10 dcl 1 display_arg_results aligned, 6 11 6 12 2 flags, 6 13 3 all_flag bit (1) aligned, /* DEFAULT */ 6 14 3 character_positions_flag bit (1) aligned, 6 15 3 debug_flag bit (1) aligned, 6 16 3 keep_report_flag bit (1) aligned, 6 17 3 keep_retrieval_flag bit (1) aligned, 6 18 3 long_flag bit (1) aligned, /* DEFAULT */ 6 19 3 new_report_flag bit (1) aligned, /* DEFAULT */ 6 20 3 new_retrieval_flag bit (1) aligned, /* DEFAULT */ 6 21 3 output_file_flag bit (1) aligned, 6 22 3 output_switch_flag bit (1) aligned, 6 23 3 truncate_flag bit (1) aligned, /* DEFAULT */ 6 24 3 pages_flag bit (1) aligned, 6 25 3 last_page_flag bit (1) aligned, 6 26 3 scroll_flag bit (1) aligned, 6 27 3 sort_flag bit (1) aligned, 6 28 3 temp_dir_flag bit (1) aligned, 6 29 3 time_flag bit (1) aligned, 6 30 3 window_flag bit (1) aligned, 6 31 3 passes_flag bit (1) aligned, 6 32 6 33 2 pathnames, 6 34 3 output_switch_name char (32) unal, /* -output_switch */ 6 35 3 output_file_directory_name char (168) unal, /* -output_file */ 6 36 3 output_file_entry_name char (32) unal, /* -output_file */ 6 37 3 output_file_pathname char (168) unal, /* -output_file */ 6 38 3 temp_dir_pathname char (168) unal, /* -temp_dir */ 6 39 3 window_name char (32) unal, /* -window */ 6 40 6 41 2 miscellaneous, 6 42 3 left_margin_position fixed bin, /* -character_positions */ 6 43 3 right_margin_position fixed bin, /* -character_positions */ 6 44 3 number_of_passes fixed bin, /* -passes */ 6 45 3 sort_information_ptr ptr, /* -sort */ 6 46 3 scroll_info_ptr ptr, /* -scroll */ 6 47 3 specified_pages (NUMBER_OF_ALLOWED_SPECIFIED_PAGES) bit (1) unal; /* -pages */ 6 48 6 49 dcl NUMBER_OF_ALLOWED_SPECIFIED_PAGES static internal options (constant) init (10000); 6 50 /* END INCLUDE FILE linus_display_arg_list.incl.pl1 */ 1011 1012 7 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 7 7* install(86-07-29,MR12.0-1106): 7 8* Added general_work_area_ptr and renamed sfr_ptr to 7 9* force_retrieve_scope_ptr. 7 10* END HISTORY COMMENTS */ 7 11 7 12 7 13 /* HISTORY: 7 14* 7 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 7 16* 7 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 7 18* a part of the attribute level control work. 7 19* 7 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 7 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 7 22* scope information. 7 23* 7 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 7 25* retaining various vcpu times to be collected when in timing mode. The 7 26* times to be collected are: LINUS parsing time, LINUS processing time, and 7 27* MRDS processing time. 7 28* 7 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 7 30* part of the line numbering implementation. This allows for possible later 7 31* LINUS control of the build defaults. 7 32* 7 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 7 34* information is now retained by ssu_. Removed parse_timer as no longer 7 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 7 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 7 37* 7 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 7 39* subsystem_invocation_level, and selection_expression_identifier. 7 40* 7 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 7 42* table_control_info_ptr. 7 43* 7 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 7 45* 7 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 7 47* 7 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 7 49* 7 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 7 51**/ 7 52 7 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 7 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 7 55 2 rb_len fixed bin (21), /* length of request buffer */ 7 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 7 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 7 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 7 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 7 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 7 61 2 test_flag bit (1) unal, /* on if in test mode */ 7 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 7 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 7 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 7 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 7 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 7 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 7 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 7 69 2 reserved bit (27) unal, 7 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 7 71 2 rb_ptr ptr, /* ptr to request buffer */ 7 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 7 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 7 74 2 ttn_ptr ptr, /* pointer to table info structure */ 7 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 7 76 2 lv_ptr ptr, /* pointer linus variables */ 7 77 2 si_ptr ptr, /* pointer to select_info structure */ 7 78 2 setfi_ptr ptr, /* pointer to set function information */ 7 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 7 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 7 81 2 lit_ptr ptr, /* pointer to literal pool */ 7 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 7 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 7 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 7 85* (MR7.0) */ 7 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 7 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 7 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 7 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 7 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 7 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 7 92* for current lila expression */ 7 93 2 unused_timer float bin (63), /* future expansion */ 7 94 2 request_time float bin (63), /* How much request time was spent 7 95* in LINUS. (-1 = user has just enabled 7 96* timing, do not report) */ 7 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 7 98 2 build_increment fixed bin, /* default increment for build mode */ 7 99 2 build_start fixed bin, /* default start count for build mode */ 7 100 2 linus_version char (4), /* current version of LINUS */ 7 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 7 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 7 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 7 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 7 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 7 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 7 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 7 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 7 109 2 word_pad (6) bit (36) unal, 7 110 /* procedures that will be optionally */ 7 111 /* replaced by the user. Saved so they */ 7 112 /* can be reinstated if desired. */ 7 113 2 ssu_abort_line entry options (variable), 7 114 2 ssu_post_request_line variable entry (ptr), 7 115 2 ssu_pre_request_line variable entry (ptr), 7 116 7 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 7 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 7 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 7 120 7 121 dcl lcb_ptr ptr; 7 122 7 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 1013 1014 8 1 /* BEGIN INCLUDE FILE linus_options_extents.incl.pl1 8 2* 8 3* Extents for the formatting options used for producing reports. 8 4* Kept as a separate include so that some programs may include this 8 5* file without including linus_format_options.incl.pl1 8 6* 8 7* Al Dupuis - August 1983 8 8* 8 9**/ 8 10 /* format: off */ 8 11 8 12 /* The three types of format options that we have. */ 8 13 8 14 dcl GENERAL_REPORT_OPTION fixed bin static int options (constant) init (1); 8 15 dcl GENERAL_COLUMN_OPTION fixed bin static int options (constant) init (2); 8 16 dcl SPECIFIC_COLUMN_OPTION fixed bin static int options (constant) init (3); 8 17 8 18 /* Used to determine how big the tables are without doing a hbound on it. */ 8 19 8 20 dcl NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (15); 8 21 dcl NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE fixed bin static int options (constant) init (9); 8 22 dcl NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (6); 8 23 8 24 /* Used to determine how much space is needed to list them. */ 8 25 8 26 dcl LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (10); /* -alignment */ 8 27 dcl LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH fixed bin static int options (constant) init (25); /* -format_document_controls */ 8 28 dcl LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (21); /* -group_footer_trigger */ 8 29 8 30 /* MAXIMUM_OPTION_IDENTIFIER_LENGTH + MAXIMUM_OPTION_NAME_LENGTH */ 8 31 8 32 dcl MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH fixed bin static int options (constant) init (101); 8 33 8 34 dcl MAXIMUM_OPTION_IDENTIFIER_LENGTH fixed bin static int options (constant) init (69); 8 35 dcl MAXIMUM_OPTION_NAME_LENGTH fixed bin static int options (constant) init (32); 8 36 dcl MAXIMUM_OPTION_VALUE_LENGTH fixed bin static int options (constant) init (4096); 8 37 8 38 /* Used to index into the OPTIONS tables defined in linus_format_options.incl.pl1. */ 8 39 8 40 dcl INDEX_FOR_DELIMITER fixed bin static int options (constant) init (1); 8 41 dcl INDEX_FOR_FORMAT_DOCUMENT_CONTROLS fixed bin static int options (constant) init (2); 8 42 dcl INDEX_FOR_HYPHENATION fixed bin static int options (constant) init (3); 8 43 dcl INDEX_FOR_PAGE_FOOTER_VALUE fixed bin static int options (constant) init (4); 8 44 dcl INDEX_FOR_PAGE_HEADER_VALUE fixed bin static int options (constant) init (5); 8 45 dcl INDEX_FOR_PAGE_LENGTH fixed bin static int options (constant) init (6); 8 46 dcl INDEX_FOR_PAGE_WIDTH fixed bin static int options (constant) init (7); 8 47 dcl INDEX_FOR_TITLE_LINE fixed bin static int options (constant) init (8); 8 48 dcl INDEX_FOR_TRUNCATION fixed bin static int options (constant) init (9); 8 49 8 50 dcl INDEX_FOR_COLUMN_ORDER fixed bin static int options (constant) init (1); 8 51 dcl INDEX_FOR_COUNT fixed bin static int options (constant) init (2); 8 52 dcl INDEX_FOR_EXCLUDE fixed bin static int options (constant) init (3); 8 53 dcl INDEX_FOR_GROUP fixed bin static int options (constant) init (4); 8 54 dcl INDEX_FOR_GROUP_FOOTER_TRIGGER fixed bin static int options (constant) init (5); 8 55 dcl INDEX_FOR_GROUP_FOOTER_VALUE fixed bin static int options (constant) init (6); 8 56 dcl INDEX_FOR_GROUP_HEADER_TRIGGER fixed bin static int options (constant) init (7); 8 57 dcl INDEX_FOR_GROUP_HEADER_VALUE fixed bin static int options (constant) init (8); 8 58 dcl INDEX_FOR_OUTLINE fixed bin static int options (constant) init (9); 8 59 dcl INDEX_FOR_PAGE_BREAK fixed bin static int options (constant) init (10); 8 60 dcl INDEX_FOR_ROW_FOOTER_VALUE fixed bin static int options (constant) init (11); 8 61 dcl INDEX_FOR_ROW_HEADER_VALUE fixed bin static int options (constant) init (12); 8 62 dcl INDEX_FOR_SUBCOUNT fixed bin static int options (constant) init (13); 8 63 dcl INDEX_FOR_SUBTOTAL fixed bin static int options (constant) init (14); 8 64 dcl INDEX_FOR_TOTAL fixed bin static int options (constant) init (15); 8 65 8 66 dcl INDEX_FOR_ALIGNMENT fixed bin static int options (constant) init (1); 8 67 dcl INDEX_FOR_EDITING fixed bin static int options (constant) init (2); 8 68 dcl INDEX_FOR_FOLDING fixed bin static int options (constant) init (3); 8 69 dcl INDEX_FOR_SEPARATOR fixed bin static int options (constant) init (4); 8 70 dcl INDEX_FOR_TITLE fixed bin static int options (constant) init (5); 8 71 dcl INDEX_FOR_WIDTH fixed bin static int options (constant) init (6); 8 72 8 73 /* END INCLUDE FILE linus_options_extents */ 1015 1016 9 1 /* BEGIN INCLUDE FILE linus_page_info.incl.pl1 9 2* 9 3* Written - Al Dupuis - August 1983 9 4**/ 9 5 /* format: off */ 9 6 9 7 dcl 1 formatted_page_info aligned based (formatted_page_ip), 9 8 2 maximum_number_of_detail_blocks fixed bin, /* the most that can appear on a page */ 9 9 2 page_header_length fixed bin, /* page header in lines */ 9 10 2 title_block_length fixed bin, /* titles in lines */ 9 11 2 page_footer_length fixed bin, /* page footer in lines */ 9 12 2 number_of_detail_blocks fixed bin, 9 13 2 detail_blocks (fpi_init_maximum_number_of_detail_blocks 9 14 refer (formatted_page_info.maximum_number_of_detail_blocks)), 9 15 3 row_number fixed bin (35), /* position in the table */ 9 16 3 beginning_line_number fixed bin, /* beginning line on page */ 9 17 3 group_header_length fixed bin, /* group header length in lines */ 9 18 3 row_header_length fixed bin, /* row header in lines */ 9 19 3 row_length fixed bin, /* row value in lines */ 9 20 3 subtotal_length fixed bin, /* subtotal in lines */ 9 21 3 subcount_length fixed bin, /* subcount in lines */ 9 22 3 total_length fixed bin, /* total in lines */ 9 23 3 count_length fixed bin, /* count in lines */ 9 24 3 row_footer_length fixed bin, /* row footer in lines */ 9 25 3 group_footer_length fixed bin; /* group footer length in lines */ 9 26 dcl formatted_page_ip ptr; 9 27 dcl fpi_init_maximum_number_of_detail_blocks fixed bin; 9 28 9 29 dcl 1 page_info aligned based (page_ip), 9 30 2 width fixed bin, /* width in chars */ 9 31 2 length fixed bin, /* length in lines */ 9 32 2 total_characters fixed bin (21), /* width * length */ 9 33 2 page_info_size fixed bin, /* size of this structure in words */ 9 34 2 page_ptr ptr, /* points to the actual page */ 9 35 2 page_overstrike_info_ptr ptr, /* points to the overstrike info */ 9 36 2 formatted_page_info_ptr ptr; /* points to formatted_page_info */ 9 37 9 38 dcl page_defined_as_chars (page_info.total_characters) char (1) based (page_info.page_ptr); 9 39 dcl page_defined_as_lines (page_info.length) char (page_info.width) based (page_info.page_ptr); 9 40 dcl page_defined_as_a_string char (page_info.total_characters) based (page_info.page_ptr); 9 41 dcl page_ip ptr; 9 42 9 43 dcl 1 page_overstrike_info aligned based (page_overstrike_ip), 9 44 2 number_of_bits_or_chars fixed bin (21), /* number of chars in the page */ 9 45 2 bit_map (page_info.total_characters /* on means this char on the page is overstruck */ 9 46 refer (page_overstrike_info.number_of_bits_or_chars)) bit (1) unaligned, 9 47 2 chars (page_info.total_characters /* this is the overstrike character */ 9 48 refer (page_overstrike_info.number_of_bits_or_chars)) char (1) unaligned; 9 49 dcl page_overstrike_ip ptr; 9 50 9 51 dcl 1 page_overstrike_info_redefined aligned based (page_overstrike_ip), 9 52 2 number_of_bits_or_chars fixed bin (21), 9 53 2 bit_map bit (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned, 9 54 2 chars char (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned; 9 55 9 56 /* END INCLUDE FILE linus_page_info.incl.pl1 */ 1017 1018 10 1 /* BEGIN INCLUDE FILE linus_report_info.incl.pl1 10 2* Information needed to control the report environment. 10 3* Al Dupuis - August 1983 10 4**/ 10 5 /* format: off */ 10 6 10 7 dcl 1 report_control_info aligned based (report_cip), 10 8 2 flags, 10 9 3 report_is_paginated bit (1) unaligned, /* paged or one continous stream */ 10 10 3 table_has_been_started bit (1) unaligned, /* table clean up is necessary */ 10 11 3 table_is_full bit (1) unaligned, /* no more retrieves are necessary */ 10 12 3 report_has_been_started bit (1) unaligned, /* report clean up is necessary */ 10 13 3 report_is_formatted bit (1) unaligned, /* no more formatting is necessary */ 10 14 3 permanent_report bit (1) unaligned, /* or disposable */ 10 15 3 permanent_table bit (1) unaligned, /* or disposable */ 10 16 3 report_has_just_been_completed bit (1) unaligned, /* used for printing timers */ 10 17 3 table_has_just_been_loaded bit (1) unaligned, /* used for printing timers */ 10 18 3 multi_pass_mode bit (1) unaligned, /* on if we are to do more than 1 pass */ 10 19 3 available bit (26) unaligned, 10 20 2 format_options_flags, /* used to determine if value is default */ 10 21 3 general_report_default_value (NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE) bit (1) unaligned, 10 22 3 general_column_default_value (NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE) bit (1) unaligned, 10 23 2 value_seg_ptr ptr, /* the options value seg */ 10 24 2 name_value_area_ptr ptr, /* area for name-value allocations */ 10 25 2 name_value_temp_seg_ptr ptr, /* temp seg for name-value space */ 10 26 2 display_work_area_ptr ptr, /* display workspace */ 10 27 2 report_temp_seg_ptr ptr, /* report workspace */ 10 28 2 report_work_area_ptr ptr, /* report workspace */ 10 29 2 format_report_info_ptr ptr, /* info needed to create a report */ 10 30 2 input_string_temp_seg_ptr ptr, /* report workspace */ 10 31 2 output_string_temp_seg_ptr ptr, /* report workspace */ 10 32 2 editing_strings_temp_seg_ptr ptr, /* report workspace */ 10 33 2 headers_temp_seg_ptr ptr, /* report workspace */ 10 34 2 display_iocb_ptr ptr, /* report is displayed through this */ 10 35 2 selection_expression_identifier fixed bin, /* current selection expression */ 10 36 2 options_identifier fixed bin, /* current set of options */ 10 37 2 report_identifier fixed bin, /* current report */ 10 38 2 retrieval_identifier fixed bin, /* current retrieval */ 10 39 2 no_of_rows_retrieved fixed bin (35), /* current no of rows */ 10 40 2 no_of_formatted_pages fixed bin (21), /* current no of pages */ 10 41 2 number_of_passes fixed bin, /* number of times report will be formatted */ 10 42 2 table_loading_time float bin (63), 10 43 2 table_sorting_time float bin (63), 10 44 2 table_deletion_time float bin (63), 10 45 2 report_setup_time float bin (63), 10 46 2 report_formatting_time float bin (63), 10 47 2 report_display_time float bin (63), 10 48 2 report_deletion_time float bin (63), 10 49 2 ssu_evaluate_active_string_time float bin (63), 10 50 2 temp_dir_unique_id bit (36), /* uid of temp dir */ 10 51 2 temp_dir_name char (168) unaligned; /* the dir where we place the retrieved table and report */ 10 52 dcl report_cip ptr init (null ()); 10 53 10 54 /* END INCLUDE FILE linus_report_info.incl.pl1 */ 1019 1020 11 1 /* BEGIN INCLUDE FILE linus_scroll_info.incl.pl1 11 2* 11 3* Written - Al Dupuis - August 1983 11 4**/ 11 5 /* format: off */ 11 6 11 7 dcl 1 ESCAPE_KEYS aligned static internal options (constant), 11 8 2 FORWARD char (2) init ("f"), 11 9 2 BACKWARD char (2) init ("b"), 11 10 2 LEFT char (2) init ("l"), 11 11 2 RIGHT char (2) init ("r"), 11 12 2 HELP char (2) init ("?"), 11 13 2 SET_KEY char (2) init ("k"), 11 14 2 SET_SCROLL_INCREMENT char (2) init ("i"), 11 15 2 QUIT char (2) init ("q"), 11 16 2 REDISPLAY char (2) init ("d"), 11 17 2 START_OF_REPORT char (2) init ("s"), 11 18 2 END_OF_REPORT char (2) init ("e"), 11 19 2 MULTICS_MODE char (2) init ("m"), 11 20 2 GOTO char (2) init ("g"); 11 21 11 22 dcl ESCAPE_KEYS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (2) based (addr (ESCAPE_KEYS)); 11 23 11 24 dcl 1 ESCAPE_KEY_MNEMONICS aligned static internal options (constant), 11 25 2 FORWARD char (5) init ("esc-f"), 11 26 2 BACKWARD char (5) init ("esc-b"), 11 27 2 LEFT char (5) init ("esc-l"), 11 28 2 RIGHT char (5) init ("esc-r"), 11 29 2 HELP char (5) init ("esc-?"), 11 30 2 SET_KEY char (5) init ("esc-k"), 11 31 2 SET_SCROLL_INCREMENT char (5) init ("esc-i"), 11 32 2 QUIT char (5) init ("esc-q"), 11 33 2 REDISPLAY char (5) init ("esc-d"), 11 34 2 START_OF_REPORT char (5) init ("esc-s"), 11 35 2 END_OF_REPORT char (5) init ("esc-e"), 11 36 2 MULTICS_MODE char (5) init ("esc-m"), 11 37 2 GOTO char (5) init ("esc-g"); 11 38 11 39 dcl ESCAPE_KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (5) based (addr (ESCAPE_KEY_MNEMONICS)); 11 40 11 41 dcl 1 FUNCTION_NAMES aligned static internal options (constant), 11 42 2 FORWARD char (32) init ("forward"), 11 43 2 BACKWARD char (32) init ("backward"), 11 44 2 LEFT char (32) init ("left"), 11 45 2 RIGHT char (32) init ("right"), 11 46 2 HELP char (32) init ("help"), 11 47 2 SET_KEY char (32) init ("set_key"), 11 48 2 SET_SCROLL_INCREMENT char (32) init ("set_scroll_increment"), 11 49 2 QUIT char (32) init ("quit"), 11 50 2 REDISPLAY char (32) init ("redisplay"), 11 51 2 START_OF_REPORT char (32) init ("start_of_report"), 11 52 2 END_OF_REPORT char (32) init ("end_of_report"), 11 53 2 MULTICS_MODE char (32) init ("multics_mode"), 11 54 2 GOTO char (32) init ("goto"); 11 55 11 56 dcl FUNCTION_NAMES_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (FUNCTION_NAMES)); 11 57 11 58 dcl HIGHEST_DISPLAY_FUNCTION_NUMBER fixed bin static int options (constant) init (13); 11 59 11 60 dcl HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED fixed bin static int options (constant) init (9); 11 61 11 62 dcl 1 KEY_MNEMONICS aligned static internal options (constant), 11 63 2 FORWARD char (12) init ("down_arrow"), 11 64 2 BACKWARD char (12) init ("up_arrow"), 11 65 2 LEFT char (12) init ("left_arrow"), 11 66 2 RIGHT char (12) init ("right_arrow"), 11 67 2 HELP char (12) init ("f1"), 11 68 2 SET_KEY char (12) init ("f2"), 11 69 2 SET_SCROLL_INCREMENT char (12) init ("f3"), 11 70 2 QUIT char (12) init ("f4"), 11 71 2 REDISPLAY char (12) init ("f5"), 11 72 2 START_OF_REPORT char (12) init ("f6"), 11 73 2 END_OF_REPORT char (12) init ("f7"), 11 74 2 MULTICS_MODE char (12) init ("f8"), 11 75 2 GOTO char (12) init ("f9"); 11 76 11 77 dcl KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (12) based (addr (KEY_MNEMONICS)); 11 78 11 79 dcl 1 function_key_info aligned, 11 80 2 forward char (32), /* down arrow or esc-f */ 11 81 2 backward char (32), /* up arrow or esc-b */ 11 82 2 left char (32), /* left arrow or esc-l */ 11 83 2 right char (32), /* right arrow or esc-r */ 11 84 2 help char (32), /* F1 or esc-? */ 11 85 2 set_key char (32), /* F2 or esc-k */ 11 86 2 set_scroll_increment char (32), /* F3 or esc-i */ 11 87 2 quit char (32), /* F4 or esc-q */ 11 88 2 redisplay char (32), /* F5 or esc-d */ 11 89 2 start_of_report char (32), /* F6 or esc-s */ 11 90 2 end_of_report char (32), /* F7 or esc-e */ 11 91 2 multics_mode char (32), /* F8 or esc-m */ 11 92 2 goto char (32); /* F9 or esc-g */ 11 93 11 94 dcl keys_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) char (32) based (addr (scroll_info.keys)); 11 95 11 96 dcl mnemonic_key_sequences_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (scroll_info.mnemonic_key_sequences)); 11 97 11 98 dcl 1 scroll_info aligned based (scroll_ip), 11 99 2 flags, 11 100 3 video_was_already_on bit (1) unaligned, 11 101 3 user_io_was_shrunk bit (1) unaligned, 11 102 3 escapes_in_use bit (1) unaligned, 11 103 3 on_the_last_page bit (1) unaligned, 11 104 3 buffer_boundary_just_crossed bit (1) unaligned, 11 105 3 goto_line_number_pending bit (1) unaligned, 11 106 3 available bit (30) unaligned, 11 107 2 number_of_lines_for_report_display fixed bin, 11 108 2 target_page_number fixed bin (21), 11 109 2 target_line_number fixed bin (35), 11 110 2 left_vertical_position fixed bin, 11 111 2 top_margin_offset fixed bin, 11 112 2 horizontal_scroll_distance fixed bin, 11 113 2 vertical_scroll_distance fixed bin, 11 114 2 last_line_number_in_previous_buffer fixed bin, 11 115 2 user_io_window_position_info_ptr ptr, 11 116 2 report_output_window_position_info_ptr ptr, 11 117 2 display_arg_results_ptr ptr, 11 118 2 area_ptr ptr, 11 119 2 report_control_info_ptr ptr, 11 120 2 function_key_data_pointer ptr, 11 121 2 window_status_info_pointer ptr, 11 122 2 page_info_pointer ptr, 11 123 2 ssu_info_ptr ptr, 11 124 2 format_document_op ptr, 11 125 2 keys like function_key_info, 11 126 2 mnemonic_key_sequences like function_key_info; 11 127 11 128 dcl scroll_ip ptr; 11 129 11 130 /* END INCLUDE FILE linus_sroll_info.incl.pl1 */ 1021 1022 12 1 /* BEGIN INCLUDE FILE ... linus_sort_info.incl.pl1 12 2* 12 3* Info structure used to provide sorting through linus. 12 4* Written: Dave Schimke 2/25/83 12 5**/ 12 6 12 7 dcl 1 sort_info based (sort_info_ptr), 12 8 2 number_of_columns_to_sort fixed bin (17), 12 9 2 columns (no_of_candidate_columns refer(sort_info.number_of_columns_to_sort)), 12 10 3 number fixed bin (17), 12 11 3 modes, 12 12 4 descending bit (1) unal, 12 13 4 non_case_sensitive bit (1) unal, 12 14 4 mbz1 bit(34) unal; 12 15 12 16 dcl sort_info_ptr ptr; 12 17 dcl no_of_candidate_columns fixed bin; 12 18 12 19 12 20 /* END INCLUDE FILE linus_sort_info.incl.pl1 */ 1023 1024 13 1 /* BEGIN INCLUDE FILE linus_table_info.incl.pl1 -- Dave Schimke 1/5/83 */ 13 2 /* 13 3*09/28/83 Al Dupuis: Added the store_args_ptr variable and the store_args structure. 13 4**/ 13 5 dcl 1 table_info aligned based (table_ip), /* info on displayable table */ 13 6 2 retrieval_identifier fixed bin , /* current retrieval id */ 13 7 2 row_count fixed bin(35), /* number of rows in table */ 13 8 2 column_count fixed bin, /* number of columns in table */ 13 9 2 maximum_column_name_length fixed bin, 13 10 /* largest column name */ 13 11 2 maximum_column_value_length fixed bin, 13 12 /* largest column length */ 13 13 2 row_value_length fixed bin (21), /* length of entire row */ 13 14 /* (sum of column lengths) */ 13 15 2 row_segs_info_ptr ptr init (null), /* ptr to the row segs info */ 13 16 2 store_args_ptr ptr, /* ptr to the arg list for storing rows */ 13 17 2 columns (ti_init_column_count refer (table_info.column_count)), 13 18 /* column info */ 13 19 3 column_name char (69) var, /* column header name */ 13 20 3 column_data_type bit (36), /* original data descriptor */ 13 21 3 column_length fixed bin (21), /* length of column in chars */ 13 22 3 column_index fixed bin (21); /* index of start of column in */ 13 23 /* row value */ 13 24 13 25 dcl 1 row_segs_info aligned based (row_segs_ip), 13 26 2 max_number_of_seg_ptrs fixed bin, 13 27 2 max_number_of_ptrs_per_seg fixed bin(21), 13 28 2 number_of_seg_ptrs fixed bin, 13 29 2 seg_ptr (rsi_init_max_number_of_seg_ptrs refer (row_segs_info. 13 30 max_number_of_seg_ptrs)) ptr unal; 13 31 13 32 dcl 1 row_ptrs aligned based (row_ptrs_p), 13 33 2 number_of_ptrs_this_seg fixed bin(21), 13 34 2 row_value_ptr (row_ptrs.number_of_ptrs_this_seg) ptr unal; 13 35 13 36 dcl row_value char (table_info.row_value_length) based (row_value_p); 13 37 dcl row_value_p ptr unal; /* ptr to the current row value */ 13 38 13 39 dcl row_segs_ip ptr; /* ptr to the seg of ptrs to */ 13 40 /* the arrays of row_value_ptrs */ 13 41 dcl row_ptrs_p ptr; /* ptr to an array of */ 13 42 /* row_value_ptrs */ 13 43 13 44 dcl 1 store_args aligned based (store_ap), 13 45 2 table_name char (30), 13 46 2 error_code fixed bin (35), 13 47 2 number_of_descriptors fixed bin, 13 48 2 header like arg_list.header, 13 49 2 arg_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 13 50 2 desc_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 13 51 2 argument_list_descriptors (init_number_of_descriptors refer 13 52 (store_args.number_of_descriptors)) like arg_descriptor; 13 53 13 54 dcl init_number_of_descriptors; 13 55 dcl rsi_init_max_number_of_seg_ptrs fixed bin; 13 56 dcl store_ap ptr; 13 57 dcl table_ip ptr; 13 58 dcl ti_init_column_count fixed bin; 13 59 13 60 /* END INCLUDE FILE linus_table_info.incl.pl1 */ 1025 1026 14 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 14 2 14 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 14 4 14 5 /* This include file contains branch and link structures returned by 14 6* hcs_$status_ and hcs_$status_long. */ 14 7 14 8 dcl 1 status_branch aligned based (status_ptr), 14 9 2 short aligned, 14 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 14 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 14 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 14 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 14 14 3 dtu bit (36) unaligned, /* date/time last used */ 14 15 3 mode bit (5) unaligned, /* caller's effective access */ 14 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 14 17 3 pad1 bit (8) unaligned, 14 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 14 19 14 20 /* Limit of information returned by hcs_$status_ */ 14 21 14 22 2 long aligned, 14 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 14 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 14 25 3 lvid bit (36) unaligned, /* logical volume ID */ 14 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 14 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 14 28 3 pad2 bit (8) unaligned, 14 29 3 copy_switch bit (1) unaligned, /* copy switch */ 14 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 14 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 14 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 14 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 14 34 3 pad3 bit (5) unaligned, 14 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 14 36 3 uid bit (36) unaligned; /* unique ID */ 14 37 14 38 dcl 1 status_link aligned based (status_ptr), 14 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 14 40 2 nnames fixed bin (16) unaligned unsigned, 14 41 2 names_relp bit (18) unaligned, 14 42 2 dtem bit (36) unaligned, 14 43 2 dtd bit (36) unaligned, 14 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 14 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 14 46 14 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 14 48 based (pointer (status_area_ptr, status_branch.names_relp)), 14 49 /* array of names returned */ 14 50 status_pathname character (status_link.pathname_length) aligned 14 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 14 52 /* link target path */ 14 53 status_area_ptr pointer, 14 54 status_ptr pointer; 14 55 14 56 dcl (Link initial (0), 14 57 Segment initial (1), 14 58 Directory initial (2)) fixed bin internal static options (constant); 14 59 /* values for type fields declared above */ 14 60 14 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 1027 1028 end linus_display; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/29/86 0939.5 linus_display.pl1 >special_ldd>install>MR12.0-1106>linus_display.pl1 1001 1 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 1003 2 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 1005 3 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 1007 4 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 1009 5 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 1011 6 09/16/83 1338.0 linus_display_arg_list.incl.pl1 >ldd>include>linus_display_arg_list.incl.pl1 1013 7 07/29/86 0937.8 linus_lcb.incl.pl1 >special_ldd>install>MR12.0-1106>linus_lcb.incl.pl1 1015 8 09/16/83 1338.0 linus_options_extents.incl.pl1 >ldd>include>linus_options_extents.incl.pl1 1017 9 09/16/83 1338.1 linus_page_info.incl.pl1 >ldd>include>linus_page_info.incl.pl1 1019 10 09/16/83 1338.1 linus_report_info.incl.pl1 >ldd>include>linus_report_info.incl.pl1 1021 11 09/16/83 1338.1 linus_scroll_info.incl.pl1 >ldd>include>linus_scroll_info.incl.pl1 1023 12 09/16/83 1338.0 linus_sort_info.incl.pl1 >ldd>include>linus_sort_info.incl.pl1 1025 13 10/06/83 1219.0 linus_table_info.incl.pl1 >ldd>include>linus_table_info.incl.pl1 1027 14 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.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. BACKSPACE 006313 constant char(1) initial unaligned dcl 920 ref 645 BAD_OUTPUT_SWITCH_MESSAGE 000000 constant char(69) initial unaligned dcl 921 set ref 864* 868* MAXIMUM_OPTION_VALUE_LENGTH constant fixed bin(17,0) initial dcl 8-36 ref 982 NUMBER_OF_ALLOWED_SPECIFIED_PAGES constant fixed bin(17,0) initial dcl 6-49 ref 6-10 522 NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 8-20 ref 98 99 110 110 112 113 114 115 129 133 141 143 158 159 185 186 219 238 238 284 286 289 311 339 340 360 360 369 369 381 388 404 456 458 474 474 476 487 506 513 528 534 537 545 570 580 610 623 630 630 665 667 669 681 697 722 725 749 755 792 799 822 854 862 868 868 896 896 900 904 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 8-21 ref 98 99 110 110 112 113 114 115 129 133 141 143 158 159 185 186 219 238 238 284 286 289 311 339 340 360 360 369 369 381 388 404 456 458 474 474 476 487 506 513 528 534 537 545 570 580 610 623 630 630 665 667 669 681 697 722 725 749 755 792 799 822 854 862 868 868 896 896 900 904 OFF constant bit(1) initial dcl 923 ref 58 59 89 108 109 126 139 140 170 197 296 313 368 380 402 407 414 459 522 528 720 742 744 766 799 ON constant bit(1) initial dcl 924 ref 62 69 86 107 123 138 226 246 310 400 404 411 486 509 522 607 620 703 726 743 759 760 795 818 Stream_output 000064 constant fixed bin(17,0) initial dcl 5-15 set ref 847* addr builtin function dcl 926 ref 67 67 507 606 616 652 816 816 addrel builtin function dcl 927 ref 652 arg_descriptor based structure level 1 dcl 1-6 arg_list based structure level 1 dcl 2-5 arguments_have_been_processed 000100 automatic bit(1) dcl 928 set ref 58* 69* 881 attach_descrip_ptr 14 based pointer level 2 dcl 3-6 ref 868 attach_description 000101 automatic char(256) unaligned dcl 929 set ref 830* 834* 839* bit_map 1 based bit(1) array level 2 in structure "page_overstrike_info" packed unaligned dcl 9-43 in procedure "linus_display" ref 645 bit_map 1 based bit level 2 in structure "page_overstrike_info_redefined" packed unaligned dcl 9-51 in procedure "linus_display" ref 607 620 character_positions_flag 1 000332 automatic bit(1) level 3 dcl 6-10 set ref 578 586 chars based char(1) array level 2 packed unaligned dcl 9-43 ref 645 cleanup 000202 stack reference condition dcl 931 ref 61 cleanup_signalled 000210 automatic bit(1) dcl 932 set ref 59* 62* 164 191 904 code 000211 automatic fixed bin(35,0) dcl 933 set ref 94* 104 104* 129* 135 135* 154* 164 164* 167* 181* 191 191* 194* 269* 271 271* 275* 277 277 277* 334* 344 344* 356* 363 363* 424* 425 425* 443* 444 444* 449* 450 450* 470* 480 480 483* 708* 709 709 712* 839* 841 841* 847* 848 848* 862* 864 901* 902* 903* directory_name 000212 automatic char(168) unaligned dcl 935 set ref 269* 275* display_arg_results 000332 automatic structure level 1 dcl 6-10 set ref 67 67 816 816 display_buffer_empty 000000 stack reference condition dcl 936 ref 696 display_iocb_ptr based pointer level 2 dcl 10-7 set ref 570* 580* 610* 623* 822* 854* 862* 868 868 896 896 900 display_work_area_ptr based pointer level 2 dcl 10-7 ref 456 458 entry_name 000264 automatic char(32) unaligned dcl 938 set ref 269* 275* error_table_$end_of_info 000010 external static fixed bin(35,0) dcl 939 ref 709 error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 940 set ref 305* error_table_$no_iocb 000014 external static fixed bin(35,0) dcl 941 ref 864 error_table_$no_s_permission 000016 external static fixed bin(35,0) dcl 942 ref 277 expand_pathname_ 000020 constant entry external dcl 943 ref 269 extended_arg_type 000330 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* first_page_of_the_report 000274 automatic bit(1) dcl 945 set ref 400* 402* 570 flags based structure level 2 in structure "scroll_info" dcl 11-98 in procedure "linus_display" flags based structure level 2 in structure "report_control_info" dcl 10-7 in procedure "linus_display" flags 000332 automatic structure level 2 in structure "display_arg_results" dcl 6-10 in procedure "linus_display" flwp_beginning_line_number 000124 automatic fixed bin(35,0) dcl 737 set ref 746* 754 766 770* 774 778 flwp_ending_line_number 000125 automatic fixed bin(35,0) dcl 738 set ref 754* 760 766 770 774 flwp_line_number_is_beyond_end_of_report 000126 automatic bit(1) dcl 739 set ref 744* 760* 766 774 flwp_still_looking_for_the_line 000127 automatic bit(1) dcl 740 set ref 743* 748 766* 772 fpgpep_page_number_parm parameter fixed bin(21,0) dcl 398 ref 394 400 404 function_key_info 000342 automatic structure level 1 dcl 11-79 goto_line_number_pending 0(05) based bit(1) level 3 packed unaligned dcl 11-98 set ref 704 742* hcs_$status_long 000022 constant entry external dcl 948 ref 275 header based structure level 2 dcl 2-5 index builtin function dcl 950 ref 522 607 620 ioa_$ioa_switch 000024 constant entry external dcl 951 ref 99 159 186 340 369 381 476 545 610 681 ioa_$ioa_switch_nnl 000026 constant entry external dcl 952 ref 570 623 iocb based structure level 1 dcl 3-6 iocb_ptr 000276 automatic pointer dcl 953 set ref 839* 847* 854 900* 901* 902* 903* iox_$attach_name 000100 constant entry external dcl 4-8 ref 839 iox_$close 000102 constant entry external dcl 4-8 ref 901 iox_$destroy_iocb 000104 constant entry external dcl 4-8 ref 903 iox_$detach_iocb 000106 constant entry external dcl 4-8 ref 902 iox_$error_output 000120 external static pointer dcl 4-41 set ref 99* 159* 186* 340* 369* 381* 476* 545* 681* iox_$look_iocb 000110 constant entry external dcl 4-8 ref 862 iox_$open 000112 constant entry external dcl 4-8 ref 847 iox_$put_chars 000114 constant entry external dcl 4-8 ref 580 iox_$user_output 000116 external static pointer dcl 4-41 ref 822 896 keep_report_flag 3 000332 automatic bit(1) level 3 dcl 6-10 set ref 86 890 keep_retrieval_flag 4 000332 automatic bit(1) level 3 dcl 6-10 set ref 123 886 last_page_flag 14 000332 automatic bit(1) level 3 dcl 6-10 set ref 522 534 last_page_of_the_report 000300 automatic bit(1) dcl 955 set ref 404* 407* 617 lcb based structure level 1 dcl 7-53 lcb_ptr 000332 automatic pointer dcl 7-121 set ref 67* 94* 129* 154* 181* 334* 356* 424* 438* 443* 449* 455 470* lcb_ptr_parm parameter pointer dcl 33 ref 30 438 left_margin_position 252 000332 automatic fixed bin(17,0) level 3 dcl 6-10 set ref 589 length builtin function dcl 956 in procedure "linus_display" ref 651 length 1 based fixed bin(17,0) level 2 in structure "page_info" dcl 9-29 in procedure "linus_display" ref 603 754 linus_display_process_args 000030 constant entry external dcl 957 ref 67 linus_display_scroll$continue 000032 constant entry external dcl 958 ref 708 linus_display_scroll$start 000034 constant entry external dcl 959 ref 816 linus_display_scroll$stop 000036 constant entry external dcl 960 ref 913 linus_error_$bad_report_display 000040 external static fixed bin(35,0) dcl 961 set ref 600* 864* 868* linus_fr_build_page 000042 constant entry external dcl 962 ref 356 linus_fr_delete_report 000044 constant entry external dcl 963 ref 154 linus_fr_get_page 000046 constant entry external dcl 964 ref 424 linus_fr_new_report 000050 constant entry external dcl 965 ref 94 linus_options$initialize 000052 constant entry external dcl 966 ref 449 linus_table$delete_table 000054 constant entry external dcl 967 ref 181 linus_table$load_table 000060 constant entry external dcl 969 ref 470 linus_table$new_table 000062 constant entry external dcl 970 ref 129 linus_table$sort 000064 constant entry external dcl 971 ref 334 linus_table$translate_query 000056 constant entry external dcl 968 ref 443 long 4 based structure level 2 dcl 14-8 long_flag 5 000332 automatic bit(1) level 3 dcl 6-10 set ref 223 243 292 miscellaneous 252 000332 automatic structure level 2 dcl 6-10 mrds_error_$tuple_not_found 000066 external static fixed bin(35,0) dcl 973 ref 480 mtds_loop 000630 automatic fixed bin(17,0) dcl 638 set ref 643* 644* mtds_overstrike_index 000631 automatic fixed bin(17,0) dcl 639 set ref 642* 645 645 648* 648 multi_pass_mode 0(09) based bit(1) level 3 packed unaligned dcl 10-7 set ref 310* 313* new_report_flag 6 000332 automatic bit(1) level 3 dcl 6-10 set ref 236 246* 252 281 305 321 537 new_retrieval_flag 7 000332 automatic bit(1) level 3 dcl 6-10 set ref 217 226* 232 238 281 318 no_of_formatted_pages based fixed bin(21,0) level 2 dcl 10-7 set ref 112* 388* 404 513 528 534 537* 667 669 697 722 725 749 755 792 799 904 no_of_rows_retrieved based fixed bin(35,0) level 2 dcl 10-7 set ref 143* 487* null builtin function dcl 975 ref 10-52 275 275 409 839 839 868 868 896 number_of_bits_or_chars based fixed bin(21,0) level 2 in structure "page_overstrike_info" dcl 9-43 in procedure "linus_display" ref 645 number_of_bits_or_chars based fixed bin(21,0) level 2 in structure "page_overstrike_info_redefined" dcl 9-51 in procedure "linus_display" ref 607 620 number_of_passes 254 000332 automatic fixed bin(17,0) level 3 in structure "display_arg_results" dcl 6-10 in procedure "linus_display" set ref 311 number_of_passes based fixed bin(17,0) level 2 in structure "report_control_info" dcl 10-7 in procedure "linus_display" set ref 311* on_the_last_page 0(03) based bit(1) level 3 packed unaligned dcl 11-98 set ref 720* 726* 759* open_descrip_ptr 20 based pointer level 2 dcl 3-6 ref 868 options_identifier based fixed bin(17,0) level 2 dcl 10-7 ref 110 238 output_file_directory_name 33 000332 automatic char(168) level 3 packed unaligned dcl 6-10 set ref 830 834 841 841 848 848 904 output_file_entry_name 105 000332 automatic char(32) level 3 packed unaligned dcl 6-10 set ref 830 834 841 841 848 848 904 output_file_flag 10 000332 automatic bit(1) level 3 dcl 6-10 set ref 570 812 896 output_switch_flag 11 000332 automatic bit(1) level 3 dcl 6-10 set ref 820 output_switch_name 23 000332 automatic char(32) level 3 packed unaligned dcl 6-10 set ref 862* page_defined_as_chars based char(1) array unaligned dcl 9-38 set ref 606 616 page_info based structure level 1 dcl 9-29 page_info_pointer 30 based pointer level 2 dcl 11-98 set ref 700* 707* page_ip 000334 automatic pointer dcl 9-41 set ref 356* 409 412 424* 580 580 592 592 596 603 605 606 615 616 700 707 754 page_overstrike_info based structure level 1 dcl 9-43 page_overstrike_info_ptr 6 based pointer level 2 dcl 9-29 ref 409 412 page_overstrike_info_redefined based structure level 1 dcl 9-51 page_overstrike_ip 000336 automatic pointer dcl 9-49 set ref 412* 607 607 620 620 645 645 page_ptr 4 based pointer level 2 dcl 9-29 set ref 580* 606 616 pages_flag 13 000332 automatic bit(1) level 3 dcl 6-10 set ref 76 passes_flag 22 000332 automatic bit(1) level 3 dcl 6-10 set ref 305 pathnames 23 000332 automatic structure level 2 dcl 6-10 permanent_report 0(05) based bit(1) level 3 packed unaligned dcl 10-7 set ref 86* 89* permanent_table 0(06) based bit(1) level 3 packed unaligned dcl 10-7 set ref 123* 126* 129 pp_chunk_of_line based char unaligned dcl 556 set ref 610* 623* 644 pp_chunk_of_line_ptr 000606 automatic pointer dcl 557 set ref 606* 610 616* 623 644 652* pp_code 000610 automatic fixed bin(35,0) dcl 558 set ref 580* 582 582* pp_ioa_string 000611 automatic char(4) unaligned dcl 559 set ref 617* 619* 623* pp_left_margin 000612 automatic fixed bin(17,0) dcl 560 set ref 589* 590 590* 597* 599 605 612 615 pp_loop 000613 automatic fixed bin(17,0) dcl 561 set ref 604* 605* pp_loop_limit 000614 automatic fixed bin(17,0) dcl 562 set ref 603* 604 615 pp_number_of_chars 000615 automatic fixed bin(17,0) dcl 563 set ref 599* 600 607 610 610 612* 620 623 623 643 644 651* pp_overstrike_index 000616 automatic fixed bin(17,0) dcl 564 set ref 605* 606 607 615* 616 620 642 pp_right_margin 000617 automatic fixed bin(17,0) dcl 565 set ref 588* 592 592* 596* 599 612 pr_loop 000642 automatic fixed bin(21,0) dcl 662 set ref 670* 671* pr_loop_limit 000643 automatic fixed bin(21,0) dcl 663 set ref 669* 670 ptr_current_page_number 000572 automatic fixed bin(21,0) dcl 495 set ref 508* 513 515 515* 519 522 525* 525 526* 526 528 ptr_specified_pages_as_a_string based bit unaligned dcl 496 ref 522 ptr_specified_pages_as_a_string_ptr 000574 automatic pointer dcl 497 set ref 507* 522 ptr_still_paging 000576 automatic bit(1) dcl 498 set ref 509* 511 522* 528* release_area_ 000070 constant entry external dcl 978 ref 457 report_cip 000340 automatic pointer initial dcl 10-52 set ref 10-52* 86 89 98 99 107 108 109 110 110 112 113 114 115 123 126 129 129 133 138 139 140 141 143 158 159 170 185 186 197 219 219 232 238 238 238 252 284 286 289 310 311 313 330 339 340 360 360 366 368 369 369 378 380 381 388 404 404 455* 456 458 474 474 476 486 487 500 506 513 528 528 534 537 545 570 570 580 610 617 623 630 630 665 667 669 676 681 697 722 722 725 749 755 755 792 799 816* 822 854 862 868 868 886 890 896 896 900 904 report_control_info based structure level 1 dcl 10-7 report_control_info_ptr 106 based pointer level 2 dcl 7-53 ref 455 report_deletion_time based float bin(63) level 2 dcl 10-7 set ref 158* 159 report_display_time based float bin(63) level 2 dcl 10-7 set ref 114* 506* 545 630* 630 665* 681 report_formatting_time based float bin(63) level 2 dcl 10-7 set ref 113* 360* 360 369 report_has_been_started 0(03) based bit(1) level 3 packed unaligned dcl 10-7 set ref 107* 170* 238 252 890 report_has_just_been_completed 0(07) based bit(1) level 3 packed unaligned dcl 10-7 set ref 109* 366 368* report_identifier based fixed bin(17,0) level 2 dcl 10-7 set ref 110* 238 report_is_formatted 0(04) based bit(1) level 3 packed unaligned dcl 10-7 set ref 108* 404 528 676 722 755 report_is_paginated based bit(1) level 3 packed unaligned dcl 10-7 ref 500 570 617 report_setup_time based float bin(63) level 2 dcl 10-7 set ref 98* 99 retrieval_identifier based fixed bin(17,0) level 2 in structure "table_info" dcl 13-5 in procedure "linus_display" ref 141 219 retrieval_identifier based fixed bin(17,0) level 2 in structure "report_control_info" dcl 10-7 in procedure "linus_display" set ref 141* 219 right_margin_position 253 000332 automatic fixed bin(17,0) level 3 dcl 6-10 set ref 588 row_count 1 based fixed bin(35,0) level 2 dcl 13-5 ref 143 487 rtrim builtin function dcl 979 ref 292 292 830 830 834 834 841 841 841 841 848 848 848 848 904 904 sci_ptr 000302 automatic pointer dcl 981 set ref 67* 104* 135* 164* 167* 191* 194* 223* 243* 271* 277* 292* 305* 344* 363* 425* 437* 444* 450* 483* 582* 600* 712* 816* 841* 848* 864* 868* 904* sci_ptr_parm parameter pointer dcl 32 ref 30 437 scroll_flag 15 000332 automatic bit(1) level 3 dcl 6-10 set ref 74 86 814 913 scroll_info based structure level 1 dcl 11-98 scroll_info_ptr 260 000332 automatic pointer level 3 dcl 6-10 set ref 694 913* scroll_ip 000512 automatic pointer dcl 11-128 set ref 694* 697 697 700 704 707 708* 720 722 725 726 742 745 749 749 755 759 760 766 766 774 774 778 778 781 781 792 792 799 sort_flag 16 000332 automatic bit(1) level 3 dcl 6-10 set ref 123 328 sort_information_ptr 256 000332 automatic pointer level 3 dcl 6-10 set ref 334* spare_string 000304 automatic varying char dcl 982 set ref 641* 644* 644 645* 645 651 652 specified_pages 262 000332 automatic bit(1) array level 3 packed unaligned dcl 6-10 set ref 507 515 519 534 ssu_$abort_line 000072 constant entry external dcl 983 ref 104 135 167 194 271 277 305 344 363 425 444 450 483 582 600 712 841 848 864 868 ssu_$print_message 000074 constant entry external dcl 984 ref 164 191 223 243 292 904 ssu_evaluate_active_string_time based float bin(63) level 2 dcl 10-7 set ref 115* 369 status_branch based structure level 1 dcl 14-8 ref 268 status_ptr 000516 automatic pointer dcl 14-47 set ref 268* 275* 286 289 str_still_looking_for_the_page 000100 automatic bit(1) dcl 692 set ref 795* 796 799* substr builtin function dcl 985 ref 522 607 620 644 switch_name 000304 automatic char(42) unaligned dcl 986 set ref 829* 839* table_deletion_time based float bin(63) level 2 dcl 10-7 set ref 185* 186 table_has_been_started 0(01) based bit(1) level 3 packed unaligned dcl 10-7 set ref 138* 197* 219 232 886 table_has_just_been_loaded 0(08) based bit(1) level 3 packed unaligned dcl 10-7 set ref 140* 378 380* table_info based structure level 1 dcl 13-5 table_ip 000514 automatic pointer dcl 13-57 set ref 67* 141 143 219 443* 487 table_is_full 0(02) based bit(1) level 3 packed unaligned dcl 10-7 set ref 139* 330 486* table_loading_time based float bin(63) level 2 dcl 10-7 set ref 133* 381 474* 474 476 table_sorting_time based float bin(63) level 2 dcl 10-7 set ref 339* 340 target_line_number 3 based fixed bin(35,0) level 2 dcl 11-98 set ref 760 766 766 774* 778* 778 target_page_number 2 based fixed bin(21,0) level 2 dcl 11-98 set ref 697 697* 722 725* 745* 749 749* 755 781* 781 792 792* 799 target_page_parm parameter fixed bin(21,0) dcl 422 set ref 420 424* 425* 429* temp_dir_flag 17 000332 automatic bit(1) level 3 dcl 6-10 set ref 266 296* temp_dir_name based char(168) level 2 packed unaligned dcl 10-7 set ref 129 284* temp_dir_pathname 167 000332 automatic char(168) level 3 packed unaligned dcl 6-10 set ref 269* 271* 277* 284 292 292 temp_dir_unique_id based bit(36) level 2 dcl 10-7 set ref 286* 289 terminal_dependency 000317 automatic bit(1) dcl 989 set ref 411* 414* 578 607 612 620 time1 000320 automatic float bin(63) dcl 990 set ref 91* 98 128* 133 151* 158 178* 185 332* 339 354* 360 467* 474 567* 630 time2 000322 automatic float bin(63) dcl 991 set ref 97* 98 132* 133 157* 158 184* 185 338* 339 359* 360 473* 474 629* 630 time_flag 20 000332 automatic bit(1) level 3 dcl 6-10 set ref 91 95 151 155 178 182 332 336 354 357 369 381 467 471 545 567 627 681 total_characters 2 based fixed bin(21,0) level 2 dcl 9-29 set ref 580* truncate_flag 12 000332 automatic bit(1) level 3 dcl 6-10 set ref 830 uid 11 based bit(36) level 3 packed unaligned dcl 14-8 ref 286 289 unique_chars_ 000076 constant entry external dcl 993 ref 829 vclock builtin function dcl 995 ref 91 97 128 132 151 157 178 184 332 338 354 359 467 473 567 629 vertical_scroll_distance 7 based fixed bin(17,0) level 2 dcl 11-98 ref 774 video_has_been_set_up 000324 automatic bit(1) dcl 996 set ref 459* 818* 913 width based fixed bin(17,0) level 2 dcl 9-29 ref 592 592 596 605 615 work_area based area dcl 998 ref 268 work_area_ptr 000326 automatic pointer dcl 999 set ref 67* 268 456* 457* 458* 816* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Direct_input internal static fixed bin(17,0) initial dcl 5-15 Direct_output internal static fixed bin(17,0) initial dcl 5-15 Direct_update internal static fixed bin(17,0) initial dcl 5-15 Directory internal static fixed bin(17,0) initial dcl 14-56 ESCAPE_KEYS internal static structure level 1 dcl 11-7 ESCAPE_KEYS_AS_A_TABLE based char(2) array dcl 11-22 ESCAPE_KEY_MNEMONICS internal static structure level 1 dcl 11-24 ESCAPE_KEY_MNEMONICS_AS_A_TABLE based char(5) array dcl 11-39 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 FUNCTION_NAMES internal static structure level 1 dcl 11-41 FUNCTION_NAMES_AS_A_TABLE based char(32) array dcl 11-56 GENERAL_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 8-15 GENERAL_REPORT_OPTION internal static fixed bin(17,0) initial dcl 8-14 HIGHEST_DISPLAY_FUNCTION_NUMBER internal static fixed bin(17,0) initial dcl 11-58 HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED internal static fixed bin(17,0) initial dcl 11-60 INDEX_FOR_ALIGNMENT internal static fixed bin(17,0) initial dcl 8-66 INDEX_FOR_COLUMN_ORDER internal static fixed bin(17,0) initial dcl 8-50 INDEX_FOR_COUNT internal static fixed bin(17,0) initial dcl 8-51 INDEX_FOR_DELIMITER internal static fixed bin(17,0) initial dcl 8-40 INDEX_FOR_EDITING internal static fixed bin(17,0) initial dcl 8-67 INDEX_FOR_EXCLUDE internal static fixed bin(17,0) initial dcl 8-52 INDEX_FOR_FOLDING internal static fixed bin(17,0) initial dcl 8-68 INDEX_FOR_FORMAT_DOCUMENT_CONTROLS internal static fixed bin(17,0) initial dcl 8-41 INDEX_FOR_GROUP internal static fixed bin(17,0) initial dcl 8-53 INDEX_FOR_GROUP_FOOTER_TRIGGER internal static fixed bin(17,0) initial dcl 8-54 INDEX_FOR_GROUP_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 8-55 INDEX_FOR_GROUP_HEADER_TRIGGER internal static fixed bin(17,0) initial dcl 8-56 INDEX_FOR_GROUP_HEADER_VALUE internal static fixed bin(17,0) initial dcl 8-57 INDEX_FOR_HYPHENATION internal static fixed bin(17,0) initial dcl 8-42 INDEX_FOR_OUTLINE internal static fixed bin(17,0) initial dcl 8-58 INDEX_FOR_PAGE_BREAK internal static fixed bin(17,0) initial dcl 8-59 INDEX_FOR_PAGE_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 8-43 INDEX_FOR_PAGE_HEADER_VALUE internal static fixed bin(17,0) initial dcl 8-44 INDEX_FOR_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 8-45 INDEX_FOR_PAGE_WIDTH internal static fixed bin(17,0) initial dcl 8-46 INDEX_FOR_ROW_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 8-60 INDEX_FOR_ROW_HEADER_VALUE internal static fixed bin(17,0) initial dcl 8-61 INDEX_FOR_SEPARATOR internal static fixed bin(17,0) initial dcl 8-69 INDEX_FOR_SUBCOUNT internal static fixed bin(17,0) initial dcl 8-62 INDEX_FOR_SUBTOTAL internal static fixed bin(17,0) initial dcl 8-63 INDEX_FOR_TITLE internal static fixed bin(17,0) initial dcl 8-70 INDEX_FOR_TITLE_LINE internal static fixed bin(17,0) initial dcl 8-47 INDEX_FOR_TOTAL internal static fixed bin(17,0) initial dcl 8-64 INDEX_FOR_TRUNCATION internal static fixed bin(17,0) initial dcl 8-48 INDEX_FOR_WIDTH internal static fixed bin(17,0) initial dcl 8-71 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 KEY_MNEMONICS internal static structure level 1 dcl 11-62 KEY_MNEMONICS_AS_A_TABLE based char(12) array dcl 11-77 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 5-15 LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 8-28 LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 8-27 LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 8-26 Link internal static fixed bin(17,0) initial dcl 14-56 MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 8-32 MAXIMUM_OPTION_IDENTIFIER_LENGTH internal static fixed bin(17,0) initial dcl 8-34 MAXIMUM_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 8-35 NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 8-22 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 SPECIFIC_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 8-16 Segment internal static fixed bin(17,0) initial dcl 14-56 Sequential_input internal static fixed bin(17,0) initial dcl 5-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_update internal static fixed bin(17,0) initial dcl 5-15 Stream_input internal static fixed bin(17,0) initial dcl 5-15 Stream_input_output internal static fixed bin(17,0) initial dcl 5-15 arg_descriptor_ptr automatic pointer dcl 1-34 arg_list_with_envptr based structure level 1 dcl 2-17 extended_arg_descriptor based structure level 1 dcl 1-21 fixed builtin function dcl 946 fixed_arg_descriptor based structure level 1 dcl 1-13 formatted_page_info based structure level 1 dcl 9-7 formatted_page_ip automatic pointer dcl 9-26 fpi_init_maximum_number_of_detail_blocks automatic fixed bin(17,0) dcl 9-27 init_number_of_descriptors automatic fixed bin(17,0) dcl 13-54 iox_$attach_loud 000000 constant entry external dcl 4-8 iox_$attach_ptr 000000 constant entry external dcl 4-8 iox_$close_file 000000 constant entry external dcl 4-8 iox_$control 000000 constant entry external dcl 4-8 iox_$delete_record 000000 constant entry external dcl 4-8 iox_$detach 000000 constant entry external dcl 4-8 iox_$err_no_operation 000000 constant entry external dcl 4-8 iox_$err_not_attached 000000 constant entry external dcl 4-8 iox_$err_not_closed 000000 constant entry external dcl 4-8 iox_$err_not_open 000000 constant entry external dcl 4-8 iox_$find_iocb 000000 constant entry external dcl 4-8 iox_$find_iocb_n 000000 constant entry external dcl 4-8 iox_$get_chars 000000 constant entry external dcl 4-8 iox_$get_line 000000 constant entry external dcl 4-8 iox_$iocb_version_sentinel external static char(4) dcl 3-51 iox_$modes 000000 constant entry external dcl 4-8 iox_$move_attach 000000 constant entry external dcl 4-8 iox_$open_file 000000 constant entry external dcl 4-8 iox_$position 000000 constant entry external dcl 4-8 iox_$propagate 000000 constant entry external dcl 4-8 iox_$read_key 000000 constant entry external dcl 4-8 iox_$read_length 000000 constant entry external dcl 4-8 iox_$read_record 000000 constant entry external dcl 4-8 iox_$rewrite_record 000000 constant entry external dcl 4-8 iox_$seek_key 000000 constant entry external dcl 4-8 iox_$user_input external static pointer dcl 4-41 iox_$user_io external static pointer dcl 4-41 iox_$write_record 000000 constant entry external dcl 4-8 iox_modes internal static char(24) initial array dcl 5-6 keys_as_a_table based char(32) array unaligned dcl 11-94 mnemonic_key_sequences_as_a_table based char(32) array dcl 11-96 no_of_candidate_columns automatic fixed bin(17,0) dcl 12-17 page_defined_as_a_string based char unaligned dcl 9-40 page_defined_as_lines based char array unaligned dcl 9-39 rel builtin function dcl 977 row_ptrs based structure level 1 dcl 13-32 row_ptrs_p automatic pointer dcl 13-41 row_segs_info based structure level 1 dcl 13-25 row_segs_ip automatic pointer dcl 13-39 row_value based char unaligned dcl 13-36 row_value_p automatic pointer unaligned dcl 13-37 rsi_init_max_number_of_seg_ptrs automatic fixed bin(17,0) dcl 13-55 short_iox_modes internal static char(4) initial array dcl 5-12 sort_info based structure level 1 unaligned dcl 12-7 sort_info_ptr automatic pointer dcl 12-16 status_area_ptr automatic pointer dcl 14-47 status_entry_names based char(32) array dcl 14-47 status_link based structure level 1 dcl 14-38 status_pathname based char dcl 14-47 store_ap automatic pointer dcl 13-56 store_args based structure level 1 dcl 13-44 sys_info$max_seg_size external static fixed bin(35,0) dcl 987 ti_init_column_count automatic fixed bin(17,0) dcl 13-58 NAMES DECLARED BY EXPLICIT CONTEXT. begin_new_report 000613 constant entry internal dcl 84 ref 321 begin_new_retrieval 001002 constant entry internal dcl 121 ref 318 check_for_end_of_report 004633 constant entry internal dcl 718 ref 791 798 delete_report 001156 constant entry internal dcl 149 ref 252 890 delete_table 001333 constant entry internal dcl 176 ref 232 886 fill_in_the_defaults 001507 constant entry internal dcl 203 ref 70 find_line_within_page 004664 constant entry internal dcl 735 ref 704 find_page 005043 constant entry internal dcl 789 ref 706 format_page 002413 constant entry internal dcl 352 ref 513 677 699 752 797 format_page_or_get_page_extra_processing 002700 constant entry internal dcl 394 ref 388 429 get_page 002755 constant entry internal dcl 420 ref 515 537 671 697 749 792 initialize 003045 constant entry internal dcl 435 ref 66 linus_display 000465 constant entry external dcl 30 load_the_entire_table 003174 constant entry internal dcl 465 ref 330 make_terminal_dependent_string 004231 constant entry internal dcl 636 ref 607 620 page_the_report 003334 constant entry internal dcl 493 ref 76 print_page 003601 constant entry internal dcl 554 ref 519 540 672 678 print_report 004342 constant entry internal dcl 660 ref 78 502 scroll_the_report 004471 constant entry internal dcl 690 ref 74 setup_io_switches 005124 constant entry internal dcl 810 ref 72 setup_output_file 005176 constant entry internal dcl 827 ref 812 setup_output_switch 005677 constant entry internal dcl 860 ref 820 terminate 006021 constant entry internal dcl 879 ref 63 80 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7070 7212 6315 7100 Length 10016 6315 122 570 552 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_display 891 external procedure is an external procedure. on unit on line 61 64 on unit begin_new_report internal procedure shares stack frame of external procedure linus_display. begin_new_retrieval internal procedure shares stack frame of external procedure linus_display. delete_report 102 internal procedure is called by several nonquick procedures. delete_table 102 internal procedure is called by several nonquick procedures. fill_in_the_defaults internal procedure shares stack frame of external procedure linus_display. format_page 136 internal procedure is called by several nonquick procedures. format_page_or_get_page_extra_processing 64 internal procedure is called by several nonquick procedures. get_page 92 internal procedure is called by several nonquick procedures. initialize internal procedure shares stack frame of external procedure linus_display. load_the_entire_table internal procedure shares stack frame of external procedure linus_display. page_the_report internal procedure shares stack frame of external procedure linus_display. print_page internal procedure shares stack frame of external procedure linus_display. make_terminal_dependent_string internal procedure shares stack frame of external procedure linus_display. print_report internal procedure shares stack frame of external procedure linus_display. scroll_the_report 126 internal procedure enables or reverts conditions. on unit on line 696 72 on unit check_for_end_of_report internal procedure shares stack frame of internal procedure scroll_the_report. find_line_within_page internal procedure shares stack frame of internal procedure scroll_the_report. find_page internal procedure shares stack frame of internal procedure scroll_the_report. setup_io_switches internal procedure shares stack frame of external procedure linus_display. setup_output_file internal procedure shares stack frame of external procedure linus_display. setup_output_switch internal procedure shares stack frame of external procedure linus_display. terminate 106 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_display 000100 arguments_have_been_processed linus_display 000101 attach_description linus_display 000210 cleanup_signalled linus_display 000211 code linus_display 000212 directory_name linus_display 000264 entry_name linus_display 000274 first_page_of_the_report linus_display 000276 iocb_ptr linus_display 000300 last_page_of_the_report linus_display 000302 sci_ptr linus_display 000304 spare_string linus_display 000304 switch_name linus_display 000317 terminal_dependency linus_display 000320 time1 linus_display 000322 time2 linus_display 000324 video_has_been_set_up linus_display 000326 work_area_ptr linus_display 000330 extended_arg_type linus_display 000332 lcb_ptr linus_display 000332 display_arg_results linus_display 000334 page_ip linus_display 000336 page_overstrike_ip linus_display 000340 report_cip linus_display 000342 function_key_info linus_display 000512 scroll_ip linus_display 000514 table_ip linus_display 000516 status_ptr linus_display 000572 ptr_current_page_number page_the_report 000574 ptr_specified_pages_as_a_string_ptr page_the_report 000576 ptr_still_paging page_the_report 000606 pp_chunk_of_line_ptr print_page 000610 pp_code print_page 000611 pp_ioa_string print_page 000612 pp_left_margin print_page 000613 pp_loop print_page 000614 pp_loop_limit print_page 000615 pp_number_of_chars print_page 000616 pp_overstrike_index print_page 000617 pp_right_margin print_page 000630 mtds_loop make_terminal_dependent_string 000631 mtds_overstrike_index make_terminal_dependent_string 000642 pr_loop print_report 000643 pr_loop_limit print_report scroll_the_report 000100 str_still_looking_for_the_page scroll_the_report 000124 flwp_beginning_line_number find_line_within_page 000125 flwp_ending_line_number find_line_within_page 000126 flwp_line_number_is_beyond_end_of_report find_line_within_page 000127 flwp_still_looking_for_the_line find_line_within_page THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj enable shorten_stack ext_entry int_entry index_bs_1_eis alloc_based vclock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. expand_pathname_ hcs_$status_long ioa_$ioa_switch ioa_$ioa_switch_nnl iox_$attach_name iox_$close iox_$destroy_iocb iox_$detach_iocb iox_$look_iocb iox_$open iox_$put_chars linus_display_process_args linus_display_scroll$continue linus_display_scroll$start linus_display_scroll$stop linus_fr_build_page linus_fr_delete_report linus_fr_get_page linus_fr_new_report linus_options$initialize linus_table$delete_table linus_table$load_table linus_table$new_table linus_table$sort linus_table$translate_query release_area_ ssu_$abort_line ssu_$print_message unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info error_table_$inconsistent error_table_$no_iocb error_table_$no_s_permission iox_$error_output iox_$user_output linus_error_$bad_report_display mrds_error_$tuple_not_found LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000461 982 000472 1 36 000502 6 10 000504 10 52 000512 58 000514 59 000515 61 000516 62 000532 63 000535 64 000542 66 000543 67 000544 69 000565 70 000567 72 000570 74 000571 76 000601 78 000605 80 000606 82 000612 84 000613 86 000614 89 000624 91 000626 94 000634 95 000645 97 000650 98 000654 99 000675 104 000724 107 000743 108 000745 109 000747 110 000751 112 000763 113 000764 114 000777 115 001000 117 001001 121 001002 123 001003 126 001013 128 001015 129 001021 132 001066 133 001072 135 001112 138 001131 139 001133 140 001135 141 001137 143 001151 145 001154 149 001155 151 001163 154 001174 155 001205 157 001211 158 001216 159 001237 164 001266 167 001311 170 001326 172 001331 176 001332 178 001340 181 001351 182 001362 184 001366 185 001373 186 001414 191 001443 194 001466 197 001503 199 001506 203 001507 217 001510 219 001513 223 001530 226 001557 232 001562 236 001573 238 001576 243 001616 246 001645 252 001650 266 001661 268 001664 269 001671 271 001716 275 001751 277 002011 281 002046 284 002053 286 002074 288 002100 289 002101 292 002123 296 002176 305 002201 310 002232 311 002234 312 002246 313 002247 318 002251 321 002255 328 002261 330 002264 332 002270 334 002277 336 002313 338 002316 339 002322 340 002343 344 002372 348 002411 352 002412 354 002420 356 002431 357 002444 359 002450 360 002455 363 002477 366 002516 368 002522 369 002524 378 002602 380 002606 381 002610 388 002657 390 002676 394 002677 400 002705 402 002715 404 002717 407 002737 409 002740 411 002745 412 002747 413 002751 414 002752 416 002753 420 002754 424 002762 425 003000 429 003034 431 003044 435 003045 437 003046 438 003052 443 003055 444 003070 449 003107 450 003120 455 003137 456 003142 457 003152 458 003161 459 003172 461 003173 465 003174 467 003175 470 003204 471 003215 473 003220 474 003224 476 003245 480 003274 483 003302 486 003316 487 003320 489 003333 493 003334 500 003335 502 003340 503 003341 506 003342 507 003362 508 003365 509 003367 511 003371 513 003374 515 003414 519 003427 522 003436 525 003455 526 003457 528 003460 532 003477 534 003500 537 003517 540 003527 545 003530 550 003600 554 003601 567 003602 570 003611 578 003647 580 003654 582 003701 584 003720 586 003721 588 003723 589 003725 590 003727 592 003733 594 003741 596 003742 597 003745 599 003747 600 003753 603 004000 604 004004 605 004013 606 004017 607 004025 610 004037 612 004074 614 004102 615 004104 616 004112 617 004120 619 004130 620 004132 623 004144 627 004177 629 004202 630 004206 634 004230 636 004231 641 004232 642 004233 643 004235 644 004245 645 004257 648 004327 649 004331 651 004333 652 004335 654 004341 660 004342 665 004343 667 004364 669 004366 670 004367 671 004375 672 004403 673 004404 676 004406 677 004411 678 004415 679 004416 681 004417 686 004467 690 004470 694 004476 696 004503 697 004517 699 004545 700 004552 701 004561 704 004562 706 004570 707 004571 708 004576 709 004607 712 004615 714 004631 716 004632 718 004633 720 004634 722 004637 725 004657 726 004661 731 004663 735 004664 742 004665 743 004670 744 004672 745 004673 746 004676 748 004700 749 004702 752 004727 754 004734 755 004745 759 004764 760 004766 766 004773 770 005005 772 005011 774 005013 778 005030 780 005037 781 005040 783 005041 785 005042 789 005043 791 005044 792 005045 795 005072 796 005074 797 005076 798 005103 799 005104 801 005122 804 005123 810 005124 812 005125 814 005132 816 005134 818 005153 819 005155 820 005156 822 005162 825 005175 827 005176 829 005177 830 005231 834 005320 839 005413 841 005446 847 005545 848 005565 854 005664 856 005676 860 005677 862 005700 864 005731 868 005755 873 006017 879 006020 881 006026 886 006031 890 006044 896 006060 900 006106 901 006110 902 006120 903 006132 904 006144 909 006263 913 006264 916 006301 ----------------------------------------------------------- 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