COMPILATION LISTING OF SEGMENT comp_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 0942.3 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 /* compose subroutine to process input files */ 11 12 /* This routine is recursive since the controls processor must call it 13* to process inserted files. */ 14 15 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 16 17 comp_: 18 proc; 19 20 /* LOCAL STORAGE */ 21 22 dcl ascii_width fixed bin; /* width of ctl line in chars */ 23 dcl blank_count fixed bin init (0); 24 dcl BREAK bit (1) static options (constant) init ("1"b); 25 dcl break_type fixed bin; 26 dcl CBARS bit (1) static options (constant) init ("1"b); 27 /* count of blanks inserted */ 28 dcl char_index (1020) fixed bin (9) 29 /* for width measurement */ 30 unsigned unaligned based (char_index_ptr); 31 dcl char_index_ptr ptr; 32 dcl col_space fixed bin (31); /* to advance table columns */ 33 dcl EMPTY bit (1) static options (constant) init ("1"b); 34 dcl endinput bit (1); /* local copy of shared flag */ 35 dcl EPILOGUE fixed bin static options (constant) init (4); 36 dcl ercd fixed bin (35); /* error code */ 37 dcl fill_count fixed bin; /* tab fill count */ 38 dcl head_used fixed bin (31); /* space taken by page header */ 39 dcl htab_shift char (7) based (DCxx_p); 40 /* ctl string for htabbing */ 41 dcl 1 htab_space like dclong_val; /* for inserting htab WS */ 42 dcl (i, j) fixed bin; /* working index and string index */ 43 dcl (ii, jj, k) fixed bin; /* working index */ 44 /* for htab measuring */ 45 dcl 1 meas1 aligned like text_entry.cur; 46 dcl 1 meas2 aligned like text_entry.cur; 47 dcl strndx fixed bin; /* working line scan index */ 48 dcl TEXT bit (1) static options (constant) init ("1"b); 49 dcl text_added bit (1) aligned; /* text added to output buffer */ 50 dcl text_flag bit (1); /* current block is in-line text */ 51 dcl TRIM bit (1) static options (constant) init ("1"b); 52 dcl txtwidth fixed bin (31) init (0); 53 /* measured text width */ 54 55 /* EXTERNAL STORAGE */ 56 57 dcl (addrel, before, bin, copy, divide, index, length, max, min, mod, null, 58 rtrim, search, substr) 59 builtin; 60 dcl (comp_abort, end_output) 61 condition; 62 63 dcl iox_$put_chars entry (ptr, ptr, fixed (24), fixed (35)); 64 65 if shared.bug_mode 66 then call ioa_ ("comp_: (^d ^d ^a pass=^d)", call_stack.index, 67 insert_data.index, shared.input_filename, shared.pass_counter); 68 69 htab_space.mark = DC1; 70 htab_space.type = type_slx; /* setup for htabbing */ 71 htab_space.leng = 4; 72 DCxx_p = addr (htab_space); 73 call_box_ptr = call_stack.ptr (call_stack.index); 74 /* set ctl line overlay pointer */ 75 char_index_ptr = addrel (ctl.ptr, 1); 76 77 call_box.lineno = 0; /* clear line counter for this file */ 78 if call_stack.index = 0 /* set source file lineno */ 79 then call_box.lineno0 = 0; 80 else call_box.lineno0 = call_box0.lineno; 81 82 endinput = shared.end_input; /* copy shared flag for recursion */ 83 shared.end_input = "0"b; /* and reset it */ 84 on end_output goto end_output_; /* end_output signal chain ends here */ 85 86 read: 87 if shared.end_input /* did somebody signal? */ 88 then goto end_input_; 89 if shared.end_output 90 then goto end_output_; /**/ 91 /* read an input line */ 92 call comp_read_$line (call_stack.ptr (call_stack.index), ctl_line, "0"b); 93 ctl.info = call_box.info; 94 95 if shared.end_input /* input EOF? */ 96 then goto end_input_; 97 98 if shared.literal_mode /* a literal block? */ 99 then 100 do; 101 if shared.lit_count = 0 /* if thats all, reset the flag */ 102 then shared.literal_mode = "0"b; 103 else /* count lines */ 104 shared.lit_count = shared.lit_count - 1; 105 end; 106 107 ctl.DVctl = "0"b; /* reset device ctl flag */ 108 ctl.font = ctl.cur.font; /* propagate any font changes */ 109 110 if index (ctl_line, " ") ^= 0 /* if any HTs in the line */ 111 then 112 do; 113 ascii_width = 0; /* set up loop counters */ 114 i, j = 1; /* and control indices */ 115 do while (j > 0); /* as long as HTs are found */ 116 j = index (substr (ctl_line, i), " "); 117 /* look for an HT */ 118 119 if j > 0 /* if one was found */ 120 then 121 do; 122 123 if j > 1 /* measure preceding text */ 124 then 125 do; 126 do k = i to i + j - 2; 127 if char_index (k) >= 32 & char_index (k) <= 126 128 then ascii_width = ascii_width + 1; 129 else if char_index (k) = 8 130 then ascii_width = ascii_width - 1; 131 end; 132 ii = i + j - 1; /* position of HT in line */ 133 end; 134 else ii = i; /* HT is the next character */ 135 136 blank_count = /* blanks to next Multics tab */ 137 10 - mod (ascii_width, 10); 138 ctl_line = substr (ctl_line, 1, ii - 1) || 139 /* insert them */ 140 copy (" ", blank_count) || substr (ctl_line, ii + 1); 141 i = ii + blank_count; /* adjust counters */ 142 ascii_width = ascii_width + blank_count; 143 end; 144 end; 145 end; 146 147 if shared.table_mode 148 then 149 do; /* record current table column */ 150 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 151 tblcolndx = tblfmt.ccol; 152 tblcolptr = tblfmt.colptr (tblcolndx); 153 if tblcolndx = 0 154 then break_type = block_break; 155 else break_type = format_break; 156 end; 157 158 text_added = "1"b; /* preset text flag */ 159 160 if length (ctl_line) = 0 /* special handling for null lines */ 161 then 162 do; 163 null_line: 164 if shared.blkptr ^= null /* if there is an active block */ 165 then 166 do; 167 if text.parms.title_mode /* a title block? */ 168 then 169 do; /* count lines */ 170 text.hdr.eqn_line_count = text.hdr.eqn_line_count - 1; 171 /* if thats all, reset flag */ 172 if text.hdr.eqn_line_count = 0 173 then text.parms.title_mode = "0"b; 174 end; /**/ 175 /* is there a header pending? */ 176 if text.parms.hdrptr ^= null & ^shared.inserting_hfc 177 then call comp_title_block_ (text.parms.hdrptr); 178 end; 179 180 call comp_space_ (current_parms.linespace, shared.blkptr, TEXT, ^TRIM, 181 CBARS, "0"b); 182 if shared.table_mode 183 then call comp_break_ (break_type, -1); 184 else if ^text.parms.art 185 then call comp_break_ (block_break, 0); 186 187 goto read; 188 end; /**/ 189 /* indented controls? then */ 190 /* find first nonblank */ 191 if shared.indctl.stk (shared.indctl.ndx) 192 then ctl.index = verify (ctl_line, " "); 193 else ctl.index = 1; /* else start a 1 */ 194 195 /* control line? */ 196 if index (substr (ctl_line, ctl.index), ".") = 1 197 & index (substr (ctl_line, ctl.index), ". ") ^= 1 198 & substr (ctl_line, ctl.index) ^= "." 199 & index (substr (ctl_line, ctl.index), ".. ") ^= 1 200 & substr (ctl_line, ctl.index) ^= ".." 201 & index (substr (ctl_line, ctl.index), "...") ^= 1 202 then 203 do; 204 if ^shared.literal_mode /* if not in literal mode */ 205 | (shared.literal_mode & shared.lit_count < 0 206 /* or a non-cntng literal */ 207 & (ctl_line = ".bel" /* and end literal */ 208 | ctl_line = ".be")) /* or end all */ 209 then 210 do; 211 tbl_: 212 if shared.table_mode /* table mode? */ 213 then if tblfmt.context /* and format in context mode */ 214 then 215 do; /**/ 216 /* if there is a column index */ 217 if index ("1234567890", substr (ctl_line, 2, 1)) ^= 0 218 then 219 do; 220 ctl.index = ctl.index + 1; 221 /* bad column? */ 222 if bin (substr (ctl_line, ctl.index, 1)) 223 > tblfmt.ncols 224 then 225 do; 226 call comp_report_ (2, 0, 227 "Column undefined for this format.", 228 addr (ctl.info), ctl_line); 229 goto read; 230 end; /**/ 231 /* changing? */ 232 if substr (ctl_line, ctl.index, 1) = "0" 233 & tblfmt.ccol ^= 10 234 | substr (ctl_line, ctl.index, 1) ^= "0" 235 & bin (substr (ctl_line, ctl.index, 1)) 236 ^= tblfmt.ccol 237 then call comp_tbl_ctls_ (tac_ctl_index); 238 /* assure context mode */ 239 tblfmt.context = "1"b; 240 /* strip column off input line */ 241 if length (ctl_line) > 2 242 then ctl_line = substr (ctl_line, 3); 243 else ctl_line = ""; 244 /* if changing columns */ 245 if tblfmt.ccol ^= tblcolndx 246 then 247 do; /* leaving column 0? */ 248 if tblcolndx = 0 249 then 250 do i = 1 to tblfmt.ncols; 251 tblfmt.colptr (i) -> tblcol.depth = 252 tblcol0.depth; 253 end; /**/ 254 /* set to new column */ 255 tblcolndx = tblfmt.ccol; 256 tblcolptr = tblfmt.colptr (tblcolndx); 257 ctl.font, ctl.cur.font = 258 tblcol.parms.fntstk 259 .entry (tblcol.parms.fntstk.index); 260 261 if shared.blkptr ^= null () 262 then 263 do; 264 text.input.font, text.input.cur.font, 265 ctl.font, ctl.cur.font = 266 tblcol.parms.fntstk 267 .entry (tblcol.parms.fntstk.index); 268 text.input.quad, ctl.quad = tblcol.parms.quad; 269 end; 270 end; /**/ 271 /* for a null line */ 272 if ctl_line = "" 273 then goto null_line; 274 else goto text_; 275 end; /**/ 276 /* a real control line */ 277 else if substr (ctl_line, 1, 3) ^= ".ur" 278 then 279 do; /* clean up */ 280 if shared.blkptr ^= null () 281 then if text.input_line ^= "" 282 then call comp_break_ (format_break, 0); 283 end; 284 end; /**/ 285 /* call control processor */ 286 call comp_ctls_ (text_added); 287 288 if text_added & shared.table_mode & substr (ctl_line, 1, 1) = "." 289 & index ("1234567890", substr (ctl_line, 2, 1)) ^= 0 290 then if tbldata.fmt (tbldata.ndx).ptr -> tblfmt.context 291 then goto tbl_; 292 end; 293 end; 294 295 if shared.table_mode & text_added /* text line in table mode? */ 296 then if tblfmt.context /* and format in context mode? */ 297 then 298 do; 299 tblcolndx = tblfmt.ccol; 300 if tblcolndx ^= 0 /* going back to column 0? */ 301 then 302 do; /* clean up */ 303 if shared.blkptr ^= null () 304 then if text.input_line ^= "" 305 then call comp_break_ (format_break, 0); 306 /* switch to column 0 */ 307 tblcolndx, tblfmt.ccol = 0; 308 tblcolptr = tblfmt.colptr (0); 309 current_parms = tblcol.parms; 310 311 if shared.blkptr ^= null () 312 then 313 do; 314 text.parms = current_parms; 315 text.input.quad, ctl.quad = current_parms.quad; 316 end; /**/ 317 /* advance short columns */ 318 do i = 0 to tblfmt.ncols; 319 tblfmt.colptr (i) -> tblcol.depth = tblfmt.maxdepth; 320 end; 321 end; 322 end; 323 324 /* text line */ 325 text_: 326 if text_added /* if there's text to be added */ 327 then 328 do; 329 if shared.blkptr = null () /* get a text block if one is needed */ 330 then 331 do; /**/ 332 /* head page if needed */ 333 if ^option.galley_opt & ^page.hdr.headed & page.hdr.col_index >= 0 334 then call comp_head_page_ (head_used); 335 336 call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 337 addr (current_parms), ^EMPTY); 338 end; 339 340 if (text.blktype = "oh" | text.blktype = "eh" | text.blktype = "of" 341 | text.blktype = "ef" | text.blktype = "tf" 342 | text.blktype = "th" | "0"b) 343 /* NAMED BLOCKS REPLACE "0"b */ 344 then text_flag = "0"b; 345 else text_flag = "1"b; /**/ 346 /* is there a header pending? */ 347 if text.parms.hdrptr ^= null & ^shared.inserting_hfc 348 then if ^text.parms.title_mode 349 then call comp_title_block_ (text.parms.hdrptr); 350 351 text.input.lmarg = text.parms.left.indent - text.parms.left.undent; 352 text.input.rmarg = 353 text.parms.measure - text.parms.right.indent 354 + text.parms.right.undent; 355 text.input.net = text.input.rmarg - text.input.lmarg; 356 357 if shared.table_mode & ^text.parms.footnote 358 then 359 do; 360 text.input.lmarg = text.input.lmarg + tblcol.margin.left; 361 text.input.rmarg = text.input.rmarg + tblcol.margin.left; 362 end; 363 364 if ctl_line = "" /* a null line */ 365 then goto null_line; /**/ 366 /* if a filled block with leading */ 367 if text.parms.fill_mode /* white space & there are leftovers */ 368 then if index (" ", substr (ctl_line, 1, 1)) ^= 0 369 & length (text.input_line) > 0 370 then 371 do; 372 call comp_break_ (format_break, 0); 373 if text.input.oflo & ^text.parms.keep & text.hdr.colno >= 0 374 & ^shared.table_mode 375 then call comp_break_ (need_break, -2); 376 377 if shared.end_output 378 then goto return_; 379 end; /**/ 380 /* any active htabs? */ 381 if shared.htab_ptr ^= null () 382 then if htab.chars ^= "" 383 then call do_htabs; 384 385 if ctl_line = "" /* if its empty after all that */ 386 then goto null_line; 387 388 /* title block */ 389 if text.parms.title_mode 390 then 391 do; /* count lines */ 392 text.hdr.eqn_line_count = text.hdr.eqn_line_count - 1; 393 /* if thats all, reset flag */ 394 if text.hdr.eqn_line_count = 0 395 then text.parms.title_mode = "0"b; 396 /* a line? */ 397 if index (ctl_line, shared.ttl_delim) = 1 398 then 399 do; /* clean up leftovers */ 400 if length (text.input_line) > 0 401 then call comp_break_ (format_break, 0); 402 403 text.input_line = ctl_line; 404 text.input.info = ctl.info; 405 406 /**** if text.hdr.colno >= 0 407*/**** then */ 408 call comp_hft_ctls_$title (shared.blkptr, addr (text.input), 409 text.input_line, text.parms.linespace); 410 /**** else call comp_util_$add_text (shared.blkptr, "0"b, "0"b, "0"b, 411*/**** (text.input.quad ^= quadl), ^text.input.art, "0"b,*/ 412 /**** "0"b, /* text.input.oflo, */ 413 /**** addr (text.input));*/ 414 415 text.input.art = text.input.art | text.parms.art; 416 if text.input.art /* if an artwork line */ 417 then 418 do; 419 text.hdr.art_count = text.hdr.art_count - 1; 420 if text.hdr.art_count = 0 421 then current_parms.art, text.parms.art = "0"b; 422 end; 423 end; 424 425 else goto plain; /* free line in a formatted block */ 426 end; 427 428 /* column aligned table? */ 429 else if shared.table_mode & tblcol.align.posn > 0 430 then 431 do; /* find the string */ 432 strndx = index (ctl_line, tblcol.align.str); 433 434 if strndx > 0 /* if its there */ 435 then 436 do; /* measure preceding text */ 437 unspec (meas1) = "0"b; 438 call comp_measure_ (substr (ctl_line, 1, strndx - 1), 439 addr (text.input.font), "0"b, text.input.art, 440 text.input.quad, 0, addr (meas1), addr (meas2), 441 addr (ctl.info)); /* add to left margin undent */ 442 text.parms.left.undent = 443 text.parms.left.undent + meas1.width + meas1.avg; 444 text.input.lmarg = 445 text.input.lmarg + text.parms.left.indent 446 - text.parms.left.undent; 447 text.input.net = text.input.rmarg - text.input.lmarg; 448 text.input.quad = quadl; 449 end; 450 goto plain; 451 end; 452 453 /* plain text */ 454 else 455 do; 456 plain: 457 text.input.art = text.input.art | text.parms.art; 458 if text.input.art /* if an artwork line */ 459 then 460 do; 461 text.hdr.art_count = text.hdr.art_count - 1; 462 if text.hdr.art_count = 0 463 then current_parms.art, text.parms.art = "0"b; 464 end; /**/ 465 /* if not building a formatted block */ 466 if ^text.parms.title_mode /* insert pending text heading */ 467 & text.parms.hdrptr ^= null () & ^shared.inserting_hfc 468 then if text.parms.hdrptr -> hfcblk.hdr.count > 0 469 then call comp_title_block_ (text.parms.hdrptr); 470 471 if ^ctl.DVctl 472 then ctl.linespace = text.parms.linespace; 473 else 474 do; 475 text_flag = "0"b; 476 if ctl_line ^= wait_signal 477 then ctl.linespace = 0; 478 end; 479 480 /* if filling */ 481 if text.parms.fill_mode & length (ctl_line) > 0 482 & ^text.parms.htab_mode 483 then 484 do; 485 call comp_fill_; 486 if shared.end_output 487 then goto return_; 488 end; 489 490 /* not filling */ 491 else 492 do; 493 if (text.input.quad & just) | text.parms.htab_mode 494 then text.input.quad = quadl; 495 496 if ctl.DVctl 497 then text.input.linespace = 0; 498 499 if text.input.hanging 500 then 501 do; 502 unspec (meas1) = "0"b; 503 call comp_measure_ (ctl_line, addr (text.input.font), "0"b, 504 text.input.art, text.input.quad, 0, addr (meas1), 505 addr (meas2), addr (ctl.info)); 506 if meas1.width + meas1.avg <= text.parms.left.undent 507 then text.input.linespace = 0; 508 else text.input.linespace = text.parms.linespace; 509 end; 510 511 text.input_line = ctl_line; 512 text.input.info = ctl.info; 513 text.input.cbar = text.parms.cbar; 514 text.parms.cbar.del = "0"b; 515 516 call comp_util_$add_text (shared.blkptr, 517 (text.input.quad ^= quadl), ^text.input.art, "0"b, 518 text.input.oflo, addr (text.input)); 519 text.input_line = ""; 520 521 if text.input.oflo & text.hdr.colno >= 0 522 & ^(shared.table_mode | text.parms.keep | text.parms.art) 523 then call comp_break_ (need_break, -2); 524 525 if shared.end_output 526 then goto end_output_; 527 528 if shared.blkptr ^= null/* is there still an active block? */ 529 then 530 do; 531 text.input_line = ""; 532 /* erase */ 533 /* undents are used */ 534 text.parms.left.undent, text.parms.right.undent = 0; 535 text.input.hanging, text.input.und_prot, ctl.hanging = 536 "0"b; 537 text.input.linespace, ctl.linespace = text.parms.linespace; 538 539 text.hdr.nofill_count = text.hdr.nofill_count - 1; 540 if text.hdr.nofill_count = 0 541 then call comp_format_ctls_ (fin_ctl_index); 542 end; 543 end; 544 end; 545 end; 546 goto read; 547 548 end_input_: 549 if shared.bug_mode 550 then call ioa_ ("end_input: (^d ^d ^a)", call_stack.index, 551 insert_data.index, shared.input_filename); 552 553 if call_stack.index > 0 554 then 555 do; 556 shared.end_input = endinput; /* restore the shared flag */ 557 goto return_; 558 end; 559 560 end_output_: 561 if option.db_line_end = -1 /* debugging end_output? */ 562 then shared.bug_mode = "1"b; 563 564 if shared.bug_mode 565 then call ioa_ ("end_output: (^a,^d)", shared.source_filename, ctl.lineno); 566 567 if shared.if_nest.ndx > 0 /* open if nest? */ 568 then 569 do; 570 call comp_report_$ctlstr (2, 0, 571 addr (shared.if_nest (shared.if_nest.ndx).info), 572 shared.if_nest (shared.if_nest.ndx).line, 573 "Unterminated conditional execution (if) group."); 574 shared.if_nest.ndx = 0; 575 end; 576 577 ctl_line = ""; /* erase a possible control line */ 578 if option.galley_opt /* force the flag in galley */ 579 then shared.end_output = "1"b; 580 581 if shared.blkptr ^= null () /* if there is a block */ 582 then 583 do; 584 if text.parms.title_mode /* unterminated special block */ 585 then 586 do; /**/ 587 /* clean it up */ 588 call comp_break_ (format_break, 0); 589 590 if text.blktype = "tx" 591 then 592 do; 593 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 594 "Unterminated equation block."); 595 end; 596 else 597 do; 598 const.current_parms_ptr = text.hdr.parms_ptr; 599 shared.blkptr = text.hdr.blkptr; 600 end; 601 end; 602 603 if shared.ftn_mode /* unclosed footnote */ 604 then 605 do; 606 ctl_line = ".bef"; 607 call comp_block_ctls_ (bef_ctl_index); 608 end; 609 610 if shared.blkptr ^= null 611 then 612 do; 613 if shared.table_mode /* exit table mode */ 614 then 615 do; 616 ctl.index = 5; 617 ctl_line = ".taf"; 618 call comp_tbl_ctls_ (taf_ctl_index); 619 end; 620 621 else if text.blktype = "pi" /* unterminated picture? */ 622 then call comp_block_ctls_ (bep_ctl_index); 623 624 else /* reset mode switches */ 625 do; /* and finish the block */ 626 text.parms.keep, text.parms.art = "0"b; 627 text.input.lmarg = 628 text.parms.left.indent - text.parms.left.undent; 629 text.input.rmarg = 630 text.parms.measure - text.parms.right.indent 631 + text.parms.right.undent; 632 text.input.net = text.input.rmarg - text.input.lmarg; 633 634 if shared.table_mode & ^text.parms.footnote 635 then 636 do; 637 text.input.lmarg = text.input.lmarg + tblcol.margin.left; 638 text.input.rmarg = text.input.rmarg + tblcol.margin.left; 639 end; 640 641 call comp_break_ (block_break, 0); 642 end; 643 end; 644 end; 645 646 if current_parms.cbar.del /* orphan delete mark? */ 647 then 648 do; 649 call comp_space_ (current_parms.linespace, shared.blkptr, "1"b, "1"b, 650 "1"b, "0"b); 651 call comp_break_ (block_break, 0); 652 end; 653 654 if shared.picture.count > 0 /* put any pictures */ 655 then call comp_util_$pictures (shared.blkptr); 656 /* are footnotes held? */ 657 if shared.ftnblk_data_ptr ^= null () & shared.ftn_reset = "hold" 658 then if ftnblk_data.highndx > 0 659 then 660 do; 661 shared.purge_ftns = "1"b; 662 ctl_line = ".ift"; 663 call comp_ctls_ ("0"b); 664 end; /**/ 665 /* any leftovers? */ 666 if page.hdr.used + col0.hdr.ftn.ct ^= 0 | shared.blkptr ^= null () 667 then call comp_break_ (page_break, 0); 668 669 if shared.pass_counter <= 1 & ^option.check_opt & page.image_ptr ^= null 670 then 671 do; 672 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 673 page_record.leng = 0; 674 call comp_dvt.outproc (EPILOGUE, 0); 675 676 if page_record.leng > 0 677 then 678 do; 679 call iox_$put_chars ((shared.compout_ptr), addr (page_record.text), 680 page_record.leng, ercd); 681 if ercd ^= 0 682 then 683 do; 684 call comp_report_ (2, ercd, "Writing epilogue.", 685 addr (ctl.info), ""); 686 signal comp_abort; 687 return; 688 end; 689 end; 690 end; 691 692 return_: 693 if shared.bug_mode 694 & (shared.input_filename = option.db_file 695 | option.db_file = "ALLFILES") 696 then call ioa_ ("^5x(comp_: ^a)", shared.input_filename); 697 698 do_htabs: 699 proc; 700 txtwidth = /* set loop counters */ 701 text.parms.left.indent - text.parms.left.undent; 702 i, j = 1; /* set line scan controls */ 703 704 if length (ctl_line) > 0 /* adjust tabs */ 705 then 706 do while (j > 0); 707 j = search (substr (ctl_line, i), htab.chars); 708 if j > 0 /* if a tab char was found */ 709 then 710 do; 711 if j > 1 /* measure the preceding text */ 712 then 713 do; 714 unspec (meas1) = "0"b; 715 call comp_measure_ (substr (ctl_line, i, j - 1), 716 addr (text.input.font), "0"b, text.input.art, 717 text.input.quad, 0, addr (meas1), addr (meas2), 718 addr (ctl.info)); 719 txtwidth = txtwidth + meas1.width + meas1.avg; 720 ii = i + j - 1; 721 end; 722 else ii = i; /* tab char is next, no new text */ 723 /* which tab character? */ 724 jj = index (htab.chars, substr (ctl_line, ii, 1)); 725 jj = htab.pats (jj); /* pattern index for that character */ 726 /* find the stop column */ 727 do k = 1 to htab.pattern (jj).count 728 while (txtwidth 729 >= htab.pattern (jj).stop (k) - shared.EN_width); 730 end; 731 732 if k <= htab.pattern (jj).count 733 /* if within given stops */ 734 then 735 do; 736 htab_space.v1 = /* space needed */ 737 htab.pattern (jj).stop (k) - txtwidth - shared.EN_width; 738 739 if htab_space.v1 > 0 /* if any to be inserted */ 740 then 741 do; 742 if htab.pattern (jj).fill (k) = "" 743 /* if no given fill string */ 744 then 745 do; 746 ctl_line = 747 substr (ctl_line, 1, ii - 1) || htab_shift 748 || substr (ctl_line, ii + 1); 749 ii = ii + 7; 750 end; 751 752 else 753 do; /* construct the fill string */ 754 unspec (meas1) = "0"b; 755 call comp_measure_ ((htab.pattern (jj).fill (k)), 756 addr (text.input.font), "0"b, "0"b, "0"b, 0, 757 addr (meas1), addr (meas2), addr (ctl.info)); 758 fill_count = /* number of fill strings needed */ 759 divide (htab_space.v1, meas1.width + meas1.avg, 760 17, 0); 761 htab_space.v1 = htab_space.v1 - 762 /* extra space */ 763 fill_count * (meas1.width + meas1.avg); 764 if htab_space.v1 > 0 765 then 766 do; 767 ctl_line = 768 substr (ctl_line, 1, ii - 1) || htab_shift 769 || substr (ctl_line, ii); 770 ii = ii + 7; 771 end; 772 ctl_line = substr (ctl_line, 1, ii - 1) || 773 /* insert fill string */ 774 copy (htab.pattern (jj).fill (k), fill_count) 775 || substr (ctl_line, ii + 1); 776 ii = ii 777 + fill_count 778 * length (htab.pattern (jj).fill (k)); 779 end; 780 781 i = ii; /* adjust counters */ 782 txtwidth = htab.pattern (jj).stop (k) - shared.EN_width; 783 end; 784 785 else /* htab char is next, just remove it */ 786 ctl_line = 787 substr (ctl_line, 1, ii - 1) 788 || substr (ctl_line, ii + 1); 789 end; 790 791 else i = ii + 1; /* not within given stops, step over it */ 792 end; 793 end; 794 end do_htabs; 795 1 1 /* BEGINE INCLUDE FILE comp_brktypes.incl.pl1 */ 1 2 1 3 /* Written - 4/18 - EJW 1 4* 1 5* Defines constants for all the types of text breaks in compose */ 1 6 1 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 8 1 9 dcl ( 1 10 format_break init (0), 1 11 block_break init (1), 1 12 column_break init (2), 1 13 page_break init (3), 1 14 need_break init (4), 1 15 footnote_break init (5), 1 16 footer_break init (7) 1 17 ) fixed bin static options (constant); 1 18 1 19 /* END INCLUDE FILE comp_brktypes.incl.pl1 */ 796 2 1 /* BEGIN INCLUDE FILE comp_ctl_index.incl.pl1 */ 2 2 2 3 /* Written: 3/82 - EJW */ 2 4 2 5 /* Vector index values for controls that must be globally known. */ 2 6 2 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 8 2 9 dcl ( 2 10 be_ctl_index init (22), /* block-end */ 2 11 bef_ctl_index init (26), /* block-end-footnote */ 2 12 bel_ctl_index init (28), /* block-end-literal */ 2 13 bep_ctl_index init (30), /* block-end-picture */ 2 14 fin_ctl_index init (76), /* fill-on */ 2 15 ifi_ctl_index init (110), /* insert-file */ 2 16 ift_ctl_index init (111), /* insert-footnotes */ 2 17 tac_ctl_index init (145), /* table-column */ 2 18 taf_ctl_index init (146) /* table-off */ 2 19 ) fixed bin static options (constant); 2 20 2 21 /* END INCLUDE FILE comp_ctl_index.incl.pl1 */ 797 3 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 3 2 3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 4 3 5 dcl 1 tblkdata /* data for allocated text blocks */ 3 6 aligned based (shared.tblkdata_ptr), 3 7 2 block, /* block pool */ 3 8 3 count fixed bin, 3 9 3 ptr (500) ptr, /* block pointers */ 3 10 /* block state flags */ 3 11 3 free (500) bit (1) unal, 3 12 2 line_area, /* line area pool */ 3 13 3 count fixed bin, 3 14 3 ptr (500) ptr, /* area pointers */ 3 15 /* area state flags */ 3 16 3 free (500) bit (1) unal, 3 17 2 text_area, /* text area pool */ 3 18 3 count fixed bin, 3 19 3 ptr (500) ptr, /* area pointers */ 3 20 /* area state flags */ 3 21 3 free (500) bit (1) unal, 3 22 3 string_area_count 3 23 fixed bin; /* line areas */ 3 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 3 25 dcl line_area_ptr ptr init (null); 3 26 dcl 1 line_area aligned based (line_area_ptr), 3 27 2 next ptr, /* forward thread */ 3 28 2 prev ptr, /* backward thread */ 3 29 2 count fixed bin, /* number of lines allocated */ 3 30 2 ndx fixed bin, /* index of current line */ 3 31 2 pndx fixed bin, /* area pool index */ 3 32 2 linptr (LINE_AREA_SIZE) ptr; 3 33 /* text areas */ 3 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 3 35 dcl text_area_ptr ptr init (null); 3 36 dcl 1 text_area aligned based (text_area_ptr), 3 37 2 next ptr, /* forward thread */ 3 38 2 count fixed bin, /* number of areas allocated */ 3 39 2 ndx fixed bin, /* index of current strarea */ 3 40 2 pndx fixed bin, /* area pool index */ 3 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 3 42 /* text string area */ 3 43 dcl string_area (256) fixed bin based; 3 44 dcl txtstrptr ptr; /* current text string */ 3 45 dcl txtstr char (1020) var based (txtstrptr); 3 46 3 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 3 48 /* general text block */ 3 49 dcl 1 text aligned based (shared.blkptr), 3 50 2 version fixed bin, /* version of structure */ 3 51 2 blkndx fixed bin, /* block data index */ 3 52 2 blktype char (2), /* block type code */ 3 53 /* dynamic block control stuff */ 3 54 2 hdr aligned like text_header, 3 55 /* text read from input file */ 3 56 2 input aligned like text_entry, 3 57 2 input_line char (1020) var,/* input buffer */ 3 58 2 line_area, 3 59 3 first ptr, /* head of line area thread */ 3 60 3 cur ptr, /* current line area */ 3 61 2 next_text ptr, /* next text string */ 3 62 /* text formatting parameters */ 3 63 2 parms aligned like default_parms, 3 64 2 text_area, 3 65 3 first ptr, /* head of text area thread */ 3 66 3 cur ptr; /* current text area */ 3 67 /* an empty text block line */ 3 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 3 69 2 sws, /* unaligned switches, etc. */ 3 70 3 art bit (1) unal, /* line has artwork */ 3 71 3 cbar, /* change bar flags */ 3 72 4 add bit (1) unal, /* text addition flag */ 3 73 4 del bit (1) unal, /* text deletion flag */ 3 74 4 mod bit (1) unal, /* text modification flag */ 3 75 3 default bit (1) unal, /* 1 = default case as needed */ 3 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 3 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 3 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 3 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 3 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 3 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 3 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 3 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 3 84 3 oflo bit (1) unal, /* line causes overflow */ 3 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 3 86 3 quad bit (6) unal, /* text alignment flags */ 3 87 3 space_added /* 1= line has added space */ 3 88 bit (1) unal, 3 89 3 spcl, /* special entry - not output text */ 3 90 4 file bit (1) unal, /* 1= output to special file */ 3 91 4 blk_splt /* 1= action at block split time */ 3 92 bit (1) unal, 3 93 4 page_mkup /* 1= action at page makeup time */ 3 94 bit (1) unal, 3 95 3 table bit (1) unal, /* 1= line is a table entry */ 3 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 3 97 3 title bit (1) unal, /* 1= line is a <title> */ 3 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 3 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 3 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 3 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 3 102 3 white bit (1) unal, /* 1= line is white space */ 3 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 3 104 3 MBZ bit (4) unal, 3 105 2 art_start fixed bin unal, /* start of art string in line */ 3 106 2 art_len fixed bin unal, /* length of art string in line */ 3 107 2 cbar_level /* change level for cbars */ 3 108 char (1) aligned, 3 109 2 cur, /* current scanning data for line */ 3 110 3 chrct fixed bin, /* count of chars scanned */ 3 111 3 gaps fixed bin, /* gap count */ 3 112 3 width fixed bin (31), /* width of font chars */ 3 113 3 min fixed bin (31), /* width of min spbnds */ 3 114 3 avg fixed bin (31), /* width of avg spbnds */ 3 115 3 max fixed bin (31), /* width of max spbnds */ 3 116 3 font like fntstk_entry, 3 117 2 depth fixed bin (31), /* page depth for line */ 3 118 /* font at start of line */ 3 119 2 font like fntstk_entry, 3 120 2 index fixed bin (21), /* char index for line scanning */ 3 121 2 info, /* stuff created during line input */ 3 122 3 fileno fixed bin, /* input file index */ 3 123 3 lineno fixed bin, /* input file line number */ 3 124 3 lineno0 fixed bin, /* call_box0 line number */ 3 125 2 linespace fixed bin (31), /* linespace value for the line */ 3 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 3 127 2 mod_len fixed bin, /* length of modified text */ 3 128 2 mod_start fixed bin, /* index for start of modified text */ 3 129 2 net fixed bin (31), /* net line width for filling */ 3 130 2 ptr ptr, /* pointer to the actual text */ 3 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 3 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 3 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 3 134 2 tblcol fixed bin, /* column for table entries */ 3 135 2 title_delim 3 136 char (1) unal, /* title delimiter if a <title> */ 3 137 2 title_index 3 138 fixed bin, /* <title> block index for line */ 3 139 2 width fixed bin (31), /* width of text */ 3 140 2 ftn, /* footnote info for line */ 3 141 3 ct fixed bin, /* number of footnote refs */ 3 142 3 used fixed bin (31), /* space used */ 3 143 3 e (40), /* limit is arbitrary */ 3 144 4 blkndx fixed bin unal, /* block index of footnote - if this 3 145* value is 0, then .frf was used */ 3 146 4 refno fixed bin unal; /* reference number */ 3 147 3 148 dcl ( 3 149 quadi init ("40"b3), /* set to the inside margin */ 3 150 quado init ("20"b3), /* set to the outside margin */ 3 151 quadl init ("10"b3), /* set left */ 3 152 quadc init ("04"b3), /* set centered */ 3 153 quadr init ("02"b3), /* set right */ 3 154 just init ("01"b3) /* justified */ 3 155 ) bit (6) static options (constant); 3 156 /* control line structure */ 3 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 3 158 dcl ctl_line char (1020) var based (ctl.ptr); 3 159 3 160 dcl txtlinptr ptr; /* the current text line */ 3 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 3 162 /* empty text header structure */ 3 163 dcl 1 text_header aligned based (const.text_header_ptr), 3 164 2 sws, /* control switches */ 3 165 3 art bit (1) unal, /* block has artwork */ 3 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 3 167 3 modified bit (1) unal, /* block contains modified lines */ 3 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 3 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 3 170 3 tblblk bit (1) unal, /* a table block */ 3 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 3 172 3 white bit (1) unal, /* block is a white space block */ 3 173 3 picture bit (1) unal, /* picture block */ 3 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 3 175 3 MBZ bit (26) unal, 3 176 2 art_count fixed bin unal, /* to count input art lines */ 3 177 2 blkptr ptr, /* pointer to suspended block */ 3 178 2 cap_size fixed bin unal, /* line count of text caption */ 3 179 2 cap_used fixed bin (31), /* size of text caption */ 3 180 2 colno fixed bin unal, /* column owning the block */ 3 181 2 count fixed bin unal, /* line count for block */ 3 182 2 eqn_line_count 3 183 fixed bin unal, /* counter for equation lines */ 3 184 2 first_text fixed bin unal, /* OBSOLETE */ 3 185 2 ftn, /* footnotes */ 3 186 3 ct fixed bin, /* count */ 3 187 3 usd fixed bin (31), /* space used */ 3 188 3 blkndx (40) fixed bin, /* footnote block index values */ 3 189 2 head_size fixed bin, /* line count of text header */ 3 190 2 head_used fixed bin (31), /* size of text header */ 3 191 2 index fixed bin unal, /* block index of next output line */ 3 192 2 keep_count fixed bin unal, /* to count input keep lines */ 3 193 2 last_line fixed bin, /* last text line in column */ 3 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 3 195 2 name char (32) var, /* block name, if any */ 3 196 2 nofill_count /* to count nofill lines */ 3 197 fixed bin, 3 198 2 parms_ptr ptr, /* parms for suspended block */ 3 199 2 refer fixed bin, /* inter-block reference */ 3 200 2 refer_index /* OBSOLETE */ 3 201 fixed bin, /* a reference */ 3 202 2 split fixed bin, /* split point for balancing */ 3 203 2 trl_ws fixed bin (31), /* trailing WS */ 3 204 2 used fixed bin (31); /* page space used by a column/block */ 3 205 /* text formatting parameters */ 3 206 dcl 1 text_parms aligned like default_parms 3 207 based (const.text_parms_ptr); 3 208 3 209 dcl 1 current_parms 3 210 aligned like default_parms 3 211 based (const.current_parms_ptr); 3 212 3 213 dcl 1 default_parms 3 214 aligned based (const.default_parms_ptr), 3 215 2 sws, /* control switches */ 3 216 3 quad bit (6) unal, /* text alignment mode */ 3 217 3 art bit (1) unal, /* 1 = block countains artwork */ 3 218 3 cbar, /* change bar flags */ 3 219 4 add bit (1) unal, /* text addition flag */ 3 220 4 del bit (1) unal, /* text deletion flag for next line */ 3 221 4 mod bit (1) unal, /* text modification flag */ 3 222 3 fill_mode 3 223 bit (1) unal, /* 1 = fill mode ON */ 3 224 3 footnote bit (1) unal, /* block is a footnote */ 3 225 3 hfc bit (1) unal, /* OBSOLETE */ 3 226 3 htab_mode 3 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 3 228 3 keep bit (1) unal, /* keep mode */ 3 229 3 page bit (1) unal, /* block belongs to page, not text */ 3 230 3 title_mode 3 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 3 232 3 MBZ bit (19) unal, 3 233 2 ftrptr ptr, /* text caption block */ 3 234 2 cbar_level /* change level for cbars */ 3 235 char (1) aligned, 3 236 2 hdrptr ptr, /* text header block */ 3 237 2 left, /* left margin data */ 3 238 3 indent fixed bin (31), 3 239 3 undent fixed bin (31), 3 240 2 linespace fixed bin (31), /* line spacing value */ 3 241 2 measure fixed bin (31), /* line space for text */ 3 242 /* right margin data */ 3 243 2 right like default_parms.left, 3 244 2 fntstk, /* stack of last 20 font changes */ 3 245 3 index fixed bin, /* which one in use */ 3 246 /* entry(0) is the default */ 3 247 3 entry (0:19) like fntstk_entry; 3 248 3 249 dcl hfcblk_ptr ptr; 3 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 3 251 3 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 798 4 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 4 4 5 dcl 1 col /* the text column */ 4 6 aligned based (shared.colptr), 4 7 2 blkptr (100) ptr, /* pointers to text blocks */ 4 8 2 depth_adj fixed bin (31), /* for variable start depth */ 4 9 2 ftrptr ptr, /* -> column footer */ 4 10 2 ftrusd fixed bin (31), /* column footer space used */ 4 11 2 gutter fixed bin (31), /* column separation */ 4 12 2 hdr like colhdr, /* column control stuff */ 4 13 2 hdrptr ptr, /* -> column header */ 4 14 2 hdrusd fixed bin (31), /* column header space used */ 4 15 2 margin, /* margin settings for column */ 4 16 3 left fixed bin (31), 4 17 3 right fixed bin (31), 4 18 2 parms, /* text parms for the column */ 4 19 3 measure fixed bin (31); /* column width */ 4 20 4 21 dcl 1 colhdr aligned based (const.colhdrptr), 4 22 /* an empty column header */ 4 23 2 balblk fixed bin, /* block to begin column balancing */ 4 24 2 baldepth fixed bin (31), /* page depth at balance point */ 4 25 2 balftn, /* footnotes at balance point */ 4 26 3 ct fixed bin, /* count */ 4 27 3 usd fixed bin (31), /* space used */ 4 28 3 blkndx (40) fixed bin, /* block index values */ 4 29 2 balusd fixed bin (31), /* space used up to balance point */ 4 30 2 blkct fixed bin, /* text block count */ 4 31 2 depth fixed bin (31), /* current page depth in the column */ 4 32 2 ftn like balftn, /* footnotes */ 4 33 2 pspc fixed bin (31), /* current white space */ 4 34 2 net fixed bin (31), /* net usable space in the column */ 4 35 2 used fixed bin (31); /* space used in this column */ 4 36 /* for quick reference */ 4 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 4 38 4 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 799 5 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 5 2* Modified: ??/81 - EJW - Addded type_wait 5 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 5 4**/ 5 5 5 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 5 7 5 8 dcl DCxx_p ptr; /* for qualification of embedded */ 5 9 /* control strings */ 5 10 /* an embedded control string */ 5 11 dcl 1 dcxx unal based (DCxx_p), 5 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 5 13 2 ctl, 5 14 3 type bit (3) unal, /* 000- device/writer control */ 5 15 /* 001- */ 5 16 /* 010- literal data */ 5 17 /* 011- family/member/size data */ 5 18 /* 100- shift */ 5 19 /* 101- */ 5 20 /* 110- vector */ 5 21 /* 111- zero-offset vector */ 5 22 3 fill1 bit (1) unal, 5 23 3 Xctl bit (2) unal, /* 00- no X value present */ 5 24 /* 01- short X value */ 5 25 /* 10- long X value */ 5 26 3 fill2 bit (1) unal, 5 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 5 28 /* 01- short Y value present */ 5 29 /* 10- long Y value present */ 5 30 2 leng fixed bin (9) unal unsigned, 5 31 /* # of remaining bytes */ 5 32 2 etc; /* the rest of the control bytes */ 5 33 /* device/writer controls */ 5 34 dcl 1 dcctl unal based (DCxx_p), 5 35 2 mark char (1) unal, 5 36 2 type char (1) unal, /* control type */ 5 37 /* leng is always 0 for these */ 5 38 2 leng fixed bin (9) unal unsigned; 5 39 dcl ( 5 40 wait_signal init ("�"), /* = 021001000 */ 5 41 unstart_signal init ("�"), /* = 021002000 */ 5 42 unstop_signal init ("�") /* = 021003000 */ 5 43 ) char (3) static options (constant); 5 44 /* the "literal" control string */ 5 45 dcl 1 dclit unal based (DCxx_p), 5 46 2 mark char (1) unal, 5 47 2 type char (1) unal, /* control type */ 5 48 2 leng fixed bin (9) unal unsigned, 5 49 /* width in milli-points of literal */ 5 50 2 width fixed bin (31) unal, 5 51 /* actual literal, max length 509 */ 5 52 2 data char (dclit.leng - 4); 5 53 /* long (31 bits) values */ 5 54 dcl 1 dclong_val unal based (DCxx_p), 5 55 2 mark char (1) unal, 5 56 2 type char (1) unal, /* control type */ 5 57 2 leng fixed bin (9) unal unsigned, 5 58 ( 5 59 2 v1 fixed bin (31), /* long value */ 5 60 2 v2 fixed bin (31) /* long value */ 5 61 ) unal; 5 62 dcl ( 5 63 dclong_len init (8), /* 2 long values */ 5 64 dclong1_len init (4) /* 1 long value */ 5 65 ) fixed bin static options (constant); 5 66 /* short (17 bit) values */ 5 67 dcl 1 dcshort_val unal based (DCxx_p), 5 68 2 mark char (1) unal, 5 69 2 type char (1) unal, /* control type */ 5 70 2 leng fixed bin (9) unal unsigned, 5 71 ( 5 72 2 v1 fixed bin, /* short value */ 5 73 2 v2 fixed bin /* short value */ 5 74 ) unal; 5 75 dcl ( 5 76 dcshort_len init (4), /* 2 short values */ 5 77 dcshort1_len init (2) /* 1 short value */ 5 78 ) fixed bin static options (constant); 5 79 /* a font change string */ 5 80 dcl 1 dcfs unal based (DCxx_p), 5 81 2 mark char (1) unal, /* font/size data */ 5 82 2 type char (1) unal, /* control type */ 5 83 2 leng fixed bin (9) unal unsigned, 5 84 /* fnttbldata index */ 5 85 2 f fixed bin (9) unal unsigned, 5 86 /* point size in milli-points */ 5 87 2 p fixed bin (31) unal; 5 88 dcl dcfs_len fixed bin init (5) static options (constant); 5 89 5 90 dcl ( /* symbolic definitions of DC types */ 5 91 type_wait init (""), /* writer wait */ 5 92 type_unstart init (""), /* underscore start */ 5 93 type_unstop init (""), /* underscore stop */ 5 94 type_lit init (""), /* literal data */ 5 95 type_font init (""), /* family/member/size data */ 5 96 /* SHIFTS - */ 5 97 type_sy init (""), /* -- no x, short y */ 5 98 type_sly init (""), /* -- no x, long y */ 5 99 type_sx init (""), /* -- short x, no y */ 5 100 type_sxy init (" "), /* -- short x, short y */ 5 101 type_slx init (""), /* -- long x, no y */ 5 102 type_slxly init (""), /* -- long x, long y */ 5 103 /* VECTORS */ 5 104 type_vy init (""), /* -- no x, short y */ 5 105 type_vly init (""), /* -- no x, long y */ 5 106 type_vx init (""), /* -- short x, no y */ 5 107 type_vxy init (""), /* -- short x, short y */ 5 108 type_vlx init (""), /* -- long x, no y */ 5 109 type_vlxly init (""), /* -- long x, long y */ 5 110 /* ZERO-OFFSET VECTORS- */ 5 111 type_v0y init (""), /* -- no x, short y */ 5 112 type_v0ly init (""), /* -- no x, long y */ 5 113 type_v0x init (""), /* -- short x, no y */ 5 114 type_v0xy init (""), /* -- short x, short y */ 5 115 type_v0lx init (""), /* -- long x, no y */ 5 116 type_v0lxly init ("") /* -- long x, long y */ 5 117 ) char (1) unal int static options (constant); 5 118 5 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 800 6 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 6 2 6 3 /* Written: JA Falksen - 6/81 6 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 6 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 6 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 6 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 6 8* (3) char (*) var. Version 4. */ 6 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 6 10* sequence for comp_dvt.displayproc. - Version 5. */ 6 11 6 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 13 6 14 dcl comp_dvid_version 6 15 fixed bin static options (constant) init (5); 6 16 6 17 dcl 1 comp_dvid aligned based (const.dvidptr), 6 18 2 version fixed bin, /* version of this structure and */ 6 19 /* of comp_dvt */ 6 20 2 devname char (32), /* name of device */ 6 21 2 dvt_r bit (18); /* device table offset */ 6 22 6 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 801 7 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 7 2 7 3 /* Written: 9/80 - JA Falksen 7 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 7 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 7 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 7 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 7 8* (3) char (*) var. Version 4. */ 7 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 7 10* sequence for comp_dvt.displayproc. - Version 5. 7 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 7 12**/ 7 13 7 14 /* All names which end in "_r"are offset values within the device table */ 7 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 7 16 7 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 7 18 7 19 dcl 1 comp_dvt aligned based (const.devptr), 7 20 2 devclass char (32), /* what general kind of device is */ 7 21 /* this, currently available: */ 7 22 /* "printer" (includes terminals), */ 7 23 /* "braille", "bitmap" */ 7 24 2 outproc entry /* page output processor */ 7 25 (fixed bin, /* function - 0=build */ 7 26 /* 1=init page */ 7 27 /* 2=init file */ 7 28 /* 3=cleanup */ 7 29 fixed bin (35)),/* error code */ 7 30 2 footproc entry /* footnote reference proc */ 7 31 ((3) char (*) var, 7 32 /* reference string (IN/OUT) */ 7 33 ptr), /* comp_dvt_p (IN) */ 7 34 2 artproc entry (), /* artwork proc */ 7 35 /* dont know how to describe yet */ 7 36 2 displayproc 7 37 entry /* string display interpreter */ 7 38 (char (*) var, /* raw input string */ 7 39 fixed bin (24), /* chars used in this call */ 7 40 bit (1)) /* 1= dont show display errors */ 7 41 returns (char (*) var), 7 42 /* interpreted output string */ 7 43 /* following values are in millipoints */ 7 44 2 min_WS fixed bin (31), /* minimum whitespace */ 7 45 2 min_lead fixed bin (31), /* minimun lead */ 7 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 7 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 7 48 2 def_vmt fixed bin (31), /* default .vmt */ 7 49 2 def_vmh fixed bin (31), /* default .vmh */ 7 50 2 def_vmf fixed bin (31), /* default .vmf */ 7 51 2 def_vmb fixed bin (31), /* default .vmb */ 7 52 2 pdw_max fixed bin (31), /* max page width available */ 7 53 2 pdl_max fixed bin (31), /* max page length available, */ 7 54 /* (0 = unlimited) */ 7 55 2 upshift fixed bin (31), /* footnote reference shift */ 7 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 7 57 2 lettersp fixed bin (31), /* max letterspacing */ 7 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 7 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 7 60 2 init_fam fixed bin, /* initial family index */ 7 61 2 init_mem fixed bin, /* initial member index */ 7 62 2 foot_fam fixed bin, /* initial foot family index */ 7 63 2 foot_mem fixed bin, /* initial foot member index */ 7 64 2 init_family 7 65 char (32), /* initial font family to use */ 7 66 2 init_member 7 67 char (32), /* initial font member to use */ 7 68 ( /* the following are offsets */ 7 69 2 atd_r, /* attach desc for on-line output */ 7 70 2 dvc_r, /* device control table relptr */ 7 71 2 comment_r, /* comment string relptr */ 7 72 2 cleanup_r, /* "cleanup" string relptr */ 7 73 2 medsel_table_r /* media select table relptr */ 7 74 ) bit (18) aligned, 7 75 2 foot_family 7 76 char (32), /* family for footnote reference */ 7 77 2 foot_member 7 78 char (32), /* member for footnote reference */ 7 79 /* if one was specified */ 7 80 2 sws unaligned, 7 81 3 interleave /* 0- page block has lines in column */ 7 82 bit (1), /* order left-to-right */ 7 83 /* 1- page block has lines in line */ 7 84 /* order top-to-bottom */ 7 85 3 justifying /* 1- device justifies lines */ 7 86 bit (1), 7 87 3 mbz bit (24), 7 88 3 endpage bit (9), /* EOP char if not "0"b */ 7 89 2 open_mode fixed bin (35), /* when going to a file */ 7 90 2 recleng fixed bin, /* length of tape records */ 7 91 2 family_ct fixed bin, /* # families present */ 7 92 2 family (comp_dvt.family_ct), 7 93 /* families of fonts defined */ 7 94 3 member_r bit (18) aligned, 7 95 /* member table relptr */ 7 96 3 name char (32); /* family name */ 7 97 7 98 7 99 /* The usage formula for units: */ 7 100 /* */ 7 101 /* rel_units * length_in_points */ 7 102 /* ---------------------------- = length_in_units */ 7 103 /* points_per_EM */ 7 104 7 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 802 8 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl compose_severity_ 8 6 fixed bin (35) ext static; 8 7 dcl comp_ entry; 8 8 dcl comp_art_ entry (ptr, bit (1)); 8 9 dcl comp_block_ctls_ 8 10 entry (fixed bin); 8 11 dcl comp_break_ entry (fixed bin, fixed bin); 8 12 dcl comp_break_ctls_ 8 13 entry (fixed bin); 8 14 dcl comp_ctls_ entry (bit (1) aligned); 8 15 dcl comp_eject_page_ 8 16 entry; 8 17 dcl comp_expr_eval_ 8 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 8 19 fixed bin, bit (1), fixed bin (31), char (*) var, 8 20 bit (9), fixed bin (35)); 8 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 8 22 fixed bin (21), fixed bin (21), ptr) 8 23 returns (char (*) var); 8 24 dcl comp_fill_ entry; 8 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 8 26 dcl comp_format_ctls_ 8 27 entry (fixed bin); 8 28 dcl comp_get_file_$find 8 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 8 30 fixed bin (35)); 8 31 dcl comp_get_file_$open 8 32 entry (ptr, bit (1), fixed bin (35)); 8 33 dcl comp_head_page_ 8 34 entry (fixed bin (31)); 8 35 dcl comp_hft_ctls_ entry (fixed bin); 8 36 dcl comp_hft_ctls_$title 8 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 8 38 dcl comp_init_$one entry; 8 39 dcl comp_init_$two entry; 8 40 dcl comp_init_$three 8 41 entry; 8 42 dcl comp_insert_ctls_ 8 43 entry (fixed bin); 8 44 dcl comp_make_page_ 8 45 entry (fixed bin, bit (1)); 8 46 dcl comp_make_page_$cleanup 8 47 entry; 8 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 8 49 fixed bin (31), ptr, ptr, ptr); 8 50 dcl comp_read_$name 8 51 entry (char (*) var, fixed bin (21), fixed bin (21), 8 52 ptr) returns (char (*) var); 8 53 dcl comp_read_$number 8 54 entry (char (*) var, (*) fixed bin (31), 8 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 8 56 returns (fixed bin (31)); 8 57 dcl comp_read_$line 8 58 entry (ptr, char (*) var, bit (1)); 8 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 8 60 char (*) var); 8 61 dcl comp_report_$ctlstr 8 62 entry options (variable); 8 63 /**** (sev, code, info, line, ctl_str, args... */ 8 64 dcl comp_report_$exact 8 65 entry (char (*), ptr); 8 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 8 67 bit (1)); 8 68 dcl comp_tbl_ctls_ entry (fixed bin); 8 69 dcl comp_title_block_ 8 70 entry (ptr); 8 71 dcl comp_update_symbol_ 8 72 entry (bit (1), bit (1), bit (1), char (32), 8 73 char (*) var); 8 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 8 75 dcl comp_util_$add_text 8 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 8 77 dcl comp_util_$display 8 78 entry (char (*) var, fixed bin, bit (1)) 8 79 returns (char (*) var); 8 80 dcl comp_util_$escape 8 81 entry (char (*) var, ptr); 8 82 dcl comp_util_$getblk 8 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 8 84 dcl comp_util_$num_display 8 85 entry (ptr, fixed bin) returns (char (256) var); 8 86 dcl comp_util_$pageno 8 87 entry (fixed bin, char (*) var); 8 88 dcl comp_util_$pictures /* emit pending pictures */ 8 89 entry /**/ 8 90 (ptr); /* current text block */ 8 91 dcl comp_util_$pop entry (char (32)); 8 92 dcl comp_util_$push 8 93 entry (char (32)); 8 94 dcl comp_util_$relblk 8 95 entry (fixed bin, ptr); 8 96 dcl comp_util_$replace_text 8 97 entry (ptr, bit (1), ptr, ptr); 8 98 dcl comp_util_$search_tree 8 99 entry (char (32), bit (1)); 8 100 dcl comp_util_$set_bin 8 101 entry (fixed bin (31), char (32) var, fixed bin (31), 8 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 8 103 fixed bin (31)); 8 104 dcl comp_util_$set_net_page 8 105 entry (bit (1)); 8 106 dcl comp_util_$translate 8 107 entry (char (*) var) returns (char (*) var); 8 108 dcl comp_write_block_ 8 109 entry (fixed bin); 8 110 dcl comp_write_page_ 8 111 entry; 8 112 8 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 803 9 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 9 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 9 7 2 bachelor bit (1), /* 1= has no members */ 9 8 2 devfnt fixed bin, /* font in the device */ 9 9 2 fam_name char (32), /* family name */ 9 10 2 famndx fixed bin, /* family index */ 9 11 2 fntptr ptr, /* font table pointer */ 9 12 2 mem_name char (32), /* /member name (or null) */ 9 13 2 memndx fixed bin, /* member index */ 9 14 2 memptr ptr, /* member table pointer */ 9 15 2 name char (65) var, /* font name */ 9 16 2 size fixed bin (31), /* requested point size */ 9 17 2 ps fixed bin (31), /* effective point size */ 9 18 2 fcs_str char (8); /* FCS string */ 9 19 9 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 804 10 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr), 10 6 /* data for footnote blocks */ 10 7 2 highndx fixed (35), /* highest active footnote index */ 10 8 2 blkptr (250) ptr; /* block pointers */ 10 9 /* footnote header data block */ 10 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr); 10 11 /* formatting parms for footnotes */ 10 12 dcl 1 footnote_parms 10 13 aligned like default_parms 10 14 based (const.footnote_parms_ptr); 10 15 10 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */ 805 11 1 /* BEGIN INCLUDE FILE comp_htab.incl.pl1 */ 11 2 11 3 dcl 1 htab aligned based (shared.htab_ptr), /* horizontal tab pattern tables */ 11 4 2 count fixed bin, /* number of defined patterns */ 11 5 2 chars char (32) varying, /* active htab characters */ 11 6 2 pats (32) fixed (8) unaligned, /* pattern index for each char above */ 11 7 2 pattern (0:20), /* up to 20 patterns + one-shot */ 11 8 3 name char (32), /* pattern name */ 11 9 3 count fixed bin, /* number of tab stops */ 11 10 3 stop (20) fixed bin (31),/* tab stop values */ 11 11 3 fill (20) char (32) varying; /* fill string */ 11 12 11 13 /* END INCLUDE FILE comp_htab.cinl.pl1 */ 806 12 1 /* BEGIN INSERT FILE ... comp_insert.incl.pl1 */ 12 2 12 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 4 12 5 dcl 1 insert_data aligned based (const.insert_data_ptr), 12 6 2 count fixed bin, /* count of allocated data blocks */ 12 7 2 index fixed bin, /* the current block */ 12 8 2 ptr (1000) ptr, /* insert file data block pointers */ 12 9 2 ref_area, /* ref name string area data */ 12 10 3 count fixed bin, /* count of allocated areas */ 12 11 3 ptr (100) ptr; /* area pointers */ 12 12 /* insert call stack */ 12 13 dcl 1 call_stack aligned based (const.call_stk_ptr), 12 14 2 count fixed bin, /* count of allocated boxes */ 12 15 2 index fixed bin, /* current stack index */ 12 16 2 ptr (0:50) ptr; /* stack entry ptrs */ 12 17 dcl call_box_ptr ptr; 12 18 dcl 1 call_box aligned like insert.file based (call_box_ptr); 12 19 dcl 1 call_box0 aligned like insert.file based (call_stack.ptr (0)); 12 20 12 21 dcl 1 insert_refs aligned based, /* ref names structure */ 12 22 2 count fixed bin, /* count of names in area */ 12 23 2 index (60) fixed bin, /* insert_data index values */ 12 24 2 name (60) char (32) unal; 12 25 /* the ref names */ 12 26 12 27 dcl refname_str char (refstr_len) based (refstr_ptr); 12 28 /* for searching */ 12 29 dcl refstr_len fixed bin; /* length of refname search string */ 12 30 dcl refstr_ptr ptr; /* refname string pointer */ 12 31 /* data for an insert file */ 12 32 dcl 1 insert aligned based (shared.insert_ptr), 12 33 2 file, /* also used for source files */ 12 34 3 charcount 12 35 fixed bin (21), /* segment character count */ 12 36 3 comp_no fixed bin, /* msf component number */ 12 37 3 dir char (168), /* containing dir */ 12 38 3 entryname 12 39 char (32), /* primary entryname */ 12 40 3 exit_lineno 12 41 fixed bin (35), /* line number of .ifi */ 12 42 3 fcb_ptr ptr, /* FCB pointer for msf manager */ 12 43 3 info like text_entry.info, 12 44 3 insert_ptr /* self pointer - needed when */ 12 45 ptr, /* struc is in the call stack */ 12 46 /* 3 ntext fixed bin (21), /* character count of text line */ 12 47 3 path char (200) var, /* complete pathname */ 12 48 3 pointer ptr, /* segment pointer */ 12 49 3 posn fixed bin (21), /* input character position */ 12 50 3 refname char (200) var, /* for source files only */ 12 51 2 callers_name 12 52 char (100), /* refname of calling file */ 12 53 2 dtcm bit (36), /* fs date-time-modified */ 12 54 2 refndx fixed bin, /* CURRENT refname index for file */ 12 55 2 thrb fixed bin unsigned, 12 56 /* backward thread index in insert stack */ 12 57 2 label, /* label data per insert level */ 12 58 3 count fixed bin, 12 59 3 line (250) fixed bin unsigned, 12 60 3 position (250) fixed bin (21), 12 61 3 value (250) char (32); 12 62 12 63 /* empty file data structure */ 12 64 dcl 1 init_file_data 12 65 static options (constant), 12 66 2 charcount fixed bin (21) init (0), 12 67 /* segment character count */ 12 68 2 comp_no fixed bin init (0), 12 69 /* msf component number */ 12 70 2 dir char (168) init (""), 12 71 /* containing dir */ 12 72 2 entryname char (32) init (""), 12 73 /* primary entryname */ 12 74 2 exit_lineno 12 75 fixed bin (35) init (0), 12 76 /* line number of .ifi */ 12 77 2 fcb_ptr ptr init (null),/* FCB pointer for msf manager */ 12 78 2 info, /* stuff created during line input */ 12 79 3 fileno /* input file index */ 12 80 fixed bin init (0), 12 81 3 lineno /* input file line number */ 12 82 fixed bin init (0), 12 83 3 lineno0 /* call_box0 line number */ 12 84 fixed bin init (0), 12 85 2 insert_ptr ptr init (null),/* self pointer - needed when */ 12 86 /* struc is in the call stack */ 12 87 /* 2 ntext fixed bin (21) init (0), 12 88*/* /* character count of text line */ 12 89 2 path char (200) var init (""), 12 90 /* complete pathname */ 12 91 2 pointer ptr init (null),/* segment pointer */ 12 92 2 posn fixed bin (21) init (1), 12 93 /* input character position */ 12 94 2 refname char (200) var init (""); 12 95 /* for source files only */ 12 96 12 97 /* END INSERT FILE ... comp_insert.incl.pl1 */ 807 13 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 13 2 13 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 13 4 13 5 /* ASCII control characters */ 13 6 dcl ( 13 7 NUL init ("�"), /* 000 */ 13 8 SOH init (""), /* 001 */ 13 9 STX init (""), /* 002 */ 13 10 ETX init (""), /* 003 */ 13 11 EOT init (""), /* 004 */ 13 12 ENQ init (""), /* 005 */ 13 13 ACK init (""), /* 006 */ 13 14 BEL init (""), /* 007 */ 13 15 BSP init (""), /* 010 */ 13 16 HT init (" "), 13 17 /* 011 */ 13 18 (NL, LF) init (" 13 19 "), /* 012 */ 13 20 VT init (" "), /* 013 */ 13 21 FF init (" "), /* 014 */ 13 22 CR init (" "), /* 015 */ 13 23 (RRS, SO) init (""), /* 016 */ 13 24 (BRS, SI) init (""), /* 017 */ 13 25 DLE init (""), /* 020 */ 13 26 DC1 init (""), /* 021 */ 13 27 (DC2, HLF, HUGE) init (""), /* 022 */ 13 28 DC3 init (""), /* 023 */ 13 29 (DC4, HLR, THICK) init (""), /* 024 */ 13 30 (NAK, MEDIUM) init (""), /* 025 */ 13 31 SYN init (""), /* 026 */ 13 32 (ETB, HAIR) init (""), /* 027 */ 13 33 (CAN, STROKE) init (""), /* 030 */ 13 34 oct031 init (""), /* 031 */ 13 35 SUB init (""), /* 032 */ 13 36 ESC init (""), /* 033 */ 13 37 FS init (""), /* 034 */ 13 38 GS init (""), /* 035 */ 13 39 RS init (""), /* 036 */ 13 40 US init (""), /* 037 */ 13 41 (DEL, PAD) init (""), /* 177 */ 13 42 /* compose meta-characters */ 13 43 multiply init (""), /* 252 - multiply symbol */ 13 44 pl_mi init (""), /* 253 - plus/minus sign */ 13 45 nabla init (""), /* 254 */ 13 46 EMdash init (""), /* 255 - EM dash */ 13 47 slash init (""), /* 256 */ 13 48 dagger init (""), /* 261 */ 13 49 perpen init (""), /* 273 - perpendicular mark */ 13 50 not_eq init (""), /* 275 - not-equal mark */ 13 51 dbldag init (""), /* 301 - double daggar */ 13 52 cright init (""), /* 303 - copyright mark */ 13 53 delta init (""), /* 304 */ 13 54 bullet init (""), /* 315 */ 13 55 prll init (""), /* 316 - parallel mark */ 13 56 PI init (""), /* 320 - uppercase Greek pi */ 13 57 tmark init (""), /* 324 - trademark */ 13 58 tfore init (""), /* 326 - therefore mark */ 13 59 approx init (""), /* 332 - approximately-equal mark */ 13 60 infin init (""), /* 337 - infinity */ 13 61 theta init (""), /* 352 */ 13 62 pi init (""), /* 360 - lowercase Greek pi */ 13 63 square init (""), /* 375 */ 13 64 overbar init (""), /* 376 */ 13 65 PS init (""), /* 377 - punctuation space */ 13 66 sup0 init ("�"), /* 400 - superior digit 0 */ 13 67 sup1 init (""), /* 401 - superior digit 1 */ 13 68 sup2 init (""), /* 402 - superior digit 2 */ 13 69 sup3 init (""), /* 403 - superior digit 3 */ 13 70 sup4 init (""), /* 404 - superior digit 4 */ 13 71 sup5 init (""), /* 405 - superior digit 5 */ 13 72 sup6 init (""), /* 406 - superior digit 6 */ 13 73 sup7 init (""), /* 407 - superior digit 7 */ 13 74 sup8 init (""), /* 410 - superior digit 8 */ 13 75 sup9 init (" "), /* 411 - superior digit 9 */ 13 76 EM init (" "), /* 412 - EM space */ 13 77 EM_ init (" "), /* 413 - EM aligned dash */ 13 78 EN init (" "), /* 414 - EN space */ 13 79 EN_ init (" "), /* 415 - EN aligned dash */ 13 80 ENd init (""), /* 416 - EN dash */ 13 81 THIN init (""), /* 417 - thinspace */ 13 82 DEVIT init (""), /* 420 - device unit */ 13 83 lquote init (""), /* 421 - left double quote */ 13 84 rquote init (""), /* 422 - right double quote */ 13 85 modmark init (""), /* 424 - text modification/addition mark */ 13 86 delmark init (""), /* 430 - deletion mark */ 13 87 vrule init ("Z"), /* 532 - vertical rule */ 13 88 lslnt init ("^") /* 536 - left slant */ 13 89 ) char (1) unaligned static options (constant); 13 90 13 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 808 14 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 14 2 14 3 dcl option_version fixed bin (35) static options (constant) init (2); 14 4 14 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 14 6 2 version fixed bin (35), 14 7 /* Options with parameters */ 14 8 (2 argument_opt, /* -argument option flag */ 14 9 2 cbar_opt, /* -change_bars option flag */ 14 10 2 cbar_art_opt, /* -change_bars_art option flag */ 14 11 2 debug_opt, /* -debug option flag */ 14 12 2 db_all_opt, /* -debug_all option flag */ 14 13 2 db_file_opt, /* -debug_file option flag */ 14 14 2 device_opt, /* -device option flag */ 14 15 2 execute_opt, /* -execute option flag */ 14 16 2 from_opt, /* -from option flag */ 14 17 2 galley_opt, /* -galley option flag */ 14 18 2 hyph_opt, /* -hyphenation option flag */ 14 19 2 indent_opt, /* -indent option flag */ 14 20 2 input_file_opt, /* -input_file option flag */ 14 21 2 linespace_opt, /* -linespace option flag */ 14 22 2 output_file_opt, /* -output_file option flag */ 14 23 2 pages_opt, /* -pages option flag */ 14 24 2 page_chng_opt, /* -pages_changed option flag */ 14 25 2 parameter_opt, /* -parameter option flag */ 14 26 2 passes_opt, /* -passes option flag */ 14 27 2 tdir_opt, /* -temp_dir option flag */ 14 28 2 to_opt, /* -to option flag */ 14 29 /* Options without parameters */ 14 30 2 annot_opt, /* -annotate */ 14 31 2 brief_opt, /* -brief option flag */ 14 32 2 check_opt, /* -check option flag */ 14 33 2 cws_opt, /* -cws option flag */ 14 34 2 db_pause_opt, /* -debug_pause option flag */ 14 35 2 noart_opt, /* -noart option flag */ 14 36 2 nobell_opt, /* -no_bell option flag */ 14 37 2 nofill_opt, /* -nofill option flag */ 14 38 2 nohit_opt, /* -nohit option flag */ 14 39 2 number_opt, /* -number option flag */ 14 40 2 number_append_opt, /* -number_append option flag */ 14 41 2 number_brief_opt, /* -number_brief option flag */ 14 42 2 stop_opt, /* -stop option flag */ 14 43 2 wait_opt) unal bit (1), /* -wait option flag */ 14 44 2 MBZ bit (2) unal, 14 45 /* Optional parameters */ 14 46 2 arg_count fixed bin, /* count of -ag values */ 14 47 2 cbar, /* change bar data */ 14 48 3 level char (1), /* change level character (ASCII NUL) */ 14 49 3 place char (1), /* placement character */ 14 50 3 space fixed bin (31), /* extra left margin space needed */ 14 51 3 left, /* left margin mark data */ 14 52 4 sep fixed bin (31), /* separation */ 14 53 4 width fixed bin (31), /* mark width */ 14 54 4 mark char (80) varying, /* the left margin mark */ 14 55 3 right, /* right margin mark data */ 14 56 4 sep fixed bin (31), /* separation */ 14 57 4 width fixed bin (31), /* mark width */ 14 58 4 mark char (80) varying, /* the right margin mark */ 14 59 3 del, /* deletion mark data */ 14 60 4 sep fixed bin (31), /* separation */ 14 61 4 width fixed bin (31), /* mark width */ 14 62 4 mark char (80) varying, /* the deletion mark */ 14 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 14 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 14 65 2 db_file char (200) var, /* file pathanme for debug */ 14 66 2 db_file_after fixed bin (35), /* debug file starting line */ 14 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 14 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 14 69 2 device char (32) varying, /* output device */ 14 70 2 extra_indent fixed bin (31), /* extra indent value */ 14 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 14 72 2 line_1 fixed bin (35), /* initial line for output */ 14 73 2 line_2 fixed bin (35), /* final line for output */ 14 74 2 linespace fixed bin (31), /* line spacing value */ 14 75 2 pglstct fixed bin (35), /* number of page list entries */ 14 76 2 pglstndx fixed bin (35), /* index for -pages list */ 14 77 2 pglst (0:49), /* list of requested pages */ 14 78 3 from char (32) var, 14 79 3 to char (32) var, 14 80 2 parameter char (80) varying, /* parameter <value> from command line */ 14 81 2 passes fixed bin, /* passes remaining */ 14 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 14 83 14 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 14 85 809 15 1 /* BEGIN INCLUDE FILE ..... comp_output.incl.pl1 ..... 08/29/78 J Falksen */ 15 2 15 3 /* This include file describes the format of compout files. "Ordinary" compout 15 4* files, i.e. printer or ascii, will be written to stream files. All others 15 5* are not dprint-able and are written to sequential files. 15 6* 15 7* The first record is a file header which contains information necessary for 15 8* processing by process_compout. 15 9* 15 10* Each record thereafter contains one page image of data */ 15 11 15 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 15 13 15 14 dcl filedata_version_2 15 15 fixed bin static options (constant) init (2); 15 16 dcl filedata_version_3 15 17 fixed bin static options (constant) init (3); 15 18 dcl filedata_version_4 15 19 fixed bin static options (constant) init (4); 15 20 15 21 dcl fileheader_ptr ptr init (null); 15 22 dcl 1 fileheader aligned based (fileheader_ptr), 15 23 2 version fixed bin, /* version of this file */ 15 24 2 device_class 15 25 char (32), 15 26 2 device_name /* generic device name */ 15 27 char (32), 15 28 2 device char (32), /* logical device name */ 15 29 2 recleng fixed bin, /* mag tape record length */ 15 30 2 max_pages fixed bin, /* max pages/record, -1=unlimited */ 15 31 /* max_files not defined version 2 */ 15 32 2 max_files fixed bin, /* max files/tape, -1=unlimited */ 15 33 /* page_len not defined in version 3 */ 15 34 2 page_len fixed bin (21), /* page length */ 15 35 2 cleanup_leng /* device cleanup string */ 15 36 fixed bin, 15 37 2 cleanup char (l_cleanup), 15 38 2 comment_leng /* comment string - info for pco */ 15 39 fixed bin, 15 40 2 comment char (l_comment); 15 41 15 42 dcl l_comment fixed bin; /* comment length */ 15 43 dcl l_cleanup fixed bin; /* cleanup length */ 15 44 /* data record */ 15 45 dcl record_ptr ptr init (null); 15 46 dcl 1 record aligned based (record_ptr), 15 47 2 header, 15 48 3 pageid char (32), /* page identification 15 49* ("-1" means a galley block) */ 15 50 3 changed bit (1) unal, /* 1- this is a changed page */ 15 51 3 front bit (1) unal, /* 1- this is a front page */ 15 52 3 pending bit (1) unal, /* 1- page has been processed 15 53* but not printed */ 15 54 3 blank bit (1) unal, /* 1- intentional blank page */ 15 55 3 MBZ bit (32) unal, /* pad to word boundary */ 15 56 2 page_record 15 57 bit (36); /* base location of output structure */ 15 58 15 59 /* The output writer returns a catenated set of text strings. Each string has 15 60* a control preface. The last string in the list has output.nextref = "0"b */ 15 61 15 62 dcl page_record_ptr 15 63 ptr init (null); 15 64 dcl 1 page_record aligned based (page_record_ptr), 15 65 2 sws, 15 66 3 in_use bit (1) unal, /* 1- in use (so nextref ^= "0"b ) */ 15 67 3 rawo bit (1) unal, /* 1- text needs raw mode */ 15 68 3 halt bit (1) unal, /* 1- halt to change wheels */ 15 69 3 halt2 bit (1) unal, /* 1- halt AFTER changing wheels */ 15 70 3 halt3 bit (1) unal, /* reserved for future use */ 15 71 3 halt4 bit (1) unal, /* 1- mid-page wait */ 15 72 3 preface bit (1) unal, /* 1- control preface, this text */ 15 73 /* must be processed whenever it */ 15 74 /* is different than the */ 15 75 /* previous one. */ 15 76 3 id_preface /* 1- identification preface, this */ 15 77 bit (1) unal, /* to be included only at the */ 15 78 /* beginning of an output file. */ 15 79 /* In general, they will never */ 15 80 /* match each other (unless page */ 15 81 /* ids are duplicated). */ 15 82 3 pad bit (22) unal, /* pad to last byte */ 15 83 3 pwheel fixed bin (6) unal uns, 15 84 2 leng fixed bin (24), /* actual output text */ 15 85 2 text char (16384 refer (page_record.leng)), 15 86 2 nextref bit (36); /* location of next if any */ 15 87 15 88 /* END INCLUDE FILE ..... comp_output.incl.pl1 ..... */ 810 16 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 16 2 16 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 16 4 16 5 dcl max_image_lines 16 6 fixed static options (constant) init (1000); 16 7 dcl max_cols fixed static options (constant) init (20); 16 8 16 9 dcl page_version fixed bin static options (constant) init (5); 16 10 /* composed page structure */ 16 11 dcl 1 page aligned based (const.page_ptr), 16 12 2 version fixed bin, /* version of this structure */ 16 13 2 parms aligned like page_parms, 16 14 /* page formatting parameters */ 16 15 2 hdr aligned like page_header, 16 16 /* page control stuff */ 16 17 2 image_ptr ptr, /* pointer to the madeup page image */ 16 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 16 19 2 col_image_ptr 16 20 (-2:21) ptr; /* pointers to column images */ 16 21 /* col -1 is for line numbers and */ 16 22 /* left margin change bars; */ 16 23 /* col -2 is for */ 16 24 /* right margin change bars */ 16 25 /* and/or annotation * / 16 26* /* page control stuff */ 16 27 dcl 1 page_header aligned based (const.page_header_ptr), 16 28 2 sws, 16 29 3 art bit (1) unal, /* 1 = header/footer art */ 16 30 3 blankpage 16 31 bit (1) unal, /* 1 = intentional blank page */ 16 32 3 frontpage 16 33 bit (1) unal, /* 1 = odd page number */ 16 34 3 headed bit (1) unal, /* 1 = page header has been written */ 16 35 3 modified bit (1) unal, /* 1 = page has been modified */ 16 36 3 overflow bit (1) unal, /* OBSOLETE */ 16 37 3 MBZ bit (12) unal, 16 38 3 dot_addltr 16 39 char (1) unal, /* dot page add letter, if any */ 16 40 3 pgc_select 16 41 char (1) unal, /* for selecting change pages */ 16 42 2 baldepth fixed bin (31), /* page depth at balance point */ 16 43 2 balusd fixed bin (31), /* space used at balance point */ 16 44 2 col_count fixed bin, /* highest value of col_index for the page */ 16 45 2 col_index fixed bin, /* column index */ 16 46 2 depth fixed bin (31), /* current page depth */ 16 47 2 hdspc fixed bin (31), /* TOP white space */ 16 48 2 lmarg fixed bin (31), /* left margin for this page */ 16 49 2 net fixed bin (31), /* net usable space on the page */ 16 50 2 pageno char (32) var, /* current page number */ 16 51 2 used fixed bin (31); /* space already used on the page */ 16 52 16 53 dcl page_image_version 16 54 fixed bin (35) static options (constant) init (2); 16 55 /* structure passed to writers */ 16 56 dcl 1 page_image aligned based (page.image_ptr), 16 57 2 version fixed bin (35), /* structure version no */ 16 58 2 count fixed bin, /* count of page image lines */ 16 59 2 file_id char (32) var, /* compout identifier */ 16 60 2 func fixed bin, /* function code; 0 = build, 16 61* 1 = intialize, 2 = cleanup */ 16 62 2 text_ptr ptr, /* pointer to the text area */ 16 63 /* the image lines */ 16 64 2 line (max_image_lines), 16 65 3 sws, 16 66 4 quad bit (6) unal, /* text set position flags */ 16 67 4 art bit (1) unal, /* 1 = artwork in the line */ 16 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 16 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 16 70 4 white bit (1) unal, /* line is white */ 16 71 4 MBZ bit (26) unal, 16 72 3 depth fixed bin (31), /* page depth for the text */ 16 73 3 gaps fixed bin, /* number of WS gaps in the line */ 16 74 3 info like text_entry.info, 16 75 /* input file info */ 16 76 3 lead fixed bin (31), /* lead value if trailing WS */ 16 77 3 lfnt fixed bin, /* font at the left margin */ 16 78 3 lmarg fixed bin (31), /* text left margin position */ 16 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 16 80 3 net fixed bin (31), /* net width for filling */ 16 81 3 pos fixed bin (31), /* current horiz position */ 16 82 3 ptr ptr, /* pointer to the text */ 16 83 3 rmarg fixed bin (31), /* text right margin position */ 16 84 3 width fixed bin (31); /* width of the text */ 16 85 /* current page formatting parms */ 16 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 16 87 2 init_page_depth 16 88 fixed bin (31), /* initial page depth */ 16 89 2 length fixed bin (31), /* page length */ 16 90 2 lmarg, /* page left margin */ 16 91 3 even fixed bin (31), 16 92 3 odd fixed bin (31), 16 93 2 margin, /* margin values */ 16 94 3 top fixed bin (31), 16 95 3 header fixed bin (31), 16 96 3 footer fixed bin (31), 16 97 3 bottom fixed bin (31), 16 98 2 measure fixed bin (31), /* line space available for text */ 16 99 2 net, /* net usable space on page */ 16 100 3 even fixed bin (31), /* even pages */ 16 101 3 odd fixed bin (31), /* odd pages */ 16 102 /* arrays at the end */ 16 103 2 cols, /* columns defined for the page */ 16 104 3 bal bit (1) unal, /* column balancing control flag */ 16 105 3 MBZ bit (17) unal, 16 106 3 count fixed bin unal; /* the number of columns */ 16 107 /* default page formatting parms */ 16 108 dcl 1 init_page_parms 16 109 aligned like page_parms 16 110 based (const.init_page_parms_ptr); 16 111 16 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 811 17 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 17 2 17 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 17 4 17 5 dcl shared_version fixed bin (35) static options (constant) init (17); 17 6 17 7 dcl 1 shared aligned based (const.shared_ptr), 17 8 2 version fixed bin (35), /* version of this structure */ 17 9 2 chars, 17 10 ( 3 sym_delim, /* delimiter for symbols */ 17 11 3 ttl_delim, /* delimiter for title parts */ 17 12 3 wrd_brkr /* word break character */ 17 13 ) char (1) unal, 17 14 3 PAD char (1) unal, 17 15 2 cbar_type char (4) var, /* change bar type */ 17 16 2 dot_add_letter /* dot page add letter */ 17 17 char (1) var, 17 18 2 EN_width fixed bin (31), /* width of EN in current font */ 17 19 2 eqn_refct fixed bin, /* equation reference counter */ 17 20 2 footref_fcs /* footnote ref FCS string */ 17 21 char (8) aligned, 17 22 2 ftn_reset char (8) var, /* footnote reset mode */ 17 23 2 ftnrefct fixed bin, /* footnote ref counter */ 17 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 17 25 2 if_nest, /* if/then/else logic control */ 17 26 3 ndx fixed bin, /* depth of logic nest */ 17 27 3 e (25), /* nest entries */ 17 28 /* .if control switch */ 17 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 17 30 4 info aligned like text_entry.info, 17 31 4 line char (256) var, /* the control line */ 17 32 2 indctl, /* indent ctls stack */ 17 33 3 ndx fixed bin, /* current level */ 17 34 /* switch bits */ 17 35 3 stk (0:35) bit (1) unal, 17 36 2 input_dirname 17 37 char (168) var, /* dir containing current input file */ 17 38 2 input_filename 17 39 char (200) var, /* current input file name */ 17 40 2 lead fixed bin (31), /* current linespacing value */ 17 41 2 lit_count fixed bin (35), /* count of literal lines */ 17 42 2 next_pagenmbr 17 43 char (32) var, /* next page number / */ 17 44 2 output_file 17 45 char (32) var, /* output file identifier */ 17 46 2 pagecount fixed bin, /* number of pages produced */ 17 47 2 pagenum, /* page number structure */ 17 48 3 index fixed bin, /* level currently counting */ 17 49 ( 17 50 3 sep char (1) unal, /* separator chars */ 17 51 3 nmbr fixed bin (31), /* the counters */ 17 52 3 mode /* display modes */ 17 53 fixed bin (8) unal 17 54 ) dimension (20), 17 55 2 parameter char (254) var, /* command line parameter */ 17 56 2 param_pres bit (1), /* passed parameter flag */ 17 57 2 pass_counter 17 58 fixed bin, /* pass counter */ 17 59 2 picture, /* picture blocks */ 17 60 3 count fixed bin, /* number of them */ 17 61 3 space fixed bin (31), /* total picture space */ 17 62 3 blk (10), /* picture blocks */ 17 63 4 type char (4), /* type = page/col */ 17 64 4 place char (4), /* place = top/cen/bot */ 17 65 4 ptr ptr, /* pointer to block */ 17 66 4 size fixed bin (31), /* size of the picture */ 17 67 2 ptrs, 17 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 17 69 3 blank_footer_ptr, /* -> blank page footer */ 17 70 3 blank_header_ptr, /* -> blank page header */ 17 71 3 blank_text_ptr, /* -> blank page text */ 17 72 3 blkptr, /* -> active text */ 17 73 3 colptr, /* current column */ 17 74 3 compout_ptr, /* iocb pointer for output */ 17 75 3 compx_ptr, /* iocb pointer for compx file */ 17 76 3 ctb_ptr, /* current line artwork table */ 17 77 3 epftrptr, /* even page footer block */ 17 78 3 ephdrptr, /* even page header block */ 17 79 3 fcb_ptr, /* input file control block pointer */ 17 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 17 81 3 footnote_header_ptr, /* footnote header "title" */ 17 82 3 graphic_page_ptr, /* graphic output page */ 17 83 3 hit_data_ptr, /* hit data pointer */ 17 84 3 htab_ptr, /* horizontal tab tables */ 17 85 3 hwrd_data_ptr, /* local hyphenation table */ 17 86 3 insert_ptr, /* data entry for current input file */ 17 87 3 opftrptr, /* odd page footer block */ 17 88 3 ophdrptr, /* odd page header block */ 17 89 3 ptb_ptr, /* previous line artwork table */ 17 90 3 spcl_blkptr, /* "special" block pointer */ 17 91 3 tbldata_ptr, /* table column data structure */ 17 92 3 tblkdata_ptr, /* text block data array */ 17 93 3 text_header_ptr /* empty text header structure */ 17 94 ) ptr, 17 95 2 scale, /* space conversion scale factors */ 17 96 3 horz fixed bin (31), /* horizontal */ 17 97 3 vert fixed bin (31), /* vertical */ 17 98 2 source_filename 17 99 char (200) var, /* current source file name */ 17 100 2 sws, /* switch bits */ 17 101 ( 3 bug_mode, /* debug mode */ 17 102 3 compout_not_headed, /* compout is not headed */ 17 103 3 end_input, /* EOF for current input file */ 17 104 3 end_output, /* no more output is wanted */ 17 105 3 firstpass, /* first pass over input */ 17 106 3 ftn_mode, /* in footnote mode */ 17 107 3 hyph_mode, /* hyphenating mode */ 17 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 17 109 3 literal_mode, /* literal line mode flag */ 17 110 3 pageblock, /* blocks belong to page */ 17 111 3 picture_mode, /* building a picture */ 17 112 3 print_flag, /* producing output */ 17 113 3 purge_ftns, /* purging footnotes */ 17 114 3 suppress_footref, /* suppress next footnote ref */ 17 115 3 table_mode /* table mode */ 17 116 ) bit (1) unal, 17 117 3 MBZ bit (21) unal, 17 118 2 trans, /* trans table for .tr */ 17 119 3 in char (128) var, /* input chars */ 17 120 3 out char (128) var, /* output chars */ 17 121 2 widow_size fixed bin (31), /* widow size */ 17 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 17 123 /* to save shared data between files/passes */ 17 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 17 125 17 126 dcl dot_addltr_symb_index 17 127 fixed bin static options (constant) init (12); 17 128 dcl max_text_lines fixed bin static options (constant) init (1000); 17 129 dcl mode_string char (16) static options (constant) 17 130 init ("arbihxocalaurlru"); 17 131 /* value overlays */ 17 132 dcl flag_value bit (1) based; 17 133 dcl num_value fixed bin (31) based; 17 134 17 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 812 18 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 18 2 18 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 18 4 18 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 18 6 2 ct fixed bin, /* number of active table formats */ 18 7 2 ndx fixed bin, /* index of current active format */ 18 8 2 fmt (20), /* the format */ 18 9 3 name char (32) var, /* name of the format */ 18 10 3 ptr ptr; /* pointer to the format data */ 18 11 18 12 dcl tblfmtndx fixed bin; /* current table format index */ 18 13 dcl tblfmtptr ptr; /* -> current table format */ 18 14 /* table format data */ 18 15 dcl 1 tblfmt aligned based (tblfmtptr), 18 16 2 context bit (1), /* =1 if context mode */ 18 17 2 ccol fixed bin, /* the current table column */ 18 18 2 maxdepth fixed bin (31), /* max depth in table */ 18 19 2 ncols fixed bin, /* number of columns in this format */ 18 20 2 colptr (0:20) ptr; /* pointers to the columns */ 18 21 18 22 dcl tblcolndx fixed bin; /* current table column index */ 18 23 /* -> current table column */ 18 24 dcl tblcolptr ptr init (null ()); 18 25 /* table column data */ 18 26 dcl 1 tblcol aligned based (tblcolptr), 18 27 2 align, /* column alignment mode */ 18 28 3 posn fixed bin (31), 18 29 3 str char (32) var, 18 30 2 depth fixed bin (31), /* current depth for column */ 18 31 2 gutter fixed bin (31), 18 32 2 leader char (16) var, /* leadering string */ 18 33 2 margin, 18 34 3 left fixed bin (31), 18 35 3 right fixed bin (31), 18 36 2 valign bit (4) unal, /* vertical alignment flags */ 18 37 2 MBZ bit (29) unal, 18 38 2 parms /* parms for columns */ 18 39 aligned like default_parms; 18 40 18 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 18 42 /* -> previous table column */ 18 43 dcl prvtblcolptr ptr init (null ()); 18 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 18 45 18 46 dcl vtop bit (4) static options (constant) init ("1000"b); 18 47 dcl vcen bit (4) static options (constant) init ("0100"b); 18 48 dcl vbot bit (4) static options (constant) init ("0010"b); 18 49 dcl vjust bit (4) static options (constant) init ("0001"b); 18 50 18 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 813 19 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 19 2* 19 3* This storage is converted from external (as declared) to internal by the 19 4* binder and contains items that must be accessible to both the bound and 19 5* unbound program. */ 19 6 19 7 /* Written: ??/??/7? - EJW 19 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 19 9* and removed the codes array; version 6. 19 10**/ 19 11 19 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 19 13 19 14 dcl 1 compstat$compconst 19 15 aligned like const ext static; 19 16 19 17 dcl const_version fixed bin (35) static options (constant) init (6); 19 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 19 19 fixed bin static options (constant) init (80); 19 20 dcl MAX_TREE_AREAS /* number of tree areas */ 19 21 fixed bin static options (constant) init (20); 19 22 19 23 dcl 1 const aligned based (compstat$compconst.ptr), 19 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 19 25 2 version fixed bin (35), /* structure version */ 19 26 2 art_symbols /* string of art symbols */ 19 27 char (28) aligned, 19 28 2 builtin_count /* count of builtin variables */ 19 29 fixed bin, 19 30 2 comp_dir char (200), /* dir in which compose lives */ 19 31 2 comp_version 19 32 char (8) var, /* compose version id */ 19 33 2 date_value char (8) var, /* current date */ 19 34 2 dsm_name char (32), /* device support module name */ 19 35 2 dvt_name char (32), /* device table name */ 19 36 2 max_seg_chars 19 37 fixed bin (35), /* char count in a max seg */ 19 38 2 null_str char (1) var, /* an empty string */ 19 39 2 ptrs, 19 40 ( 3 call_stk_ptr, /* -> insert call stack */ 19 41 3 colhdrptr, /* empty column header structure */ 19 42 3 ctl_ptr, /* input line structure */ 19 43 3 current_parms_ptr, /* current formatting parms */ 19 44 3 default_parms_ptr, /* default initial text parms */ 19 45 3 devptr, /* -> comp_dvt structure */ 19 46 3 dvidptr, /* -> comp_dvid structure */ 19 47 3 errblk_ptr, /* error message block pointer */ 19 48 3 footnote_parms_ptr, /* footnote formatting parms */ 19 49 3 fnttbldata_ptr, /* -> font table data */ 19 50 3 global_area_ptr, /* per invocation storage */ 19 51 3 init_page_parms_ptr, /* default initial page parms */ 19 52 3 insert_data_ptr, /* insert file data block */ 19 53 3 local_area_ptr, /* per file storage */ 19 54 3 loctbl_ptr, /* for font copying */ 19 55 3 option_ptr, /* program options block */ 19 56 3 outproc_ptr, /* device writer for cleanup */ 19 57 3 page_ptr, /* active page structure */ 19 58 3 page_header_ptr, /* empty page header structure */ 19 59 3 page_parms_ptr, /* page formatting parameter block */ 19 60 3 save_shared_ptr, /* saved shared data */ 19 61 3 shared_ptr, /* shared data structure */ 19 62 3 text_entry_ptr, /* empty text entry structure */ 19 63 3 text_header_ptr, /* empty text header structure */ 19 64 3 text_parms_ptr, /* main body formatting parms */ 19 65 3 tree_ptr /* symbol tree structure */ 19 66 ) ptr, 19 67 2 time_value char (6) var; /* time at start */ 19 68 19 69 /* Other external */ 19 70 dcl ( 19 71 ioa_, 19 72 ioa_$nnl 19 73 ) entry options (variable); 19 74 dcl iox_$error_output 19 75 ptr ext static, /* iocb pointer for error_output */ 19 76 iox_$user_input 19 77 ptr ext static, /* iocb pointer for user_input */ 19 78 iox_$user_output 19 79 ptr ext static; /* iocb pointer for user_output */ 19 80 dcl sys_info$max_seg_size 19 81 fixed bin (18) ext static; 19 82 19 83 /* END INCLUDE FILE compstat.incl.pl1 */ 814 815 816 end comp_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0908.5 comp_.pl1 >spec>online>comp>comp_.pl1 796 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 797 2 03/01/85 1411.8 comp_ctl_index.incl.pl1 >ldd>include>comp_ctl_index.incl.pl1 798 3 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 799 4 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 800 5 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 801 6 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 802 7 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 803 8 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 804 9 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 805 10 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1 806 11 03/01/85 1412.0 comp_htab.incl.pl1 >ldd>include>comp_htab.incl.pl1 807 12 03/01/85 1412.0 comp_insert.incl.pl1 >ldd>include>comp_insert.incl.pl1 808 13 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 809 14 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 810 15 03/01/85 1412.0 comp_output.incl.pl1 >ldd>include>comp_output.incl.pl1 811 16 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 812 17 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 813 18 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 814 19 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.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. CBARS 000027 constant bit(1) initial unaligned dcl 26 set ref 180* DC1 constant char(1) initial unaligned dcl 13-6 ref 69 DCxx_p 000322 automatic pointer dcl 5-8 set ref 72* 746 767 DVctl 2(01) based bit(1) level 3 packed unaligned dcl 3-157 set ref 107* 471 496 EMPTY constant bit(1) initial unaligned dcl 33 ref 336 EN_width 6 based fixed bin(31,0) level 2 dcl 17-7 ref 727 736 782 EPILOGUE 000030 constant fixed bin(17,0) initial dcl 35 set ref 674* TEXT 000027 constant bit(1) initial unaligned dcl 48 set ref 180* TRIM constant bit(1) initial unaligned dcl 51 ref 180 addrel builtin function dcl 57 ref 75 align based structure level 2 dcl 18-26 art 1004(06) based bit(1) level 4 in structure "text" packed unaligned dcl 3-49 in procedure "comp_" set ref 184 415 420* 456 462* 521 626* art 0(06) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 3-209 in procedure "comp_" set ref 420* 462* art 116 based bit(1) level 4 in structure "text" packed unaligned dcl 3-49 in procedure "comp_" set ref 415* 415 416 438* 456* 456 458 503* 516 715* art_count 5 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 set ref 419* 419 420 461* 461 462 ascii_width 000100 automatic fixed bin(17,0) dcl 22 set ref 113* 127* 127 129* 129 136 142* 142 avg 4 000122 automatic fixed bin(31,0) level 2 dcl 45 set ref 442 506 719 758 761 balftn 2 based structure level 2 in structure "colhdr" dcl 4-21 in procedure "comp_" balftn 320 based structure level 3 in structure "col0" dcl 4-37 in procedure "comp_" balftn 320 based structure level 3 in structure "col" dcl 4-5 in procedure "comp_" bef_ctl_index 000003 constant fixed bin(17,0) initial dcl 2-9 set ref 607* bep_ctl_index 000040 constant fixed bin(17,0) initial dcl 2-9 set ref 621* bin builtin function dcl 57 ref 222 232 blank_count 000101 automatic fixed bin(17,0) initial dcl 23 set ref 23* 136* 138 141 142 blkptr 3752 based pointer level 3 in structure "shared" dcl 17-7 in procedure "comp_" set ref 163 167 170 170 172 172 176 176 180* 184 261 264 264 268 280 280 303 303 311 314 315 329 336* 340 340 340 340 340 340 347 347 347 351 351 351 352 352 352 352 355 355 355 357 360 360 361 361 367 367 373 373 373 389 392 392 394 394 400 403 404 408* 408 408 408 408 415 415 415 416 419 419 420 420 438 438 438 438 442 442 444 444 444 444 447 447 447 448 456 456 456 458 461 461 462 462 466 466 466 466 471 481 481 493 493 493 496 499 503 503 503 503 506 506 508 508 511 512 513 513 514 516* 516 516 516 516 516 519 521 521 521 521 528 531 534 534 535 535 537 537 539 539 540 581 584 590 598 599* 599 610 621 626 626 627 627 627 629 629 629 629 632 632 632 634 637 637 638 638 649* 654* 666 700 700 715 715 715 715 755 755 blkptr 6 based pointer level 3 in structure "text" dcl 3-49 in procedure "comp_" ref 599 blktype 2 based char(2) level 2 dcl 3-49 ref 340 340 340 340 340 340 590 621 block_break 000044 constant fixed bin(17,0) initial dcl 1-9 set ref 153 184* 641* 651* break_type 000102 automatic fixed bin(17,0) dcl 25 set ref 153* 155* 182* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 17-7 set ref 65 548 560* 564 692 call_box based structure level 1 dcl 12-18 call_box0 based structure level 1 dcl 12-19 call_box_ptr 000324 automatic pointer dcl 12-17 set ref 73* 77 78 80 93 call_stack based structure level 1 dcl 12-13 call_stk_ptr 126 based pointer level 3 dcl 19-23 ref 65 73 73 78 80 92 92 548 553 cbar 1 based structure level 3 in structure "current_parms" dcl 3-209 in procedure "comp_" cbar 1005 based structure level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 513 cbar 117 based structure level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 513* ccol 1 based fixed bin(17,0) level 2 dcl 18-15 set ref 151 232 232 245 255 299 307* char_index based fixed bin(9,0) array unsigned unaligned dcl 28 ref 127 127 129 char_index_ptr 000104 automatic pointer dcl 31 set ref 75* 127 127 129 chars 1 based structure level 2 in structure "shared" dcl 17-7 in procedure "comp_" chars 1 based varying char(32) level 2 in structure "htab" dcl 11-3 in procedure "comp_" ref 381 707 724 check_opt 1(23) based bit(1) level 2 packed unaligned dcl 14-5 ref 669 col based structure level 1 dcl 4-5 col0 based structure level 1 dcl 4-37 col_index 21 based fixed bin(17,0) level 3 dcl 16-11 set ref 333 336* colhdr based structure level 1 dcl 4-21 colno 12 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 ref 373 521 colptr 4 based pointer array level 2 dcl 18-15 ref 152 251 251 256 308 319 column_ptr 42 based pointer array level 2 dcl 16-11 ref 666 comp_abort 000302 stack reference condition dcl 60 ref 686 comp_block_ctls_ 000012 constant entry external dcl 8-9 ref 607 621 comp_break_ 000014 constant entry external dcl 8-11 ref 182 184 280 303 372 373 400 521 588 641 651 666 comp_ctls_ 000016 constant entry external dcl 8-14 ref 286 663 comp_dvt based structure level 1 dcl 7-19 comp_fill_ 000020 constant entry external dcl 8-24 ref 485 comp_format_ctls_ 000022 constant entry external dcl 8-26 ref 540 comp_head_page_ 000024 constant entry external dcl 8-33 ref 333 comp_hft_ctls_$title 000026 constant entry external dcl 8-36 ref 408 comp_measure_ 000030 constant entry external dcl 8-48 ref 438 503 715 755 comp_read_$line 000032 constant entry external dcl 8-57 ref 92 comp_report_ 000034 constant entry external dcl 8-59 ref 226 684 comp_report_$ctlstr 000036 constant entry external dcl 8-61 ref 570 593 comp_space_ 000040 constant entry external dcl 8-66 ref 180 649 comp_tbl_ctls_ 000042 constant entry external dcl 8-68 ref 232 618 comp_title_block_ 000044 constant entry external dcl 8-69 ref 176 347 466 comp_util_$add_text 000046 constant entry external dcl 8-75 ref 516 comp_util_$getblk 000050 constant entry external dcl 8-82 ref 336 comp_util_$pictures 000052 constant entry external dcl 8-88 ref 654 compout_ptr 3756 based pointer level 3 dcl 17-7 ref 679 compstat$compconst 000054 external static structure level 1 dcl 19-14 const based structure level 1 dcl 19-23 context based bit(1) level 2 dcl 18-15 set ref 211 239* 288 295 copy builtin function dcl 57 ref 138 772 count 32 based fixed bin(17,0) array level 3 in structure "htab" dcl 11-3 in procedure "comp_" ref 727 732 count 3644 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure "comp_" ref 654 count 12(18) based fixed bin(17,0) level 3 in structure "hfcblk" packed unaligned dcl 3-250 in procedure "comp_" ref 466 ct 375 based fixed bin(17,0) level 4 dcl 4-37 ref 666 ctl based structure level 1 dcl 3-157 ctl_line based varying char(1020) dcl 3-158 set ref 92* 110 116 138* 138 138 160 191 196 196 196 196 196 196 204 204 217 222 226* 232 232 232 241 241* 241 243* 272 277 288 288 364 367 385 397 403 432 438 438 476 481 503* 511 577* 593* 606* 617* 662* 704 707 715 715 724 746* 746 746 767* 767 767 772* 772 772 785* 785 785 ctl_ptr 132 based pointer level 3 dcl 19-23 ref 75 92 93 107 108 108 110 116 138 138 138 160 191 191 193 196 196 196 196 196 196 196 196 196 196 196 196 204 204 217 220 220 222 222 226 226 226 232 232 232 232 232 232 241 241 241 243 257 257 264 264 268 272 277 288 288 315 364 367 385 397 403 404 432 438 438 438 438 471 471 476 476 481 496 503 503 503 511 512 535 537 564 577 593 593 593 606 616 617 662 684 684 704 707 715 715 715 715 724 746 746 746 755 755 767 767 767 772 772 772 785 785 785 cur 126 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure "comp_" cur 10 based structure level 2 in structure "ctl" dcl 3-157 in procedure "comp_" cur 126 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" cur 10 based structure level 2 in structure "txtlin" dcl 3-161 in procedure "comp_" cur 10 based structure level 2 in structure "text_entry" dcl 3-68 in procedure "comp_" cur 126 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure "comp_" current_parms based structure level 1 dcl 3-209 set ref 309* 314 336 336 current_parms_ptr 134 based pointer level 3 dcl 19-23 set ref 180 309 314 315 336 336 420 462 598* 646 649 db_file 116 based varying char(200) level 2 dcl 14-5 ref 692 692 db_line_end 202 based fixed bin(35,0) level 2 dcl 14-5 ref 560 dclong_val based structure level 1 packed unaligned dcl 5-54 default_parms based structure level 1 dcl 3-213 del 1(01) based bit(1) level 4 in structure "current_parms" packed unaligned dcl 3-209 in procedure "comp_" set ref 646 del 1005(01) based bit(1) level 5 in structure "text" packed unaligned dcl 3-49 in procedure "comp_" set ref 514* depth 12 based fixed bin(31,0) level 2 in structure "tblcol" dcl 18-26 in procedure "comp_" set ref 251* 319* depth 12 based fixed bin(31,0) level 2 in structure "tblcol0" dcl 18-41 in procedure "comp_" ref 251 devptr 140 based pointer level 3 dcl 19-23 ref 674 divide builtin function dcl 57 ref 758 e 20 based structure array level 3 dcl 17-7 end_input 4113(02) based bit(1) level 3 packed unaligned dcl 17-7 set ref 82 83* 86 95 556* end_output 4113(03) based bit(1) level 3 in structure "shared" packed unaligned dcl 17-7 in procedure "comp_" set ref 89 377 486 525 578* end_output 000310 stack reference condition dcl 60 in procedure "comp_" ref 84 endinput 000106 automatic bit(1) unaligned dcl 34 set ref 82* 556 entry 46 based structure array level 4 dcl 18-26 ref 257 264 eqn_line_count 13 based fixed bin(17,0) level 3 packed unaligned dcl 3-49 set ref 170* 170 172 392* 392 394 ercd 000107 automatic fixed bin(35,0) dcl 36 set ref 679* 681 684* file based structure level 2 dcl 12-32 fileheader_ptr 000326 automatic pointer initial dcl 15-21 set ref 15-21* fill 57 based varying char(32) array level 3 dcl 11-3 ref 742 755 772 776 fill_count 000110 automatic fixed bin(17,0) dcl 37 set ref 758* 761 772 776 fill_mode 1006 based bit(1) level 4 packed unaligned dcl 3-49 set ref 367 481 fin_ctl_index 000002 constant fixed bin(17,0) initial dcl 2-9 set ref 540* fmt 2 based structure array level 2 dcl 18-5 fntstk 44 based structure level 3 dcl 18-26 fntstk_entry based structure level 1 dcl 9-6 font 216 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" set ref 264* 438 438 503 503 715 715 755 755 font 16 based structure level 3 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 108 257* 264* font 134 based structure level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 264* font 100 based structure level 2 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 108* 257* 264* footnote 1006(01) based bit(1) level 4 packed unaligned dcl 3-49 set ref 357 634 format_break 000034 constant fixed bin(17,0) initial dcl 1-9 set ref 155 280* 303* 372* 400* 588* ftn 375 based structure level 3 dcl 4-37 ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 17-7 ref 603 ftn_reset 12 based varying char(8) level 2 dcl 17-7 ref 657 ftnblk_data based structure level 1 dcl 10-5 ftnblk_data_ptr 3772 based pointer level 3 dcl 17-7 ref 657 657 galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 14-5 ref 333 578 hanging 120(06) based bit(1) level 4 in structure "text" packed unaligned dcl 3-49 in procedure "comp_" set ref 499 535* hanging 2(06) based bit(1) level 3 in structure "ctl" packed unaligned dcl 3-157 in procedure "comp_" set ref 535* hdr 316 based structure level 2 in structure "col0" dcl 4-37 in procedure "comp_" hdr 4 based structure level 2 in structure "hfcblk" dcl 3-250 in procedure "comp_" hdr 15 based structure level 2 in structure "page" dcl 16-11 in procedure "comp_" hdr 4 based structure level 2 in structure "text" dcl 3-49 in procedure "comp_" hdrptr 1014 based pointer level 3 dcl 3-49 set ref 176 176* 347 347* 466 466 466* head_used 000111 automatic fixed bin(31,0) dcl 38 set ref 333* headed 15(03) based bit(1) level 4 packed unaligned dcl 16-11 ref 333 hfcblk based structure level 1 dcl 3-250 highndx based fixed bin(35,0) level 2 dcl 10-5 ref 657 htab based structure level 1 dcl 11-3 htab_mode 1006(03) based bit(1) level 4 packed unaligned dcl 3-49 set ref 481 493 htab_ptr 4002 based pointer level 3 dcl 17-7 ref 381 381 707 724 725 727 727 732 736 742 755 772 776 782 htab_shift based char(7) unaligned dcl 39 ref 746 767 htab_space 000112 automatic structure level 1 packed unaligned dcl 41 set ref 72 i 000115 automatic fixed bin(17,0) dcl 42 set ref 114* 116 126 126 132 134 141* 248* 251* 318* 319* 702* 707 715 715 720 722 781* 791* if_nest 17 based structure level 2 dcl 17-7 ii 000117 automatic fixed bin(17,0) dcl 43 set ref 132* 134* 138 138 141 720* 722* 724 746 746 749* 749 767 767 770* 770 772 772 776* 776 781 785 785 791 image_ptr 40 based pointer level 2 dcl 16-11 ref 669 672 indctl 3315 based structure level 2 dcl 17-7 indent 1022 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 352 629 indent 1016 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 351 444 627 700 index builtin function dcl 57 in procedure "comp_" ref 110 116 196 196 196 196 217 288 367 397 432 724 index 1 based fixed bin(17,0) level 2 in structure "call_stack" dcl 12-13 in procedure "comp_" set ref 65* 73 78 92 548* 553 index 44 based fixed bin(17,0) level 4 in structure "tblcol" dcl 18-26 in procedure "comp_" ref 257 264 index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 191* 193* 196 196 196 196 196 196 220* 220 222 232 232 232 616* index 1 based fixed bin(17,0) level 2 in structure "insert_data" dcl 12-5 in procedure "comp_" set ref 65* 548* info 277 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" set ref 404* 512* info 161 based structure level 2 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 93* 226 226 404 438 438 503 503 512 593 593 684 684 715 715 755 755 info 70 based structure level 2 in structure "call_box0" dcl 12-19 in procedure "comp_" info 277 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure "comp_" info 70 based structure level 2 in structure "call_box" dcl 12-18 in procedure "comp_" set ref 93 info 161 based structure level 2 in structure "txtlin" dcl 3-161 in procedure "comp_" info 21 based structure array level 4 in structure "shared" dcl 17-7 in procedure "comp_" set ref 570 570 info 277 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure "comp_" info 161 based structure level 2 in structure "text_entry" dcl 3-68 in procedure "comp_" input 116 based structure level 2 dcl 3-49 set ref 408 408 516 516 input_filename 3372 based varying char(200) level 2 dcl 17-7 set ref 65* 548* 692 692* input_line 375 based varying char(1020) level 2 dcl 3-49 set ref 280 303 367 400 403* 408* 511* 519* 531* insert based structure level 1 dcl 12-32 insert_data based structure level 1 dcl 12-5 insert_data_ptr 156 based pointer level 3 dcl 19-23 ref 65 548 inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 17-7 ref 176 347 466 ioa_ 000056 constant entry external dcl 19-70 ref 65 548 564 692 iox_$put_chars 000010 constant entry external dcl 63 ref 679 j 000116 automatic fixed bin(17,0) dcl 42 set ref 114* 115 116* 119 123 126 132 702* 704 707* 708 711 715 715 720 jj 000120 automatic fixed bin(17,0) dcl 43 set ref 724* 725* 725 727 727 732 736 742 755 772 776 782 just constant bit(6) initial unaligned dcl 3-148 ref 493 k 000121 automatic fixed bin(17,0) dcl 43 set ref 126* 127 127 129* 727* 727* 732 736 742 755 772 776 782 keep 1006(04) based bit(1) level 4 packed unaligned dcl 3-49 set ref 373 521 626* left 12 based structure level 2 in structure "text_parms" dcl 3-206 in procedure "comp_" left 12 based structure level 2 in structure "default_parms" dcl 3-213 in procedure "comp_" left 12 based structure level 2 in structure "current_parms" dcl 3-209 in procedure "comp_" left 1016 based structure level 3 in structure "ftnhdr" dcl 10-10 in procedure "comp_" left 36 based structure level 3 in structure "tblcol" dcl 18-26 in procedure "comp_" left 21 based fixed bin(31,0) level 3 in structure "tblcol" dcl 18-26 in procedure "comp_" ref 360 361 637 638 left 12 based structure level 2 in structure "footnote_parms" dcl 10-12 in procedure "comp_" left 1016 based structure level 3 in structure "hfcblk" dcl 3-250 in procedure "comp_" left 1016 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" left 36 based structure level 3 in structure "tblcol0" dcl 18-41 in procedure "comp_" left 36 based structure level 3 in structure "prvtblcol" dcl 18-44 in procedure "comp_" leng 0(18) 000112 automatic fixed bin(9,0) level 2 in structure "htab_space" packed unsigned unaligned dcl 41 in procedure "comp_" set ref 71* leng 1 based fixed bin(24,0) level 2 in structure "page_record" dcl 15-64 in procedure "comp_" set ref 673* 676 679 679 679* length builtin function dcl 57 ref 160 241 367 400 481 704 776 line 24 based varying char(256) array level 4 dcl 17-7 set ref 570* line_area_ptr 000316 automatic pointer initial dcl 3-25 set ref 3-25* lineno 71 based fixed bin(17,0) level 3 in structure "call_box0" dcl 12-19 in procedure "comp_" ref 80 lineno 162 based fixed bin(17,0) level 3 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 564* lineno 71 based fixed bin(17,0) level 3 in structure "call_box" dcl 12-18 in procedure "comp_" set ref 77* lineno0 72 based fixed bin(17,0) level 3 dcl 12-18 set ref 78* 80* linespace 1020 based fixed bin(31,0) level 3 in structure "text" dcl 3-49 in procedure "comp_" set ref 408* 471 508 537 linespace 164 based fixed bin(31,0) level 2 in structure "ctl" dcl 3-157 in procedure "comp_" set ref 471* 476* 537* linespace 14 based fixed bin(31,0) level 2 in structure "current_parms" dcl 3-209 in procedure "comp_" set ref 180* 649* linespace 302 based fixed bin(31,0) level 3 in structure "text" dcl 3-49 in procedure "comp_" set ref 496* 506* 508* 537* lit_count 3456 based fixed bin(35,0) level 2 dcl 17-7 set ref 101 103* 103 204 literal_mode 4113(08) based bit(1) level 3 packed unaligned dcl 17-7 set ref 98 101* 204 204 lmarg 303 based fixed bin(31,0) level 3 dcl 3-49 set ref 351* 355 360* 360 444* 444 447 627* 632 637* 637 margin 21 based structure level 2 dcl 18-26 mark 000112 automatic char(1) level 2 packed unaligned dcl 41 set ref 69* maxdepth 2 based fixed bin(31,0) level 2 dcl 18-15 ref 319 meas1 000122 automatic structure level 1 dcl 45 set ref 437* 438 438 502* 503 503 714* 715 715 754* 755 755 meas2 000210 automatic structure level 1 dcl 46 set ref 438 438 503 503 715 715 755 755 measure 1021 based fixed bin(31,0) level 3 dcl 3-49 set ref 352 629 mod builtin function dcl 57 ref 136 ncols 3 based fixed bin(17,0) level 2 dcl 18-15 ref 222 248 318 ndx 17 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure "comp_" set ref 567 570 570 570 574* ndx 1 based fixed bin(17,0) level 2 in structure "tbldata" dcl 18-5 in procedure "comp_" ref 150 288 ndx 3315 based fixed bin(17,0) level 3 in structure "shared" dcl 17-7 in procedure "comp_" ref 191 need_break 000030 constant fixed bin(17,0) initial dcl 1-9 set ref 373* 521* net 306 based fixed bin(31,0) level 3 dcl 3-49 set ref 355* 447* 632* nofill_count 104 based fixed bin(17,0) level 3 dcl 3-49 set ref 539* 539 540 null builtin function dcl 57 ref 163 176 261 280 303 311 329 347 381 466 528 581 610 657 666 669 3-25 3-35 15-21 15-45 15-62 18-24 18-43 oflo 120(09) based bit(1) level 4 packed unaligned dcl 3-49 set ref 373 516* 521 option based structure level 1 dcl 14-5 option_ptr 164 based pointer level 3 dcl 19-23 ref 333 560 578 669 692 692 outproc 10 based entry variable level 2 dcl 7-19 ref 674 page based structure level 1 dcl 16-11 page_break 000043 constant fixed bin(17,0) initial dcl 1-9 set ref 666* page_header based structure level 1 dcl 16-27 page_image based structure level 1 dcl 16-56 page_parms based structure level 1 dcl 16-86 page_ptr 170 based pointer level 3 dcl 19-23 ref 333 333 336 666 666 669 672 page_record 11 based bit(36) level 2 in structure "record" dcl 15-46 in procedure "comp_" set ref 672 page_record based structure level 1 dcl 15-64 in procedure "comp_" page_record_ptr 000332 automatic pointer initial dcl 15-62 set ref 672* 673 676 679 679 679 15-62* parms 1004 based structure level 2 in structure "text" dcl 3-49 in procedure "comp_" set ref 314* parms 24 based structure level 2 in structure "tblcol" dcl 18-26 in procedure "comp_" ref 309 parms_ptr 106 based pointer level 3 dcl 3-49 ref 598 pass_counter 3643 based fixed bin(17,0) level 2 dcl 17-7 set ref 65* 669 pats 12 based fixed bin(8,0) array level 2 packed unaligned dcl 11-3 ref 725 pattern 22 based structure array level 2 dcl 11-3 picture 3644 based structure level 2 dcl 17-7 posn based fixed bin(31,0) level 3 dcl 18-26 ref 429 prvtblcolptr 000342 automatic pointer initial dcl 18-43 set ref 18-43* ptr 172 based pointer level 2 in structure "ctl" dcl 3-157 in procedure "comp_" ref 75 92 110 116 138 138 138 160 191 196 196 196 196 196 196 204 204 217 222 226 232 232 232 241 241 241 243 272 277 288 288 364 367 385 397 403 432 438 438 476 481 503 511 577 593 606 617 662 704 707 715 715 724 746 746 746 767 767 767 772 772 772 785 785 785 ptr 000054 external static pointer level 2 in structure "compstat$compconst" dcl 19-14 in procedure "comp_" ref 65 65 65 65 65 73 73 75 78 80 82 83 86 89 92 92 92 93 95 98 101 101 103 103 107 108 108 110 116 138 138 138 147 150 150 160 163 167 170 170 172 172 176 176 176 180 180 182 184 191 191 191 191 193 196 196 196 196 196 196 196 196 196 196 196 196 204 204 204 204 204 211 217 220 220 222 222 226 226 226 232 232 232 232 232 232 241 241 241 243 257 257 261 264 264 264 264 268 268 272 277 280 280 288 288 288 288 288 295 303 303 309 311 314 314 315 315 315 329 333 333 333 336 336 336 336 340 340 340 340 340 340 347 347 347 347 351 351 351 352 352 352 352 355 355 355 357 357 360 360 361 361 364 367 367 367 373 373 373 373 377 381 381 385 389 392 392 394 394 397 397 400 403 403 404 404 408 408 408 408 408 415 415 415 416 419 419 420 420 420 429 432 438 438 438 438 438 438 438 438 442 442 444 444 444 444 447 447 447 448 456 456 456 458 461 461 462 462 462 466 466 466 466 466 471 471 471 476 476 481 481 481 486 493 493 493 496 496 499 503 503 503 503 503 503 503 506 506 508 508 511 511 512 512 513 513 514 516 516 516 516 516 516 519 521 521 521 521 521 525 528 531 534 534 535 535 535 537 537 537 539 539 540 548 548 548 548 553 556 560 560 564 564 564 567 570 570 570 570 570 570 574 577 578 578 581 584 590 593 593 593 598 598 599 599 603 606 610 613 616 617 621 626 626 627 627 627 629 629 629 629 632 632 632 634 634 637 637 638 638 646 649 649 654 654 657 657 657 661 662 666 666 666 669 669 669 672 674 679 684 684 692 692 692 692 692 700 700 704 707 707 715 715 715 715 715 715 715 715 724 724 725 727 727 727 732 736 736 742 746 746 746 755 755 755 755 755 767 767 767 772 772 772 772 776 782 782 785 785 785 ptr 14 based pointer array level 3 in structure "tbldata" dcl 18-5 in procedure "comp_" ref 150 288 ptr 2 based pointer array level 2 in structure "call_stack" dcl 12-13 in procedure "comp_" set ref 73 80 92* ptrs 126 based structure level 2 in structure "const" dcl 19-23 in procedure "comp_" ptrs 3742 based structure level 2 in structure "shared" dcl 17-7 in procedure "comp_" purge_ftns 4113(12) based bit(1) level 3 packed unaligned dcl 17-7 set ref 661* quad 2(11) based bit(6) level 3 in structure "ctl" packed unaligned dcl 3-157 in procedure "comp_" set ref 268* 315* quad based bit(6) level 3 in structure "current_parms" packed unaligned dcl 3-209 in procedure "comp_" set ref 315 quad 24 based bit(6) level 4 in structure "tblcol" packed unaligned dcl 18-26 in procedure "comp_" ref 268 quad 120(11) based bit(6) level 4 in structure "text" packed unaligned dcl 3-49 in procedure "comp_" set ref 268* 315* 438* 448* 493 493* 503* 516 715* quadl constant bit(6) initial unaligned dcl 3-148 ref 448 493 516 record based structure level 1 dcl 15-46 record_ptr 000330 automatic pointer initial dcl 15-45 set ref 15-45* right 1022 based structure level 3 dcl 3-49 rmarg 312 based fixed bin(31,0) level 3 dcl 3-49 set ref 352* 355 361* 361 447 629* 632 638* 638 search builtin function dcl 57 ref 707 shared based structure level 1 dcl 17-7 shared_ptr 200 based pointer level 3 dcl 19-23 ref 65 65 65 82 83 86 89 95 98 101 101 103 103 147 150 150 163 167 170 170 172 172 176 176 176 180 182 184 191 191 204 204 204 211 261 264 264 268 280 280 288 288 288 295 303 303 311 314 315 329 336 340 340 340 340 340 340 347 347 347 347 351 351 351 352 352 352 352 355 355 355 357 357 360 360 361 361 367 367 373 373 373 373 377 381 381 389 392 392 394 394 397 400 403 404 408 408 408 408 408 415 415 415 416 419 419 420 420 429 438 438 438 438 442 442 444 444 444 444 447 447 447 448 456 456 456 458 461 461 462 462 466 466 466 466 466 471 481 481 486 493 493 493 496 499 503 503 503 503 506 506 508 508 511 512 513 513 514 516 516 516 516 516 516 519 521 521 521 521 521 525 528 531 534 534 535 535 537 537 539 539 540 548 548 556 560 564 564 567 570 570 570 570 570 570 574 578 581 584 590 598 599 599 603 610 613 621 626 626 627 627 627 629 629 629 629 632 632 632 634 634 637 637 638 638 649 654 654 657 657 657 661 666 669 679 692 692 692 700 700 707 715 715 715 715 724 725 727 727 727 732 736 736 742 755 755 755 772 776 782 782 source_filename 4030 based varying char(200) level 2 dcl 17-7 set ref 564* stk 3316 based bit(1) array level 3 packed unaligned dcl 17-7 ref 191 stop 33 based fixed bin(31,0) array level 3 dcl 11-3 ref 727 736 782 str 1 based varying char(32) level 3 dcl 18-26 ref 432 strndx 000276 automatic fixed bin(17,0) dcl 47 set ref 432* 434 438 438 substr builtin function dcl 57 ref 116 138 138 196 196 196 196 196 196 217 222 232 232 232 241 277 288 288 367 438 438 707 715 715 724 746 746 767 767 772 772 785 785 sws 15 based structure level 3 in structure "page" dcl 16-11 in procedure "comp_" sws 1004 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" sws based structure level 2 in structure "current_parms" dcl 3-209 in procedure "comp_" sws based structure level 2 in structure "ctl" dcl 3-157 in procedure "comp_" sws 4113 based structure level 2 in structure "shared" dcl 17-7 in procedure "comp_" sws 116 based structure level 3 in structure "text" dcl 3-49 in procedure "comp_" sws 24 based structure level 3 in structure "tblcol" dcl 18-26 in procedure "comp_" table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 17-7 ref 147 182 211 288 295 357 373 429 521 613 634 tac_ctl_index 000001 constant fixed bin(17,0) initial dcl 2-9 set ref 232* taf_ctl_index 000000 constant fixed bin(17,0) initial dcl 2-9 set ref 618* tblcol based structure level 1 dcl 18-26 tblcol0 based structure level 1 dcl 18-41 tblcolndx 000336 automatic fixed bin(17,0) dcl 18-22 set ref 151* 152 153 245 248 255* 256 299* 300 307* tblcolptr 000340 automatic pointer initial dcl 18-24 set ref 152* 256* 257 257 264 264 268 308* 309 360 361 429 432 637 638 18-24* tbldata based structure level 1 dcl 18-5 tbldata_ptr 4020 based pointer level 3 dcl 17-7 ref 150 150 288 288 tblfmt based structure level 1 dcl 18-15 tblfmtptr 000334 automatic pointer dcl 18-13 set ref 150* 151 152 211 222 232 232 239 245 248 251 251 255 256 295 299 307 308 318 319 319 text based structure level 1 dcl 3-49 in procedure "comp_" text 2 based char level 2 in structure "page_record" dcl 15-64 in procedure "comp_" set ref 679 679 text_added 000277 automatic bit(1) dcl 49 set ref 158* 286* 288 295 325 text_area_ptr 000320 automatic pointer initial dcl 3-35 set ref 3-35* text_entry based structure level 1 dcl 3-68 text_flag 000300 automatic bit(1) unaligned dcl 50 set ref 340* 345* 475* text_header based structure level 1 dcl 3-163 text_ptr 14 based pointer level 2 dcl 16-56 ref 672 title_mode 1006(06) based bit(1) level 4 packed unaligned dcl 3-49 set ref 167 172* 347 389 394* 466 584 ttl_delim 1(09) based char(1) level 3 packed unaligned dcl 17-7 ref 397 txtwidth 000301 automatic fixed bin(31,0) initial dcl 52 set ref 52* 700* 719* 719 727 736 782* type 0(09) 000112 automatic char(1) level 2 packed unaligned dcl 41 set ref 70* type_slx constant char(1) initial unaligned dcl 5-90 ref 70 und_prot 122(08) based bit(1) level 4 packed unaligned dcl 3-49 set ref 535* undent 1017 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 351 442* 442 444 506 534* 627 700 undent 1023 based fixed bin(31,0) level 4 in structure "text" dcl 3-49 in procedure "comp_" set ref 352 534* 629 used 37 based fixed bin(31,0) level 3 dcl 16-11 ref 666 v1 0(27) 000112 automatic fixed bin(31,0) level 2 packed unaligned dcl 41 set ref 736* 739 758 761* 761 764 wait_signal 005113 constant char(3) initial unaligned dcl 5-39 ref 476 width 2 000122 automatic fixed bin(31,0) level 2 dcl 45 set ref 442 506 719 758 761 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 13-6 BEL internal static char(1) initial unaligned dcl 13-6 BREAK internal static bit(1) initial unaligned dcl 24 BRS internal static char(1) initial unaligned dcl 13-6 BSP internal static char(1) initial unaligned dcl 13-6 CAN internal static char(1) initial unaligned dcl 13-6 CR internal static char(1) initial unaligned dcl 13-6 DC2 internal static char(1) initial unaligned dcl 13-6 DC3 internal static char(1) initial unaligned dcl 13-6 DC4 internal static char(1) initial unaligned dcl 13-6 DEL internal static char(1) initial unaligned dcl 13-6 DEVIT internal static char(1) initial unaligned dcl 13-6 DLE internal static char(1) initial unaligned dcl 13-6 EM internal static char(1) initial unaligned dcl 13-6 EM_ internal static char(1) initial unaligned dcl 13-6 EMdash internal static char(1) initial unaligned dcl 13-6 EN internal static char(1) initial unaligned dcl 13-6 ENQ internal static char(1) initial unaligned dcl 13-6 EN_ internal static char(1) initial unaligned dcl 13-6 ENd internal static char(1) initial unaligned dcl 13-6 EOT internal static char(1) initial unaligned dcl 13-6 ESC internal static char(1) initial unaligned dcl 13-6 ETB internal static char(1) initial unaligned dcl 13-6 ETX internal static char(1) initial unaligned dcl 13-6 FF internal static char(1) initial unaligned dcl 13-6 FS internal static char(1) initial unaligned dcl 13-6 GS internal static char(1) initial unaligned dcl 13-6 HAIR internal static char(1) initial unaligned dcl 13-6 HLF internal static char(1) initial unaligned dcl 13-6 HLR internal static char(1) initial unaligned dcl 13-6 HT internal static char(1) initial unaligned dcl 13-6 HUGE internal static char(1) initial unaligned dcl 13-6 LF internal static char(1) initial unaligned dcl 13-6 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 3-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 19-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 19-18 MEDIUM internal static char(1) initial unaligned dcl 13-6 NAK internal static char(1) initial unaligned dcl 13-6 NL internal static char(1) initial unaligned dcl 13-6 NUL internal static char(1) initial unaligned dcl 13-6 PAD internal static char(1) initial unaligned dcl 13-6 PI internal static char(1) initial unaligned dcl 13-6 PS internal static char(1) initial unaligned dcl 13-6 RRS internal static char(1) initial unaligned dcl 13-6 RS internal static char(1) initial unaligned dcl 13-6 SI internal static char(1) initial unaligned dcl 13-6 SO internal static char(1) initial unaligned dcl 13-6 SOH internal static char(1) initial unaligned dcl 13-6 STROKE internal static char(1) initial unaligned dcl 13-6 STX internal static char(1) initial unaligned dcl 13-6 SUB internal static char(1) initial unaligned dcl 13-6 SYN internal static char(1) initial unaligned dcl 13-6 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 3-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 3-47 THICK internal static char(1) initial unaligned dcl 13-6 THIN internal static char(1) initial unaligned dcl 13-6 US internal static char(1) initial unaligned dcl 13-6 VT internal static char(1) initial unaligned dcl 13-6 approx internal static char(1) initial unaligned dcl 13-6 be_ctl_index internal static fixed bin(17,0) initial dcl 2-9 before builtin function dcl 57 bel_ctl_index internal static fixed bin(17,0) initial dcl 2-9 bullet internal static char(1) initial unaligned dcl 13-6 col_space automatic fixed bin(31,0) dcl 32 column_break internal static fixed bin(17,0) initial dcl 1-9 comp_ 000000 constant entry external dcl 8-7 comp_art_ 000000 constant entry external dcl 8-8 comp_break_ctls_ 000000 constant entry external dcl 8-12 comp_dvid based structure level 1 dcl 6-17 comp_dvid_version internal static fixed bin(17,0) initial dcl 6-14 comp_eject_page_ 000000 constant entry external dcl 8-15 comp_expr_eval_ 000000 constant entry external dcl 8-17 comp_extr_str_ 000000 constant entry external dcl 8-21 comp_font_ 000000 constant entry external dcl 8-25 comp_get_file_$find 000000 constant entry external dcl 8-28 comp_get_file_$open 000000 constant entry external dcl 8-31 comp_hft_ctls_ 000000 constant entry external dcl 8-35 comp_init_$one 000000 constant entry external dcl 8-38 comp_init_$three 000000 constant entry external dcl 8-40 comp_init_$two 000000 constant entry external dcl 8-39 comp_insert_ctls_ 000000 constant entry external dcl 8-42 comp_make_page_ 000000 constant entry external dcl 8-44 comp_make_page_$cleanup 000000 constant entry external dcl 8-46 comp_read_$name 000000 constant entry external dcl 8-50 comp_read_$number 000000 constant entry external dcl 8-53 comp_report_$exact 000000 constant entry external dcl 8-64 comp_update_symbol_ 000000 constant entry external dcl 8-71 comp_use_ref_ 000000 constant entry external dcl 8-74 comp_util_$display 000000 constant entry external dcl 8-77 comp_util_$escape 000000 constant entry external dcl 8-80 comp_util_$num_display 000000 constant entry external dcl 8-84 comp_util_$pageno 000000 constant entry external dcl 8-86 comp_util_$pop 000000 constant entry external dcl 8-91 comp_util_$push 000000 constant entry external dcl 8-92 comp_util_$relblk 000000 constant entry external dcl 8-94 comp_util_$replace_text 000000 constant entry external dcl 8-96 comp_util_$search_tree 000000 constant entry external dcl 8-98 comp_util_$set_bin 000000 constant entry external dcl 8-100 comp_util_$set_net_page 000000 constant entry external dcl 8-104 comp_util_$translate 000000 constant entry external dcl 8-106 comp_write_block_ 000000 constant entry external dcl 8-108 comp_write_page_ 000000 constant entry external dcl 8-110 compose_severity_ external static fixed bin(35,0) dcl 8-5 const_version internal static fixed bin(35,0) initial dcl 19-17 cright internal static char(1) initial unaligned dcl 13-6 dagger internal static char(1) initial unaligned dcl 13-6 dbldag internal static char(1) initial unaligned dcl 13-6 dcctl based structure level 1 packed unaligned dcl 5-34 dcfs based structure level 1 packed unaligned dcl 5-80 dcfs_len internal static fixed bin(17,0) initial dcl 5-88 dclit based structure level 1 packed unaligned dcl 5-45 dclong1_len internal static fixed bin(17,0) initial dcl 5-62 dclong_len internal static fixed bin(17,0) initial dcl 5-62 dcshort1_len internal static fixed bin(17,0) initial dcl 5-75 dcshort_len internal static fixed bin(17,0) initial dcl 5-75 dcshort_val based structure level 1 packed unaligned dcl 5-67 dcxx based structure level 1 packed unaligned dcl 5-11 delmark internal static char(1) initial unaligned dcl 13-6 delta internal static char(1) initial unaligned dcl 13-6 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 17-126 filedata_version_2 internal static fixed bin(17,0) initial dcl 15-14 filedata_version_3 internal static fixed bin(17,0) initial dcl 15-16 filedata_version_4 internal static fixed bin(17,0) initial dcl 15-18 fileheader based structure level 1 dcl 15-22 flag_value based bit(1) unaligned dcl 17-132 fntstk_eptr automatic pointer dcl 9-5 footer_break internal static fixed bin(17,0) initial dcl 1-9 footnote_break internal static fixed bin(17,0) initial dcl 1-9 footnote_parms based structure level 1 dcl 10-12 ftnhdr based structure level 1 dcl 10-10 hfcblk_ptr automatic pointer dcl 3-249 ifi_ctl_index internal static fixed bin(17,0) initial dcl 2-9 ift_ctl_index internal static fixed bin(17,0) initial dcl 2-9 infin internal static char(1) initial unaligned dcl 13-6 init_file_data internal static structure level 1 unaligned dcl 12-64 init_page_parms based structure level 1 dcl 16-108 insert_refs based structure level 1 dcl 12-21 ioa_$nnl 000000 constant entry external dcl 19-70 iox_$error_output external static pointer dcl 19-74 iox_$user_input external static pointer dcl 19-74 iox_$user_output external static pointer dcl 19-74 l_cleanup automatic fixed bin(17,0) dcl 15-43 l_comment automatic fixed bin(17,0) dcl 15-42 line_area based structure level 1 dcl 3-26 lquote internal static char(1) initial unaligned dcl 13-6 lslnt internal static char(1) initial unaligned dcl 13-6 max builtin function dcl 57 max_cols internal static fixed bin(17,0) initial dcl 16-7 max_image_lines internal static fixed bin(17,0) initial dcl 16-5 max_text_lines internal static fixed bin(17,0) initial dcl 17-128 min builtin function dcl 57 mode_string internal static char(16) initial unaligned dcl 17-129 modmark internal static char(1) initial unaligned dcl 13-6 multiply internal static char(1) initial unaligned dcl 13-6 nabla internal static char(1) initial unaligned dcl 13-6 not_eq internal static char(1) initial unaligned dcl 13-6 num_value based fixed bin(31,0) dcl 17-133 oct031 internal static char(1) initial unaligned dcl 13-6 option_version internal static fixed bin(35,0) initial dcl 14-3 overbar internal static char(1) initial unaligned dcl 13-6 page_image_version internal static fixed bin(35,0) initial dcl 16-53 page_version internal static fixed bin(17,0) initial dcl 16-9 perpen internal static char(1) initial unaligned dcl 13-6 pi internal static char(1) initial unaligned dcl 13-6 pl_mi internal static char(1) initial unaligned dcl 13-6 prll internal static char(1) initial unaligned dcl 13-6 prvtblcol based structure level 1 dcl 18-44 quadc internal static bit(6) initial unaligned dcl 3-148 quadi internal static bit(6) initial unaligned dcl 3-148 quado internal static bit(6) initial unaligned dcl 3-148 quadr internal static bit(6) initial unaligned dcl 3-148 refname_str based char unaligned dcl 12-27 refstr_len automatic fixed bin(17,0) dcl 12-29 refstr_ptr automatic pointer dcl 12-30 rquote internal static char(1) initial unaligned dcl 13-6 rtrim builtin function dcl 57 save_shared based structure level 1 dcl 17-124 shared_version internal static fixed bin(35,0) initial dcl 17-5 slash internal static char(1) initial unaligned dcl 13-6 square internal static char(1) initial unaligned dcl 13-6 string_area based fixed bin(17,0) array dcl 3-43 sup0 internal static char(1) initial unaligned dcl 13-6 sup1 internal static char(1) initial unaligned dcl 13-6 sup2 internal static char(1) initial unaligned dcl 13-6 sup3 internal static char(1) initial unaligned dcl 13-6 sup4 internal static char(1) initial unaligned dcl 13-6 sup5 internal static char(1) initial unaligned dcl 13-6 sup6 internal static char(1) initial unaligned dcl 13-6 sup7 internal static char(1) initial unaligned dcl 13-6 sup8 internal static char(1) initial unaligned dcl 13-6 sup9 internal static char(1) initial unaligned dcl 13-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 19-80 tblfmtndx automatic fixed bin(17,0) dcl 18-12 tblkdata based structure level 1 dcl 3-5 text_area based structure level 1 dcl 3-36 text_parms based structure level 1 dcl 3-206 tfore internal static char(1) initial unaligned dcl 13-6 theta internal static char(1) initial unaligned dcl 13-6 tmark internal static char(1) initial unaligned dcl 13-6 txtlin based structure level 1 dcl 3-161 txtlinptr automatic pointer dcl 3-160 txtstr based varying char(1020) dcl 3-45 txtstrptr automatic pointer dcl 3-44 type_font internal static char(1) initial unaligned dcl 5-90 type_lit internal static char(1) initial unaligned dcl 5-90 type_slxly internal static char(1) initial unaligned dcl 5-90 type_sly internal static char(1) initial unaligned dcl 5-90 type_sx internal static char(1) initial unaligned dcl 5-90 type_sxy internal static char(1) initial unaligned dcl 5-90 type_sy internal static char(1) initial unaligned dcl 5-90 type_unstart internal static char(1) initial unaligned dcl 5-90 type_unstop internal static char(1) initial unaligned dcl 5-90 type_v0lx internal static char(1) initial unaligned dcl 5-90 type_v0lxly internal static char(1) initial unaligned dcl 5-90 type_v0ly internal static char(1) initial unaligned dcl 5-90 type_v0x internal static char(1) initial unaligned dcl 5-90 type_v0xy internal static char(1) initial unaligned dcl 5-90 type_v0y internal static char(1) initial unaligned dcl 5-90 type_vlx internal static char(1) initial unaligned dcl 5-90 type_vlxly internal static char(1) initial unaligned dcl 5-90 type_vly internal static char(1) initial unaligned dcl 5-90 type_vx internal static char(1) initial unaligned dcl 5-90 type_vxy internal static char(1) initial unaligned dcl 5-90 type_vy internal static char(1) initial unaligned dcl 5-90 type_wait internal static char(1) initial unaligned dcl 5-90 unstart_signal internal static char(3) initial unaligned dcl 5-39 unstop_signal internal static char(3) initial unaligned dcl 5-39 vbot internal static bit(4) initial unaligned dcl 18-48 vcen internal static bit(4) initial unaligned dcl 18-47 vjust internal static bit(4) initial unaligned dcl 18-49 vrule internal static char(1) initial unaligned dcl 13-6 vtop internal static bit(4) initial unaligned dcl 18-46 NAMES DECLARED BY EXPLICIT CONTEXT. comp_ 000153 constant entry external dcl 17 do_htabs 004201 constant entry internal dcl 698 ref 381 end_input_ 003160 constant label dcl 548 ref 86 95 end_output_ 003231 constant label dcl 560 ref 84 89 525 null_line 000664 constant label dcl 163 ref 272 364 385 plain 002535 constant label dcl 456 ref 397 450 read 000315 constant label dcl 86 ref 187 229 546 return_ 004133 constant label dcl 692 ref 377 486 557 tbl_ 001161 constant label dcl 211 ref 288 text_ 001725 constant label dcl 325 ref 274 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 72 226 226 336 336 408 408 438 438 438 438 438 438 438 438 503 503 503 503 503 503 503 503 516 516 570 570 593 593 672 679 679 684 684 715 715 715 715 715 715 715 715 755 755 755 755 755 755 755 755 unspec builtin function set ref 437 502* 714* 754* verify builtin function ref 191 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5370 5450 5121 5400 Length 6310 5121 60 623 246 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_ 984 external procedure is an external procedure. on unit on line 84 64 on unit do_htabs internal procedure shares stack frame of external procedure comp_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_ 000100 ascii_width comp_ 000101 blank_count comp_ 000102 break_type comp_ 000104 char_index_ptr comp_ 000106 endinput comp_ 000107 ercd comp_ 000110 fill_count comp_ 000111 head_used comp_ 000112 htab_space comp_ 000115 i comp_ 000116 j comp_ 000117 ii comp_ 000120 jj comp_ 000121 k comp_ 000122 meas1 comp_ 000210 meas2 comp_ 000276 strndx comp_ 000277 text_added comp_ 000300 text_flag comp_ 000301 txtwidth comp_ 000316 line_area_ptr comp_ 000320 text_area_ptr comp_ 000322 DCxx_p comp_ 000324 call_box_ptr comp_ 000326 fileheader_ptr comp_ 000330 record_ptr comp_ 000332 page_record_ptr comp_ 000334 tblfmtptr comp_ 000336 tblcolndx comp_ 000340 tblcolptr comp_ 000342 prvtblcolptr comp_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs cat_realloc_cs call_var call_ext_out_desc call_ext_out return tra_ext mod_fx1 signal enable shorten_stack ext_entry int_entry repeat set_cs_eis index_cs_eis search_eis any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_block_ctls_ comp_break_ comp_ctls_ comp_fill_ comp_format_ctls_ comp_head_page_ comp_hft_ctls_$title comp_measure_ comp_read_$line comp_report_ comp_report_$ctlstr comp_space_ comp_tbl_ctls_ comp_title_block_ comp_util_$add_text comp_util_$getblk comp_util_$pictures ioa_ iox_$put_chars THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000152 23 000160 52 000161 3 25 000162 3 35 000164 15 21 000165 15 45 000166 15 62 000167 18 24 000170 18 43 000171 65 000172 69 000233 70 000235 71 000237 72 000241 73 000243 75 000253 77 000257 78 000260 80 000264 82 000267 83 000274 84 000276 86 000315 89 000324 92 000327 93 000356 95 000370 98 000374 101 000377 103 000404 107 000412 108 000414 110 000417 113 000432 114 000433 115 000436 116 000440 119 000464 123 000465 126 000467 127 000477 129 000516 131 000522 132 000524 133 000530 134 000531 136 000533 138 000542 141 000620 142 000624 144 000626 147 000627 150 000636 151 000643 152 000645 153 000650 155 000655 158 000657 160 000661 163 000664 167 000674 170 000700 172 000705 176 000712 180 000727 182 000761 184 001003 187 001020 191 001021 193 001043 196 001045 204 001137 211 001161 217 001172 220 001205 222 001206 226 001231 229 001276 232 001277 239 001322 241 001324 243 001345 245 001346 248 001352 251 001363 253 001372 255 001374 256 001377 257 001402 261 001422 264 001432 268 001454 272 001467 274 001500 277 001501 280 001505 286 001530 288 001537 295 001575 299 001611 300 001614 303 001615 307 001640 308 001643 309 001645 311 001654 314 001663 315 001667 318 001705 319 001715 320 001723 325 001725 329 001730 333 001740 336 001760 340 002014 345 002042 347 002044 351 002064 352 002074 355 002100 357 002102 360 002110 361 002113 364 002115 367 002124 372 002142 373 002153 377 002206 381 002215 385 002233 389 002245 392 002252 394 002257 397 002264 400 002277 403 002312 404 002326 408 002334 415 002361 416 002372 419 002375 420 002402 426 002410 429 002411 432 002416 434 002426 437 002427 438 002432 442 002510 444 002521 447 002525 448 002530 450 002534 456 002535 458 002545 461 002550 462 002555 466 002563 471 002610 475 002624 476 002625 481 002634 485 002651 486 002655 488 002664 493 002665 496 002677 499 002703 502 002706 503 002711 506 002755 508 002770 511 002772 512 003003 513 003011 514 003013 516 003015 519 003055 521 003063 525 003114 528 003123 531 003127 534 003131 535 003133 537 003142 539 003145 540 003147 546 003157 548 003160 553 003214 556 003222 557 003230 560 003231 564 003243 567 003276 570 003304 574 003345 577 003352 578 003354 581 003363 584 003370 588 003374 590 003405 593 003415 595 003456 598 003457 599 003461 603 003467 606 003476 607 003504 610 003512 613 003522 616 003525 617 003530 618 003535 619 003543 621 003544 626 003557 627 003563 629 003566 632 003572 634 003574 637 003602 638 003605 641 003607 646 003620 649 003627 651 003656 654 003670 657 003704 661 003723 662 003725 663 003733 666 003743 669 003771 672 004011 673 004015 674 004016 676 004032 679 004035 681 004061 684 004063 686 004127 687 004132 692 004133 816 004200 698 004201 700 004202 702 004212 704 004215 707 004222 708 004245 711 004246 714 004250 715 004253 719 004334 720 004340 721 004344 722 004345 724 004347 725 004370 727 004377 730 004423 732 004425 736 004441 739 004454 742 004460 746 004475 749 004540 750 004543 754 004544 755 004547 758 004624 761 004635 764 004645 767 004651 770 004722 772 004725 776 005015 779 005026 781 005027 782 005031 783 005043 785 005044 789 005075 791 005077 793 005102 794 005103 ----------------------------------------------------------- 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