COMPILATION LISTING OF SEGMENT comp_break_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 0948.7 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 suboutine impelmenting all break forms */ 11 12 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_break_ctls_: 15 proc (ctl_index); 16 17 /* PARAMETERS */ 18 19 dcl ctl_index fixed bin; /* control index */ 20 21 /* LOCAL STORAGE */ 22 23 dcl blank_count fixed bin; /* blank pages to be skipped */ 24 dcl blank_ftr char (1020) var; 25 dcl blank_hdr char (1020) var; 26 dcl blkusd fixed bin (31); 27 dcl break_type fixed bin; /* what flavor for .brc */ 28 dcl fnxt fixed bin (21);/* next variable field char */ 29 /* for debug at exit */ 30 dcl exit_str char (100) var init (""); 31 dcl (i, j, k) fixed bin; /* working index */ 32 dcl mode_str char (128) varying; 33 /* mode for page & par numbers */ 34 dcl ms_mode char (2); /* mode extracted from mode string */ 35 dcl needed fixed bin (31);/* space needed by break-need */ 36 dcl new_col fixed bin; /* target column */ 37 dcl new_pageno char (32) var; /* new page number for .brp */ 38 dcl old_col fixed bin; /* column we're leaving */ 39 dcl page_incr fixed bin; /* break number increment for break-page */ 40 dcl save_colno fixed bin; /* to save colno around page breaks */ 41 dcl save_ctl_line char (1020) var; 42 dcl save_ctl_index fixed bin; 43 dcl save_input bit (1); 44 dcl 1 save_text_input 45 aligned like text_entry; 46 dcl scale (1) fixed bin (31) static options (constant) 47 init (1000); 48 dcl unscaled (1) fixed bin (31) static options (constant) init (1); 49 dcl val char (32) var; /* value extracted from val string */ 50 dcl val_str char (128) var;/* value for page & par numbers */ 51 dcl varfld char (1020) var; 52 dcl vscales (7) fixed bin (31) static options (constant) 53 init (12000, 9000, 72000, 2834.65, 12000, 1000, 0); 54 55 dcl (index, length, max, mod, null) 56 builtin; 57 dcl end_output condition; 58 dcl continue_to_signal_ 59 entry (fixed bin (35)); 60 dcl ioa_$rsnnl entry options (variable); 61 62 if shared.bug_mode 63 then call ioa_ ("break_ctls: (^d) ""^a""", ctl_index, ctl_line); 64 65 on end_output /* pass the buck */ 66 call continue_to_signal_ (0); 67 68 goto ctl_ (ctl_index); 69 70 ctl_ (34): /* ".br" = break-block */ 71 ctl_ (35): /* ".brb" = break-block */ 72 brb_ctl: 73 if shared.table_mode /* map into a .brf */ 74 then goto brf_ctl; 75 76 if shared.blkptr ^= null 77 then if text.hdr.count > 0 | text.input_line ^= "" 78 then 79 do; /**/ 80 /* pending caption? */ 81 if text.parms.ftrptr ^= null & ^shared.inserting_hfc 82 then 83 do; 84 if text.input_line ^= "" 85 then call comp_break_ (format_break, 0); 86 call comp_title_block_ (text.parms.ftrptr); 87 end; 88 89 call comp_break_ (block_break, 0); 90 end; 91 92 goto return_; 93 94 ctl_ (36): /* ".brc" = break-column */ 95 if current_parms.keep 96 then 97 do; 98 call comp_report_ (2, 0, "break-column in a keep block ignored.", 99 addr (ctl.info), ctl_line); 100 goto return_; 101 end; 102 103 if shared.table_mode 104 then 105 do; 106 call comp_report_ (2, 0, "break-column in table mode ignored.", 107 addr (ctl.info), ctl_line); 108 goto return_; 109 end; 110 111 if page.parms.cols.count = 0 /* if not multicolumn */ 112 then new_col = 0; 113 114 else /* multicolumn */ 115 do; /* if a column number is given */ 116 if ctl.index <= length (ctl_line) 117 then 118 do; 119 new_col = 120 comp_read_$number (ctl_line, 1, ctl.index, ctl.index, 121 addr (ctl.info), 0); 122 if new_col < 0 123 then 124 do; 125 call comp_report_ (2, 0, "Positive value required.", 126 addr (ctl.info), ctl_line); 127 goto return_; 128 end; /**/ 129 /* too big? */ 130 if new_col > page.parms.cols.count 131 then 132 do; 133 call comp_report_ (2, 0, "Given column not defined.", 134 addr (ctl.info), ctl_line); 135 goto return_; 136 end; 137 end; 138 139 else new_col = mod (page.hdr.col_index, page.parms.cols.count) + 1; 140 141 join_brc: /* dont balance this page */ 142 if new_col > 0 & page.hdr.col_index > 0 143 then page.parms.cols.bal = "0"b; 144 end; 145 146 if shared.blkptr ^= null 147 then 148 do; /**/ 149 /* pending header? */ 150 if text.parms.hdrptr ^= null & ^shared.inserting_hfc 151 then call comp_title_block_ (text.parms.hdrptr); 152 153 blkusd = 154 text.hdr.used 155 + bin (text.input_line ^= "") * text.parms.linespace; 156 end; 157 else blkusd = 0; /**/ 158 /* fill column with WS */ 159 if page.hdr.col_index > 0 & page.hdr.used > 0 & ^page.parms.cols.bal 160 & col.hdr.net - col.depth_adj > col.hdr.used + blkusd 161 then call comp_space_ (col.hdr.net - col.depth_adj - col.hdr.used 162 - blkusd, shared.blkptr, "1"b, "1"b, "1"b, "0"b); 163 164 old_col = page.hdr.col_index; /* save exit column */ 165 /* entering or leaving col0? */ 166 if (old_col = 0 | new_col = 0) & page.hdr.used > 0 167 then call comp_break_ (column_break, 0); 168 /* * bin (^page.parms.cols.bal));*/ 169 170 if page.parms.cols.count > 0 /* if multicolumn and not moving */ 171 & old_col ^= 0 & new_col ^= 0/* to/from column 0 */ 172 then /* fill intervening columns */ 173 do; /* with nontrimmable WS */ 174 if old_col < page.parms.cols.count & new_col ^= old_col + 1 175 then 176 do i = old_col + 1 to page.parms.cols.count; 177 page.hdr.col_index = i; 178 shared.colptr = page.column_ptr (i); 179 if col.hdr.net - col.depth_adj > col.hdr.used 180 then call comp_space_ (col.hdr.net - col.depth_adj 181 - col.hdr.used, null, "1"b, "1"b, "1"b, "0"b); 182 call comp_break_ (block_break, 0); 183 end; 184 185 if new_col > 1 186 then 187 do i = 1 to new_col - 1; 188 page.hdr.col_index = i; 189 shared.colptr = page.column_ptr (i); 190 if col.hdr.net - col.depth_adj > col.hdr.used 191 then call comp_space_ (col.hdr.net - col.depth_adj 192 - col.hdr.used, null, "1"b, "1"b, "1"b, "0"b); 193 call comp_break_ (block_break, 0); 194 end; 195 end; 196 197 if new_col <= old_col & new_col ^= 0 198 then call comp_break_ (page_break, new_col); 199 200 if old_col = 0 /* if leaving column 0 */ 201 then 202 do i = 1 to page.hdr.col_count; 203 page.column_ptr (i) -> col.hdr.depth = col0.hdr.depth; 204 end; 205 206 page.hdr.col_index = new_col; /* set the new column */ 207 page.hdr.col_count = max (page.hdr.col_count, new_col); 208 shared.colptr = page.column_ptr (new_col); 209 210 if page.hdr.col_index = 0 211 then current_parms.measure = page_parms.measure; 212 else current_parms.measure = col.parms.measure; 213 214 if shared.bug_mode 215 then call ioa_$rsnnl ("col=^d u^f mrg=^f/^f/^f", exit_str, 0, 216 page.hdr.col_index, show (col.hdr.used, 12000), 217 show (col.margin.left, 12000), show (col.parms.measure, 12000), 218 show (col.margin.right, 12000)); 219 220 goto return_; 221 222 ctl_ (37): /* ".brf" = break-format */ 223 brf_ctl: 224 if shared.blkptr ^= null 225 then if length (text.input_line) > 0 226 then call comp_break_ (format_break, 0); 227 228 goto return_; 229 230 ctl_ (38): /* ".brn" = break-need */ 231 if option.galley_opt /* ignore it in galley */ 232 then goto return_; 233 234 else if current_parms.keep /* needs within keeps not allowed */ 235 then call comp_report_ (2, 0, "break-need in a keep block ignored.", 236 addr (ctl.info), ctl_line); 237 238 else if shared.ftn_mode /* needs within ftns not allowed */ 239 then call comp_report_ (2, 0, "break-need in a footnote block ignored.", 240 addr (ctl.info), ctl_line); 241 242 else 243 do; 244 if ctl.index > length (ctl_line) 245 then needed = 12000; /* default value */ 246 else needed = 247 comp_read_$number (ctl_line, vscales, ctl.index, 248 ctl.index, addr (ctl.info), 0); 249 250 save_input = "0"b; 251 if shared.blkptr ^= null () 252 then 253 do; 254 save_input = "1"b; 255 save_ctl_line = text.input_line; 256 save_text_input = text.input; 257 needed = needed + text.hdr.used; 258 259 if length (text.input_line) > 0 260 then needed = needed + 12000; 261 end; 262 263 if page.hdr.col_index = 0 /* need page space */ 264 then 265 do; 266 if shared.bug_mode 267 then call ioa_ (" (need page ^f have ^f)", 268 dec (divide (needed, 12000, 31, 10), 11, 3), 269 dec ( 270 divide (col0.hdr.net - col0.depth_adj 271 - col0.hdr.used - col0.hdr.ftn.usd, 12000, 31, 10), 272 11, 3)); 273 274 if needed 275 > col0.hdr.net - col0.depth_adj - col0.hdr.used 276 - col0.hdr.ftn.usd 277 then 278 do; 279 if ^save_input 280 then call comp_break_ (page_break, 0); 281 282 else 283 do; 284 call comp_break_ (need_break, -2); 285 286 if ^shared.end_output & shared.blkptr = null 287 then 288 do; 289 call comp_head_page_ (0); 290 call comp_util_$getblk (0, shared.blkptr, 291 "tx", addr (current_parms), "0"b); 292 text.input = save_text_input; 293 text.input.ptr = addr (text.input_line); 294 text.input_line = save_ctl_line; 295 end; 296 end; 297 end; 298 end; 299 300 else 301 do; /* need column space */ 302 if shared.bug_mode 303 then call ioa_ (" (need col ^f have ^f)", 304 dec (divide (needed, 12000, 31, 10), 11, 3), 305 dec ( 306 divide (col.hdr.net - col.depth_adj 307 - col.hdr.used - col.hdr.ftn.usd, 12000, 31, 10), 308 11, 3)); 309 310 if needed 311 > col.hdr.net - col.depth_adj - col.hdr.used 312 - col.hdr.ftn.usd 313 then 314 do; 315 new_col = 316 mod (page.hdr.col_index, page.parms.cols.count) 317 + 1; 318 goto join_brc; 319 end; 320 end; 321 end; 322 goto return_; 323 324 ctl_ (39): /* ".brp" = break-page */ 325 brp_ctl: 326 if option.galley_opt /* in galley, */ 327 then goto brb_ctl; /* map into a block break */ 328 329 if current_parms.keep /* no brp's in keep */ 330 then 331 do; 332 call comp_report_ (2, 0, "break-page in a keep block ignored.", 333 addr (ctl.info), ctl_line); 334 goto return_; 335 end; 336 337 if shared.ftn_mode /* no brp's in ftns */ 338 then 339 do; 340 call comp_report_ (2, 0, "break-page in a footnote block ignored.", 341 addr (ctl.info), ctl_line); 342 goto return_; 343 end; 344 345 if shared.table_mode 346 then 347 do; 348 tblfmtndx = tbldata.ndx; /* save table data */ 349 tblfmtptr = tbldata.fmt (tblfmtndx).ptr; 350 save_colno = tblfmt.ccol; 351 end; /**/ 352 /* anything on the page? */ 353 if page.hdr.used > 0 | shared.blkptr ^= null () 354 then call comp_break_ (page_break, 0); 355 /* if a param is given */ 356 if ctl.index <= length (rtrim (ctl_line)) 357 then 358 do; 359 if substr (ctl_line, ctl.index) = "e" 360 then 361 do; /* if param is "even" */ 362 if ^page.hdr.frontpage/* and so it the last output page */ 363 then call comp_util_$pageno (1000, new_pageno); 364 goto brp_exit; 365 end; 366 367 else if substr (ctl_line, ctl.index) = "o" 368 then 369 do; /* if param is "odd" */ 370 if page.hdr.frontpage /* and so it the last output page */ 371 then call comp_util_$pageno (1000, new_pageno); 372 goto brp_exit; 373 end; 374 375 else /* set to given parameter */ 376 do; /* if an increment */ 377 if substr (ctl_line, ctl.index, 1) = "+" 378 then 379 do; 380 page_incr = 381 comp_read_$number (ctl_line, scale, ctl.index, 382 ctl.index, addr (ctl.info), 0) + 1000; 383 call comp_util_$pageno (page_incr, new_pageno); 384 end; 385 386 else 387 do; 388 val_str = before (substr (ctl_line, ctl.index), " "); 389 mode_str = after (substr (ctl_line, ctl.index), " "); 390 391 i, j = 0; /* parse the given page number */ 392 do while (length (val_str) > 0); 393 /* look for a separator */ 394 k = search (val_str, "-.()|"); 395 396 if k > 0 /* is there one? */ 397 then 398 do; 399 val = substr (val_str, 1, k - 1); 400 if substr (val_str, k, 1) = "|" 401 then shared.pagenum.sep (i + 1) = ""; 402 else shared.pagenum.sep (i + 1) = 403 substr (val_str, k, 1); 404 val_str = substr (val_str, k + 1); 405 ms_mode = before (mode_str, ","); 406 mode_str = after (mode_str, ","); 407 end; 408 409 else 410 do; 411 ms_mode = mode_str; 412 val = val_str; 413 val_str, mode_str = ""; 414 end; /**/ 415 /* if there is no mode, */ 416 if ms_mode = "" 417 then 418 do; /* val is what it appears to be */ 419 /* numeric */ 420 if verify (val, "0123456789") = 0 421 then 422 do; 423 shared.pagenum.mode (i + 1) = 0; 424 /* ar display */ 425 shared.pagenum.nmbr (i + 1) = 426 1000 * bin (val); 427 end;/**/ 428 /* roman lower */ 429 else if verify (val, "ixcmvld") = 0 430 then 431 do; 432 shared.pagenum.mode (i + 1) = 6; 433 /* rl display */ 434 shared.pagenum.nmbr (i + 1) = 435 read_roman (val, 6); 436 end;/**/ 437 /* roman upper */ 438 else if verify (val, "IXCMVLD") = 0 439 then 440 do; 441 shared.pagenum.mode (i + 1) = 7; 442 /* ru display */ 443 shared.pagenum.nmbr (i + 1) = 444 read_roman (val, 7); 445 end;/**/ 446 /* apha lower */ 447 else if 448 verify (val, 449 "abcdefghijklmnopqrstuvwxyz") = 0 450 then 451 do; 452 shared.pagenum.mode (i + 1) = 4; 453 /* al display */ 454 shared.pagenum.nmbr (i + 1) = 455 read_alpha (val, 4); 456 end;/**/ 457 /* alpha upper */ 458 else if 459 verify (val, 460 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") = 0 461 then 462 do; 463 shared.pagenum.mode (i + 1) = 5; 464 /* au display */ 465 shared.pagenum.nmbr (i + 1) = 466 read_alpha (val, 5); 467 end; 468 end; 469 470 else /* set index value for */ 471 do; /* given mode */ 472 shared.pagenum.mode (i + 1) = 473 index (mode_string, ms_mode); 474 /* key not found */ 475 if shared.pagenum.mode (i + 1) = 0 476 then call comp_report_ (2, 0, 477 "Unknown display mode keyword.", 478 addr (ctl.info), ctl_line); 479 /* compute true index value */ 480 shared.pagenum.mode (i + 1) = 481 divide (shared.pagenum.mode (i + 1), 2, 482 17); 483 /* if a numeric is given */ 484 if verify (val, "0123456789") = 0 485 then shared.pagenum.nmbr (i + 1) = 486 1000 * bin (val); 487 488 else if shared.pagenum.mode (i + 1) = 6 489 then shared.pagenum.nmbr (i + 1) = 490 read_roman (val, 6); 491 492 else if shared.pagenum.mode (i + 1) = 7 493 then shared.pagenum.nmbr (i + 1) = 494 read_roman (val, 7); 495 496 else if shared.pagenum.mode (i + 1) = 4 497 then shared.pagenum.nmbr (i + 1) = 498 read_alpha (val, 4); 499 500 else if shared.pagenum.mode (i + 1) = 5 501 then shared.pagenum.nmbr (i + 1) = 502 read_alpha (val, 5); 503 end; 504 505 shared.pagenum.index, i = i + 1; 506 end; 507 end; /**/ 508 /* use -1 here since head_page */ 509 /* bump it be one */ 510 call comp_util_$pageno (-1000, new_pageno); 511 page_header.modified, page.hdr.modified = "0"b; 512 end; 513 514 page.hdr.pageno = new_pageno; 515 end; 516 517 brp_exit: 518 if page.parms.cols.count > 0 /* if a multi-column page */ 519 then 520 do; 521 page.hdr.col_index = 1; 522 shared.colptr = page.column_ptr (1); 523 current_parms.measure = col.parms.measure; 524 end; 525 526 if shared.table_mode 527 then 528 do; 529 ctl_line = ".tac " || ltrim (char (save_colno)); 530 ctl.index = 6; 531 call comp_tbl_ctls_ (tac_ctl_index); 532 end; 533 534 if shared.bug_mode 535 then call ioa_$rsnnl ("col=^d pageno=^a ^[front^;back^]", exit_str, 0, 536 page.hdr.col_index, page.hdr.pageno, page.hdr.frontpage); 537 538 goto return_; 539 540 read_roman: 541 proc (rstr, rmode) returns (fixed bin (31)); 542 543 dcl rstr char (32) var; 544 dcl rmode fixed bin (8); 545 546 dcl rconstr (2) char (7) static options (constant) 547 init ("ivxlcdm", "IVXLCDM"); 548 dcl rvals (7) fixed bin static options (constant) 549 init (1, 5, 10, 50, 100, 500, 1000); 550 dcl (ri, rj, rk) fixed bin; 551 dcl rval fixed bin (31); 552 553 rval = 0; 554 do ri = 1 to length (rstr); /* which char do we have? */ 555 rj = index (rconstr (rmode - 5), substr (rstr, ri, 1)); 556 /* if the char following represents a 557* larger value, then the current char 558* subtracts its value from that one. 559* Luckily, Roman numbering defined only 560* one such subtraction! */ 561 if ri < length (rstr) /* if not the last char */ 562 then 563 do; 564 rk = index (rconstr (rmode - 5), substr (rstr, ri + 1, 1)); 565 if rk > rj 566 then 567 do; 568 rval = rval + rvals (rk) - rvals (rj); 569 ri = ri + 1; 570 end; /* otherwise, the char simply adds 571* its value */ 572 else rval = rval + rvals (rj); 573 end; 574 else rval = rval + rvals (rj); /* last char adds it value */ 575 end; 576 577 return (1000 * rval); 578 579 end read_roman; 580 581 read_alpha: 582 proc (astr, amode) returns (fixed bin (31)); 583 584 dcl astr char (32) var; 585 dcl amode fixed bin (8); 586 587 dcl aconstr (2) char (26) static options (constant) 588 init ("abcdefghijklmnopqrstuvwxyz", 589 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 590 dcl ai fixed bin; 591 dcl aval fixed bin (31); 592 593 aval = 0; 594 do ai = 1 to length (astr); 595 aval = 26 * aval + index (aconstr (amode - 3), substr (astr, ai, 1)); 596 end; 597 598 return (1000 * aval); 599 600 end read_alpha; 601 602 ctl_ (40): /* ".brs" = break-skip */ 603 if shared.blkptr ^= null () 604 then if text.parms.keep 605 then 606 do; 607 call comp_report_ (2, 0, 608 "break-skip in a keep block ignored.", addr (ctl.info), 609 ctl_line); 610 goto return_; 611 end; 612 613 if page.hdr.used > 0 /* if anything on the page */ 614 then call comp_break_ (page_break, 0); 615 616 else if shared.blkptr ^= null () /* or anything waiting */ 617 then if text.hdr.used > 0 | text.input_line ^= "" 618 then call comp_break_ (page_break, 0); 619 620 varfld = substr (ctl_line, ctl.index); 621 622 if varfld ^= "" /* if there is a variable field */ 623 then 624 do; /* parameter = "even"? */ 625 if substr (varfld, 1, 1) = "e" 626 then 627 do; 628 if ^page.hdr.frontpage 629 then blank_count = 1; 630 else blank_count = 0; 631 varfld = ltrim (substr (varfld, 2)); 632 end; /**/ 633 /* parameter = "odd"? */ 634 else if substr (varfld, 1, 1) = "o" 635 then 636 do; 637 if page.hdr.frontpage 638 then blank_count = 1; 639 else blank_count = 0; 640 varfld = ltrim (substr (varfld, 2)); 641 end; 642 643 else if index ("0123456789+", substr (varfld, 1, 1)) ^= 0 644 then 645 do; 646 blank_count = 647 comp_read_$number (varfld, unscaled, 1, fnxt, 648 addr (ctl.info), 0); 649 varfld = ltrim (substr (varfld, fnxt)); 650 end; 651 652 else blank_count = 1; /* no control parameter */ 653 end; 654 655 else blank_count = 1; /* set default if nothing given */ 656 657 if blank_count > 0 /* if any separating pages */ 658 then 659 do; 660 if varfld ^= "" /* any more in the variable field? */ 661 then 662 do; /* text is first */ 663 /* get a block for it */ 664 call comp_util_$getblk (-1, shared.blank_text_ptr, "bt", 665 addr (current_parms), "0"b); 666 shared.blank_text_ptr -> text.input.quad = quadc; 667 shared.blank_text_ptr -> text.input.rmarg = 668 page.parms.measure; 669 /* get the text */ 670 shared.blank_text_ptr -> text.input_line = 671 comp_extr_str_ ("1"b, varfld, 1, fnxt, 0, 672 addr (ctl.info)); 673 varfld = ltrim (substr (varfld, fnxt)); 674 /* page header is next */ 675 if varfld ^= "" 676 then 677 do; /* get a block for it */ 678 call comp_util_$getblk (-1, shared.blank_header_ptr, 679 "bh", addr (current_parms), "0"b); 680 hfcblk_ptr = shared.blank_header_ptr; 681 /* get the title */ 682 blank_hdr = 683 comp_extr_str_ ("1"b, varfld, 1, fnxt, 0, 684 addr (ctl.info)); 685 if blank_hdr ^= "" 686 then call comp_hft_ctls_$title (shared 687 .blank_header_ptr, addr (ctl), blank_hdr, 688 ctl.linespace); 689 varfld = ltrim (substr (varfld, fnxt)); 690 end; /**/ 691 /* page footer is last */ 692 if varfld ^= "" 693 then 694 do; /* get a block for it */ 695 call comp_util_$getblk (-1, shared.blank_footer_ptr, 696 "bf", addr (current_parms), "0"b); 697 hfcblk_ptr = shared.blank_footer_ptr; 698 /* get the title */ 699 blank_ftr = 700 comp_extr_str_ ("1"b, varfld, 1, fnxt, 0, 701 addr (ctl.info)); 702 703 if blank_ftr ^= "" 704 then call comp_hft_ctls_$title (shared 705 .blank_footer_ptr, addr (ctl), blank_ftr, 706 ctl.linespace); 707 end; 708 end; 709 710 if ^option.galley_opt 711 then 712 do; /* write the blank pages */ 713 do i = blank_count to 1 by -1; 714 page.hdr.blankpage = "1"b; 715 /* head the page */ 716 call comp_head_page_ (0); 717 /* write any given text */ 718 if shared.blank_text_ptr ^= null () 719 then if shared.blank_text_ptr -> text.input_line ^= "" 720 then 721 do; /* space down to page center */ 722 call comp_space_ ( 723 divide (page.hdr.net, 2, 31, 10), 724 shared.blkptr, "1"b, "1"b, "0"b, "0"b); 725 call comp_break_ (block_break, 0); 726 call comp_util_$getblk (0, shared.blkptr, "tx", 727 addr (current_parms), "0"b); 728 call comp_util_$add_text (shared.blkptr, "1"b, 729 "1"b, "1"b, "0"b, 730 addr (shared.blank_text_ptr -> text.input) 731 ); 732 call comp_break_ (page_break, 0); 733 end; 734 else call comp_eject_page_; 735 else call comp_eject_page_; 736 end; 737 738 page.hdr.blankpage = "0"b; 739 end; 740 741 if shared.blank_header_ptr ^= null 742 then call comp_util_$relblk (-1, shared.blank_header_ptr); 743 if shared.blank_footer_ptr ^= null 744 then call comp_util_$relblk (-1, shared.blank_footer_ptr); 745 if shared.blank_text_ptr ^= null 746 then call comp_util_$relblk (-1, shared.blank_text_ptr); 747 end; 748 749 return_: 750 if shared.bug_mode 751 then call ioa_ ("^5x(break_ctls:^[ ^a^])", exit_str ^= "", exit_str); 752 753 return; 754 755 show: 756 proc (datum, scale) returns (fixed dec (11, 3)); 757 dcl datum fixed bin (31); 758 dcl scale fixed bin (31); 759 760 return ( 761 round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 762 end show; 763 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 */ 764 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 */ 765 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 */ 766 4 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 4 4 5 dcl compose_severity_ 4 6 fixed bin (35) ext static; 4 7 dcl comp_ entry; 4 8 dcl comp_art_ entry (ptr, bit (1)); 4 9 dcl comp_block_ctls_ 4 10 entry (fixed bin); 4 11 dcl comp_break_ entry (fixed bin, fixed bin); 4 12 dcl comp_break_ctls_ 4 13 entry (fixed bin); 4 14 dcl comp_ctls_ entry (bit (1) aligned); 4 15 dcl comp_eject_page_ 4 16 entry; 4 17 dcl comp_expr_eval_ 4 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 4 19 fixed bin, bit (1), fixed bin (31), char (*) var, 4 20 bit (9), fixed bin (35)); 4 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 4 22 fixed bin (21), fixed bin (21), ptr) 4 23 returns (char (*) var); 4 24 dcl comp_fill_ entry; 4 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 4 26 dcl comp_format_ctls_ 4 27 entry (fixed bin); 4 28 dcl comp_get_file_$find 4 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 4 30 fixed bin (35)); 4 31 dcl comp_get_file_$open 4 32 entry (ptr, bit (1), fixed bin (35)); 4 33 dcl comp_head_page_ 4 34 entry (fixed bin (31)); 4 35 dcl comp_hft_ctls_ entry (fixed bin); 4 36 dcl comp_hft_ctls_$title 4 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 4 38 dcl comp_init_$one entry; 4 39 dcl comp_init_$two entry; 4 40 dcl comp_init_$three 4 41 entry; 4 42 dcl comp_insert_ctls_ 4 43 entry (fixed bin); 4 44 dcl comp_make_page_ 4 45 entry (fixed bin, bit (1)); 4 46 dcl comp_make_page_$cleanup 4 47 entry; 4 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 4 49 fixed bin (31), ptr, ptr, ptr); 4 50 dcl comp_read_$name 4 51 entry (char (*) var, fixed bin (21), fixed bin (21), 4 52 ptr) returns (char (*) var); 4 53 dcl comp_read_$number 4 54 entry (char (*) var, (*) fixed bin (31), 4 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 4 56 returns (fixed bin (31)); 4 57 dcl comp_read_$line 4 58 entry (ptr, char (*) var, bit (1)); 4 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 4 60 char (*) var); 4 61 dcl comp_report_$ctlstr 4 62 entry options (variable); 4 63 /**** (sev, code, info, line, ctl_str, args... */ 4 64 dcl comp_report_$exact 4 65 entry (char (*), ptr); 4 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 4 67 bit (1)); 4 68 dcl comp_tbl_ctls_ entry (fixed bin); 4 69 dcl comp_title_block_ 4 70 entry (ptr); 4 71 dcl comp_update_symbol_ 4 72 entry (bit (1), bit (1), bit (1), char (32), 4 73 char (*) var); 4 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 4 75 dcl comp_util_$add_text 4 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 4 77 dcl comp_util_$display 4 78 entry (char (*) var, fixed bin, bit (1)) 4 79 returns (char (*) var); 4 80 dcl comp_util_$escape 4 81 entry (char (*) var, ptr); 4 82 dcl comp_util_$getblk 4 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 4 84 dcl comp_util_$num_display 4 85 entry (ptr, fixed bin) returns (char (256) var); 4 86 dcl comp_util_$pageno 4 87 entry (fixed bin, char (*) var); 4 88 dcl comp_util_$pictures /* emit pending pictures */ 4 89 entry /**/ 4 90 (ptr); /* current text block */ 4 91 dcl comp_util_$pop entry (char (32)); 4 92 dcl comp_util_$push 4 93 entry (char (32)); 4 94 dcl comp_util_$relblk 4 95 entry (fixed bin, ptr); 4 96 dcl comp_util_$replace_text 4 97 entry (ptr, bit (1), ptr, ptr); 4 98 dcl comp_util_$search_tree 4 99 entry (char (32), bit (1)); 4 100 dcl comp_util_$set_bin 4 101 entry (fixed bin (31), char (32) var, fixed bin (31), 4 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 4 103 fixed bin (31)); 4 104 dcl comp_util_$set_net_page 4 105 entry (bit (1)); 4 106 dcl comp_util_$translate 4 107 entry (char (*) var) returns (char (*) var); 4 108 dcl comp_write_block_ 4 109 entry (fixed bin); 4 110 dcl comp_write_page_ 4 111 entry; 4 112 4 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 767 5 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 5 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 5 7 2 bachelor bit (1), /* 1= has no members */ 5 8 2 devfnt fixed bin, /* font in the device */ 5 9 2 fam_name char (32), /* family name */ 5 10 2 famndx fixed bin, /* family index */ 5 11 2 fntptr ptr, /* font table pointer */ 5 12 2 mem_name char (32), /* /member name (or null) */ 5 13 2 memndx fixed bin, /* member index */ 5 14 2 memptr ptr, /* member table pointer */ 5 15 2 name char (65) var, /* font name */ 5 16 2 size fixed bin (31), /* requested point size */ 5 17 2 ps fixed bin (31), /* effective point size */ 5 18 2 fcs_str char (8); /* FCS string */ 5 19 5 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 768 6 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 6 2 6 3 dcl option_version fixed bin (35) static options (constant) init (2); 6 4 6 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 6 6 2 version fixed bin (35), 6 7 /* Options with parameters */ 6 8 (2 argument_opt, /* -argument option flag */ 6 9 2 cbar_opt, /* -change_bars option flag */ 6 10 2 cbar_art_opt, /* -change_bars_art option flag */ 6 11 2 debug_opt, /* -debug option flag */ 6 12 2 db_all_opt, /* -debug_all option flag */ 6 13 2 db_file_opt, /* -debug_file option flag */ 6 14 2 device_opt, /* -device option flag */ 6 15 2 execute_opt, /* -execute option flag */ 6 16 2 from_opt, /* -from option flag */ 6 17 2 galley_opt, /* -galley option flag */ 6 18 2 hyph_opt, /* -hyphenation option flag */ 6 19 2 indent_opt, /* -indent option flag */ 6 20 2 input_file_opt, /* -input_file option flag */ 6 21 2 linespace_opt, /* -linespace option flag */ 6 22 2 output_file_opt, /* -output_file option flag */ 6 23 2 pages_opt, /* -pages option flag */ 6 24 2 page_chng_opt, /* -pages_changed option flag */ 6 25 2 parameter_opt, /* -parameter option flag */ 6 26 2 passes_opt, /* -passes option flag */ 6 27 2 tdir_opt, /* -temp_dir option flag */ 6 28 2 to_opt, /* -to option flag */ 6 29 /* Options without parameters */ 6 30 2 annot_opt, /* -annotate */ 6 31 2 brief_opt, /* -brief option flag */ 6 32 2 check_opt, /* -check option flag */ 6 33 2 cws_opt, /* -cws option flag */ 6 34 2 db_pause_opt, /* -debug_pause option flag */ 6 35 2 noart_opt, /* -noart option flag */ 6 36 2 nobell_opt, /* -no_bell option flag */ 6 37 2 nofill_opt, /* -nofill option flag */ 6 38 2 nohit_opt, /* -nohit option flag */ 6 39 2 number_opt, /* -number option flag */ 6 40 2 number_append_opt, /* -number_append option flag */ 6 41 2 number_brief_opt, /* -number_brief option flag */ 6 42 2 stop_opt, /* -stop option flag */ 6 43 2 wait_opt) unal bit (1), /* -wait option flag */ 6 44 2 MBZ bit (2) unal, 6 45 /* Optional parameters */ 6 46 2 arg_count fixed bin, /* count of -ag values */ 6 47 2 cbar, /* change bar data */ 6 48 3 level char (1), /* change level character (ASCII NUL) */ 6 49 3 place char (1), /* placement character */ 6 50 3 space fixed bin (31), /* extra left margin space needed */ 6 51 3 left, /* left margin mark data */ 6 52 4 sep fixed bin (31), /* separation */ 6 53 4 width fixed bin (31), /* mark width */ 6 54 4 mark char (80) varying, /* the left margin mark */ 6 55 3 right, /* right margin mark data */ 6 56 4 sep fixed bin (31), /* separation */ 6 57 4 width fixed bin (31), /* mark width */ 6 58 4 mark char (80) varying, /* the right margin mark */ 6 59 3 del, /* deletion mark data */ 6 60 4 sep fixed bin (31), /* separation */ 6 61 4 width fixed bin (31), /* mark width */ 6 62 4 mark char (80) varying, /* the deletion mark */ 6 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 6 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 6 65 2 db_file char (200) var, /* file pathanme for debug */ 6 66 2 db_file_after fixed bin (35), /* debug file starting line */ 6 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 6 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 6 69 2 device char (32) varying, /* output device */ 6 70 2 extra_indent fixed bin (31), /* extra indent value */ 6 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 6 72 2 line_1 fixed bin (35), /* initial line for output */ 6 73 2 line_2 fixed bin (35), /* final line for output */ 6 74 2 linespace fixed bin (31), /* line spacing value */ 6 75 2 pglstct fixed bin (35), /* number of page list entries */ 6 76 2 pglstndx fixed bin (35), /* index for -pages list */ 6 77 2 pglst (0:49), /* list of requested pages */ 6 78 3 from char (32) var, 6 79 3 to char (32) var, 6 80 2 parameter char (80) varying, /* parameter from command line */ 6 81 2 passes fixed bin, /* passes remaining */ 6 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 6 83 6 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 6 85 769 7 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 4 7 5 dcl max_image_lines 7 6 fixed static options (constant) init (1000); 7 7 dcl max_cols fixed static options (constant) init (20); 7 8 7 9 dcl page_version fixed bin static options (constant) init (5); 7 10 /* composed page structure */ 7 11 dcl 1 page aligned based (const.page_ptr), 7 12 2 version fixed bin, /* version of this structure */ 7 13 2 parms aligned like page_parms, 7 14 /* page formatting parameters */ 7 15 2 hdr aligned like page_header, 7 16 /* page control stuff */ 7 17 2 image_ptr ptr, /* pointer to the madeup page image */ 7 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 7 19 2 col_image_ptr 7 20 (-2:21) ptr; /* pointers to column images */ 7 21 /* col -1 is for line numbers and */ 7 22 /* left margin change bars; */ 7 23 /* col -2 is for */ 7 24 /* right margin change bars */ 7 25 /* and/or annotation * / 7 26* /* page control stuff */ 7 27 dcl 1 page_header aligned based (const.page_header_ptr), 7 28 2 sws, 7 29 3 art bit (1) unal, /* 1 = header/footer art */ 7 30 3 blankpage 7 31 bit (1) unal, /* 1 = intentional blank page */ 7 32 3 frontpage 7 33 bit (1) unal, /* 1 = odd page number */ 7 34 3 headed bit (1) unal, /* 1 = page header has been written */ 7 35 3 modified bit (1) unal, /* 1 = page has been modified */ 7 36 3 overflow bit (1) unal, /* OBSOLETE */ 7 37 3 MBZ bit (12) unal, 7 38 3 dot_addltr 7 39 char (1) unal, /* dot page add letter, if any */ 7 40 3 pgc_select 7 41 char (1) unal, /* for selecting change pages */ 7 42 2 baldepth fixed bin (31), /* page depth at balance point */ 7 43 2 balusd fixed bin (31), /* space used at balance point */ 7 44 2 col_count fixed bin, /* highest value of col_index for the page */ 7 45 2 col_index fixed bin, /* column index */ 7 46 2 depth fixed bin (31), /* current page depth */ 7 47 2 hdspc fixed bin (31), /* TOP white space */ 7 48 2 lmarg fixed bin (31), /* left margin for this page */ 7 49 2 net fixed bin (31), /* net usable space on the page */ 7 50 2 pageno char (32) var, /* current page number */ 7 51 2 used fixed bin (31); /* space already used on the page */ 7 52 7 53 dcl page_image_version 7 54 fixed bin (35) static options (constant) init (2); 7 55 /* structure passed to writers */ 7 56 dcl 1 page_image aligned based (page.image_ptr), 7 57 2 version fixed bin (35), /* structure version no */ 7 58 2 count fixed bin, /* count of page image lines */ 7 59 2 file_id char (32) var, /* compout identifier */ 7 60 2 func fixed bin, /* function code; 0 = build, 7 61* 1 = intialize, 2 = cleanup */ 7 62 2 text_ptr ptr, /* pointer to the text area */ 7 63 /* the image lines */ 7 64 2 line (max_image_lines), 7 65 3 sws, 7 66 4 quad bit (6) unal, /* text set position flags */ 7 67 4 art bit (1) unal, /* 1 = artwork in the line */ 7 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 7 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 7 70 4 white bit (1) unal, /* line is white */ 7 71 4 MBZ bit (26) unal, 7 72 3 depth fixed bin (31), /* page depth for the text */ 7 73 3 gaps fixed bin, /* number of WS gaps in the line */ 7 74 3 info like text_entry.info, 7 75 /* input file info */ 7 76 3 lead fixed bin (31), /* lead value if trailing WS */ 7 77 3 lfnt fixed bin, /* font at the left margin */ 7 78 3 lmarg fixed bin (31), /* text left margin position */ 7 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 7 80 3 net fixed bin (31), /* net width for filling */ 7 81 3 pos fixed bin (31), /* current horiz position */ 7 82 3 ptr ptr, /* pointer to the text */ 7 83 3 rmarg fixed bin (31), /* text right margin position */ 7 84 3 width fixed bin (31); /* width of the text */ 7 85 /* current page formatting parms */ 7 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 7 87 2 init_page_depth 7 88 fixed bin (31), /* initial page depth */ 7 89 2 length fixed bin (31), /* page length */ 7 90 2 lmarg, /* page left margin */ 7 91 3 even fixed bin (31), 7 92 3 odd fixed bin (31), 7 93 2 margin, /* margin values */ 7 94 3 top fixed bin (31), 7 95 3 header fixed bin (31), 7 96 3 footer fixed bin (31), 7 97 3 bottom fixed bin (31), 7 98 2 measure fixed bin (31), /* line space available for text */ 7 99 2 net, /* net usable space on page */ 7 100 3 even fixed bin (31), /* even pages */ 7 101 3 odd fixed bin (31), /* odd pages */ 7 102 /* arrays at the end */ 7 103 2 cols, /* columns defined for the page */ 7 104 3 bal bit (1) unal, /* column balancing control flag */ 7 105 3 MBZ bit (17) unal, 7 106 3 count fixed bin unal; /* the number of columns */ 7 107 /* default page formatting parms */ 7 108 dcl 1 init_page_parms 7 109 aligned like page_parms 7 110 based (const.init_page_parms_ptr); 7 111 7 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 770 8 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl shared_version fixed bin (35) static options (constant) init (17); 8 6 8 7 dcl 1 shared aligned based (const.shared_ptr), 8 8 2 version fixed bin (35), /* version of this structure */ 8 9 2 chars, 8 10 ( 3 sym_delim, /* delimiter for symbols */ 8 11 3 ttl_delim, /* delimiter for title parts */ 8 12 3 wrd_brkr /* word break character */ 8 13 ) char (1) unal, 8 14 3 PAD char (1) unal, 8 15 2 cbar_type char (4) var, /* change bar type */ 8 16 2 dot_add_letter /* dot page add letter */ 8 17 char (1) var, 8 18 2 EN_width fixed bin (31), /* width of EN in current font */ 8 19 2 eqn_refct fixed bin, /* equation reference counter */ 8 20 2 footref_fcs /* footnote ref FCS string */ 8 21 char (8) aligned, 8 22 2 ftn_reset char (8) var, /* footnote reset mode */ 8 23 2 ftnrefct fixed bin, /* footnote ref counter */ 8 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 8 25 2 if_nest, /* if/then/else logic control */ 8 26 3 ndx fixed bin, /* depth of logic nest */ 8 27 3 e (25), /* nest entries */ 8 28 /* .if control switch */ 8 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 8 30 4 info aligned like text_entry.info, 8 31 4 line char (256) var, /* the control line */ 8 32 2 indctl, /* indent ctls stack */ 8 33 3 ndx fixed bin, /* current level */ 8 34 /* switch bits */ 8 35 3 stk (0:35) bit (1) unal, 8 36 2 input_dirname 8 37 char (168) var, /* dir containing current input file */ 8 38 2 input_filename 8 39 char (200) var, /* current input file name */ 8 40 2 lead fixed bin (31), /* current linespacing value */ 8 41 2 lit_count fixed bin (35), /* count of literal lines */ 8 42 2 next_pagenmbr 8 43 char (32) var, /* next page number / */ 8 44 2 output_file 8 45 char (32) var, /* output file identifier */ 8 46 2 pagecount fixed bin, /* number of pages produced */ 8 47 2 pagenum, /* page number structure */ 8 48 3 index fixed bin, /* level currently counting */ 8 49 ( 8 50 3 sep char (1) unal, /* separator chars */ 8 51 3 nmbr fixed bin (31), /* the counters */ 8 52 3 mode /* display modes */ 8 53 fixed bin (8) unal 8 54 ) dimension (20), 8 55 2 parameter char (254) var, /* command line parameter */ 8 56 2 param_pres bit (1), /* passed parameter flag */ 8 57 2 pass_counter 8 58 fixed bin, /* pass counter */ 8 59 2 picture, /* picture blocks */ 8 60 3 count fixed bin, /* number of them */ 8 61 3 space fixed bin (31), /* total picture space */ 8 62 3 blk (10), /* picture blocks */ 8 63 4 type char (4), /* type = page/col */ 8 64 4 place char (4), /* place = top/cen/bot */ 8 65 4 ptr ptr, /* pointer to block */ 8 66 4 size fixed bin (31), /* size of the picture */ 8 67 2 ptrs, 8 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 8 69 3 blank_footer_ptr, /* -> blank page footer */ 8 70 3 blank_header_ptr, /* -> blank page header */ 8 71 3 blank_text_ptr, /* -> blank page text */ 8 72 3 blkptr, /* -> active text */ 8 73 3 colptr, /* current column */ 8 74 3 compout_ptr, /* iocb pointer for output */ 8 75 3 compx_ptr, /* iocb pointer for compx file */ 8 76 3 ctb_ptr, /* current line artwork table */ 8 77 3 epftrptr, /* even page footer block */ 8 78 3 ephdrptr, /* even page header block */ 8 79 3 fcb_ptr, /* input file control block pointer */ 8 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 8 81 3 footnote_header_ptr, /* footnote header "title" */ 8 82 3 graphic_page_ptr, /* graphic output page */ 8 83 3 hit_data_ptr, /* hit data pointer */ 8 84 3 htab_ptr, /* horizontal tab tables */ 8 85 3 hwrd_data_ptr, /* local hyphenation table */ 8 86 3 insert_ptr, /* data entry for current input file */ 8 87 3 opftrptr, /* odd page footer block */ 8 88 3 ophdrptr, /* odd page header block */ 8 89 3 ptb_ptr, /* previous line artwork table */ 8 90 3 spcl_blkptr, /* "special" block pointer */ 8 91 3 tbldata_ptr, /* table column data structure */ 8 92 3 tblkdata_ptr, /* text block data array */ 8 93 3 text_header_ptr /* empty text header structure */ 8 94 ) ptr, 8 95 2 scale, /* space conversion scale factors */ 8 96 3 horz fixed bin (31), /* horizontal */ 8 97 3 vert fixed bin (31), /* vertical */ 8 98 2 source_filename 8 99 char (200) var, /* current source file name */ 8 100 2 sws, /* switch bits */ 8 101 ( 3 bug_mode, /* debug mode */ 8 102 3 compout_not_headed, /* compout is not headed */ 8 103 3 end_input, /* EOF for current input file */ 8 104 3 end_output, /* no more output is wanted */ 8 105 3 firstpass, /* first pass over input */ 8 106 3 ftn_mode, /* in footnote mode */ 8 107 3 hyph_mode, /* hyphenating mode */ 8 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 8 109 3 literal_mode, /* literal line mode flag */ 8 110 3 pageblock, /* blocks belong to page */ 8 111 3 picture_mode, /* building a picture */ 8 112 3 print_flag, /* producing output */ 8 113 3 purge_ftns, /* purging footnotes */ 8 114 3 suppress_footref, /* suppress next footnote ref */ 8 115 3 table_mode /* table mode */ 8 116 ) bit (1) unal, 8 117 3 MBZ bit (21) unal, 8 118 2 trans, /* trans table for .tr */ 8 119 3 in char (128) var, /* input chars */ 8 120 3 out char (128) var, /* output chars */ 8 121 2 widow_size fixed bin (31), /* widow size */ 8 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 8 123 /* to save shared data between files/passes */ 8 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 8 125 8 126 dcl dot_addltr_symb_index 8 127 fixed bin static options (constant) init (12); 8 128 dcl max_text_lines fixed bin static options (constant) init (1000); 8 129 dcl mode_string char (16) static options (constant) 8 130 init ("arbihxocalaurlru"); 8 131 /* value overlays */ 8 132 dcl flag_value bit (1) based; 8 133 dcl num_value fixed bin (31) based; 8 134 8 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 771 9 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 9 2 9 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 9 6 2 ct fixed bin, /* number of active table formats */ 9 7 2 ndx fixed bin, /* index of current active format */ 9 8 2 fmt (20), /* the format */ 9 9 3 name char (32) var, /* name of the format */ 9 10 3 ptr ptr; /* pointer to the format data */ 9 11 9 12 dcl tblfmtndx fixed bin; /* current table format index */ 9 13 dcl tblfmtptr ptr; /* -> current table format */ 9 14 /* table format data */ 9 15 dcl 1 tblfmt aligned based (tblfmtptr), 9 16 2 context bit (1), /* =1 if context mode */ 9 17 2 ccol fixed bin, /* the current table column */ 9 18 2 maxdepth fixed bin (31), /* max depth in table */ 9 19 2 ncols fixed bin, /* number of columns in this format */ 9 20 2 colptr (0:20) ptr; /* pointers to the columns */ 9 21 9 22 dcl tblcolndx fixed bin; /* current table column index */ 9 23 /* -> current table column */ 9 24 dcl tblcolptr ptr init (null ()); 9 25 /* table column data */ 9 26 dcl 1 tblcol aligned based (tblcolptr), 9 27 2 align, /* column alignment mode */ 9 28 3 posn fixed bin (31), 9 29 3 str char (32) var, 9 30 2 depth fixed bin (31), /* current depth for column */ 9 31 2 gutter fixed bin (31), 9 32 2 leader char (16) var, /* leadering string */ 9 33 2 margin, 9 34 3 left fixed bin (31), 9 35 3 right fixed bin (31), 9 36 2 valign bit (4) unal, /* vertical alignment flags */ 9 37 2 MBZ bit (29) unal, 9 38 2 parms /* parms for columns */ 9 39 aligned like default_parms; 9 40 9 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 9 42 /* -> previous table column */ 9 43 dcl prvtblcolptr ptr init (null ()); 9 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 9 45 9 46 dcl vtop bit (4) static options (constant) init ("1000"b); 9 47 dcl vcen bit (4) static options (constant) init ("0100"b); 9 48 dcl vbot bit (4) static options (constant) init ("0010"b); 9 49 dcl vjust bit (4) static options (constant) init ("0001"b); 9 50 9 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 772 10 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl 1 tblkdata /* data for allocated text blocks */ 10 6 aligned based (shared.tblkdata_ptr), 10 7 2 block, /* block pool */ 10 8 3 count fixed bin, 10 9 3 ptr (500) ptr, /* block pointers */ 10 10 /* block state flags */ 10 11 3 free (500) bit (1) unal, 10 12 2 line_area, /* line area pool */ 10 13 3 count fixed bin, 10 14 3 ptr (500) ptr, /* area pointers */ 10 15 /* area state flags */ 10 16 3 free (500) bit (1) unal, 10 17 2 text_area, /* text area pool */ 10 18 3 count fixed bin, 10 19 3 ptr (500) ptr, /* area pointers */ 10 20 /* area state flags */ 10 21 3 free (500) bit (1) unal, 10 22 3 string_area_count 10 23 fixed bin; /* line areas */ 10 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 10 25 dcl line_area_ptr ptr init (null); 10 26 dcl 1 line_area aligned based (line_area_ptr), 10 27 2 next ptr, /* forward thread */ 10 28 2 prev ptr, /* backward thread */ 10 29 2 count fixed bin, /* number of lines allocated */ 10 30 2 ndx fixed bin, /* index of current line */ 10 31 2 pndx fixed bin, /* area pool index */ 10 32 2 linptr (LINE_AREA_SIZE) ptr; 10 33 /* text areas */ 10 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 10 35 dcl text_area_ptr ptr init (null); 10 36 dcl 1 text_area aligned based (text_area_ptr), 10 37 2 next ptr, /* forward thread */ 10 38 2 count fixed bin, /* number of areas allocated */ 10 39 2 ndx fixed bin, /* index of current strarea */ 10 40 2 pndx fixed bin, /* area pool index */ 10 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 10 42 /* text string area */ 10 43 dcl string_area (256) fixed bin based; 10 44 dcl txtstrptr ptr; /* current text string */ 10 45 dcl txtstr char (1020) var based (txtstrptr); 10 46 10 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 10 48 /* general text block */ 10 49 dcl 1 text aligned based (shared.blkptr), 10 50 2 version fixed bin, /* version of structure */ 10 51 2 blkndx fixed bin, /* block data index */ 10 52 2 blktype char (2), /* block type code */ 10 53 /* dynamic block control stuff */ 10 54 2 hdr aligned like text_header, 10 55 /* text read from input file */ 10 56 2 input aligned like text_entry, 10 57 2 input_line char (1020) var,/* input buffer */ 10 58 2 line_area, 10 59 3 first ptr, /* head of line area thread */ 10 60 3 cur ptr, /* current line area */ 10 61 2 next_text ptr, /* next text string */ 10 62 /* text formatting parameters */ 10 63 2 parms aligned like default_parms, 10 64 2 text_area, 10 65 3 first ptr, /* head of text area thread */ 10 66 3 cur ptr; /* current text area */ 10 67 /* an empty text block line */ 10 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 10 69 2 sws, /* unaligned switches, etc. */ 10 70 3 art bit (1) unal, /* line has artwork */ 10 71 3 cbar, /* change bar flags */ 10 72 4 add bit (1) unal, /* text addition flag */ 10 73 4 del bit (1) unal, /* text deletion flag */ 10 74 4 mod bit (1) unal, /* text modification flag */ 10 75 3 default bit (1) unal, /* 1 = default case as needed */ 10 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 10 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 10 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 10 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 10 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 10 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 10 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 10 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 10 84 3 oflo bit (1) unal, /* line causes overflow */ 10 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 10 86 3 quad bit (6) unal, /* text alignment flags */ 10 87 3 space_added /* 1= line has added space */ 10 88 bit (1) unal, 10 89 3 spcl, /* special entry - not output text */ 10 90 4 file bit (1) unal, /* 1= output to special file */ 10 91 4 blk_splt /* 1= action at block split time */ 10 92 bit (1) unal, 10 93 4 page_mkup /* 1= action at page makeup time */ 10 94 bit (1) unal, 10 95 3 table bit (1) unal, /* 1= line is a table entry */ 10 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 10 97 3 title bit (1) unal, /* 1= line is a */ 10 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 10 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 10 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 10 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 10 102 3 white bit (1) unal, /* 1= line is white space */ 10 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 10 104 3 MBZ bit (4) unal, 10 105 2 art_start fixed bin unal, /* start of art string in line */ 10 106 2 art_len fixed bin unal, /* length of art string in line */ 10 107 2 cbar_level /* change level for cbars */ 10 108 char (1) aligned, 10 109 2 cur, /* current scanning data for line */ 10 110 3 chrct fixed bin, /* count of chars scanned */ 10 111 3 gaps fixed bin, /* gap count */ 10 112 3 width fixed bin (31), /* width of font chars */ 10 113 3 min fixed bin (31), /* width of min spbnds */ 10 114 3 avg fixed bin (31), /* width of avg spbnds */ 10 115 3 max fixed bin (31), /* width of max spbnds */ 10 116 3 font like fntstk_entry, 10 117 2 depth fixed bin (31), /* page depth for line */ 10 118 /* font at start of line */ 10 119 2 font like fntstk_entry, 10 120 2 index fixed bin (21), /* char index for line scanning */ 10 121 2 info, /* stuff created during line input */ 10 122 3 fileno fixed bin, /* input file index */ 10 123 3 lineno fixed bin, /* input file line number */ 10 124 3 lineno0 fixed bin, /* call_box0 line number */ 10 125 2 linespace fixed bin (31), /* linespace value for the line */ 10 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 10 127 2 mod_len fixed bin, /* length of modified text */ 10 128 2 mod_start fixed bin, /* index for start of modified text */ 10 129 2 net fixed bin (31), /* net line width for filling */ 10 130 2 ptr ptr, /* pointer to the actual text */ 10 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 10 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 10 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 10 134 2 tblcol fixed bin, /* column for table entries */ 10 135 2 title_delim 10 136 char (1) unal, /* title delimiter if a <title> */ 10 137 2 title_index 10 138 fixed bin, /* <title> block index for line */ 10 139 2 width fixed bin (31), /* width of text */ 10 140 2 ftn, /* footnote info for line */ 10 141 3 ct fixed bin, /* number of footnote refs */ 10 142 3 used fixed bin (31), /* space used */ 10 143 3 e (40), /* limit is arbitrary */ 10 144 4 blkndx fixed bin unal, /* block index of footnote - if this 10 145* value is 0, then .frf was used */ 10 146 4 refno fixed bin unal; /* reference number */ 10 147 10 148 dcl ( 10 149 quadi init ("40"b3), /* set to the inside margin */ 10 150 quado init ("20"b3), /* set to the outside margin */ 10 151 quadl init ("10"b3), /* set left */ 10 152 quadc init ("04"b3), /* set centered */ 10 153 quadr init ("02"b3), /* set right */ 10 154 just init ("01"b3) /* justified */ 10 155 ) bit (6) static options (constant); 10 156 /* control line structure */ 10 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 10 158 dcl ctl_line char (1020) var based (ctl.ptr); 10 159 10 160 dcl txtlinptr ptr; /* the current text line */ 10 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 10 162 /* empty text header structure */ 10 163 dcl 1 text_header aligned based (const.text_header_ptr), 10 164 2 sws, /* control switches */ 10 165 3 art bit (1) unal, /* block has artwork */ 10 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 10 167 3 modified bit (1) unal, /* block contains modified lines */ 10 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 10 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 10 170 3 tblblk bit (1) unal, /* a table block */ 10 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 10 172 3 white bit (1) unal, /* block is a white space block */ 10 173 3 picture bit (1) unal, /* picture block */ 10 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 10 175 3 MBZ bit (26) unal, 10 176 2 art_count fixed bin unal, /* to count input art lines */ 10 177 2 blkptr ptr, /* pointer to suspended block */ 10 178 2 cap_size fixed bin unal, /* line count of text caption */ 10 179 2 cap_used fixed bin (31), /* size of text caption */ 10 180 2 colno fixed bin unal, /* column owning the block */ 10 181 2 count fixed bin unal, /* line count for block */ 10 182 2 eqn_line_count 10 183 fixed bin unal, /* counter for equation lines */ 10 184 2 first_text fixed bin unal, /* OBSOLETE */ 10 185 2 ftn, /* footnotes */ 10 186 3 ct fixed bin, /* count */ 10 187 3 usd fixed bin (31), /* space used */ 10 188 3 blkndx (40) fixed bin, /* footnote block index values */ 10 189 2 head_size fixed bin, /* line count of text header */ 10 190 2 head_used fixed bin (31), /* size of text header */ 10 191 2 index fixed bin unal, /* block index of next output line */ 10 192 2 keep_count fixed bin unal, /* to count input keep lines */ 10 193 2 last_line fixed bin, /* last text line in column */ 10 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 10 195 2 name char (32) var, /* block name, if any */ 10 196 2 nofill_count /* to count nofill lines */ 10 197 fixed bin, 10 198 2 parms_ptr ptr, /* parms for suspended block */ 10 199 2 refer fixed bin, /* inter-block reference */ 10 200 2 refer_index /* OBSOLETE */ 10 201 fixed bin, /* a reference */ 10 202 2 split fixed bin, /* split point for balancing */ 10 203 2 trl_ws fixed bin (31), /* trailing WS */ 10 204 2 used fixed bin (31); /* page space used by a column/block */ 10 205 /* text formatting parameters */ 10 206 dcl 1 text_parms aligned like default_parms 10 207 based (const.text_parms_ptr); 10 208 10 209 dcl 1 current_parms 10 210 aligned like default_parms 10 211 based (const.current_parms_ptr); 10 212 10 213 dcl 1 default_parms 10 214 aligned based (const.default_parms_ptr), 10 215 2 sws, /* control switches */ 10 216 3 quad bit (6) unal, /* text alignment mode */ 10 217 3 art bit (1) unal, /* 1 = block countains artwork */ 10 218 3 cbar, /* change bar flags */ 10 219 4 add bit (1) unal, /* text addition flag */ 10 220 4 del bit (1) unal, /* text deletion flag for next line */ 10 221 4 mod bit (1) unal, /* text modification flag */ 10 222 3 fill_mode 10 223 bit (1) unal, /* 1 = fill mode ON */ 10 224 3 footnote bit (1) unal, /* block is a footnote */ 10 225 3 hfc bit (1) unal, /* OBSOLETE */ 10 226 3 htab_mode 10 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 10 228 3 keep bit (1) unal, /* keep mode */ 10 229 3 page bit (1) unal, /* block belongs to page, not text */ 10 230 3 title_mode 10 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 10 232 3 MBZ bit (19) unal, 10 233 2 ftrptr ptr, /* text caption block */ 10 234 2 cbar_level /* change level for cbars */ 10 235 char (1) aligned, 10 236 2 hdrptr ptr, /* text header block */ 10 237 2 left, /* left margin data */ 10 238 3 indent fixed bin (31), 10 239 3 undent fixed bin (31), 10 240 2 linespace fixed bin (31), /* line spacing value */ 10 241 2 measure fixed bin (31), /* line space for text */ 10 242 /* right margin data */ 10 243 2 right like default_parms.left, 10 244 2 fntstk, /* stack of last 20 font changes */ 10 245 3 index fixed bin, /* which one in use */ 10 246 /* entry(0) is the default */ 10 247 3 entry (0:19) like fntstk_entry; 10 248 10 249 dcl hfcblk_ptr ptr; 10 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 10 251 10 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 773 11 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 11 2* 11 3* This storage is converted from external (as declared) to internal by the 11 4* binder and contains items that must be accessible to both the bound and 11 5* unbound program. */ 11 6 11 7 /* Written: ??/??/7? - EJW 11 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 11 9* and removed the codes array; version 6. 11 10**/ 11 11 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 13 11 14 dcl 1 compstat$compconst 11 15 aligned like const ext static; 11 16 11 17 dcl const_version fixed bin (35) static options (constant) init (6); 11 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 11 19 fixed bin static options (constant) init (80); 11 20 dcl MAX_TREE_AREAS /* number of tree areas */ 11 21 fixed bin static options (constant) init (20); 11 22 11 23 dcl 1 const aligned based (compstat$compconst.ptr), 11 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 11 25 2 version fixed bin (35), /* structure version */ 11 26 2 art_symbols /* string of art symbols */ 11 27 char (28) aligned, 11 28 2 builtin_count /* count of builtin variables */ 11 29 fixed bin, 11 30 2 comp_dir char (200), /* dir in which compose lives */ 11 31 2 comp_version 11 32 char (8) var, /* compose version id */ 11 33 2 date_value char (8) var, /* current date */ 11 34 2 dsm_name char (32), /* device support module name */ 11 35 2 dvt_name char (32), /* device table name */ 11 36 2 max_seg_chars 11 37 fixed bin (35), /* char count in a max seg */ 11 38 2 null_str char (1) var, /* an empty string */ 11 39 2 ptrs, 11 40 ( 3 call_stk_ptr, /* -> insert call stack */ 11 41 3 colhdrptr, /* empty column header structure */ 11 42 3 ctl_ptr, /* input line structure */ 11 43 3 current_parms_ptr, /* current formatting parms */ 11 44 3 default_parms_ptr, /* default initial text parms */ 11 45 3 devptr, /* -> comp_dvt structure */ 11 46 3 dvidptr, /* -> comp_dvid structure */ 11 47 3 errblk_ptr, /* error message block pointer */ 11 48 3 footnote_parms_ptr, /* footnote formatting parms */ 11 49 3 fnttbldata_ptr, /* -> font table data */ 11 50 3 global_area_ptr, /* per invocation storage */ 11 51 3 init_page_parms_ptr, /* default initial page parms */ 11 52 3 insert_data_ptr, /* insert file data block */ 11 53 3 local_area_ptr, /* per file storage */ 11 54 3 loctbl_ptr, /* for font copying */ 11 55 3 option_ptr, /* program options block */ 11 56 3 outproc_ptr, /* device writer for cleanup */ 11 57 3 page_ptr, /* active page structure */ 11 58 3 page_header_ptr, /* empty page header structure */ 11 59 3 page_parms_ptr, /* page formatting parameter block */ 11 60 3 save_shared_ptr, /* saved shared data */ 11 61 3 shared_ptr, /* shared data structure */ 11 62 3 text_entry_ptr, /* empty text entry structure */ 11 63 3 text_header_ptr, /* empty text header structure */ 11 64 3 text_parms_ptr, /* main body formatting parms */ 11 65 3 tree_ptr /* symbol tree structure */ 11 66 ) ptr, 11 67 2 time_value char (6) var; /* time at start */ 11 68 11 69 /* Other external */ 11 70 dcl ( 11 71 ioa_, 11 72 ioa_$nnl 11 73 ) entry options (variable); 11 74 dcl iox_$error_output 11 75 ptr ext static, /* iocb pointer for error_output */ 11 76 iox_$user_input 11 77 ptr ext static, /* iocb pointer for user_input */ 11 78 iox_$user_output 11 79 ptr ext static; /* iocb pointer for user_output */ 11 80 dcl sys_info$max_seg_size 11 81 fixed bin (18) ext static; 11 82 11 83 /* END INCLUDE FILE compstat.incl.pl1 */ 774 775 776 end comp_break_ctls_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0908.9 comp_break_ctls_.pl1 >spec>online>comp>comp_break_ctls_.pl1 764 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 765 2 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 766 3 03/01/85 1411.8 comp_ctl_index.incl.pl1 >ldd>include>comp_ctl_index.incl.pl1 767 4 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 768 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 769 6 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 770 7 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 771 8 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 772 9 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 773 10 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 774 11 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. aconstr 000007 constant char(26) initial array unaligned dcl 587 ref 595 ai 002650 automatic fixed bin(17,0) dcl 590 set ref 594* 595* amode parameter fixed bin(8,0) dcl 585 ref 581 595 astr parameter varying char(32) dcl 584 ref 581 594 595 aval 002651 automatic fixed bin(31,0) dcl 591 set ref 593* 595* 595 598 bal 14 based bit(1) level 4 packed unaligned dcl 7-11 set ref 141* 159 balftn 320 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" balftn 2 based structure level 2 in structure "colhdr" dcl 2-21 in procedure "comp_break_ctls_" balftn 320 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" blank_count 000100 automatic fixed bin(17,0) dcl 23 set ref 628* 630* 637* 639* 646* 652* 655* 657 713 blank_footer_ptr 3744 based pointer level 3 dcl 8-7 set ref 695* 697 703* 743 743* blank_ftr 000101 automatic varying char(1020) dcl 24 set ref 699* 703 703* blank_hdr 000501 automatic varying char(1020) dcl 25 set ref 682* 685 685* blank_header_ptr 3746 based pointer level 3 dcl 8-7 set ref 678* 680 685* 741 741* blank_text_ptr 3750 based pointer level 3 dcl 8-7 set ref 664* 666 667 670 718 718 728 728 745 745* blankpage 15(01) based bit(1) level 4 packed unaligned dcl 7-11 set ref 714* 738* blkptr 3752 based pointer level 3 dcl 8-7 set ref 76 76 76 81 84 86 146 150 150 153 153 153 159* 222 222 251 255 256 257 259 286 290* 292 293 293 294 353 602 602 616 616 616 722* 726* 728* blkusd 001101 automatic fixed bin(31,0) dcl 26 set ref 153* 157* 159 159 block_break 000106 constant fixed bin(17,0) initial dcl 1-9 set ref 89* 182* 193* 725* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 8-7 ref 62 214 266 302 534 749 ccol 1 based fixed bin(17,0) level 2 dcl 9-15 ref 350 col based structure level 1 dcl 2-5 col0 based structure level 1 dcl 2-37 col_count 20 based fixed bin(17,0) level 3 dcl 7-11 set ref 200 207* 207 col_index 21 based fixed bin(17,0) level 3 dcl 7-11 set ref 139 141 159 164 177* 188* 206* 210 214* 263 315 521* 534* colhdr based structure level 1 dcl 2-21 colptr 3754 based pointer level 3 dcl 8-7 set ref 159 159 159 159 159 159 178* 179 179 179 179 179 179 189* 190 190 190 190 190 190 208* 212 214 214 214 214 214 214 214 214 302 302 302 302 302 302 302 302 310 310 310 310 522* 523 cols 14 based structure level 3 dcl 7-11 column_break 000103 constant fixed bin(17,0) initial dcl 1-9 set ref 166* column_ptr 42 based pointer array level 2 dcl 7-11 ref 178 189 203 203 208 266 266 266 266 266 266 266 266 274 274 274 274 522 comp_break_ 000014 constant entry external dcl 4-11 ref 84 89 166 182 193 197 222 279 284 353 613 616 725 732 comp_eject_page_ 000016 constant entry external dcl 4-15 ref 734 735 comp_extr_str_ 000020 constant entry external dcl 4-21 ref 670 682 699 comp_head_page_ 000022 constant entry external dcl 4-33 ref 289 716 comp_hft_ctls_$title 000024 constant entry external dcl 4-36 ref 685 703 comp_read_$number 000026 constant entry external dcl 4-53 ref 119 246 380 646 comp_report_ 000030 constant entry external dcl 4-59 ref 98 106 125 133 234 238 332 340 475 607 comp_space_ 000032 constant entry external dcl 4-66 ref 159 179 190 722 comp_tbl_ctls_ 000034 constant entry external dcl 4-68 ref 531 comp_title_block_ 000036 constant entry external dcl 4-69 ref 86 150 comp_util_$add_text 000040 constant entry external dcl 4-75 ref 728 comp_util_$getblk 000042 constant entry external dcl 4-82 ref 290 664 678 695 726 comp_util_$pageno 000044 constant entry external dcl 4-86 ref 362 370 383 510 comp_util_$relblk 000046 constant entry external dcl 4-94 ref 741 743 745 compstat$compconst 000050 external static structure level 1 dcl 11-14 const based structure level 1 dcl 11-23 continue_to_signal_ 000010 constant entry external dcl 58 ref 65 count 14(18) based fixed bin(17,0) level 4 in structure "page" packed unaligned dcl 7-11 in procedure "comp_break_ctls_" ref 111 130 139 170 174 174 315 517 count 12(18) based fixed bin(17,0) level 3 in structure "text" packed unaligned dcl 10-49 in procedure "comp_break_ctls_" ref 76 ctl based structure level 1 dcl 10-157 set ref 685 685 703 703 ctl_index parameter fixed bin(17,0) dcl 19 set ref 14 62* 68 ctl_line based varying char(1020) dcl 10-158 set ref 62* 98* 106* 116 119* 125* 133* 234* 238* 244 246* 332* 340* 356 359 367 377 380* 388 389 475* 529* 607* 620 ctl_ptr 132 based pointer level 3 dcl 11-23 ref 62 98 98 98 106 106 106 116 116 119 119 119 119 119 125 125 125 133 133 133 234 234 234 238 238 238 244 244 246 246 246 246 246 332 332 332 340 340 340 356 356 359 359 367 367 377 377 380 380 380 380 380 388 388 389 389 475 475 475 529 530 607 607 607 620 620 646 646 670 670 682 682 685 685 685 699 699 703 703 703 current_parms based structure level 1 dcl 10-209 set ref 290 290 664 664 678 678 695 695 726 726 current_parms_ptr 134 based pointer level 3 dcl 11-23 ref 94 210 212 234 290 290 329 523 664 664 678 678 695 695 726 726 datum parameter fixed bin(31,0) dcl 757 ref 755 760 default_parms based structure level 1 dcl 10-213 depth 374 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" set ref 203* depth 374 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ref 203 depth_adj 310 based fixed bin(31,0) level 2 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ref 266 266 274 depth_adj 310 based fixed bin(31,0) level 2 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" ref 159 159 179 179 190 190 302 302 310 end_output 4113(03) based bit(1) level 3 in structure "shared" packed unaligned dcl 8-7 in procedure "comp_break_ctls_" ref 286 end_output 002554 stack reference condition dcl 57 in procedure "comp_break_ctls_" ref 65 exit_str 001103 automatic varying char(100) initial dcl 30 set ref 30* 214* 534* 749 749* fmt 2 based structure array level 2 dcl 9-5 fntstk_entry based structure level 1 dcl 5-6 fnxt 001102 automatic fixed bin(21,0) dcl 28 set ref 646* 649 670* 673 682* 689 699* format_break 000077 constant fixed bin(17,0) initial dcl 1-9 set ref 84* 222* frontpage 15(02) based bit(1) level 4 packed unaligned dcl 7-11 set ref 362 370 534* 628 637 ftn 375 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" ftn 375 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 8-7 ref 238 337 ftrptr 1010 based pointer level 3 dcl 10-49 set ref 81 86* galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 6-5 ref 230 324 710 hdr 15 based structure level 2 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" hdr 4 based structure level 2 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" hdr 316 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" hdr 316 based structure level 2 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" hdrptr 1014 based pointer level 3 dcl 10-49 set ref 150 150* hfcblk_ptr 002576 automatic pointer dcl 10-249 set ref 680* 697* i 001135 automatic fixed bin(17,0) dcl 31 set ref 174* 177 178* 185* 188 189* 200* 203* 391* 400 402 423 425 432 434 441 443 452 454 463 465 472 475 480 480 484 488 488 492 492 496 496 500 500 505 505* 713* index 3502 based fixed bin(17,0) level 3 in structure "shared" dcl 8-7 in procedure "comp_break_ctls_" set ref 505* index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 10-157 in procedure "comp_break_ctls_" set ref 116 119* 119* 244 246* 246* 356 359 367 377 380* 380* 388 389 530* 620 index builtin function dcl 55 in procedure "comp_break_ctls_" ref 472 555 564 595 643 info 161 based structure level 2 in structure "text_entry" dcl 10-68 in procedure "comp_break_ctls_" info 161 based structure level 2 in structure "txtlin" dcl 10-161 in procedure "comp_break_ctls_" info 277 based structure level 3 in structure "hfcblk" dcl 10-250 in procedure "comp_break_ctls_" info 161 001622 automatic structure level 2 in structure "save_text_input" dcl 44 in procedure "comp_break_ctls_" info 277 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" info 161 based structure level 2 in structure "ctl" dcl 10-157 in procedure "comp_break_ctls_" set ref 98 98 106 106 119 119 125 125 133 133 234 234 238 238 246 246 332 332 340 340 380 380 475 475 607 607 646 646 670 670 682 682 699 699 input 116 based structure level 2 dcl 10-49 set ref 256 292* 728 728 input_line 375 based varying char(1020) level 2 dcl 10-49 set ref 76 84 153 222 255 259 293 294* 616 670* 718 inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 8-7 ref 81 150 ioa_ 000052 constant entry external dcl 11-70 ref 62 266 302 749 ioa_$rsnnl 000012 constant entry external dcl 60 ref 214 534 j 001136 automatic fixed bin(17,0) dcl 31 set ref 391* k 001137 automatic fixed bin(17,0) dcl 31 set ref 394* 396 399 400 402 404 keep 2(04) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 10-209 in procedure "comp_break_ctls_" set ref 94 234 329 keep 1006(04) based bit(1) level 4 in structure "text" packed unaligned dcl 10-49 in procedure "comp_break_ctls_" ref 602 left 36 based structure level 3 in structure "prvtblcol" dcl 9-44 in procedure "comp_break_ctls_" left 12 based structure level 2 in structure "default_parms" dcl 10-213 in procedure "comp_break_ctls_" left 12 based structure level 2 in structure "current_parms" dcl 10-209 in procedure "comp_break_ctls_" left 1016 based structure level 3 in structure "hfcblk" dcl 10-250 in procedure "comp_break_ctls_" left 1016 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" left 12 based structure level 2 in structure "text_parms" dcl 10-206 in procedure "comp_break_ctls_" left 36 based structure level 3 in structure "tblcol0" dcl 9-41 in procedure "comp_break_ctls_" left 455 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" set ref 214* 214* left 36 based structure level 3 in structure "tblcol" dcl 9-26 in procedure "comp_break_ctls_" length builtin function dcl 55 ref 116 222 244 259 356 392 554 561 594 line_area_ptr 002572 automatic pointer initial dcl 10-25 set ref 10-25* linespace 1020 based fixed bin(31,0) level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" ref 153 linespace 164 based fixed bin(31,0) level 2 in structure "ctl" dcl 10-157 in procedure "comp_break_ctls_" set ref 685* 703* margin 455 based structure level 2 dcl 2-5 max builtin function dcl 55 ref 207 measure 457 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" set ref 212 214* 214* 523 measure 15 based fixed bin(31,0) level 2 in structure "current_parms" dcl 10-209 in procedure "comp_break_ctls_" set ref 210* 212* 523* measure 11 based fixed bin(31,0) level 3 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" ref 667 measure 10 based fixed bin(31,0) level 2 in structure "page_parms" dcl 7-86 in procedure "comp_break_ctls_" ref 210 mod builtin function dcl 55 ref 139 315 mode 3534 based fixed bin(8,0) array level 3 packed unaligned dcl 8-7 set ref 423* 432* 441* 452* 463* 472* 475 480* 480 488 492 496 500 mode_str 001140 automatic varying char(128) dcl 32 set ref 389* 405 406* 406 411 413* mode_string 000037 constant char(16) initial unaligned dcl 8-129 ref 472 modified 15(04) based bit(1) level 4 in structure "page" packed unaligned dcl 7-11 in procedure "comp_break_ctls_" set ref 511* modified 0(04) based bit(1) level 3 in structure "page_header" packed unaligned dcl 7-27 in procedure "comp_break_ctls_" set ref 511* ms_mode 001201 automatic char(2) unaligned dcl 34 set ref 405* 411* 416 472 ndx 1 based fixed bin(17,0) level 2 dcl 9-5 ref 348 need_break 000060 constant fixed bin(17,0) initial dcl 1-9 set ref 284* needed 001202 automatic fixed bin(31,0) dcl 35 set ref 244* 246* 257* 257 259* 259 266 266 274 302 302 310 net 450 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" ref 159 159 179 179 190 190 302 302 310 net 450 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ref 266 266 274 net 25 based fixed bin(31,0) level 3 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" ref 722 722 new_col 001203 automatic fixed bin(17,0) dcl 36 set ref 111* 119* 122 130 139* 141 166 170 174 185 185 197 197 197* 206 207 208 315* new_pageno 001204 automatic varying char(32) dcl 37 set ref 362* 370* 383* 510* 514 nmbr 3510 based fixed bin(31,0) array level 3 dcl 8-7 set ref 425* 434* 443* 454* 465* 484* 488* 492* 496* 500* null builtin function dcl 55 ref 76 81 146 150 179 179 190 190 222 251 286 353 602 616 718 741 743 745 9-24 9-43 10-25 10-35 old_col 001215 automatic fixed bin(17,0) dcl 38 set ref 164* 166 170 174 174 174 197 200 option based structure level 1 dcl 6-5 option_ptr 164 based pointer level 3 dcl 11-23 ref 230 324 710 page based structure level 1 dcl 7-11 page_break 000063 constant fixed bin(17,0) initial dcl 1-9 set ref 197* 279* 353* 613* 616* 732* page_header based structure level 1 dcl 7-27 page_header_ptr 172 based pointer level 3 dcl 11-23 ref 511 page_incr 001216 automatic fixed bin(17,0) dcl 39 set ref 380* 383* page_parms based structure level 1 dcl 7-86 page_parms_ptr 174 based pointer level 3 dcl 11-23 ref 210 page_ptr 170 based pointer level 3 dcl 11-23 ref 111 130 139 139 141 141 159 159 159 164 166 170 174 174 177 178 188 189 200 203 203 206 207 207 208 210 214 263 266 266 266 266 266 266 266 266 274 274 274 274 315 315 353 362 370 511 514 517 521 522 534 534 534 613 628 637 667 714 722 722 738 pageno 26 based varying char(32) level 3 dcl 7-11 set ref 514* 534* pagenum 3502 based structure level 2 dcl 8-7 parms 1 based structure level 2 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" parms 1004 based structure level 2 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" parms 457 based structure level 2 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" prvtblcolptr 002570 automatic pointer initial dcl 9-43 set ref 9-43* ptr 310 based pointer level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" set ref 293* ptr 14 based pointer array level 3 in structure "tbldata" dcl 9-5 in procedure "comp_break_ctls_" ref 349 ptr 000050 external static pointer level 2 in structure "compstat$compconst" dcl 11-14 in procedure "comp_break_ctls_" ref 62 62 70 76 76 76 81 81 84 86 94 98 98 98 103 106 106 106 111 116 116 119 119 119 119 119 125 125 125 130 133 133 133 139 139 141 141 146 150 150 150 153 153 153 159 159 159 159 159 159 159 159 159 159 164 166 170 174 174 177 178 178 179 179 179 179 179 179 188 189 189 190 190 190 190 190 190 200 203 203 206 207 207 208 208 210 210 210 212 212 214 214 214 214 214 214 214 214 214 214 222 222 230 234 234 234 234 238 238 238 238 244 244 246 246 246 246 246 251 255 256 257 259 263 266 266 266 266 266 266 266 266 266 274 274 274 274 286 286 290 290 290 292 293 293 294 302 302 302 302 302 302 302 302 302 310 310 310 310 315 315 324 329 332 332 332 337 340 340 340 345 348 349 353 353 356 356 359 359 362 367 367 370 377 377 380 380 380 380 380 388 388 389 389 400 402 423 425 432 434 441 443 452 454 463 465 472 475 475 475 475 480 480 484 488 488 492 492 496 496 500 500 505 511 511 514 517 521 522 522 523 523 526 529 530 534 534 534 534 602 602 607 607 607 613 616 616 616 620 620 628 637 646 646 664 664 664 666 667 667 670 670 670 678 678 678 680 682 682 685 685 685 685 695 695 695 697 699 699 703 703 703 703 710 714 718 718 722 722 722 726 726 726 728 728 728 738 741 741 743 743 745 745 749 ptr 172 based pointer level 2 in structure "ctl" dcl 10-157 in procedure "comp_break_ctls_" set ref 62 98 106 116 119 125 133 234 238 244 246 332 340 356 359 367 377 380 388 389 475 529 607 620 ptrs 3742 based structure level 2 in structure "shared" dcl 8-7 in procedure "comp_break_ctls_" ptrs 126 based structure level 2 in structure "const" dcl 11-23 in procedure "comp_break_ctls_" quad 120(11) based bit(6) level 4 packed unaligned dcl 10-49 set ref 666* quadc constant bit(6) initial unaligned dcl 10-148 ref 666 rconstr 000033 constant char(7) initial array unaligned dcl 546 ref 555 564 ri 002634 automatic fixed bin(17,0) dcl 550 set ref 554* 555 561 564 569* 569* right 456 based fixed bin(31,0) level 3 dcl 2-5 set ref 214* 214* rj 002635 automatic fixed bin(17,0) dcl 550 set ref 555* 565 568 572 574 rk 002636 automatic fixed bin(17,0) dcl 550 set ref 564* 565 568 rmarg 312 based fixed bin(31,0) level 3 dcl 10-49 set ref 667* rmode parameter fixed bin(8,0) dcl 544 ref 540 555 564 rstr parameter varying char(32) dcl 543 ref 540 554 555 561 564 rval 002637 automatic fixed bin(31,0) dcl 551 set ref 553* 568* 568 572* 572 574* 574 577 rvals 000024 constant fixed bin(17,0) initial array dcl 548 ref 568 568 572 574 save_colno 001217 automatic fixed bin(17,0) dcl 40 set ref 350* 529 save_ctl_line 001220 automatic varying char(1020) dcl 41 set ref 255* 294 save_input 001620 automatic bit(1) unaligned dcl 43 set ref 250* 254* 279 save_text_input 001622 automatic structure level 1 dcl 44 set ref 256* 292 scale 000062 constant fixed bin(31,0) initial array dcl 46 in procedure "comp_break_ctls_" set ref 380* scale parameter fixed bin(31,0) dcl 758 in procedure "show" ref 755 760 sep 3503 based char(1) array level 3 packed unaligned dcl 8-7 set ref 400* 402* shared based structure level 1 dcl 8-7 shared_ptr 200 based pointer level 3 dcl 11-23 ref 62 70 76 76 76 81 81 84 86 103 146 150 150 150 153 153 153 159 159 159 159 159 159 159 178 179 179 179 179 179 179 189 190 190 190 190 190 190 208 212 214 214 214 214 214 214 214 214 214 222 222 238 251 255 256 257 259 266 286 286 290 292 293 293 294 302 302 302 302 302 302 302 302 302 310 310 310 310 337 345 348 349 353 400 402 423 425 432 434 441 443 452 454 463 465 472 475 480 480 484 488 488 492 492 496 496 500 500 505 522 523 526 534 602 602 616 616 616 664 666 667 670 678 680 685 695 697 703 718 718 722 726 728 728 728 741 741 743 743 745 745 749 sws 15 based structure level 3 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" sws based structure level 2 in structure "page_header" dcl 7-27 in procedure "comp_break_ctls_" sws 116 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" sws 1004 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" sws 4113 based structure level 2 in structure "shared" dcl 8-7 in procedure "comp_break_ctls_" sws based structure level 2 in structure "current_parms" dcl 10-209 in procedure "comp_break_ctls_" table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 8-7 ref 70 103 345 526 tac_ctl_index 000043 constant fixed bin(17,0) initial dcl 3-9 set ref 531* tblcol based structure level 1 dcl 9-26 tblcolptr 002566 automatic pointer initial dcl 9-24 set ref 9-24* tbldata based structure level 1 dcl 9-5 tbldata_ptr 4020 based pointer level 3 dcl 8-7 ref 348 349 tblfmt based structure level 1 dcl 9-15 tblfmtndx 002562 automatic fixed bin(17,0) dcl 9-12 set ref 348* 349 tblfmtptr 002564 automatic pointer dcl 9-13 set ref 349* 350 text based structure level 1 dcl 10-49 text_area_ptr 002574 automatic pointer initial dcl 10-35 set ref 10-35* text_entry based structure level 1 dcl 10-68 text_header based structure level 1 dcl 10-163 unscaled 000106 constant fixed bin(31,0) initial array dcl 48 set ref 646* usd 376 based fixed bin(31,0) level 4 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" ref 302 302 310 usd 376 based fixed bin(31,0) level 4 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ref 266 266 274 used 451 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_break_ctls_" set ref 159 159 179 179 190 190 214* 214* 302 302 310 used 37 based fixed bin(31,0) level 3 in structure "page" dcl 7-11 in procedure "comp_break_ctls_" ref 159 166 353 613 used 451 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_break_ctls_" ref 266 266 274 used 114 based fixed bin(31,0) level 3 in structure "text" dcl 10-49 in procedure "comp_break_ctls_" ref 153 257 616 val 002101 automatic varying char(32) dcl 49 set ref 399* 412* 420 425 429 434* 438 443* 447 454* 458 465* 484 484 488* 492* 496* 500* val_str 002112 automatic varying char(128) dcl 50 set ref 388* 392 394 399 400 402 404* 404 412 413* varfld 002153 automatic varying char(1020) dcl 51 set ref 620* 622 625 631* 631 634 640* 640 643 646* 649* 649 660 670* 673* 673 675 682* 689* 689 692 699* vscales 000044 constant fixed bin(31,0) initial array dcl 52 set ref 246* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 10-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 11-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 11-18 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 10-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 10-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 break_type automatic fixed bin(17,0) dcl 27 comp_ 000000 constant entry external dcl 4-7 comp_art_ 000000 constant entry external dcl 4-8 comp_block_ctls_ 000000 constant entry external dcl 4-9 comp_break_ctls_ 000000 constant entry external dcl 4-12 comp_ctls_ 000000 constant entry external dcl 4-14 comp_expr_eval_ 000000 constant entry external dcl 4-17 comp_fill_ 000000 constant entry external dcl 4-24 comp_font_ 000000 constant entry external dcl 4-25 comp_format_ctls_ 000000 constant entry external dcl 4-26 comp_get_file_$find 000000 constant entry external dcl 4-28 comp_get_file_$open 000000 constant entry external dcl 4-31 comp_hft_ctls_ 000000 constant entry external dcl 4-35 comp_init_$one 000000 constant entry external dcl 4-38 comp_init_$three 000000 constant entry external dcl 4-40 comp_init_$two 000000 constant entry external dcl 4-39 comp_insert_ctls_ 000000 constant entry external dcl 4-42 comp_make_page_ 000000 constant entry external dcl 4-44 comp_make_page_$cleanup 000000 constant entry external dcl 4-46 comp_measure_ 000000 constant entry external dcl 4-48 comp_read_$line 000000 constant entry external dcl 4-57 comp_read_$name 000000 constant entry external dcl 4-50 comp_report_$ctlstr 000000 constant entry external dcl 4-61 comp_report_$exact 000000 constant entry external dcl 4-64 comp_update_symbol_ 000000 constant entry external dcl 4-71 comp_use_ref_ 000000 constant entry external dcl 4-74 comp_util_$display 000000 constant entry external dcl 4-77 comp_util_$escape 000000 constant entry external dcl 4-80 comp_util_$num_display 000000 constant entry external dcl 4-84 comp_util_$pictures 000000 constant entry external dcl 4-88 comp_util_$pop 000000 constant entry external dcl 4-91 comp_util_$push 000000 constant entry external dcl 4-92 comp_util_$replace_text 000000 constant entry external dcl 4-96 comp_util_$search_tree 000000 constant entry external dcl 4-98 comp_util_$set_bin 000000 constant entry external dcl 4-100 comp_util_$set_net_page 000000 constant entry external dcl 4-104 comp_util_$translate 000000 constant entry external dcl 4-106 comp_write_block_ 000000 constant entry external dcl 4-108 comp_write_page_ 000000 constant entry external dcl 4-110 compose_severity_ external static fixed bin(35,0) dcl 4-5 const_version internal static fixed bin(35,0) initial dcl 11-17 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 8-126 fin_ctl_index internal static fixed bin(17,0) initial dcl 3-9 flag_value based bit(1) unaligned dcl 8-132 fntstk_eptr automatic pointer dcl 5-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 based structure level 1 dcl 10-250 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 7-108 ioa_$nnl 000000 constant entry external dcl 11-70 iox_$error_output external static pointer dcl 11-74 iox_$user_input external static pointer dcl 11-74 iox_$user_output external static pointer dcl 11-74 just internal static bit(6) initial unaligned dcl 10-148 line_area based structure level 1 dcl 10-26 max_cols internal static fixed bin(17,0) initial dcl 7-7 max_image_lines internal static fixed bin(17,0) initial dcl 7-5 max_text_lines internal static fixed bin(17,0) initial dcl 8-128 num_value based fixed bin(31,0) dcl 8-133 option_version internal static fixed bin(35,0) initial dcl 6-3 page_image based structure level 1 dcl 7-56 page_image_version internal static fixed bin(35,0) initial dcl 7-53 page_version internal static fixed bin(17,0) initial dcl 7-9 prvtblcol based structure level 1 dcl 9-44 quadi internal static bit(6) initial unaligned dcl 10-148 quadl internal static bit(6) initial unaligned dcl 10-148 quado internal static bit(6) initial unaligned dcl 10-148 quadr internal static bit(6) initial unaligned dcl 10-148 save_ctl_index automatic fixed bin(17,0) dcl 42 save_shared based structure level 1 dcl 8-124 shared_version internal static fixed bin(35,0) initial dcl 8-5 string_area based fixed bin(17,0) array dcl 10-43 sys_info$max_seg_size external static fixed bin(18,0) dcl 11-80 taf_ctl_index internal static fixed bin(17,0) initial dcl 3-9 tblcol0 based structure level 1 dcl 9-41 tblcolndx automatic fixed bin(17,0) dcl 9-22 tblkdata based structure level 1 dcl 10-5 text_area based structure level 1 dcl 10-36 text_parms based structure level 1 dcl 10-206 txtlin based structure level 1 dcl 10-161 txtlinptr automatic pointer dcl 10-160 txtstr based varying char(1020) dcl 10-45 txtstrptr automatic pointer dcl 10-44 vbot internal static bit(4) initial unaligned dcl 9-48 vcen internal static bit(4) initial unaligned dcl 9-47 vjust internal static bit(4) initial unaligned dcl 9-49 vtop internal static bit(4) initial unaligned dcl 9-46 NAMES DECLARED BY EXPLICIT CONTEXT. brb_ctl 000460 constant label dcl 70 ref 324 brf_ctl 002023 constant label dcl 222 ref 70 brp_ctl 002655 constant label dcl 324 brp_exit 004256 constant label dcl 517 ref 364 372 comp_break_ctls_ 000362 constant entry external dcl 14 ctl_ 000000 constant label array(34:40) dcl 70 ref 68 join_brc 001131 constant label dcl 141 ref 318 read_alpha 006337 constant entry internal dcl 581 ref 454 465 496 500 read_roman 006237 constant entry internal dcl 540 ref 434 443 488 492 return_ 006176 constant label dcl 749 ref 92 100 108 127 135 220 228 230 322 334 342 538 610 show 006404 constant entry internal dcl 755 ref 214 214 214 214 214 214 214 214 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 98 98 106 106 119 119 125 125 133 133 234 234 238 238 246 246 290 290 293 332 332 340 340 380 380 475 475 607 607 646 646 664 664 670 670 678 678 682 682 685 685 695 695 699 699 703 703 726 726 728 728 after builtin function ref 389 406 before builtin function ref 388 405 bin builtin function ref 153 425 484 char builtin function ref 529 dec builtin function ref 266 266 266 266 302 302 302 302 760 divide builtin function ref 266 266 266 266 302 302 302 302 480 722 722 760 ltrim builtin function ref 529 631 640 649 673 689 round builtin function ref 760 760 rtrim builtin function ref 356 search builtin function ref 394 substr builtin function ref 359 367 377 388 389 399 400 402 404 555 564 595 620 625 631 634 640 643 649 673 689 verify builtin function ref 420 429 438 447 458 484 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10314 10370 10062 10324 Length 11110 10062 54 504 231 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_break_ctls_ 1786 external procedure is an external procedure. on unit on line 65 70 on unit read_roman internal procedure shares stack frame of external procedure comp_break_ctls_. read_alpha internal procedure shares stack frame of external procedure comp_break_ctls_. show internal procedure shares stack frame of external procedure comp_break_ctls_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_break_ctls_ 000100 blank_count comp_break_ctls_ 000101 blank_ftr comp_break_ctls_ 000501 blank_hdr comp_break_ctls_ 001101 blkusd comp_break_ctls_ 001102 fnxt comp_break_ctls_ 001103 exit_str comp_break_ctls_ 001135 i comp_break_ctls_ 001136 j comp_break_ctls_ 001137 k comp_break_ctls_ 001140 mode_str comp_break_ctls_ 001201 ms_mode comp_break_ctls_ 001202 needed comp_break_ctls_ 001203 new_col comp_break_ctls_ 001204 new_pageno comp_break_ctls_ 001215 old_col comp_break_ctls_ 001216 page_incr comp_break_ctls_ 001217 save_colno comp_break_ctls_ 001220 save_ctl_line comp_break_ctls_ 001620 save_input comp_break_ctls_ 001622 save_text_input comp_break_ctls_ 002101 val comp_break_ctls_ 002112 val_str comp_break_ctls_ 002153 varfld comp_break_ctls_ 002562 tblfmtndx comp_break_ctls_ 002564 tblfmtptr comp_break_ctls_ 002566 tblcolptr comp_break_ctls_ 002570 prvtblcolptr comp_break_ctls_ 002572 line_area_ptr comp_break_ctls_ 002574 text_area_ptr comp_break_ctls_ 002576 hfcblk_ptr comp_break_ctls_ 002634 ri read_roman 002635 rj read_roman 002636 rk read_roman 002637 rval read_roman 002650 ai read_alpha 002651 aval read_alpha THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs call_ext_out_desc call_ext_out return mpfx2 mod_fx1 enable shorten_stack ext_entry int_entry trunc_fx1 round_fx1 real_to_real_tr any_to_any_tr divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_break_ comp_eject_page_ comp_extr_str_ comp_head_page_ comp_hft_ctls_$title comp_read_$number comp_report_ comp_space_ comp_tbl_ctls_ comp_title_block_ comp_util_$add_text comp_util_$getblk comp_util_$pageno comp_util_$relblk continue_to_signal_ ioa_ ioa_$rsnnl 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 000357 30 000367 9 24 000370 9 43 000372 10 25 000373 10 35 000374 62 000375 65 000431 68 000455 70 000460 76 000467 81 000505 84 000514 86 000532 89 000545 92 000557 94 000560 98 000567 100 000631 103 000632 106 000636 108 000700 111 000701 116 000711 119 000715 122 001000 125 001001 127 001046 130 001047 133 001060 135 001122 137 001123 139 001124 141 001131 146 001143 150 001153 153 001171 156 001212 157 001213 159 001214 164 001267 166 001275 170 001313 174 001330 177 001347 178 001354 179 001360 182 001422 183 001434 185 001436 188 001451 189 001456 190 001462 193 001524 194 001536 197 001540 200 001556 203 001573 204 001605 206 001607 207 001615 208 001621 210 001626 212 001640 214 001645 220 002022 222 002023 228 002047 230 002050 234 002057 238 002126 244 002175 246 002204 250 002247 251 002250 254 002260 255 002262 256 002270 257 002273 259 002275 263 002301 266 002304 274 002374 279 002407 284 002423 286 002435 289 002450 290 002457 292 002512 293 002522 294 002524 298 002535 302 002536 310 002626 315 002641 318 002653 322 002654 324 002655 329 002664 332 002670 334 002732 337 002733 340 002737 342 003001 345 003002 348 003005 349 003010 350 003013 353 003015 356 003037 359 003060 362 003073 364 003115 367 003116 370 003122 372 003144 377 003145 380 003151 383 003216 384 003233 388 003234 389 003250 391 003300 392 003302 394 003304 396 003317 399 003320 400 003330 402 003350 404 003360 405 003371 406 003403 407 003426 411 003427 412 003434 413 003444 416 003446 420 003453 423 003466 425 003477 427 003520 429 003521 432 003534 434 003545 436 003562 438 003563 441 003576 443 003607 445 003624 447 003625 452 003640 454 003651 456 003666 458 003667 463 003702 465 003713 468 003730 472 003731 475 003755 480 004025 484 004047 488 004112 492 004133 496 004153 500 004173 505 004212 506 004222 510 004223 511 004242 514 004251 517 004256 521 004266 522 004270 523 004273 526 004302 529 004306 530 004354 531 004357 534 004365 538 004437 602 004440 607 004454 610 004516 613 004517 616 004534 620 004561 622 004603 625 004610 628 004615 630 004624 631 004625 632 004651 634 004652 637 004654 639 004663 640 004664 641 004710 643 004711 646 004722 649 004770 650 005025 652 005026 653 005030 655 005031 657 005033 660 005035 664 005042 666 005076 667 005107 670 005112 673 005177 675 005235 678 005242 680 005270 682 005276 685 005360 689 005420 692 005455 695 005462 697 005516 699 005524 703 005606 710 005646 713 005655 714 005663 716 005671 718 005700 722 005716 725 005754 726 005766 728 006021 732 006056 733 006070 734 006071 735 006076 736 006102 738 006105 741 006113 743 006132 745 006154 749 006176 753 006236 540 006237 553 006241 554 006242 555 006253 561 006272 564 006275 565 006307 568 006311 569 006317 570 006320 572 006321 573 006324 574 006325 575 006330 577 006332 581 006337 593 006341 594 006342 595 006353 596 006375 598 006377 755 006404 760 006406 ----------------------------------------------------------- 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