COMPILATION LISTING OF SEGMENT rw_display Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/16/84 1124.5 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the main level procedure called by ssu_ to implement the 9* report writer 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* Changed - Al Dupuis - October 1984 Became report_writer_. 28* 29**/ 30 31 rw_display: proc ( 32 33 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 34 report_cip_parm /* input: points to report_control_info */ 35 ); 36 37 dcl report_cip_parm ptr parm; 38 dcl sci_ptr_parm ptr parm; 39 40 /* 41* Mainline Processing Overview. 42* 43* (1) Make sure the format options are up to date and that there is 44* data to create a report from. 45* 46* (2) Have the subroutine rw_display_process_args fill in the 47* default control args and update the defaults with arguments 48* supplied on the request line. 49* 50* (3) Delete existing report and table if appropriate, start new ones 51* if appropriate, possibly sort the table, setup for multi-pass 52* mode if appropriate. 53* 54* (4) Setup any output file, output switch, or the video system 55* depending on what control arguments were given. 56* 57* (5) Print, scroll, or page the report. 58* 59* (6) Perform termination as instructed by the control args. 60* 61**/ 62 63 arguments_have_been_processed = OFF; 64 cleanup_signalled = OFF; 65 66 on cleanup begin; 67 cleanup_signalled = ON; 68 call terminate; 69 end; 70 71 call initialize; 72 call rw_display_process_args (report_cip, work_area_ptr, 73 table_ip, addr (display_arg_results)); 74 arguments_have_been_processed = ON; 75 call fill_in_the_defaults; 76 77 call setup_io_switches; 78 79 if display_arg_results.scroll_flag 80 then call scroll_the_report; 81 else if display_arg_results.pages_flag 82 then call page_the_report; 83 else call print_report; 84 85 call terminate; 86 87 return; 88 89 begin_new_report: proc; 90 91 if display_arg_results.flags.keep_report_flag 92 | display_arg_results.flags.scroll_flag 93 then report_control_info.flags.permanent_report = ON; 94 else report_control_info.flags.permanent_report = OFF; 95 96 if display_arg_results.time_flag 97 then time1 = vclock; 98 99 call rw_fr_new_report (report_cip, code); 100 if display_arg_results.time_flag 101 then do; 102 time2 = vclock; 103 report_control_info.report_setup_time = time2 - time1; 104 call ioa_$ioa_switch (iox_$error_output, 105 "Time used to setup the report was ^10.5f seconds.", 106 report_control_info.report_setup_time / 1000000); 107 end; 108 109 if code ^= 0 110 then call ssu_$abort_line (sci_ptr, code); 111 112 report_control_info.flags.report_has_been_started = ON; 113 report_control_info.flags.report_is_formatted = OFF; 114 report_control_info.flags.report_has_just_been_completed = OFF; 115 report_control_info.report_identifier 116 = report_control_info.options_identifier; 117 report_control_info.no_of_formatted_pages = 0; 118 report_control_info.report_formatting_time = 0; 119 report_control_info.report_display_time = 0; 120 report_control_info.ssu_evaluate_active_string_time = 0; 121 122 return; 123 124 end begin_new_report; 125 126 begin_new_retrieval: proc; 127 128 if display_arg_results.keep_retrieval_flag 129 | display_arg_results.sort_flag 130 then report_control_info.permanent_table = ON; 131 else report_control_info.permanent_table = OFF; 132 report_control_info.flags.table_has_been_started = ON; 133 134 time1 = vclock; 135 call rw_table_manager$create_table (report_cip, code); 136 time2 = vclock; 137 report_control_info.table_loading_time = time2 - time1; 138 139 if code ^= 0 140 then call ssu_$abort_line (sci_ptr, code); 141 142 report_control_info.flags.table_is_full = OFF; 143 report_control_info.flags.table_has_just_been_loaded = OFF; 144 report_control_info.no_of_rows_retrieved = table_control_info.row_count; 145 146 return; 147 148 end begin_new_retrieval; 149 150 delete_report: proc; 151 152 if display_arg_results.time_flag 153 then time1 = vclock; 154 155 call rw_fr_delete_report (report_cip, code); 156 if display_arg_results.time_flag 157 then do; 158 time2 = vclock; 159 report_control_info.report_deletion_time = time2 - time1; 160 call ioa_$ioa_switch (iox_$error_output, 161 "Time used to delete the report was ^10.5f seconds.", 162 report_control_info.report_deletion_time / 1000000); 163 end; 164 165 if code ^= 0 166 then if cleanup_signalled 167 then call ssu_$print_message (sci_ptr, code); 168 else call ssu_$abort_line (sci_ptr, code); 169 else; 170 171 report_control_info.flags.report_has_been_started = OFF; 172 173 return; 174 175 end delete_report; 176 177 delete_table: proc; 178 179 if display_arg_results.time_flag 180 then time1 = vclock; 181 182 call rw_table_manager$delete_table (report_cip, code); 183 if display_arg_results.time_flag 184 then do; 185 time2 = vclock; 186 report_control_info.table_deletion_time = time2 - time1; 187 call ioa_$ioa_switch (iox_$error_output, 188 "Time used to delete the table was ^10.5f seconds.", 189 report_control_info.table_deletion_time / 1000000); 190 end; 191 192 if code ^= 0 193 then if cleanup_signalled 194 then call ssu_$print_message (sci_ptr, code); 195 else call ssu_$abort_line (sci_ptr, code); 196 else; 197 198 report_control_info.flags.table_has_been_started = OFF; 199 200 return; 201 202 end delete_table; 203 204 fill_in_the_defaults: proc; 205 206 /* 207* Delete the old table and old report if a new retrieval or report 208* has been requested and it wasn't deleted on our last termination. 209* The user may have asked for an existing table or report to be 210* used when it isn't possible. Examples of this are: when there isn't 211* an existing table; when invocations of the print, report, etc. 212* requests have occured since we were last active; when there isn't 213* an existing report; when the user has invoked the sfo request; 214* etc. If this has happened then it is treated as if the user asked 215* for a new report/table. 216**/ 217 218 if ^display_arg_results.new_retrieval_flag 219 then do; 220 if ^report_control_info.flags.table_has_been_started 221 then do; 222 if display_arg_results.long_flag 223 then call ssu_$print_message (sci_ptr, 0, 224 "Warning: A new retrieval will be started."); 225 display_arg_results.new_retrieval_flag = ON; 226 end; 227 else; 228 end; 229 else; 230 231 if display_arg_results.new_retrieval_flag 232 & report_control_info.flags.table_has_been_started 233 then call delete_table; 234 235 if ^display_arg_results.new_report_flag 236 then do; 237 if report_control_info.report_identifier 238 ^= report_control_info.options_identifier 239 | ^report_control_info.flags.report_has_been_started 240 | display_arg_results.new_retrieval_flag 241 then do; 242 if display_arg_results.long_flag 243 then call ssu_$print_message (sci_ptr, 0, 244 "Warning: A new report will be started."); 245 display_arg_results.new_report_flag = ON; 246 end; 247 else; 248 end; 249 else; 250 251 if display_arg_results.new_report_flag 252 & report_control_info.flags.report_has_been_started 253 then call delete_report; 254 255 /* 256* 257* Check for a new temp dir supplied by the user for placing the 258* retrieved data table and formatted report. We only allow a new 259* temp_dir when we're about to create a new table and report, because 260* the ptrs to the rows and formatted pages of existing reports and 261* tables would be invalid. 262* 263**/ 264 265 if display_arg_results.temp_dir_flag 266 then do; 267 allocate status_branch in (work_area) set (status_ptr); 268 call expand_pathname_ (display_arg_results.temp_dir_pathname, 269 directory_name, entry_name, code); 270 if code ^= 0 271 then call ssu_$abort_line (sci_ptr, code, 272 "^/While trying to expand the temp dir ^a.", 273 display_arg_results.temp_dir_pathname); 274 call hcs_$status_long (directory_name, entry_name, 1, 275 status_ptr, null (), code); 276 if code ^= 0 & code ^= error_table_$no_s_permission 277 then call ssu_$abort_line (sci_ptr, code, 278 "^/While trying to determine the unique id of ^a.", 279 display_arg_results.temp_dir_pathname); 280 if display_arg_results.new_report_flag 281 & display_arg_results.new_retrieval_flag 282 then do; 283 report_control_info.temp_dir_name 284 = display_arg_results.temp_dir_pathname; 285 report_control_info.temp_dir_unique_id 286 = status_branch.long.uid; 287 end; 288 else if report_control_info.temp_dir_unique_id = status_branch.long.uid 289 then; 290 else do; 291 if display_arg_results.long_flag 292 then call ssu_$print_message (sci_ptr, 0, 293 "Warning: The temp_dir ^a won't be used.", 294 rtrim (display_arg_results.temp_dir_pathname)); 295 display_arg_results.temp_dir_flag = OFF; 296 end; 297 end; 298 else; 299 300 /* 301* Check for multiple pass mode. 302**/ 303 304 if display_arg_results.flags.passes_flag 305 then if ^display_arg_results.flags.new_report_flag 306 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 307 "^/The control argument -passes can only be used with a new report."); 308 else do; 309 report_control_info.flags.multi_pass_mode = ON; 310 report_control_info.number_of_passes = display_arg_results.number_of_passes; 311 end; 312 else report_control_info.flags.multi_pass_mode = OFF; 313 /* 314* Begin a new retrieval and report if appropriate. 315**/ 316 317 if display_arg_results.new_retrieval_flag 318 then call begin_new_retrieval; 319 320 if display_arg_results.new_report_flag 321 then call begin_new_report; 322 323 /* 324* Sort the table if instructed. 325**/ 326 327 if display_arg_results.sort_flag 328 then do; 329 if ^report_control_info.flags.table_is_full 330 then call load_the_entire_table; 331 if display_arg_results.time_flag 332 then time1 = vclock; 333 call rw_table_manager$sort (report_cip, 334 display_arg_results.sort_information_ptr, code); 335 if display_arg_results.time_flag 336 then do; 337 time2 = vclock; 338 report_control_info.table_sorting_time = time2 - time1; 339 call ioa_$ioa_switch (iox_$error_output, 340 "Time used to sort the table was ^10.5f seconds.", 341 report_control_info.table_sorting_time / 1000000); 342 end; 343 if code ^= 0 344 then call ssu_$abort_line (sci_ptr, code); 345 end; 346 347 return; 348 349 end fill_in_the_defaults; 350 351 format_page: proc; 352 353 if display_arg_results.time_flag 354 then time1 = vclock; 355 call rw_fr_build_page (report_cip, page_ip, code); 356 if display_arg_results.time_flag 357 then do; 358 time2 = vclock; 359 report_control_info.report_formatting_time 360 = report_control_info.report_formatting_time + (time2 - time1); 361 end; 362 if code ^= 0 363 then call ssu_$abort_line (sci_ptr, code); 364 365 if report_control_info.flags.report_has_just_been_completed 366 then do; 367 report_control_info.flags.report_has_just_been_completed = OFF; 368 if display_arg_results.time_flag 369 then call ioa_$ioa_switch (iox_$error_output, 370 "Time used to format the report was ^10.5f seconds." 371 || "^/(ssu_$evaluate_active_string used ^10.5f seconds of this time.)", 372 report_control_info.report_formatting_time / 1000000, 373 report_control_info.ssu_evaluate_active_string_time / 1000000); 374 else; 375 end; 376 377 if report_control_info.flags.table_has_just_been_loaded 378 then do; 379 report_control_info.flags.table_has_just_been_loaded = OFF; 380 if display_arg_results.time_flag 381 then call ioa_$ioa_switch (iox_$error_output, 382 "Time used to load the table was ^10.5f seconds.", 383 report_control_info.table_loading_time / 1000000); 384 else; 385 end; 386 387 call format_page_or_get_page_extra_processing (report_control_info.no_of_formatted_pages); 388 389 return; 390 391 end format_page; 392 393 format_page_or_get_page_extra_processing: proc ( 394 395 fpgpep_page_number_parm /* input: number of page just got or formatted */ 396 ); 397 dcl fpgpep_page_number_parm fixed bin (21) parm; 398 399 if fpgpep_page_number_parm = 1 400 then first_page_of_the_report = ON; 401 else first_page_of_the_report = OFF; 402 403 if report_control_info.report_is_formatted 404 & report_control_info.no_of_formatted_pages = fpgpep_page_number_parm 405 then last_page_of_the_report = ON; 406 else last_page_of_the_report = OFF; 407 408 if page_info.page_overstrike_info_ptr ^= null () 409 then do; 410 terminal_dependency = ON; 411 page_overstrike_ip = page_info.page_overstrike_info_ptr; 412 end; 413 else terminal_dependency = OFF; 414 415 return; 416 417 end format_page_or_get_page_extra_processing; 418 419 get_page: proc (target_page_parm); 420 421 dcl target_page_parm fixed bin (21) parm; 422 423 call rw_fr_get_page (report_cip, target_page_parm, page_ip, code); 424 if code ^= 0 425 then call ssu_$abort_line (sci_ptr, code, 426 "While trying to get page ^d.", target_page_parm); 427 428 call format_page_or_get_page_extra_processing (target_page_parm); 429 430 return; 431 432 end get_page; 433 434 initialize: proc; 435 436 sci_ptr = sci_ptr_parm; 437 report_cip = report_cip_parm; 438 439 display_arg_results.sort_information_ptr = null (); 440 display_arg_results.scroll_info_ptr = null (); 441 442 /* Make sure that things are set up. */ 443 444 table_ip = report_control_info.table_information_ptr; 445 if table_ip = null 446 then call ssu_$abort_line (sci_ptr, rw_error_$no_columns_defined); 447 448 /* Automatic versions of a few odds and sodds we will need. */ 449 450 work_area_ptr = report_control_info.general_work_area_ptr; 451 video_has_been_set_up = OFF; 452 table_control_ip = report_control_info.table_control_info_ptr; 453 454 return; 455 456 end initialize; 457 458 load_the_entire_table: proc; 459 460 if display_arg_results.time_flag 461 then time1 = vclock; 462 463 call rw_table_manager$load_table (report_cip, code); 464 if display_arg_results.time_flag 465 then do; 466 time2 = vclock; 467 report_control_info.table_loading_time 468 = report_control_info.table_loading_time + (time2 - time1); 469 call ioa_$ioa_switch (iox_$error_output, 470 "Time used to load the table was ^10.5f seconds.", 471 report_control_info.table_loading_time / 1000000); 472 end; 473 if code ^= 0 474 then if code = error_table_$end_of_info 475 then; 476 else call ssu_$abort_line (sci_ptr, code); 477 else; 478 479 report_control_info.flags.table_is_full = ON; 480 report_control_info.no_of_rows_retrieved = table_control_info.row_count; 481 482 return; 483 484 end load_the_entire_table; 485 486 page_the_report: proc; 487 488 dcl ptr_current_page_number fixed bin (21); 489 dcl ptr_specified_pages_as_a_string bit (NUMBER_OF_ALLOWED_SPECIFIED_PAGES) based (ptr_specified_pages_as_a_string_ptr); 490 dcl ptr_specified_pages_as_a_string_ptr ptr; 491 dcl ptr_still_paging bit (1) aligned; 492 493 if ^report_control_info.report_is_paginated 494 then do; 495 call print_report; 496 return; 497 end; 498 499 report_control_info.report_display_time = 0; 500 ptr_specified_pages_as_a_string_ptr = addr (display_arg_results.specified_pages (1)); 501 ptr_current_page_number = 1; 502 ptr_still_paging = ON; 503 504 do while (ptr_still_paging); 505 506 if ptr_current_page_number > report_control_info.no_of_formatted_pages 507 then call format_page; 508 else if display_arg_results.specified_pages (ptr_current_page_number) 509 then call get_page (ptr_current_page_number); 510 else; 511 512 if display_arg_results.specified_pages (ptr_current_page_number) 513 then call print_page; 514 515 if ^display_arg_results.last_page_flag 516 then if index (substr (ptr_specified_pages_as_a_string, ptr_current_page_number + 1), ON) = 0 517 then ptr_still_paging = OFF; 518 else ptr_current_page_number = ptr_current_page_number + 1; 519 else ptr_current_page_number = ptr_current_page_number + 1; 520 521 if report_control_info.report_is_formatted 522 & ptr_current_page_number > report_control_info.no_of_formatted_pages 523 then ptr_still_paging = OFF; 524 525 end; 526 527 if display_arg_results.last_page_flag 528 then if ^display_arg_results.specified_pages (report_control_info.no_of_formatted_pages) 529 then do; 530 if ^display_arg_results.new_report_flag 531 then call get_page (report_control_info.no_of_formatted_pages); 532 else; 533 call print_page; 534 end; 535 else; 536 else; 537 538 if display_arg_results.flags.time_flag 539 then call ioa_$ioa_switch (iox_$error_output, 540 "Time used to display the report was ^10.5f seconds.", 541 report_control_info.report_display_time / 1000000); 542 543 return; 544 545 end page_the_report; 546 547 print_page: proc; 548 549 dcl pp_chunk_of_line char (pp_number_of_chars) based (pp_chunk_of_line_ptr); 550 dcl pp_chunk_of_line_ptr ptr; 551 dcl pp_code fixed bin (35); 552 dcl pp_ioa_string char (4); 553 dcl pp_left_margin fixed bin; 554 dcl pp_loop fixed bin; 555 dcl pp_loop_limit fixed bin; 556 dcl pp_number_of_chars fixed bin; 557 dcl pp_overstrike_index fixed bin; 558 dcl pp_right_margin fixed bin; 559 560 if display_arg_results.time_flag 561 then time1 = vclock; 562 563 if ^display_arg_results.output_file_flag 564 then if report_control_info.report_is_paginated 565 | first_page_of_the_report 566 then call ioa_$ioa_switch_nnl ( 567 report_control_info.display_iocb_ptr, "^3/"); 568 else; 569 else; 570 571 if ^display_arg_results.character_positions_flag & ^terminal_dependency 572 then do; 573 call iox_$put_chars (report_control_info.display_iocb_ptr, 574 page_info.page_ptr, page_info.total_characters, pp_code); 575 if pp_code ^= 0 576 then call ssu_$abort_line (sci_ptr, pp_code); 577 end; 578 else do; 579 if display_arg_results.character_positions_flag 580 then do; 581 pp_right_margin = display_arg_results.right_margin_position; 582 pp_left_margin = display_arg_results.left_margin_position; 583 if pp_left_margin < 1 584 then pp_left_margin = 1; 585 if pp_right_margin >= page_info.width 586 then pp_right_margin = page_info.width - 1; 587 end; 588 else do; 589 pp_right_margin = page_info.width - 1; 590 pp_left_margin = 1; 591 end; 592 pp_number_of_chars = pp_right_margin - pp_left_margin + 1; 593 if pp_number_of_chars ^> 0 594 then call ssu_$abort_line (sci_ptr, rw_error_$bad_report_display, 595 "The specified character positions result in no characters being printed."); 596 pp_loop_limit = page_info.length - 1; 597 do pp_loop = 1 to pp_loop_limit; 598 pp_overstrike_index = ((pp_loop - 1) * page_info.width) + pp_left_margin; 599 pp_chunk_of_line_ptr = addr (page_defined_as_chars (pp_overstrike_index)); 600 if terminal_dependency 601 & index (substr (page_overstrike_info_redefined.bit_map, pp_overstrike_index, pp_number_of_chars), ON) ^= 0 602 then call make_terminal_dependent_string; 603 call ioa_$ioa_switch (report_control_info.display_iocb_ptr, 604 "^a", pp_chunk_of_line); 605 if terminal_dependency 606 then pp_number_of_chars = pp_right_margin - pp_left_margin + 1; 607 end; 608 pp_overstrike_index = (pp_loop_limit * page_info.width) + pp_left_margin; 609 pp_chunk_of_line_ptr = addr (page_defined_as_chars (pp_overstrike_index)); 610 if report_control_info.report_is_paginated | last_page_of_the_report 611 then pp_ioa_string = "^a^|"; 612 else pp_ioa_string = "^a^/"; 613 if terminal_dependency 614 & index (substr (page_overstrike_info_redefined.bit_map, pp_overstrike_index, pp_number_of_chars), ON) ^= 0 615 then call make_terminal_dependent_string; 616 call ioa_$ioa_switch_nnl (report_control_info.display_iocb_ptr, 617 pp_ioa_string, pp_chunk_of_line); 618 end; 619 620 if display_arg_results.time_flag 621 then do; 622 time2 = vclock; 623 report_control_info.report_display_time 624 = report_control_info.report_display_time + (time2 - time1); 625 end; 626 627 return; 628 629 make_terminal_dependent_string: proc; 630 631 dcl mtds_loop fixed bin; 632 dcl mtds_overstrike_index fixed bin; 633 634 spare_string = ""; 635 mtds_overstrike_index = pp_overstrike_index; 636 do mtds_loop = 1 to pp_number_of_chars; 637 spare_string = spare_string || substr (pp_chunk_of_line, mtds_loop, 1); 638 if page_overstrike_info.bit_map (mtds_overstrike_index) 639 then spare_string = spare_string 640 || BACKSPACE || page_overstrike_info.chars (mtds_overstrike_index); 641 mtds_overstrike_index = mtds_overstrike_index + 1; 642 end; 643 644 pp_number_of_chars = length (spare_string); 645 pp_chunk_of_line_ptr = addrel (addr (spare_string), 1); 646 647 return; 648 649 end make_terminal_dependent_string; 650 651 end print_page; 652 653 print_report: proc; 654 655 dcl pr_loop fixed bin (21); 656 dcl pr_loop_limit fixed bin (21); 657 658 report_control_info.report_display_time = 0; 659 660 if report_control_info.no_of_formatted_pages ^= 0 661 then do; 662 pr_loop_limit = report_control_info.no_of_formatted_pages; 663 do pr_loop = 1 to pr_loop_limit; 664 call get_page (pr_loop); 665 call print_page; 666 end; 667 end; 668 669 do while (^report_control_info.flags.report_is_formatted); 670 call format_page; 671 call print_page; 672 end; 673 674 if display_arg_results.flags.time_flag 675 then call ioa_$ioa_switch (iox_$error_output, 676 "Time used to display the report was ^10.5f seconds.", 677 report_control_info.report_display_time / 1000000); 678 679 return; 680 681 end print_report; 682 683 scroll_the_report: proc; 684 685 dcl str_still_looking_for_the_page bit (1) aligned; 686 687 scroll_ip = display_arg_results.scroll_info_ptr; 688 689 on display_buffer_empty begin; 690 if scroll_info.target_page_number <= report_control_info.no_of_formatted_pages 691 then call get_page (scroll_info.target_page_number); 692 else call format_page; 693 scroll_info.page_info_pointer = page_ip; 694 end; 695 696 do while (ON); 697 if scroll_info.flags.goto_line_number_pending 698 then call find_line_within_page; 699 else call find_page; 700 scroll_info.page_info_pointer = page_ip; 701 call rw_display_scroll$continue (scroll_ip, code); 702 if code ^= 0 703 then if code = error_table_$end_of_info 704 then return; 705 else call ssu_$abort_line (sci_ptr, code); 706 else; 707 end; 708 709 return; 710 711 check_for_end_of_report: proc; 712 713 scroll_info.flags.on_the_last_page = OFF; 714 715 if report_control_info.flags.report_is_formatted 716 then if scroll_info.target_page_number > report_control_info.no_of_formatted_pages 717 then do; 718 scroll_info.target_page_number = report_control_info.no_of_formatted_pages; 719 scroll_info.flags.on_the_last_page = ON; 720 end; 721 else; 722 else; 723 724 return; 725 726 end check_for_end_of_report; 727 728 find_line_within_page: proc; 729 730 dcl flwp_beginning_line_number fixed bin (35); 731 dcl flwp_ending_line_number fixed bin (35); 732 dcl flwp_line_number_is_beyond_end_of_report bit (1) aligned; 733 dcl flwp_still_looking_for_the_line bit (1) aligned; 734 735 scroll_info.flags.goto_line_number_pending = OFF; 736 flwp_still_looking_for_the_line = ON; 737 flwp_line_number_is_beyond_end_of_report = OFF; 738 scroll_info.target_page_number = 1; 739 flwp_beginning_line_number = 1; 740 741 do while (flwp_still_looking_for_the_line); 742 if scroll_info.target_page_number 743 <= report_control_info.no_of_formatted_pages 744 then call get_page (scroll_info.target_page_number); 745 else call format_page; 746 747 flwp_ending_line_number = flwp_beginning_line_number + page_info.length - 1; 748 if report_control_info.flags.report_is_formatted 749 then if scroll_info.target_page_number 750 = report_control_info.no_of_formatted_pages 751 then do; 752 scroll_info.flags.on_the_last_page = ON; 753 if scroll_info.target_line_number > flwp_ending_line_number 754 then flwp_line_number_is_beyond_end_of_report = ON; 755 end; 756 else; 757 else; 758 759 if (scroll_info.target_line_number >= flwp_beginning_line_number 760 & scroll_info.target_line_number <= flwp_ending_line_number) 761 | (flwp_line_number_is_beyond_end_of_report) 762 then flwp_still_looking_for_the_line = OFF; 763 else flwp_beginning_line_number = flwp_ending_line_number + 1; 764 765 if ^flwp_still_looking_for_the_line 766 then do; 767 if flwp_line_number_is_beyond_end_of_report 768 then scroll_info.target_line_number 769 = (flwp_ending_line_number - flwp_beginning_line_number) 770 - scroll_info.vertical_scroll_distance + 1; 771 else scroll_info.target_line_number 772 = scroll_info.target_line_number - flwp_beginning_line_number + 1; 773 end; 774 else scroll_info.target_page_number 775 = scroll_info.target_page_number + 1; 776 end; 777 778 return; 779 780 end find_line_within_page; 781 782 find_page: proc; 783 784 call check_for_end_of_report; 785 if scroll_info.target_page_number <= report_control_info.no_of_formatted_pages 786 then call get_page (scroll_info.target_page_number); 787 else do; 788 str_still_looking_for_the_page = ON; 789 do while (str_still_looking_for_the_page); 790 call format_page; 791 call check_for_end_of_report; 792 if scroll_info.target_page_number = report_control_info.no_of_formatted_pages 793 then str_still_looking_for_the_page = OFF; 794 end; 795 end; 796 797 return; 798 799 end find_page; 800 801 end scroll_the_report; 802 803 setup_io_switches: proc; 804 805 if display_arg_results.output_file_flag 806 then call setup_output_file; 807 else if display_arg_results.scroll_flag 808 then do; 809 call rw_display_scroll$start (sci_ptr, report_cip, 810 addr (display_arg_results), work_area_ptr); 811 video_has_been_set_up = ON; 812 end; 813 else if display_arg_results.output_switch_flag 814 then call setup_output_switch; 815 else report_control_info.display_iocb_ptr 816 = iox_$user_output; 817 818 return; 819 820 setup_output_file: proc; 821 822 switch_name = unique_chars_ ("0"b) || ".rw_display"; 823 if display_arg_results.truncate_flag 824 then attach_description = "vfile_ " 825 || rtrim (display_arg_results.output_file_directory_name) 826 || ">" || rtrim (display_arg_results.output_file_entry_name); 827 else attach_description = "vfile_ " 828 || rtrim (display_arg_results.output_file_directory_name) 829 || ">" || rtrim (display_arg_results.output_file_entry_name) 830 || " -extend"; 831 832 call iox_$attach_name (switch_name, iocb_ptr, attach_description, 833 null (), code); 834 if code ^= 0 835 then call ssu_$abort_line (sci_ptr, code, 836 "While trying to attach file ^a in dir ^a.", 837 rtrim (display_arg_results.output_file_entry_name), 838 rtrim (display_arg_results.output_file_directory_name)); 839 840 call iox_$open (iocb_ptr, Stream_output, "0"b, code); 841 if code ^= 0 842 then call ssu_$abort_line (sci_ptr, code, 843 "While trying to open 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 report_control_info.display_iocb_ptr = iocb_ptr; 848 849 return; 850 851 end setup_output_file; 852 853 setup_output_switch: proc; 854 855 call iox_$look_iocb (display_arg_results.output_switch_name, 856 report_control_info.display_iocb_ptr, code); 857 if code = error_table_$no_iocb 858 then call ssu_$abort_line (sci_ptr, rw_error_$bad_report_display, 859 BAD_OUTPUT_SWITCH_MESSAGE); 860 861 if report_control_info.display_iocb_ptr -> iocb.attach_descrip_ptr = null () 862 | report_control_info.display_iocb_ptr -> iocb.open_descrip_ptr = null () 863 then call ssu_$abort_line (sci_ptr, rw_error_$bad_report_display, 864 BAD_OUTPUT_SWITCH_MESSAGE); 865 866 return; 867 868 end setup_output_switch; 869 870 end setup_io_switches; 871 872 terminate: proc; 873 874 if display_arg_results.sort_information_ptr ^= null 875 then do; 876 sort_info_ptr = display_arg_results.sort_information_ptr; 877 free sort_info; 878 end; 879 880 if ^arguments_have_been_processed 881 then return; 882 883 /* Delete the table and report if instructed to do so. */ 884 885 if ^display_arg_results.keep_retrieval_flag 886 & report_control_info.flags.table_has_been_started 887 then call delete_table; 888 889 if ^display_arg_results.keep_report_flag 890 & report_control_info.flags.report_has_been_started 891 then call delete_report; 892 893 /* If we were writing the report to a file clean up. */ 894 895 if display_arg_results.output_file_flag 896 & (report_control_info.display_iocb_ptr ^= iox_$user_output 897 & report_control_info.display_iocb_ptr ^= null ()) 898 then do; 899 iocb_ptr = report_control_info.display_iocb_ptr; 900 call iox_$close (iocb_ptr, code); 901 call iox_$detach_iocb (iocb_ptr, code); 902 call iox_$destroy_iocb (iocb_ptr, code); 903 if cleanup_signalled & report_control_info.no_of_formatted_pages > 0 904 then call ssu_$print_message (sci_ptr, 0, 905 "The partial report is contained in ^/^a.", 906 rtrim (display_arg_results.output_file_directory_name) 907 || ">" || rtrim (display_arg_results.output_file_entry_name)); 908 else; 909 end; 910 else; 911 912 if display_arg_results.scroll_flag & video_has_been_set_up 913 then call rw_display_scroll$stop (display_arg_results.scroll_info_ptr); 914 if display_arg_results.scroll_info_ptr ^= null 915 then do; 916 scroll_ip = display_arg_results.scroll_info_ptr; 917 free scroll_info; 918 display_arg_results.scroll_info_ptr = null; 919 end; 920 921 return; 922 923 end terminate; 924 925 dcl BACKSPACE char (1) static int options (constant) init (""); 926 dcl BAD_OUTPUT_SWITCH_MESSAGE char (69) static int options (constant) init ( 927 "^/When -output_switch is used the switch must be opened and attached."); 928 dcl OFF bit (1) aligned static int options (constant) init ("0"b); 929 dcl ON bit (1) aligned static int options (constant) init ("1"b); 930 931 dcl addr builtin; 932 dcl addrel builtin; 933 dcl arguments_have_been_processed bit (1) aligned; 934 dcl attach_description char (256); 935 936 dcl cleanup condition; 937 dcl cleanup_signalled bit (1) aligned; 938 dcl code fixed bin (35); 939 940 dcl directory_name char (168); 941 dcl display_buffer_empty condition; 942 943 dcl entry_name char (32); 944 dcl error_table_$end_of_info fixed bin(35) ext static; 945 dcl error_table_$inconsistent fixed bin(35) ext static; 946 dcl error_table_$no_iocb fixed bin(35) ext static; 947 dcl error_table_$no_s_permission fixed bin(35) ext static; 948 dcl expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)); 949 950 dcl first_page_of_the_report bit (1) aligned; 951 952 dcl hcs_$status_long entry (char(*), char(*), fixed bin(1), ptr, ptr, fixed bin(35)); 953 954 dcl index builtin; 955 dcl ioa_$ioa_switch entry() options(variable); 956 dcl ioa_$ioa_switch_nnl entry() options(variable); 957 dcl iocb_ptr ptr; 958 959 dcl last_page_of_the_report bit (1) aligned; 960 dcl length builtin; 961 962 dcl null builtin; 963 964 dcl rtrim builtin; 965 dcl rw_display_process_args entry (ptr, ptr, ptr, ptr); 966 dcl rw_display_scroll$continue entry (ptr, fixed bin(35)); 967 dcl rw_display_scroll$start entry (ptr, ptr, ptr, ptr); 968 dcl rw_display_scroll$stop entry (ptr); 969 dcl rw_error_$bad_report_display fixed bin(35) ext static; 970 dcl rw_error_$no_columns_defined fixed bin(35) ext static; 971 dcl rw_fr_build_page entry (ptr, ptr, fixed bin(35)); 972 dcl rw_fr_delete_report entry (ptr, fixed bin(35)); 973 dcl rw_fr_get_page entry (ptr, fixed bin (21), ptr, fixed bin (35)); 974 dcl rw_fr_new_report entry (ptr, fixed bin(35)); 975 dcl rw_table_manager$delete_table entry (ptr, fixed bin (35)); 976 dcl rw_table_manager$load_table entry (ptr, fixed bin (35)); 977 dcl rw_table_manager$create_table entry (ptr, fixed bin (35)); 978 dcl rw_table_manager$sort entry (ptr, ptr, fixed bin (35)); 979 980 dcl sci_ptr ptr; 981 dcl spare_string char (MAXIMUM_OPTION_VALUE_LENGTH) varying; 982 dcl ssu_$abort_line entry() options(variable); 983 dcl ssu_$print_message entry() options(variable); 984 dcl substr builtin; 985 dcl switch_name char (42); 986 dcl sys_info$max_seg_size fixed bin(35) ext static; 987 988 dcl terminal_dependency bit (1) aligned; 989 dcl time1 float bin (63); 990 dcl time2 float bin (63); 991 992 dcl unique_chars_ entry (bit(*)) returns(char(15)); 993 994 dcl vclock builtin; 995 dcl video_has_been_set_up bit (1) aligned; 996 997 dcl work_area area (sys_info$max_seg_size) based (work_area_ptr); 998 dcl work_area_ptr ptr; 999 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 */ 1000 1001 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 */ 1002 1003 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 ..... */ 1004 1005 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 ---------------- */ 1006 1007 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 */ 1008 1009 6 1 /* BEGIN INCLUDE FILE rw_display_arg_list.incl.pl1 6 2* 6 3* Shared structure between the rw_display request and 6 4* its argument processor, rw_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 rw_display_arg_list.incl.pl1 */ 1010 1011 7 1 /* BEGIN INCLUDE FILE rw_options_extents.incl.pl1 7 2* 7 3* Extents for the formatting options used for producing reports. 7 4* Kept as a separate include so that some programs may include this 7 5* file without including rw_format_options.incl.pl1 7 6* 7 7* Al Dupuis - August 1983 7 8* 7 9**/ 7 10 /* format: off */ 7 11 7 12 /* The three types of format options that we have. */ 7 13 7 14 dcl GENERAL_REPORT_OPTION fixed bin static int options (constant) init (1); 7 15 dcl GENERAL_COLUMN_OPTION fixed bin static int options (constant) init (2); 7 16 dcl SPECIFIC_COLUMN_OPTION fixed bin static int options (constant) init (3); 7 17 7 18 /* Used to determine how big the tables are without doing a hbound on it. */ 7 19 7 20 dcl NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (15); 7 21 dcl NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE fixed bin static int options (constant) init (9); 7 22 dcl NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (6); 7 23 7 24 /* Used to determine how much space is needed to list them. */ 7 25 7 26 dcl LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (10); /* -alignment */ 7 27 dcl LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH fixed bin static int options (constant) init (25); /* -format_document_controls */ 7 28 dcl LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (21); /* -group_footer_trigger */ 7 29 7 30 /* MAXIMUM_OPTION_IDENTIFIER_LENGTH + MAXIMUM_OPTION_NAME_LENGTH */ 7 31 7 32 dcl MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH fixed bin static int options (constant) init (101); 7 33 7 34 dcl MAXIMUM_OPTION_IDENTIFIER_LENGTH fixed bin static int options (constant) init (69); 7 35 dcl MAXIMUM_OPTION_NAME_LENGTH fixed bin static int options (constant) init (32); 7 36 dcl MAXIMUM_OPTION_VALUE_LENGTH fixed bin static int options (constant) init (4096); 7 37 7 38 /* Used to index into the OPTIONS tables defined in rw_format_options.incl.pl1. */ 7 39 7 40 dcl INDEX_FOR_DELIMITER fixed bin static int options (constant) init (1); 7 41 dcl INDEX_FOR_FORMAT_DOCUMENT_CONTROLS fixed bin static int options (constant) init (2); 7 42 dcl INDEX_FOR_HYPHENATION fixed bin static int options (constant) init (3); 7 43 dcl INDEX_FOR_PAGE_FOOTER_VALUE fixed bin static int options (constant) init (4); 7 44 dcl INDEX_FOR_PAGE_HEADER_VALUE fixed bin static int options (constant) init (5); 7 45 dcl INDEX_FOR_PAGE_LENGTH fixed bin static int options (constant) init (6); 7 46 dcl INDEX_FOR_PAGE_WIDTH fixed bin static int options (constant) init (7); 7 47 dcl INDEX_FOR_TITLE_LINE fixed bin static int options (constant) init (8); 7 48 dcl INDEX_FOR_TRUNCATION fixed bin static int options (constant) init (9); 7 49 7 50 dcl INDEX_FOR_COLUMN_ORDER fixed bin static int options (constant) init (1); 7 51 dcl INDEX_FOR_COUNT fixed bin static int options (constant) init (2); 7 52 dcl INDEX_FOR_EXCLUDE fixed bin static int options (constant) init (3); 7 53 dcl INDEX_FOR_GROUP fixed bin static int options (constant) init (4); 7 54 dcl INDEX_FOR_GROUP_FOOTER_TRIGGER fixed bin static int options (constant) init (5); 7 55 dcl INDEX_FOR_GROUP_FOOTER_VALUE fixed bin static int options (constant) init (6); 7 56 dcl INDEX_FOR_GROUP_HEADER_TRIGGER fixed bin static int options (constant) init (7); 7 57 dcl INDEX_FOR_GROUP_HEADER_VALUE fixed bin static int options (constant) init (8); 7 58 dcl INDEX_FOR_OUTLINE fixed bin static int options (constant) init (9); 7 59 dcl INDEX_FOR_PAGE_BREAK fixed bin static int options (constant) init (10); 7 60 dcl INDEX_FOR_ROW_FOOTER_VALUE fixed bin static int options (constant) init (11); 7 61 dcl INDEX_FOR_ROW_HEADER_VALUE fixed bin static int options (constant) init (12); 7 62 dcl INDEX_FOR_SUBCOUNT fixed bin static int options (constant) init (13); 7 63 dcl INDEX_FOR_SUBTOTAL fixed bin static int options (constant) init (14); 7 64 dcl INDEX_FOR_TOTAL fixed bin static int options (constant) init (15); 7 65 7 66 dcl INDEX_FOR_ALIGNMENT fixed bin static int options (constant) init (1); 7 67 dcl INDEX_FOR_EDITING fixed bin static int options (constant) init (2); 7 68 dcl INDEX_FOR_FOLDING fixed bin static int options (constant) init (3); 7 69 dcl INDEX_FOR_SEPARATOR fixed bin static int options (constant) init (4); 7 70 dcl INDEX_FOR_TITLE fixed bin static int options (constant) init (5); 7 71 dcl INDEX_FOR_WIDTH fixed bin static int options (constant) init (6); 7 72 7 73 /* END INCLUDE FILE rw_options_extents */ 1012 1013 8 1 /* BEGIN INCLUDE FILE rw_page_info.incl.pl1 8 2* 8 3* Written - Al Dupuis - August 1983 8 4**/ 8 5 /* format: off */ 8 6 8 7 dcl 1 formatted_page_info aligned based (formatted_page_ip), 8 8 2 maximum_number_of_detail_blocks fixed bin, /* the most that can appear on a page */ 8 9 2 page_header_length fixed bin, /* page header in lines */ 8 10 2 title_block_length fixed bin, /* titles in lines */ 8 11 2 page_footer_length fixed bin, /* page footer in lines */ 8 12 2 number_of_detail_blocks fixed bin, 8 13 2 detail_blocks (fpi_init_maximum_number_of_detail_blocks 8 14 refer (formatted_page_info.maximum_number_of_detail_blocks)), 8 15 3 row_number fixed bin (35), /* position in the table */ 8 16 3 beginning_line_number fixed bin, /* beginning line on page */ 8 17 3 group_header_length fixed bin, /* group header length in lines */ 8 18 3 row_header_length fixed bin, /* row header in lines */ 8 19 3 row_length fixed bin, /* row value in lines */ 8 20 3 subtotal_length fixed bin, /* subtotal in lines */ 8 21 3 subcount_length fixed bin, /* subcount in lines */ 8 22 3 total_length fixed bin, /* total in lines */ 8 23 3 count_length fixed bin, /* count in lines */ 8 24 3 row_footer_length fixed bin, /* row footer in lines */ 8 25 3 group_footer_length fixed bin; /* group footer length in lines */ 8 26 dcl formatted_page_ip ptr; 8 27 dcl fpi_init_maximum_number_of_detail_blocks fixed bin; 8 28 8 29 dcl 1 page_info aligned based (page_ip), 8 30 2 width fixed bin, /* width in chars */ 8 31 2 length fixed bin, /* length in lines */ 8 32 2 total_characters fixed bin (21), /* width * length */ 8 33 2 page_info_size fixed bin, /* size of this structure in words */ 8 34 2 page_ptr ptr, /* points to the actual page */ 8 35 2 page_overstrike_info_ptr ptr, /* points to the overstrike info */ 8 36 2 formatted_page_info_ptr ptr; /* points to formatted_page_info */ 8 37 8 38 dcl page_defined_as_chars (page_info.total_characters) char (1) based (page_info.page_ptr); 8 39 dcl page_defined_as_lines (page_info.length) char (page_info.width) based (page_info.page_ptr); 8 40 dcl page_defined_as_a_string char (page_info.total_characters) based (page_info.page_ptr); 8 41 dcl page_ip ptr; 8 42 8 43 dcl 1 page_overstrike_info aligned based (page_overstrike_ip), 8 44 2 number_of_bits_or_chars fixed bin (21), /* number of chars in the page */ 8 45 2 bit_map (page_info.total_characters /* on means this char on the page is overstruck */ 8 46 refer (page_overstrike_info.number_of_bits_or_chars)) bit (1) unaligned, 8 47 2 chars (page_info.total_characters /* this is the overstrike character */ 8 48 refer (page_overstrike_info.number_of_bits_or_chars)) char (1) unaligned; 8 49 dcl page_overstrike_ip ptr; 8 50 8 51 dcl 1 page_overstrike_info_redefined aligned based (page_overstrike_ip), 8 52 2 number_of_bits_or_chars fixed bin (21), 8 53 2 bit_map bit (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned, 8 54 2 chars char (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned; 8 55 8 56 /* END INCLUDE FILE rw_page_info.incl.pl1 */ 1014 1015 9 1 /* BEGIN INCLUDE FILE rw_report_info.incl.pl1 9 2* Information needed to control the report environment. 9 3* Al Dupuis - August 1983 9 4**/ 9 5 /* format: off */ 9 6 9 7 dcl 1 report_control_info aligned based (report_cip), 9 8 2 flags, 9 9 3 report_is_paginated bit (1) unaligned, /* paged or one continous stream */ 9 10 3 table_has_been_started bit (1) unaligned, /* table clean up is necessary */ 9 11 3 table_is_full bit (1) unaligned, /* no more retrieves are necessary */ 9 12 3 report_has_been_started bit (1) unaligned, /* report clean up is necessary */ 9 13 3 report_is_formatted bit (1) unaligned, /* no more formatting is necessary */ 9 14 3 permanent_report bit (1) unaligned, /* or disposable */ 9 15 3 permanent_table bit (1) unaligned, /* or disposable */ 9 16 3 report_has_just_been_completed bit (1) unaligned, /* used for printing timers */ 9 17 3 table_has_just_been_loaded bit (1) unaligned, /* used for printing timers */ 9 18 3 multi_pass_mode bit (1) unaligned, /* on if we are to do more than 1 pass */ 9 19 3 available bit (26) unaligned, 9 20 2 format_options_flags, /* used to determine if value is default */ 9 21 3 general_report_default_value (NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE) bit (1) unaligned, 9 22 3 general_column_default_value (NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE) bit (1) unaligned, 9 23 2 value_seg_ptr ptr, /* the options value seg */ 9 24 2 table_information_ptr ptr, /* points to table_info */ 9 25 2 table_control_info_ptr ptr, /* points to table_control_info */ 9 26 2 row_value_temp_segment_ptr ptr, /* points to a segment for the row value */ 9 27 2 general_work_area_ptr ptr, /* a freeing work area */ 9 28 2 name_value_area_ptr ptr, /* area for name-value allocations */ 9 29 2 subsystem_control_info_ptr ptr, /* ptr for ssu_ info structure */ 9 30 2 subsystems_info_ptr ptr, /* points to subsystems info structure */ 9 31 2 name_value_temp_seg_ptr ptr, /* temp seg for name-value space */ 9 32 2 report_temp_seg_ptr ptr, /* report workspace */ 9 33 2 report_work_area_ptr ptr, /* report workspace */ 9 34 2 format_report_info_ptr ptr, /* info needed to create a report */ 9 35 2 input_string_temp_seg_ptr ptr, /* report workspace */ 9 36 2 output_string_temp_seg_ptr ptr, /* report workspace */ 9 37 2 editing_strings_temp_seg_ptr ptr, /* report workspace */ 9 38 2 headers_temp_seg_ptr ptr, /* report workspace */ 9 39 2 display_iocb_ptr ptr, /* report is displayed through this */ 9 40 2 area_info_ptr ptr, /* points to area_info structure */ 9 41 2 table_manager_delete_table_entry variable entry (ptr, fixed bin (35)), /* entry who deletes the table */ 9 42 2 table_manager_get_query_entry variable entry (ptr, ptr, fixed bin (21), fixed bin (35)), /* entry who gets the query */ 9 43 2 table_manager_get_row_entry variable entry (ptr, fixed bin (35)), /* entry who loads rows */ 9 44 2 table_manager_create_table_entry variable entry (ptr, fixed bin (35)), /* entry who makes a new table */ 9 45 2 options_identifier fixed bin, /* current set of options */ 9 46 2 report_identifier fixed bin, /* current report */ 9 47 2 no_of_rows_retrieved fixed bin (35), /* current no of rows */ 9 48 2 no_of_formatted_pages fixed bin (21), /* current no of pages */ 9 49 2 number_of_passes fixed bin, /* number of times report will be formatted */ 9 50 2 table_loading_time float bin (63), 9 51 2 table_sorting_time float bin (63), 9 52 2 table_deletion_time float bin (63), 9 53 2 report_setup_time float bin (63), 9 54 2 report_formatting_time float bin (63), 9 55 2 report_display_time float bin (63), 9 56 2 report_deletion_time float bin (63), 9 57 2 ssu_evaluate_active_string_time float bin (63), 9 58 2 temp_dir_unique_id bit (36), /* uid of temp dir */ 9 59 2 subsystems_ec_suffix char (32), /* suffix for saving and restoring ecs */ 9 60 2 temp_dir_name char (168) unaligned; /* the dir where we place the retrieved table and report */ 9 61 dcl report_cip ptr init (null ()); 9 62 9 63 /* END INCLUDE FILE rw_report_info.incl.pl1 */ 1016 1017 10 1 /* BEGIN INCLUDE FILE rw_scroll_info.incl.pl1 10 2* 10 3* Written - Al Dupuis - August 1983 10 4**/ 10 5 /* format: off */ 10 6 10 7 dcl 1 ESCAPE_KEYS aligned static internal options (constant), 10 8 2 FORWARD char (2) init ("f"), 10 9 2 BACKWARD char (2) init ("b"), 10 10 2 LEFT char (2) init ("l"), 10 11 2 RIGHT char (2) init ("r"), 10 12 2 HELP char (2) init ("?"), 10 13 2 SET_KEY char (2) init ("k"), 10 14 2 SET_SCROLL_INCREMENT char (2) init ("i"), 10 15 2 QUIT char (2) init ("q"), 10 16 2 REDISPLAY char (2) init ("d"), 10 17 2 START_OF_REPORT char (2) init ("s"), 10 18 2 END_OF_REPORT char (2) init ("e"), 10 19 2 MULTICS_MODE char (2) init ("m"), 10 20 2 GOTO char (2) init ("g"); 10 21 10 22 dcl ESCAPE_KEYS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (2) based (addr (ESCAPE_KEYS)); 10 23 10 24 dcl 1 ESCAPE_KEY_MNEMONICS aligned static internal options (constant), 10 25 2 FORWARD char (5) init ("esc-f"), 10 26 2 BACKWARD char (5) init ("esc-b"), 10 27 2 LEFT char (5) init ("esc-l"), 10 28 2 RIGHT char (5) init ("esc-r"), 10 29 2 HELP char (5) init ("esc-?"), 10 30 2 SET_KEY char (5) init ("esc-k"), 10 31 2 SET_SCROLL_INCREMENT char (5) init ("esc-i"), 10 32 2 QUIT char (5) init ("esc-q"), 10 33 2 REDISPLAY char (5) init ("esc-d"), 10 34 2 START_OF_REPORT char (5) init ("esc-s"), 10 35 2 END_OF_REPORT char (5) init ("esc-e"), 10 36 2 MULTICS_MODE char (5) init ("esc-m"), 10 37 2 GOTO char (5) init ("esc-g"); 10 38 10 39 dcl ESCAPE_KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (5) based (addr (ESCAPE_KEY_MNEMONICS)); 10 40 10 41 dcl 1 FUNCTION_NAMES aligned static internal options (constant), 10 42 2 FORWARD char (32) init ("forward"), 10 43 2 BACKWARD char (32) init ("backward"), 10 44 2 LEFT char (32) init ("left"), 10 45 2 RIGHT char (32) init ("right"), 10 46 2 HELP char (32) init ("help"), 10 47 2 SET_KEY char (32) init ("set_key"), 10 48 2 SET_SCROLL_INCREMENT char (32) init ("set_scroll_increment"), 10 49 2 QUIT char (32) init ("quit"), 10 50 2 REDISPLAY char (32) init ("redisplay"), 10 51 2 START_OF_REPORT char (32) init ("start_of_report"), 10 52 2 END_OF_REPORT char (32) init ("end_of_report"), 10 53 2 MULTICS_MODE char (32) init ("multics_mode"), 10 54 2 GOTO char (32) init ("goto"); 10 55 10 56 dcl FUNCTION_NAMES_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (FUNCTION_NAMES)); 10 57 10 58 dcl HIGHEST_DISPLAY_FUNCTION_NUMBER fixed bin static int options (constant) init (13); 10 59 10 60 dcl HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED fixed bin static int options (constant) init (9); 10 61 10 62 dcl 1 KEY_MNEMONICS aligned static internal options (constant), 10 63 2 FORWARD char (12) init ("down_arrow"), 10 64 2 BACKWARD char (12) init ("up_arrow"), 10 65 2 LEFT char (12) init ("left_arrow"), 10 66 2 RIGHT char (12) init ("right_arrow"), 10 67 2 HELP char (12) init ("f1"), 10 68 2 SET_KEY char (12) init ("f2"), 10 69 2 SET_SCROLL_INCREMENT char (12) init ("f3"), 10 70 2 QUIT char (12) init ("f4"), 10 71 2 REDISPLAY char (12) init ("f5"), 10 72 2 START_OF_REPORT char (12) init ("f6"), 10 73 2 END_OF_REPORT char (12) init ("f7"), 10 74 2 MULTICS_MODE char (12) init ("f8"), 10 75 2 GOTO char (12) init ("f9"); 10 76 10 77 dcl KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (12) based (addr (KEY_MNEMONICS)); 10 78 10 79 dcl 1 function_key_info aligned, 10 80 2 forward char (32), /* down arrow or esc-f */ 10 81 2 backward char (32), /* up arrow or esc-b */ 10 82 2 left char (32), /* left arrow or esc-l */ 10 83 2 right char (32), /* right arrow or esc-r */ 10 84 2 help char (32), /* F1 or esc-? */ 10 85 2 set_key char (32), /* F2 or esc-k */ 10 86 2 set_scroll_increment char (32), /* F3 or esc-i */ 10 87 2 quit char (32), /* F4 or esc-q */ 10 88 2 redisplay char (32), /* F5 or esc-d */ 10 89 2 start_of_report char (32), /* F6 or esc-s */ 10 90 2 end_of_report char (32), /* F7 or esc-e */ 10 91 2 multics_mode char (32), /* F8 or esc-m */ 10 92 2 goto char (32); /* F9 or esc-g */ 10 93 10 94 dcl keys_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) char (32) based (addr (scroll_info.keys)); 10 95 10 96 dcl mnemonic_key_sequences_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (scroll_info.mnemonic_key_sequences)); 10 97 10 98 dcl 1 scroll_info aligned based (scroll_ip), 10 99 2 flags, 10 100 3 video_was_already_on bit (1) unaligned, 10 101 3 user_io_was_shrunk bit (1) unaligned, 10 102 3 escapes_in_use bit (1) unaligned, 10 103 3 on_the_last_page bit (1) unaligned, 10 104 3 buffer_boundary_just_crossed bit (1) unaligned, 10 105 3 goto_line_number_pending bit (1) unaligned, 10 106 3 available bit (30) unaligned, 10 107 2 number_of_lines_for_report_display fixed bin, 10 108 2 target_page_number fixed bin (21), 10 109 2 target_line_number fixed bin (35), 10 110 2 left_vertical_position fixed bin, 10 111 2 top_margin_offset fixed bin, 10 112 2 horizontal_scroll_distance fixed bin, 10 113 2 vertical_scroll_distance fixed bin, 10 114 2 last_line_number_in_previous_buffer fixed bin, 10 115 2 user_io_window_position_info_ptr ptr, 10 116 2 report_output_window_position_info_ptr ptr, 10 117 2 display_arg_results_ptr ptr, 10 118 2 area_ptr ptr, 10 119 2 report_control_info_ptr ptr, 10 120 2 function_key_data_pointer ptr, 10 121 2 window_status_info_pointer ptr, 10 122 2 page_info_pointer ptr, 10 123 2 ssu_info_ptr ptr, 10 124 2 format_document_op ptr, 10 125 2 keys like function_key_info, 10 126 2 mnemonic_key_sequences like function_key_info; 10 127 10 128 dcl scroll_ip ptr; 10 129 10 130 /* END INCLUDE FILE rw_scroll_info.incl.pl1 */ 1018 1019 11 1 /* BEGIN INCLUDE FILE ... rw_sort_info.incl.pl1 11 2* 11 3* Info structure used to provide sorting. 11 4* Written: Dave Schimke 2/25/83 11 5**/ 11 6 11 7 dcl 1 sort_info based (sort_info_ptr), 11 8 2 number_of_columns_to_sort fixed bin (17), 11 9 2 columns (no_of_candidate_columns refer(sort_info.number_of_columns_to_sort)), 11 10 3 number fixed bin (17), 11 11 3 modes, 11 12 4 descending bit (1) unal, 11 13 4 non_case_sensitive bit (1) unal, 11 14 4 mbz1 bit(34) unal; 11 15 11 16 dcl sort_info_ptr ptr; 11 17 dcl no_of_candidate_columns fixed bin; 11 18 11 19 11 20 /* END INCLUDE FILE rw_sort_info.incl.pl1 */ 1020 1021 12 1 /* BEGIN INCLUDE FILE rw_table_info.incl.pl1 12 2* 12 3* Written - Al Dupuis 12 4**/ 12 5 /* format: off */ 12 6 12 7 dcl 1 table_info aligned based (table_ip), 12 8 2 version char (8), 12 9 2 column_count fixed bin, 12 10 2 maximum_column_name_length fixed bin, 12 11 2 maximum_column_value_length fixed bin, 12 12 2 row_value_length fixed bin (21), 12 13 2 row_value_ptr ptr, 12 14 2 columns (ti_init_column_count refer (table_info.column_count)), 12 15 3 column_name char (69) varying, 12 16 3 column_data_type bit (36), 12 17 3 column_length fixed bin (21), 12 18 3 column_index fixed bin (21); 12 19 12 20 dcl table_ip ptr; 12 21 dcl ti_init_column_count fixed bin; 12 22 dcl TABLE_INFO_VERSION_1 char (8) internal static options (constant) init ("rwti_001"); 12 23 12 24 /* END INCLUDE FILE view_master_table_info.incl.pl1 */ 1022 1023 13 1 /* BEGIN INCLUDE FILE rw_table_control_info.incl.pl1 13 2* 13 3* Written - Al Dupuis 13 4**/ 13 5 /* format: off */ 13 6 13 7 dcl 1 row_ptrs aligned based (row_ptrs_ptr), 13 8 2 number_of_ptrs_in_this_segment fixed bin (21), 13 9 2 row_value_ptr (row_ptrs.number_of_ptrs_in_this_segment) ptr unaligned; 13 10 13 11 dcl 1 table_control_info aligned based (table_control_ip), 13 12 2 row_count fixed bin (35), 13 13 2 number_of_components fixed bin, 13 14 2 maximum_number_of_rows_per_segment fixed bin (21), 13 15 2 current_segment_row_count fixed bin (21), 13 16 2 table_information_ptr ptr, 13 17 2 table_segments_info_ptr ptr, 13 18 2 msf_file_control_block_ptr ptr, 13 19 2 current_component_ptr ptr, 13 20 2 general_work_area_ptr ptr, 13 21 2 temp_seg_info_ptr ptr, 13 22 2 subsystem_control_info_ptr ptr, 13 23 2 msf_file_name char (32) unaligned, 13 24 2 msf_directory_name char (168) unaligned; 13 25 13 26 dcl 1 table_segments_info aligned based (table_segments_ip), 13 27 2 maximum_number_of_segments fixed bin, 13 28 2 maximum_number_of_ptrs_per_segment fixed bin (21), 13 29 2 current_number_of_segments fixed bin, 13 30 2 segment_ptrs (tsi_init_maximum_number_of_segments refer 13 31 (table_segments_info.maximum_number_of_segments)) ptr; 13 32 13 33 dcl row_ptrs_ptr ptr; 13 34 dcl table_segments_ip ptr; 13 35 dcl table_control_ip ptr; 13 36 dcl tsi_init_maximum_number_of_segments fixed bin (21); 13 37 13 38 /* END INCLUDE FILE rw_table_control_info.incl.pl1 */ 1024 1025 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 ---------------- */ 1026 1027 end rw_display; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/16/84 1107.0 rw_display.pl1 >special_ldd>online>7001-11/16/84>rw_display.pl1 1000 1 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 1002 2 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 1004 3 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 1006 4 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 1008 5 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 1010 6 11/16/84 1107.7 rw_display_arg_list.incl.pl1 >special_ldd>online>7001-11/16/84>rw_display_arg_list.incl.pl1 1012 7 11/16/84 1107.8 rw_options_extents.incl.pl1 >special_ldd>online>7001-11/16/84>rw_options_extents.incl.pl1 1014 8 11/16/84 1107.8 rw_page_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_page_info.incl.pl1 1016 9 11/16/84 1107.6 rw_report_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_report_info.incl.pl1 1018 10 11/16/84 1107.9 rw_scroll_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_scroll_info.incl.pl1 1020 11 11/16/84 1107.9 rw_sort_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_sort_info.incl.pl1 1022 12 11/16/84 1107.6 rw_table_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_table_info.incl.pl1 1024 13 11/16/84 1107.6 rw_table_control_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_table_control_info.incl.pl1 1026 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 006436 constant char(1) initial unaligned dcl 925 ref 638 BAD_OUTPUT_SWITCH_MESSAGE 000000 constant char(69) initial unaligned dcl 926 set ref 857* 861* MAXIMUM_OPTION_VALUE_LENGTH constant fixed bin(17,0) initial dcl 7-36 ref 981 NUMBER_OF_ALLOWED_SPECIFIED_PAGES constant fixed bin(17,0) initial dcl 6-49 ref 6-10 515 NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 7-20 ref 103 104 115 115 117 118 119 120 137 144 159 160 186 187 237 237 283 285 288 310 338 339 359 359 368 368 380 387 403 444 450 452 467 467 469 480 499 506 521 527 530 538 563 573 603 616 623 623 658 660 662 674 690 715 718 742 748 785 792 815 847 855 861 861 895 895 899 903 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 7-21 ref 103 104 115 115 117 118 119 120 137 144 159 160 186 187 237 237 283 285 288 310 338 339 359 359 368 368 380 387 403 444 450 452 467 467 469 480 499 506 521 527 530 538 563 573 603 616 623 623 658 660 662 674 690 715 718 742 748 785 792 815 847 855 861 861 895 895 899 903 OFF constant bit(1) initial dcl 928 ref 63 64 94 113 114 131 142 143 171 198 295 312 367 379 401 406 413 451 515 521 713 735 737 759 792 ON constant bit(1) initial dcl 929 ref 67 74 91 112 128 132 225 245 309 399 403 410 479 502 515 600 613 696 719 736 752 753 788 811 Stream_output 000064 constant fixed bin(17,0) initial dcl 5-15 set ref 840* addr builtin function dcl 931 ref 72 72 500 599 609 645 809 809 addrel builtin function dcl 932 ref 645 arguments_have_been_processed 000100 automatic bit(1) dcl 933 set ref 63* 74* 880 attach_descrip_ptr 14 based pointer level 2 dcl 3-6 ref 861 attach_description 000101 automatic char(256) unaligned dcl 934 set ref 823* 827* 832* bit_map 1 based bit level 2 in structure "page_overstrike_info_redefined" packed unaligned dcl 8-51 in procedure "rw_display" ref 600 613 bit_map 1 based bit(1) array level 2 in structure "page_overstrike_info" packed unaligned dcl 8-43 in procedure "rw_display" ref 638 character_positions_flag 1 000332 automatic bit(1) level 3 dcl 6-10 set ref 571 579 chars based char(1) array level 2 packed unaligned dcl 8-43 ref 638 cleanup 000202 stack reference condition dcl 936 ref 66 cleanup_signalled 000210 automatic bit(1) dcl 937 set ref 64* 67* 165 192 903 code 000211 automatic fixed bin(35,0) dcl 938 set ref 99* 109 109* 135* 139 139* 155* 165 165* 168* 182* 192 192* 195* 268* 270 270* 274* 276 276 276* 333* 343 343* 355* 362 362* 423* 424 424* 463* 473 473 476* 701* 702 702 705* 832* 834 834* 840* 841 841* 855* 857 900* 901* 902* directory_name 000212 automatic char(168) unaligned dcl 940 set ref 268* 274* display_arg_results 000332 automatic structure level 1 dcl 6-10 set ref 72 72 809 809 display_buffer_empty 000000 stack reference condition dcl 941 ref 689 display_iocb_ptr based pointer level 2 dcl 9-7 set ref 563* 573* 603* 616* 815* 847* 855* 861 861 895 895 899 entry_name 000264 automatic char(32) unaligned dcl 943 set ref 268* 274* error_table_$end_of_info 000010 external static fixed bin(35,0) dcl 944 ref 473 702 error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 945 set ref 304* error_table_$no_iocb 000014 external static fixed bin(35,0) dcl 946 ref 857 error_table_$no_s_permission 000016 external static fixed bin(35,0) dcl 947 ref 276 expand_pathname_ 000020 constant entry external dcl 948 ref 268 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 950 set ref 399* 401* 563 flags 000332 automatic structure level 2 in structure "display_arg_results" dcl 6-10 in procedure "rw_display" flags based structure level 2 in structure "report_control_info" dcl 9-7 in procedure "rw_display" flags based structure level 2 in structure "scroll_info" dcl 10-98 in procedure "rw_display" flwp_beginning_line_number 000124 automatic fixed bin(35,0) dcl 730 set ref 739* 747 759 763* 767 771 flwp_ending_line_number 000125 automatic fixed bin(35,0) dcl 731 set ref 747* 753 759 763 767 flwp_line_number_is_beyond_end_of_report 000126 automatic bit(1) dcl 732 set ref 737* 753* 759 767 flwp_still_looking_for_the_line 000127 automatic bit(1) dcl 733 set ref 736* 741 759* 765 fpgpep_page_number_parm parameter fixed bin(21,0) dcl 397 ref 393 399 403 function_key_info 000340 automatic structure level 1 dcl 10-79 general_work_area_ptr based pointer level 2 dcl 9-7 ref 450 goto_line_number_pending 0(05) based bit(1) level 3 packed unaligned dcl 10-98 set ref 697 735* hcs_$status_long 000022 constant entry external dcl 952 ref 274 index builtin function dcl 954 ref 515 600 613 ioa_$ioa_switch 000024 constant entry external dcl 955 ref 104 160 187 339 368 380 469 538 603 674 ioa_$ioa_switch_nnl 000026 constant entry external dcl 956 ref 563 616 iocb based structure level 1 dcl 3-6 iocb_ptr 000276 automatic pointer dcl 957 set ref 832* 840* 847 899* 900* 901* 902* iox_$attach_name 000072 constant entry external dcl 4-8 ref 832 iox_$close 000074 constant entry external dcl 4-8 ref 900 iox_$destroy_iocb 000076 constant entry external dcl 4-8 ref 902 iox_$detach_iocb 000100 constant entry external dcl 4-8 ref 901 iox_$error_output 000112 external static pointer dcl 4-41 set ref 104* 160* 187* 339* 368* 380* 469* 538* 674* iox_$look_iocb 000102 constant entry external dcl 4-8 ref 855 iox_$open 000104 constant entry external dcl 4-8 ref 840 iox_$put_chars 000106 constant entry external dcl 4-8 ref 573 iox_$user_output 000110 external static pointer dcl 4-41 ref 815 895 keep_report_flag 3 000332 automatic bit(1) level 3 dcl 6-10 set ref 91 889 keep_retrieval_flag 4 000332 automatic bit(1) level 3 dcl 6-10 set ref 128 885 last_page_flag 14 000332 automatic bit(1) level 3 dcl 6-10 set ref 515 527 last_page_of_the_report 000300 automatic bit(1) dcl 959 set ref 403* 406* 610 left_margin_position 252 000332 automatic fixed bin(17,0) level 3 dcl 6-10 set ref 582 length builtin function dcl 960 in procedure "rw_display" ref 644 length 1 based fixed bin(17,0) level 2 in structure "page_info" dcl 8-29 in procedure "rw_display" ref 596 747 long 4 based structure level 2 dcl 14-8 long_flag 5 000332 automatic bit(1) level 3 dcl 6-10 set ref 222 242 291 miscellaneous 252 000332 automatic structure level 2 dcl 6-10 mtds_loop 000632 automatic fixed bin(17,0) dcl 631 set ref 636* 637* mtds_overstrike_index 000633 automatic fixed bin(17,0) dcl 632 set ref 635* 638 638 641* 641 multi_pass_mode 0(09) based bit(1) level 3 packed unaligned dcl 9-7 set ref 309* 312* new_report_flag 6 000332 automatic bit(1) level 3 dcl 6-10 set ref 235 245* 251 280 304 320 530 new_retrieval_flag 7 000332 automatic bit(1) level 3 dcl 6-10 set ref 218 225* 231 237 280 317 no_of_formatted_pages based fixed bin(21,0) level 2 dcl 9-7 set ref 117* 387* 403 506 521 527 530* 660 662 690 715 718 742 748 785 792 903 no_of_rows_retrieved based fixed bin(35,0) level 2 dcl 9-7 set ref 144* 480* null builtin function dcl 962 ref 9-61 274 274 408 439 440 445 832 832 861 861 874 895 914 918 number_of_bits_or_chars based fixed bin(21,0) level 2 in structure "page_overstrike_info_redefined" dcl 8-51 in procedure "rw_display" ref 600 613 number_of_bits_or_chars based fixed bin(21,0) level 2 in structure "page_overstrike_info" dcl 8-43 in procedure "rw_display" ref 638 number_of_columns_to_sort based fixed bin(17,0) level 2 dcl 11-7 ref 877 number_of_passes 254 000332 automatic fixed bin(17,0) level 3 in structure "display_arg_results" dcl 6-10 in procedure "rw_display" set ref 310 number_of_passes based fixed bin(17,0) level 2 in structure "report_control_info" dcl 9-7 in procedure "rw_display" set ref 310* on_the_last_page 0(03) based bit(1) level 3 packed unaligned dcl 10-98 set ref 713* 719* 752* open_descrip_ptr 20 based pointer level 2 dcl 3-6 ref 861 options_identifier based fixed bin(17,0) level 2 dcl 9-7 ref 115 237 output_file_directory_name 33 000332 automatic char(168) level 3 packed unaligned dcl 6-10 set ref 823 827 834 834 841 841 903 output_file_entry_name 105 000332 automatic char(32) level 3 packed unaligned dcl 6-10 set ref 823 827 834 834 841 841 903 output_file_flag 10 000332 automatic bit(1) level 3 dcl 6-10 set ref 563 805 895 output_switch_flag 11 000332 automatic bit(1) level 3 dcl 6-10 set ref 813 output_switch_name 23 000332 automatic char(32) level 3 packed unaligned dcl 6-10 set ref 855* page_defined_as_chars based char(1) array unaligned dcl 8-38 set ref 599 609 page_info based structure level 1 dcl 8-29 page_info_pointer 30 based pointer level 2 dcl 10-98 set ref 693* 700* page_ip 000332 automatic pointer dcl 8-41 set ref 355* 408 411 423* 573 573 585 585 589 596 598 599 608 609 693 700 747 page_overstrike_info based structure level 1 dcl 8-43 page_overstrike_info_ptr 6 based pointer level 2 dcl 8-29 ref 408 411 page_overstrike_info_redefined based structure level 1 dcl 8-51 page_overstrike_ip 000334 automatic pointer dcl 8-49 set ref 411* 600 600 613 613 638 638 page_ptr 4 based pointer level 2 dcl 8-29 set ref 573* 599 609 pages_flag 13 000332 automatic bit(1) level 3 dcl 6-10 set ref 81 passes_flag 22 000332 automatic bit(1) level 3 dcl 6-10 set ref 304 pathnames 23 000332 automatic structure level 2 dcl 6-10 permanent_report 0(05) based bit(1) level 3 packed unaligned dcl 9-7 set ref 91* 94* permanent_table 0(06) based bit(1) level 3 packed unaligned dcl 9-7 set ref 128* 131* pp_chunk_of_line based char unaligned dcl 549 set ref 603* 616* 637 pp_chunk_of_line_ptr 000610 automatic pointer dcl 550 set ref 599* 603 609* 616 637 645* pp_code 000612 automatic fixed bin(35,0) dcl 551 set ref 573* 575 575* pp_ioa_string 000613 automatic char(4) unaligned dcl 552 set ref 610* 612* 616* pp_left_margin 000614 automatic fixed bin(17,0) dcl 553 set ref 582* 583 583* 590* 592 598 605 608 pp_loop 000615 automatic fixed bin(17,0) dcl 554 set ref 597* 598* pp_loop_limit 000616 automatic fixed bin(17,0) dcl 555 set ref 596* 597 608 pp_number_of_chars 000617 automatic fixed bin(17,0) dcl 556 set ref 592* 593 600 603 603 605* 613 616 616 636 637 644* pp_overstrike_index 000620 automatic fixed bin(17,0) dcl 557 set ref 598* 599 600 608* 609 613 635 pp_right_margin 000621 automatic fixed bin(17,0) dcl 558 set ref 581* 585 585* 589* 592 605 pr_loop 000644 automatic fixed bin(21,0) dcl 655 set ref 663* 664* pr_loop_limit 000645 automatic fixed bin(21,0) dcl 656 set ref 662* 663 ptr_current_page_number 000574 automatic fixed bin(21,0) dcl 488 set ref 501* 506 508 508* 512 515 518* 518 519* 519 521 ptr_specified_pages_as_a_string based bit unaligned dcl 489 ref 515 ptr_specified_pages_as_a_string_ptr 000576 automatic pointer dcl 490 set ref 500* 515 ptr_still_paging 000600 automatic bit(1) dcl 491 set ref 502* 504 515* 521* report_cip 000336 automatic pointer initial dcl 9-61 set ref 72* 9-61* 91 94 99* 103 104 112 113 114 115 115 117 118 119 120 128 131 132 135* 137 142 143 144 155* 159 160 171 182* 186 187 198 220 231 237 237 237 251 283 285 288 309 310 312 329 333* 338 339 355* 359 359 365 367 368 368 377 379 380 387 403 403 423* 437* 444 450 452 463* 467 467 469 479 480 493 499 506 521 521 527 530 538 563 563 573 603 610 616 623 623 658 660 662 669 674 690 715 715 718 742 748 748 785 792 809* 815 847 855 861 861 885 889 895 895 899 903 report_cip_parm parameter pointer dcl 37 ref 31 437 report_control_info based structure level 1 dcl 9-7 report_deletion_time based float bin(63) level 2 dcl 9-7 set ref 159* 160 report_display_time based float bin(63) level 2 dcl 9-7 set ref 119* 499* 538 623* 623 658* 674 report_formatting_time based float bin(63) level 2 dcl 9-7 set ref 118* 359* 359 368 report_has_been_started 0(03) based bit(1) level 3 packed unaligned dcl 9-7 set ref 112* 171* 237 251 889 report_has_just_been_completed 0(07) based bit(1) level 3 packed unaligned dcl 9-7 set ref 114* 365 367* report_identifier based fixed bin(17,0) level 2 dcl 9-7 set ref 115* 237 report_is_formatted 0(04) based bit(1) level 3 packed unaligned dcl 9-7 set ref 113* 403 521 669 715 748 report_is_paginated based bit(1) level 3 packed unaligned dcl 9-7 ref 493 563 610 report_setup_time based float bin(63) level 2 dcl 9-7 set ref 103* 104 right_margin_position 253 000332 automatic fixed bin(17,0) level 3 dcl 6-10 set ref 581 row_count based fixed bin(35,0) level 2 dcl 13-11 ref 144 480 rtrim builtin function dcl 964 ref 291 291 823 823 827 827 834 834 834 834 841 841 841 841 903 903 rw_display_process_args 000030 constant entry external dcl 965 ref 72 rw_display_scroll$continue 000032 constant entry external dcl 966 ref 701 rw_display_scroll$start 000034 constant entry external dcl 967 ref 809 rw_display_scroll$stop 000036 constant entry external dcl 968 ref 912 rw_error_$bad_report_display 000040 external static fixed bin(35,0) dcl 969 set ref 593* 857* 861* rw_error_$no_columns_defined 000042 external static fixed bin(35,0) dcl 970 set ref 445* rw_fr_build_page 000044 constant entry external dcl 971 ref 355 rw_fr_delete_report 000046 constant entry external dcl 972 ref 155 rw_fr_get_page 000050 constant entry external dcl 973 ref 423 rw_fr_new_report 000052 constant entry external dcl 974 ref 99 rw_table_manager$create_table 000060 constant entry external dcl 977 ref 135 rw_table_manager$delete_table 000054 constant entry external dcl 975 ref 182 rw_table_manager$load_table 000056 constant entry external dcl 976 ref 463 rw_table_manager$sort 000062 constant entry external dcl 978 ref 333 sci_ptr 000302 automatic pointer dcl 980 set ref 109* 139* 165* 168* 192* 195* 222* 242* 270* 276* 291* 304* 343* 362* 424* 436* 445* 476* 575* 593* 705* 809* 834* 841* 857* 861* 903* sci_ptr_parm parameter pointer dcl 38 ref 31 436 scroll_flag 15 000332 automatic bit(1) level 3 dcl 6-10 set ref 79 91 807 912 scroll_info based structure level 1 dcl 10-98 set ref 917 scroll_info_ptr 260 000332 automatic pointer level 3 dcl 6-10 set ref 440* 687 912* 914 916 918* scroll_ip 000510 automatic pointer dcl 10-128 set ref 687* 690 690 693 697 700 701* 713 715 718 719 735 738 742 742 748 752 753 759 759 767 767 771 771 774 774 785 785 792 916* 917 sort_flag 16 000332 automatic bit(1) level 3 dcl 6-10 set ref 128 327 sort_info based structure level 1 unaligned dcl 11-7 ref 877 sort_info_ptr 000512 automatic pointer dcl 11-16 set ref 876* 877 sort_information_ptr 256 000332 automatic pointer level 3 dcl 6-10 set ref 333* 439* 874 876 spare_string 000304 automatic varying char dcl 981 set ref 634* 637* 637 638* 638 644 645 specified_pages 262 000332 automatic bit(1) array level 3 packed unaligned dcl 6-10 set ref 500 508 512 527 ssu_$abort_line 000064 constant entry external dcl 982 ref 109 139 168 195 270 276 304 343 362 424 445 476 575 593 705 834 841 857 861 ssu_$print_message 000066 constant entry external dcl 983 ref 165 192 222 242 291 903 ssu_evaluate_active_string_time based float bin(63) level 2 dcl 9-7 set ref 120* 368 status_branch based structure level 1 dcl 14-8 ref 267 status_ptr 000520 automatic pointer dcl 14-47 set ref 267* 274* 285 288 str_still_looking_for_the_page 000100 automatic bit(1) dcl 685 set ref 788* 789 792* substr builtin function dcl 984 ref 515 600 613 637 switch_name 000304 automatic char(42) unaligned dcl 985 set ref 822* 832* table_control_info based structure level 1 dcl 13-11 table_control_info_ptr based pointer level 2 dcl 9-7 ref 452 table_control_ip 000516 automatic pointer dcl 13-35 set ref 144 452* 480 table_deletion_time based float bin(63) level 2 dcl 9-7 set ref 186* 187 table_has_been_started 0(01) based bit(1) level 3 packed unaligned dcl 9-7 set ref 132* 198* 220 231 885 table_has_just_been_loaded 0(08) based bit(1) level 3 packed unaligned dcl 9-7 set ref 143* 377 379* table_information_ptr based pointer level 2 dcl 9-7 ref 444 table_ip 000514 automatic pointer dcl 12-20 set ref 72* 444* 445 table_is_full 0(02) based bit(1) level 3 packed unaligned dcl 9-7 set ref 142* 329 479* table_loading_time based float bin(63) level 2 dcl 9-7 set ref 137* 380 467* 467 469 table_sorting_time based float bin(63) level 2 dcl 9-7 set ref 338* 339 target_line_number 3 based fixed bin(35,0) level 2 dcl 10-98 set ref 753 759 759 767* 771* 771 target_page_number 2 based fixed bin(21,0) level 2 dcl 10-98 set ref 690 690* 715 718* 738* 742 742* 748 774* 774 785 785* 792 target_page_parm parameter fixed bin(21,0) dcl 421 set ref 419 423* 424* 428* temp_dir_flag 17 000332 automatic bit(1) level 3 dcl 6-10 set ref 265 295* temp_dir_name based char(168) level 2 packed unaligned dcl 9-7 set ref 283* temp_dir_pathname 167 000332 automatic char(168) level 3 packed unaligned dcl 6-10 set ref 268* 270* 276* 283 291 291 temp_dir_unique_id based bit(36) level 2 dcl 9-7 set ref 285* 288 terminal_dependency 000317 automatic bit(1) dcl 988 set ref 410* 413* 571 600 605 613 time1 000320 automatic float bin(63) dcl 989 set ref 96* 103 134* 137 152* 159 179* 186 331* 338 353* 359 460* 467 560* 623 time2 000322 automatic float bin(63) dcl 990 set ref 102* 103 136* 137 158* 159 185* 186 337* 338 358* 359 466* 467 622* 623 time_flag 20 000332 automatic bit(1) level 3 dcl 6-10 set ref 96 100 152 156 179 183 331 335 353 356 368 380 460 464 538 560 620 674 total_characters 2 based fixed bin(21,0) level 2 dcl 8-29 set ref 573* truncate_flag 12 000332 automatic bit(1) level 3 dcl 6-10 set ref 823 uid 11 based bit(36) level 3 packed unaligned dcl 14-8 ref 285 288 unique_chars_ 000070 constant entry external dcl 992 ref 822 vclock builtin function dcl 994 ref 96 102 134 136 152 158 179 185 331 337 353 358 460 466 560 622 vertical_scroll_distance 7 based fixed bin(17,0) level 2 dcl 10-98 ref 767 video_has_been_set_up 000324 automatic bit(1) dcl 995 set ref 451* 811* 912 width based fixed bin(17,0) level 2 dcl 8-29 ref 585 585 589 598 608 work_area based area dcl 997 ref 267 work_area_ptr 000326 automatic pointer dcl 998 set ref 72* 267 450* 809* 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 10-7 ESCAPE_KEYS_AS_A_TABLE based char(2) array dcl 10-22 ESCAPE_KEY_MNEMONICS internal static structure level 1 dcl 10-24 ESCAPE_KEY_MNEMONICS_AS_A_TABLE based char(5) array dcl 10-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 10-41 FUNCTION_NAMES_AS_A_TABLE based char(32) array dcl 10-56 GENERAL_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 7-15 GENERAL_REPORT_OPTION internal static fixed bin(17,0) initial dcl 7-14 HIGHEST_DISPLAY_FUNCTION_NUMBER internal static fixed bin(17,0) initial dcl 10-58 HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED internal static fixed bin(17,0) initial dcl 10-60 INDEX_FOR_ALIGNMENT internal static fixed bin(17,0) initial dcl 7-66 INDEX_FOR_COLUMN_ORDER internal static fixed bin(17,0) initial dcl 7-50 INDEX_FOR_COUNT internal static fixed bin(17,0) initial dcl 7-51 INDEX_FOR_DELIMITER internal static fixed bin(17,0) initial dcl 7-40 INDEX_FOR_EDITING internal static fixed bin(17,0) initial dcl 7-67 INDEX_FOR_EXCLUDE internal static fixed bin(17,0) initial dcl 7-52 INDEX_FOR_FOLDING internal static fixed bin(17,0) initial dcl 7-68 INDEX_FOR_FORMAT_DOCUMENT_CONTROLS internal static fixed bin(17,0) initial dcl 7-41 INDEX_FOR_GROUP internal static fixed bin(17,0) initial dcl 7-53 INDEX_FOR_GROUP_FOOTER_TRIGGER internal static fixed bin(17,0) initial dcl 7-54 INDEX_FOR_GROUP_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 7-55 INDEX_FOR_GROUP_HEADER_TRIGGER internal static fixed bin(17,0) initial dcl 7-56 INDEX_FOR_GROUP_HEADER_VALUE internal static fixed bin(17,0) initial dcl 7-57 INDEX_FOR_HYPHENATION internal static fixed bin(17,0) initial dcl 7-42 INDEX_FOR_OUTLINE internal static fixed bin(17,0) initial dcl 7-58 INDEX_FOR_PAGE_BREAK internal static fixed bin(17,0) initial dcl 7-59 INDEX_FOR_PAGE_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 7-43 INDEX_FOR_PAGE_HEADER_VALUE internal static fixed bin(17,0) initial dcl 7-44 INDEX_FOR_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 7-45 INDEX_FOR_PAGE_WIDTH internal static fixed bin(17,0) initial dcl 7-46 INDEX_FOR_ROW_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 7-60 INDEX_FOR_ROW_HEADER_VALUE internal static fixed bin(17,0) initial dcl 7-61 INDEX_FOR_SEPARATOR internal static fixed bin(17,0) initial dcl 7-69 INDEX_FOR_SUBCOUNT internal static fixed bin(17,0) initial dcl 7-62 INDEX_FOR_SUBTOTAL internal static fixed bin(17,0) initial dcl 7-63 INDEX_FOR_TITLE internal static fixed bin(17,0) initial dcl 7-70 INDEX_FOR_TITLE_LINE internal static fixed bin(17,0) initial dcl 7-47 INDEX_FOR_TOTAL internal static fixed bin(17,0) initial dcl 7-64 INDEX_FOR_TRUNCATION internal static fixed bin(17,0) initial dcl 7-48 INDEX_FOR_WIDTH internal static fixed bin(17,0) initial dcl 7-71 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 KEY_MNEMONICS internal static structure level 1 dcl 10-62 KEY_MNEMONICS_AS_A_TABLE based char(12) array dcl 10-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 7-28 LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 7-27 LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 7-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 7-32 MAXIMUM_OPTION_IDENTIFIER_LENGTH internal static fixed bin(17,0) initial dcl 7-34 MAXIMUM_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 7-35 NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 7-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 7-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 TABLE_INFO_VERSION_1 internal static char(8) initial unaligned dcl 12-22 arg_descriptor based structure level 1 dcl 1-6 arg_descriptor_ptr automatic pointer dcl 1-34 arg_list based structure level 1 dcl 2-5 arg_list_with_envptr based structure level 1 dcl 2-17 extended_arg_descriptor based structure level 1 dcl 1-21 fixed_arg_descriptor based structure level 1 dcl 1-13 formatted_page_info based structure level 1 dcl 8-7 formatted_page_ip automatic pointer dcl 8-26 fpi_init_maximum_number_of_detail_blocks automatic fixed bin(17,0) dcl 8-27 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 10-94 mnemonic_key_sequences_as_a_table based char(32) array dcl 10-96 no_of_candidate_columns automatic fixed bin(17,0) dcl 11-17 page_defined_as_a_string based char unaligned dcl 8-40 page_defined_as_lines based char array unaligned dcl 8-39 row_ptrs based structure level 1 dcl 13-7 row_ptrs_ptr automatic pointer dcl 13-33 short_iox_modes internal static char(4) initial array dcl 5-12 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 sys_info$max_seg_size external static fixed bin(35,0) dcl 986 table_info based structure level 1 dcl 12-7 table_segments_info based structure level 1 dcl 13-26 table_segments_ip automatic pointer dcl 13-34 ti_init_column_count automatic fixed bin(17,0) dcl 12-21 tsi_init_maximum_number_of_segments automatic fixed bin(21,0) dcl 13-36 NAMES DECLARED BY EXPLICIT CONTEXT. begin_new_report 000610 constant entry internal dcl 89 ref 320 begin_new_retrieval 001017 constant entry internal dcl 126 ref 317 check_for_end_of_report 004723 constant entry internal dcl 711 ref 784 791 delete_report 001144 constant entry internal dcl 150 ref 251 889 delete_table 001331 constant entry internal dcl 177 ref 231 885 fill_in_the_defaults 001515 constant entry internal dcl 204 ref 75 find_line_within_page 004754 constant entry internal dcl 728 ref 697 find_page 005133 constant entry internal dcl 782 ref 699 format_page 002437 constant entry internal dcl 351 ref 506 670 692 745 790 format_page_or_get_page_extra_processing 002754 constant entry internal dcl 393 ref 387 428 get_page 003031 constant entry internal dcl 419 ref 508 530 664 690 742 785 initialize 003121 constant entry internal dcl 434 ref 71 load_the_entire_table 003205 constant entry internal dcl 458 ref 329 make_terminal_dependent_string 004301 constant entry internal dcl 629 ref 600 613 page_the_report 003354 constant entry internal dcl 486 ref 81 print_page 003641 constant entry internal dcl 547 ref 512 533 665 671 print_report 004412 constant entry internal dcl 653 ref 83 495 rw_display 000464 constant entry external dcl 31 scroll_the_report 004561 constant entry internal dcl 683 ref 79 setup_io_switches 005214 constant entry internal dcl 803 ref 77 setup_output_file 005266 constant entry internal dcl 820 ref 805 setup_output_switch 005767 constant entry internal dcl 853 ref 813 terminate 006111 constant entry internal dcl 872 ref 68 85 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7156 7272 6440 7166 Length 10132 6440 114 623 515 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rw_display 847 external procedure is an external procedure. on unit on line 66 64 on unit begin_new_report internal procedure shares stack frame of external procedure rw_display. begin_new_retrieval internal procedure shares stack frame of external procedure rw_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 rw_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 rw_display. load_the_entire_table internal procedure shares stack frame of external procedure rw_display. page_the_report internal procedure shares stack frame of external procedure rw_display. print_page internal procedure shares stack frame of external procedure rw_display. make_terminal_dependent_string internal procedure shares stack frame of external procedure rw_display. print_report internal procedure shares stack frame of external procedure rw_display. scroll_the_report 126 internal procedure enables or reverts conditions. on unit on line 689 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 rw_display. setup_output_file internal procedure shares stack frame of external procedure rw_display. setup_output_switch internal procedure shares stack frame of external procedure rw_display. terminate 106 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rw_display 000100 arguments_have_been_processed rw_display 000101 attach_description rw_display 000210 cleanup_signalled rw_display 000211 code rw_display 000212 directory_name rw_display 000264 entry_name rw_display 000274 first_page_of_the_report rw_display 000276 iocb_ptr rw_display 000300 last_page_of_the_report rw_display 000302 sci_ptr rw_display 000304 switch_name rw_display 000304 spare_string rw_display 000317 terminal_dependency rw_display 000320 time1 rw_display 000322 time2 rw_display 000324 video_has_been_set_up rw_display 000326 work_area_ptr rw_display 000330 extended_arg_type rw_display 000332 display_arg_results rw_display 000332 page_ip rw_display 000334 page_overstrike_ip rw_display 000336 report_cip rw_display 000340 function_key_info rw_display 000510 scroll_ip rw_display 000512 sort_info_ptr rw_display 000514 table_ip rw_display 000516 table_control_ip rw_display 000520 status_ptr rw_display 000574 ptr_current_page_number page_the_report 000576 ptr_specified_pages_as_a_string_ptr page_the_report 000600 ptr_still_paging page_the_report 000610 pp_chunk_of_line_ptr print_page 000612 pp_code print_page 000613 pp_ioa_string print_page 000614 pp_left_margin print_page 000615 pp_loop print_page 000616 pp_loop_limit print_page 000617 pp_number_of_chars print_page 000620 pp_overstrike_index print_page 000621 pp_right_margin print_page 000632 mtds_loop make_terminal_dependent_string 000633 mtds_overstrike_index make_terminal_dependent_string 000644 pr_loop print_report 000645 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 free_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 rw_display_process_args rw_display_scroll$continue rw_display_scroll$start rw_display_scroll$stop rw_fr_build_page rw_fr_delete_report rw_fr_get_page rw_fr_new_report rw_table_manager$create_table rw_table_manager$delete_table rw_table_manager$load_table rw_table_manager$sort 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 rw_error_$bad_report_display rw_error_$no_columns_defined LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000460 981 000471 1 36 000501 6 10 000503 9 61 000511 63 000513 64 000514 66 000515 67 000531 68 000534 69 000541 71 000542 72 000543 74 000562 75 000564 77 000565 79 000566 81 000576 83 000602 85 000603 87 000607 89 000610 91 000611 94 000621 96 000623 99 000631 100 000642 102 000645 103 000651 104 000702 109 000731 112 000750 113 000752 114 000754 115 000756 117 000770 118 000771 119 001014 120 001015 122 001016 126 001017 128 001020 131 001030 132 001032 134 001034 135 001040 136 001051 137 001055 139 001105 142 001124 143 001126 144 001130 146 001142 150 001143 152 001151 155 001162 156 001173 158 001177 159 001204 160 001235 165 001264 168 001307 171 001324 173 001327 177 001330 179 001336 182 001347 183 001360 185 001364 186 001371 187 001422 192 001451 195 001474 198 001511 200 001514 204 001515 218 001516 220 001521 222 001524 225 001553 231 001556 235 001567 237 001572 242 001612 245 001641 251 001644 265 001655 267 001660 268 001665 270 001712 274 001745 276 002005 280 002042 283 002047 285 002100 287 002104 288 002105 291 002137 295 002212 304 002215 309 002246 310 002250 311 002262 312 002263 317 002265 320 002271 327 002275 329 002300 331 002304 333 002313 335 002327 337 002332 338 002336 339 002367 343 002416 347 002435 351 002436 353 002444 355 002455 356 002470 358 002474 359 002501 362 002533 365 002552 367 002556 368 002560 377 002646 379 002652 380 002654 387 002733 389 002752 393 002753 399 002761 401 002771 403 002773 406 003013 408 003014 410 003021 411 003023 412 003025 413 003026 415 003027 419 003030 423 003036 424 003054 428 003110 430 003120 434 003121 436 003122 437 003126 439 003131 440 003134 444 003135 445 003146 450 003167 451 003200 452 003201 454 003204 458 003205 460 003206 463 003215 464 003226 466 003231 467 003235 469 003266 473 003315 476 003323 479 003337 480 003341 482 003353 486 003354 493 003355 495 003360 496 003361 499 003362 500 003412 501 003415 502 003417 504 003421 506 003424 508 003444 512 003457 515 003466 518 003505 519 003507 521 003510 525 003527 527 003530 530 003547 533 003557 538 003560 543 003640 547 003641 560 003642 563 003651 571 003707 573 003714 575 003741 577 003760 579 003761 581 003763 582 003765 583 003767 585 003773 587 004001 589 004002 590 004005 592 004007 593 004013 596 004040 597 004044 598 004053 599 004057 600 004065 603 004077 605 004134 607 004142 608 004144 609 004152 610 004160 612 004170 613 004172 616 004204 620 004237 622 004242 623 004246 627 004300 629 004301 634 004302 635 004303 636 004305 637 004315 638 004327 641 004377 642 004401 644 004403 645 004405 647 004411 653 004412 658 004413 660 004444 662 004446 663 004447 664 004455 665 004463 666 004464 669 004466 670 004471 671 004475 672 004476 674 004477 679 004557 683 004560 687 004566 689 004573 690 004607 692 004635 693 004642 694 004651 697 004652 699 004660 700 004661 701 004666 702 004677 705 004705 707 004721 709 004722 711 004723 713 004724 715 004727 718 004747 719 004751 724 004753 728 004754 735 004755 736 004760 737 004762 738 004763 739 004766 741 004770 742 004772 745 005017 747 005024 748 005035 752 005054 753 005056 759 005063 763 005075 765 005101 767 005103 771 005120 773 005127 774 005130 776 005131 778 005132 782 005133 784 005134 785 005135 788 005162 789 005164 790 005166 791 005173 792 005174 794 005212 797 005213 803 005214 805 005215 807 005222 809 005224 811 005243 812 005245 813 005246 815 005252 818 005265 820 005266 822 005267 823 005321 827 005410 832 005503 834 005536 840 005635 841 005655 847 005754 849 005766 853 005767 855 005770 857 006021 861 006045 866 006107 872 006110 874 006116 876 006124 877 006126 880 006133 885 006136 889 006151 895 006165 899 006213 900 006215 901 006225 902 006237 903 006251 908 006370 912 006371 914 006406 916 006414 917 006416 918 006420 921 006424 ----------------------------------------------------------- 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