COMPILATION LISTING OF SEGMENT comp_tbl_ctls_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1008.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 table controls */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_tbl_ctls_: 15 proc (ctl_index); 16 17 /* PARAMETERS */ 18 19 dcl ctl_index fixed bin; /* control selector */ 20 21 /* LOCAL STORAGE */ 22 23 dcl blkptr ptr; /* for local reference */ 24 dcl blktype char (2) init (""); 25 /* for debugging */ 26 dcl 1 block aligned like text based (blkptr); 27 /* for local reference */ 28 dcl ctl_info_ptr ptr; 29 dcl exit_str char (256) var; /* exit info for debug */ 30 /* table column spec field */ 31 dcl field char (1020) var; 32 dcl fnxt fixed bin (21); /* for tabcol spec parsing */ 33 dcl hscales (7) fixed bin (31) static options (constant) 34 init (7200, 6000, 72000, 2834.65, 12000, 1000, 0); 35 dcl (i, j, k) fixed bin; /* working index */ 36 /* empty table format entry */ 37 dcl 1 init_tblfmt aligned static options (constant), 38 /* start in context mode */ 39 2 context bit (1) init ("1"b), 40 /* current column */ 41 2 icol fixed bin init (0), 42 /* current maximum page depth */ 43 2 maxdepth fixed bin (31) init (0), 44 /* number of columns in this format */ 45 2 ncols fixed bin init (0), 46 /* column pointers */ 47 2 colptr (0:20) ptr init ((21) null ()); 48 /* used in reordering table formats */ 49 dcl 1 move_tblfmt like tbldata.fmt; 50 dcl repct fixed bin; /* tab col spec repeat count */ 51 dcl space fixed bin (31); /* for vert table positioning */ 52 dcl tab_autoadj_gtr /* autoadjust table gutter */ 53 fixed bin; 54 dcl tab_autoadj_posn 55 fixed bin; /* autoadjust table position */ 56 dcl tab_autoadj_width 57 fixed bin; /* autoadjust table width */ 58 /* empty tblcol structure */ 59 dcl 1 init_tblcol aligned static options (constant), 60 2 align, /* column alignment mode */ 61 3 posn fixed bin (31) init (0), 62 3 str char (32) var init (""), 63 /* current table depth for column */ 64 2 depth fixed bin (31) init (0), 65 2 gutter fixed bin (31) init (0), 66 /* leadering string */ 67 2 leader char (16) var init (""), 68 2 margin, 69 3 left fixed bin (31) init (0), 70 3 right fixed bin (31) init (0), 71 /* vertical alignment flags */ 72 2 valign bit (4) unal init ("0000"b), 73 2 MBZ bit (29) unal init ((29)"0"b), 74 2 parms aligned like default_parms; 75 /* name of table format */ 76 dcl tblfmt_name char (32) init ((32)" "); 77 dcl 1 tblfont aligned like fntstk_entry; 78 /* for local reference */ 79 dcl tcol_gutter fixed bin (31); /* table column gutter */ 80 dcl tcol_posn fixed bin (31); /* table column position */ 81 dcl tcol_width fixed bin (31); /* table column width */ 82 dcl unscaled (1) fixed bin (31) static options (constant) init (1); 83 84 dcl (addr, bin, char, dec, divide, hbound, index, length, ltrim, max, min, 85 null, round, size, substr, verify) 86 builtin; 87 88 dcl ioa_$rsnnl entry options (variable); 89 90 if shared.bug_mode 91 then call ioa_ ("tbl_ctls: (^d) ""^a""", ctl_index, 92 comp_util_$display (ctl_line, 0, "0"b)); 93 94 ctl_info_ptr = addr (ctl.info); 95 exit_str = ""; 96 goto ctl_ (ctl_index); 97 98 ctl_ (144): /* ".tab" = table-definition */ 99 if shared.table_mode /* if in table mode */ 100 then 101 do; 102 call comp_report_ (2, 0, 103 "Redefinition of table formats not allowed" || " in table mode.", 104 ctl_info_ptr, ctl_line); 105 goto return_; 106 end; 107 108 if ctl.index > length (ctl_line) /* if nothing, cancel all formats */ 109 then 110 do; 111 if shared.tbldata_ptr ^= null () 112 then tbldata.ct, tbldata.ndx = 0; 113 goto return_; 114 end; 115 116 if shared.tbldata_ptr = null () /* allocate data structure */ 117 then 118 do; 119 shared.tbldata_ptr = allocate (const.local_area_ptr, size (tbldata)); 120 tbldata.ct, tbldata.ndx = 0; 121 tbldata.fmt (*).ptr = null (); 122 tbldata.fmt (*).name = ""; 123 end; 124 125 tblfmt_name = /* read the table name */ 126 comp_read_$name (ctl_line, ctl.index, ctl.index, ctl_info_ptr); 127 128 if tbldata.ct > 0 /* look for given name */ 129 then 130 do i = 1 to tbldata.ct while (tblfmt_name ^= tbldata.fmt (i).name); 131 end; 132 else i = 1; 133 134 if ctl.index > length (ctl_line) /* if format is to be cancelled */ 135 then 136 do; 137 if tbldata.ct = 0 /* aint none to cancel */ 138 then 139 do; 140 tab_err_1: 141 call comp_report_ (2, 0, "No defined table formats.", ctl_info_ptr, 142 ctl_line); 143 goto return_; 144 end; 145 146 if i > tbldata.ct /* if name not found */ 147 then 148 do; 149 tab_err_2: 150 call comp_report_ (2, 0, "Table format not defined.", ctl_info_ptr, 151 ctl_line); 152 goto return_; 153 end; 154 155 if tbldata.ct > 1 /* close up the table data array */ 156 then 157 do; /* move this format to the end */ 158 move_tblfmt = tbldata.fmt (i); 159 /* close ranks */ 160 do i = i to tbldata.ct - 1; 161 tbldata.fmt (i) = tbldata.fmt (i + 1); 162 end; 163 tbldata.fmt (i) = move_tblfmt; 164 end; 165 166 tbldata.ct = tbldata.ct - 1; /* reduce format count */ 167 goto return_; 168 end; 169 170 if i > hbound (tbldata.fmt, 1) /* if not there and the inn is full */ 171 then 172 do; 173 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 174 "Only ^d table formats allowed.", hbound (tbldata.fmt, 1)); 175 goto return_; 176 end; 177 178 if tbldata.fmt (i).ptr = null () /* need an entry? */ 179 then tbldata.fmt (i).ptr = allocate (const.local_area_ptr, size (tblfmt)); 180 /* record format name */ 181 tbldata.fmt (i).name = tblfmt_name; 182 tblfmtndx = i; /* point to the new format */ 183 tblfmtptr = tbldata.fmt (i).ptr; 184 tblfmt = init_tblfmt; /* clear the entry */ 185 186 do j = 0 to 20 /* record column data */ 187 while (ctl.index <= length (ctl_line)); 188 189 if tblfmt.colptr (j) = null () /* need the column? */ 190 then tblfmt.colptr (j) = allocate (const.local_area_ptr, size (tblcol)); 191 192 if j > 1 /* set previous column pointer */ 193 then prvtblcolptr = tblcolptr; 194 195 tblcolptr = tblfmt.colptr (j); /* point to the column */ 196 tblcol = init_tblcol; /* initialize structure */ 197 tblcol.parms = current_parms; 198 199 if j = 0 200 then tab_autoadj_posn, /* no auto adjust for col 0 */ 201 tab_autoadj_width, tab_autoadj_gtr = 0; 202 203 else /* for all the rest */ 204 do; 205 tblcol.parms = tblcol0.parms; /* preset parms */ 206 tblcol.parms.left.indent, /* except for indent */ 207 tblcol.parms.right.indent = 0; 208 tblcol.parms.measure, /* preset for auto adjust */ 209 tblcol.margin.left, tblcol.gutter = -1; 210 211 fnxt = /* is there a repeat group? */ 212 verify (substr (ctl_line, ctl.index), "0123456789") - 1; 213 214 if index (substr (ctl_line, ctl.index + fnxt), "[") = 1 215 then 216 do; 217 if search (substr (ctl_line, ctl.index), "]:") = 0 218 then 219 do; 220 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 221 "Unclosed repeat group starting at " || "column ^d", j); 222 goto return_; 223 end; 224 225 field = before (substr (ctl_line, ctl.index), "]:"); 226 /* and step over it */ 227 ctl.index = ctl.index + length (field) + 2; 228 field = ltrim (field); 229 230 if fnxt > 0 231 then repct = 232 comp_read_$number (field, unscaled, 1, 0, ctl_info_ptr, 233 0); 234 end; 235 236 else /* extract column spec */ 237 do; 238 field = before (substr (ctl_line, ctl.index), ":"); 239 /* and step over it */ 240 ctl.index = ctl.index + length (field) + 1; 241 field = ltrim (field); 242 end; /**/ 243 /* position value must be first */ 244 if length (field) = 0 /* nothing given? */ 245 | index (field, ",") = 1 246 then 247 do; 248 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 249 "No position value for table column ^d.", j); 250 goto tab_loop; 251 end; 252 253 if index (field, "*") = 1 /* auto adjust position */ 254 then 255 do; 256 tab_autoadj_posn = tab_autoadj_posn + 1; 257 tcol_posn = -1; 258 field = ltrim (after (field, "*")); 259 end; 260 261 else /* read position */ 262 do; 263 tcol_posn = 264 comp_read_$number (field, hscales, 1, fnxt, ctl_info_ptr, 0) 265 - shared.EN_width; 266 267 if tcol_posn < 0 /* position value NG */ 268 then 269 do; 270 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 271 "Invalid position value for table column ^d.", j); 272 goto tab_loop; 273 end; 274 else tblcol.margin.left = tcol_posn; 275 276 field = ltrim (substr (field, fnxt)); 277 end; 278 279 tblcol.valign = vtop; /* set defaults */ 280 tblcol.parms.fill_mode = "1"b; 281 tblcol.parms.quad = just; 282 tblcol.margin.left = tcol_posn; 283 /* the comma is required */ 284 if field ^= "" & index (field, ",") ^= 1 285 then 286 do; 287 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 288 "Missing comma for table column ^d", j); 289 goto tab_loop; 290 end; 291 292 field = ltrim (after (field, ",")); 293 /* auto adjust width */ 294 if field = "" | search (field, "*:g[nf") = 1 295 then 296 do; 297 if tab_autoadj_gtr > 0 298 then 299 do; 300 autoadj_err: 301 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 302 "Adjustable widths and gutters may " 303 || "not be given in the same table format " 304 || "definition."); 305 goto return_; 306 end; 307 308 tab_autoadj_width = tab_autoadj_width + 1; 309 if index (field, "*") = 1 310 then field = ltrim (after (field, "*")); 311 end; 312 313 else if field ^= "" /* read column measure */ 314 then 315 do; 316 tblcol.parms.measure = 317 comp_read_$number (field, hscales, 1, fnxt, ctl_info_ptr, 0) 318 ; 319 field = ltrim (substr (field, fnxt)); 320 /* bad measure value */ 321 if tblcol.parms.measure <= 0 322 then 323 do; 324 call comp_report_ (2, 0, 325 "Invalid width value for table column " 326 || ltrim (char (j)) || ".", ctl_info_ptr, ctl_line); 327 goto tab_loop; 328 end; 329 end; /**/ 330 /* is there a gutter? */ 331 if index (field, "g") = 1 332 then 333 do; 334 field = ltrim (substr (field, 2)); 335 /* auto adjust gutter */ 336 if index (field, "*") = 1 337 then 338 do; 339 if tab_autoadj_width > 0 340 then goto autoadj_err; 341 342 tab_autoadj_gtr = tab_autoadj_gtr + 1; 343 field = ltrim (after (field, "*")); 344 end; 345 346 else /* read column gutter */ 347 do; 348 tblcol.gutter = 349 comp_read_$number (field, hscales, 1, fnxt, 350 ctl_info_ptr, 0); 351 field = ltrim (substr (field, fnxt)); 352 /* bad gutter value */ 353 if tblcol.gutter <= 0 354 then 355 do; 356 call comp_report_ (2, 0, 357 "Invalid gutter value for table column " 358 || ltrim (char (j)) || ".", ctl_info_ptr, ctl_line); 359 goto tab_loop; 360 end; 361 end; /**/ 362 end; /**/ 363 /* is there an alignment string? */ 364 if index (field, "[") = 1 365 then 366 do; 367 if index (field, "]") = 0 368 then 369 do; 370 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 371 "No alignment string closing delimiter for table column ^d.", 372 j); 373 goto tab_loop; 374 end; 375 376 tblcol.parms.fill_mode = "0"b; 377 tblcol.parms.quad = quadl; 378 tblcol.align.str = before (after (field, "["), "]"); 379 if tblcol.align.str ^= "" 380 then tblcol.align.posn = tcol_posn; 381 field = ltrim (after (field, "]")); 382 383 if field ^= "" 384 then 385 do; 386 if search (field, "lcr") = 1 387 then 388 do; 389 tblcol.parms.quad = "000000"b; 390 k = index ("lcr", substr (field, 1, 1)); 391 substr (tblcol.parms.quad, k + 2, 1) = "1"b; 392 field = ltrim (substr (field, 2)); 393 end; 394 395 else 396 do; 397 call comp_report_ (2, 0, 398 "Invalid align mode character for table column " 399 || ltrim (char (j)) || ".", ctl_info_ptr, ctl_line); 400 goto tab_loop; 401 end; 402 end; /**/ 403 /* extract valign, if any */ 404 if search (field, "tcbj") = 1 405 then 406 do; 407 if substr (field, 1, 1) = "t" 408 then tblcol.valign = vtop; 409 else if substr (field, 1, 1) = "c" 410 then tblcol.valign = vcen; 411 else if substr (field, 1, 1) = "b" 412 then tblcol.valign = vbot; 413 else if substr (field, 1, 1) = "j" 414 then tblcol.valign = vjust; 415 416 field = ltrim (substr (field, 2)); 417 end; 418 end; 419 420 else 421 do; 422 if field ^= "" 423 then 424 do; /* if nofill */ 425 if index (field, "n") = 1 426 then 427 do; /* reset flag and change alignment */ 428 tblcol.parms.fill_mode = "0"b; 429 tblcol.parms.quad = quadl; 430 end; 431 432 else if index (field, "f") ^= 1 433 then 434 do; 435 call comp_report_ (2, 0, 436 "Invalid fill mode character " 437 || "for table column " || ltrim (char (j)) || ".", 438 ctl_info_ptr, ctl_line); 439 goto tab_loop; 440 end; /**/ 441 /* step over fill mode char */ 442 field = ltrim (substr (field, 2)); 443 end; 444 445 if field ^= "" 446 then 447 do; 448 if search (field, "iolcrb") = 1 449 then 450 do; 451 k = index ("iolcrb", substr (field, 1, 1)); 452 tblcol.parms.quad = "000000"b; 453 substr (tblcol.parms.quad, k, 1) = "1"b; 454 field = ltrim (substr (field, 2)); 455 end; 456 457 else 458 do; 459 call comp_report_ (2, 0, 460 "Invalid align mode character for table column " 461 || ltrim (char (j)) || ".", ctl_info_ptr, ctl_line); 462 goto tab_loop; 463 end; 464 end; 465 end; /**/ 466 /* extract valign, if any */ 467 if search (field, "tcbj") = 1 468 then 469 do; 470 if substr (field, 1, 1) = "t" 471 then tblcol.valign = vtop; 472 else if substr (field, 1, 1) = "c" 473 then tblcol.valign = vcen; 474 else if substr (field, 1, 1) = "b" 475 then tblcol.valign = vbot; 476 else if substr (field, 1, 1) = "j" 477 then tblcol.valign = vjust; 478 479 field = ltrim (substr (field, 2)); 480 end; /**/ 481 /* extract leader, if any */ 482 if index (field, """") = 1 483 then 484 do; 485 tblcol.leader = 486 comp_extr_str_ ("1"b, field, 1, fnxt, 0, ctl_info_ptr); 487 field = ltrim (substr (field, fnxt)); 488 end; 489 490 else tblcol.leader = field; 491 end; /**/ 492 /* calculate right margin value */ 493 tblcol.margin.right = tblcol.margin.left + tblcol.parms.measure; 494 tab_loop: 495 if shared.bug_mode & j = 0 496 then 497 do; 498 tblfont = tblcol.parms.fntstk.entry (tblcol.parms.fntstk.index); 499 call ioa_ ("^5x(tbl=0/^d mrg^f/^f/^f ^[F ^]" 500 || "^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]" 501 || "^[^4s^; ^[T^]^[C^]^[B^]^[J^]^]" || " fnt=^a ^f)", i, 502 show (tblcol.margin.left, 12000), 503 show (tblcol.margin.right, 12000), 504 show (tblcol.parms.measure, 12000), tblcol.parms.fill_mode, 505 (tblcol.parms.quad = quadi), (tblcol.parms.quad = quado), 506 (tblcol.parms.quad = quadl), (tblcol.parms.quad = quadc), 507 (tblcol.parms.quad = quadr), (tblcol.parms.quad = just), 508 (j = 0), (tblcol.valign = vtop), (tblcol.valign = vcen), 509 (tblcol.valign = vbot), (tblcol.valign = vjust), tblfont.name, 510 show (tblfont.size, 1000)); 511 end; 512 end; 513 514 if j > hbound (tblfmt.colptr, 1) 515 then 516 do; 517 call comp_report_$ctlstr (2, 0, ctl_info_ptr, ctl_line, 518 "More than ^d columns specified, all extra ignored.", 519 hbound (tblfmt.colptr, 1)); 520 goto return_; 521 end; 522 523 tblfmt.ncols = j - 1; /* record number of columns */ 524 525 if tab_autoadj_gtr > 0 526 then 527 do; 528 tcol_gutter = 0; 529 end; 530 531 if tab_autoadj_width > 0 532 then 533 do; 534 tcol_width = 0; /* extra space accumulator */ 535 do j = 1 to tblfmt.ncols; 536 tblcolptr = tblfmt.colptr (j); 537 538 if tblcol.gutter < 0 /* if still <0 after autoadj_gtrs */ 539 then if j < tblfmt.ncols 540 then tblcol.gutter = 7200; 541 else tblcol.gutter = 0; /* if width is adjustable and */ 542 /* surrounding positions are given */ 543 if tblcol.parms.measure < 0 & j < tblfmt.ncols 544 then if tblcol.margin.left > 0 545 & tblfmt.colptr (j + 1) -> tblcol.margin.left > 0 546 then 547 do; 548 tblcol.parms.measure = 549 tblfmt.colptr (j + 1) -> tblcol.margin.left 550 - tblcol.margin.left - tblcol.gutter - 7200; 551 tab_autoadj_width = tab_autoadj_width - 1; 552 end; /**/ 553 /* is width of last col adjustable? */ 554 if tblcol.parms.measure < 0 & j = tblfmt.ncols 555 then if tblcol.margin.left > 0 556 then 557 do; 558 tblcol.parms.measure = 559 current_parms.measure - tblcol.margin.left; 560 tab_autoadj_width = tab_autoadj_width - 1; 561 end; 562 563 tcol_width = /* accumulate space used */ 564 tcol_width + max (tblcol.parms.measure, 0) + tblcol.gutter; 565 end; 566 567 if tab_autoadj_width > 0 /* any left? */ 568 then 569 do; 570 tcol_width = 571 divide (current_parms.measure - tcol_width 572 - max (tblfmt.colptr (1) -> tblcol.margin.left, 0), 573 tab_autoadj_width, 31, 10); 574 575 do j = 1 to tblfmt.ncols; 576 tblcolptr = tblfmt.colptr (j); 577 if tblcol.parms.measure < 0 578 then tblcol.parms.measure = tcol_width; 579 end; 580 end; 581 end; 582 583 if tab_autoadj_posn > 0 584 then 585 do; 586 tcol_posn = 0; 587 588 do j = 1 to tblfmt.ncols; 589 tblcolptr = tblfmt.colptr (j); 590 591 if tblcol.margin.left < 0 592 then tblcol.margin.left = tcol_posn; 593 594 tcol_posn = 595 tblcol.margin.left + tblcol.parms.measure + tblcol.gutter; 596 end; 597 end; 598 599 do j = 1 to tblfmt.ncols; 600 tblcolptr = tblfmt.colptr (j); 601 tblfont = tblcol.parms.fntstk.entry (tblcol.parms.fntstk.index); 602 tblcol.margin.right = tblcol.margin.left + tblcol.parms.measure; 603 604 if shared.bug_mode 605 then call ioa_ ("^5x(tbl=^d/^d mrg^f/^f/^f gtr^f ^[F^]" 606 || "^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]" 607 || "^[^4s^; ^[T^]^[C^]^[B^]^[J^]^]" 608 || "^[ aln=""^a""(^f)^;^2s^]^[ ldr=""^a""^;^s^] " 609 || "fnt=^a ^f)", j, i, show (tblcol.margin.left, 12000), 610 show (tblcol.margin.right, 12000), 611 show (tblcol.parms.measure, 12000), 612 show (tblcol.gutter, 12000), tblcol.parms.fill_mode, 613 (tblcol.parms.quad = quadi), (tblcol.parms.quad = quado), 614 (tblcol.parms.quad = quadl), (tblcol.parms.quad = quadc), 615 (tblcol.parms.quad = quadr), (tblcol.parms.quad = just), 616 (j = 0), (tblcol.valign = vtop), (tblcol.valign = vcen), 617 (tblcol.valign = vbot), (tblcol.valign = vjust), 618 (tblcol.align.str ^= ""), tblcol.align.str, 619 show (tblcol.align.posn, 12000), (tblcol.leader ^= ""), 620 comp_util_$display (tblcol.leader, 0, "0"b), tblfont.name, 621 show (tblfont.size, 1000)); 622 end; 623 624 if i > tbldata.ct /* if this is a new format */ 625 then tbldata.ct = i; 626 goto return_; 627 628 ctl_ (145): /* ".tac" = table column INDEX */ 629 if ^shared.table_mode /* if not in table mode */ 630 then 631 do; 632 call comp_report_ (2, 0, "Not in table mode.", ctl_info_ptr, ctl_line); 633 goto return_; 634 end; 635 636 tblfmtndx = tbldata.ndx; /* record current format data */ 637 tblfmtptr = tbldata.fmt (tblfmtndx).ptr; 638 tblcolptr = tblfmt.colptr (tblfmt.ccol); 639 640 if ctl.index = 2 /* called from comp_? */ 641 then 642 do; /* next char is col # */ 643 i = bin (substr (ctl_line, 2, 1)); 644 if i = 0 /* .0 means column 10 */ 645 then i = 10; 646 end; /**/ 647 /* fetch column number */ 648 else if ctl.index <= length (ctl_line) 649 then i = comp_read_$number (ctl_line, unscaled, ctl.index, ctl.index, 650 ctl_info_ptr, 0); 651 else i = -1; /* if not given, context mode */ 652 653 if i > tblfmt.ncols /* is column undefined? */ 654 then 655 do; 656 call comp_report_ (2, 0, "Column undefined for this format.", 657 ctl_info_ptr, ctl_line); 658 goto return_; 659 end; 660 661 if shared.blkptr ^= null 662 then 663 do; /* title pending? */ 664 if text.parms.hdrptr ^= null & ^shared.inserting_hfc 665 then if text.parms.hdrptr -> hfcblk.hdr.count > 0 666 then call comp_title_block_ (text.parms.hdrptr); 667 668 if text.input_line ^= "" /* clean up */ 669 then call comp_break_ (format_break, 0); 670 tblcol.parms = text.parms; /* save parms for next time */ 671 end; 672 673 else tblcol.parms = current_parms; /* save parms for next time */ 674 675 if i <= 0 /* if tblcol0, go to context mode */ 676 then 677 do; 678 if shared.blkptr ^= null 679 then if text.hdr.count > 0 680 then 681 do i = 1 to tblfmt.ncols;/* do vertical alignment */ 682 tblfmt.ccol = i; 683 tblcolptr = tblfmt.colptr (tblfmt.ccol); 684 /* not top aligned? */ 685 if tblcol.valign ^= vtop 686 then 687 do; /**/ 688 /* centered? */ 689 if tblcol.valign = vcen 690 then space = comp_dvt.min_lead 691 * 692 round ( 693 divide (tblfmt.maxdepth - tblcol.depth, 694 2 * comp_dvt.min_lead, 31, 1), 0); 695 /* bottom aligned */ 696 else if tblcol.valign = vbot 697 then space = tblfmt.maxdepth - tblcol.depth; 698 /* adjust depth of lines */ 699 do line_area_ptr = text.line_area.first 700 repeat (line_area.next) 701 while (line_area_ptr ^= null); 702 do j = 1 to line_area.ndx; 703 txtlinptr = line_area.linptr (j); 704 if txtlin.tblcol = tblfmt.ccol 705 then txtlin.depth = txtlin.depth + space; 706 end; 707 end; 708 end; 709 end; 710 711 tblfmt.ccol = 0; /* go to column 0 */ 712 tblcolptr = tblfmt.colptr (tblfmt.ccol); 713 current_parms = tblcol.parms; 714 715 if shared.blkptr ^= null /* active block? */ 716 then 717 do; 718 current_parms.cbar = text.parms.cbar; 719 text.parms = current_parms; 720 721 text.input.lmarg = col0.margin.left; 722 text.input.rmarg = col0.margin.right; 723 text.input.net = text.input.rmarg - text.input.lmarg; 724 /* finish the table entry */ 725 if ^(text.parms.art | text.parms.keep | text.blktype = "pi") 726 then call comp_break_ (block_break, 0); 727 end; 728 729 tblfmt.context = "1"b; /* set context mode */ 730 731 do i = 0 to tblfmt.ncols; /* set table depths */ 732 tblfmt.colptr (i) -> tblcol.depth = tblfmt.maxdepth; 733 end; 734 end; 735 736 else /* changing to a given column */ 737 do; /**/ 738 /* if leaving column 0 */ 739 if tblfmt.ccol = 0 /* advance all column depths */ 740 then 741 do j = 1 to tblfmt.ncols; 742 tblfmt.colptr (j) -> tblcol.depth = 743 max (tblfmt.colptr (j) -> tblcol.depth, tblcol.depth); 744 end; 745 746 tblfmt.ccol = i; /* set new column number */ 747 tblcolptr = tblfmt.colptr (i); 748 tblfmt.context = "0"b; /* reset context mode */ 749 current_parms = tblcol.parms; 750 751 if shared.blkptr ^= null /* active parms */ 752 then 753 do; 754 current_parms.cbar = text.parms.cbar; 755 text.parms = current_parms; 756 text.input.lmarg = tblcol.margin.left; 757 text.input.rmarg = tblcol.margin.right; 758 text.input.net = text.input.rmarg - text.input.lmarg; 759 text.input.font, text.input.cur.font = 760 text.parms.fntstk.entry (text.parms.fntstk.index); 761 end; 762 end; 763 764 ctl.lmarg = tblcol.margin.left; 765 ctl.rmarg = tblcol.margin.right; 766 ctl.font, ctl.cur.font = 767 current_parms.fntstk.entry (current_parms.fntstk.index); 768 769 if shared.bug_mode & shared.table_mode 770 then 771 do; 772 tblfont = tblcol.parms.fntstk.entry (tblcol.parms.fntstk.index); 773 774 if shared.blkptr ^= null 775 then 776 do; 777 j = text.blkndx; 778 blktype = text.blktype; 779 end; 780 781 call ioa_$rsnnl ("tbl=^d/^d d^f/^f mrg=^f/^f/^f ^[F^; ^]" 782 || "^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]^[^4s^; ^[T^]^[C^]^[B^]^[J^]^]" 783 || "^[ aln=""^a""(^f)^;^2s^] fnt=^a ^f", exit_str, 0, tblfmt.ccol, 784 tblfmtndx, show (tblcol.depth, 12000), 785 show (tblfmt.maxdepth, 12000), 786 show (tblcol.margin.left + tblcol.parms.left.indent, 12000), 787 show (tblcol.margin.right - tblcol.parms.right.indent, 12000), 788 show (tblcol.parms.measure, 12000), tblcol.parms.fill_mode, 789 (tblcol.parms.quad = quadi), (tblcol.parms.quad = quado), 790 (tblcol.parms.quad = quadl), (tblcol.parms.quad = quadc), 791 (tblcol.parms.quad = quadr), (tblcol.parms.quad = just), (j = 0), 792 (tblcol.valign = vtop), (tblcol.valign = vcen), 793 (tblcol.valign = vbot), (tblcol.valign = vjust), 794 (tblcol.align.str ^= ""), tblcol.align.str, 795 show (tblcol.align.posn, 12000), tblfont.name, 796 show (tblfont.size, 1000)); 797 end; 798 799 goto return_; 800 801 ctl_ (146): /* ".taf" = table off */ 802 if ^shared.table_mode /* if not in table mode */ 803 then goto return_; /* ignore it */ 804 805 ctl_line = ".tac"; 806 ctl.index = length (ctl_line) + 1; /**/ 807 /* finish table entry */ 808 call comp_tbl_ctls_ (tac_ctl_index); 809 810 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 811 tblcolptr = tblfmt.colptr (0); 812 813 tbldata.ndx = 0; /* no active format */ 814 shared.table_mode = "0"b; /* leave table mode */ 815 816 if shared.blkptr ^= null 817 then 818 do; 819 if text.parms.keep /* clean up */ 820 then call comp_break_ (format_break, 0); 821 else call comp_break_ (block_break, 0); 822 end; 823 824 goto return_; 825 826 ctl_ (147): /* ".tan" = table-on */ 827 if shared.tbldata_ptr = null () /* no defined formats */ 828 then goto tab_err_1; 829 830 if tbldata.ct = 0 /* also no defined formats */ 831 then goto tab_err_1; 832 833 tblfmt_name = /* fetch table format name */ 834 comp_read_$name (ctl_line, ctl.index, ctl.index, ctl_info_ptr); 835 836 if tblfmt_name = "" /* if not given */ 837 then 838 do; 839 call comp_report_ (2, 0, "Table format name must be given.", 840 ctl_info_ptr, ctl_line); 841 goto return_; 842 end; 843 844 do i = 1 to tbldata.ct /* search for given name */ 845 while (tblfmt_name ^= tbldata.fmt (i).name); 846 end; 847 848 if i > tbldata.ct /* if not found */ 849 then goto tab_err_2; 850 851 /* if switching formats */ 852 if tbldata.ndx > 0 853 then 854 do; 855 tblfmtndx = tbldata.ndx; /* point to active format */ 856 tblfmtptr = tbldata.fmt (tblfmtndx).ptr; 857 858 ctl_line = ".tac"; /* clean up */ 859 ctl.index = length (ctl_line) + 1; 860 call comp_tbl_ctls_ (tac_ctl_index); 861 /* propagate art, keep, depth */ 862 tbldata.fmt (i).ptr -> tblfmt.maxdepth = tblfmt.maxdepth; 863 do j = 0 to min (tblfmt.ncols, tbldata.fmt (i).ptr -> tblfmt.ncols); 864 tbldata.fmt (i).ptr -> tblfmt.colptr (j) -> tblcol.parms.art = 865 tblfmt.colptr (j) -> tblcol.parms.art; 866 tbldata.fmt (i).ptr -> tblfmt.colptr (j) -> tblcol.parms.keep = 867 tblfmt.colptr (j) -> tblcol.parms.keep; 868 end; /**/ 869 /* propagate fill, cbars */ 870 tbldata.fmt (i).ptr -> tblfmt.colptr (0) -> tblcol.parms.fill_mode = 871 tblcol0.parms.fill_mode; 872 tbldata.fmt (i).ptr -> tblfmt.colptr (0) -> tblcol.parms.cbar = 873 tblcol0.parms.cbar; 874 end; 875 876 /* entering table mode */ 877 else 878 do; 879 if shared.blkptr ^= null /* clean up current block */ 880 then 881 do; /**/ 882 /* block parms --> tabcol0 parms */ 883 tbldata.fmt (i).ptr -> tblfmt.colptr (0) -> tblcol.parms = 884 text.parms; 885 886 if ^text.parms.keep /* finish it if its not a keep */ 887 & text.blktype ^= "pi" /* or a picture */ 888 & (text.hdr.count > 0 | text.input_line ^= "") 889 then call comp_break_ (block_break, 0); 890 891 else 892 do; /* otherwise, clean up */ 893 if text.input_line ^= "" 894 then call comp_break_ (format_break, 0); 895 text.hdr.tblblk = "1"b; /* and make it a table block */ 896 end; 897 end; 898 899 else 900 do; /* head page if needed */ 901 if ^option.galley_opt & ^page.hdr.headed & page.hdr.col_index >= 0 902 then call comp_head_page_ (0); 903 /* current parms --> tabcol0 parms */ 904 tbldata.fmt (i).ptr -> tblfmt.colptr (0) -> tblcol.parms = 905 current_parms; 906 end; 907 908 do j = 1 to tbldata.ct; /* reset all formats to 0 depth */ 909 tbldata.fmt (j).ptr -> tblfmt.maxdepth = 0; 910 end; 911 912 shared.table_mode = "1"b; /* enter table mode */ 913 end; 914 915 tblfmtndx, tbldata.ndx = i; /* point to the new format */ 916 tblfmtptr = tbldata.fmt (tblfmtndx).ptr; 917 918 do j = 0 to tblfmt.ncols; 919 tblcolptr = tblfmt.colptr (j); 920 tblcol.parms.art = tblcol0.parms.art; 921 tblcol.parms.keep = tblcol0.parms.keep; 922 tblcol.parms.cbar = tblcol0.parms.cbar; 923 end; 924 925 tblfmt.ccol = 0; /* go to column 0 */ 926 tblcolptr = tblfmt.colptr (0); 927 const.current_parms_ptr = const.text_parms_ptr; 928 /* intialize depth */ 929 do j = 0 to tbldata.fmt (i).ptr -> tblfmt.ncols; 930 tbldata.fmt (i).ptr -> tblfmt.colptr (j) -> tblcol.depth = 931 tblfmt.maxdepth; 932 end; 933 934 if shared.blkptr ^= null /* any pending text title? */ 935 then if text.parms.hdrptr ^= null () & ^shared.inserting_hfc 936 then call comp_title_block_ (text.parms.hdrptr); 937 938 if shared.bug_mode 939 then 940 do; 941 if shared.blkptr ^= null 942 then blktype = text.blktype; 943 944 do j = 0 to tblfmt.ncols; 945 tblcolptr = tblfmt.colptr (j); 946 tblfont = tblcol.parms.fntstk.entry (tblcol.parms.fntstk.index); 947 call ioa_ ("^5x(tbl=^d/^d d^f/^f mrg^f/^f/^f ^[F^; ^]" 948 || "^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]" 949 || "^[^4s^; ^[T^]^[C^]^[B^]^[J^]^]^[ aln=""^a""(^f)^;^2s^]" 950 || " fnt=^a ^f)", j, i, show (tblcol.depth, 12000), 951 show (tblfmt.maxdepth, 12000), show (tblcol.margin.left, 12000), 952 show (tblcol.margin.right, 12000), 953 show (tblcol.parms.measure, 12000), tblcol.parms.fill_mode, 954 (tblcol.parms.quad = quadi), (tblcol.parms.quad = quado), 955 (tblcol.parms.quad = quadl), (tblcol.parms.quad = quadc), 956 (tblcol.parms.quad = quadr), (tblcol.parms.quad = just), 957 (j = 0), (tblcol.valign = vtop), (tblcol.valign = vcen), 958 (tblcol.valign = vbot), (tblcol.valign = vjust), 959 (tblcol.align.str ^= ""), tblcol.align.str, 960 show (tblcol.align.posn, 12000), tblfont.name, 961 show (tblfont.size, 1000)); 962 963 if j = 0 964 then call ioa_$rsnnl ( 965 "col=^d^[ ^a=^d^;^2s^] tbl=^d/^d d^f/^f fnt=^a ^f" 966 || "^[ A^]^[ K^]", exit_str, 0, page.hdr.col_index, 967 (shared.blkptr ^= null), blktype, text.blkndx, tblfmt.ccol, 968 i, show (tblcol.depth, 12000), 969 show (tblfmt.maxdepth, 12000), tblfont.name, 970 show (tblfont.size, 1000), current_parms.art, 971 tblcol.parms.keep); 972 end; 973 end; 974 975 return_: 976 if shared.bug_mode 977 then call ioa_ ("^5x(tbl_ctls:^[ ^a^])", (exit_str ^= ""), exit_str); 978 979 return; 980 981 show: 982 proc (datum, scale) returns (fixed dec (11, 3)); 983 dcl datum fixed bin (31); 984 dcl scale fixed bin (31); 985 986 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 987 end show; 988 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 */ 989 2 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 2 2 2 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 4 2 5 dcl 1 col /* the text column */ 2 6 aligned based (shared.colptr), 2 7 2 blkptr (100) ptr, /* pointers to text blocks */ 2 8 2 depth_adj fixed bin (31), /* for variable start depth */ 2 9 2 ftrptr ptr, /* -> column footer */ 2 10 2 ftrusd fixed bin (31), /* column footer space used */ 2 11 2 gutter fixed bin (31), /* column separation */ 2 12 2 hdr like colhdr, /* column control stuff */ 2 13 2 hdrptr ptr, /* -> column header */ 2 14 2 hdrusd fixed bin (31), /* column header space used */ 2 15 2 margin, /* margin settings for column */ 2 16 3 left fixed bin (31), 2 17 3 right fixed bin (31), 2 18 2 parms, /* text parms for the column */ 2 19 3 measure fixed bin (31); /* column width */ 2 20 2 21 dcl 1 colhdr aligned based (const.colhdrptr), 2 22 /* an empty column header */ 2 23 2 balblk fixed bin, /* block to begin column balancing */ 2 24 2 baldepth fixed bin (31), /* page depth at balance point */ 2 25 2 balftn, /* footnotes at balance point */ 2 26 3 ct fixed bin, /* count */ 2 27 3 usd fixed bin (31), /* space used */ 2 28 3 blkndx (40) fixed bin, /* block index values */ 2 29 2 balusd fixed bin (31), /* space used up to balance point */ 2 30 2 blkct fixed bin, /* text block count */ 2 31 2 depth fixed bin (31), /* current page depth in the column */ 2 32 2 ftn like balftn, /* footnotes */ 2 33 2 pspc fixed bin (31), /* current white space */ 2 34 2 net fixed bin (31), /* net usable space in the column */ 2 35 2 used fixed bin (31); /* space used in this column */ 2 36 /* for quick reference */ 2 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 2 38 2 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 990 3 1 /* BEGIN INCLUDE FILE comp_ctl_index.incl.pl1 */ 3 2 3 3 /* Written: 3/82 - EJW */ 3 4 3 5 /* Vector index values for controls that must be globally known. */ 3 6 3 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 8 3 9 dcl ( 3 10 be_ctl_index init (22), /* block-end */ 3 11 bef_ctl_index init (26), /* block-end-footnote */ 3 12 bel_ctl_index init (28), /* block-end-literal */ 3 13 bep_ctl_index init (30), /* block-end-picture */ 3 14 fin_ctl_index init (76), /* fill-on */ 3 15 ifi_ctl_index init (110), /* insert-file */ 3 16 ift_ctl_index init (111), /* insert-footnotes */ 3 17 tac_ctl_index init (145), /* table-column */ 3 18 taf_ctl_index init (146) /* table-off */ 3 19 ) fixed bin static options (constant); 3 20 3 21 /* END INCLUDE FILE comp_ctl_index.incl.pl1 */ 991 4 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 4 2 4 3 /* Written: 9/80 - JA Falksen 4 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 4 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 4 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 4 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 4 8* (3) char (*) var. Version 4. */ 4 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 4 10* sequence for comp_dvt.displayproc. - Version 5. 4 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 4 12**/ 4 13 4 14 /* All names which end in "_r"are offset values within the device table */ 4 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 4 16 4 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 4 18 4 19 dcl 1 comp_dvt aligned based (const.devptr), 4 20 2 devclass char (32), /* what general kind of device is */ 4 21 /* this, currently available: */ 4 22 /* "printer" (includes terminals), */ 4 23 /* "braille", "bitmap" */ 4 24 2 outproc entry /* page output processor */ 4 25 (fixed bin, /* function - 0=build */ 4 26 /* 1=init page */ 4 27 /* 2=init file */ 4 28 /* 3=cleanup */ 4 29 fixed bin (35)),/* error code */ 4 30 2 footproc entry /* footnote reference proc */ 4 31 ((3) char (*) var, 4 32 /* reference string (IN/OUT) */ 4 33 ptr), /* comp_dvt_p (IN) */ 4 34 2 artproc entry (), /* artwork proc */ 4 35 /* dont know how to describe yet */ 4 36 2 displayproc 4 37 entry /* string display interpreter */ 4 38 (char (*) var, /* raw input string */ 4 39 fixed bin (24), /* chars used in this call */ 4 40 bit (1)) /* 1= dont show display errors */ 4 41 returns (char (*) var), 4 42 /* interpreted output string */ 4 43 /* following values are in millipoints */ 4 44 2 min_WS fixed bin (31), /* minimum whitespace */ 4 45 2 min_lead fixed bin (31), /* minimun lead */ 4 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 4 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 4 48 2 def_vmt fixed bin (31), /* default .vmt */ 4 49 2 def_vmh fixed bin (31), /* default .vmh */ 4 50 2 def_vmf fixed bin (31), /* default .vmf */ 4 51 2 def_vmb fixed bin (31), /* default .vmb */ 4 52 2 pdw_max fixed bin (31), /* max page width available */ 4 53 2 pdl_max fixed bin (31), /* max page length available, */ 4 54 /* (0 = unlimited) */ 4 55 2 upshift fixed bin (31), /* footnote reference shift */ 4 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 4 57 2 lettersp fixed bin (31), /* max letterspacing */ 4 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 4 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 4 60 2 init_fam fixed bin, /* initial family index */ 4 61 2 init_mem fixed bin, /* initial member index */ 4 62 2 foot_fam fixed bin, /* initial foot family index */ 4 63 2 foot_mem fixed bin, /* initial foot member index */ 4 64 2 init_family 4 65 char (32), /* initial font family to use */ 4 66 2 init_member 4 67 char (32), /* initial font member to use */ 4 68 ( /* the following are offsets */ 4 69 2 atd_r, /* attach desc for on-line output */ 4 70 2 dvc_r, /* device control table relptr */ 4 71 2 comment_r, /* comment string relptr */ 4 72 2 cleanup_r, /* "cleanup" string relptr */ 4 73 2 medsel_table_r /* media select table relptr */ 4 74 ) bit (18) aligned, 4 75 2 foot_family 4 76 char (32), /* family for footnote reference */ 4 77 2 foot_member 4 78 char (32), /* member for footnote reference */ 4 79 /* if one was specified */ 4 80 2 sws unaligned, 4 81 3 interleave /* 0- page block has lines in column */ 4 82 bit (1), /* order left-to-right */ 4 83 /* 1- page block has lines in line */ 4 84 /* order top-to-bottom */ 4 85 3 justifying /* 1- device justifies lines */ 4 86 bit (1), 4 87 3 mbz bit (24), 4 88 3 endpage bit (9), /* EOP char if not "0"b */ 4 89 2 open_mode fixed bin (35), /* when going to a file */ 4 90 2 recleng fixed bin, /* length of tape records */ 4 91 2 family_ct fixed bin, /* # families present */ 4 92 2 family (comp_dvt.family_ct), 4 93 /* families of fonts defined */ 4 94 3 member_r bit (18) aligned, 4 95 /* member table relptr */ 4 96 3 name char (32); /* family name */ 4 97 4 98 4 99 /* The usage formula for units: */ 4 100 /* */ 4 101 /* rel_units * length_in_points */ 4 102 /* ---------------------------- = length_in_units */ 4 103 /* points_per_EM */ 4 104 4 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 992 5 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl compose_severity_ 5 6 fixed bin (35) ext static; 5 7 dcl comp_ entry; 5 8 dcl comp_art_ entry (ptr, bit (1)); 5 9 dcl comp_block_ctls_ 5 10 entry (fixed bin); 5 11 dcl comp_break_ entry (fixed bin, fixed bin); 5 12 dcl comp_break_ctls_ 5 13 entry (fixed bin); 5 14 dcl comp_ctls_ entry (bit (1) aligned); 5 15 dcl comp_eject_page_ 5 16 entry; 5 17 dcl comp_expr_eval_ 5 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 5 19 fixed bin, bit (1), fixed bin (31), char (*) var, 5 20 bit (9), fixed bin (35)); 5 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 5 22 fixed bin (21), fixed bin (21), ptr) 5 23 returns (char (*) var); 5 24 dcl comp_fill_ entry; 5 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 5 26 dcl comp_format_ctls_ 5 27 entry (fixed bin); 5 28 dcl comp_get_file_$find 5 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 5 30 fixed bin (35)); 5 31 dcl comp_get_file_$open 5 32 entry (ptr, bit (1), fixed bin (35)); 5 33 dcl comp_head_page_ 5 34 entry (fixed bin (31)); 5 35 dcl comp_hft_ctls_ entry (fixed bin); 5 36 dcl comp_hft_ctls_$title 5 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 5 38 dcl comp_init_$one entry; 5 39 dcl comp_init_$two entry; 5 40 dcl comp_init_$three 5 41 entry; 5 42 dcl comp_insert_ctls_ 5 43 entry (fixed bin); 5 44 dcl comp_make_page_ 5 45 entry (fixed bin, bit (1)); 5 46 dcl comp_make_page_$cleanup 5 47 entry; 5 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 5 49 fixed bin (31), ptr, ptr, ptr); 5 50 dcl comp_read_$name 5 51 entry (char (*) var, fixed bin (21), fixed bin (21), 5 52 ptr) returns (char (*) var); 5 53 dcl comp_read_$number 5 54 entry (char (*) var, (*) fixed bin (31), 5 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 5 56 returns (fixed bin (31)); 5 57 dcl comp_read_$line 5 58 entry (ptr, char (*) var, bit (1)); 5 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 5 60 char (*) var); 5 61 dcl comp_report_$ctlstr 5 62 entry options (variable); 5 63 /**** (sev, code, info, line, ctl_str, args... */ 5 64 dcl comp_report_$exact 5 65 entry (char (*), ptr); 5 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 5 67 bit (1)); 5 68 dcl comp_tbl_ctls_ entry (fixed bin); 5 69 dcl comp_title_block_ 5 70 entry (ptr); 5 71 dcl comp_update_symbol_ 5 72 entry (bit (1), bit (1), bit (1), char (32), 5 73 char (*) var); 5 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 5 75 dcl comp_util_$add_text 5 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 5 77 dcl comp_util_$display 5 78 entry (char (*) var, fixed bin, bit (1)) 5 79 returns (char (*) var); 5 80 dcl comp_util_$escape 5 81 entry (char (*) var, ptr); 5 82 dcl comp_util_$getblk 5 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 5 84 dcl comp_util_$num_display 5 85 entry (ptr, fixed bin) returns (char (256) var); 5 86 dcl comp_util_$pageno 5 87 entry (fixed bin, char (*) var); 5 88 dcl comp_util_$pictures /* emit pending pictures */ 5 89 entry /**/ 5 90 (ptr); /* current text block */ 5 91 dcl comp_util_$pop entry (char (32)); 5 92 dcl comp_util_$push 5 93 entry (char (32)); 5 94 dcl comp_util_$relblk 5 95 entry (fixed bin, ptr); 5 96 dcl comp_util_$replace_text 5 97 entry (ptr, bit (1), ptr, ptr); 5 98 dcl comp_util_$search_tree 5 99 entry (char (32), bit (1)); 5 100 dcl comp_util_$set_bin 5 101 entry (fixed bin (31), char (32) var, fixed bin (31), 5 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 5 103 fixed bin (31)); 5 104 dcl comp_util_$set_net_page 5 105 entry (bit (1)); 5 106 dcl comp_util_$translate 5 107 entry (char (*) var) returns (char (*) var); 5 108 dcl comp_write_block_ 5 109 entry (fixed bin); 5 110 dcl comp_write_page_ 5 111 entry; 5 112 5 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 993 6 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 6 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 6 7 2 bachelor bit (1), /* 1= has no members */ 6 8 2 devfnt fixed bin, /* font in the device */ 6 9 2 fam_name char (32), /* family name */ 6 10 2 famndx fixed bin, /* family index */ 6 11 2 fntptr ptr, /* font table pointer */ 6 12 2 mem_name char (32), /* /member name (or null) */ 6 13 2 memndx fixed bin, /* member index */ 6 14 2 memptr ptr, /* member table pointer */ 6 15 2 name char (65) var, /* font name */ 6 16 2 size fixed bin (31), /* requested point size */ 6 17 2 ps fixed bin (31), /* effective point size */ 6 18 2 fcs_str char (8); /* FCS string */ 6 19 6 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 994 7 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 7 2 7 3 dcl option_version fixed bin (35) static options (constant) init (2); 7 4 7 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 7 6 2 version fixed bin (35), 7 7 /* Options with parameters */ 7 8 (2 argument_opt, /* -argument option flag */ 7 9 2 cbar_opt, /* -change_bars option flag */ 7 10 2 cbar_art_opt, /* -change_bars_art option flag */ 7 11 2 debug_opt, /* -debug option flag */ 7 12 2 db_all_opt, /* -debug_all option flag */ 7 13 2 db_file_opt, /* -debug_file option flag */ 7 14 2 device_opt, /* -device option flag */ 7 15 2 execute_opt, /* -execute option flag */ 7 16 2 from_opt, /* -from option flag */ 7 17 2 galley_opt, /* -galley option flag */ 7 18 2 hyph_opt, /* -hyphenation option flag */ 7 19 2 indent_opt, /* -indent option flag */ 7 20 2 input_file_opt, /* -input_file option flag */ 7 21 2 linespace_opt, /* -linespace option flag */ 7 22 2 output_file_opt, /* -output_file option flag */ 7 23 2 pages_opt, /* -pages option flag */ 7 24 2 page_chng_opt, /* -pages_changed option flag */ 7 25 2 parameter_opt, /* -parameter option flag */ 7 26 2 passes_opt, /* -passes option flag */ 7 27 2 tdir_opt, /* -temp_dir option flag */ 7 28 2 to_opt, /* -to option flag */ 7 29 /* Options without parameters */ 7 30 2 annot_opt, /* -annotate */ 7 31 2 brief_opt, /* -brief option flag */ 7 32 2 check_opt, /* -check option flag */ 7 33 2 cws_opt, /* -cws option flag */ 7 34 2 db_pause_opt, /* -debug_pause option flag */ 7 35 2 noart_opt, /* -noart option flag */ 7 36 2 nobell_opt, /* -no_bell option flag */ 7 37 2 nofill_opt, /* -nofill option flag */ 7 38 2 nohit_opt, /* -nohit option flag */ 7 39 2 number_opt, /* -number option flag */ 7 40 2 number_append_opt, /* -number_append option flag */ 7 41 2 number_brief_opt, /* -number_brief option flag */ 7 42 2 stop_opt, /* -stop option flag */ 7 43 2 wait_opt) unal bit (1), /* -wait option flag */ 7 44 2 MBZ bit (2) unal, 7 45 /* Optional parameters */ 7 46 2 arg_count fixed bin, /* count of -ag values */ 7 47 2 cbar, /* change bar data */ 7 48 3 level char (1), /* change level character (ASCII NUL) */ 7 49 3 place char (1), /* placement character */ 7 50 3 space fixed bin (31), /* extra left margin space needed */ 7 51 3 left, /* left margin mark data */ 7 52 4 sep fixed bin (31), /* separation */ 7 53 4 width fixed bin (31), /* mark width */ 7 54 4 mark char (80) varying, /* the left margin mark */ 7 55 3 right, /* right margin mark data */ 7 56 4 sep fixed bin (31), /* separation */ 7 57 4 width fixed bin (31), /* mark width */ 7 58 4 mark char (80) varying, /* the right margin mark */ 7 59 3 del, /* deletion mark data */ 7 60 4 sep fixed bin (31), /* separation */ 7 61 4 width fixed bin (31), /* mark width */ 7 62 4 mark char (80) varying, /* the deletion mark */ 7 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 7 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 7 65 2 db_file char (200) var, /* file pathanme for debug */ 7 66 2 db_file_after fixed bin (35), /* debug file starting line */ 7 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 7 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 7 69 2 device char (32) varying, /* output device */ 7 70 2 extra_indent fixed bin (31), /* extra indent value */ 7 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 7 72 2 line_1 fixed bin (35), /* initial line for output */ 7 73 2 line_2 fixed bin (35), /* final line for output */ 7 74 2 linespace fixed bin (31), /* line spacing value */ 7 75 2 pglstct fixed bin (35), /* number of page list entries */ 7 76 2 pglstndx fixed bin (35), /* index for -pages list */ 7 77 2 pglst (0:49), /* list of requested pages */ 7 78 3 from char (32) var, 7 79 3 to char (32) var, 7 80 2 parameter char (80) varying, /* parameter from command line */ 7 81 2 passes fixed bin, /* passes remaining */ 7 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 7 83 7 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 7 85 995 8 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl max_image_lines 8 6 fixed static options (constant) init (1000); 8 7 dcl max_cols fixed static options (constant) init (20); 8 8 8 9 dcl page_version fixed bin static options (constant) init (5); 8 10 /* composed page structure */ 8 11 dcl 1 page aligned based (const.page_ptr), 8 12 2 version fixed bin, /* version of this structure */ 8 13 2 parms aligned like page_parms, 8 14 /* page formatting parameters */ 8 15 2 hdr aligned like page_header, 8 16 /* page control stuff */ 8 17 2 image_ptr ptr, /* pointer to the madeup page image */ 8 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 8 19 2 col_image_ptr 8 20 (-2:21) ptr; /* pointers to column images */ 8 21 /* col -1 is for line numbers and */ 8 22 /* left margin change bars; */ 8 23 /* col -2 is for */ 8 24 /* right margin change bars */ 8 25 /* and/or annotation * / 8 26* /* page control stuff */ 8 27 dcl 1 page_header aligned based (const.page_header_ptr), 8 28 2 sws, 8 29 3 art bit (1) unal, /* 1 = header/footer art */ 8 30 3 blankpage 8 31 bit (1) unal, /* 1 = intentional blank page */ 8 32 3 frontpage 8 33 bit (1) unal, /* 1 = odd page number */ 8 34 3 headed bit (1) unal, /* 1 = page header has been written */ 8 35 3 modified bit (1) unal, /* 1 = page has been modified */ 8 36 3 overflow bit (1) unal, /* OBSOLETE */ 8 37 3 MBZ bit (12) unal, 8 38 3 dot_addltr 8 39 char (1) unal, /* dot page add letter, if any */ 8 40 3 pgc_select 8 41 char (1) unal, /* for selecting change pages */ 8 42 2 baldepth fixed bin (31), /* page depth at balance point */ 8 43 2 balusd fixed bin (31), /* space used at balance point */ 8 44 2 col_count fixed bin, /* highest value of col_index for the page */ 8 45 2 col_index fixed bin, /* column index */ 8 46 2 depth fixed bin (31), /* current page depth */ 8 47 2 hdspc fixed bin (31), /* TOP white space */ 8 48 2 lmarg fixed bin (31), /* left margin for this page */ 8 49 2 net fixed bin (31), /* net usable space on the page */ 8 50 2 pageno char (32) var, /* current page number */ 8 51 2 used fixed bin (31); /* space already used on the page */ 8 52 8 53 dcl page_image_version 8 54 fixed bin (35) static options (constant) init (2); 8 55 /* structure passed to writers */ 8 56 dcl 1 page_image aligned based (page.image_ptr), 8 57 2 version fixed bin (35), /* structure version no */ 8 58 2 count fixed bin, /* count of page image lines */ 8 59 2 file_id char (32) var, /* compout identifier */ 8 60 2 func fixed bin, /* function code; 0 = build, 8 61* 1 = intialize, 2 = cleanup */ 8 62 2 text_ptr ptr, /* pointer to the text area */ 8 63 /* the image lines */ 8 64 2 line (max_image_lines), 8 65 3 sws, 8 66 4 quad bit (6) unal, /* text set position flags */ 8 67 4 art bit (1) unal, /* 1 = artwork in the line */ 8 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 8 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 8 70 4 white bit (1) unal, /* line is white */ 8 71 4 MBZ bit (26) unal, 8 72 3 depth fixed bin (31), /* page depth for the text */ 8 73 3 gaps fixed bin, /* number of WS gaps in the line */ 8 74 3 info like text_entry.info, 8 75 /* input file info */ 8 76 3 lead fixed bin (31), /* lead value if trailing WS */ 8 77 3 lfnt fixed bin, /* font at the left margin */ 8 78 3 lmarg fixed bin (31), /* text left margin position */ 8 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 8 80 3 net fixed bin (31), /* net width for filling */ 8 81 3 pos fixed bin (31), /* current horiz position */ 8 82 3 ptr ptr, /* pointer to the text */ 8 83 3 rmarg fixed bin (31), /* text right margin position */ 8 84 3 width fixed bin (31); /* width of the text */ 8 85 /* current page formatting parms */ 8 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 8 87 2 init_page_depth 8 88 fixed bin (31), /* initial page depth */ 8 89 2 length fixed bin (31), /* page length */ 8 90 2 lmarg, /* page left margin */ 8 91 3 even fixed bin (31), 8 92 3 odd fixed bin (31), 8 93 2 margin, /* margin values */ 8 94 3 top fixed bin (31), 8 95 3 header fixed bin (31), 8 96 3 footer fixed bin (31), 8 97 3 bottom fixed bin (31), 8 98 2 measure fixed bin (31), /* line space available for text */ 8 99 2 net, /* net usable space on page */ 8 100 3 even fixed bin (31), /* even pages */ 8 101 3 odd fixed bin (31), /* odd pages */ 8 102 /* arrays at the end */ 8 103 2 cols, /* columns defined for the page */ 8 104 3 bal bit (1) unal, /* column balancing control flag */ 8 105 3 MBZ bit (17) unal, 8 106 3 count fixed bin unal; /* the number of columns */ 8 107 /* default page formatting parms */ 8 108 dcl 1 init_page_parms 8 109 aligned like page_parms 8 110 based (const.init_page_parms_ptr); 8 111 8 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 996 9 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl shared_version fixed bin (35) static options (constant) init (17); 9 6 9 7 dcl 1 shared aligned based (const.shared_ptr), 9 8 2 version fixed bin (35), /* version of this structure */ 9 9 2 chars, 9 10 ( 3 sym_delim, /* delimiter for symbols */ 9 11 3 ttl_delim, /* delimiter for title parts */ 9 12 3 wrd_brkr /* word break character */ 9 13 ) char (1) unal, 9 14 3 PAD char (1) unal, 9 15 2 cbar_type char (4) var, /* change bar type */ 9 16 2 dot_add_letter /* dot page add letter */ 9 17 char (1) var, 9 18 2 EN_width fixed bin (31), /* width of EN in current font */ 9 19 2 eqn_refct fixed bin, /* equation reference counter */ 9 20 2 footref_fcs /* footnote ref FCS string */ 9 21 char (8) aligned, 9 22 2 ftn_reset char (8) var, /* footnote reset mode */ 9 23 2 ftnrefct fixed bin, /* footnote ref counter */ 9 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 9 25 2 if_nest, /* if/then/else logic control */ 9 26 3 ndx fixed bin, /* depth of logic nest */ 9 27 3 e (25), /* nest entries */ 9 28 /* .if control switch */ 9 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 9 30 4 info aligned like text_entry.info, 9 31 4 line char (256) var, /* the control line */ 9 32 2 indctl, /* indent ctls stack */ 9 33 3 ndx fixed bin, /* current level */ 9 34 /* switch bits */ 9 35 3 stk (0:35) bit (1) unal, 9 36 2 input_dirname 9 37 char (168) var, /* dir containing current input file */ 9 38 2 input_filename 9 39 char (200) var, /* current input file name */ 9 40 2 lead fixed bin (31), /* current linespacing value */ 9 41 2 lit_count fixed bin (35), /* count of literal lines */ 9 42 2 next_pagenmbr 9 43 char (32) var, /* next page number / */ 9 44 2 output_file 9 45 char (32) var, /* output file identifier */ 9 46 2 pagecount fixed bin, /* number of pages produced */ 9 47 2 pagenum, /* page number structure */ 9 48 3 index fixed bin, /* level currently counting */ 9 49 ( 9 50 3 sep char (1) unal, /* separator chars */ 9 51 3 nmbr fixed bin (31), /* the counters */ 9 52 3 mode /* display modes */ 9 53 fixed bin (8) unal 9 54 ) dimension (20), 9 55 2 parameter char (254) var, /* command line parameter */ 9 56 2 param_pres bit (1), /* passed parameter flag */ 9 57 2 pass_counter 9 58 fixed bin, /* pass counter */ 9 59 2 picture, /* picture blocks */ 9 60 3 count fixed bin, /* number of them */ 9 61 3 space fixed bin (31), /* total picture space */ 9 62 3 blk (10), /* picture blocks */ 9 63 4 type char (4), /* type = page/col */ 9 64 4 place char (4), /* place = top/cen/bot */ 9 65 4 ptr ptr, /* pointer to block */ 9 66 4 size fixed bin (31), /* size of the picture */ 9 67 2 ptrs, 9 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 9 69 3 blank_footer_ptr, /* -> blank page footer */ 9 70 3 blank_header_ptr, /* -> blank page header */ 9 71 3 blank_text_ptr, /* -> blank page text */ 9 72 3 blkptr, /* -> active text */ 9 73 3 colptr, /* current column */ 9 74 3 compout_ptr, /* iocb pointer for output */ 9 75 3 compx_ptr, /* iocb pointer for compx file */ 9 76 3 ctb_ptr, /* current line artwork table */ 9 77 3 epftrptr, /* even page footer block */ 9 78 3 ephdrptr, /* even page header block */ 9 79 3 fcb_ptr, /* input file control block pointer */ 9 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 9 81 3 footnote_header_ptr, /* footnote header "title" */ 9 82 3 graphic_page_ptr, /* graphic output page */ 9 83 3 hit_data_ptr, /* hit data pointer */ 9 84 3 htab_ptr, /* horizontal tab tables */ 9 85 3 hwrd_data_ptr, /* local hyphenation table */ 9 86 3 insert_ptr, /* data entry for current input file */ 9 87 3 opftrptr, /* odd page footer block */ 9 88 3 ophdrptr, /* odd page header block */ 9 89 3 ptb_ptr, /* previous line artwork table */ 9 90 3 spcl_blkptr, /* "special" block pointer */ 9 91 3 tbldata_ptr, /* table column data structure */ 9 92 3 tblkdata_ptr, /* text block data array */ 9 93 3 text_header_ptr /* empty text header structure */ 9 94 ) ptr, 9 95 2 scale, /* space conversion scale factors */ 9 96 3 horz fixed bin (31), /* horizontal */ 9 97 3 vert fixed bin (31), /* vertical */ 9 98 2 source_filename 9 99 char (200) var, /* current source file name */ 9 100 2 sws, /* switch bits */ 9 101 ( 3 bug_mode, /* debug mode */ 9 102 3 compout_not_headed, /* compout is not headed */ 9 103 3 end_input, /* EOF for current input file */ 9 104 3 end_output, /* no more output is wanted */ 9 105 3 firstpass, /* first pass over input */ 9 106 3 ftn_mode, /* in footnote mode */ 9 107 3 hyph_mode, /* hyphenating mode */ 9 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 9 109 3 literal_mode, /* literal line mode flag */ 9 110 3 pageblock, /* blocks belong to page */ 9 111 3 picture_mode, /* building a picture */ 9 112 3 print_flag, /* producing output */ 9 113 3 purge_ftns, /* purging footnotes */ 9 114 3 suppress_footref, /* suppress next footnote ref */ 9 115 3 table_mode /* table mode */ 9 116 ) bit (1) unal, 9 117 3 MBZ bit (21) unal, 9 118 2 trans, /* trans table for .tr */ 9 119 3 in char (128) var, /* input chars */ 9 120 3 out char (128) var, /* output chars */ 9 121 2 widow_size fixed bin (31), /* widow size */ 9 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 9 123 /* to save shared data between files/passes */ 9 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 9 125 9 126 dcl dot_addltr_symb_index 9 127 fixed bin static options (constant) init (12); 9 128 dcl max_text_lines fixed bin static options (constant) init (1000); 9 129 dcl mode_string char (16) static options (constant) 9 130 init ("arbihxocalaurlru"); 9 131 /* value overlays */ 9 132 dcl flag_value bit (1) based; 9 133 dcl num_value fixed bin (31) based; 9 134 9 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 997 10 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 10 2 10 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 10 6 2 ct fixed bin, /* number of active table formats */ 10 7 2 ndx fixed bin, /* index of current active format */ 10 8 2 fmt (20), /* the format */ 10 9 3 name char (32) var, /* name of the format */ 10 10 3 ptr ptr; /* pointer to the format data */ 10 11 10 12 dcl tblfmtndx fixed bin; /* current table format index */ 10 13 dcl tblfmtptr ptr; /* -> current table format */ 10 14 /* table format data */ 10 15 dcl 1 tblfmt aligned based (tblfmtptr), 10 16 2 context bit (1), /* =1 if context mode */ 10 17 2 ccol fixed bin, /* the current table column */ 10 18 2 maxdepth fixed bin (31), /* max depth in table */ 10 19 2 ncols fixed bin, /* number of columns in this format */ 10 20 2 colptr (0:20) ptr; /* pointers to the columns */ 10 21 10 22 dcl tblcolndx fixed bin; /* current table column index */ 10 23 /* -> current table column */ 10 24 dcl tblcolptr ptr init (null ()); 10 25 /* table column data */ 10 26 dcl 1 tblcol aligned based (tblcolptr), 10 27 2 align, /* column alignment mode */ 10 28 3 posn fixed bin (31), 10 29 3 str char (32) var, 10 30 2 depth fixed bin (31), /* current depth for column */ 10 31 2 gutter fixed bin (31), 10 32 2 leader char (16) var, /* leadering string */ 10 33 2 margin, 10 34 3 left fixed bin (31), 10 35 3 right fixed bin (31), 10 36 2 valign bit (4) unal, /* vertical alignment flags */ 10 37 2 MBZ bit (29) unal, 10 38 2 parms /* parms for columns */ 10 39 aligned like default_parms; 10 40 10 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 10 42 /* -> previous table column */ 10 43 dcl prvtblcolptr ptr init (null ()); 10 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 10 45 10 46 dcl vtop bit (4) static options (constant) init ("1000"b); 10 47 dcl vcen bit (4) static options (constant) init ("0100"b); 10 48 dcl vbot bit (4) static options (constant) init ("0010"b); 10 49 dcl vjust bit (4) static options (constant) init ("0001"b); 10 50 10 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 998 11 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl 1 tblkdata /* data for allocated text blocks */ 11 6 aligned based (shared.tblkdata_ptr), 11 7 2 block, /* block pool */ 11 8 3 count fixed bin, 11 9 3 ptr (500) ptr, /* block pointers */ 11 10 /* block state flags */ 11 11 3 free (500) bit (1) unal, 11 12 2 line_area, /* line area pool */ 11 13 3 count fixed bin, 11 14 3 ptr (500) ptr, /* area pointers */ 11 15 /* area state flags */ 11 16 3 free (500) bit (1) unal, 11 17 2 text_area, /* text area pool */ 11 18 3 count fixed bin, 11 19 3 ptr (500) ptr, /* area pointers */ 11 20 /* area state flags */ 11 21 3 free (500) bit (1) unal, 11 22 3 string_area_count 11 23 fixed bin; /* line areas */ 11 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 11 25 dcl line_area_ptr ptr init (null); 11 26 dcl 1 line_area aligned based (line_area_ptr), 11 27 2 next ptr, /* forward thread */ 11 28 2 prev ptr, /* backward thread */ 11 29 2 count fixed bin, /* number of lines allocated */ 11 30 2 ndx fixed bin, /* index of current line */ 11 31 2 pndx fixed bin, /* area pool index */ 11 32 2 linptr (LINE_AREA_SIZE) ptr; 11 33 /* text areas */ 11 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 11 35 dcl text_area_ptr ptr init (null); 11 36 dcl 1 text_area aligned based (text_area_ptr), 11 37 2 next ptr, /* forward thread */ 11 38 2 count fixed bin, /* number of areas allocated */ 11 39 2 ndx fixed bin, /* index of current strarea */ 11 40 2 pndx fixed bin, /* area pool index */ 11 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 11 42 /* text string area */ 11 43 dcl string_area (256) fixed bin based; 11 44 dcl txtstrptr ptr; /* current text string */ 11 45 dcl txtstr char (1020) var based (txtstrptr); 11 46 11 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 11 48 /* general text block */ 11 49 dcl 1 text aligned based (shared.blkptr), 11 50 2 version fixed bin, /* version of structure */ 11 51 2 blkndx fixed bin, /* block data index */ 11 52 2 blktype char (2), /* block type code */ 11 53 /* dynamic block control stuff */ 11 54 2 hdr aligned like text_header, 11 55 /* text read from input file */ 11 56 2 input aligned like text_entry, 11 57 2 input_line char (1020) var,/* input buffer */ 11 58 2 line_area, 11 59 3 first ptr, /* head of line area thread */ 11 60 3 cur ptr, /* current line area */ 11 61 2 next_text ptr, /* next text string */ 11 62 /* text formatting parameters */ 11 63 2 parms aligned like default_parms, 11 64 2 text_area, 11 65 3 first ptr, /* head of text area thread */ 11 66 3 cur ptr; /* current text area */ 11 67 /* an empty text block line */ 11 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 11 69 2 sws, /* unaligned switches, etc. */ 11 70 3 art bit (1) unal, /* line has artwork */ 11 71 3 cbar, /* change bar flags */ 11 72 4 add bit (1) unal, /* text addition flag */ 11 73 4 del bit (1) unal, /* text deletion flag */ 11 74 4 mod bit (1) unal, /* text modification flag */ 11 75 3 default bit (1) unal, /* 1 = default case as needed */ 11 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 11 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 11 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 11 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 11 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 11 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 11 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 11 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 11 84 3 oflo bit (1) unal, /* line causes overflow */ 11 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 11 86 3 quad bit (6) unal, /* text alignment flags */ 11 87 3 space_added /* 1= line has added space */ 11 88 bit (1) unal, 11 89 3 spcl, /* special entry - not output text */ 11 90 4 file bit (1) unal, /* 1= output to special file */ 11 91 4 blk_splt /* 1= action at block split time */ 11 92 bit (1) unal, 11 93 4 page_mkup /* 1= action at page makeup time */ 11 94 bit (1) unal, 11 95 3 table bit (1) unal, /* 1= line is a table entry */ 11 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 11 97 3 title bit (1) unal, /* 1= line is a */ 11 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 11 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 11 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 11 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 11 102 3 white bit (1) unal, /* 1= line is white space */ 11 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 11 104 3 MBZ bit (4) unal, 11 105 2 art_start fixed bin unal, /* start of art string in line */ 11 106 2 art_len fixed bin unal, /* length of art string in line */ 11 107 2 cbar_level /* change level for cbars */ 11 108 char (1) aligned, 11 109 2 cur, /* current scanning data for line */ 11 110 3 chrct fixed bin, /* count of chars scanned */ 11 111 3 gaps fixed bin, /* gap count */ 11 112 3 width fixed bin (31), /* width of font chars */ 11 113 3 min fixed bin (31), /* width of min spbnds */ 11 114 3 avg fixed bin (31), /* width of avg spbnds */ 11 115 3 max fixed bin (31), /* width of max spbnds */ 11 116 3 font like fntstk_entry, 11 117 2 depth fixed bin (31), /* page depth for line */ 11 118 /* font at start of line */ 11 119 2 font like fntstk_entry, 11 120 2 index fixed bin (21), /* char index for line scanning */ 11 121 2 info, /* stuff created during line input */ 11 122 3 fileno fixed bin, /* input file index */ 11 123 3 lineno fixed bin, /* input file line number */ 11 124 3 lineno0 fixed bin, /* call_box0 line number */ 11 125 2 linespace fixed bin (31), /* linespace value for the line */ 11 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 11 127 2 mod_len fixed bin, /* length of modified text */ 11 128 2 mod_start fixed bin, /* index for start of modified text */ 11 129 2 net fixed bin (31), /* net line width for filling */ 11 130 2 ptr ptr, /* pointer to the actual text */ 11 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 11 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 11 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 11 134 2 tblcol fixed bin, /* column for table entries */ 11 135 2 title_delim 11 136 char (1) unal, /* title delimiter if a <title> */ 11 137 2 title_index 11 138 fixed bin, /* <title> block index for line */ 11 139 2 width fixed bin (31), /* width of text */ 11 140 2 ftn, /* footnote info for line */ 11 141 3 ct fixed bin, /* number of footnote refs */ 11 142 3 used fixed bin (31), /* space used */ 11 143 3 e (40), /* limit is arbitrary */ 11 144 4 blkndx fixed bin unal, /* block index of footnote - if this 11 145* value is 0, then .frf was used */ 11 146 4 refno fixed bin unal; /* reference number */ 11 147 11 148 dcl ( 11 149 quadi init ("40"b3), /* set to the inside margin */ 11 150 quado init ("20"b3), /* set to the outside margin */ 11 151 quadl init ("10"b3), /* set left */ 11 152 quadc init ("04"b3), /* set centered */ 11 153 quadr init ("02"b3), /* set right */ 11 154 just init ("01"b3) /* justified */ 11 155 ) bit (6) static options (constant); 11 156 /* control line structure */ 11 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 11 158 dcl ctl_line char (1020) var based (ctl.ptr); 11 159 11 160 dcl txtlinptr ptr; /* the current text line */ 11 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 11 162 /* empty text header structure */ 11 163 dcl 1 text_header aligned based (const.text_header_ptr), 11 164 2 sws, /* control switches */ 11 165 3 art bit (1) unal, /* block has artwork */ 11 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 11 167 3 modified bit (1) unal, /* block contains modified lines */ 11 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 11 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 11 170 3 tblblk bit (1) unal, /* a table block */ 11 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 11 172 3 white bit (1) unal, /* block is a white space block */ 11 173 3 picture bit (1) unal, /* picture block */ 11 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 11 175 3 MBZ bit (26) unal, 11 176 2 art_count fixed bin unal, /* to count input art lines */ 11 177 2 blkptr ptr, /* pointer to suspended block */ 11 178 2 cap_size fixed bin unal, /* line count of text caption */ 11 179 2 cap_used fixed bin (31), /* size of text caption */ 11 180 2 colno fixed bin unal, /* column owning the block */ 11 181 2 count fixed bin unal, /* line count for block */ 11 182 2 eqn_line_count 11 183 fixed bin unal, /* counter for equation lines */ 11 184 2 first_text fixed bin unal, /* OBSOLETE */ 11 185 2 ftn, /* footnotes */ 11 186 3 ct fixed bin, /* count */ 11 187 3 usd fixed bin (31), /* space used */ 11 188 3 blkndx (40) fixed bin, /* footnote block index values */ 11 189 2 head_size fixed bin, /* line count of text header */ 11 190 2 head_used fixed bin (31), /* size of text header */ 11 191 2 index fixed bin unal, /* block index of next output line */ 11 192 2 keep_count fixed bin unal, /* to count input keep lines */ 11 193 2 last_line fixed bin, /* last text line in column */ 11 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 11 195 2 name char (32) var, /* block name, if any */ 11 196 2 nofill_count /* to count nofill lines */ 11 197 fixed bin, 11 198 2 parms_ptr ptr, /* parms for suspended block */ 11 199 2 refer fixed bin, /* inter-block reference */ 11 200 2 refer_index /* OBSOLETE */ 11 201 fixed bin, /* a reference */ 11 202 2 split fixed bin, /* split point for balancing */ 11 203 2 trl_ws fixed bin (31), /* trailing WS */ 11 204 2 used fixed bin (31); /* page space used by a column/block */ 11 205 /* text formatting parameters */ 11 206 dcl 1 text_parms aligned like default_parms 11 207 based (const.text_parms_ptr); 11 208 11 209 dcl 1 current_parms 11 210 aligned like default_parms 11 211 based (const.current_parms_ptr); 11 212 11 213 dcl 1 default_parms 11 214 aligned based (const.default_parms_ptr), 11 215 2 sws, /* control switches */ 11 216 3 quad bit (6) unal, /* text alignment mode */ 11 217 3 art bit (1) unal, /* 1 = block countains artwork */ 11 218 3 cbar, /* change bar flags */ 11 219 4 add bit (1) unal, /* text addition flag */ 11 220 4 del bit (1) unal, /* text deletion flag for next line */ 11 221 4 mod bit (1) unal, /* text modification flag */ 11 222 3 fill_mode 11 223 bit (1) unal, /* 1 = fill mode ON */ 11 224 3 footnote bit (1) unal, /* block is a footnote */ 11 225 3 hfc bit (1) unal, /* OBSOLETE */ 11 226 3 htab_mode 11 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 11 228 3 keep bit (1) unal, /* keep mode */ 11 229 3 page bit (1) unal, /* block belongs to page, not text */ 11 230 3 title_mode 11 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 11 232 3 MBZ bit (19) unal, 11 233 2 ftrptr ptr, /* text caption block */ 11 234 2 cbar_level /* change level for cbars */ 11 235 char (1) aligned, 11 236 2 hdrptr ptr, /* text header block */ 11 237 2 left, /* left margin data */ 11 238 3 indent fixed bin (31), 11 239 3 undent fixed bin (31), 11 240 2 linespace fixed bin (31), /* line spacing value */ 11 241 2 measure fixed bin (31), /* line space for text */ 11 242 /* right margin data */ 11 243 2 right like default_parms.left, 11 244 2 fntstk, /* stack of last 20 font changes */ 11 245 3 index fixed bin, /* which one in use */ 11 246 /* entry(0) is the default */ 11 247 3 entry (0:19) like fntstk_entry; 11 248 11 249 dcl hfcblk_ptr ptr; 11 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 11 251 11 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 999 12 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 12 2* 12 3* This storage is converted from external (as declared) to internal by the 12 4* binder and contains items that must be accessible to both the bound and 12 5* unbound program. */ 12 6 12 7 /* Written: ??/??/7? - EJW 12 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 12 9* and removed the codes array; version 6. 12 10**/ 12 11 12 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 13 12 14 dcl 1 compstat$compconst 12 15 aligned like const ext static; 12 16 12 17 dcl const_version fixed bin (35) static options (constant) init (6); 12 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 12 19 fixed bin static options (constant) init (80); 12 20 dcl MAX_TREE_AREAS /* number of tree areas */ 12 21 fixed bin static options (constant) init (20); 12 22 12 23 dcl 1 const aligned based (compstat$compconst.ptr), 12 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 12 25 2 version fixed bin (35), /* structure version */ 12 26 2 art_symbols /* string of art symbols */ 12 27 char (28) aligned, 12 28 2 builtin_count /* count of builtin variables */ 12 29 fixed bin, 12 30 2 comp_dir char (200), /* dir in which compose lives */ 12 31 2 comp_version 12 32 char (8) var, /* compose version id */ 12 33 2 date_value char (8) var, /* current date */ 12 34 2 dsm_name char (32), /* device support module name */ 12 35 2 dvt_name char (32), /* device table name */ 12 36 2 max_seg_chars 12 37 fixed bin (35), /* char count in a max seg */ 12 38 2 null_str char (1) var, /* an empty string */ 12 39 2 ptrs, 12 40 ( 3 call_stk_ptr, /* -> insert call stack */ 12 41 3 colhdrptr, /* empty column header structure */ 12 42 3 ctl_ptr, /* input line structure */ 12 43 3 current_parms_ptr, /* current formatting parms */ 12 44 3 default_parms_ptr, /* default initial text parms */ 12 45 3 devptr, /* -> comp_dvt structure */ 12 46 3 dvidptr, /* -> comp_dvid structure */ 12 47 3 errblk_ptr, /* error message block pointer */ 12 48 3 footnote_parms_ptr, /* footnote formatting parms */ 12 49 3 fnttbldata_ptr, /* -> font table data */ 12 50 3 global_area_ptr, /* per invocation storage */ 12 51 3 init_page_parms_ptr, /* default initial page parms */ 12 52 3 insert_data_ptr, /* insert file data block */ 12 53 3 local_area_ptr, /* per file storage */ 12 54 3 loctbl_ptr, /* for font copying */ 12 55 3 option_ptr, /* program options block */ 12 56 3 outproc_ptr, /* device writer for cleanup */ 12 57 3 page_ptr, /* active page structure */ 12 58 3 page_header_ptr, /* empty page header structure */ 12 59 3 page_parms_ptr, /* page formatting parameter block */ 12 60 3 save_shared_ptr, /* saved shared data */ 12 61 3 shared_ptr, /* shared data structure */ 12 62 3 text_entry_ptr, /* empty text entry structure */ 12 63 3 text_header_ptr, /* empty text header structure */ 12 64 3 text_parms_ptr, /* main body formatting parms */ 12 65 3 tree_ptr /* symbol tree structure */ 12 66 ) ptr, 12 67 2 time_value char (6) var; /* time at start */ 12 68 12 69 /* Other external */ 12 70 dcl ( 12 71 ioa_, 12 72 ioa_$nnl 12 73 ) entry options (variable); 12 74 dcl iox_$error_output 12 75 ptr ext static, /* iocb pointer for error_output */ 12 76 iox_$user_input 12 77 ptr ext static, /* iocb pointer for user_input */ 12 78 iox_$user_output 12 79 ptr ext static; /* iocb pointer for user_output */ 12 80 dcl sys_info$max_seg_size 12 81 fixed bin (18) ext static; 12 82 12 83 /* END INCLUDE FILE compstat.incl.pl1 */ 1000 13 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 13 2 13 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 4 /* */ 13 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 13 6 /* */ 13 7 /* This include segment allocates space in a translator's temporary segment. It */ 13 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 13 9 /* internal procedure in the program which includes this include segment. The temporary */ 13 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 13 11 /* */ 13 12 /* S__t_a_t_u_s */ 13 13 /* */ 13 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 13 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 13 16 /* */ 13 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 18 13 19 13 20 13 21 allocate: procedure (Parea, ANwords) returns (ptr); 13 22 13 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 13 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 13 25 13 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 13 27 /* to a 0 mod 2 quantity. */ 13 28 P ptr, /* a temporary pointer. */ 13 29 code fixed bin(35), /* a status code. */ 13 30 (mod, null, ptr) builtin; 13 31 13 32 dcl 1 area based (Parea), 13 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 13 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 13 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 13 36 13 37 dcl translator_temp_$get_next_segment 13 38 entry (ptr, ptr, fixed bin(35)); 13 39 13 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 13 41 if Nwords > Lfree then do; /* handle area overflow. */ 13 42 call translator_temp_$get_next_segment (Parea, P, code); 13 43 if P = null then return (null); 13 44 Parea = P; 13 45 if Nwords > area.Lfree then return (null); 13 46 end; 13 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 13 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 13 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 13 50 return (P); 13 51 13 52 end allocate; 13 53 13 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 1001 1002 1003 end comp_tbl_ctls_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0910.4 comp_tbl_ctls_.pl1 >spec>online>comp>comp_tbl_ctls_.pl1 989 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 990 2 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 991 3 03/01/85 1411.8 comp_ctl_index.incl.pl1 >ldd>include>comp_ctl_index.incl.pl1 992 4 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 993 5 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 994 6 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 995 7 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 996 8 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 997 9 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 998 10 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 999 11 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 1000 12 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 1001 13 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 13-23 ref 13-21 13-40 13-40 EN_width 6 based fixed bin(31,0) level 2 dcl 9-7 ref 263 Lfree 2 based fixed bin(35,0) level 2 dcl 13-32 set ref 13-41 13-45 13-49* 13-49 Nwords 000774 automatic fixed bin(17,0) dcl 13-26 set ref 13-40* 13-41 13-45 13-48 13-49 Ofree 1 based fixed bin(35,0) level 2 dcl 13-32 set ref 13-47 13-48* 13-48 P 000776 automatic pointer dcl 13-26 set ref 13-42* 13-43 13-44 13-47* 13-50 Parea parameter pointer dcl 13-23 set ref 13-21 13-41 13-42* 13-44* 13-45 13-47 13-47 13-48 13-48 13-49 13-49 addr builtin function dcl 84 ref 94 align based structure level 2 dcl 10-26 area based structure level 1 unaligned dcl 13-32 art 24(06) based bit(1) level 4 in structure "tblcol" packed unaligned dcl 10-26 in procedure "comp_tbl_ctls_" set ref 864* 864 920* art 24(06) based bit(1) level 4 in structure "tblcol0" packed unaligned dcl 10-41 in procedure "comp_tbl_ctls_" ref 920 art 1004(06) based bit(1) level 4 in structure "text" packed unaligned dcl 11-49 in procedure "comp_tbl_ctls_" set ref 725 art 0(06) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 11-209 in procedure "comp_tbl_ctls_" set ref 963* balftn 320 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_tbl_ctls_" balftn 2 based structure level 2 in structure "colhdr" dcl 2-21 in procedure "comp_tbl_ctls_" balftn 320 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_tbl_ctls_" bin builtin function dcl 84 ref 643 blkndx 1 based fixed bin(17,0) level 2 dcl 11-49 set ref 777 963* blkptr 3752 based pointer level 3 dcl 9-7 ref 661 664 664 664 668 670 678 678 699 715 718 719 721 722 723 723 723 725 725 725 751 754 755 756 757 758 758 758 759 759 759 759 774 777 778 816 819 879 883 886 886 886 886 893 895 934 934 934 941 941 963 963 blktype 2 based char(2) level 2 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" ref 725 778 886 941 blktype 000100 automatic char(2) initial unaligned dcl 24 in procedure "comp_tbl_ctls_" set ref 24* 778* 941* 963* block_break 002106 constant fixed bin(17,0) initial dcl 1-9 set ref 725* 821* 886* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 9-7 ref 90 494 604 769 938 975 cbar 25 based structure level 4 in structure "tblcol0" dcl 10-41 in procedure "comp_tbl_ctls_" ref 872 922 cbar 25 based structure level 4 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 872* 922* cbar 1005 based structure level 4 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 718 754 cbar 1 based structure level 3 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" set ref 718* 754* ccol 1 based fixed bin(17,0) level 2 dcl 10-15 set ref 638 682* 683 704 711* 712 739 746* 781* 925* 963* char builtin function dcl 84 ref 324 356 397 435 459 code 001000 automatic fixed bin(35,0) dcl 13-26 set ref 13-42* col based structure level 1 dcl 2-5 col0 based structure level 1 dcl 2-37 col_index 21 based fixed bin(17,0) level 3 dcl 8-11 set ref 901 963* colhdr based structure level 1 dcl 2-21 colptr 4 based pointer array level 2 dcl 10-15 set ref 189 189* 195 205 514 517 517 536 543 548 570 576 589 600 638 683 712 732 742 742 747 811 864 864 866 866 870 870 872 872 883 904 919 920 921 922 926 930 945 column_ptr 42 based pointer array level 2 dcl 8-11 ref 721 722 comp_break_ 000012 constant entry external dcl 5-11 ref 668 725 819 821 886 893 comp_dvt based structure level 1 dcl 4-19 comp_extr_str_ 000014 constant entry external dcl 5-21 ref 485 comp_head_page_ 000016 constant entry external dcl 5-33 ref 901 comp_read_$name 000020 constant entry external dcl 5-50 ref 125 833 comp_read_$number 000022 constant entry external dcl 5-53 ref 230 263 316 348 648 comp_report_ 000024 constant entry external dcl 5-59 ref 102 140 149 324 356 397 435 459 632 656 839 comp_report_$ctlstr 000026 constant entry external dcl 5-61 ref 173 220 248 270 287 300 370 517 comp_tbl_ctls_ 000030 constant entry external dcl 5-68 ref 808 860 comp_title_block_ 000032 constant entry external dcl 5-69 ref 664 934 comp_util_$display 000034 constant entry external dcl 5-77 ref 90 604 compstat$compconst 000036 external static structure level 1 dcl 12-14 const based structure level 1 dcl 12-23 context based bit(1) level 2 dcl 10-15 set ref 729* 748* count 12(18) based fixed bin(17,0) level 3 in structure "text" packed unaligned dcl 11-49 in procedure "comp_tbl_ctls_" ref 678 886 count 12(18) based fixed bin(17,0) level 3 in structure "hfcblk" packed unaligned dcl 11-250 in procedure "comp_tbl_ctls_" ref 664 ct based fixed bin(17,0) level 2 dcl 10-5 set ref 111* 120* 128 128 137 146 155 160 166* 166 624 624* 830 844 848 908 ctl based structure level 1 dcl 11-157 ctl_index parameter fixed bin(17,0) dcl 19 set ref 14 90* 96 ctl_info_ptr 000102 automatic pointer dcl 28 set ref 94* 102* 125* 140* 149* 173* 220* 230* 248* 263* 270* 287* 300* 316* 324* 348* 356* 370* 397* 435* 459* 485* 517* 632* 648* 656* 833* 839* ctl_line based varying char(1020) dcl 11-158 set ref 90* 102* 108 125* 134 140* 149* 173* 186 211 214 217 220* 225 238 248* 270* 287* 300* 324* 356* 370* 397* 435* 459* 517* 632* 643 648 648* 656* 805* 806 833* 839* 858* 859 ctl_ptr 132 based pointer level 3 dcl 12-23 ref 90 94 102 108 108 125 125 125 134 134 140 149 173 186 186 211 211 214 214 217 217 220 225 225 227 227 238 238 240 240 248 270 287 300 324 356 370 397 435 459 517 632 640 643 648 648 648 648 648 656 764 765 766 766 805 806 806 833 833 833 839 858 859 859 cur 10 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" cur 126 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" current_parms based structure level 1 dcl 11-209 set ref 197 673 713* 719 749* 755 904 current_parms_ptr 134 based pointer level 3 dcl 12-23 set ref 197 558 570 673 713 718 719 749 754 755 766 766 904 927* 963 datum parameter fixed bin(31,0) dcl 983 ref 981 986 dec builtin function dcl 84 ref 986 default_parms based structure level 1 dcl 11-213 depth 12 based fixed bin(31,0) level 2 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 689 696 732* 742* 742 742 781* 781* 930* 947* 947* 963* 963* depth 76 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_tbl_ctls_" set ref 704* 704 devptr 140 based pointer level 3 dcl 12-23 ref 689 689 divide builtin function dcl 84 ref 570 689 986 entry 1026 based structure array level 4 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 759 entry 46 based structure array level 4 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 498 601 772 946 entry 22 based structure array level 3 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" set ref 766 exit_str 000104 automatic varying char(256) dcl 29 set ref 95* 781* 963* 975 975* field 000205 automatic varying char(1020) dcl 31 set ref 225* 227 228* 228 230* 238* 240 241* 241 244 244 253 258* 258 263* 276* 276 284 284 292* 292 294 294 309 309* 309 313 316* 319* 319 331 334* 334 336 343* 343 348* 351* 351 364 367 378 381* 381 383 386 390 392* 392 404 407 409 411 413 416* 416 422 425 432 442* 442 445 448 451 454* 454 467 470 472 474 476 479* 479 482 485* 487* 487 490 fill_mode 26 based bit(1) level 4 in structure "tblcol" packed unaligned dcl 10-26 in procedure "comp_tbl_ctls_" set ref 280* 376* 428* 499* 604* 781* 870* 947* fill_mode 26 based bit(1) level 4 in structure "tblcol0" packed unaligned dcl 10-41 in procedure "comp_tbl_ctls_" ref 870 first 776 based pointer level 3 dcl 11-49 ref 699 fmt 2 based structure array level 2 dcl 10-5 set ref 158 161* 161 163* 170 173 173 fntstk 44 based structure level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" fntstk 1024 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" fntstk 20 based structure level 2 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" fntstk_entry based structure level 1 dcl 6-6 fnxt 000605 automatic fixed bin(21,0) dcl 32 set ref 211* 214 230 263* 276 316* 319 348* 351 485* 487 font 134 based structure level 4 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 759* font 100 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 766* font 216 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 759* font 16 based structure level 3 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 766* format_break 002077 constant fixed bin(17,0) initial dcl 1-9 set ref 668* 819* 893* galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 7-5 ref 901 gutter 13 based fixed bin(31,0) level 2 dcl 10-26 set ref 208* 348* 353 538 538* 541* 548 563 594 604* 604* hbound builtin function dcl 84 ref 170 173 173 514 517 517 hdr 4 based structure level 2 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" hdr 4 based structure level 2 in structure "hfcblk" dcl 11-250 in procedure "comp_tbl_ctls_" hdr 15 based structure level 2 in structure "page" dcl 8-11 in procedure "comp_tbl_ctls_" hdrptr 1014 based pointer level 3 dcl 11-49 set ref 664 664 664* 934 934* headed 15(03) based bit(1) level 4 packed unaligned dcl 8-11 ref 901 hfcblk based structure level 1 dcl 11-250 hscales 002031 constant fixed bin(31,0) initial array dcl 33 set ref 263* 316* 348* i 000606 automatic fixed bin(17,0) dcl 35 set ref 128* 128* 132* 146 158 158 160* 160* 161 161* 163 163 170 178 178 181 182 183 499* 604* 624 624 643* 644 644* 648* 651* 653 675 678* 682* 731* 732* 746 747 844* 844* 848 862 863 864 866 870 872 883 904 915 929 930 947* 963* indent 42 based fixed bin(31,0) level 4 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 206* 781 781 indent 36 based fixed bin(31,0) level 4 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 206* 781 781 index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 108 125* 125* 134 186 211 214 217 225 227* 227 238 240* 240 640 648 648* 648* 806* 833* 833* 859* index 44 based fixed bin(17,0) level 4 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 498 601 772 946 index 1024 based fixed bin(17,0) level 4 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 759 index builtin function dcl 84 in procedure "comp_tbl_ctls_" ref 214 244 253 284 309 331 336 364 367 390 425 432 451 482 index 20 based fixed bin(17,0) level 3 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" set ref 766 info 277 based structure level 3 in structure "block" dcl 26 in procedure "comp_tbl_ctls_" info 277 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" info 161 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 94 info 277 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_tbl_ctls_" info 161 based structure level 2 in structure "text_entry" dcl 11-68 in procedure "comp_tbl_ctls_" info 161 based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_tbl_ctls_" init_tblcol 000056 constant structure level 1 dcl 59 ref 196 init_tblfmt 000000 constant structure level 1 dcl 37 ref 184 input 116 based structure level 2 dcl 11-49 input_line 375 based varying char(1020) level 2 dcl 11-49 ref 668 886 893 inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 9-7 ref 664 934 ioa_ 000040 constant entry external dcl 12-70 ref 90 499 604 947 975 ioa_$rsnnl 000010 constant entry external dcl 88 ref 781 963 j 000607 automatic fixed bin(17,0) dcl 35 set ref 186* 189 189 192 195 199 220* 248* 270* 287* 324 356 370* 397 435 459 494 499* 514 523 535* 536 538 543 543 548 554* 575* 576* 588* 589* 599* 600 604* 604* 702* 703* 739* 742 742* 777* 781 863* 864 864 866 866* 908* 909* 918* 919* 929* 930* 944* 945 947* 947 963* just constant bit(6) initial unaligned dcl 11-148 ref 281 499 604 781 947 k 000610 automatic fixed bin(17,0) dcl 35 set ref 390* 391 451* 453 keep 1006(04) based bit(1) level 4 in structure "text" packed unaligned dcl 11-49 in procedure "comp_tbl_ctls_" set ref 725 819 886 keep 26(04) based bit(1) level 4 in structure "tblcol" packed unaligned dcl 10-26 in procedure "comp_tbl_ctls_" set ref 866* 866 921* 963* keep 26(04) based bit(1) level 4 in structure "tblcol0" packed unaligned dcl 10-41 in procedure "comp_tbl_ctls_" ref 921 leader 14 based varying char(16) level 2 dcl 10-26 set ref 485* 490* 604 604* left 455 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_tbl_ctls_" ref 721 left 12 based structure level 2 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" left 36 000056 constant structure level 3 in structure "init_tblcol" dcl 59 in procedure "comp_tbl_ctls_" left 12 based structure level 2 in structure "text_parms" dcl 11-206 in procedure "comp_tbl_ctls_" left 36 based structure level 3 in structure "tblcol0" dcl 10-41 in procedure "comp_tbl_ctls_" left 1016 based structure level 3 in structure "block" dcl 26 in procedure "comp_tbl_ctls_" left 36 based structure level 3 in structure "prvtblcol" dcl 10-44 in procedure "comp_tbl_ctls_" left 21 based fixed bin(31,0) level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 208* 274* 282* 493 499* 499* 543 543 548 548 554 558 570 591 591* 594 602 604* 604* 756 764 781 781 947* 947* left 1016 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_tbl_ctls_" left 36 based structure level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" left 12 based structure level 2 in structure "default_parms" dcl 11-213 in procedure "comp_tbl_ctls_" left 1016 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" length builtin function dcl 84 ref 108 134 186 227 240 244 648 806 859 line_area based structure level 1 dcl 11-26 in procedure "comp_tbl_ctls_" line_area 776 based structure level 2 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" line_area_ptr 000736 automatic pointer initial dcl 11-25 set ref 699* 699* 702 703* 707 11-25* linptr 10 based pointer array level 2 dcl 11-26 ref 703 lmarg 165 based fixed bin(31,0) level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 764* lmarg 303 based fixed bin(31,0) level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 721* 723 756* 758 local_area_ptr 160 based pointer level 3 dcl 12-23 set ref 119* 178* 189* ltrim builtin function dcl 84 ref 228 241 258 276 292 309 319 324 334 343 351 356 381 392 397 416 435 442 454 459 479 487 margin 455 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_tbl_ctls_" margin 21 based structure level 2 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" max builtin function dcl 84 ref 563 570 742 maxdepth 2 based fixed bin(31,0) level 2 dcl 10-15 set ref 689 696 732 781* 781* 862* 862 909* 930 947* 947* 963* 963* measure 15 based fixed bin(31,0) level 2 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" set ref 558 570 measure 41 based fixed bin(31,0) level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 208* 316* 321 493 499* 499* 543 548* 554 558* 563 577 577* 594 602 604* 604* 781* 781* 947* 947* min builtin function dcl 84 ref 863 min_lead 31 based fixed bin(31,0) level 2 dcl 4-19 ref 689 689 mod builtin function dcl 13-26 ref 13-40 move_tblfmt 000612 automatic structure level 1 unaligned dcl 49 set ref 158* 163 name 32 000644 automatic varying char(65) level 2 in structure "tblfont" dcl 77 in procedure "comp_tbl_ctls_" set ref 499* 604* 781* 947* 963* name 2 based varying char(32) array level 3 in structure "tbldata" dcl 10-5 in procedure "comp_tbl_ctls_" set ref 122* 128 181* 844 ncols 3 based fixed bin(17,0) level 2 dcl 10-15 set ref 523* 535 538 543 554 575 588 599 653 678 731 739 863 863 918 929 944 ndx 5 based fixed bin(17,0) level 2 in structure "line_area" dcl 11-26 in procedure "comp_tbl_ctls_" ref 702 ndx 1 based fixed bin(17,0) level 2 in structure "tbldata" dcl 10-5 in procedure "comp_tbl_ctls_" set ref 111* 120* 636 810 813* 852 855 915* net 306 based fixed bin(31,0) level 3 dcl 11-49 set ref 723* 758* next based pointer level 2 dcl 11-26 ref 707 null builtin function dcl 13-26 in procedure "allocate" ref 13-43 13-43 13-45 null builtin function dcl 84 in procedure "comp_tbl_ctls_" ref 111 116 121 178 189 661 664 678 699 715 751 774 816 826 879 934 934 941 963 10-24 10-43 11-25 11-35 option based structure level 1 dcl 7-5 option_ptr 164 based pointer level 3 dcl 12-23 ref 901 page based structure level 1 dcl 8-11 page_header based structure level 1 dcl 8-27 page_parms based structure level 1 dcl 8-86 page_ptr 170 based pointer level 3 dcl 12-23 ref 721 722 901 901 963 parms 24 based structure level 2 in structure "tblcol0" dcl 10-41 in procedure "comp_tbl_ctls_" ref 205 parms 24 based structure level 2 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 197* 205* 670* 673* 713 749 883* 904* parms 1004 based structure level 2 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 670 719* 755* 883 posn based fixed bin(31,0) level 3 dcl 10-26 set ref 379* 604* 604* 781* 781* 947* 947* prvtblcolptr 000734 automatic pointer initial dcl 10-43 set ref 192* 10-43* ptr 000036 external static pointer level 2 in structure "compstat$compconst" dcl 12-14 in procedure "comp_tbl_ctls_" ref 90 90 94 98 102 108 108 111 111 111 116 119 119 119 119 120 120 121 122 125 125 125 128 128 128 134 134 137 140 146 149 155 158 160 161 161 163 166 166 170 173 173 173 178 178 178 181 183 186 186 189 197 211 211 214 214 217 217 220 225 225 227 227 238 238 240 240 248 263 270 287 300 324 356 370 397 435 459 494 517 558 570 604 624 624 628 632 636 637 640 643 648 648 648 648 648 656 661 664 664 664 664 668 670 673 678 678 689 689 699 713 715 718 718 719 719 721 721 722 722 723 723 723 725 725 725 749 751 754 754 755 755 756 757 758 758 758 759 759 759 759 764 765 766 766 766 766 769 769 774 777 778 801 805 806 806 810 810 813 814 816 819 826 830 833 833 833 839 844 844 848 852 855 856 858 859 859 862 863 864 866 870 872 879 883 883 886 886 886 886 893 895 901 901 901 904 904 908 909 912 915 916 927 927 929 930 934 934 934 934 938 941 941 963 963 963 963 975 ptr 14 based pointer array level 3 in structure "tbldata" dcl 10-5 in procedure "comp_tbl_ctls_" set ref 121* 178 178* 183 637 810 856 862 863 864 866 870 872 883 904 909 916 929 930 ptr builtin function dcl 13-26 in procedure "allocate" ref 13-47 ptr 172 based pointer level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" ref 90 102 108 125 134 140 149 173 186 211 214 217 220 225 238 248 270 287 300 324 356 370 397 435 459 517 632 643 648 648 656 805 806 833 839 858 859 ptrs 126 based structure level 2 in structure "const" dcl 12-23 in procedure "comp_tbl_ctls_" ptrs 3742 based structure level 2 in structure "shared" dcl 9-7 in procedure "comp_tbl_ctls_" quad 24 based bit(6) level 4 packed unaligned dcl 10-26 set ref 281* 377* 389* 391* 429* 452* 453* 499 499 499 499 499 499 604 604 604 604 604 604 781 781 781 781 781 781 947 947 947 947 947 947 quadc constant bit(6) initial unaligned dcl 11-148 ref 499 604 781 947 quadi constant bit(6) initial unaligned dcl 11-148 ref 499 604 781 947 quadl constant bit(6) initial unaligned dcl 11-148 ref 377 429 499 604 781 947 quado constant bit(6) initial unaligned dcl 11-148 ref 499 604 781 947 quadr constant bit(6) initial unaligned dcl 11-148 ref 499 604 781 947 repct 000626 automatic fixed bin(17,0) dcl 50 set ref 230* right 456 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_tbl_ctls_" ref 722 right 42 based structure level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" right 22 based fixed bin(31,0) level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" set ref 493* 499* 499* 602* 604* 604* 757 765 781 781 947* 947* rmarg 174 based fixed bin(31,0) level 2 in structure "ctl" dcl 11-157 in procedure "comp_tbl_ctls_" set ref 765* rmarg 312 based fixed bin(31,0) level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" set ref 722* 723 757* 758 round builtin function dcl 84 ref 689 986 986 scale parameter fixed bin(31,0) dcl 984 ref 981 986 shared based structure level 1 dcl 9-7 shared_ptr 200 based pointer level 3 dcl 12-23 ref 90 98 111 111 111 116 119 119 119 120 120 121 122 128 128 128 137 146 155 158 160 161 161 163 166 166 170 173 173 178 178 181 183 263 494 604 624 624 628 636 637 661 664 664 664 664 668 670 678 678 699 715 718 719 721 722 723 723 723 725 725 725 751 754 755 756 757 758 758 758 759 759 759 759 769 769 774 777 778 801 810 810 813 814 816 819 826 830 844 844 848 852 855 856 862 863 864 866 870 872 879 883 883 886 886 886 886 893 895 904 908 909 912 915 916 929 930 934 934 934 934 938 941 941 963 963 975 size builtin function dcl 84 in procedure "comp_tbl_ctls_" ref 119 119 178 178 189 189 size 54 000644 automatic fixed bin(31,0) level 2 in structure "tblfont" dcl 77 in procedure "comp_tbl_ctls_" set ref 499* 499* 604* 604* 781* 781* 947* 947* 963* 963* space 000627 automatic fixed bin(31,0) dcl 51 set ref 689* 696* 704 str 1 based varying char(32) level 3 dcl 10-26 set ref 378* 379 604 604* 781 781* 947 947* substr builtin function dcl 84 set ref 211 214 217 225 238 276 319 334 351 390 391* 392 407 409 411 413 416 442 451 453* 454 470 472 474 476 479 487 643 sws 24 based structure level 3 in structure "tblcol" dcl 10-26 in procedure "comp_tbl_ctls_" sws based structure level 2 in structure "current_parms" dcl 11-209 in procedure "comp_tbl_ctls_" sws 4 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" sws 24 based structure level 3 in structure "tblcol0" dcl 10-41 in procedure "comp_tbl_ctls_" sws 4113 based structure level 2 in structure "shared" dcl 9-7 in procedure "comp_tbl_ctls_" sws 15 based structure level 3 in structure "page" dcl 8-11 in procedure "comp_tbl_ctls_" sws 1004 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_tbl_ctls_" tab_autoadj_gtr 000630 automatic fixed bin(17,0) dcl 52 set ref 199* 297 342* 342 525 tab_autoadj_posn 000631 automatic fixed bin(17,0) dcl 54 set ref 199* 256* 256 583 tab_autoadj_width 000632 automatic fixed bin(17,0) dcl 56 set ref 199* 308* 308 339 531 551* 551 560* 560 567 570 table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 9-7 set ref 98 628 769 801 814* 912* tac_ctl_index 002030 constant fixed bin(17,0) initial dcl 3-9 set ref 808* 860* tblblk 4(05) based bit(1) level 4 packed unaligned dcl 11-49 set ref 895* tblcol 201 based fixed bin(17,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_tbl_ctls_" ref 704 tblcol based structure level 1 dcl 10-26 in procedure "comp_tbl_ctls_" set ref 189 189 196* tblcol0 based structure level 1 dcl 10-41 tblcolptr 000732 automatic pointer initial dcl 10-24 set ref 189 189 192 195* 196 197 205 206 206 208 208 208 274 279 280 281 282 316 321 348 353 376 377 378 379 379 389 391 407 409 411 413 428 429 452 453 470 472 474 476 485 490 493 493 493 498 498 499 499 499 499 499 499 499 499 499 499 499 499 499 499 499 499 499 536* 538 538 541 543 543 548 548 548 554 554 558 558 563 563 576* 577 577 589* 591 591 594 594 594 600* 601 601 602 602 602 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 604 638* 670 673 683* 685 689 689 696 696 712* 713 742 747* 749 756 757 764 765 772 772 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 781 811* 919* 920 921 922 926* 945* 946 946 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 947 963 963 963 10-24* tbldata based structure level 1 dcl 10-5 set ref 119 119 tbldata_ptr 4020 based pointer level 3 dcl 9-7 set ref 111 111 111 116 119* 119 119 120 120 121 122 128 128 128 137 146 155 158 160 161 161 163 166 166 170 173 173 178 178 181 183 624 624 636 637 810 810 813 826 830 844 844 848 852 855 856 862 863 864 866 870 872 883 904 908 909 915 916 929 930 tblfmt based structure level 1 dcl 10-15 set ref 178 178 184* tblfmt_name 000633 automatic char(32) initial unaligned dcl 76 set ref 76* 125* 128 181 833* 836 844 tblfmtndx 000727 automatic fixed bin(17,0) dcl 10-12 set ref 182* 636* 637 781* 855* 856 915* 916 tblfmtptr 000730 automatic pointer dcl 10-13 set ref 178 178 183* 184 189 189 195 205 514 517 517 523 535 536 538 543 543 548 554 570 575 576 588 589 599 600 637* 638 638 653 678 682 683 683 689 696 704 711 712 712 729 731 732 732 739 739 742 742 746 747 748 781 781 781 810* 811 856* 862 863 864 866 870 872 916* 918 919 920 921 922 925 926 930 944 945 947 947 963 963 963 tblfont 000644 automatic structure level 1 dcl 77 set ref 498* 601* 772* 946* tcol_gutter 000724 automatic fixed bin(31,0) dcl 79 set ref 528* tcol_posn 000725 automatic fixed bin(31,0) dcl 80 set ref 257* 263* 267 274 282 379 586* 591 594* tcol_width 000726 automatic fixed bin(31,0) dcl 81 set ref 534* 563* 563 570* 570 577 text based structure level 1 dcl 11-49 text_area_ptr 000740 automatic pointer initial dcl 11-35 set ref 11-35* text_entry based structure level 1 dcl 11-68 text_header based structure level 1 dcl 11-163 text_parms_ptr 206 based pointer level 3 dcl 12-23 ref 927 translator_temp_$get_next_segment 000042 constant entry external dcl 13-37 ref 13-42 txtlin based structure level 1 dcl 11-161 txtlinptr 000742 automatic pointer dcl 11-160 set ref 703* 704 704 704 unscaled 002106 constant fixed bin(31,0) initial array dcl 82 set ref 230* 648* valign 23 based bit(4) level 2 packed unaligned dcl 10-26 set ref 279* 407* 409* 411* 413* 470* 472* 474* 476* 499 499 499 499 604 604 604 604 685 689 696 781 781 781 781 947 947 947 947 vbot constant bit(4) initial unaligned dcl 10-48 ref 411 474 499 604 696 781 947 vcen constant bit(4) initial unaligned dcl 10-47 ref 409 472 499 604 689 781 947 verify builtin function dcl 84 ref 211 vjust constant bit(4) initial unaligned dcl 10-49 ref 413 476 499 604 781 947 vtop constant bit(4) initial unaligned dcl 10-46 ref 279 407 470 499 604 685 781 947 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 12-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 12-18 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 11-47 be_ctl_index internal static fixed bin(17,0) initial dcl 3-9 bef_ctl_index internal static fixed bin(17,0) initial dcl 3-9 bel_ctl_index internal static fixed bin(17,0) initial dcl 3-9 bep_ctl_index internal static fixed bin(17,0) initial dcl 3-9 blkptr automatic pointer dcl 23 block based structure level 1 dcl 26 column_break internal static fixed bin(17,0) initial dcl 1-9 comp_ 000000 constant entry external dcl 5-7 comp_art_ 000000 constant entry external dcl 5-8 comp_block_ctls_ 000000 constant entry external dcl 5-9 comp_break_ctls_ 000000 constant entry external dcl 5-12 comp_ctls_ 000000 constant entry external dcl 5-14 comp_eject_page_ 000000 constant entry external dcl 5-15 comp_expr_eval_ 000000 constant entry external dcl 5-17 comp_fill_ 000000 constant entry external dcl 5-24 comp_font_ 000000 constant entry external dcl 5-25 comp_format_ctls_ 000000 constant entry external dcl 5-26 comp_get_file_$find 000000 constant entry external dcl 5-28 comp_get_file_$open 000000 constant entry external dcl 5-31 comp_hft_ctls_ 000000 constant entry external dcl 5-35 comp_hft_ctls_$title 000000 constant entry external dcl 5-36 comp_init_$one 000000 constant entry external dcl 5-38 comp_init_$three 000000 constant entry external dcl 5-40 comp_init_$two 000000 constant entry external dcl 5-39 comp_insert_ctls_ 000000 constant entry external dcl 5-42 comp_make_page_ 000000 constant entry external dcl 5-44 comp_make_page_$cleanup 000000 constant entry external dcl 5-46 comp_measure_ 000000 constant entry external dcl 5-48 comp_read_$line 000000 constant entry external dcl 5-57 comp_report_$exact 000000 constant entry external dcl 5-64 comp_space_ 000000 constant entry external dcl 5-66 comp_update_symbol_ 000000 constant entry external dcl 5-71 comp_use_ref_ 000000 constant entry external dcl 5-74 comp_util_$add_text 000000 constant entry external dcl 5-75 comp_util_$escape 000000 constant entry external dcl 5-80 comp_util_$getblk 000000 constant entry external dcl 5-82 comp_util_$num_display 000000 constant entry external dcl 5-84 comp_util_$pageno 000000 constant entry external dcl 5-86 comp_util_$pictures 000000 constant entry external dcl 5-88 comp_util_$pop 000000 constant entry external dcl 5-91 comp_util_$push 000000 constant entry external dcl 5-92 comp_util_$relblk 000000 constant entry external dcl 5-94 comp_util_$replace_text 000000 constant entry external dcl 5-96 comp_util_$search_tree 000000 constant entry external dcl 5-98 comp_util_$set_bin 000000 constant entry external dcl 5-100 comp_util_$set_net_page 000000 constant entry external dcl 5-104 comp_util_$translate 000000 constant entry external dcl 5-106 comp_write_block_ 000000 constant entry external dcl 5-108 comp_write_page_ 000000 constant entry external dcl 5-110 compose_severity_ external static fixed bin(35,0) dcl 5-5 const_version internal static fixed bin(35,0) initial dcl 12-17 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 9-126 fin_ctl_index internal static fixed bin(17,0) initial dcl 3-9 flag_value based bit(1) unaligned dcl 9-132 fntstk_eptr automatic pointer dcl 6-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 hfcblk_ptr automatic pointer dcl 11-249 ifi_ctl_index internal static fixed bin(17,0) initial dcl 3-9 ift_ctl_index internal static fixed bin(17,0) initial dcl 3-9 init_page_parms based structure level 1 dcl 8-108 ioa_$nnl 000000 constant entry external dcl 12-70 iox_$error_output external static pointer dcl 12-74 iox_$user_input external static pointer dcl 12-74 iox_$user_output external static pointer dcl 12-74 max_cols internal static fixed bin(17,0) initial dcl 8-7 max_image_lines internal static fixed bin(17,0) initial dcl 8-5 max_text_lines internal static fixed bin(17,0) initial dcl 9-128 mode_string internal static char(16) initial unaligned dcl 9-129 need_break internal static fixed bin(17,0) initial dcl 1-9 num_value based fixed bin(31,0) dcl 9-133 option_version internal static fixed bin(35,0) initial dcl 7-3 page_break internal static fixed bin(17,0) initial dcl 1-9 page_image based structure level 1 dcl 8-56 page_image_version internal static fixed bin(35,0) initial dcl 8-53 page_version internal static fixed bin(17,0) initial dcl 8-9 prvtblcol based structure level 1 dcl 10-44 save_shared based structure level 1 dcl 9-124 shared_version internal static fixed bin(35,0) initial dcl 9-5 string_area based fixed bin(17,0) array dcl 11-43 sys_info$max_seg_size external static fixed bin(18,0) dcl 12-80 taf_ctl_index internal static fixed bin(17,0) initial dcl 3-9 tblcolndx automatic fixed bin(17,0) dcl 10-22 tblkdata based structure level 1 dcl 11-5 text_area based structure level 1 dcl 11-36 text_parms based structure level 1 dcl 11-206 txtstr based varying char(1020) dcl 11-45 txtstrptr automatic pointer dcl 11-44 NAMES DECLARED BY EXPLICIT CONTEXT. allocate 013610 constant entry internal dcl 13-21 ref 119 178 189 autoadj_err 004731 constant label dcl 300 set ref 339 comp_tbl_ctls_ 002670 constant entry external dcl 14 ctl_ 002024 constant label array(144:147) dcl 98 ref 96 return_ 013505 constant label dcl 975 ref 105 113 143 152 167 175 222 305 520 626 633 658 799 801 824 841 show 013547 constant entry internal dcl 981 ref 499 499 499 499 499 499 499 499 604 604 604 604 604 604 604 604 604 604 604 604 781 781 781 781 781 781 781 781 781 781 781 781 781 781 947 947 947 947 947 947 947 947 947 947 947 947 947 947 963 963 963 963 963 963 tab_err_1 003264 constant label dcl 140 ref 826 830 tab_err_2 003332 constant label dcl 149 ref 848 tab_loop 007161 constant label dcl 494 ref 250 272 289 327 359 373 400 439 462 NAMES DECLARED BY CONTEXT OR IMPLICATION. after builtin function ref 258 292 309 343 378 381 before builtin function ref 225 238 378 search builtin function ref 217 294 386 404 448 467 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 15512 15556 15320 15522 Length 16310 15320 44 516 172 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_tbl_ctls_ 1012 external procedure is an external procedure. show 96 internal procedure is called during a stack extension. allocate internal procedure shares stack frame of external procedure comp_tbl_ctls_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_tbl_ctls_ 000100 blktype comp_tbl_ctls_ 000102 ctl_info_ptr comp_tbl_ctls_ 000104 exit_str comp_tbl_ctls_ 000205 field comp_tbl_ctls_ 000605 fnxt comp_tbl_ctls_ 000606 i comp_tbl_ctls_ 000607 j comp_tbl_ctls_ 000610 k comp_tbl_ctls_ 000612 move_tblfmt comp_tbl_ctls_ 000626 repct comp_tbl_ctls_ 000627 space comp_tbl_ctls_ 000630 tab_autoadj_gtr comp_tbl_ctls_ 000631 tab_autoadj_posn comp_tbl_ctls_ 000632 tab_autoadj_width comp_tbl_ctls_ 000633 tblfmt_name comp_tbl_ctls_ 000644 tblfont comp_tbl_ctls_ 000724 tcol_gutter comp_tbl_ctls_ 000725 tcol_posn comp_tbl_ctls_ 000726 tcol_width comp_tbl_ctls_ 000727 tblfmtndx comp_tbl_ctls_ 000730 tblfmtptr comp_tbl_ctls_ 000732 tblcolptr comp_tbl_ctls_ 000734 prvtblcolptr comp_tbl_ctls_ 000736 line_area_ptr comp_tbl_ctls_ 000740 text_area_ptr comp_tbl_ctls_ 000742 txtlinptr comp_tbl_ctls_ 000774 Nwords allocate 000776 P allocate 001000 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this return mod_fx1 shorten_stack ext_entry int_entry trunc_fx1 round_fx1 real_to_real_tr any_to_any_tr divide_fx1 divide_fx2 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_break_ comp_extr_str_ comp_head_page_ comp_read_$name comp_read_$number comp_report_ comp_report_$ctlstr comp_tbl_ctls_ comp_title_block_ comp_util_$display ioa_ ioa_$rsnnl translator_temp_$get_next_segment 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 14 002665 24 002675 76 002677 10 24 002702 10 43 002704 11 25 002705 11 35 002706 90 002707 94 002776 95 003005 96 003006 98 003011 102 003015 105 003054 108 003055 111 003060 113 003067 116 003070 119 003074 120 003110 121 003117 122 003137 125 003156 128 003214 131 003245 132 003250 134 003252 137 003261 140 003264 143 003327 146 003330 149 003332 152 003375 155 003376 158 003400 160 003414 161 003425 162 003440 163 003442 166 003461 167 003466 170 003467 173 003472 175 003536 178 003537 181 003563 182 003577 183 003601 184 003603 186 003606 189 003622 192 003647 195 003654 196 003660 197 003663 199 003672 205 003700 206 003705 208 003707 211 003713 214 003737 217 003761 220 003774 222 004035 225 004036 227 004054 228 004060 230 004102 234 004151 238 004152 240 004167 241 004173 244 004215 248 004232 250 004300 253 004301 256 004314 257 004315 258 004317 259 004362 263 004363 267 004435 270 004436 272 004501 274 004502 276 004504 279 004541 280 004546 281 004550 282 004552 284 004554 287 004574 289 004642 292 004643 294 004706 297 004727 300 004731 305 004773 308 004774 309 004775 311 005053 313 005054 316 005061 319 005124 321 005161 324 005164 327 005272 331 005274 334 005307 336 005333 339 005346 342 005350 343 005351 344 005414 348 005415 351 005460 353 005515 356 005520 359 005626 364 005630 367 005643 370 005655 373 005723 376 005724 377 005726 378 005730 379 005760 381 005767 383 006032 386 006037 389 006053 390 006055 391 006066 392 006072 393 006116 397 006117 400 006225 404 006227 407 006243 409 006255 411 006264 413 006273 416 006301 418 006325 422 006326 425 006333 428 006346 429 006350 430 006352 432 006353 435 006366 439 006474 442 006476 445 006522 448 006527 451 006543 452 006554 453 006556 454 006561 455 006605 459 006606 462 006714 467 006716 470 006732 472 006744 474 006753 476 006762 479 006770 482 007014 485 007027 487 007106 488 007144 490 007145 493 007155 494 007161 498 007172 499 007201 512 007453 514 007455 517 007460 520 007530 523 007531 525 007534 528 007536 531 007537 534 007541 535 007542 536 007551 538 007555 541 007567 543 007570 548 007604 551 007610 554 007612 558 007622 560 007631 563 007633 565 007642 567 007644 570 007646 575 007672 576 007701 577 007705 579 007711 583 007713 586 007715 588 007716 589 007727 591 007733 594 007737 596 007743 599 007745 600 007755 601 007761 602 007767 604 007772 622 010400 624 010403 626 010413 628 010414 632 010420 633 010457 636 010460 637 010463 638 010466 640 010472 643 010475 644 010512 646 010515 648 010516 651 010564 653 010566 656 010571 658 010634 661 010635 664 010645 668 010670 670 010713 671 010724 673 010725 675 010732 678 010734 682 010761 683 010763 685 010766 689 010772 696 011016 699 011023 702 011036 703 011047 704 011053 706 011061 707 011063 709 011067 711 011071 712 011073 713 011077 715 011106 718 011115 719 011120 721 011123 722 011131 723 011133 725 011135 729 011157 731 011161 732 011171 733 011177 734 011201 739 011202 742 011215 744 011227 746 011231 747 011234 748 011237 749 011240 751 011247 754 011256 755 011261 756 011264 757 011267 758 011271 759 011273 764 011307 765 011316 766 011320 769 011335 772 011344 774 011353 777 011357 778 011362 781 011364 799 011755 801 011756 805 011762 806 011767 808 011772 810 012000 811 012011 813 012013 814 012014 816 012016 819 012022 821 012040 824 012051 826 012052 830 012057 833 012061 836 012116 839 012123 841 012166 844 012167 846 012217 848 012221 852 012230 855 012233 856 012234 858 012237 859 012245 860 012250 862 012256 863 012272 864 012303 866 012323 868 012327 870 012331 872 012350 874 012352 879 012353 883 012357 886 012367 893 012420 895 012436 897 012445 901 012446 904 012467 908 012504 909 012517 910 012527 912 012531 915 012537 916 012546 918 012551 919 012557 920 012563 921 012567 922 012573 923 012575 925 012577 926 012601 927 012603 929 012612 930 012627 932 012647 934 012651 938 012677 941 012706 944 012715 945 012725 946 012731 947 012737 963 013310 972 013503 975 013505 979 013545 981 013546 986 013554 13 21 013610 13 40 013612 13 41 013620 13 42 013624 13 43 013637 13 44 013647 13 45 013652 13 47 013662 13 48 013671 13 49 013675 13 50 013703 ----------------------------------------------------------- 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