COMPILATION LISTING OF SEGMENT compose Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 0941.1 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* An advanced feature text formatting program based on the concepts of runoff. 11* 12* The essential features of runoff are retained and many new, advanced 13* features are added. The formatting and processing algorithms are grossly 14* different. */ 15 16 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 17 18 compose: 19 comp: 20 proc; 21 22 /* GLOBAL INITIALIZE */ 23 24 compose_severity_ = 5; /* all command line errors abort */ 25 unspec (null_info) = "0"b; 26 27 /* check for recursive invocation */ 28 if re_call 29 then 30 do; /* if this flag is set, then */ 31 if substr (ips_mask, 36, 1) /* ips_mask is off, turn it back on */ 32 then call hcs_$reset_ips_mask (ips_mask, ips_mask); 33 34 call com_err_ (0, "compose", 35 " A prior invocation has been interrupted.^/^-Type 'start', " 36 || "'release', or 'program_interrupt' to finish it."); 37 return; 38 end; 39 40 here: /* "Where we are?" */ 41 call hcs_$fs_get_path_name (codeptr (here), compose_dir, 0, "", ercd); 42 if ercd ^= 0 43 then 44 do; 45 call com_err_ (ercd, "compose", 46 "Setting referencing dir (dir containing compose)."); 47 return; 48 end; /**/ 49 /* set constants structure pointer */ 50 compstat$compconst.ptr = addr (compstat$compconst.ptr); 51 52 if dt_sw 53 then call ioa_ ("^a (Vers. ^a)", rtrim (compose_dir), 54 compstat$compconst.comp_version); 55 56 if const.version ^= const_version /* bad version? */ 57 then 58 do; 59 call com_err_ (error_table_$unimplemented_version, "compose", 60 "Program constants structure."); 61 return; 62 end; 63 64 const.comp_dir = compose_dir; 65 66 /* establish the cleanup handler */ 67 on cleanup call comp_cleanup; /* comp_init_ might signal it */ 68 re_call = "1"b; /* we have been called */ 69 /* initialize those parts of the */ 70 /* internal data base needed for */ 71 call comp_init_$one; /* argument processing */ 72 73 /* PROCESS COMMAND ARGUMENTS */ 74 75 call cu_$arg_count (nargs); /* get argument count */ 76 77 if nargs = 0 /* if none are given ... */ 78 then 79 do; 80 call com_err_ (0, "compose", 81 "(Vers. ^a) Proper usage is: compose " || "paths {-control_args}", 82 const.comp_version); 83 goto clean_; 84 end; 85 86 optnptr = addr (option.argument_opt); 87 /* option flags as bit (36)x */ 88 89 source_list.count = 0; /* empty the source file table */ 90 91 on conversion 92 begin; /* set a conversion error handler */ 93 call com_err_ (ercd, "compose", 94 "Nonnumeric parameter given for ^a option.", 95 rtrim (option_keyword)); 96 badcall = "1"b; /* set static flags */ 97 goto skip_arg; /* go to next arg */ 98 end; 99 100 do iarg = 1 by 1 while (iarg <= nargs); 101 /* do arguments one at a time */ 102 call cu_$arg_ptr (iarg, argp, argl, ercd); 103 /* get an arg pointer */ 104 if ercd ^= 0 105 then 106 do; 107 call com_err_ (ercd, "compose", "Reading argument ^d", iarg); 108 goto clean_; 109 end; 110 111 no_param: 112 if iarg > nargs /* if there aren't any more */ 113 then goto end_args; 114 115 if index (arg, "-") ^= 1 /* if not an option */ 116 then 117 do; /* if control line is already bad */ 118 if badcall /* is it numeric? */ 119 then if verify (arg, "0123456789") = 0 120 then 121 do; 122 call com_err_ (0, "compose", 123 "The numeric parameter " 124 || 125 """^a"" cannot be associated with a control argument.", 126 arg); 127 badcall = "1"b; 128 goto skip_arg; 129 end; 130 131 is_a_file: /* process as an source file name */ 132 /* check file limit */ 133 if source_list.count = hbound (source_list.ptr, 1) 134 then 135 do; 136 call com_err_ (0, "compose", 137 "Too many input files." || " Program limit is ^d.", 138 hbound (source_list.ptr, 1)); 139 goto clean_; 140 end; /**/ 141 /* get a new source file block */ 142 source_list.count = source_list.count + 1; 143 source_file_ptr = 144 allocate (const.global_area_ptr, size (source_file)); 145 source_list.ptr (source_list.count) = source_file_ptr; 146 source_file = init_file_data; 147 148 call comp_get_file_$find (arg, source_file_ptr, (const.comp_dir), 149 "1"b, "compin", ercd); 150 if ercd ^= 0 /* cant find it? */ 151 then 152 do; 153 badcall = "1"b; 154 goto skip_arg; 155 end; /**/ 156 /* if writing to a compout */ 157 if option.output_file_opt /* check name length */ 158 & length (rtrim (source_file.entryname)) > 31 159 then 160 do; 161 call com_err_ (0, "compose", 162 "Input entryname ""^a"" is too long", arg); 163 badcall = "1"b; 164 goto skip_arg; 165 end; 166 167 call comp_get_file_$open (source_file_ptr, "1"b, ercd); 168 if ercd ^= 0 /* cant use file? */ 169 then 170 do; 171 badcall = "1"b; 172 goto skip_arg; 173 end; 174 end; 175 176 else if index (arg, "-") = 1 /* is it an option? */ 177 then 178 do; 179 is_option: 180 option_keyword = arg; /* save option keyword */ 181 /* search option list */ 182 optndx = index (ctlargstr, option_keyword); 183 184 if optndx = 0 185 then 186 do; 187 call com_err_ (error_table_$badopt, "compose", """^a""", arg); 188 badcall = "1"b; 189 end; 190 191 else 192 do; /* calculate true index */ 193 optndx = option_data.flag_index (divide (optndx, 32, 17) + 1); 194 optns (optndx) = "1"b; /* set the flag */ 195 196 if optndx <= to_optndx /* these have parameters */ 197 then 198 do; 199 iarg = iarg + 1; /* fetch expected parameter */ 200 call cu_$arg_ptr (iarg, argp, argl, ercd); 201 if ercd ^= 0 202 then 203 do; 204 param_err: 205 if ercd ^= error_table_$noarg 206 then 207 do; 208 call com_err_ (ercd, "compose", 209 "Reading value for ^a option.", 210 rtrim (option_keyword)); 211 badcall = "1"b; 212 goto skip_arg; 213 end; 214 argl = 0; /* if ercd = error_table_$noarg 215*/* then ercd = 0;*/ 216 end; 217 218 /* -arguments option */ 219 if optndx = arg_optndx 220 then goto end_args; /* abort arg processing */ 221 222 /* -change_bars option */ 223 else if optndx = cb_optndx 224 then 225 do; 226 cbar_opt: /* defaults only wanted? */ 227 if index (arg, "-") = 1 | argl = 0 228 then goto no_param; 229 /* copy parameter arg */ 230 local_arg = arg; /**/ 231 /* level */ 232 if index (local_arg, ",") > 1 233 then option.cbar.level = before (local_arg, ","); 234 else if local_arg ^= "" & index (local_arg, ",") ^= 1 235 then option.cbar.level = local_arg; 236 local_arg = after (local_arg, ","); 237 /**/ 238 /* placement */ 239 if index (local_arg, ",") > 1 240 then option.cbar.place = before (local_arg, ","); 241 else if local_arg ^= "" & index (local_arg, ",") ^= 1 242 then option.cbar.place = before (local_arg, ","); 243 local_arg = after (local_arg, ","); 244 /**/ 245 /* left mark */ 246 if index (local_arg, ",") > 1 247 | local_arg ^= "" & index (local_arg, ",") ^= 1 248 then 249 do; 250 if index ("0123456789", substr (local_arg, 1, 1)) 251 ^= 0 252 then 253 do; 254 option.cbar.left.sep = 255 12000 * bin (substr (local_arg, 1, 1)); 256 local_arg = substr (local_arg, 2); 257 end; 258 259 if index (local_arg, """") = 1 260 then 261 do; 262 local_arg = after (local_arg, """"); 263 option.cbar.left.mark = before (local_arg, """"); 264 local_arg = after (local_arg, """"); 265 end; 266 else option.cbar.left.mark = before (local_arg, ","); 267 end; 268 local_arg = after (local_arg, ","); 269 /**/ 270 /* right mark */ 271 if index (local_arg, ",") > 1 272 | local_arg ^= "" & index (local_arg, ",") ^= 1 273 then 274 do; 275 if index ("0123456789", substr (local_arg, 1, 1)) 276 ^= 0 277 then 278 do; 279 option.cbar.right.sep = 280 12000 * bin (substr (local_arg, 1, 1)); 281 local_arg = substr (local_arg, 2); 282 end; 283 if index (local_arg, """") = 1 284 then 285 do; 286 local_arg = after (local_arg, """"); 287 option.cbar.right.mark = 288 before (local_arg, """"); 289 local_arg = after (local_arg, """"); 290 end; 291 else option.cbar.right.mark = 292 before (local_arg, ","); 293 end; 294 local_arg = after (local_arg, ","); 295 /**/ 296 /* del mark */ 297 if length (local_arg) > 0 298 | local_arg ^= "" & index (local_arg, ",") ^= 1 299 then 300 do; 301 if index ("0123456789", substr (local_arg, 1, 1)) 302 ^= 0 303 then 304 do; /* numeric 1st char is separation */ 305 option.cbar.del.sep = 306 12000 * bin (substr (local_arg, 1, 1)); 307 local_arg = substr (local_arg, 2); 308 end; 309 if index (local_arg, """") = 1 310 then 311 do; 312 local_arg = after (local_arg, """"); 313 option.cbar.del.mark = before (local_arg, """"); 314 local_arg = after (local_arg, """"); 315 end; 316 else option.cbar.del.mark = before (local_arg, ","); 317 end; 318 local_arg = after (local_arg, ","); 319 end; 320 321 /* -change_bars_art option */ 322 else if optndx = cba_optndx 323 then 324 do; 325 option.cbar_opt = "1"b; 326 /* set -change_bars option */ 327 goto cbar_opt; /* and do as for -cb */ 328 end; 329 330 /* UNDOCUMENTED OPTION: -debug {n1}{,n2} 331* Produces debugging output for lines n1 thru n2 of source file 332* or given insert file */ 333 else if optndx = db_optndx 334 then 335 do; 336 if ercd = 0 337 then 338 do; 339 if index (arg, "-") = 1 340 then goto is_option; 341 342 if verify (arg, "0123456789,$") ^= 0 343 then goto is_a_file; 344 /* look for a comma */ 345 i = index (arg, ","); 346 347 if i ^= 0 /* if one is given ... */ 348 then 349 do; 350 if i > 1 351 then option.db_line_strt = 352 bin (substr (arg, 1, i - 1)); 353 354 if i < argl 355 then 356 do; /* if ",$" -> debug only end_output */ 357 if substr (arg, i + 1, 1) = "$" 358 then option.db_line_end = -1; 359 else option.db_line_end = 360 bin (substr (arg, i + 1, argl - i)) 361 ; 362 end; 363 end; 364 365 else option.db_line_strt = bin (arg); 366 end; 367 end; 368 369 /* UNDOCUMENTED OPTION: -debug_all {n1}{,n2} 370* Enables debug output for all input lines (including inserted files) 371* encountered between lines n1 and n2 of the debug file */ 372 else if optndx = dba_optndx 373 then 374 do; 375 option.debug_opt, option.db_all_opt = "1"b; 376 if ercd = 0 377 then 378 do; 379 if index ("0123456789,", substr (arg, 1, 1)) = 0 380 then goto no_param; 381 i = index (arg, ","); 382 /* look for a comma */ 383 384 if i ^= 0 /* if one is given ... */ 385 then 386 do; 387 if i > 1 388 then option.db_after_line = 389 bin (substr (arg, 1, i - 1)); 390 391 if i < argl 392 then option.db_before_line = 393 bin (substr (arg, i + 1, argl - i)); 394 end; 395 396 else option.db_after_line = bin (arg); 397 end; 398 end; 399 400 /* UNDOCUMENTED OPTION: -debug_file 401* Enables -debug output for a named file */ 402 else if optndx = dbf_optndx 403 then 404 do; 405 option.debug_opt, option.db_file_opt = "1"b; 406 option.db_file = "ALLFILES"; 407 /* "" -> ALLFILES */ 408 409 if index (arg, "-") = 1 410 then goto is_option; 411 412 else 413 do; 414 if arg ^= "" 415 then option.db_file = arg; 416 417 iarg = iarg + 1; 418 /* fetch next arg */ 419 call cu_$arg_ptr (iarg, argp, argl, ercd); 420 if ercd ^= 0 421 then if ercd = error_table_$noarg 422 then goto skip_arg; 423 424 if index (arg, "-") = 1 425 /* no after line */ 426 then goto is_option; 427 else option.db_file_after = bin (arg); 428 end; 429 end; 430 431 /* -device option */ 432 else if optndx = dv_optndx 433 then dsm_path = arg; 434 435 /* -execute option */ 436 else if optndx = ex_optndx 437 then 438 do; 439 call com_err_ (0, "compose", 440 "The -execute control argument is not yet implemented." 441 ); 442 option.execute_opt = "0"b; 443 /* REMOVE THIS CATCHER */ 444 if index (arg, "-") = 1 445 then goto no_param; 446 /* EXECUTE OPTION STUFF GOES HERE. 447* MUST BE A QUOTED, SEMI-COLON */ 448 end; /* SEPARATED CONTROL STRING */ 449 450 /* -from option */ 451 else if optndx = fm_optndx 452 then 453 do; 454 if option.pages_opt 455 then 456 do; 457 page_err_1: 458 call com_err_ (0, "compose", 459 "The -from/-to and " 460 || "-pages options may not be used together."); 461 badcall = "1"b; 462 goto skip_arg; 463 end; 464 465 option.pglst (0).from = arg; 466 end; 467 468 /* -galley option */ 469 else if optndx = gl_optndx 470 then 471 do; 472 if ercd = 0 473 then 474 do; 475 476 if index ("0123456789,.", substr (arg, 1, 1)) = 0 477 then goto no_param; 478 479 i = index (arg, ","); 480 /* look for a comma */ 481 if i ^= 0 /* if one is given ... */ 482 then 483 do; 484 if i > 1 485 then option.line_1 = 486 bin (substr (arg, 1, i - 1)); 487 488 if i < argl 489 & substr (arg, i + 1, argl - i) ^= "$" 490 then option.line_2 = 491 bin (substr (arg, i + 1, argl - i)); 492 493 if option.line_2 < option.line_1 494 then 495 do; 496 call com_err_ (0, "compose", 497 "Ending line number" 498 || " less than starting line number."); 499 badcall = "1"b; 500 end; 501 end; 502 503 else option.line_1 = bin (arg); 504 end; 505 end; 506 507 /* -hyphenation option */ 508 else if optndx = hyph_optndx 509 then 510 do; 511 if argl = 0 | verify (arg, "0123456789") ^= 0 512 then goto no_param; 513 else option.hyph_size = bin (arg); 514 end; 515 516 /* -indent option */ 517 else if optndx = ind_optndx 518 then 519 do; 520 if search (arg, "0123456789.") ^= 1 521 then goto no_param; 522 else option.extra_indent = 523 comp_read_$number ((arg), hscales, 1, 0, 524 addr (null_info), ercd); 525 if ercd ^= 0 526 then goto no_param; 527 end; 528 529 /* -input_file option */ 530 else if optndx = if_optndx 531 then goto is_a_file; 532 533 /* -linespace option */ 534 else if optndx = ls_optndx 535 then 536 do; 537 if search (arg, "0123456789.") ^= 1 538 then goto no_param; 539 else option.linespace = 540 comp_read_$number ((arg), hscales, 1, 0, 541 addr (null_info), ercd); 542 if ercd ^= 0 543 then goto no_param; 544 else option.linespace = 12000 * dec (arg, 11, 3); 545 end; 546 547 /* -output_file option */ 548 else if optndx = of_optndx 549 then 550 do; 551 wdir = get_wdir_ (); 552 553 if argl > 0 /* if there is another arg */ 554 then 555 do; 556 if index (arg, "-") = 1 557 /* if no given path */ 558 then goto is_option; 559 560 if search ("<>", arg) ^= 0 561 /* if a path is given */ 562 then 563 do; 564 call expand_pathname_ (arg, bulk_file.dir, 565 bulk_file.entryname, ercd); 566 if ercd ^= 0 567 then 568 do; 569 call com_err_ (ercd, "compose", 570 "Expanding path for ""^a""", arg); 571 goto clean_; 572 end; 573 end; 574 575 else 576 do; /* only a name, use wdir */ 577 if argl > 32 578 then 579 do; 580 call com_err_ (error_table_$entlong, 581 "compose", "Bulk output file name."); 582 goto clean_; 583 end; 584 bulk_file.entryname = arg; 585 bulk_file.dir = wdir; 586 end; /* construct the path name */ 587 bulk_file.path = 588 rtrim (bulk_file.dir) || ">" 589 || rtrim (bulk_file.entryname); 590 end; 591 end; 592 593 /* -pages option */ 594 else if optndx = pg_optndx 595 then 596 do; 597 if option.from_opt | option.to_opt 598 then goto page_err_1; 599 /* NG if already -from/-to */ 600 601 if index (arg, "-") = 1 602 /* if no list is given */ 603 then goto is_option; 604 /* do them all */ 605 606 pglst_loop: 607 if index (arg, ",") = 0 608 /* if not a page pair */ 609 then 610 do; 611 if option.pglstct >= 50 612 then 613 do; 614 page_err_3: 615 call com_err_ (0, "compose", 616 "More than 50 page selectors given."); 617 badcall = "1"b; 618 goto skip_arg; 619 end; 620 621 option.pglstct = option.pglstct + 1; 622 option.pglst (option.pglstct).from, 623 option.pglst (option.pglstct).to = arg; 624 end; 625 626 else 627 do; 628 if option.pglstct >= 50 629 then goto page_err_3; 630 631 option.pglstct = option.pglstct + 1; 632 option.pglst (option.pglstct).from = 633 before (arg, ","); 634 option.pglst (option.pglstct).to = after (arg, ","); 635 end; 636 637 iarg = iarg + 1; /* fetch next list value */ 638 call cu_$arg_ptr (iarg, argp, argl, ercd); 639 if ercd ^= 0 640 then if ercd = error_table_$noarg 641 then goto skip_arg; 642 else goto param_err; 643 644 if index (arg, "-") = 1 645 /* must be end of page list */ 646 then goto is_option; 647 648 goto pglst_loop; 649 end; 650 651 /* -pages_changed option */ 652 else if optndx = pgc_optndx 653 then 654 do; 655 if ercd ^= 0 | argl = 0 656 then goto skip_arg; 657 else if index (arg, "-") = 1 658 then goto is_option; 659 if argl > 2 660 then goto is_a_file; 661 /* cancel default from */ 662 option.pglst.from = ""; 663 option.pgc_select = substr (arg, 1, 1); 664 /* PAIR/SINGLE CODE GOES HERE */ 665 end; 666 667 /* -parameter option */ 668 else if optndx = pm_optndx 669 then option.parameter = arg; 670 671 /* -passes option */ 672 else if optndx = pass_optndx 673 then 674 do; 675 if verify (arg, "0123456789.") ^= 0 676 then goto no_param; 677 else option.passes = bin (arg); 678 end; 679 680 /* -to option */ 681 else if optndx = to_optndx 682 then 683 do; 684 685 if option.pages_opt 686 then goto page_err_1; 687 688 option.pglst (0).to = arg; 689 end; 690 691 skip_arg: 692 end; 693 end; 694 end; 695 end; 696 697 end_args: 698 revert conversion; 699 700 if option.debug_opt & ^dt_sw 701 then call ioa_ ("^a (Vers. ^a)", rtrim (const.comp_dir), 702 const.comp_version); 703 704 if source_list.count = 0 /* if no source files were given */ 705 then 706 do; 707 call com_err_ (0, "compose", "No input files given."); 708 badcall = "1"b; 709 end; 710 711 if badcall 712 then goto clean_; 713 714 if option.stop_opt /* if stop is given, also set wait */ 715 then option.wait_opt = "1"b; /* as a first time flag */ 716 717 /* INITIALIZE FOR EXECUTION BASED ON COMMAND LINE INPUT */ 718 719 /* extend the stack, errors will be caught by oob */ 720 call hcs_$set_max_length_seg (stackbaseptr (), sys_info$max_seg_size, ercd) 721 ; 722 if ercd ^= 0 723 then 724 do; 725 call com_err_ (ercd, "compose", "Extending user stack."); 726 goto clean_; 727 end; 728 729 if option.argument_opt /* any command line arguments? */ 730 then 731 do; /* how many? */ 732 command_arg_ct = max (nargs - iarg + 1, 0); 733 734 if command_arg_ct > 0 735 then 736 do; 737 command_arg_ptr = 738 allocate (const.global_area_ptr, size (command_arg)); 739 740 do i = iarg to nargs; /* move them */ 741 call cu_$arg_ptr (i, argp, argl, ercd); 742 if ercd ^= 0 743 then 744 do; 745 call com_err_ (ercd, "compose", "Reading argument ^d", i); 746 goto clean_; 747 end; 748 749 command_arg (i - iarg + 1) = arg; 750 option.arg_count = option.arg_count + 1; 751 end; 752 end; /**/ 753 /* no args; cancel the option */ 754 else option.argument_opt = "0"b; 755 end; 756 757 if dsm_path = "" /* no device given? */ 758 then 759 do; 760 if option.output_file_opt /* set defaults */ 761 then const.dsm_name = "printer.comp_dsm"; 762 else const.dsm_name = "ascii.comp_dsm"; 763 end; 764 else 765 do; 766 call expand_pathname_$add_suffix (dsm_path, "comp_dsm", dsm_dir, 767 const.dsm_name, ercd); 768 if ercd ^= 0 769 then 770 do; 771 call com_err_ (ercd, "compose", 772 "Expanding device table pathname. ^a", dsm_path); 773 go to clean_; 774 end; 775 end; /**/ 776 /* look for the device table */ 777 if search ("<>", dsm_path) = 0 /* if search is needed */ 778 then 779 do; 780 call search_paths_$find_dir ("compose", null (), (const.dsm_name), 781 (const.comp_dir), dsm_dir, ercd); 782 if ercd ^= 0 783 then 784 do; 785 call com_err_ (ercd, "compose", "Searching for ^a.", 786 const.dsm_name); 787 goto clean_; 788 end; 789 end; 790 791 dsm_path = pathname_ (dsm_dir, (const.dsm_name)); 792 793 /* second init step - this is all */ 794 call comp_init_$two; /* the data base stuff that is */ 795 /* needed for file processing and */ 796 /* doesnt depend on the contents of */ 797 /* the files or their size */ 798 799 /* initialize the device module */ 800 call hcs_$initiate (dsm_dir, const.dsm_name, const.dsm_name, 0, 0, 801 dsm_baseptr, ercd); 802 if dsm_baseptr = null () 803 then 804 do; 805 call com_err_ (ercd, "compose", "Initiating ^a", dsm_path); 806 go to clean_; 807 end; 808 if ercd ^= 0 809 then if ercd = error_table_$namedup 810 then 811 do; 812 call term_$single_refname (const.dsm_name, (0)); 813 call hcs_$initiate (dsm_dir, const.dsm_name, const.dsm_name, 0, 0, 814 dsm_baseptr, ercd); 815 if dsm_baseptr = null () 816 then 817 do; 818 call com_err_ (ercd, "compose", "Forcibly initiating ^a", 819 dsm_path); 820 go to clean_; 821 end; 822 end; 823 824 (nostrz): 825 (nostrg): /* make a pointer to dvid table */ 826 option.device = before (const.dsm_name, ".comp_dsm"); 827 const.dvt_name = option.device || ".dvt"; 828 call hcs_$make_ptr (null (), const.dsm_name, const.dvt_name, const.dvidptr, 829 ercd); 830 if ercd ^= 0 831 then 832 do; 833 call com_err_ (ercd, "compose", "Getting pointer to ^a$^a", dsm_path, 834 const.dvt_name); 835 goto clean_; 836 end; 837 838 if comp_dvid.version ^= comp_dvid_version 839 then 840 do; /* terminate device writer */ 841 call com_err_ (error_table_$unimplemented_version, "compose", 842 "Device table ^a cannot be used with ^a>compose.", dsm_path, 843 const.comp_dir); 844 go to clean_; 845 end; /* make a pointer to device table */ 846 const.devptr = pointer (const.dvidptr, comp_dvid.dvt_r); 847 848 call comp_dvt.outproc (2, ercd); /* initialize output writer */ 849 if ercd ^= 0 850 then 851 do; 852 call com_err_ (ercd, "compose", 853 "Initializing device writer procedure.^/^-" 854 || "Writer for ^a cannot be used with ^a>compose.", dsm_path, 855 const.comp_dir); 856 goto clean_; 857 end; 858 859 if option.number_brief_opt | option.number_append_opt 860 then option.number_opt = "1"b; 861 862 if option.galley_opt /* adjust debug range if not given */ 863 then 864 do; 865 if ^option.db_file_opt 866 then 867 do; 868 if option.db_line_strt = 0 869 then option.db_line_strt = option.line_1; 870 if option.db_all_opt & option.db_after_line = 0 871 then option.db_after_line = option.line_1; 872 end; 873 874 if option.cbar_opt 875 then option.cbar.place = "r"; 876 end; /**/ 877 /* output to terminal */ 878 if ^(option.output_file_opt | option.check_opt) 879 then shared.compout_ptr = iox_$user_output; 880 881 /* set up bulk output file */ 882 if ^option.check_opt & bulk_file.path ^= "" 883 then 884 do; 885 call initiate_file_ (bulk_file.dir, bulk_file.entryname, W_ACCESS, 886 bulk_file.ptr, 0, ercd); 887 if ercd ^= 0 & ercd ^= error_table_$segknown 888 & ercd ^= error_table_$namedup & ercd ^= error_table_$noentry 889 then 890 do; 891 call com_err_ (ercd, "compose", "Accessing ^a", bulk_file.path); 892 goto clean_; 893 end; 894 895 if bulk_file.ptr ^= null 896 then 897 do i = 1 to source_list.count;/* check for file overwrite */ 898 if baseno (source_list.ptr (i) -> source.pointer) 899 = baseno (bulk_file.ptr) 900 then 901 do; 902 call com_err_ (0, "compose", 903 "Output would overwrite " || "input file ^a", 904 source_list.ptr (i) -> source.path); 905 goto clean_; 906 end; 907 end; 908 909 atd = "vfile_ " || bulk_file.path; 910 shared.output_file = bulk_file.entryname; 911 912 call iox_$attach_name ("COMPOUT", shared.compout_ptr, atd, null (), 913 ercd); 914 if ercd ^= 0 915 then 916 do; 917 call com_err_ (ercd, "compose", "Attaching ^a", 918 bulk_file.entryname); 919 goto clean_; 920 end; 921 922 call iox_$open (shared.compout_ptr, comp_dvt.open_mode, "0"b, ercd); 923 if ercd ^= 0 924 then 925 do; 926 call com_err_ (ercd, "compose", "Opening ^a", bulk_file.path); 927 call iox_$detach_iocb (shared.compout_ptr, ercd); 928 ercd = 0; 929 goto clean_; 930 end; 931 end; 932 933 source_ptr = allocate (const.global_area_ptr, size (source)); 934 /* pass -pm value to the file */ 935 shared.parameter = option.parameter; 936 shared.param_pres = (shared.parameter ^= ""); 937 938 if option.passes > 1 | source_list.count > 1 939 then 940 do; 941 const.save_shared_ptr = 942 allocate (const.global_area_ptr, size (save_shared)); 943 save_shared = shared; /* save all constructed data */ 944 end; 945 946 if option.debug_opt & /* debugging wanted? */ 947 option.db_line_end ^= 0 /* more than salutory? */ 948 then call ioa_ ("(debug display = picas, device = ^a)", option.device); 949 950 if option.debug_opt & dt_sw 951 then call ioa_ ("^5x(^a>^a)", rtrim (const.comp_dir), const.dsm_name); 952 953 on program_interrupt /* set a pi handler */ 954 goto print_pi_stuff; 955 956 /* PROCESS INPUT FILES */ 957 958 compose_severity_ = 0; /* reset severity indicator */ 959 960 on cleanup call comp_cleanup; 961 962 input_file_loop: 963 do filndx = 1 to source_list.count; 964 965 if option.debug_opt /* initialize meter data */ 966 then 967 do; 968 call cpu_time_and_paging_ (pf_start, vcpu_start, 0); 969 call hcs_$quota_read (get_pdir_ (), 0, 0, "0"b, "0"b, 0, 970 pd_used_start, ercd); 971 end; 972 973 if filndx > 1 /* for additional files */ 974 then shared = save_shared; /* reinitialize shared data */ 975 976 if bulk_file.path = "" 977 then shared.compout_not_headed = "1"b; 978 979 call comp_init_$three; /* third init step */ 980 call comp_dvt.outproc (2, ercd); /* initialize output writer */ 981 982 /* open the next input file */ 983 source_file_ptr = source_list.ptr (filndx); 984 source.label.count = 0; /* discard old labels */ 985 986 (nostrz): 987 (nostrg): 988 shared.input_filename, shared.source_filename = 989 before (source_file.entryname, ".compin"); 990 shared.insert_ptr, source_file.insert_ptr = source_ptr; 991 unspec (insert) = "0"b; 992 insert.file, call_box0 = source_file; 993 insert.callers_name = ""; /**/ 994 /* if no debug file, set source file */ 995 if ^option.db_file_opt /* as debug file */ 996 then option.db_file = shared.source_filename; 997 /* not syntax check */ 998 if ^option.check_opt /* and output to individual files */ 999 & option.output_file_opt & bulk_file.path = "" 1000 then 1001 do; 1002 call suffixed_name_$new_suffix ((source.entryname), "compin", 1003 "compout", compout_name, ercd); 1004 if ercd ^= 0 1005 then 1006 do; 1007 call com_err_ (ercd, "compose", 1008 "Forming output file name for ^a", source.entryname); 1009 goto clean_; 1010 end; 1011 1012 shared.output_file = compout_name; 1013 compout_path = pathname_ (wdir, compout_name); 1014 1015 call initiate_file_ (wdir, compout_name, W_ACCESS, compout_seg_ptr, 1016 0, ercd); 1017 if ercd ^= 0 & ercd ^= error_table_$segknown 1018 & ercd ^= error_table_$namedup & ercd ^= error_table_$noentry 1019 then 1020 do; 1021 call com_err_ (ercd, "compose", "Accessing ^a", compout_path); 1022 goto skip_file; /* skip this one */ 1023 end; 1024 1025 if baseno (source.pointer) = baseno (compout_seg_ptr) 1026 then 1027 do; 1028 call com_err_ (0, "compose", 1029 "Output would overwrite " || "input file ^a", 1030 source_list.ptr (i) -> source.path); 1031 goto skip_file; 1032 end; 1033 1034 atd = "vfile_ " || compout_path; 1035 call iox_$attach_name ("COMPOUT", shared.compout_ptr, atd, null (), 1036 ercd); 1037 if ercd ^= 0 1038 then 1039 do; 1040 call com_err_ (ercd, "compose", "Attaching ^a", compout_name); 1041 compose_severity_ = 5; 1042 goto clean_; 1043 end; 1044 call iox_$open (shared.compout_ptr, comp_dvt.open_mode, "0"b, ercd); 1045 if ercd ^= 0 1046 then 1047 do; 1048 call com_err_ (ercd, "compose", "Opening ^a", compout_name); 1049 call iox_$detach_iocb (shared.compout_ptr, ercd); 1050 ercd = 0; 1051 compose_severity_ = 5; 1052 goto clean_; 1053 end; 1054 1055 if option.passes > 1 1056 then 1057 do; 1058 save_shared.output_file = shared.output_file; 1059 save_shared.compout_ptr = shared.compout_ptr; 1060 end; 1061 end; 1062 1063 if option.passes > 1 1064 then save_shared = shared; 1065 1066 /* for given number of passes */ 1067 do shared.pass_counter = option.passes by -1 to 1; 1068 if option.passes > 1 & /* reinitialize shared data for */ 1069 shared.pass_counter < option.passes 1070 then shared = save_shared; /* each additional pass */ 1071 1072 call_stack.index = 0; /* refresh file data */ 1073 call_box0 = source_file; /* refresh command line args */ 1074 do i = 1 to option.arg_count; 1075 call comp_update_symbol_ ("1"b, "0"b, "0"b, 1076 "CommandArg" || ltrim (char (i)), command_arg (i)); 1077 end; 1078 1079 if shared.pass_counter <= 1 /* set print control */ 1080 then if option.galley_opt & option.line_1 <= 1 1081 /* galley */ 1082 | ^option.galley_opt /* or paged and not -from or -pages */ 1083 & 1084 ^(option.from_opt | option.pages_opt | option.page_chng_opt) 1085 then shared.print_flag = "1"b; 1086 /* set page formatting parameters */ 1087 page_parms = init_page_parms; 1088 page_parms.measure = min (comp_dvt.pdw_max, 468000); 1089 page.parms = page_parms; 1090 1091 unspec (page_header) = "0"b; /* and the control stuff */ 1092 page_header.net = 720000; 1093 page_header.pageno = ""; 1094 page_header.dot_addltr = ""; /* = PAD */ 1095 page.hdr = page_header; /**/ 1096 /* start in column 0 */ 1097 shared.colptr = page.column_ptr (0); 1098 unspec (colhdr) = "0"b; 1099 colhdr.balblk = 1; 1100 colhdr.net = 720000; 1101 col.hdr = colhdr; /**/ 1102 /* initialize parms */ 1103 default_parms.measure, col0.parms.measure = page_parms.measure; 1104 default_parms.linespace = option.linespace; 1105 default_parms.fill_mode = ^option.nofill_opt; 1106 1107 text_parms, footnote_parms = default_parms; 1108 call comp_font_ ("1"b, "", ""); /* initialize the font stack */ 1109 1110 const.current_parms_ptr = const.text_parms_ptr; 1111 1112 if option.debug_opt /* debugging wanted? */ 1113 then 1114 do; 1115 if option.line_1 <= 1 & option.db_after_line <= 1 1116 & option.db_line_strt <= 1 & option.db_line_end >= 1 1117 & (option.db_file = "ALLFILES" 1118 | shared.input_filename = option.db_file) 1119 then shared.bug_mode = "1"b; 1120 end; 1121 else shared.bug_mode = "0"b; /**/ 1122 /* net page/column space */ 1123 call comp_util_$set_net_page ("0"b); 1124 1125 if option.cbar_opt 1126 then 1127 do; 1128 unspec (meas1) = "0"b; /* measure left mark */ 1129 call comp_measure_ ((option.cbar.left.mark), 1130 addr (default_parms.fntstk.entry (0)), "0"b, "1"b, "0"b, 0, 1131 addr (meas1), addr (meas2), addr (text_entry.info)); 1132 option.cbar.left.width = 1133 meas1.width + meas1.gaps * shared.EN_width; 1134 1135 unspec (meas1) = "0"b; /* measure right mark */ 1136 call comp_measure_ ((option.cbar.right.mark), 1137 addr (default_parms.fntstk.entry (0)), "0"b, "1"b, "0"b, 0, 1138 addr (meas1), addr (meas2), addr (text_entry.info)); 1139 option.cbar.right.width = 1140 meas1.width + meas1.gaps * shared.EN_width; 1141 1142 unspec (meas1) = "0"b; /* measure del mark */ 1143 call comp_measure_ ((option.cbar.del.mark), 1144 addr (default_parms.fntstk.entry (0)), "0"b, "1"b, "0"b, 0, 1145 addr (meas1), addr (meas2), addr (text_entry.info)); 1146 option.cbar.del.width = meas1.width + meas1.gaps * shared.EN_width; 1147 1148 option.cbar.space = 1149 max (option.cbar.left.width + option.cbar.left.sep, 1150 option.cbar.del.width + option.cbar.del.sep); 1151 end; 1152 1153 ctltxtptr = ctl.ptr; /* save pointer around re-init */ 1154 unspec (ctl) = ""b; /* clear control line structure */ 1155 ctl.font, ctl.cur.font = default_parms.fntstk.entry (0); 1156 ctl.ptr = ctltxtptr; /* set input buffer pointer */ 1157 ctl.ptr -> txtstr = ""; /* and clear the buffer */ 1158 ctl.fileno, /* command line file */ 1159 source_file.fileno = 0; 1160 unspec (text_entry) = ""b; 1161 text_entry.quad = just; 1162 text_entry.linespace = option.linespace; 1163 1164 shared.end_output = "0"b; /* turn off flags */ 1165 if option.pages_opt /* set page list index */ 1166 then option.pglstndx = 1; 1167 else option.pglstndx = 0; 1168 1169 if shared.bug_mode 1170 then call ioa_ ("Input file - ^a", source.entryname); 1171 /* set a handler for aborting */ 1172 on comp_abort goto file_abort; 1173 1174 if option.debug_opt 1175 then call ioa_ ("(^a pass=^d)", shared.input_filename, 1176 shared.pass_counter); 1177 1178 call comp_; /* call formatter */ 1179 1180 if option.passes > 1 | source_list.count > 1 1181 then 1182 do; 1183 if option.passes > 1 1184 then 1185 do; 1186 save_shared.compout_not_headed = shared.compout_not_headed; 1187 save_shared.firstpass = "0"b; 1188 end; /**/ 1189 /* close any auxiliary files */ 1190 if shared.aux_file_data_ptr ^= null () 1191 then if aux_file_data.count > 0 1192 then 1193 do i = 1 to aux_file_data.count; 1194 if aux_file_data.entry (i).iocb_ptr ^= null () 1195 then 1196 do; 1197 call iox_$close (aux_file_data.entry (i).iocb_ptr, 1198 ercd); 1199 call iox_$detach_iocb (aux_file_data.entry (i) 1200 .iocb_ptr, ercd); 1201 end; 1202 aux_file_data.count = 0; 1203 end; 1204 end; 1205 1206 file_abort: 1207 end; 1208 1209 call comp_make_page_$cleanup; 1210 1211 if const.errblk_ptr ^= null () /* if there is an error list */ 1212 then 1213 do; 1214 if error.count > 0 /* any errors that havent been */ 1215 & ^option.output_file_opt & ^option.check_opt 1216 /* reported? */ 1217 then call print_errs; 1218 end; 1219 1220 if option.number_opt & ^option.number_brief_opt 1221 then call print_files; 1222 1223 if ^option.check_opt /* close output file */ 1224 & option.output_file_opt & length (bulk_file.path) = 0 1225 then 1226 do; 1227 call hcs_$set_ips_mask (""b, ips_mask); 1228 /* dont interrupt this */ 1229 call iox_$close ((shared.compout_ptr), ercd); 1230 if ercd = 0 1231 then call iox_$detach_iocb ((shared.compout_ptr), ercd); 1232 shared.compout_ptr = null (); 1233 1234 call hcs_$reset_ips_mask (ips_mask, ips_mask); 1235 1236 if ercd ^= 0 1237 then 1238 do; 1239 call com_err_ (ercd, "compose", 1240 "Closing/detaching compout file."); 1241 compose_severity_ = 5; 1242 goto clean_; 1243 end; 1244 end; 1245 1246 if shared.compx_ptr ^= null () /* close the .compx file */ 1247 then 1248 do; 1249 call hcs_$set_ips_mask (""b, ips_mask); 1250 /* dont interrupt this */ 1251 call iox_$close ((shared.compx_ptr), ercd); 1252 if ercd = 0 1253 then call iox_$detach_iocb ((shared.compx_ptr), ercd); 1254 shared.compx_ptr = null (); 1255 1256 call hcs_$reset_ips_mask (ips_mask, ips_mask); 1257 1258 if ercd ^= 0 1259 then 1260 do; 1261 call com_err_ (ercd, "compose", "Closing/detaching compx file."); 1262 compose_severity_ = 5; 1263 goto clean_; 1264 end; 1265 end; 1266 1267 if shared.aux_file_data_ptr ^= null () 1268 /* terminate any aux files */ 1269 then if aux_file_data.count > 0 1270 then 1271 do i = 1 to aux_file_data.count; 1272 if aux_file_data.entry (i).iocb_ptr ^= null () 1273 then 1274 do; 1275 call iox_$close (aux_file_data.entry (i).iocb_ptr, ercd); 1276 call iox_$detach_iocb (aux_file_data.entry (i).iocb_ptr, 1277 ercd); 1278 call adjust_bit_count_ ((aux_file_data.entry (i).dir), 1279 (aux_file_data.entry (i).name), "1"b, 0, ercd); 1280 end; 1281 end; /**/ 1282 /* so clean wont try to close again */ 1283 shared.aux_file_data_ptr = null (); 1284 /* a couple of NLs so ready */ 1285 if shared.end_output & /* message misses the form */ 1286 ^(option.output_file_opt | option.check_opt) 1287 then call ioa_ ("^/"); 1288 1289 if option.debug_opt /* capture process data */ 1290 then 1291 do; 1292 call cpu_time_and_paging_ (pf_end, vcpu_end, 0); 1293 call hcs_$quota_read (get_pdir_ (), 0, 0, "0"b, "0"b, 0, pd_used_end, 1294 ercd); 1295 1296 call ioa_ ("^5xdone (^a^26t^7.3f pf=^d qt=^d " 1297 || "blks=^d la=^d ta=^d sa=^d)", shared.input_filename, 1298 dec (vcpu_end - vcpu_start) / 1e6, pf_end - pf_start, 1299 pd_used_end - pd_used_start, tblkdata.block.count, 1300 tblkdata.line_area.count, tblkdata.text_area.count, 1301 text_area.string_area_count); 1302 end; /**/ 1303 /* terminate any insert files */ 1304 if const.insert_data_ptr ^= null () 1305 then 1306 do; 1307 do i = 1 to insert_data.count; 1308 if insert_data.ptr (i) -> insert.fcb_ptr ^= null () 1309 then call msf_manager_$close 1310 ((insert_data.ptr (i) -> insert.fcb_ptr)); 1311 end; 1312 insert_data.count, insert_data.index, insert_data.ref_area.count = 0; 1313 end; 1314 1315 skip_file: 1316 if page.image_ptr ^= null () /* release the output image segment */ 1317 then 1318 do; 1319 call release_temp_segment_ ("compose", page_image.text_ptr, ercd); 1320 if ercd ^= 0 1321 then 1322 do; 1323 call com_err_ (ercd, "compose", 1324 "Releasing the output image segment."); 1325 compose_severity_ = 5; 1326 goto clean_; 1327 end; 1328 end; /**/ 1329 /* release the local area */ 1330 call translator_temp_$release_all_segments (const.local_area_ptr, ercd); 1331 if ercd ^= 0 1332 then 1333 do; 1334 call com_err_ (ercd, "compose", "Releasing the local storage area."); 1335 compose_severity_ = 5; 1336 goto clean_; 1337 end; 1338 const.local_area_ptr = null; /* assure cleanliness */ 1339 1340 end input_file_loop; 1341 1342 clean_: 1343 call comp_cleanup; /* END OF COMMAND - */ 1344 return; /* RETURN TO COMMAND PROCESSOR */ 1345 1346 print_pi_stuff: /* PI display */ 1347 on program_interrupt /* do this only once */ 1348 goto clean_; /**/ 1349 /* if this null, we havent completed */ 1350 if shared.insert_ptr ^= null /* initializing and there cant be */ 1351 then /* anything to print */ 1352 do; /* show file/line at QUIT/fault */ 1353 call ioa_ ("Input file: ^a>^a (^a)^/Line no.: ^d", 1354 rtrim (insert.dir), insert.entryname, insert.refname, ctl.lineno); 1355 1356 if const.errblk_ptr ^= null () /* if there is an error list */ 1357 then if error.count > 0 /* and errors havent been reported */ 1358 & ^option.output_file_opt & ^option.check_opt 1359 then call print_errs; 1360 1361 if option.number_opt & ^option.number_brief_opt 1362 then call print_files; 1363 end; 1364 1365 call iox_$control (iox_$user_input, "resetread", null (), ercd); 1366 goto clean_; 1367 1368 /* this undocumented entry may be used externally 1369* to return to the first call state */ 1370 clean: 1371 entry; /* if this flag is set, then */ 1372 if substr (ips_mask, 36, 1) /* ips_mask is off, turn it back on */ 1373 then call hcs_$reset_ips_mask (ips_mask, ips_mask); 1374 call comp_cleanup; 1375 return; 1376 1377 /* CLEAN UP AFTER ERROR OR QUIT */ 1378 1379 comp_cleanup: 1380 proc; 1381 re_call = "0"b; /* reset recursive call flag; if */ 1382 /* cleanup fails, the process is hosed anyway */ 1383 1384 1385 if const.shared_ptr = null () /* nothing to clean up */ 1386 then goto cln_return; /**/ 1387 /* clean up device writer */ 1388 if const.outproc_ptr ^= null 1389 then call comp_dvt.outproc (3, ercd); 1390 /* dont bother me, I'm busy */ 1391 call hcs_$set_ips_mask (""b, ips_mask); 1392 1393 on cleanup call hcs_$reset_ips_mask (ips_mask, ips_mask); 1394 1395 if shared.fcb_ptr ^= null () /* terminate input file */ 1396 then call msf_manager_$close ((shared.fcb_ptr)); 1397 /* terminate any insert files */ 1398 if const.insert_data_ptr ^= null () 1399 then 1400 do i = 1 to insert_data.count; 1401 if insert_data.ptr (i) -> insert.fcb_ptr ^= null () 1402 then call msf_manager_$close ((insert_data.ptr (i) -> insert.fcb_ptr)); 1403 end; 1404 1405 if const.option_ptr ^= null () 1406 then if option.output_file_opt /* close the output file */ 1407 & shared.compout_ptr ^= null () 1408 then 1409 do; 1410 call iox_$close ((shared.compout_ptr), ercd); 1411 call iox_$detach_iocb ((shared.compout_ptr), ercd); 1412 end; 1413 1414 if shared.compx_ptr ^= null () /* and the compx file */ 1415 then 1416 do; 1417 call iox_$close ((shared.compx_ptr), ercd); 1418 call iox_$detach_iocb ((shared.compx_ptr), ercd); 1419 end; 1420 1421 if shared.aux_file_data_ptr ^= null () 1422 /* close any auxiliary files */ 1423 then if aux_file_data.count > 0 1424 then 1425 do i = 1 to aux_file_data.count; 1426 if aux_file_data.entry (i).iocb_ptr ^= null () 1427 then 1428 do; 1429 call iox_$close (aux_file_data.entry (i).iocb_ptr, ercd); 1430 call iox_$detach_iocb (aux_file_data.entry (i).iocb_ptr, ercd) 1431 ; 1432 end; 1433 aux_file_data.count = 0; 1434 end; 1435 shared.aux_file_data_ptr = null (); /* keep it clean! */ 1436 1437 if const.errblk_ptr ^= null () /* if there is an error list */ 1438 then call release_temp_segment_ ("compose", (const.errblk_ptr), ercd); 1439 1440 if const.page_ptr ^= null 1441 then if page.image_ptr ^= null () 1442 then call release_temp_segment_ ("compose", page_image.text_ptr, 0); 1443 1444 if const.local_area_ptr ^= null 1445 then call translator_temp_$release_all_segments (const.local_area_ptr, 0); 1446 call translator_temp_$release_all_segments (const.global_area_ptr, 0); 1447 call hcs_$reset_ips_mask (ips_mask, ips_mask); 1448 1449 cln_return: 1450 return; 1451 end comp_cleanup; 1452 1453 print_errs: 1454 proc; /* print the error list */ 1455 1456 on cleanup goto clean_; 1457 1458 call ioa_ ("^/compose error list: ^d error^[s^] (Vers. ^a)", error.count, 1459 (error.count > 1), const.comp_version); 1460 1461 if ^option.brief_opt 1462 then 1463 do; 1464 call iox_$put_chars (iox_$user_output, addr (error.text), error.next, 1465 ercd); 1466 end; 1467 1468 call release_temp_segment_ ("compose", const.errblk_ptr, ercd); 1469 1470 end print_errs; 1471 1472 print_files: 1473 proc; 1474 1475 dcl file_list_iocbp 1476 ptr; 1477 dcl refptr ptr; 1478 1479 dcl ioa_$ioa_switch 1480 entry options (variable); 1481 1482 if const.option_ptr = null () | const.insert_data_ptr = null () 1483 then return; /* no option or insert_data block */ 1484 /* if the file list is wanted */ 1485 if option.number_opt & ^option.number_brief_opt 1486 then 1487 do; 1488 if option.number_append_opt & option.output_file_opt 1489 then file_list_iocbp = shared.compout_ptr; 1490 else file_list_iocbp = iox_$user_output; 1491 /* show source file */ 1492 call ioa_$ioa_switch (file_list_iocbp, "^/^-^a^[^/^]^42t^a", 1493 call_box0.refname, (length (call_box0.refname) >= 32), 1494 call_box0.path); 1495 1496 do i = 1 to insert_data.ref_area.count; 1497 /* show insert files */ 1498 refptr = insert_data.ref_area.ptr (i); 1499 do j = 1 to refptr -> insert_refs.count; 1500 call ioa_$ioa_switch (file_list_iocbp, "^4d^-^a^42t^a", 1501 60 * (i - 1) + j, rtrim (refptr -> insert_refs.name (j)), 1502 insert_data.ptr (refptr -> insert_refs.index (j)) 1503 -> insert.path); 1504 end; 1505 end; 1506 1507 if option.output_file_opt 1508 then call ioa_$ioa_switch (file_list_iocbp, "^|"); 1509 end; 1510 end print_files; 1511 1512 dcl dt_sw bit (1) static init ("0"b); 1513 dtn: 1514 entry; 1515 dt_sw = "1"b; 1516 return; 1517 dtf: 1518 entry; 1519 dt_sw = "0"b; 1520 return; 1521 1522 /* LOCAL STORAGE */ 1523 1524 dcl /* bit index values for option flags */ 1525 ( 1526 arg_optndx init (1), /* -arguments */ 1527 cb_optndx init (2), /* -change_bars */ 1528 cba_optndx init (3), /* -change_bars_artwork */ 1529 db_optndx init (4), /* -debug */ 1530 dba_optndx init (5), /* -debug_all */ 1531 dbf_optndx init (6), /* -debug_file */ 1532 dv_optndx init (7), /* -device */ 1533 ex_optndx init (8), /* -execute */ 1534 fm_optndx init (9), /* -from */ 1535 gl_optndx init (10), /* -galley */ 1536 hyph_optndx init (11), /* -hyphenate */ 1537 ind_optndx init (12), /* -indent */ 1538 if_optndx init (13), /* -input_file */ 1539 ls_optndx init (14), /* -linespace */ 1540 of_optndx init (15), /* -output_file */ 1541 pg_optndx init (16), /* -pages */ 1542 pgc_optndx init (17), /* -pages_changed */ 1543 pm_optndx init (18), /* -parameter */ 1544 pass_optndx init (19), /* -passes */ 1545 tdir_optndx init (20), /* -temp_dir - NOT IMPLEMENTED */ 1546 to_optndx init (21) /* -to */ 1547 ) fixed bin static options (constant); 1548 /**** format: off */ 1549 dcl 1 option_data static options (constant), 1550 2 opt_name (77) char (32) unal init ( 1551 /* option names */ 1552 /* CONTROL ARGS WITH PARAMETERS */ 1553 "-arguments", "-ag", /* -arguments */ 1554 "-change_bars", "-cb", /* -change_bars {A} {m}{l}{r}{d} */ 1555 "-change_bars_art", "-cba", /* -change_bars_art {A} {m}{l}{r}{d} */ 1556 "-debug", "", "", /* -debug {n1}{,n2} - UNDOCUMENTED */ 1557 "-debug_all", "", /* -debug_all {n}{,n2} - UNDOCUMENTED */ 1558 "-debug_file", "", /* -debug_file {name} - UNDOCUMENTED */ 1559 "-device", "-dev", "-dv",/* -device {name} */ 1560 "-execute", "-ex", /* -execute */ 1561 "-from", "-fm", /* -from {n} */ 1562 "-galley", "-gl", /* -galley {n1}{,n2} */ 1563 "-hyphenate", "-hyph", "-hph", /* -hyphenate {size} */ 1564 "-indent", "-in", "-ind", /* -indent {n} */ 1565 "-input_file", "-if", /* -input_file path */ 1566 "-linespace", "-ls", /* -linespace {n} */ 1567 "-output_file", "-of", /* -output_file {path} */ 1568 "-pages", "-pgs", "-page", "-pg", /* -pages {n,n} */ 1569 "-pages_changed", "-pgc",/* -pages_changed {A} */ 1570 "-parameter", "-pm", /* -parameter {string} */ 1571 "-passes", "-pass", /* -pass {n} */ 1572 "-temp_dir", "-tdir", "-td", /* -temp_dir */ 1573 "-to", /* -to {n} */ 1574 /* CONTROL ARGS WITHOUT PARAMETERS */ 1575 "-annotate", "-ann", /* -annotate */ 1576 "-brief", "-bf", /* -brief */ 1577 "-check", "-ck", /* -check */ 1578 "", "", /* -cws - OBSOLETE */ 1579 "-debug_pause", "", /* -debug_pause - UNDOCUMENTED See comp_read_ */ 1580 "-noart", "-noa", /* -noart */ 1581 "-nobell", "-no_bell", "-nob", /* -nobell */ 1582 "-nofill", "-nof", /* -nofill */ 1583 "-nohit", "-noh", /* -nohit */ 1584 "-number", "-nb", /* -number */ 1585 "-number_append", "-nba",/* -number_append */ 1586 "-number_brief", "-nbb", /* -number_brief */ 1587 "-stop", "-sp", /* -stop */ 1588 "-wait", "-wt"), /* -wait */ 1589 /* flag bit index values */ 1590 2 flag_index (77) fixed bin init (1, 1 1591 /* -arguments {s s ...} */ 1592 , 2, 2 /* -change_bars {A} 1593* {m}{left}{right}{delete} */ 1594 , 3, 3 /* -change_bars_art {A} 1595* {m}{left}{right}{delete} */ 1596 , 4, 4, 4 /* -debug {n1}{,n2} UNDOCUMENTED */ 1597 , 5, 5 /* -debug_all {n1}{,n2} UNDOCUMENTED */ 1598 , 6, 6 /* -debug_file {name} UNDOCUMENTED */ 1599 , 7, 7, 7 /* -device {name} */ 1600 , 8, 8 /* -execute {" ... "} */ 1601 , 9, 9 /* -from {n} */ 1602 , 10, 10 /* -galley {n2}{,n2} */ 1603 , 11, 11, 11 /* -hyphenation */ 1604 , 12, 12, 12 /* -indent */ 1605 , 13, 13 /* -input_file path */ 1606 , 14, 14 /* -linespace */ 1607 , 15, 15 /* -output_file */ 1608 , 16, 16, 16, 16 1609 /* -pages {n,n} */ 1610 , 17, 17 /* -pages_changed {A} */ 1611 , 18, 18 /* -parameter */ 1612 , 19, 19 /* -pass */ 1613 , 20, 20, 20 /* -temp_dir */ 1614 , 21 /* -to */ 1615 , 22, 22 /* -annotote */ 1616 , 23, 23 /* -brief */ 1617 , 24, 24 /* -check */ 1618 , 25, 25 /* -compress_white_space - OBSOLETE */ 1619 , 26, 26 /* -debug_pause UNDOCUMENTED 1620* See comp_read_ */ 1621 , 27, 27 /* -noart */ 1622 , 28, 28, 28 /* -nobell */ 1623 , 29, 29 /* -nofill */ 1624 , 30, 30 /* -nohit */ 1625 , 31, 31 /* -number */ 1626 , 32, 32 /* -number_append */ 1627 , 33, 33 /* -number_brief */ 1628 , 34, 34 /* -stop */ 1629 , 35, 35); /* -wait */ 1630 /**** format: on */ 1631 1632 dcl argl fixed; /* command line argument length */ 1633 dcl argp ptr; /* command line argument pointer */ 1634 dcl atd char (256); /* attach desc for compout file */ 1635 /* something smelly in command line */ 1636 dcl badcall bit (1) init ("0"b); 1637 dcl 1 bulk_file, /* data for bulk output file */ 1638 2 dir char (168) init (""), 1639 2 entryname char (32) init (""), 1640 2 path char (200) var init (""), 1641 /* seg pointer for overwrite check */ 1642 2 ptr ptr init (null); 1643 dcl dsm_dir char (168); /* dir containing comp_dsm */ 1644 /* path of comp_dsm */ 1645 dcl dsm_path char (200) init (""); 1646 dcl ctltxtptr ptr; /* pointer to control line structure */ 1647 /* local name of compose's dir */ 1648 dcl compose_dir char (168) aligned; 1649 dcl compout_name char (32); /* local name of compout file */ 1650 /* path of compout file */ 1651 dcl compout_path char (200) var; 1652 dcl compout_seg_ptr /* pointer to **.compout */ 1653 ptr; 1654 dcl dsm_baseptr ptr; 1655 dcl dsm_ercd fixed bin (35); /* error code for device module */ 1656 dcl ercd fixed bin (35); /* system error code */ 1657 dcl filndx fixed bin; /* index into source file table */ 1658 dcl hscales (7) fixed bin (31) static options (constant) 1659 init (7200, 6000, 72000, 2834.65, 12000, 1000, 0); 1660 dcl (i, j) fixed bin; /* working index */ 1661 dcl iarg fixed bin; /* command line argument counter */ 1662 dcl ips_mask bit (36) aligned static init (""b); 1663 dcl local_arg char (200) var; /* local copy of ctl arg for parsing */ 1664 dcl 1 meas1 aligned like text_entry.cur; 1665 /* for cbar measuring */ 1666 dcl 1 meas2 aligned like text_entry.cur; 1667 /* for cbar measuring */ 1668 dcl nargs fixed init (0); /* number of command line arguments */ 1669 dcl 1 null_info aligned like text_entry.info; 1670 dcl option_keyword char (32); /* option keyword for errors */ 1671 dcl optndx fixed bin; /* flag index value for options */ 1672 dcl optnptr ptr; /* pointer to option bit string */ 1673 dcl optns (36) bit (1) unal based (optnptr); 1674 /* option flag string */ 1675 dcl pd_used_end fixed (18); /* pdir quota used at termination */ 1676 dcl pd_used_start fixed (18); /* pdir quota used at invocation */ 1677 dcl pf_end fixed (35); /* page faults at termination */ 1678 dcl pf_start fixed (35); /* page faults at invocation */ 1679 /* recursive call flag */ 1680 dcl re_call bit (1) static init ("0"b); 1681 dcl 1 source aligned like insert based (source_ptr); 1682 dcl source_ptr ptr; 1683 dcl 1 source_file aligned like insert.file based (source_file_ptr); 1684 dcl source_file_ptr 1685 ptr; 1686 dcl 1 source_list aligned static, /* source file table */ 1687 2 count fixed bin, /* file count */ 1688 2 ptr (200) ptr; /* data block pointers */ 1689 dcl vcpu_start fixed (71); /* vcpu microseconds at invocation */ 1690 dcl vcpu_end fixed (71); /* vcpu microseconds at termination */ 1691 dcl wdir char (168) init (""); 1692 /* working dir */ 1693 1694 dcl adjust_bit_count_ 1695 entry (char (168), char (32), bit (1), fixed, 1696 fixed (35)); 1697 dcl com_err_ entry options (variable); 1698 dcl cpu_time_and_paging_ 1699 entry (fixed bin (35), fixed bin (71), fixed bin (35)); 1700 dcl cu_$arg_count entry (fixed bin); 1701 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 1702 dcl expand_pathname_ 1703 entry (char (*), char (*), char (*), fixed bin (35)); 1704 dcl expand_pathname_$add_suffix 1705 entry (char (*), char (*), char (*), char (*) aligned, 1706 fixed bin (35)); 1707 dcl get_pdir_ entry returns (char (168)); 1708 dcl get_quota entry options (variable); 1709 dcl get_wdir_ entry returns (char (168)); 1710 dcl hcs_$fs_get_path_name 1711 entry (ptr, char (*) aligned, fixed bin (35), 1712 char (*) aligned, fixed bin (35)); 1713 dcl hcs_$initiate entry (char (*), char (*) aligned, char (*) aligned, 1714 fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 1715 dcl hcs_$make_ptr entry (ptr, char (*) aligned, char (*) aligned, ptr, 1716 fixed bin (35)); 1717 dcl hcs_$make_seg entry (char (*) aligned, char (*) aligned, char (*), 1718 fixed bin (5), ptr, fixed bin (35)); 1719 dcl hcs_$quota_read 1720 entry (char (*), fixed bin (18), fixed bin (71), 1721 bit (36) aligned, bit (36), fixed bin (1), 1722 fixed bin (18), fixed bin (35)); 1723 dcl hcs_$reset_ips_mask 1724 entry (bit (36) aligned, bit (36) aligned); 1725 dcl hcs_$set_ips_mask 1726 entry (bit (36) aligned, bit (36) aligned); 1727 dcl hcs_$set_max_length_seg 1728 entry (ptr, fixed bin (18), fixed bin (35)); 1729 dcl hcs_$truncate_seg 1730 entry (ptr, fixed bin (19), fixed bin (35)); 1731 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), 1732 fixed bin (35)); 1733 dcl iox_$attach_name 1734 entry (char (*), ptr, char (*), ptr, fixed bin (35)); 1735 dcl iox_$close entry (ptr, fixed bin (35)); 1736 dcl iox_$control entry (ptr, char (*), ptr, fixed (35)); 1737 dcl iox_$detach_iocb 1738 entry (ptr, fixed bin (35)); 1739 dcl iox_$open entry (ptr, fixed bin (35), bit (1) aligned, 1740 fixed bin (35)); 1741 dcl iox_$put_chars entry (ptr, ptr, fixed bin (35), fixed bin (35)); 1742 dcl msf_manager_$close 1743 entry (ptr); 1744 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 1745 dcl release_temp_segment_ 1746 entry (char (*), ptr, fixed bin (35)); 1747 dcl search_paths_$find_dir 1748 entry (char (*), ptr, char (*), char (*), char (*), 1749 fixed bin (35)); 1750 dcl suffixed_name_$new_suffix 1751 entry (char (*), char (*), char (*), char (32), 1752 fixed bin (35)); 1753 dcl term_$seg_ptr entry (ptr, fixed bin (35)); 1754 dcl term_$single_refname 1755 entry (char (*) aligned, fixed bin (35)); 1756 dcl terminate_file_ 1757 entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 1758 dcl translator_temp_$release_all_segments 1759 entry (ptr, fixed bin (35)); 1760 1761 /* EXTERNAL STORAGE */ 1762 1763 dcl arg char (argl) based (argp); 1764 /* command line argument */ 1765 dcl command_arg (command_arg_ct) char (1020) var 1766 based (command_arg_ptr); 1767 dcl command_arg_ct fixed bin; 1768 dcl command_arg_ptr 1769 ptr; /* control arg names string */ 1770 dcl ctlargstr char (32 * hbound (option_data.opt_name, 1)) 1771 based (addr (option_data.opt_name)); 1772 1773 dcl (addr, after, before, baseno, bin, char, dec, divide, empty, hbound, 1774 index, length, ltrim, max, min, null, pointer, rtrim, search, size, 1775 stackbaseptr, substr, unspec, verify) 1776 builtin; 1777 1778 dcl (cleanup, comp_abort, conversion, program_interrupt) 1779 condition; 1780 1781 dcl ( 1782 error_table_$badopt, 1783 error_table_$entlong, 1784 error_table_$namedup, 1785 error_table_$noarg, 1786 error_table_$noentry, 1787 error_table_$segknown, 1788 error_table_$unimplemented_version 1789 ) fixed (35) ext static; 1790 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 1791 2 1 /* BEGIN INCLUDE FILE comp_aux_file.incl.pl1 */ 2 2 2 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 4 2 5 dcl 1 aux_file_data 2 6 aligned based (shared.aux_file_data_ptr), 2 7 /* data block for auxiliary write files */ 2 8 2 count fixed, /* count of known files */ 2 9 2 entry (25), /* for each known file */ 2 10 3 iocb_ptr ptr, /* iocb pointer */ 2 11 3 name char (32), /* entryname */ 2 12 3 dir char (168), /* containing directory */ 2 13 3 path char (200) varying; 2 14 /* absolute pathname */ 2 15 2 16 /* END INCLUDE FILE comp_aux_file.incl.pl1 */ 1792 3 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 3 2 3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 4 3 5 dcl 1 col /* the text column */ 3 6 aligned based (shared.colptr), 3 7 2 blkptr (100) ptr, /* pointers to text blocks */ 3 8 2 depth_adj fixed bin (31), /* for variable start depth */ 3 9 2 ftrptr ptr, /* -> column footer */ 3 10 2 ftrusd fixed bin (31), /* column footer space used */ 3 11 2 gutter fixed bin (31), /* column separation */ 3 12 2 hdr like colhdr, /* column control stuff */ 3 13 2 hdrptr ptr, /* -> column header */ 3 14 2 hdrusd fixed bin (31), /* column header space used */ 3 15 2 margin, /* margin settings for column */ 3 16 3 left fixed bin (31), 3 17 3 right fixed bin (31), 3 18 2 parms, /* text parms for the column */ 3 19 3 measure fixed bin (31); /* column width */ 3 20 3 21 dcl 1 colhdr aligned based (const.colhdrptr), 3 22 /* an empty column header */ 3 23 2 balblk fixed bin, /* block to begin column balancing */ 3 24 2 baldepth fixed bin (31), /* page depth at balance point */ 3 25 2 balftn, /* footnotes at balance point */ 3 26 3 ct fixed bin, /* count */ 3 27 3 usd fixed bin (31), /* space used */ 3 28 3 blkndx (40) fixed bin, /* block index values */ 3 29 2 balusd fixed bin (31), /* space used up to balance point */ 3 30 2 blkct fixed bin, /* text block count */ 3 31 2 depth fixed bin (31), /* current page depth in the column */ 3 32 2 ftn like balftn, /* footnotes */ 3 33 2 pspc fixed bin (31), /* current white space */ 3 34 2 net fixed bin (31), /* net usable space in the column */ 3 35 2 used fixed bin (31); /* space used in this column */ 3 36 /* for quick reference */ 3 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 3 38 3 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 1793 4 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 4 2 4 3 /* Written: JA Falksen - 6/81 4 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 4 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 4 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 4 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 4 8* (3) char (*) var. Version 4. */ 4 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 4 10* sequence for comp_dvt.displayproc. - Version 5. */ 4 11 4 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 13 4 14 dcl comp_dvid_version 4 15 fixed bin static options (constant) init (5); 4 16 4 17 dcl 1 comp_dvid aligned based (const.dvidptr), 4 18 2 version fixed bin, /* version of this structure and */ 4 19 /* of comp_dvt */ 4 20 2 devname char (32), /* name of device */ 4 21 2 dvt_r bit (18); /* device table offset */ 4 22 4 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 1794 5 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 5 2 5 3 /* Written: 9/80 - JA Falksen 5 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 5 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 5 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 5 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 5 8* (3) char (*) var. Version 4. */ 5 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 5 10* sequence for comp_dvt.displayproc. - Version 5. 5 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 5 12**/ 5 13 5 14 /* All names which end in "_r"are offset values within the device table */ 5 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 5 16 5 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 5 18 5 19 dcl 1 comp_dvt aligned based (const.devptr), 5 20 2 devclass char (32), /* what general kind of device is */ 5 21 /* this, currently available: */ 5 22 /* "printer" (includes terminals), */ 5 23 /* "braille", "bitmap" */ 5 24 2 outproc entry /* page output processor */ 5 25 (fixed bin, /* function - 0=build */ 5 26 /* 1=init page */ 5 27 /* 2=init file */ 5 28 /* 3=cleanup */ 5 29 fixed bin (35)),/* error code */ 5 30 2 footproc entry /* footnote reference proc */ 5 31 ((3) char (*) var, 5 32 /* reference string (IN/OUT) */ 5 33 ptr), /* comp_dvt_p (IN) */ 5 34 2 artproc entry (), /* artwork proc */ 5 35 /* dont know how to describe yet */ 5 36 2 displayproc 5 37 entry /* string display interpreter */ 5 38 (char (*) var, /* raw input string */ 5 39 fixed bin (24), /* chars used in this call */ 5 40 bit (1)) /* 1= dont show display errors */ 5 41 returns (char (*) var), 5 42 /* interpreted output string */ 5 43 /* following values are in millipoints */ 5 44 2 min_WS fixed bin (31), /* minimum whitespace */ 5 45 2 min_lead fixed bin (31), /* minimun lead */ 5 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 5 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 5 48 2 def_vmt fixed bin (31), /* default .vmt */ 5 49 2 def_vmh fixed bin (31), /* default .vmh */ 5 50 2 def_vmf fixed bin (31), /* default .vmf */ 5 51 2 def_vmb fixed bin (31), /* default .vmb */ 5 52 2 pdw_max fixed bin (31), /* max page width available */ 5 53 2 pdl_max fixed bin (31), /* max page length available, */ 5 54 /* (0 = unlimited) */ 5 55 2 upshift fixed bin (31), /* footnote reference shift */ 5 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 5 57 2 lettersp fixed bin (31), /* max letterspacing */ 5 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 5 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 5 60 2 init_fam fixed bin, /* initial family index */ 5 61 2 init_mem fixed bin, /* initial member index */ 5 62 2 foot_fam fixed bin, /* initial foot family index */ 5 63 2 foot_mem fixed bin, /* initial foot member index */ 5 64 2 init_family 5 65 char (32), /* initial font family to use */ 5 66 2 init_member 5 67 char (32), /* initial font member to use */ 5 68 ( /* the following are offsets */ 5 69 2 atd_r, /* attach desc for on-line output */ 5 70 2 dvc_r, /* device control table relptr */ 5 71 2 comment_r, /* comment string relptr */ 5 72 2 cleanup_r, /* "cleanup" string relptr */ 5 73 2 medsel_table_r /* media select table relptr */ 5 74 ) bit (18) aligned, 5 75 2 foot_family 5 76 char (32), /* family for footnote reference */ 5 77 2 foot_member 5 78 char (32), /* member for footnote reference */ 5 79 /* if one was specified */ 5 80 2 sws unaligned, 5 81 3 interleave /* 0- page block has lines in column */ 5 82 bit (1), /* order left-to-right */ 5 83 /* 1- page block has lines in line */ 5 84 /* order top-to-bottom */ 5 85 3 justifying /* 1- device justifies lines */ 5 86 bit (1), 5 87 3 mbz bit (24), 5 88 3 endpage bit (9), /* EOP char if not "0"b */ 5 89 2 open_mode fixed bin (35), /* when going to a file */ 5 90 2 recleng fixed bin, /* length of tape records */ 5 91 2 family_ct fixed bin, /* # families present */ 5 92 2 family (comp_dvt.family_ct), 5 93 /* families of fonts defined */ 5 94 3 member_r bit (18) aligned, 5 95 /* member table relptr */ 5 96 3 name char (32); /* family name */ 5 97 5 98 5 99 /* The usage formula for units: */ 5 100 /* */ 5 101 /* rel_units * length_in_points */ 5 102 /* ---------------------------- = length_in_units */ 5 103 /* points_per_EM */ 5 104 5 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 1795 6 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl compose_severity_ 6 6 fixed bin (35) ext static; 6 7 dcl comp_ entry; 6 8 dcl comp_art_ entry (ptr, bit (1)); 6 9 dcl comp_block_ctls_ 6 10 entry (fixed bin); 6 11 dcl comp_break_ entry (fixed bin, fixed bin); 6 12 dcl comp_break_ctls_ 6 13 entry (fixed bin); 6 14 dcl comp_ctls_ entry (bit (1) aligned); 6 15 dcl comp_eject_page_ 6 16 entry; 6 17 dcl comp_expr_eval_ 6 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 6 19 fixed bin, bit (1), fixed bin (31), char (*) var, 6 20 bit (9), fixed bin (35)); 6 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 6 22 fixed bin (21), fixed bin (21), ptr) 6 23 returns (char (*) var); 6 24 dcl comp_fill_ entry; 6 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 6 26 dcl comp_format_ctls_ 6 27 entry (fixed bin); 6 28 dcl comp_get_file_$find 6 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 6 30 fixed bin (35)); 6 31 dcl comp_get_file_$open 6 32 entry (ptr, bit (1), fixed bin (35)); 6 33 dcl comp_head_page_ 6 34 entry (fixed bin (31)); 6 35 dcl comp_hft_ctls_ entry (fixed bin); 6 36 dcl comp_hft_ctls_$title 6 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 6 38 dcl comp_init_$one entry; 6 39 dcl comp_init_$two entry; 6 40 dcl comp_init_$three 6 41 entry; 6 42 dcl comp_insert_ctls_ 6 43 entry (fixed bin); 6 44 dcl comp_make_page_ 6 45 entry (fixed bin, bit (1)); 6 46 dcl comp_make_page_$cleanup 6 47 entry; 6 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 6 49 fixed bin (31), ptr, ptr, ptr); 6 50 dcl comp_read_$name 6 51 entry (char (*) var, fixed bin (21), fixed bin (21), 6 52 ptr) returns (char (*) var); 6 53 dcl comp_read_$number 6 54 entry (char (*) var, (*) fixed bin (31), 6 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 6 56 returns (fixed bin (31)); 6 57 dcl comp_read_$line 6 58 entry (ptr, char (*) var, bit (1)); 6 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 6 60 char (*) var); 6 61 dcl comp_report_$ctlstr 6 62 entry options (variable); 6 63 /**** (sev, code, info, line, ctl_str, args... */ 6 64 dcl comp_report_$exact 6 65 entry (char (*), ptr); 6 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 6 67 bit (1)); 6 68 dcl comp_tbl_ctls_ entry (fixed bin); 6 69 dcl comp_title_block_ 6 70 entry (ptr); 6 71 dcl comp_update_symbol_ 6 72 entry (bit (1), bit (1), bit (1), char (32), 6 73 char (*) var); 6 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 6 75 dcl comp_util_$add_text 6 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 6 77 dcl comp_util_$display 6 78 entry (char (*) var, fixed bin, bit (1)) 6 79 returns (char (*) var); 6 80 dcl comp_util_$escape 6 81 entry (char (*) var, ptr); 6 82 dcl comp_util_$getblk 6 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 6 84 dcl comp_util_$num_display 6 85 entry (ptr, fixed bin) returns (char (256) var); 6 86 dcl comp_util_$pageno 6 87 entry (fixed bin, char (*) var); 6 88 dcl comp_util_$pictures /* emit pending pictures */ 6 89 entry /**/ 6 90 (ptr); /* current text block */ 6 91 dcl comp_util_$pop entry (char (32)); 6 92 dcl comp_util_$push 6 93 entry (char (32)); 6 94 dcl comp_util_$relblk 6 95 entry (fixed bin, ptr); 6 96 dcl comp_util_$replace_text 6 97 entry (ptr, bit (1), ptr, ptr); 6 98 dcl comp_util_$search_tree 6 99 entry (char (32), bit (1)); 6 100 dcl comp_util_$set_bin 6 101 entry (fixed bin (31), char (32) var, fixed bin (31), 6 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 6 103 fixed bin (31)); 6 104 dcl comp_util_$set_net_page 6 105 entry (bit (1)); 6 106 dcl comp_util_$translate 6 107 entry (char (*) var) returns (char (*) var); 6 108 dcl comp_write_block_ 6 109 entry (fixed bin); 6 110 dcl comp_write_page_ 6 111 entry; 6 112 6 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 1796 7 1 /* BEGIN INCLUDE FILE comp_error.incl.pl1 */ 7 2 7 3 dcl 1 error aligned based (const.errblk_ptr), /* diagnostic error messages */ 7 4 2 count fixed bin, /* count of errors logged */ 7 5 2 next fixed bin (35), /* char offset for next message */ 7 6 2 text char (const.max_seg_chars - 400) unal; /* messages */ 7 7 7 8 /* END INCLUDE FILE comp_error.incl.pl1 */ 1797 8 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 8 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 8 7 2 bachelor bit (1), /* 1= has no members */ 8 8 2 devfnt fixed bin, /* font in the device */ 8 9 2 fam_name char (32), /* family name */ 8 10 2 famndx fixed bin, /* family index */ 8 11 2 fntptr ptr, /* font table pointer */ 8 12 2 mem_name char (32), /* /member name (or null) */ 8 13 2 memndx fixed bin, /* member index */ 8 14 2 memptr ptr, /* member table pointer */ 8 15 2 name char (65) var, /* font name */ 8 16 2 size fixed bin (31), /* requested point size */ 8 17 2 ps fixed bin (31), /* effective point size */ 8 18 2 fcs_str char (8); /* FCS string */ 8 19 8 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 1798 9 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr), 9 6 /* data for footnote blocks */ 9 7 2 highndx fixed (35), /* highest active footnote index */ 9 8 2 blkptr (250) ptr; /* block pointers */ 9 9 /* footnote header data block */ 9 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr); 9 11 /* formatting parms for footnotes */ 9 12 dcl 1 footnote_parms 9 13 aligned like default_parms 9 14 based (const.footnote_parms_ptr); 9 15 9 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */ 1799 10 1 /* BEGIN INSERT FILE ... comp_insert.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl 1 insert_data aligned based (const.insert_data_ptr), 10 6 2 count fixed bin, /* count of allocated data blocks */ 10 7 2 index fixed bin, /* the current block */ 10 8 2 ptr (1000) ptr, /* insert file data block pointers */ 10 9 2 ref_area, /* ref name string area data */ 10 10 3 count fixed bin, /* count of allocated areas */ 10 11 3 ptr (100) ptr; /* area pointers */ 10 12 /* insert call stack */ 10 13 dcl 1 call_stack aligned based (const.call_stk_ptr), 10 14 2 count fixed bin, /* count of allocated boxes */ 10 15 2 index fixed bin, /* current stack index */ 10 16 2 ptr (0:50) ptr; /* stack entry ptrs */ 10 17 dcl call_box_ptr ptr; 10 18 dcl 1 call_box aligned like insert.file based (call_box_ptr); 10 19 dcl 1 call_box0 aligned like insert.file based (call_stack.ptr (0)); 10 20 10 21 dcl 1 insert_refs aligned based, /* ref names structure */ 10 22 2 count fixed bin, /* count of names in area */ 10 23 2 index (60) fixed bin, /* insert_data index values */ 10 24 2 name (60) char (32) unal; 10 25 /* the ref names */ 10 26 10 27 dcl refname_str char (refstr_len) based (refstr_ptr); 10 28 /* for searching */ 10 29 dcl refstr_len fixed bin; /* length of refname search string */ 10 30 dcl refstr_ptr ptr; /* refname string pointer */ 10 31 /* data for an insert file */ 10 32 dcl 1 insert aligned based (shared.insert_ptr), 10 33 2 file, /* also used for source files */ 10 34 3 charcount 10 35 fixed bin (21), /* segment character count */ 10 36 3 comp_no fixed bin, /* msf component number */ 10 37 3 dir char (168), /* containing dir */ 10 38 3 entryname 10 39 char (32), /* primary entryname */ 10 40 3 exit_lineno 10 41 fixed bin (35), /* line number of .ifi */ 10 42 3 fcb_ptr ptr, /* FCB pointer for msf manager */ 10 43 3 info like text_entry.info, 10 44 3 insert_ptr /* self pointer - needed when */ 10 45 ptr, /* struc is in the call stack */ 10 46 /* 3 ntext fixed bin (21), /* character count of text line */ 10 47 3 path char (200) var, /* complete pathname */ 10 48 3 pointer ptr, /* segment pointer */ 10 49 3 posn fixed bin (21), /* input character position */ 10 50 3 refname char (200) var, /* for source files only */ 10 51 2 callers_name 10 52 char (100), /* refname of calling file */ 10 53 2 dtcm bit (36), /* fs date-time-modified */ 10 54 2 refndx fixed bin, /* CURRENT refname index for file */ 10 55 2 thrb fixed bin unsigned, 10 56 /* backward thread index in insert stack */ 10 57 2 label, /* label data per insert level */ 10 58 3 count fixed bin, 10 59 3 line (250) fixed bin unsigned, 10 60 3 position (250) fixed bin (21), 10 61 3 value (250) char (32); 10 62 10 63 /* empty file data structure */ 10 64 dcl 1 init_file_data 10 65 static options (constant), 10 66 2 charcount fixed bin (21) init (0), 10 67 /* segment character count */ 10 68 2 comp_no fixed bin init (0), 10 69 /* msf component number */ 10 70 2 dir char (168) init (""), 10 71 /* containing dir */ 10 72 2 entryname char (32) init (""), 10 73 /* primary entryname */ 10 74 2 exit_lineno 10 75 fixed bin (35) init (0), 10 76 /* line number of .ifi */ 10 77 2 fcb_ptr ptr init (null),/* FCB pointer for msf manager */ 10 78 2 info, /* stuff created during line input */ 10 79 3 fileno /* input file index */ 10 80 fixed bin init (0), 10 81 3 lineno /* input file line number */ 10 82 fixed bin init (0), 10 83 3 lineno0 /* call_box0 line number */ 10 84 fixed bin init (0), 10 85 2 insert_ptr ptr init (null),/* self pointer - needed when */ 10 86 /* struc is in the call stack */ 10 87 /* 2 ntext fixed bin (21) init (0), 10 88*/* /* character count of text line */ 10 89 2 path char (200) var init (""), 10 90 /* complete pathname */ 10 91 2 pointer ptr init (null),/* segment pointer */ 10 92 2 posn fixed bin (21) init (1), 10 93 /* input character position */ 10 94 2 refname char (200) var init (""); 10 95 /* for source files only */ 10 96 10 97 /* END INSERT FILE ... comp_insert.incl.pl1 */ 1800 11 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 11 2 11 3 dcl option_version fixed bin (35) static options (constant) init (2); 11 4 11 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 11 6 2 version fixed bin (35), 11 7 /* Options with parameters */ 11 8 (2 argument_opt, /* -argument option flag */ 11 9 2 cbar_opt, /* -change_bars option flag */ 11 10 2 cbar_art_opt, /* -change_bars_art option flag */ 11 11 2 debug_opt, /* -debug option flag */ 11 12 2 db_all_opt, /* -debug_all option flag */ 11 13 2 db_file_opt, /* -debug_file option flag */ 11 14 2 device_opt, /* -device option flag */ 11 15 2 execute_opt, /* -execute option flag */ 11 16 2 from_opt, /* -from option flag */ 11 17 2 galley_opt, /* -galley option flag */ 11 18 2 hyph_opt, /* -hyphenation option flag */ 11 19 2 indent_opt, /* -indent option flag */ 11 20 2 input_file_opt, /* -input_file option flag */ 11 21 2 linespace_opt, /* -linespace option flag */ 11 22 2 output_file_opt, /* -output_file option flag */ 11 23 2 pages_opt, /* -pages option flag */ 11 24 2 page_chng_opt, /* -pages_changed option flag */ 11 25 2 parameter_opt, /* -parameter option flag */ 11 26 2 passes_opt, /* -passes option flag */ 11 27 2 tdir_opt, /* -temp_dir option flag */ 11 28 2 to_opt, /* -to option flag */ 11 29 /* Options without parameters */ 11 30 2 annot_opt, /* -annotate */ 11 31 2 brief_opt, /* -brief option flag */ 11 32 2 check_opt, /* -check option flag */ 11 33 2 cws_opt, /* -cws option flag */ 11 34 2 db_pause_opt, /* -debug_pause option flag */ 11 35 2 noart_opt, /* -noart option flag */ 11 36 2 nobell_opt, /* -no_bell option flag */ 11 37 2 nofill_opt, /* -nofill option flag */ 11 38 2 nohit_opt, /* -nohit option flag */ 11 39 2 number_opt, /* -number option flag */ 11 40 2 number_append_opt, /* -number_append option flag */ 11 41 2 number_brief_opt, /* -number_brief option flag */ 11 42 2 stop_opt, /* -stop option flag */ 11 43 2 wait_opt) unal bit (1), /* -wait option flag */ 11 44 2 MBZ bit (2) unal, 11 45 /* Optional parameters */ 11 46 2 arg_count fixed bin, /* count of -ag values */ 11 47 2 cbar, /* change bar data */ 11 48 3 level char (1), /* change level character (ASCII NUL) */ 11 49 3 place char (1), /* placement character */ 11 50 3 space fixed bin (31), /* extra left margin space needed */ 11 51 3 left, /* left margin mark data */ 11 52 4 sep fixed bin (31), /* separation */ 11 53 4 width fixed bin (31), /* mark width */ 11 54 4 mark char (80) varying, /* the left margin mark */ 11 55 3 right, /* right margin mark data */ 11 56 4 sep fixed bin (31), /* separation */ 11 57 4 width fixed bin (31), /* mark width */ 11 58 4 mark char (80) varying, /* the right margin mark */ 11 59 3 del, /* deletion mark data */ 11 60 4 sep fixed bin (31), /* separation */ 11 61 4 width fixed bin (31), /* mark width */ 11 62 4 mark char (80) varying, /* the deletion mark */ 11 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 11 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 11 65 2 db_file char (200) var, /* file pathanme for debug */ 11 66 2 db_file_after fixed bin (35), /* debug file starting line */ 11 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 11 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 11 69 2 device char (32) varying, /* output device */ 11 70 2 extra_indent fixed bin (31), /* extra indent value */ 11 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 11 72 2 line_1 fixed bin (35), /* initial line for output */ 11 73 2 line_2 fixed bin (35), /* final line for output */ 11 74 2 linespace fixed bin (31), /* line spacing value */ 11 75 2 pglstct fixed bin (35), /* number of page list entries */ 11 76 2 pglstndx fixed bin (35), /* index for -pages list */ 11 77 2 pglst (0:49), /* list of requested pages */ 11 78 3 from char (32) var, 11 79 3 to char (32) var, 11 80 2 parameter char (80) varying, /* parameter from command line */ 11 81 2 passes fixed bin, /* passes remaining */ 11 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 11 83 11 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 11 85 1801 12 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 12 2 12 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 4 12 5 dcl max_image_lines 12 6 fixed static options (constant) init (1000); 12 7 dcl max_cols fixed static options (constant) init (20); 12 8 12 9 dcl page_version fixed bin static options (constant) init (5); 12 10 /* composed page structure */ 12 11 dcl 1 page aligned based (const.page_ptr), 12 12 2 version fixed bin, /* version of this structure */ 12 13 2 parms aligned like page_parms, 12 14 /* page formatting parameters */ 12 15 2 hdr aligned like page_header, 12 16 /* page control stuff */ 12 17 2 image_ptr ptr, /* pointer to the madeup page image */ 12 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 12 19 2 col_image_ptr 12 20 (-2:21) ptr; /* pointers to column images */ 12 21 /* col -1 is for line numbers and */ 12 22 /* left margin change bars; */ 12 23 /* col -2 is for */ 12 24 /* right margin change bars */ 12 25 /* and/or annotation * / 12 26* /* page control stuff */ 12 27 dcl 1 page_header aligned based (const.page_header_ptr), 12 28 2 sws, 12 29 3 art bit (1) unal, /* 1 = header/footer art */ 12 30 3 blankpage 12 31 bit (1) unal, /* 1 = intentional blank page */ 12 32 3 frontpage 12 33 bit (1) unal, /* 1 = odd page number */ 12 34 3 headed bit (1) unal, /* 1 = page header has been written */ 12 35 3 modified bit (1) unal, /* 1 = page has been modified */ 12 36 3 overflow bit (1) unal, /* OBSOLETE */ 12 37 3 MBZ bit (12) unal, 12 38 3 dot_addltr 12 39 char (1) unal, /* dot page add letter, if any */ 12 40 3 pgc_select 12 41 char (1) unal, /* for selecting change pages */ 12 42 2 baldepth fixed bin (31), /* page depth at balance point */ 12 43 2 balusd fixed bin (31), /* space used at balance point */ 12 44 2 col_count fixed bin, /* highest value of col_index for the page */ 12 45 2 col_index fixed bin, /* column index */ 12 46 2 depth fixed bin (31), /* current page depth */ 12 47 2 hdspc fixed bin (31), /* TOP white space */ 12 48 2 lmarg fixed bin (31), /* left margin for this page */ 12 49 2 net fixed bin (31), /* net usable space on the page */ 12 50 2 pageno char (32) var, /* current page number */ 12 51 2 used fixed bin (31); /* space already used on the page */ 12 52 12 53 dcl page_image_version 12 54 fixed bin (35) static options (constant) init (2); 12 55 /* structure passed to writers */ 12 56 dcl 1 page_image aligned based (page.image_ptr), 12 57 2 version fixed bin (35), /* structure version no */ 12 58 2 count fixed bin, /* count of page image lines */ 12 59 2 file_id char (32) var, /* compout identifier */ 12 60 2 func fixed bin, /* function code; 0 = build, 12 61* 1 = intialize, 2 = cleanup */ 12 62 2 text_ptr ptr, /* pointer to the text area */ 12 63 /* the image lines */ 12 64 2 line (max_image_lines), 12 65 3 sws, 12 66 4 quad bit (6) unal, /* text set position flags */ 12 67 4 art bit (1) unal, /* 1 = artwork in the line */ 12 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 12 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 12 70 4 white bit (1) unal, /* line is white */ 12 71 4 MBZ bit (26) unal, 12 72 3 depth fixed bin (31), /* page depth for the text */ 12 73 3 gaps fixed bin, /* number of WS gaps in the line */ 12 74 3 info like text_entry.info, 12 75 /* input file info */ 12 76 3 lead fixed bin (31), /* lead value if trailing WS */ 12 77 3 lfnt fixed bin, /* font at the left margin */ 12 78 3 lmarg fixed bin (31), /* text left margin position */ 12 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 12 80 3 net fixed bin (31), /* net width for filling */ 12 81 3 pos fixed bin (31), /* current horiz position */ 12 82 3 ptr ptr, /* pointer to the text */ 12 83 3 rmarg fixed bin (31), /* text right margin position */ 12 84 3 width fixed bin (31); /* width of the text */ 12 85 /* current page formatting parms */ 12 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 12 87 2 init_page_depth 12 88 fixed bin (31), /* initial page depth */ 12 89 2 length fixed bin (31), /* page length */ 12 90 2 lmarg, /* page left margin */ 12 91 3 even fixed bin (31), 12 92 3 odd fixed bin (31), 12 93 2 margin, /* margin values */ 12 94 3 top fixed bin (31), 12 95 3 header fixed bin (31), 12 96 3 footer fixed bin (31), 12 97 3 bottom fixed bin (31), 12 98 2 measure fixed bin (31), /* line space available for text */ 12 99 2 net, /* net usable space on page */ 12 100 3 even fixed bin (31), /* even pages */ 12 101 3 odd fixed bin (31), /* odd pages */ 12 102 /* arrays at the end */ 12 103 2 cols, /* columns defined for the page */ 12 104 3 bal bit (1) unal, /* column balancing control flag */ 12 105 3 MBZ bit (17) unal, 12 106 3 count fixed bin unal; /* the number of columns */ 12 107 /* default page formatting parms */ 12 108 dcl 1 init_page_parms 12 109 aligned like page_parms 12 110 based (const.init_page_parms_ptr); 12 111 12 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 1802 13 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 13 2 13 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 4 13 5 dcl shared_version fixed bin (35) static options (constant) init (17); 13 6 13 7 dcl 1 shared aligned based (const.shared_ptr), 13 8 2 version fixed bin (35), /* version of this structure */ 13 9 2 chars, 13 10 ( 3 sym_delim, /* delimiter for symbols */ 13 11 3 ttl_delim, /* delimiter for title parts */ 13 12 3 wrd_brkr /* word break character */ 13 13 ) char (1) unal, 13 14 3 PAD char (1) unal, 13 15 2 cbar_type char (4) var, /* change bar type */ 13 16 2 dot_add_letter /* dot page add letter */ 13 17 char (1) var, 13 18 2 EN_width fixed bin (31), /* width of EN in current font */ 13 19 2 eqn_refct fixed bin, /* equation reference counter */ 13 20 2 footref_fcs /* footnote ref FCS string */ 13 21 char (8) aligned, 13 22 2 ftn_reset char (8) var, /* footnote reset mode */ 13 23 2 ftnrefct fixed bin, /* footnote ref counter */ 13 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 13 25 2 if_nest, /* if/then/else logic control */ 13 26 3 ndx fixed bin, /* depth of logic nest */ 13 27 3 e (25), /* nest entries */ 13 28 /* .if control switch */ 13 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 13 30 4 info aligned like text_entry.info, 13 31 4 line char (256) var, /* the control line */ 13 32 2 indctl, /* indent ctls stack */ 13 33 3 ndx fixed bin, /* current level */ 13 34 /* switch bits */ 13 35 3 stk (0:35) bit (1) unal, 13 36 2 input_dirname 13 37 char (168) var, /* dir containing current input file */ 13 38 2 input_filename 13 39 char (200) var, /* current input file name */ 13 40 2 lead fixed bin (31), /* current linespacing value */ 13 41 2 lit_count fixed bin (35), /* count of literal lines */ 13 42 2 next_pagenmbr 13 43 char (32) var, /* next page number / */ 13 44 2 output_file 13 45 char (32) var, /* output file identifier */ 13 46 2 pagecount fixed bin, /* number of pages produced */ 13 47 2 pagenum, /* page number structure */ 13 48 3 index fixed bin, /* level currently counting */ 13 49 ( 13 50 3 sep char (1) unal, /* separator chars */ 13 51 3 nmbr fixed bin (31), /* the counters */ 13 52 3 mode /* display modes */ 13 53 fixed bin (8) unal 13 54 ) dimension (20), 13 55 2 parameter char (254) var, /* command line parameter */ 13 56 2 param_pres bit (1), /* passed parameter flag */ 13 57 2 pass_counter 13 58 fixed bin, /* pass counter */ 13 59 2 picture, /* picture blocks */ 13 60 3 count fixed bin, /* number of them */ 13 61 3 space fixed bin (31), /* total picture space */ 13 62 3 blk (10), /* picture blocks */ 13 63 4 type char (4), /* type = page/col */ 13 64 4 place char (4), /* place = top/cen/bot */ 13 65 4 ptr ptr, /* pointer to block */ 13 66 4 size fixed bin (31), /* size of the picture */ 13 67 2 ptrs, 13 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 13 69 3 blank_footer_ptr, /* -> blank page footer */ 13 70 3 blank_header_ptr, /* -> blank page header */ 13 71 3 blank_text_ptr, /* -> blank page text */ 13 72 3 blkptr, /* -> active text */ 13 73 3 colptr, /* current column */ 13 74 3 compout_ptr, /* iocb pointer for output */ 13 75 3 compx_ptr, /* iocb pointer for compx file */ 13 76 3 ctb_ptr, /* current line artwork table */ 13 77 3 epftrptr, /* even page footer block */ 13 78 3 ephdrptr, /* even page header block */ 13 79 3 fcb_ptr, /* input file control block pointer */ 13 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 13 81 3 footnote_header_ptr, /* footnote header "title" */ 13 82 3 graphic_page_ptr, /* graphic output page */ 13 83 3 hit_data_ptr, /* hit data pointer */ 13 84 3 htab_ptr, /* horizontal tab tables */ 13 85 3 hwrd_data_ptr, /* local hyphenation table */ 13 86 3 insert_ptr, /* data entry for current input file */ 13 87 3 opftrptr, /* odd page footer block */ 13 88 3 ophdrptr, /* odd page header block */ 13 89 3 ptb_ptr, /* previous line artwork table */ 13 90 3 spcl_blkptr, /* "special" block pointer */ 13 91 3 tbldata_ptr, /* table column data structure */ 13 92 3 tblkdata_ptr, /* text block data array */ 13 93 3 text_header_ptr /* empty text header structure */ 13 94 ) ptr, 13 95 2 scale, /* space conversion scale factors */ 13 96 3 horz fixed bin (31), /* horizontal */ 13 97 3 vert fixed bin (31), /* vertical */ 13 98 2 source_filename 13 99 char (200) var, /* current source file name */ 13 100 2 sws, /* switch bits */ 13 101 ( 3 bug_mode, /* debug mode */ 13 102 3 compout_not_headed, /* compout is not headed */ 13 103 3 end_input, /* EOF for current input file */ 13 104 3 end_output, /* no more output is wanted */ 13 105 3 firstpass, /* first pass over input */ 13 106 3 ftn_mode, /* in footnote mode */ 13 107 3 hyph_mode, /* hyphenating mode */ 13 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 13 109 3 literal_mode, /* literal line mode flag */ 13 110 3 pageblock, /* blocks belong to page */ 13 111 3 picture_mode, /* building a picture */ 13 112 3 print_flag, /* producing output */ 13 113 3 purge_ftns, /* purging footnotes */ 13 114 3 suppress_footref, /* suppress next footnote ref */ 13 115 3 table_mode /* table mode */ 13 116 ) bit (1) unal, 13 117 3 MBZ bit (21) unal, 13 118 2 trans, /* trans table for .tr */ 13 119 3 in char (128) var, /* input chars */ 13 120 3 out char (128) var, /* output chars */ 13 121 2 widow_size fixed bin (31), /* widow size */ 13 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 13 123 /* to save shared data between files/passes */ 13 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 13 125 13 126 dcl dot_addltr_symb_index 13 127 fixed bin static options (constant) init (12); 13 128 dcl max_text_lines fixed bin static options (constant) init (1000); 13 129 dcl mode_string char (16) static options (constant) 13 130 init ("arbihxocalaurlru"); 13 131 /* value overlays */ 13 132 dcl flag_value bit (1) based; 13 133 dcl num_value fixed bin (31) based; 13 134 13 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 1803 14 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 14 2 14 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 14 4 14 5 dcl 1 tblkdata /* data for allocated text blocks */ 14 6 aligned based (shared.tblkdata_ptr), 14 7 2 block, /* block pool */ 14 8 3 count fixed bin, 14 9 3 ptr (500) ptr, /* block pointers */ 14 10 /* block state flags */ 14 11 3 free (500) bit (1) unal, 14 12 2 line_area, /* line area pool */ 14 13 3 count fixed bin, 14 14 3 ptr (500) ptr, /* area pointers */ 14 15 /* area state flags */ 14 16 3 free (500) bit (1) unal, 14 17 2 text_area, /* text area pool */ 14 18 3 count fixed bin, 14 19 3 ptr (500) ptr, /* area pointers */ 14 20 /* area state flags */ 14 21 3 free (500) bit (1) unal, 14 22 3 string_area_count 14 23 fixed bin; /* line areas */ 14 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 14 25 dcl line_area_ptr ptr init (null); 14 26 dcl 1 line_area aligned based (line_area_ptr), 14 27 2 next ptr, /* forward thread */ 14 28 2 prev ptr, /* backward thread */ 14 29 2 count fixed bin, /* number of lines allocated */ 14 30 2 ndx fixed bin, /* index of current line */ 14 31 2 pndx fixed bin, /* area pool index */ 14 32 2 linptr (LINE_AREA_SIZE) ptr; 14 33 /* text areas */ 14 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 14 35 dcl text_area_ptr ptr init (null); 14 36 dcl 1 text_area aligned based (text_area_ptr), 14 37 2 next ptr, /* forward thread */ 14 38 2 count fixed bin, /* number of areas allocated */ 14 39 2 ndx fixed bin, /* index of current strarea */ 14 40 2 pndx fixed bin, /* area pool index */ 14 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 14 42 /* text string area */ 14 43 dcl string_area (256) fixed bin based; 14 44 dcl txtstrptr ptr; /* current text string */ 14 45 dcl txtstr char (1020) var based (txtstrptr); 14 46 14 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 14 48 /* general text block */ 14 49 dcl 1 text aligned based (shared.blkptr), 14 50 2 version fixed bin, /* version of structure */ 14 51 2 blkndx fixed bin, /* block data index */ 14 52 2 blktype char (2), /* block type code */ 14 53 /* dynamic block control stuff */ 14 54 2 hdr aligned like text_header, 14 55 /* text read from input file */ 14 56 2 input aligned like text_entry, 14 57 2 input_line char (1020) var,/* input buffer */ 14 58 2 line_area, 14 59 3 first ptr, /* head of line area thread */ 14 60 3 cur ptr, /* current line area */ 14 61 2 next_text ptr, /* next text string */ 14 62 /* text formatting parameters */ 14 63 2 parms aligned like default_parms, 14 64 2 text_area, 14 65 3 first ptr, /* head of text area thread */ 14 66 3 cur ptr; /* current text area */ 14 67 /* an empty text block line */ 14 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 14 69 2 sws, /* unaligned switches, etc. */ 14 70 3 art bit (1) unal, /* line has artwork */ 14 71 3 cbar, /* change bar flags */ 14 72 4 add bit (1) unal, /* text addition flag */ 14 73 4 del bit (1) unal, /* text deletion flag */ 14 74 4 mod bit (1) unal, /* text modification flag */ 14 75 3 default bit (1) unal, /* 1 = default case as needed */ 14 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 14 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 14 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 14 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 14 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 14 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 14 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 14 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 14 84 3 oflo bit (1) unal, /* line causes overflow */ 14 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 14 86 3 quad bit (6) unal, /* text alignment flags */ 14 87 3 space_added /* 1= line has added space */ 14 88 bit (1) unal, 14 89 3 spcl, /* special entry - not output text */ 14 90 4 file bit (1) unal, /* 1= output to special file */ 14 91 4 blk_splt /* 1= action at block split time */ 14 92 bit (1) unal, 14 93 4 page_mkup /* 1= action at page makeup time */ 14 94 bit (1) unal, 14 95 3 table bit (1) unal, /* 1= line is a table entry */ 14 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 14 97 3 title bit (1) unal, /* 1= line is a */ 14 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 14 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 14 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 14 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 14 102 3 white bit (1) unal, /* 1= line is white space */ 14 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 14 104 3 MBZ bit (4) unal, 14 105 2 art_start fixed bin unal, /* start of art string in line */ 14 106 2 art_len fixed bin unal, /* length of art string in line */ 14 107 2 cbar_level /* change level for cbars */ 14 108 char (1) aligned, 14 109 2 cur, /* current scanning data for line */ 14 110 3 chrct fixed bin, /* count of chars scanned */ 14 111 3 gaps fixed bin, /* gap count */ 14 112 3 width fixed bin (31), /* width of font chars */ 14 113 3 min fixed bin (31), /* width of min spbnds */ 14 114 3 avg fixed bin (31), /* width of avg spbnds */ 14 115 3 max fixed bin (31), /* width of max spbnds */ 14 116 3 font like fntstk_entry, 14 117 2 depth fixed bin (31), /* page depth for line */ 14 118 /* font at start of line */ 14 119 2 font like fntstk_entry, 14 120 2 index fixed bin (21), /* char index for line scanning */ 14 121 2 info, /* stuff created during line input */ 14 122 3 fileno fixed bin, /* input file index */ 14 123 3 lineno fixed bin, /* input file line number */ 14 124 3 lineno0 fixed bin, /* call_box0 line number */ 14 125 2 linespace fixed bin (31), /* linespace value for the line */ 14 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 14 127 2 mod_len fixed bin, /* length of modified text */ 14 128 2 mod_start fixed bin, /* index for start of modified text */ 14 129 2 net fixed bin (31), /* net line width for filling */ 14 130 2 ptr ptr, /* pointer to the actual text */ 14 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 14 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 14 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 14 134 2 tblcol fixed bin, /* column for table entries */ 14 135 2 title_delim 14 136 char (1) unal, /* title delimiter if a <title> */ 14 137 2 title_index 14 138 fixed bin, /* <title> block index for line */ 14 139 2 width fixed bin (31), /* width of text */ 14 140 2 ftn, /* footnote info for line */ 14 141 3 ct fixed bin, /* number of footnote refs */ 14 142 3 used fixed bin (31), /* space used */ 14 143 3 e (40), /* limit is arbitrary */ 14 144 4 blkndx fixed bin unal, /* block index of footnote - if this 14 145* value is 0, then .frf was used */ 14 146 4 refno fixed bin unal; /* reference number */ 14 147 14 148 dcl ( 14 149 quadi init ("40"b3), /* set to the inside margin */ 14 150 quado init ("20"b3), /* set to the outside margin */ 14 151 quadl init ("10"b3), /* set left */ 14 152 quadc init ("04"b3), /* set centered */ 14 153 quadr init ("02"b3), /* set right */ 14 154 just init ("01"b3) /* justified */ 14 155 ) bit (6) static options (constant); 14 156 /* control line structure */ 14 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 14 158 dcl ctl_line char (1020) var based (ctl.ptr); 14 159 14 160 dcl txtlinptr ptr; /* the current text line */ 14 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 14 162 /* empty text header structure */ 14 163 dcl 1 text_header aligned based (const.text_header_ptr), 14 164 2 sws, /* control switches */ 14 165 3 art bit (1) unal, /* block has artwork */ 14 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 14 167 3 modified bit (1) unal, /* block contains modified lines */ 14 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 14 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 14 170 3 tblblk bit (1) unal, /* a table block */ 14 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 14 172 3 white bit (1) unal, /* block is a white space block */ 14 173 3 picture bit (1) unal, /* picture block */ 14 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 14 175 3 MBZ bit (26) unal, 14 176 2 art_count fixed bin unal, /* to count input art lines */ 14 177 2 blkptr ptr, /* pointer to suspended block */ 14 178 2 cap_size fixed bin unal, /* line count of text caption */ 14 179 2 cap_used fixed bin (31), /* size of text caption */ 14 180 2 colno fixed bin unal, /* column owning the block */ 14 181 2 count fixed bin unal, /* line count for block */ 14 182 2 eqn_line_count 14 183 fixed bin unal, /* counter for equation lines */ 14 184 2 first_text fixed bin unal, /* OBSOLETE */ 14 185 2 ftn, /* footnotes */ 14 186 3 ct fixed bin, /* count */ 14 187 3 usd fixed bin (31), /* space used */ 14 188 3 blkndx (40) fixed bin, /* footnote block index values */ 14 189 2 head_size fixed bin, /* line count of text header */ 14 190 2 head_used fixed bin (31), /* size of text header */ 14 191 2 index fixed bin unal, /* block index of next output line */ 14 192 2 keep_count fixed bin unal, /* to count input keep lines */ 14 193 2 last_line fixed bin, /* last text line in column */ 14 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 14 195 2 name char (32) var, /* block name, if any */ 14 196 2 nofill_count /* to count nofill lines */ 14 197 fixed bin, 14 198 2 parms_ptr ptr, /* parms for suspended block */ 14 199 2 refer fixed bin, /* inter-block reference */ 14 200 2 refer_index /* OBSOLETE */ 14 201 fixed bin, /* a reference */ 14 202 2 split fixed bin, /* split point for balancing */ 14 203 2 trl_ws fixed bin (31), /* trailing WS */ 14 204 2 used fixed bin (31); /* page space used by a column/block */ 14 205 /* text formatting parameters */ 14 206 dcl 1 text_parms aligned like default_parms 14 207 based (const.text_parms_ptr); 14 208 14 209 dcl 1 current_parms 14 210 aligned like default_parms 14 211 based (const.current_parms_ptr); 14 212 14 213 dcl 1 default_parms 14 214 aligned based (const.default_parms_ptr), 14 215 2 sws, /* control switches */ 14 216 3 quad bit (6) unal, /* text alignment mode */ 14 217 3 art bit (1) unal, /* 1 = block countains artwork */ 14 218 3 cbar, /* change bar flags */ 14 219 4 add bit (1) unal, /* text addition flag */ 14 220 4 del bit (1) unal, /* text deletion flag for next line */ 14 221 4 mod bit (1) unal, /* text modification flag */ 14 222 3 fill_mode 14 223 bit (1) unal, /* 1 = fill mode ON */ 14 224 3 footnote bit (1) unal, /* block is a footnote */ 14 225 3 hfc bit (1) unal, /* OBSOLETE */ 14 226 3 htab_mode 14 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 14 228 3 keep bit (1) unal, /* keep mode */ 14 229 3 page bit (1) unal, /* block belongs to page, not text */ 14 230 3 title_mode 14 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 14 232 3 MBZ bit (19) unal, 14 233 2 ftrptr ptr, /* text caption block */ 14 234 2 cbar_level /* change level for cbars */ 14 235 char (1) aligned, 14 236 2 hdrptr ptr, /* text header block */ 14 237 2 left, /* left margin data */ 14 238 3 indent fixed bin (31), 14 239 3 undent fixed bin (31), 14 240 2 linespace fixed bin (31), /* line spacing value */ 14 241 2 measure fixed bin (31), /* line space for text */ 14 242 /* right margin data */ 14 243 2 right like default_parms.left, 14 244 2 fntstk, /* stack of last 20 font changes */ 14 245 3 index fixed bin, /* which one in use */ 14 246 /* entry(0) is the default */ 14 247 3 entry (0:19) like fntstk_entry; 14 248 14 249 dcl hfcblk_ptr ptr; 14 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 14 251 14 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 1804 15 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 15 2* 15 3* This storage is converted from external (as declared) to internal by the 15 4* binder and contains items that must be accessible to both the bound and 15 5* unbound program. */ 15 6 15 7 /* Written: ??/??/7? - EJW 15 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 15 9* and removed the codes array; version 6. 15 10**/ 15 11 15 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 15 13 15 14 dcl 1 compstat$compconst 15 15 aligned like const ext static; 15 16 15 17 dcl const_version fixed bin (35) static options (constant) init (6); 15 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 15 19 fixed bin static options (constant) init (80); 15 20 dcl MAX_TREE_AREAS /* number of tree areas */ 15 21 fixed bin static options (constant) init (20); 15 22 15 23 dcl 1 const aligned based (compstat$compconst.ptr), 15 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 15 25 2 version fixed bin (35), /* structure version */ 15 26 2 art_symbols /* string of art symbols */ 15 27 char (28) aligned, 15 28 2 builtin_count /* count of builtin variables */ 15 29 fixed bin, 15 30 2 comp_dir char (200), /* dir in which compose lives */ 15 31 2 comp_version 15 32 char (8) var, /* compose version id */ 15 33 2 date_value char (8) var, /* current date */ 15 34 2 dsm_name char (32), /* device support module name */ 15 35 2 dvt_name char (32), /* device table name */ 15 36 2 max_seg_chars 15 37 fixed bin (35), /* char count in a max seg */ 15 38 2 null_str char (1) var, /* an empty string */ 15 39 2 ptrs, 15 40 ( 3 call_stk_ptr, /* -> insert call stack */ 15 41 3 colhdrptr, /* empty column header structure */ 15 42 3 ctl_ptr, /* input line structure */ 15 43 3 current_parms_ptr, /* current formatting parms */ 15 44 3 default_parms_ptr, /* default initial text parms */ 15 45 3 devptr, /* -> comp_dvt structure */ 15 46 3 dvidptr, /* -> comp_dvid structure */ 15 47 3 errblk_ptr, /* error message block pointer */ 15 48 3 footnote_parms_ptr, /* footnote formatting parms */ 15 49 3 fnttbldata_ptr, /* -> font table data */ 15 50 3 global_area_ptr, /* per invocation storage */ 15 51 3 init_page_parms_ptr, /* default initial page parms */ 15 52 3 insert_data_ptr, /* insert file data block */ 15 53 3 local_area_ptr, /* per file storage */ 15 54 3 loctbl_ptr, /* for font copying */ 15 55 3 option_ptr, /* program options block */ 15 56 3 outproc_ptr, /* device writer for cleanup */ 15 57 3 page_ptr, /* active page structure */ 15 58 3 page_header_ptr, /* empty page header structure */ 15 59 3 page_parms_ptr, /* page formatting parameter block */ 15 60 3 save_shared_ptr, /* saved shared data */ 15 61 3 shared_ptr, /* shared data structure */ 15 62 3 text_entry_ptr, /* empty text entry structure */ 15 63 3 text_header_ptr, /* empty text header structure */ 15 64 3 text_parms_ptr, /* main body formatting parms */ 15 65 3 tree_ptr /* symbol tree structure */ 15 66 ) ptr, 15 67 2 time_value char (6) var; /* time at start */ 15 68 15 69 /* Other external */ 15 70 dcl ( 15 71 ioa_, 15 72 ioa_$nnl 15 73 ) entry options (variable); 15 74 dcl iox_$error_output 15 75 ptr ext static, /* iocb pointer for error_output */ 15 76 iox_$user_input 15 77 ptr ext static, /* iocb pointer for user_input */ 15 78 iox_$user_output 15 79 ptr ext static; /* iocb pointer for user_output */ 15 80 dcl sys_info$max_seg_size 15 81 fixed bin (18) ext static; 15 82 15 83 /* END INCLUDE FILE compstat.incl.pl1 */ 1805 16 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 16 2 /* format: style2,^inddcls,idind32 */ 16 3 16 4 declare 1 terminate_file_switches based, 16 5 2 truncate bit (1) unaligned, 16 6 2 set_bc bit (1) unaligned, 16 7 2 terminate bit (1) unaligned, 16 8 2 force_write bit (1) unaligned, 16 9 2 delete bit (1) unaligned; 16 10 16 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 16 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 16 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 16 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 16 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 16 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 16 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 16 18 16 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 1806 17 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 17 2 17 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 4 /* */ 17 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 17 6 /* */ 17 7 /* This include segment allocates space in a translator's temporary segment. It */ 17 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 17 9 /* internal procedure in the program which includes this include segment. The temporary */ 17 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 17 11 /* */ 17 12 /* S__t_a_t_u_s */ 17 13 /* */ 17 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 17 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 17 16 /* */ 17 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 18 17 19 17 20 17 21 allocate: procedure (Parea, ANwords) returns (ptr); 17 22 17 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 17 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 17 25 17 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 17 27 /* to a 0 mod 2 quantity. */ 17 28 P ptr, /* a temporary pointer. */ 17 29 code fixed bin(35), /* a status code. */ 17 30 (mod, null, ptr) builtin; 17 31 17 32 dcl 1 area based (Parea), 17 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 17 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 17 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 17 36 17 37 dcl translator_temp_$get_next_segment 17 38 entry (ptr, ptr, fixed bin(35)); 17 39 17 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 17 41 if Nwords > Lfree then do; /* handle area overflow. */ 17 42 call translator_temp_$get_next_segment (Parea, P, code); 17 43 if P = null then return (null); 17 44 Parea = P; 17 45 if Nwords > area.Lfree then return (null); 17 46 end; 17 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 17 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 17 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 17 50 return (P); 17 51 17 52 end allocate; 17 53 17 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 1807 1808 1809 end compose; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0908.5 compose.pl1 >spec>online>comp>compose.pl1 1791 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 1792 2 03/01/85 1411.8 comp_aux_file.incl.pl1 >ldd>include>comp_aux_file.incl.pl1 1793 3 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 1794 4 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 1795 5 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 1796 6 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 1797 7 03/01/85 1411.9 comp_error.incl.pl1 >ldd>include>comp_error.incl.pl1 1798 8 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 1799 9 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1 1800 10 03/01/85 1412.0 comp_insert.incl.pl1 >ldd>include>comp_insert.incl.pl1 1801 11 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 1802 12 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 1803 13 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 1804 14 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 1805 15 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 1806 16 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 1807 17 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.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. ANwords parameter fixed bin(17,0) dcl 17-23 ref 17-21 17-40 17-40 EN_width 6 based fixed bin(31,0) level 2 dcl 13-7 set ref 1132 1139 1146 Lfree 2 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-41 17-45 17-49* 17-49 Nwords 001334 automatic fixed bin(17,0) dcl 17-26 set ref 17-40* 17-41 17-45 17-48 17-49 Ofree 1 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-47 17-48* 17-48 P 001336 automatic pointer dcl 17-26 set ref 17-42* 17-43 17-44 17-47* 17-50 Parea parameter pointer dcl 17-23 set ref 17-21 17-41 17-42* 17-44* 17-45 17-47 17-47 17-48 17-48 17-49 17-49 W_ACCESS 001536 constant bit(3) initial unaligned dcl 1-11 set ref 885* 1015* addr builtin function dcl 1773 ref 50 86 182 522 522 539 539 1129 1129 1129 1129 1129 1129 1129 1129 1136 1136 1136 1136 1136 1136 1136 1136 1143 1143 1143 1143 1143 1143 1143 1143 1464 1464 adjust_bit_count_ 000636 constant entry external dcl 1694 ref 1278 after builtin function dcl 1773 ref 236 243 262 264 268 286 289 294 312 314 318 634 area based structure level 1 unaligned dcl 17-32 arg based char unaligned dcl 1763 set ref 115 118 122* 148* 161* 176 179 187* 226 230 339 342 345 350 357 359 365 379 381 387 391 396 409 414 414 424 427 432 444 465 476 479 484 488 488 503 511 513 520 522 537 539 544 556 560 564* 569* 584 601 606 622 632 634 644 657 663 668 675 677 688 749 arg_count 3 based fixed bin(17,0) level 2 dcl 11-5 set ref 750* 750 1074 arg_optndx constant fixed bin(17,0) initial dcl 1524 ref 219 argl 000100 automatic fixed bin(17,0) dcl 1632 set ref 102* 115 118 122 122 148 148 161 161 176 179 187 187 200* 214* 226 226 230 339 342 345 350 354 357 359 359 365 379 381 387 391 391 391 396 409 414 414 419* 424 427 432 444 465 476 479 484 488 488 488 488 488 503 511 511 513 520 522 537 539 544 553 556 560 564 564 569 569 577 584 601 606 622 632 634 638* 644 655 657 659 663 668 675 677 688 741* 749 argp 000102 automatic pointer dcl 1633 set ref 102* 115 118 122 148 161 176 179 187 200* 226 230 339 342 345 350 357 359 365 379 381 387 391 396 409 414 414 419* 424 427 432 444 465 476 479 484 488 488 503 511 513 520 522 537 539 544 556 560 564 569 584 601 606 622 632 634 638* 644 657 663 668 675 677 688 741* 749 argument_opt 1 based bit(1) level 2 packed unaligned dcl 11-5 set ref 86 729 754* atd 000104 automatic char(256) unaligned dcl 1634 set ref 909* 912* 1034* 1035* aux_file_data based structure level 1 dcl 2-5 aux_file_data_ptr 3742 based pointer level 3 dcl 13-7 set ref 1190 1190 1190 1194 1197 1199 1202 1267 1267 1267 1272 1275 1276 1278 1278 1283* 1421 1421 1421 1426 1429 1430 1433 1435* badcall 000204 automatic bit(1) initial unaligned dcl 1636 set ref 96* 118 127* 153* 163* 171* 188* 211* 461* 499* 617* 708* 711 1636* balblk based fixed bin(17,0) level 2 dcl 3-21 set ref 1099* balftn 2 based structure level 2 in structure "colhdr" dcl 3-21 in procedure "comp" balftn 320 based structure level 3 in structure "col0" dcl 3-37 in procedure "comp" balftn 320 based structure level 3 in structure "col" dcl 3-5 in procedure "comp" baseno builtin function dcl 1773 ref 898 898 1025 1025 before builtin function dcl 1773 ref 232 239 241 263 266 287 291 313 316 632 824 986 bin builtin function dcl 1773 ref 254 279 305 350 359 365 387 391 396 427 484 488 503 513 677 block based structure level 2 dcl 14-5 brief_opt 1(22) based bit(1) level 2 packed unaligned dcl 11-5 ref 1461 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 13-7 set ref 1115* 1121* 1169 bulk_file 000206 automatic structure level 1 unaligned dcl 1637 call_box0 based structure level 1 dcl 10-19 set ref 992* 1073* call_stack based structure level 1 dcl 10-13 call_stk_ptr 126 based pointer level 3 dcl 15-23 ref 992 1072 1073 1492 1492 1492 callers_name 250 based char(100) level 2 dcl 10-32 set ref 993* cb_optndx constant fixed bin(17,0) initial dcl 1524 ref 223 cba_optndx constant fixed bin(17,0) initial dcl 1524 ref 322 cbar 4 based structure level 2 dcl 11-5 cbar_opt 1(01) based bit(1) level 2 packed unaligned dcl 11-5 set ref 325* 874 1125 char builtin function dcl 1773 ref 1075 check_opt 1(23) based bit(1) level 2 packed unaligned dcl 11-5 ref 878 882 998 1214 1223 1285 1356 cleanup 001244 stack reference condition dcl 1778 ref 67 960 1393 1456 code 001340 automatic fixed bin(35,0) dcl 17-26 set ref 17-42* col based structure level 1 dcl 3-5 col0 based structure level 1 dcl 3-37 colhdr based structure level 1 dcl 3-21 set ref 1098* 1101 colhdrptr 130 based pointer level 3 dcl 15-23 ref 1098 1099 1100 1101 colptr 3754 based pointer level 3 dcl 13-7 set ref 1097* 1101 column_ptr 42 based pointer array level 2 dcl 12-11 ref 1097 1103 com_err_ 000640 constant entry external dcl 1697 ref 34 45 59 80 93 107 122 136 161 187 208 439 457 496 569 580 614 707 725 745 771 785 805 818 833 841 852 891 902 917 926 1007 1021 1028 1040 1048 1239 1261 1323 1334 command_arg based varying char(1020) array dcl 1765 set ref 737 737 749* 1075* command_arg_ct 001240 automatic fixed bin(17,0) dcl 1767 set ref 732* 734 737 737 command_arg_ptr 001242 automatic pointer dcl 1768 set ref 737* 737 737 749 1075 comp_ 000752 constant entry external dcl 6-7 ref 1178 comp_abort 001252 stack reference condition dcl 1778 ref 1172 comp_dir 13 based char(200) level 2 dcl 15-23 set ref 64* 148 700 700 780 841* 852* 950 950 comp_dvid based structure level 1 dcl 4-17 comp_dvid_version constant fixed bin(17,0) initial dcl 4-14 ref 838 comp_dvt based structure level 1 dcl 5-19 comp_font_ 000754 constant entry external dcl 6-25 ref 1108 comp_get_file_$find 000756 constant entry external dcl 6-28 ref 148 comp_get_file_$open 000760 constant entry external dcl 6-31 ref 167 comp_init_$one 000762 constant entry external dcl 6-38 ref 71 comp_init_$three 000766 constant entry external dcl 6-40 ref 979 comp_init_$two 000764 constant entry external dcl 6-39 ref 794 comp_make_page_$cleanup 000770 constant entry external dcl 6-46 ref 1209 comp_measure_ 000772 constant entry external dcl 6-48 ref 1129 1136 1143 comp_read_$number 000774 constant entry external dcl 6-53 ref 522 539 comp_update_symbol_ 000776 constant entry external dcl 6-71 ref 1075 comp_util_$set_net_page 001000 constant entry external dcl 6-104 ref 1123 comp_version 75 001002 external static varying char(8) level 2 in structure "compstat$compconst" dcl 15-14 in procedure "comp" set ref 52* comp_version 75 based varying char(8) level 2 in structure "const" dcl 15-23 in procedure "comp" set ref 80* 700* 1458* compose_dir 000514 automatic char(168) dcl 1648 set ref 40* 52 52 64 compose_severity_ 000750 external static fixed bin(35,0) dcl 6-5 set ref 24* 958* 1041* 1051* 1241* 1262* 1325* 1335* compout_name 000566 automatic char(32) unaligned dcl 1649 set ref 1002* 1012 1013* 1015* 1040* 1048* compout_not_headed 4113(01) based bit(1) level 3 in structure "save_shared" packed unaligned dcl 13-124 in procedure "comp" set ref 1186* compout_not_headed 4113(01) based bit(1) level 3 in structure "shared" packed unaligned dcl 13-7 in procedure "comp" set ref 976* 1186 compout_path 000576 automatic varying char(200) dcl 1651 set ref 1013* 1021* 1034 compout_ptr 3756 based pointer level 3 in structure "save_shared" dcl 13-124 in procedure "comp" set ref 1059* compout_ptr 3756 based pointer level 3 in structure "shared" dcl 13-7 in procedure "comp" set ref 878* 912* 922* 927* 1035* 1044* 1049* 1059 1229 1230 1232* 1405 1410 1411 1488 compout_seg_ptr 000662 automatic pointer dcl 1652 set ref 1015* 1025 compstat$compconst 001002 external static structure level 1 dcl 15-14 compx_ptr 3760 based pointer level 3 dcl 13-7 set ref 1246 1251 1252 1254* 1414 1417 1418 const based structure level 1 dcl 15-23 const_version constant fixed bin(35,0) initial dcl 15-17 ref 56 conversion 001260 stack reference condition dcl 1778 ref 91 697 count 304 based fixed bin(17,0) level 3 in structure "source" dcl 1681 in procedure "comp" set ref 984* count based fixed bin(17,0) level 2 in structure "insert_refs" dcl 10-21 in procedure "comp" ref 1499 count 3760 based fixed bin(17,0) level 3 in structure "tblkdata" dcl 14-5 in procedure "comp" set ref 1296* count based fixed bin(17,0) level 2 in structure "error" dcl 7-3 in procedure "comp" set ref 1214 1356 1458* 1458 count based fixed bin(17,0) level 2 in structure "aux_file_data" dcl 2-5 in procedure "comp" set ref 1190 1190 1202* 1267 1267 1421 1421 1433* count 1770 based fixed bin(17,0) level 3 in structure "tblkdata" dcl 14-5 in procedure "comp" set ref 1296* count based fixed bin(17,0) level 2 in structure "insert_data" dcl 10-5 in procedure "comp" set ref 1307 1312* 1398 count 3722 based fixed bin(17,0) level 3 in structure "insert_data" dcl 10-5 in procedure "comp" set ref 1312* 1496 count based fixed bin(17,0) level 3 in structure "tblkdata" dcl 14-5 in procedure "comp" set ref 1296* count 000014 internal static fixed bin(17,0) level 2 in structure "source_list" dcl 1686 in procedure "comp" set ref 89* 131 142* 142 145 704 895 938 962 1180 cpu_time_and_paging_ 000642 constant entry external dcl 1698 ref 968 1292 ctl based structure level 1 dcl 14-157 set ref 1154* ctl_ptr 132 based pointer level 3 dcl 15-23 ref 1153 1154 1155 1155 1156 1157 1158 1353 ctlargstr based char unaligned dcl 1770 ref 182 ctltxtptr 000512 automatic pointer dcl 1646 set ref 1153* 1156 cu_$arg_count 000644 constant entry external dcl 1700 ref 75 cu_$arg_ptr 000646 constant entry external dcl 1701 ref 102 200 419 638 741 cur 10 based structure level 2 in structure "text_entry" dcl 14-68 in procedure "comp" cur 126 based structure level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp" cur 10 based structure level 2 in structure "txtlin" dcl 14-161 in procedure "comp" cur 126 based structure level 3 in structure "text" dcl 14-49 in procedure "comp" cur 10 based structure level 2 in structure "ctl" dcl 14-157 in procedure "comp" cur 126 based structure level 3 in structure "hfcblk" dcl 14-250 in procedure "comp" current_parms_ptr 134 based pointer level 3 dcl 15-23 set ref 1110* db_after_line 114 based fixed bin(35,0) level 2 dcl 11-5 set ref 387* 396* 870 870* 1115 db_all_opt 1(04) based bit(1) level 2 packed unaligned dcl 11-5 set ref 375* 870 db_before_line 115 based fixed bin(35,0) level 2 dcl 11-5 set ref 391* db_file 116 based varying char(200) level 2 dcl 11-5 set ref 406* 414* 995* 1115 1115 db_file_after 201 based fixed bin(35,0) level 2 dcl 11-5 set ref 427* db_file_opt 1(05) based bit(1) level 2 packed unaligned dcl 11-5 set ref 405* 865 995 db_line_end 202 based fixed bin(35,0) level 2 dcl 11-5 set ref 357* 359* 946 1115 db_line_strt 203 based fixed bin(35,0) level 2 dcl 11-5 set ref 350* 365* 868 868* 1115 db_optndx constant fixed bin(17,0) initial dcl 1524 ref 333 dba_optndx constant fixed bin(17,0) initial dcl 1524 ref 372 dbf_optndx constant fixed bin(17,0) initial dcl 1524 ref 402 debug_opt 1(03) based bit(1) level 2 packed unaligned dcl 11-5 set ref 375* 405* 700 946 950 965 1112 1174 1289 dec builtin function dcl 1773 ref 544 1296 default_parms based structure level 1 dcl 14-213 set ref 1107 default_parms_ptr 136 based pointer level 3 dcl 15-23 ref 1103 1104 1105 1107 1129 1129 1136 1136 1143 1143 1155 del 65 based structure level 3 dcl 11-5 device 204 based varying char(32) level 2 dcl 11-5 set ref 824* 827 946* devptr 140 based pointer level 3 dcl 15-23 set ref 846* 848 922 980 1044 1088 1388 dir 2 based char(168) level 3 in structure "insert" dcl 10-32 in procedure "comp" set ref 1353 1353 dir 14 based char(168) array level 3 in structure "aux_file_data" dcl 2-5 in procedure "comp" ref 1278 dir 000206 automatic char(168) initial level 2 in structure "bulk_file" packed unaligned dcl 1637 in procedure "comp" set ref 564* 585* 587 885* 1637* dir 2 001266 constant char(168) initial level 2 in structure "init_file_data" packed unaligned dcl 10-64 in procedure "comp" divide builtin function dcl 1773 ref 193 dot_addltr 0(18) based char(1) level 3 packed unaligned dcl 12-27 set ref 1094* dsm_baseptr 000664 automatic pointer dcl 1654 set ref 800* 802 813* 815 dsm_dir 000356 automatic char(168) unaligned dcl 1643 set ref 766* 780* 791* 800* 813* dsm_name 103 based char(32) level 2 dcl 15-23 set ref 760* 762* 766* 780 785* 791 800* 800* 812* 813* 813* 824 828* 950* dsm_path 000430 automatic char(200) initial unaligned dcl 1645 set ref 432* 757 766* 771* 777 791* 805* 818* 833* 841* 852* 1645* dt_sw 000010 internal static bit(1) initial unaligned dcl 1512 set ref 52 700 950 1515* 1519* dv_optndx constant fixed bin(17,0) initial dcl 1524 ref 432 dvidptr 142 based pointer level 3 dcl 15-23 set ref 828* 838 846 846 dvt_name 113 based char(32) level 2 dcl 15-23 set ref 827* 828* 833* dvt_r 11 based bit(18) level 2 dcl 4-17 ref 846 end_output 4113(03) based bit(1) level 3 packed unaligned dcl 13-7 set ref 1164* 1285 entry 22 based structure array level 3 in structure "default_parms" dcl 14-213 in procedure "comp" set ref 1129 1129 1136 1136 1143 1143 1155 entry 2 based structure array level 2 in structure "aux_file_data" dcl 2-5 in procedure "comp" entryname 54 based char(32) level 2 in structure "source_file" dcl 1683 in procedure "comp" set ref 157 986 entryname 54 based char(32) level 3 in structure "source" dcl 1681 in procedure "comp" set ref 1002 1007* 1169* entryname 52 000206 automatic char(32) initial level 2 in structure "bulk_file" packed unaligned dcl 1637 in procedure "comp" set ref 564* 584* 587 885* 910 917* 1637* entryname 54 001266 constant char(32) initial level 2 in structure "init_file_data" packed unaligned dcl 10-64 in procedure "comp" entryname 54 based char(32) level 3 in structure "insert" dcl 10-32 in procedure "comp" set ref 1353* ercd 000666 automatic fixed bin(35,0) dcl 1656 set ref 40* 42 45* 93* 102* 104 107* 148* 150 167* 168 200* 201 204 208* 336 376 419* 420 420 472 522* 525 539* 542 564* 566 569* 638* 639 639 655 720* 722 725* 741* 742 745* 766* 768 771* 780* 782 785* 800* 805* 808 808 813* 818* 828* 830 833* 848* 849 852* 885* 887 887 887 887 891* 912* 914 917* 922* 923 926* 927* 928* 969* 980* 1002* 1004 1007* 1015* 1017 1017 1017 1017 1021* 1035* 1037 1040* 1044* 1045 1048* 1049* 1050* 1197* 1199* 1229* 1230 1230* 1236 1239* 1251* 1252 1252* 1258 1261* 1275* 1276* 1278* 1293* 1319* 1320 1323* 1330* 1331 1334* 1365* 1388* 1410* 1411* 1417* 1418* 1429* 1430* 1437* 1464* 1468* errblk_ptr 144 based pointer level 3 dcl 15-23 set ref 1211 1214 1356 1356 1437 1437 1458 1458 1464 1464 1464 1468* error based structure level 1 dcl 7-3 error_table_$badopt 000732 external static fixed bin(35,0) dcl 1781 set ref 187* error_table_$entlong 000734 external static fixed bin(35,0) dcl 1781 set ref 580* error_table_$namedup 000736 external static fixed bin(35,0) dcl 1781 ref 808 887 1017 error_table_$noarg 000740 external static fixed bin(35,0) dcl 1781 ref 204 420 639 error_table_$noentry 000742 external static fixed bin(35,0) dcl 1781 ref 887 1017 error_table_$segknown 000744 external static fixed bin(35,0) dcl 1781 ref 887 1017 error_table_$unimplemented_version 000746 external static fixed bin(35,0) dcl 1781 set ref 59* 841* ex_optndx constant fixed bin(17,0) initial dcl 1524 ref 436 execute_opt 1(07) based bit(1) level 2 packed unaligned dcl 11-5 set ref 442* expand_pathname_ 000650 constant entry external dcl 1702 ref 564 expand_pathname_$add_suffix 000652 constant entry external dcl 1704 ref 766 extra_indent 215 based fixed bin(31,0) level 2 dcl 11-5 set ref 522* fcb_ptr 66 001266 constant pointer initial level 2 in structure "init_file_data" dcl 10-64 in procedure "comp" fcb_ptr 3770 based pointer level 3 in structure "shared" dcl 13-7 in procedure "comp" set ref 1395 1395 fcb_ptr 66 based pointer level 3 in structure "insert" dcl 10-32 in procedure "comp" set ref 1308 1308 1401 1401 file based structure level 2 in structure "insert" dcl 10-32 in procedure "comp" set ref 992* file based structure level 2 in structure "source" dcl 1681 in procedure "comp" file_list_iocbp 001320 automatic pointer dcl 1475 set ref 1488* 1490* 1492* 1500* 1507* fileno 70 based fixed bin(17,0) level 3 in structure "source_file" dcl 1683 in procedure "comp" set ref 1158* fileno 161 based fixed bin(17,0) level 3 in structure "ctl" dcl 14-157 in procedure "comp" set ref 1158* fill_mode 2 based bit(1) level 3 packed unaligned dcl 14-213 set ref 1105* filndx 000667 automatic fixed bin(17,0) dcl 1657 set ref 962* 973 983* firstpass 4113(04) based bit(1) level 3 packed unaligned dcl 13-124 set ref 1187* flag_index 1150 000000 constant fixed bin(17,0) initial array level 2 dcl 1549 ref 193 fm_optndx constant fixed bin(17,0) initial dcl 1524 ref 451 fntstk 20 based structure level 2 dcl 14-213 fntstk_entry based structure level 1 dcl 8-6 font 100 based structure level 2 in structure "ctl" dcl 14-157 in procedure "comp" set ref 1155* font 16 based structure level 3 in structure "ctl" dcl 14-157 in procedure "comp" set ref 1155* footnote_parms based structure level 1 dcl 9-12 set ref 1107* footnote_parms_ptr 146 based pointer level 3 dcl 15-23 ref 1107 from 224 based varying char(32) array level 3 dcl 11-5 set ref 465* 622* 632* 662* from_opt 1(08) based bit(1) level 2 packed unaligned dcl 11-5 ref 597 1079 galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 11-5 ref 862 1079 1079 gaps 1 000756 automatic fixed bin(17,0) level 2 dcl 1664 set ref 1132 1139 1146 get_pdir_ 000654 constant entry external dcl 1707 ref 969 969 1293 1293 get_wdir_ 000656 constant entry external dcl 1709 ref 551 gl_optndx constant fixed bin(17,0) initial dcl 1524 ref 469 global_area_ptr 152 based pointer level 3 dcl 15-23 set ref 143* 737* 933* 941* 1446* hbound builtin function dcl 1773 ref 131 136 136 182 hcs_$fs_get_path_name 000660 constant entry external dcl 1710 ref 40 hcs_$initiate 000662 constant entry external dcl 1713 ref 800 813 hcs_$make_ptr 000664 constant entry external dcl 1715 ref 828 hcs_$quota_read 000666 constant entry external dcl 1719 ref 969 1293 hcs_$reset_ips_mask 000670 constant entry external dcl 1723 ref 31 1234 1256 1372 1393 1447 hcs_$set_ips_mask 000672 constant entry external dcl 1725 ref 1227 1249 1391 hcs_$set_max_length_seg 000674 constant entry external dcl 1727 ref 720 hdr 316 based structure level 2 in structure "col" dcl 3-5 in procedure "comp" set ref 1101* hdr 15 based structure level 2 in structure "page" dcl 12-11 in procedure "comp" set ref 1095* hscales 001537 constant fixed bin(31,0) initial array dcl 1658 set ref 522* 539* hyph_optndx constant fixed bin(17,0) initial dcl 1524 ref 508 hyph_size 216 based fixed bin(31,0) level 2 dcl 11-5 set ref 513* i 000670 automatic fixed bin(17,0) dcl 1660 set ref 345* 347 350 350 354 357 359 359 381* 384 387 387 391 391 391 479* 481 484 484 488 488 488 488 488 740* 741* 745* 749* 895* 898 902* 1028 1074* 1075 1075* 1190* 1194 1197 1199* 1267* 1272 1275 1276 1278 1278* 1307* 1308 1308* 1398* 1401 1401* 1421* 1426 1429 1430* 1496* 1498 1500* iarg 000672 automatic fixed bin(17,0) dcl 1661 set ref 100* 100* 102* 107* 111 199* 199 200* 417* 417 419* 637* 637 638* 732 740 749 if_optndx constant fixed bin(17,0) initial dcl 1524 ref 530 image_ptr 40 based pointer level 2 dcl 12-11 ref 1315 1319 1440 1440 ind_optndx constant fixed bin(17,0) initial dcl 1524 ref 517 index 1 based fixed bin(17,0) array level 2 in structure "insert_refs" dcl 10-21 in procedure "comp" ref 1500 index builtin function dcl 1773 in procedure "comp" ref 115 176 182 226 232 234 239 241 246 246 250 259 271 271 275 283 297 301 309 339 345 379 381 409 424 444 476 479 556 601 606 644 657 index 1 based fixed bin(17,0) level 2 in structure "call_stack" dcl 10-13 in procedure "comp" set ref 1072* index 1 based fixed bin(17,0) level 2 in structure "insert_data" dcl 10-5 in procedure "comp" set ref 1312* info 70 based structure level 2 in structure "source_file" dcl 1683 in procedure "comp" info 277 based structure level 3 in structure "hfcblk" dcl 14-250 in procedure "comp" info 277 based structure level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp" info 161 based structure level 2 in structure "txtlin" dcl 14-161 in procedure "comp" info 277 based structure level 3 in structure "text" dcl 14-49 in procedure "comp" info 161 based structure level 2 in structure "text_entry" dcl 14-68 in procedure "comp" set ref 1129 1129 1136 1136 1143 1143 info 161 based structure level 2 in structure "ctl" dcl 14-157 in procedure "comp" init_file_data 001266 constant structure level 1 unaligned dcl 10-64 ref 146 init_page_parms based structure level 1 dcl 12-108 ref 1087 init_page_parms_ptr 154 based pointer level 3 dcl 15-23 ref 1087 initiate_file_ 000676 constant entry external dcl 1731 ref 885 1015 input_filename 3372 based varying char(200) level 2 dcl 13-7 set ref 986* 1115 1174* 1296* insert based structure level 1 dcl 10-32 set ref 991* insert_data based structure level 1 dcl 10-5 insert_data_ptr 156 based pointer level 3 dcl 15-23 ref 1304 1307 1308 1308 1312 1312 1312 1398 1398 1401 1401 1482 1496 1498 1500 insert_ptr 74 based pointer level 2 in structure "source_file" dcl 1683 in procedure "comp" set ref 990* insert_ptr 74 001266 constant pointer initial level 2 in structure "init_file_data" dcl 10-64 in procedure "comp" insert_ptr 4006 based pointer level 3 in structure "shared" dcl 13-7 in procedure "comp" set ref 990* 991 992 993 1350 1353 1353 1353 1353 insert_refs based structure level 1 dcl 10-21 ioa_ 001004 constant entry external dcl 15-70 ref 52 700 946 950 1169 1174 1285 1296 1353 1458 ioa_$ioa_switch 001014 constant entry external dcl 1479 ref 1492 1500 1507 iocb_ptr 2 based pointer array level 3 dcl 2-5 set ref 1194 1197* 1199* 1272 1275* 1276* 1426 1429* 1430* iox_$attach_name 000700 constant entry external dcl 1733 ref 912 1035 iox_$close 000702 constant entry external dcl 1735 ref 1197 1229 1251 1275 1410 1417 1429 iox_$control 000704 constant entry external dcl 1736 ref 1365 iox_$detach_iocb 000706 constant entry external dcl 1737 ref 927 1049 1199 1230 1252 1276 1411 1418 1430 iox_$open 000710 constant entry external dcl 1739 ref 922 1044 iox_$put_chars 000712 constant entry external dcl 1741 ref 1464 iox_$user_input 001006 external static pointer dcl 15-74 set ref 1365* iox_$user_output 001010 external static pointer dcl 15-74 set ref 878 1464* 1490 ips_mask 000011 internal static bit(36) initial dcl 1662 set ref 31 31* 31* 1227* 1234* 1234* 1249* 1256* 1256* 1372 1372* 1372* 1391* 1393* 1393* 1447* 1447* j 000671 automatic fixed bin(17,0) dcl 1660 set ref 1499* 1500 1500 1500 1500* just constant bit(6) initial unaligned dcl 14-148 ref 1161 label 304 based structure level 2 dcl 1681 left 12 based structure level 2 in structure "current_parms" dcl 14-209 in procedure "comp" left 12 based structure level 2 in structure "default_parms" dcl 14-213 in procedure "comp" left 1016 based structure level 3 in structure "text" dcl 14-49 in procedure "comp" left 12 based structure level 2 in structure "footnote_parms" dcl 9-12 in procedure "comp" left 7 based structure level 3 in structure "option" dcl 11-5 in procedure "comp" left 12 based structure level 2 in structure "text_parms" dcl 14-206 in procedure "comp" left 1016 based structure level 3 in structure "hfcblk" dcl 14-250 in procedure "comp" left 1016 based structure level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp" length builtin function dcl 1773 ref 157 297 1223 1492 level 4 based char(1) level 3 dcl 11-5 set ref 232* 234* line_1 217 based fixed bin(35,0) level 2 dcl 11-5 set ref 484* 493 503* 868 870 1079 1115 line_2 220 based fixed bin(35,0) level 2 dcl 11-5 set ref 488* 493 line_area 1770 based structure level 2 dcl 14-5 line_area_ptr 001274 automatic pointer initial dcl 14-25 set ref 14-25* lineno 162 based fixed bin(17,0) level 3 dcl 14-157 set ref 1353* linespace 14 based fixed bin(31,0) level 2 in structure "default_parms" dcl 14-213 in procedure "comp" set ref 1104* linespace 221 based fixed bin(31,0) level 2 in structure "option" dcl 11-5 in procedure "comp" set ref 539* 544* 1104 1162 linespace 164 based fixed bin(31,0) level 2 in structure "text_entry" dcl 14-68 in procedure "comp" set ref 1162* local_area_ptr 160 based pointer level 3 dcl 15-23 set ref 1330* 1338* 1444 1444* local_arg 000673 automatic varying char(200) dcl 1663 set ref 230* 232 232 234 234 234 236* 236 239 239 241 241 241 243* 243 246 246 246 250 254 256* 256 259 262* 262 263 264* 264 266 268* 268 271 271 271 275 279 281* 281 283 286* 286 287 289* 289 291 294* 294 297 297 297 301 305 307* 307 309 312* 312 313 314* 314 316 318* 318 ls_optndx constant fixed bin(17,0) initial dcl 1524 ref 534 ltrim builtin function dcl 1773 ref 1075 mark 67 based varying char(80) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 313* 316* 1143 mark 11 based varying char(80) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 263* 266* 1129 mark 40 based varying char(80) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 287* 291* 1136 max builtin function dcl 1773 ref 732 1148 max_seg_chars 123 based fixed bin(35,0) level 2 dcl 15-23 ref 1464 1464 meas1 000756 automatic structure level 1 dcl 1664 set ref 1128* 1129 1129 1135* 1136 1136 1142* 1143 1143 meas2 001044 automatic structure level 1 dcl 1666 set ref 1129 1129 1136 1136 1143 1143 measure 10 based fixed bin(31,0) level 2 in structure "page_parms" dcl 12-86 in procedure "comp" set ref 1088* 1103 measure 15 based fixed bin(31,0) level 2 in structure "default_parms" dcl 14-213 in procedure "comp" set ref 1103* measure 457 based fixed bin(31,0) level 3 in structure "col0" dcl 3-37 in procedure "comp" set ref 1103* min builtin function dcl 1773 ref 1088 mod builtin function dcl 17-26 ref 17-40 msf_manager_$close 000714 constant entry external dcl 1742 ref 1308 1395 1401 name 75 based char(32) array level 2 in structure "insert_refs" packed unaligned dcl 10-21 in procedure "comp" ref 1500 1500 name 4 based char(32) array level 3 in structure "aux_file_data" dcl 2-5 in procedure "comp" ref 1278 nargs 001132 automatic fixed bin(17,0) initial dcl 1668 set ref 75* 77 100 111 732 740 1668* net 132 based fixed bin(31,0) level 2 in structure "colhdr" dcl 3-21 in procedure "comp" set ref 1100* net 10 based fixed bin(31,0) level 2 in structure "page_header" dcl 12-27 in procedure "comp" set ref 1092* next 1 based fixed bin(35,0) level 2 dcl 7-3 set ref 1464* nofill_opt 1(28) based bit(1) level 2 packed unaligned dcl 11-5 ref 1105 null builtin function dcl 17-26 in procedure "allocate" ref 17-43 17-43 17-45 null builtin function dcl 1773 in procedure "comp" ref 780 780 802 815 828 828 895 912 912 1035 1035 1190 1194 1211 1232 1246 1254 1267 1272 1283 1304 1308 1315 1338 1350 1356 1365 1365 1637 14-25 14-35 1385 1388 1395 1398 1401 1405 1405 1414 1421 1426 1435 1437 1440 1440 1444 1482 1482 null_info 001133 automatic structure level 1 dcl 1669 set ref 25* 522 522 539 539 number_append_opt 1(31) based bit(1) level 2 packed unaligned dcl 11-5 ref 859 1488 number_brief_opt 1(32) based bit(1) level 2 packed unaligned dcl 11-5 ref 859 1220 1361 1485 number_opt 1(30) based bit(1) level 2 packed unaligned dcl 11-5 set ref 859* 1220 1361 1485 of_optndx constant fixed bin(17,0) initial dcl 1524 ref 548 open_mode 121 based fixed bin(35,0) level 2 dcl 5-19 set ref 922* 1044* opt_name 000000 constant char(32) initial array level 2 packed unaligned dcl 1549 set ref 182 182 option based structure level 1 dcl 11-5 option_data 000000 constant structure level 1 unaligned dcl 1549 option_keyword 001136 automatic char(32) unaligned dcl 1670 set ref 93 93 179* 182 208 208 option_ptr 164 based pointer level 3 dcl 15-23 ref 86 157 232 234 239 241 254 263 266 279 287 291 305 313 316 325 350 357 359 365 375 375 387 391 396 405 405 406 414 427 442 454 465 484 488 493 493 503 513 522 539 544 597 597 611 621 621 622 622 622 622 628 631 631 632 632 634 634 662 663 668 677 685 688 700 714 714 729 750 750 754 760 824 827 859 859 859 862 865 868 868 868 870 870 870 870 874 874 878 878 882 935 938 946 946 946 950 965 995 995 998 998 1055 1063 1067 1068 1068 1074 1079 1079 1079 1079 1079 1079 1104 1105 1112 1115 1115 1115 1115 1115 1115 1125 1129 1132 1136 1139 1143 1146 1148 1148 1148 1148 1148 1162 1165 1165 1167 1174 1180 1183 1214 1214 1220 1220 1223 1223 1285 1285 1289 1356 1356 1361 1361 1405 1405 1461 1482 1485 1485 1488 1488 1507 optndx 001146 automatic fixed bin(17,0) dcl 1671 set ref 182* 184 193* 193 194 196 219 223 322 333 372 402 432 436 451 469 508 517 530 534 548 594 652 668 672 681 optnptr 001150 automatic pointer dcl 1672 set ref 86* 194 optns based bit(1) array unaligned dcl 1673 set ref 194* outproc 10 based entry variable level 2 dcl 5-19 ref 848 980 1388 outproc_ptr 166 based pointer level 3 dcl 15-23 ref 1388 output_file 3470 based varying char(32) level 2 in structure "shared" dcl 13-7 in procedure "comp" set ref 910* 1012* 1058 output_file 3470 based varying char(32) level 2 in structure "save_shared" dcl 13-124 in procedure "comp" set ref 1058* output_file_opt 1(14) based bit(1) level 2 packed unaligned dcl 11-5 ref 157 760 878 998 1214 1223 1285 1356 1405 1488 1507 page based structure level 1 dcl 12-11 page_chng_opt 1(16) based bit(1) level 2 packed unaligned dcl 11-5 ref 1079 page_header based structure level 1 dcl 12-27 set ref 1091* 1095 page_header_ptr 172 based pointer level 3 dcl 15-23 ref 1091 1092 1093 1094 1095 page_image based structure level 1 dcl 12-56 page_parms based structure level 1 dcl 12-86 set ref 1087* 1089 page_parms_ptr 174 based pointer level 3 dcl 15-23 ref 1087 1088 1089 1103 page_ptr 170 based pointer level 3 dcl 15-23 ref 1089 1095 1097 1103 1315 1319 1440 1440 1440 pageno 11 based varying char(32) level 2 dcl 12-27 set ref 1093* pages_opt 1(15) based bit(1) level 2 packed unaligned dcl 11-5 ref 454 685 1079 1165 param_pres 3642 based bit(1) level 2 dcl 13-7 set ref 936* parameter 3541 based varying char(254) level 2 in structure "shared" dcl 13-7 in procedure "comp" set ref 935* 936 parameter 2030 based varying char(80) level 2 in structure "option" dcl 11-5 in procedure "comp" set ref 668* 935 parms 1 based structure level 2 in structure "page" dcl 12-11 in procedure "comp" set ref 1089* parms 457 based structure level 2 in structure "col0" dcl 3-37 in procedure "comp" pass_counter 3643 based fixed bin(17,0) level 2 dcl 13-7 set ref 1067* 1068 1079 1174* pass_optndx constant fixed bin(17,0) initial dcl 1524 ref 672 passes 2055 based fixed bin(17,0) level 2 dcl 11-5 set ref 677* 938 1055 1063 1067 1068 1068 1180 1183 path 76 based varying char(200) level 3 in structure "source" dcl 1681 in procedure "comp" set ref 902* 1028* path 76 based varying char(200) level 3 in structure "insert" dcl 10-32 in procedure "comp" set ref 1500* path 62 000206 automatic varying char(200) initial level 2 in structure "bulk_file" dcl 1637 in procedure "comp" set ref 587* 882 891* 909 926* 976 998 1223 1637* path 76 based varying char(200) level 2 in structure "call_box0" dcl 10-19 in procedure "comp" set ref 1492* path 76 001266 constant varying char(200) initial level 2 in structure "init_file_data" dcl 10-64 in procedure "comp" pathname_ 000716 constant entry external dcl 1744 ref 791 1013 pd_used_end 001152 automatic fixed bin(18,0) dcl 1675 set ref 1293* 1296 pd_used_start 001153 automatic fixed bin(18,0) dcl 1676 set ref 969* 1296 pdw_max 40 based fixed bin(31,0) level 2 dcl 5-19 ref 1088 pf_end 001154 automatic fixed bin(35,0) dcl 1677 set ref 1292* 1296 pf_start 001155 automatic fixed bin(35,0) dcl 1678 set ref 968* 1296 pg_optndx constant fixed bin(17,0) initial dcl 1524 ref 594 pgc_optndx constant fixed bin(17,0) initial dcl 1524 ref 652 pgc_select 2056 based char(1) level 2 dcl 11-5 set ref 663* pglst 224 based structure array level 2 dcl 11-5 pglstct 222 based fixed bin(35,0) level 2 dcl 11-5 set ref 611 621* 621 622 622 628 631* 631 632 634 pglstndx 223 based fixed bin(35,0) level 2 dcl 11-5 set ref 1165* 1167* place 5 based char(1) level 3 dcl 11-5 set ref 239* 241* 874* pm_optndx constant fixed bin(17,0) initial dcl 1524 ref 668 pointer 162 001266 constant pointer initial level 2 in structure "init_file_data" dcl 10-64 in procedure "comp" pointer 162 based pointer level 3 in structure "source" dcl 1681 in procedure "comp" ref 898 1025 pointer builtin function dcl 1773 in procedure "comp" ref 846 print_flag 4113(11) based bit(1) level 3 packed unaligned dcl 13-7 set ref 1079* program_interrupt 001266 stack reference condition dcl 1778 ref 953 1346 ptr 001002 external static pointer level 2 in structure "compstat$compconst" dcl 15-14 in procedure "comp" set ref 50* 50 56 64 80 86 143 148 157 232 234 239 241 254 263 266 279 287 291 305 313 316 325 350 357 359 365 375 375 387 391 396 405 405 406 414 427 442 454 465 484 488 493 493 503 513 522 539 544 597 597 611 621 621 622 622 622 622 628 631 631 632 632 634 634 662 663 668 677 685 688 700 700 700 700 714 714 729 737 750 750 754 760 760 762 766 780 780 785 791 800 800 812 813 813 824 824 827 827 828 828 828 833 838 841 846 846 846 848 852 859 859 859 862 865 868 868 868 870 870 870 870 874 874 878 878 878 882 910 912 922 922 927 933 935 935 936 936 938 941 941 941 941 943 943 946 946 946 950 950 950 950 965 973 973 976 980 986 986 990 991 992 992 993 995 995 995 998 998 1012 1035 1044 1044 1049 1055 1058 1058 1059 1059 1063 1063 1063 1067 1067 1068 1068 1068 1068 1068 1072 1073 1074 1079 1079 1079 1079 1079 1079 1079 1079 1087 1087 1088 1088 1089 1089 1091 1092 1093 1094 1095 1095 1097 1097 1098 1099 1100 1101 1101 1103 1103 1103 1104 1104 1105 1105 1107 1107 1107 1110 1110 1112 1115 1115 1115 1115 1115 1115 1115 1115 1121 1125 1129 1129 1129 1129 1129 1132 1132 1136 1136 1136 1136 1136 1139 1139 1143 1143 1143 1143 1143 1146 1146 1148 1148 1148 1148 1148 1153 1154 1155 1155 1155 1156 1157 1158 1160 1161 1162 1162 1164 1165 1165 1167 1169 1174 1174 1174 1180 1183 1186 1186 1187 1190 1190 1190 1194 1197 1199 1202 1211 1214 1214 1214 1220 1220 1223 1223 1229 1230 1232 1246 1251 1252 1254 1267 1267 1267 1272 1275 1276 1278 1278 1283 1285 1285 1285 1289 1296 1296 1296 1296 1296 1304 1307 1308 1308 1312 1312 1312 1315 1319 1330 1338 1350 1353 1353 1353 1353 1353 1356 1356 1356 1356 1361 1361 1385 1388 1388 1395 1395 1398 1398 1401 1401 1405 1405 1405 1410 1411 1414 1417 1418 1421 1421 1421 1426 1429 1430 1433 1435 1437 1437 1440 1440 1440 1444 1444 1446 1458 1458 1458 1461 1464 1464 1464 1464 1464 1468 1482 1482 1485 1485 1488 1488 1488 1492 1492 1492 1496 1498 1500 1507 ptr 2 based pointer array level 2 in structure "insert_data" dcl 10-5 in procedure "comp" ref 1308 1308 1401 1401 1500 ptr builtin function dcl 17-26 in procedure "allocate" ref 17-47 ptr 2 000014 internal static pointer array level 2 in structure "source_list" dcl 1686 in procedure "comp" set ref 131 136 136 145* 898 902 983 1028 ptr 3724 based pointer array level 3 in structure "insert_data" dcl 10-5 in procedure "comp" ref 1498 ptr 146 000206 automatic pointer initial level 2 in structure "bulk_file" dcl 1637 in procedure "comp" set ref 885* 895 898 1637* ptr 2 based pointer array level 2 in structure "call_stack" dcl 10-13 in procedure "comp" ref 992 1073 1492 1492 1492 ptr 172 based pointer level 2 in structure "ctl" dcl 14-157 in procedure "comp" set ref 1153 1156* 1157 ptrs 3742 based structure level 2 in structure "shared" dcl 13-7 in procedure "comp" ptrs 3742 based structure level 2 in structure "save_shared" dcl 13-124 in procedure "comp" ptrs 126 based structure level 2 in structure "const" dcl 15-23 in procedure "comp" quad 2(11) based bit(6) level 3 packed unaligned dcl 14-68 set ref 1161* re_call 000012 internal static bit(1) initial unaligned dcl 1680 set ref 28 68* 1381* ref_area 3722 based structure level 2 dcl 10-5 refname 165 001266 constant varying char(200) initial level 2 in structure "init_file_data" dcl 10-64 in procedure "comp" refname 165 based varying char(200) level 3 in structure "insert" dcl 10-32 in procedure "comp" set ref 1353* refname 165 based varying char(200) level 2 in structure "call_box0" dcl 10-19 in procedure "comp" set ref 1492* 1492 refptr 001322 automatic pointer dcl 1477 set ref 1498* 1499 1500 1500 1500 release_temp_segment_ 000720 constant entry external dcl 1745 ref 1319 1437 1440 1468 right 36 based structure level 3 dcl 11-5 rtrim builtin function dcl 1773 ref 52 52 93 93 157 208 208 587 587 700 700 950 950 1353 1353 1500 1500 save_shared based structure level 1 dcl 13-124 set ref 941 941 943* 973 1063* 1068 save_shared_ptr 176 based pointer level 3 dcl 15-23 set ref 941* 941 941 943 973 1058 1059 1063 1068 1186 1187 search builtin function dcl 1773 ref 520 537 560 777 search_paths_$find_dir 000722 constant entry external dcl 1747 ref 780 sep 36 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 279* sep 7 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 254* 1148 sep 65 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 305* 1148 shared based structure level 1 dcl 13-7 set ref 943 973* 1063 1068* shared_ptr 200 based pointer level 3 dcl 15-23 ref 878 910 912 922 927 935 936 936 943 973 976 986 986 990 991 992 993 995 1012 1035 1044 1049 1058 1059 1063 1067 1068 1068 1079 1079 1097 1101 1115 1115 1121 1132 1139 1146 1164 1169 1174 1174 1186 1190 1190 1190 1194 1197 1199 1202 1229 1230 1232 1246 1251 1252 1254 1267 1267 1267 1272 1275 1276 1278 1278 1283 1285 1296 1296 1296 1296 1296 1350 1353 1353 1353 1353 1385 1395 1395 1405 1410 1411 1414 1417 1418 1421 1421 1421 1426 1429 1430 1433 1435 1488 size builtin function dcl 1773 ref 143 143 737 737 933 933 941 941 source based structure level 1 dcl 1681 set ref 933 933 source_file based structure level 1 dcl 1683 set ref 143 143 146* 992 1073 source_file_ptr 001160 automatic pointer dcl 1684 set ref 143* 143 143 145 146 148* 157 167* 983* 986 990 992 1073 1158 source_filename 4030 based varying char(200) level 2 dcl 13-7 set ref 986* 995 source_list 000014 internal static structure level 1 dcl 1686 source_ptr 001156 automatic pointer dcl 1682 set ref 933* 933 933 984 990 1002 1007 1025 1169 space 6 based fixed bin(31,0) level 3 dcl 11-5 set ref 1148* stackbaseptr builtin function dcl 1773 ref 720 720 stop_opt 1(33) based bit(1) level 2 packed unaligned dcl 11-5 ref 714 string_area_count 5750 based fixed bin(17,0) level 3 dcl 14-5 set ref 1296* substr builtin function dcl 1773 ref 31 250 254 256 275 279 281 301 305 307 350 357 359 379 387 391 476 484 488 488 663 1372 suffixed_name_$new_suffix 000724 constant entry external dcl 1750 ref 1002 sws 4113 based structure level 2 in structure "save_shared" dcl 13-124 in procedure "comp" sws based structure level 2 in structure "page_header" dcl 12-27 in procedure "comp" sws based structure level 2 in structure "default_parms" dcl 14-213 in procedure "comp" sws 4113 based structure level 2 in structure "shared" dcl 13-7 in procedure "comp" sws based structure level 2 in structure "text_entry" dcl 14-68 in procedure "comp" sys_info$max_seg_size 001012 external static fixed bin(18,0) dcl 15-80 set ref 720* tblkdata based structure level 1 dcl 14-5 tblkdata_ptr 4022 based pointer level 3 dcl 13-7 set ref 1296 1296 1296 1296 term_$single_refname 000726 constant entry external dcl 1754 ref 812 text based structure level 1 dcl 14-49 in procedure "comp" text 2 based char level 2 in structure "error" packed unaligned dcl 7-3 in procedure "comp" set ref 1464 1464 text_area 3760 based structure level 2 dcl 14-5 text_area_ptr 001276 automatic pointer initial dcl 14-35 set ref 14-35* text_entry based structure level 1 dcl 14-68 set ref 1160* text_entry_ptr 202 based pointer level 3 dcl 15-23 ref 1129 1129 1136 1136 1143 1143 1160 1161 1162 text_header based structure level 1 dcl 14-163 text_parms based structure level 1 dcl 14-206 set ref 1107* text_parms_ptr 206 based pointer level 3 dcl 15-23 ref 1107 1110 text_ptr 14 based pointer level 2 dcl 12-56 set ref 1319* 1440* to 235 based varying char(32) array level 3 dcl 11-5 set ref 622* 634* 688* to_opt 1(20) based bit(1) level 2 packed unaligned dcl 11-5 ref 597 to_optndx constant fixed bin(17,0) initial dcl 1524 ref 196 681 translator_temp_$get_next_segment 001016 constant entry external dcl 17-37 ref 17-42 translator_temp_$release_all_segments 000730 constant entry external dcl 1758 ref 1330 1444 1446 txtstr based varying char(1020) dcl 14-45 set ref 1157* unspec builtin function dcl 1773 set ref 25* 991* 1091* 1098* 1128* 1135* 1142* 1154* 1160* vcpu_end 001164 automatic fixed bin(71,0) dcl 1690 set ref 1292* 1296 vcpu_start 001162 automatic fixed bin(71,0) dcl 1689 set ref 968* 1296 verify builtin function dcl 1773 ref 118 342 511 675 version based fixed bin(17,0) level 2 in structure "comp_dvid" dcl 4-17 in procedure "comp" ref 838 version 2 based fixed bin(35,0) level 2 in structure "const" dcl 15-23 in procedure "comp" ref 56 wait_opt 1(34) based bit(1) level 2 packed unaligned dcl 11-5 set ref 714* wdir 001166 automatic char(168) initial unaligned dcl 1691 set ref 551* 585 1013* 1015* 1691* width 37 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 1139* width 10 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 1132* 1148 width 66 based fixed bin(31,0) level 4 in structure "option" dcl 11-5 in procedure "comp" set ref 1146* 1148 width 2 000756 automatic fixed bin(31,0) level 2 in structure "meas1" dcl 1664 in procedure "comp" set ref 1132 1139 1146 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 14-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 15-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 15-18 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 16-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 16-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 16-16 TERM_FILE_TERM internal static bit(3) initial unaligned dcl 16-14 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 16-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 16-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 16-15 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 14-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 14-47 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 call_box based structure level 1 dcl 10-18 call_box_ptr automatic pointer dcl 10-17 comp_art_ 000000 constant entry external dcl 6-8 comp_block_ctls_ 000000 constant entry external dcl 6-9 comp_break_ 000000 constant entry external dcl 6-11 comp_break_ctls_ 000000 constant entry external dcl 6-12 comp_ctls_ 000000 constant entry external dcl 6-14 comp_eject_page_ 000000 constant entry external dcl 6-15 comp_expr_eval_ 000000 constant entry external dcl 6-17 comp_extr_str_ 000000 constant entry external dcl 6-21 comp_fill_ 000000 constant entry external dcl 6-24 comp_format_ctls_ 000000 constant entry external dcl 6-26 comp_head_page_ 000000 constant entry external dcl 6-33 comp_hft_ctls_ 000000 constant entry external dcl 6-35 comp_hft_ctls_$title 000000 constant entry external dcl 6-36 comp_insert_ctls_ 000000 constant entry external dcl 6-42 comp_make_page_ 000000 constant entry external dcl 6-44 comp_read_$line 000000 constant entry external dcl 6-57 comp_read_$name 000000 constant entry external dcl 6-50 comp_report_ 000000 constant entry external dcl 6-59 comp_report_$ctlstr 000000 constant entry external dcl 6-61 comp_report_$exact 000000 constant entry external dcl 6-64 comp_space_ 000000 constant entry external dcl 6-66 comp_tbl_ctls_ 000000 constant entry external dcl 6-68 comp_title_block_ 000000 constant entry external dcl 6-69 comp_use_ref_ 000000 constant entry external dcl 6-74 comp_util_$add_text 000000 constant entry external dcl 6-75 comp_util_$display 000000 constant entry external dcl 6-77 comp_util_$escape 000000 constant entry external dcl 6-80 comp_util_$getblk 000000 constant entry external dcl 6-82 comp_util_$num_display 000000 constant entry external dcl 6-84 comp_util_$pageno 000000 constant entry external dcl 6-86 comp_util_$pictures 000000 constant entry external dcl 6-88 comp_util_$pop 000000 constant entry external dcl 6-91 comp_util_$push 000000 constant entry external dcl 6-92 comp_util_$relblk 000000 constant entry external dcl 6-94 comp_util_$replace_text 000000 constant entry external dcl 6-96 comp_util_$search_tree 000000 constant entry external dcl 6-98 comp_util_$set_bin 000000 constant entry external dcl 6-100 comp_util_$translate 000000 constant entry external dcl 6-106 comp_write_block_ 000000 constant entry external dcl 6-108 comp_write_page_ 000000 constant entry external dcl 6-110 ctl_line based varying char(1020) dcl 14-158 current_parms based structure level 1 dcl 14-209 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 13-126 dsm_ercd automatic fixed bin(35,0) dcl 1655 empty builtin function dcl 1773 flag_value based bit(1) unaligned dcl 13-132 fntstk_eptr automatic pointer dcl 8-5 ftnblk_data based structure level 1 dcl 9-5 ftnhdr based structure level 1 dcl 9-10 get_quota 000000 constant entry external dcl 1708 hcs_$make_seg 000000 constant entry external dcl 1717 hcs_$truncate_seg 000000 constant entry external dcl 1729 hfcblk based structure level 1 dcl 14-250 hfcblk_ptr automatic pointer dcl 14-249 ioa_$nnl 000000 constant entry external dcl 15-70 iox_$error_output external static pointer dcl 15-74 line_area based structure level 1 dcl 14-26 max_cols internal static fixed bin(17,0) initial dcl 12-7 max_image_lines internal static fixed bin(17,0) initial dcl 12-5 max_text_lines internal static fixed bin(17,0) initial dcl 13-128 mode_string internal static char(16) initial unaligned dcl 13-129 num_value based fixed bin(31,0) dcl 13-133 option_version internal static fixed bin(35,0) initial dcl 11-3 page_image_version internal static fixed bin(35,0) initial dcl 12-53 page_version internal static fixed bin(17,0) initial dcl 12-9 quadc internal static bit(6) initial unaligned dcl 14-148 quadi internal static bit(6) initial unaligned dcl 14-148 quadl internal static bit(6) initial unaligned dcl 14-148 quado internal static bit(6) initial unaligned dcl 14-148 quadr internal static bit(6) initial unaligned dcl 14-148 refname_str based char unaligned dcl 10-27 refstr_len automatic fixed bin(17,0) dcl 10-29 refstr_ptr automatic pointer dcl 10-30 shared_version internal static fixed bin(35,0) initial dcl 13-5 string_area based fixed bin(17,0) array dcl 14-43 tdir_optndx internal static fixed bin(17,0) initial dcl 1524 term_$seg_ptr 000000 constant entry external dcl 1753 terminate_file_ 000000 constant entry external dcl 1756 terminate_file_switches based structure level 1 packed unaligned dcl 16-4 text_area based structure level 1 dcl 14-36 txtlin based structure level 1 dcl 14-161 txtlinptr automatic pointer dcl 14-160 txtstrptr automatic pointer dcl 14-44 NAMES DECLARED BY EXPLICIT CONTEXT. allocate 017175 constant entry internal dcl 17-21 ref 143 737 933 941 cbar_opt 004215 constant label dcl 226 ref 327 clean 015730 constant entry external dcl 1370 clean_ 015526 constant label dcl 1342 ref 83 108 139 571 582 711 726 746 773 787 806 820 835 844 856 892 905 919 929 1009 1042 1052 1242 1263 1326 1336 1346 1366 1456 cln_return 016544 constant label dcl 1449 ref 1385 comp 002632 constant entry external dcl 18 comp_cleanup 016004 constant entry internal dcl 1379 ref 67 960 1342 1374 compose 002642 constant entry external dcl 18 dtf 015772 constant entry external dcl 1517 dtn 015757 constant entry external dcl 1513 end_args 007525 constant label dcl 697 ref 111 219 file_abort 014365 constant label dcl 1206 ref 1172 here 002722 constant label dcl 40 ref 40 40 input_file_loop 012032 constant label dcl 962 is_a_file 003502 constant label dcl 131 ref 342 530 659 is_option 004021 constant label dcl 179 ref 339 409 424 556 601 644 657 no_param 003405 constant label dcl 111 ref 226 379 444 476 511 520 525 537 542 675 page_err_1 006110 constant label dcl 457 set ref 597 685 page_err_3 007145 constant label dcl 614 ref 628 param_err 004126 constant label dcl 204 ref 642 pglst_loop 007123 constant label dcl 606 ref 648 print_errs 016546 constant entry internal dcl 1453 ref 1214 1356 print_files 016706 constant entry internal dcl 1472 ref 1220 1361 print_pi_stuff 015533 constant label dcl 1346 ref 953 skip_arg 007523 constant label dcl 691 ref 97 128 154 164 172 212 420 462 618 639 655 skip_file 015361 constant label dcl 1315 ref 1022 1031 NAME DECLARED BY CONTEXT OR IMPLICATION. codeptr builtin function ref 40 40 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 21304 22324 20311 21314 Length 23420 20311 1020 1060 773 626 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp 2238 external procedure is an external procedure. on unit on line 67 64 on unit on unit on line 91 100 on unit on unit on line 953 64 on unit on unit on line 960 64 on unit on unit on line 1172 64 on unit on unit on line 1346 64 on unit comp_cleanup 100 internal procedure enables or reverts conditions. on unit on line 1393 70 on unit print_errs 104 internal procedure enables or reverts conditions. on unit on line 1456 64 on unit print_files internal procedure shares stack frame of external procedure comp. allocate internal procedure shares stack frame of external procedure comp. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dt_sw comp 000011 ips_mask comp 000012 re_call comp 000014 source_list comp STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp 000100 argl comp 000102 argp comp 000104 atd comp 000204 badcall comp 000206 bulk_file comp 000356 dsm_dir comp 000430 dsm_path comp 000512 ctltxtptr comp 000514 compose_dir comp 000566 compout_name comp 000576 compout_path comp 000662 compout_seg_ptr comp 000664 dsm_baseptr comp 000666 ercd comp 000667 filndx comp 000670 i comp 000671 j comp 000672 iarg comp 000673 local_arg comp 000756 meas1 comp 001044 meas2 comp 001132 nargs comp 001133 null_info comp 001136 option_keyword comp 001146 optndx comp 001150 optnptr comp 001152 pd_used_end comp 001153 pd_used_start comp 001154 pf_end comp 001155 pf_start comp 001156 source_ptr comp 001160 source_file_ptr comp 001162 vcpu_start comp 001164 vcpu_end comp 001166 wdir comp 001240 command_arg_ct comp 001242 command_arg_ptr comp 001274 line_area_ptr comp 001276 text_area_ptr comp 001320 file_list_iocbp print_files 001322 refptr print_files 001334 Nwords allocate 001336 P allocate 001340 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_ne_as r_ge_a alloc_cs cat_realloc_cs call_var call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext mpfx2 mod_fx1 enable shorten_stack ext_entry int_entry set_cs_eis index_cs_eis search_eis any_to_any_tr index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ comp_ comp_font_ comp_get_file_$find comp_get_file_$open comp_init_$one comp_init_$three comp_init_$two comp_make_page_$cleanup comp_measure_ comp_read_$number comp_update_symbol_ comp_util_$set_net_page cpu_time_and_paging_ cu_$arg_count cu_$arg_ptr expand_pathname_ expand_pathname_$add_suffix get_pdir_ get_wdir_ hcs_$fs_get_path_name hcs_$initiate hcs_$make_ptr hcs_$quota_read hcs_$reset_ips_mask hcs_$set_ips_mask hcs_$set_max_length_seg initiate_file_ ioa_ ioa_$ioa_switch iox_$attach_name iox_$close iox_$control iox_$detach_iocb iox_$open iox_$put_chars msf_manager_$close pathname_ release_temp_segment_ search_paths_$find_dir suffixed_name_$new_suffix term_$single_refname translator_temp_$get_next_segment translator_temp_$release_all_segments THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compose_severity_ compstat$compconst error_table_$badopt error_table_$entlong error_table_$namedup error_table_$noarg error_table_$noentry error_table_$segknown error_table_$unimplemented_version iox_$user_input iox_$user_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1636 002604 1637 002605 1645 002616 1668 002621 1691 002622 14 25 002625 14 35 002626 18 002631 24 002650 25 002653 28 002656 31 002660 34 002672 37 002721 40 002722 42 002755 45 002757 47 003005 50 003006 52 003011 56 003062 59 003071 61 003116 64 003117 67 003122 68 003144 71 003147 75 003153 77 003162 80 003164 83 003221 86 003222 89 003230 91 003231 93 003245 96 003317 97 003323 100 003326 102 003333 104 003350 107 003352 108 003404 111 003405 115 003410 118 003425 122 003441 127 003477 128 003501 131 003502 136 003506 139 003542 142 003543 143 003544 145 003562 146 003567 148 003633 150 003706 153 003710 154 003712 157 003713 161 003736 163 003773 164 003775 167 003776 168 004012 171 004014 172 004016 174 004017 176 004020 179 004021 182 004026 184 004035 187 004036 188 004072 189 004074 193 004075 194 004100 196 004104 199 004106 200 004107 201 004124 204 004126 208 004132 211 004203 212 004206 214 004207 219 004210 223 004213 226 004215 230 004233 232 004242 234 004275 236 004315 239 004340 241 004373 243 004420 246 004443 250 004466 254 004477 256 004517 259 004530 262 004543 263 004566 264 004607 265 004632 266 004633 268 004654 271 004677 275 004722 279 004733 281 004753 283 004764 286 004777 287 005022 289 005043 290 005066 291 005067 294 005110 297 005133 301 005155 305 005166 307 005206 309 005217 312 005232 313 005255 314 005276 315 005321 316 005322 318 005343 319 005366 322 005367 325 005371 327 005377 333 005400 336 005402 339 005404 342 005420 345 005432 347 005443 350 005444 354 005464 357 005467 359 005503 363 005524 365 005525 367 005543 372 005544 375 005546 376 005556 379 005560 381 005572 384 005604 387 005605 391 005624 394 005650 396 005651 398 005666 402 005667 405 005671 406 005701 409 005706 414 005722 417 005736 419 005737 420 005753 424 005760 427 005774 429 006012 432 006013 436 006023 439 006025 442 006054 444 006062 448 006076 451 006077 454 006101 457 006110 461 006137 462 006141 465 006142 466 006153 469 006154 472 006156 476 006160 479 006172 481 006204 484 006205 488 006225 493 006260 496 006267 499 006315 501 006317 503 006320 505 006336 508 006337 511 006341 513 006356 514 006374 517 006375 520 006377 522 006414 525 006473 527 006476 530 006477 534 006501 537 006503 539 006520 542 006577 544 006602 545 006630 548 006631 551 006633 553 006642 556 006644 560 006657 564 006665 566 006715 569 006717 571 006754 573 006755 577 006756 580 006761 582 007007 584 007010 585 007013 587 007016 590 007074 591 007075 594 007076 597 007100 601 007107 606 007123 611 007136 614 007145 617 007174 618 007176 621 007177 622 007203 624 007235 628 007237 631 007246 632 007252 634 007271 637 007314 638 007315 639 007331 642 007336 644 007337 648 007353 652 007354 655 007356 657 007362 659 007375 662 007400 663 007415 665 007423 668 007424 672 007444 675 007446 677 007462 678 007500 681 007501 685 007503 688 007512 695 007523 697 007525 700 007526 704 007605 707 007611 708 007637 711 007641 714 007643 720 007654 722 007670 725 007672 726 007720 729 007721 732 007730 734 007737 737 007741 740 007755 741 007765 742 010002 745 010004 746 010036 749 010037 750 010056 751 010063 752 010065 754 010066 757 010070 760 010074 762 010107 763 010112 766 010113 768 010150 771 010152 773 010204 777 010205 780 010213 782 010264 785 010266 787 010325 791 010326 794 010356 800 010363 802 010427 805 010433 806 010470 808 010471 812 010476 813 010515 815 010561 818 010565 820 010617 824 010620 827 010641 828 010657 830 010710 833 010712 835 010752 838 010753 841 010761 844 011016 846 011017 848 011023 849 011035 852 011037 856 011077 859 011100 862 011111 865 011114 868 011117 870 011123 874 011132 878 011137 882 011146 885 011161 887 011216 891 011227 892 011261 895 011262 898 011277 902 011313 905 011345 907 011346 909 011350 910 011365 912 011377 914 011432 917 011434 919 011470 922 011471 923 011514 926 011516 927 011551 928 011565 929 011566 933 011567 935 011606 936 011620 938 011626 941 011634 943 011650 946 011661 950 011710 953 011766 958 012006 960 012010 962 012032 965 012043 968 012052 969 012065 973 012146 976 012162 979 012175 980 012202 983 012220 984 012225 986 012227 990 012264 991 012270 992 012300 993 012315 995 012320 998 012333 1002 012346 1004 012406 1007 012410 1009 012443 1012 012444 1013 012455 1015 012501 1017 012537 1021 012550 1022 012602 1025 012603 1028 012613 1031 012651 1034 012652 1035 012667 1037 012727 1040 012731 1041 012765 1042 012770 1044 012771 1045 013014 1048 013016 1049 013051 1050 013065 1051 013066 1052 013071 1055 013072 1058 013101 1059 013110 1063 013112 1067 013126 1068 013140 1072 013157 1073 013163 1074 013170 1075 013177 1077 013300 1079 013303 1087 013332 1088 013337 1089 013345 1091 013351 1092 013355 1093 013357 1094 013360 1095 013362 1097 013365 1098 013367 1099 013375 1100 013377 1101 013401 1103 013406 1104 013415 1105 013420 1107 013427 1108 013444 1110 013471 1112 013500 1115 013506 1120 013541 1121 013542 1123 013545 1125 013555 1128 013564 1129 013567 1132 013647 1135 013660 1136 013663 1139 013743 1142 013754 1143 013757 1146 014037 1148 014050 1153 014060 1154 014063 1155 014066 1156 014102 1157 014103 1158 014107 1160 014112 1161 014116 1162 014122 1164 014127 1165 014132 1167 014140 1169 014141 1172 014167 1174 014206 1178 014243 1180 014250 1183 014262 1186 014265 1187 014273 1190 014275 1194 014313 1197 014326 1199 014337 1202 014356 1203 014363 1206 014365 1209 014371 1211 014376 1214 014405 1220 014417 1223 014432 1227 014446 1229 014460 1230 014476 1232 014516 1234 014524 1236 014533 1239 014535 1241 014563 1242 014566 1246 014567 1249 014577 1251 014611 1252 014627 1254 014647 1256 014655 1258 014664 1261 014666 1262 014714 1263 014717 1267 014720 1272 014741 1275 014754 1276 014765 1278 015004 1281 015044 1283 015046 1285 015054 1289 015100 1292 015107 1293 015122 1296 015203 1304 015306 1307 015315 1308 015325 1311 015350 1312 015352 1315 015361 1319 015371 1320 015414 1323 015416 1325 015444 1326 015447 1330 015450 1331 015463 1334 015465 1335 015513 1336 015516 1338 015517 1340 015524 1342 015526 1344 015532 1346 015533 1350 015552 1353 015562 1356 015637 1361 015661 1365 015674 1366 015726 1370 015727 1372 015736 1374 015751 1375 015755 1513 015756 1515 015765 1516 015770 1517 015771 1519 016000 1520 016002 1379 016003 1381 016011 1385 016012 1388 016020 1391 016040 1393 016053 1395 016077 1398 016117 1401 016140 1403 016163 1405 016166 1410 016206 1411 016221 1414 016240 1417 016250 1418 016263 1421 016302 1426 016324 1429 016337 1430 016350 1433 016370 1434 016375 1435 016400 1437 016406 1440 016440 1444 016500 1446 016520 1447 016534 1449 016544 1453 016545 1456 016553 1458 016572 1461 016630 1464 016637 1468 016657 1470 016705 1472 016706 1482 016707 1485 016723 1488 016732 1490 016742 1492 016745 1496 017005 1498 017021 1499 017030 1500 017037 1504 017142 1505 017145 1507 017147 1510 017174 17 21 017175 17 40 017177 17 41 017205 17 42 017211 17 43 017224 17 44 017234 17 45 017237 17 47 017247 17 48 017256 17 49 017262 17 50 017270 ----------------------------------------------------------- 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