COMPILATION LISTING OF SEGMENT comp_format_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 0955.9 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 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 12 comp_format_ctls_: 13 proc (ctl_index); 14 15 /* PARAMETERS */ 16 17 dcl ctl_index fixed bin; 18 19 /* LOCAL STORAGE 20* text alignment flags */ 21 dcl align_flags (6) bit (6) aligned static options (constant) 22 init ("000001"b, "000100"b, "100000"b, "001000"b, 23 "010000"b, "000010"b); 24 dcl align_mode char (32) var; 25 dcl col_depth_adj fixed bin (31); 26 dcl ercd fixed bin (35); /* error code */ 27 /* debug message for exit */ 28 dcl exit_str char (128) var init (""); 29 dcl fnxt fixed bin (21); /* next variable field char */ 30 dcl head_used fixed bin (31); 31 dcl hf_needed fixed bin (31); /* extra header/footer space needed */ 32 dcl hscales (7) fixed bin (31) static options (constant) 33 init (7200, 6000, 72000, 2834.65, 12000, 1000, 0); 34 dcl (i, j, k) fixed bin; /* working index */ 35 dcl locolptr ptr; /* for local reference */ 36 dcl 1 locol aligned like col based (locolptr); 37 dcl maxcolusd fixed bin (31); /* for setting multicolumn data */ 38 dcl min_val fixed bin (31); /* minimum page length required */ 39 dcl net_line fixed bin (31); /* net line for setting margins */ 40 dcl page_width fixed bin (31); /* width for column specs */ 41 dcl save_index fixed (35); /* to save ctl.index around calls */ 42 dcl tab_char char (1); /* htab character */ 43 dcl tab_name char (32); /* name of horizontal tab pattern */ 44 dcl unscaled (1) fixed bin (31) static options (constant) init (1); 45 /* copy of control line variable field */ 46 dcl varfld char (1020) var; 47 dcl vscales (7) fixed bin (31) static options (constant) 48 init (12000, 9000, 72000, 2834.65, 12000, 1000, 0); 49 50 dcl comp_error_table_$inconsistent 51 ext fixed bin (35); 52 dcl comp_error_table_$limitation 53 ext fixed bin (35); 54 dcl comp_error_table_$missing_delimiter 55 ext fixed bin (35); 56 dcl comp_error_table_$syntax_error 57 ext fixed bin (35); 58 59 dcl (index, length, ltrim, max, min, size) 60 builtin; 61 62 dcl ioa_$rsnnl entry options (variable); 63 64 if shared.bug_mode 65 then call ioa_ ("format_ctls: (^d) ""^a""", ctl_index, ctl_line); 66 67 maxcolusd = 0; 68 varfld = substr (ctl_line, ctl.index); 69 70 if shared.table_mode 71 then 72 do; 73 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 74 tblcolptr = tblfmt.colptr (tblfmt.ccol); 75 end; 76 77 goto ctl_ (ctl_index); 78 79 /* TEXT ALIGNMENT CONTROLS 80* both center inside left outside right 81* ".alb" ".alc" ".ali" ".all" ".alo" ".alr" */ 82 ctl_ (1): 83 ctl_ (2): 84 ctl_ (3): 85 ctl_ (4): 86 ctl_ (5): 87 ctl_ (6): 88 if shared.blkptr ^= null () /* change mode in current block */ 89 then 90 do; 91 if ^shared.ftn_mode /* not a footnote */ 92 /* or not first footnote line */ 93 | (shared.ftn_mode & text.hdr.count > 0) 94 /* clean up leftovers */ 95 then if length (text.input_line) > 0 96 then call comp_break_ (format_break, 0); 97 98 if text.hdr.colno >= 0 /* if not a loose block */ 99 | option.galley_opt /* or in galley mode */ 100 then current_parms.quad = align_flags (ctl_index); 101 text.parms.quad, text.input.quad = align_flags (ctl_index); 102 end; 103 104 else if ^current_parms.title_mode 105 then current_parms.quad = align_flags (ctl_index); 106 107 if shared.bug_mode 108 then 109 do; 110 align_mode = "%AlignMode%"; 111 call comp_use_ref_ (align_mode, "0"b, "0"b, addr (ctl.info)); 112 call ioa_$rsnnl ("align=^a", exit_str, 0, align_mode); 113 end; 114 115 goto return_; 116 117 ctl_ (74): /* ".fi" = fill_mode -> DEFAULT */ 118 goto fin_ctl; 119 120 ctl_ (75): /* ".fif" = fill-off */ 121 if shared.blkptr ^= null /* is there an active block? */ 122 then 123 do; /* clean up any leftovers */ 124 if text.input_line ^= "" 125 then call comp_break_ (format_break, 0); 126 text.parms.fill_mode = "0"b; 127 if text.hdr.colno >= 0 /* if block isnt loose */ 128 then /* set shared parm */ 129 current_parms.fill_mode = "0"b; 130 131 if ctl.index > length (ctl_line) 132 then text.hdr.nofill_count = -1; 133 else text.hdr.nofill_count = 134 comp_read_$number (ctl_line, unscaled, ctl.index, ctl.index, 135 addr (ctl.info), 0); 136 end; 137 else current_parms.fill_mode = "0"b;/* set shared parm */ 138 139 if ctl.index > length (ctl_line) 140 then text_header.nofill_count = -1; 141 else text_header.nofill_count = 142 comp_read_$number (ctl_line, unscaled, ctl.index, ctl.index, 143 addr (ctl.info), 0); 144 145 goto return_; 146 147 /* ".fin" = fill-on */ 148 ctl_ (76): 149 fin_ctl: /* fin_ctl_index */ 150 if ^option.nofill_opt /* if fill mode is not disabled */ 151 then 152 do; 153 if shared.blkptr ^= null () /* if there is an active block */ 154 then if ^text.parms.fill_mode /* if not already filling */ 155 then 156 do; 157 if length (text.input.ptr -> txtstr) > 0 158 /* clean up leftovers */ 159 then call comp_break_ (format_break, 0); 160 text.parms.fill_mode = "1"b; 161 if text.hdr.colno >= 0 /* if block isnt loose */ 162 then current_parms.fill_mode = "1"b; 163 164 end; 165 else ; /**/ 166 /* set shared parm */ 167 else current_parms.fill_mode = "1"b; 168 end; 169 goto return_; 170 171 ctl_ (101): /* ".htd" = horizontal-tabs-define */ 172 if varfld = "" /* if nothing given */ 173 then 174 do; /* and there are some defined */ 175 if shared.htab_ptr ^= null () 176 then htab.count = 0; /* cancel them all */ 177 goto return_; 178 end; 179 180 tab_name = /* fetch the pattern name */ 181 comp_read_$name (varfld, 1, fnxt, addr (ctl.info)); 182 if tab_name = "" /* if no name */ 183 then goto return_; 184 185 varfld = ltrim (substr (varfld, fnxt)); 186 187 if shared.htab_ptr = null () /* allocate htab data */ 188 then 189 do; 190 shared.htab_ptr = allocate (const.local_area_ptr, size (htab)); 191 htab.count, htab.pats = 0; /* initialize pattern count */ 192 htab.chars = ""; /* and clear chars */ 193 /* initialize the patterns */ 194 htab.pattern.name, htab.pattern.fill = ""; 195 htab.pattern.count, htab.pattern.stop = 0; 196 end; 197 198 do i = 1 to htab.count /* see if this one exists */ 199 while (tab_name ^= htab.pattern (i).name); 200 end; 201 202 if i > hbound (htab.pattern, 1) /* check pattern count limit */ 203 then 204 do; 205 call comp_report_$ctlstr (2, comp_error_table_$limitation, 206 addr (ctl.info), ctl_line, 207 "Only ^d horizontal tab patterns permitted.", 208 hbound (htab.pattern, 1)); 209 goto return_; 210 end; 211 212 if varfld = "" /* if no column stops given */ 213 then 214 do; 215 if i > htab.count /* if not known */ 216 then goto return_; 217 218 else /* cancel the pattern */ 219 do i = i to htab.count - 1; /* and close up table */ 220 htab.pattern (i) = htab.pattern (i + 1); 221 end; 222 223 htab.count = htab.count - 1; /* reduce pattern count */ 224 goto return_; 225 end; 226 227 call set_htabs (i, ercd); /* set the stops */ 228 if ercd = 0 /* record the pattern name */ 229 then htab.pattern (i).name = tab_name; 230 231 set_htabs: 232 proc (itab, pmercd); /* record stops */ 233 234 dcl itab fixed bin; /* pattern index */ 235 dcl pmercd fixed bin (35); /* error code */ 236 237 dcl jstop fixed bin; 238 239 pmercd = 0; 240 jstop, htab.pattern (itab).count = 0; 241 242 do while (varfld ^= "" & jstop < hbound (htab.pattern.stop, 1)); 243 /* extract stop column */ 244 htab.pattern (itab).stop (jstop + 1) = 245 comp_read_$number (varfld, hscales, 1, fnxt, addr (ctl.info), 246 pmercd); 247 if pmercd ^= 0 248 then return; 249 250 varfld = substr (varfld, fnxt); /**/ 251 /* extract fill string, if any */ 252 htab.pattern (itab).fill (jstop + 1) = ""; 253 if index (varfld, ",") ^= 1 254 then 255 do; 256 if index (varfld, """") = 1 257 then 258 do; 259 htab.pattern (itab).fill (jstop + 1) = 260 comp_extr_str_ ("1"b, varfld, 1, fnxt, 0, addr (ctl.info)); 261 varfld = substr (varfld, fnxt); 262 end; 263 264 else 265 do; 266 k = search (varfld, ", "); 267 if k > 0 268 then 269 do; 270 htab.pattern (itab).fill (jstop + 1) = 271 substr (varfld, 1, k - 1); 272 varfld = substr (varfld, k); 273 end; 274 else 275 do; 276 htab.pattern (itab).fill (jstop + 1) = varfld; 277 varfld = ""; 278 end; 279 end; 280 end; /**/ 281 /* check for a comma */ 282 if varfld ^= "" & index (varfld, ",") ^= 1 283 then 284 do; 285 pmercd = comp_error_table_$missing_delimiter; 286 call comp_report_$ctlstr (2, pmercd, addr (ctl.info), ctl_line, 287 "Missing comma after stop column ^d", jstop + 1); 288 return; 289 end; 290 291 varfld = after (varfld, ","); /* step over comma */ 292 293 if htab.pattern (itab).stop (jstop + 1) = 0 294 then call comp_report_ (2, 0, "Invalid tab stop in column 0 ignored.", 295 addr (ctl.info), ctl_line); 296 else jstop = jstop + 1; 297 end; 298 299 if varfld ^= "" /* if more were given */ 300 then call comp_report_$ctlstr (2, comp_error_table_$limitation, 301 addr (ctl.info), ctl_line, 302 "More than ^d tab stops given. The excess will be ignored.", 303 hbound (htab.pattern.stop, 1)); 304 305 htab.pattern (itab).count = jstop; 306 htab.count = max (itab, htab.count); 307 308 end set_htabs; 309 310 goto return_; 311 312 ctl_ (102): /* ".htf" = horizontal-tabs-off */ 313 if shared.htab_ptr = null () /* if no tab patterns */ 314 then goto return_; 315 316 if ctl.index > length (ctl_line) /* if no tab chars given */ 317 then htab.chars = ""; /* clear the tab char string */ 318 319 else /* for each given character */ 320 do ctl.index = ctl.index to length (ctl_line); 321 /* find it in the tab char string */ 322 i = search (htab.chars, substr (ctl_line, ctl.index, 1)); 323 324 if i > 0 /* if its there */ 325 then /* take it out of the string */ 326 do; 327 if i < maxlength (htab.chars) 328 then 329 do; 330 htab.chars = 331 substr (htab.chars, 1, i - 1) 332 || substr (htab.chars, i + 1); 333 /* close up pattern index array */ 334 do i = i by 1 while (htab.pats (i) ^= 0); 335 htab.pats (i) = htab.pats (i + 1); 336 end; 337 end; 338 339 else 340 do; 341 htab.chars = substr (htab.chars, 1, i - 1); 342 htab.pats (i) = 0; 343 end; 344 end; 345 346 else call comp_report_ (2, 0, 347 substr (ctl_line, ctl.index, 1) 348 || " is not an active tabbing character.", addr (ctl.info), 349 ctl_line); 350 end; 351 352 if htab.chars = "" /* if all are off */ 353 then 354 do; 355 current_parms.htab_mode = "0"b; /* reset the flags */ 356 if shared.blkptr ^= null () 357 then text.parms.htab_mode = "0"b; 358 end; 359 360 goto return_; 361 362 ctl_ (103): /* ".htn" = horizontal-tabs-on */ 363 if varfld = "" /* if no char given */ 364 | index (varfld, " ") ^= 2 365 then 366 do; 367 call comp_report_$ctlstr (2, comp_error_table_$syntax_error, 368 addr (ctl.info), ctl_line, "The tab character must be first."); 369 goto return_; 370 end; 371 372 if shared.htab_ptr = null () /* allocate htab data */ 373 then 374 do; 375 shared.htab_ptr = allocate (const.local_area_ptr, size (htab)); 376 htab.count, htab.pats = 0; /* initialize pattern count */ 377 htab.chars = ""; /* and clear chars */ 378 end; 379 380 tab_char = substr (varfld, 1, 1); /* record htab char */ 381 /* advance to pattern name */ 382 varfld = ltrim (substr (varfld, 2)); 383 384 if varfld = "" /* if no name given */ 385 then 386 do; 387 call comp_report_$ctlstr (2, comp_error_table_$syntax_error, 388 addr (ctl.info), ctl_line, 389 "No tab pattern or pattern name given."); 390 goto return_; 391 end; /**/ 392 /* if 1st char is numeric, its a pattern */ 393 if search (varfld, "0123456789") = 1 394 then 395 do; 396 call set_htabs (0, ercd); 397 if ercd ^= 0 398 then goto return_; 399 j = 0; 400 end; 401 402 else 403 do; 404 tab_name = comp_read_$name (varfld, 1, 1, addr (ctl.info)); 405 406 if htab.count > 0 /* find the pattern */ 407 then 408 do j = 1 to htab.count while (tab_name ^= htab.name (j)); 409 end; 410 else j = 0; 411 412 if j = 0 | j > htab.count 413 then 414 do; 415 call comp_report_ (2, 0, "Tab pattern not defined.", 416 addr (ctl.info), ctl_line); 417 goto return_; 418 end; 419 end; /**/ 420 /* find the tab char in the active list */ 421 i = index (htab.chars, tab_char); 422 423 if i = 0 /* if not an active tab char */ 424 then 425 do; 426 htab.chars = /* record new tab char */ 427 htab.chars || tab_char; 428 i = length (htab.chars); /* and set the index */ 429 end; 430 431 htab.pats (i) = j; /* record pattern index */ 432 current_parms.htab_mode = "1"b; /* set the mode flag */ 433 434 if shared.blkptr ^= null () 435 then 436 do; 437 if text.input_line ^= "" /* first a format break */ 438 then call comp_break_ (format_break, 0); 439 text.parms.htab_mode = "1"b; 440 end; 441 442 goto return_; 443 444 ctl_ (113): /* ".in" = indent-left */ 445 ctl_ (114): /* ".inb" = indent-both */ 446 ctl_ (115): /* ".inl" = indent-left */ 447 save_index = ctl.index; /* save index in case of .inb */ 448 449 if shared.blkptr ^= null /* if there is an active block */ 450 then if text.input_line ^= "" /* clean up any leftovers */ 451 then call comp_break_ (format_break, 0); 452 453 if shared.ftn_mode 454 then call comp_util_$set_bin (current_parms.left.indent, 455 "footnote left indent", footnote_parms.left.indent, 456 footnote_parms.left.indent, footnote_parms.measure, hscales, 457 comp_dvt.min_WS); 458 else call comp_util_$set_bin (current_parms.left.indent, "left indent", 0, 459 0, current_parms.measure, hscales, comp_dvt.min_WS); 460 461 if shared.blkptr ^= null /* if there is an active block */ 462 then text.parms.left.indent = current_parms.left.indent; 463 464 if shared.bug_mode 465 then call ioa_$rsnnl ("col=^d mrg=^f/^f net=^f", exit_str, 0, 466 page.hdr.col_index, show (current_parms.left.indent, 12000), 467 show (current_parms.measure - current_parms.right.indent, 12000), 468 show (current_parms.measure - current_parms.left.indent 469 - current_parms.right.indent, 12000)); 470 471 if index (ctl_line, ".inb") ^= 1 /* if not indenting both margins */ 472 then goto return_; 473 474 ctl.index = save_index; /* restore index */ 475 goto inr_ctl; /* set the other side */ 476 477 ctl_ (116): /* ".inr" = indent-right */ 478 inr_ctl: 479 call comp_util_$set_bin (current_parms.right.indent, "right indent", 0, 0, 480 current_parms.measure, hscales, comp_dvt.min_WS); 481 482 if shared.blkptr ^= null () /* if there is an active block */ 483 then 484 do; 485 if text.input_line ^= "" /* any leftovers */ 486 then call comp_break_ (format_break, 0); 487 text.parms.right.indent = current_parms.right.indent; 488 end; 489 490 if shared.bug_mode 491 then call ioa_$rsnnl ("col=^d mrg=^f/^f net=^f", exit_str, 0, 492 page.hdr.col_index, show (current_parms.left.indent, 12000), 493 show (current_parms.measure + current_parms.left.indent, 12000), 494 show (current_parms.measure, 12000)); 495 496 goto return_; 497 498 ctl_ (120): /* ".ls" = line-space */ 499 call comp_util_$set_bin (current_parms.linespace, "linespacing", 500 option.linespace, 0, page.parms.length, vscales, comp_dvt.min_lead); 501 502 ctl.linespace = current_parms.linespace; 503 504 if shared.blkptr ^= null () 505 then text.parms.linespace, text.input.linespace = current_parms.linespace; 506 507 goto return_; 508 509 ctl_ (121): /* ".pd" = page-define */ 510 goto pdl_ctl; 511 512 ctl_ (122): /* ".pdc" = page-define-column */ 513 pdc_ctl: 514 if shared.blkptr ^= null /* finish an active block */ 515 then call comp_break_ (block_break, 0); 516 /* if we have anything */ 517 if page.hdr.used > 0 /* balance the page */ 518 then call comp_break_ (column_break, 0); 519 520 if ctl.index >= length (ctl_line) /* if no columns are given */ 521 then 522 do; 523 if page.parms.cols.count > 0 524 then 525 do; 526 /**** col0.hdr.pspc = 0; /* erase old head space */ 527 do i = 1 to page.parms.cols.count; 528 maxcolusd = max (maxcolusd, page.column_ptr (i) -> col.hdr.used); 529 end; 530 end; /**/ 531 /* revert to col0 */ 532 page_parms.cols.count, page.parms.cols.count, page_header.col_index, 533 page.hdr.col_index = 0; 534 shared.colptr = page.column_ptr (0); 535 current_parms.measure = col0.parms.measure; 536 537 if shared.bug_mode 538 then call ioa_$rsnnl ("^a col=0 b^d u^f/^f(^f)^[ ftn=^d/^f^;^2s^]" 539 || " h^f pag=^a c^d u^f/^f h^f^[ pi=^d ^f^]", exit_str, 0, 540 exit_str, col.hdr.blkct, show (col.hdr.used, 12000), 541 show (col.hdr.net, 12000), show (col.depth_adj, 12000), 542 (col.hdr.ftn.ct > 0), col.hdr.ftn.ct, 543 show (col.hdr.ftn.usd, 12000), show (col.hdr.pspc, 12000), 544 page.hdr.pageno, page.hdr.col_count, 545 show (page.hdr.used, 12000), show (page.hdr.net, 12000), 546 show (page.hdr.hdspc, 12000), (shared.picture.count > 0), 547 shared.picture.count, show (shared.picture.space, 12000)); 548 end; 549 550 else /* do the given columns */ 551 do; 552 col0.margin.right, col0.parms.measure = page.parms.measure; 553 /**** column 1 is given special treatment because, if its width 554* is zero, its gutter as assigned to column left margin 555* and the second column spec is taken for column 1. */ 556 /* if no column 1 yet */ 557 if page.column_ptr (1) = null () 558 then 559 do; 560 page.column_ptr (1) = allocate (const.local_area_ptr, size (col)); 561 col1.blkptr (*) = null (); 562 col1.hdr = colhdr; 563 col1.hdrptr, col1.ftrptr = null (); 564 col1.hdrusd, col1.ftrusd = 0; 565 end; 566 567 page_parms.cols.count = 1; /* set col 1 parms */ 568 call comp_util_$set_bin (col1.parms.measure, " column 1 measure", 0, 0, 569 page_parms.measure, hscales, comp_dvt.min_WS); 570 page_width = col1.parms.measure;/**/ 571 /* is there a depth value? */ 572 if substr (ctl_line, ctl.index, 1) = "(" 573 then 574 do; 575 ctl.index = ctl.index + 1; /* step over paren */ 576 call comp_util_$set_bin (col_depth_adj, "initial column 1 depth", 577 page_parms.length, -page_parms.length, page_parms.length, 578 vscales, comp_dvt.min_lead); 579 580 ctl.index = ctl.index + 2; /* step over paren and comma */ 581 end; 582 else col_depth_adj = 0; 583 col1.depth_adj = col_depth_adj; 584 585 if page_width = 0 /* if its zero width */ 586 then 587 do; /* gutter becomes left margin */ 588 call comp_util_$set_bin (col1.margin.left, "column 1 left margin", 589 0, 0, page_parms.measure, hscales, comp_dvt.min_WS); 590 call comp_util_$set_bin (col1.parms.measure, "column 1 measure", 0, 591 0, page_parms.measure, hscales, comp_dvt.min_WS); 592 593 if page_width + col1.parms.measure > page_parms.measure 594 then goto bad_col; 595 596 else page_width = col1.margin.left + col1.parms.measure; 597 end; /**/ 598 /* col 1 has width, so */ 599 else col1.margin.left = 0; /* it has 0 margin */ 600 col1.margin.right = col1.margin.left + col1.parms.measure; 601 602 col1.hdr.net = page.hdr.net - col0.hdr.used - col0.hdr.ftn.usd; 603 col1.hdr.baldepth = page.hdr.baldepth; 604 maxcolusd = col1.hdr.used; 605 606 /**** if col0.hdr.used = 0 607*/**** then col1.hdr.pspc = page.hdr.hdspc; 608*/**** else */ 609 col1.hdr.pspc = col0.hdr.pspc; 610 611 if shared.bug_mode 612 then call ioa_$rsnnl ("^a col=1 b^d u^f/^f(^f)^[ ftn=^d/^f^;^2s^]" 613 || " h^f pag=^a c^d u^f/^f h^f^[ pi=^d ^f^]", exit_str, 0, 614 exit_str, col1.hdr.blkct, show (col1.hdr.used, 12000), 615 show (col1.hdr.net, 12000), show (col1.depth_adj, 12000), 616 (col1.hdr.ftn.ct > 0), col1.hdr.ftn.ct, 617 show (col1.hdr.ftn.usd, 12000), show (col1.hdr.pspc, 12000), 618 page.hdr.pageno, page.hdr.col_count, 619 show (page.hdr.used, 12000), show (page.hdr.net, 12000), 620 show (page.hdr.hdspc, 12000), (shared.picture.count > 0), 621 shared.picture.count, show (shared.picture.space, 12000)); 622 /* set bal default */ 623 page_parms.cols.bal, page.parms.cols.bal = "1"b; 624 /* now the rest of the columns */ 625 do while (ctl.index < length (ctl_line)); 626 /* if too many columns */ 627 if page_parms.cols.count = max_cols 628 then 629 do; 630 call comp_report_ (2, 0, 631 "Only " || ltrim (char (max_cols)) 632 || " text columns allowed.", addr (ctl.info), ctl_line); 633 goto return_; 634 end; /**/ 635 /* go to next column */ 636 page_parms.cols.count = page_parms.cols.count + 1; 637 638 locolptr = page.column_ptr (page_parms.cols.count); 639 if locolptr = null () /* allocate the column */ 640 then 641 do; 642 page.column_ptr (page_parms.cols.count) = 643 allocate (const.local_area_ptr, size (col)); 644 645 locolptr = page.column_ptr (page_parms.cols.count); 646 locol.hdr = colhdr; 647 locol.hdrptr, locol.ftrptr = null (); 648 locol.hdrusd, locol.ftrusd = 0; 649 locol.blkptr (*) = null (); 650 end; 651 652 call comp_util_$set_bin (locol.gutter, "column gutter", 3 * 7200, 0, 653 page_parms.measure, hscales, comp_dvt.min_WS); 654 655 if page_width + locol.gutter >= page_parms.measure 656 then 657 do; 658 bad_col: 659 call comp_report_$ctlstr (2, comp_error_table_$inconsistent, 660 addr (ctl.info), ctl_line, 661 "Sum of column widths exceeds page width. All columns " 662 || "after column ^d will be ignored.", 663 page_parms.cols.count); 664 page.parms.cols = page_parms.cols; 665 page.hdr.col_count, page.parms.cols.count = 666 page_parms.cols.count; 667 goto return_; 668 end; 669 670 else 671 do; 672 locol.margin.left, page_width = page_width + locol.gutter; 673 end; 674 675 call comp_util_$set_bin (locol.parms.measure, 676 "column " || ltrim (char (page_parms.cols.count)) 677 || " measure", 0, 0, page_parms.measure, hscales, 678 comp_dvt.min_WS); 679 680 if page_width + locol.parms.measure > page_parms.measure 681 then goto bad_col; 682 else page_width = page_width + locol.parms.measure; 683 684 locol.margin.right = locol.margin.left + locol.parms.measure; 685 /* if there a depth value? */ 686 if ctl.index <= length (ctl_line) 687 then if substr (ctl_line, ctl.index, 1) = "(" 688 then 689 do; /* step over paren */ 690 ctl.index = ctl.index + 1; 691 call comp_util_$set_bin (col_depth_adj, 692 "initial column depth", page_parms.length, 693 -page_parms.length, page_parms.length, vscales, 694 comp_dvt.min_lead); 695 /* step over paren and comma */ 696 ctl.index = ctl.index + 2; 697 end; 698 else col_depth_adj = 0; 699 locol.depth_adj = col_depth_adj; 700 701 locol.hdr.net = 702 page.hdr.net - col0.hdr.used - col0.hdr.ftn.usd - locol.ftrusd; 703 704 /**** if col0.hdr.used = 0 705*/**** then locol.hdr.pspc = page.hdr.hdspc; 706*/**** else */ 707 locol.hdr.pspc = col0.hdr.pspc; 708 709 locol.hdr.baldepth = page.hdr.baldepth; 710 maxcolusd = max (maxcolusd, locol.hdr.used); 711 end; 712 713 if ctl.index = length (ctl_line) 714 then 715 do; 716 if index (substr (ctl_line, ctl.index), "u") = 1 717 then page_parms.cols.bal, page.parms.cols.bal = "0"b; 718 else page_parms.cols.bal, page.parms.cols.bal = "1"b; 719 end; 720 721 page.parms.cols = page_parms.cols; 722 /* go to column 1 */ 723 page_parms.cols.count, page.hdr.col_index = 1; 724 shared.colptr = page.column_ptr (1); 725 current_parms.measure = col1.parms.measure; 726 end; 727 728 if page.hdr.used > 0 729 then page.hdr.col_count = max (page.hdr.col_count, page.parms.cols.count); 730 else page.hdr.col_count = page.parms.cols.count; 731 732 do i = 0 to page.hdr.col_count; 733 locolptr = page.column_ptr (i); 734 if i > 0 735 then locol.hdr.balusd, locol.hdr.used = maxcolusd; 736 737 if shared.bug_mode 738 then 739 do; 740 col_depth_adj = locol.depth_adj; 741 call ioa_ ("^5x(col=^d b^d d^f u^f/^f(^f) h^f " 742 || "mrg=^f/^f/^f^[ (f^d ^f)^]", i, locol.hdr.blkct, 743 show (locol.hdr.baldepth, 12000), show (locol.hdr.used, 12000), 744 show (locol.hdr.net, 12000), show (locol.depth_adj, 12000), 745 show (locol.hdr.pspc, 12000), show (locol.margin.left, 12000), 746 show (locol.margin.right, 12000), 747 show (locol.parms.measure, 12000), (locol.hdr.ftn.ct > 0), 748 locol.hdr.ftn.ct, show (locol.hdr.ftn.usd, 12000)); 749 end; 750 end; 751 752 goto return_; 753 754 ctl_ (123): /* ".pdl" = page-define-length */ 755 pdl_ctl: 756 if shared.blkptr ^= null () /* clean up current block */ 757 then call comp_break_ (block_break, 0); 758 759 hf_needed = 0; /* length is first, find min val */ 760 if shared.ophdrptr ^= null () 761 then hf_needed = max (hf_needed, shared.ophdrptr -> hfcblk.hdr.used); 762 if shared.ephdrptr ^= null () 763 then hf_needed = max (hf_needed, shared.ephdrptr -> hfcblk.hdr.used); 764 if shared.opftrptr ^= null () 765 then hf_needed = max (hf_needed, shared.opftrptr -> hfcblk.hdr.used); 766 if shared.epftrptr ^= null () 767 then hf_needed = max (hf_needed, shared.epftrptr -> hfcblk.hdr.used); 768 min_val = 769 page.parms.margin.top + page.parms.margin.header + hf_needed 770 + page.parms.margin.footer + page.parms.margin.bottom + 12000; 771 772 call comp_util_$set_bin (page.parms.length, "page length", 792000, min_val, 773 comp_dvt.pdl_max, vscales, comp_dvt.min_lead); 774 page_parms.length = page.parms.length; 775 776 if ^option.galley_opt 777 then call comp_util_$set_net_page ("0"b); 778 779 if index (ctl_line, ".pdl") = 1 /* if length only */ 780 then 781 do; 782 if shared.bug_mode 783 then call ioa_$rsnnl ("page length = ^f", exit_str, 0, 784 show (page.parms.length, 12000)); 785 goto return_; 786 end; 787 788 else goto pdw_ctl; /* otherwise, go for width */ 789 790 ctl_ (124): /* ".pdw" = page-define-width */ 791 pdw_ctl: 792 call comp_util_$set_bin (page_parms.measure, "page width", 468000, 1, 793 comp_dvt.pdw_max, hscales, comp_dvt.min_WS); 794 page.parms.measure, col0.parms.measure, col0.margin.right, 795 text_parms.measure, footnote_parms.measure = page_parms.measure; 796 797 if shared.blkptr ^= null () 798 then text.parms.measure = text_parms.measure; 799 800 if shared.bug_mode 801 then call ioa_$rsnnl ("pag,col0 measure ^f", exit_str, 0, 802 show (page_parms.measure, 12000)); 803 804 if index (ctl_line, ".pdw") = 1 805 then goto return_; /* if width only */ 806 else goto pdc_ctl; /* otherwise, go for columns */ 807 808 ctl_ (162): /* ".un" = undent */ 809 ctl_ (163): /* ".unb" = undent-both */ 810 goto unl_ctl; 811 812 ctl_ (164): /* ".unh" = undent-hanging */ 813 unh_ctl: 814 if shared.blkptr = null 815 then 816 do; 817 if ^page.hdr.headed & ^option.galley_opt 818 then call comp_head_page_ (head_used); 819 call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 820 addr (current_parms), "0"b); 821 end; 822 else if text.input_line ^= "" 823 then call comp_break_ (format_break, 0); 824 825 text.input.hanging = "1"b; 826 goto join_unl; 827 828 ctl_ (165): /* ".unl" = undent-left */ 829 unl_ctl: 830 if shared.blkptr = null 831 then 832 do; 833 if ^page.hdr.headed & ^option.galley_opt 834 then call comp_head_page_ (head_used); 835 call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 836 addr (current_parms), "0"b); 837 end; 838 else if text.input_line ^= "" 839 then call comp_break_ (format_break, 0); 840 841 join_unl: 842 net_line = 843 current_parms.measure - current_parms.right.indent 844 - current_parms.left.indent; 845 call comp_util_$set_bin (text.parms.left.undent, "left margin undent", 846 text.parms.left.indent, -net_line, text.parms.left.indent, hscales, 847 comp_dvt.min_WS); 848 849 if index (ctl_line, ".unb") = 1 850 then text.parms.right.undent = text.parms.left.undent; 851 852 if shared.bug_mode 853 then call ioa_$rsnnl ("col=^d mrg=^f/^f/^f", exit_str, 0, 854 page.hdr.col_index, 855 show (text.parms.left.indent - text.parms.left.undent, 12000), 856 show (text.parms.measure - text.parms.right.indent 857 + text.parms.right.undent, 12000), 858 show (text.parms.measure - text.parms.left.indent 859 + text.parms.left.undent - text.parms.right.indent 860 + text.parms.right.undent, 12000)); 861 862 goto return_; 863 864 ctl_ (166): /* ".unn" = undent-nobreak - OBSOLETED BY .unh */ 865 goto unh_ctl; 866 867 ctl_ (167): /* ".unr" = undent-right */ 868 if shared.blkptr = null 869 then call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 870 addr (current_parms), "0"b); 871 872 net_line = 873 page_parms.measure - current_parms.right.indent 874 - current_parms.left.indent; 875 call comp_util_$set_bin (text.parms.right.undent, "right margin undent", 876 text.parms.right.indent, -net_line, text.parms.right.indent, hscales, 877 comp_dvt.min_WS); 878 879 if shared.bug_mode 880 then call ioa_$rsnnl ("col=^d mrg=^f/^f/^f", exit_str, 0, 881 page.hdr.col_index, 882 show (text.parms.left.indent - text.parms.left.undent, 12000), 883 show (text.parms.measure - text.parms.right.indent 884 + text.parms.right.undent, 12000), 885 show (text.parms.measure - text.parms.left.indent 886 + text.parms.left.undent - text.parms.right.indent 887 + text.parms.right.undent, 12000)); 888 889 goto return_; 890 891 return_: 892 if shared.bug_mode 893 then call ioa_ ("^5x(format_ctls:^[ ^a^])", (exit_str ^= ""), exit_str); 894 895 return; 896 897 show: 898 proc (datum, scale) returns (fixed dec (11, 3)); 899 dcl datum fixed bin (31); 900 dcl scale fixed bin (31); 901 902 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 903 end show; 904 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 */ 905 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 */ 906 907 dcl 1 col1 aligned like col based (page.column_ptr (1)); 3 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 3 2 3 3 /* Written: 9/80 - JA Falksen 3 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 3 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 3 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 3 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 3 8* (3) char (*) var. Version 4. */ 3 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 3 10* sequence for comp_dvt.displayproc. - Version 5. 3 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 3 12**/ 3 13 3 14 /* All names which end in "_r"are offset values within the device table */ 3 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 3 16 3 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 3 18 3 19 dcl 1 comp_dvt aligned based (const.devptr), 3 20 2 devclass char (32), /* what general kind of device is */ 3 21 /* this, currently available: */ 3 22 /* "printer" (includes terminals), */ 3 23 /* "braille", "bitmap" */ 3 24 2 outproc entry /* page output processor */ 3 25 (fixed bin, /* function - 0=build */ 3 26 /* 1=init page */ 3 27 /* 2=init file */ 3 28 /* 3=cleanup */ 3 29 fixed bin (35)),/* error code */ 3 30 2 footproc entry /* footnote reference proc */ 3 31 ((3) char (*) var, 3 32 /* reference string (IN/OUT) */ 3 33 ptr), /* comp_dvt_p (IN) */ 3 34 2 artproc entry (), /* artwork proc */ 3 35 /* dont know how to describe yet */ 3 36 2 displayproc 3 37 entry /* string display interpreter */ 3 38 (char (*) var, /* raw input string */ 3 39 fixed bin (24), /* chars used in this call */ 3 40 bit (1)) /* 1= dont show display errors */ 3 41 returns (char (*) var), 3 42 /* interpreted output string */ 3 43 /* following values are in millipoints */ 3 44 2 min_WS fixed bin (31), /* minimum whitespace */ 3 45 2 min_lead fixed bin (31), /* minimun lead */ 3 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 3 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 3 48 2 def_vmt fixed bin (31), /* default .vmt */ 3 49 2 def_vmh fixed bin (31), /* default .vmh */ 3 50 2 def_vmf fixed bin (31), /* default .vmf */ 3 51 2 def_vmb fixed bin (31), /* default .vmb */ 3 52 2 pdw_max fixed bin (31), /* max page width available */ 3 53 2 pdl_max fixed bin (31), /* max page length available, */ 3 54 /* (0 = unlimited) */ 3 55 2 upshift fixed bin (31), /* footnote reference shift */ 3 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 3 57 2 lettersp fixed bin (31), /* max letterspacing */ 3 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 3 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 3 60 2 init_fam fixed bin, /* initial family index */ 3 61 2 init_mem fixed bin, /* initial member index */ 3 62 2 foot_fam fixed bin, /* initial foot family index */ 3 63 2 foot_mem fixed bin, /* initial foot member index */ 3 64 2 init_family 3 65 char (32), /* initial font family to use */ 3 66 2 init_member 3 67 char (32), /* initial font member to use */ 3 68 ( /* the following are offsets */ 3 69 2 atd_r, /* attach desc for on-line output */ 3 70 2 dvc_r, /* device control table relptr */ 3 71 2 comment_r, /* comment string relptr */ 3 72 2 cleanup_r, /* "cleanup" string relptr */ 3 73 2 medsel_table_r /* media select table relptr */ 3 74 ) bit (18) aligned, 3 75 2 foot_family 3 76 char (32), /* family for footnote reference */ 3 77 2 foot_member 3 78 char (32), /* member for footnote reference */ 3 79 /* if one was specified */ 3 80 2 sws unaligned, 3 81 3 interleave /* 0- page block has lines in column */ 3 82 bit (1), /* order left-to-right */ 3 83 /* 1- page block has lines in line */ 3 84 /* order top-to-bottom */ 3 85 3 justifying /* 1- device justifies lines */ 3 86 bit (1), 3 87 3 mbz bit (24), 3 88 3 endpage bit (9), /* EOP char if not "0"b */ 3 89 2 open_mode fixed bin (35), /* when going to a file */ 3 90 2 recleng fixed bin, /* length of tape records */ 3 91 2 family_ct fixed bin, /* # families present */ 3 92 2 family (comp_dvt.family_ct), 3 93 /* families of fonts defined */ 3 94 3 member_r bit (18) aligned, 3 95 /* member table relptr */ 3 96 3 name char (32); /* family name */ 3 97 3 98 3 99 /* The usage formula for units: */ 3 100 /* */ 3 101 /* rel_units * length_in_points */ 3 102 /* ---------------------------- = length_in_units */ 3 103 /* points_per_EM */ 3 104 3 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 908 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 */ 909 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 */ 910 6 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr), 6 6 /* data for footnote blocks */ 6 7 2 highndx fixed (35), /* highest active footnote index */ 6 8 2 blkptr (250) ptr; /* block pointers */ 6 9 /* footnote header data block */ 6 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr); 6 11 /* formatting parms for footnotes */ 6 12 dcl 1 footnote_parms 6 13 aligned like default_parms 6 14 based (const.footnote_parms_ptr); 6 15 6 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */ 911 7 1 /* BEGIN INCLUDE FILE comp_htab.incl.pl1 */ 7 2 7 3 dcl 1 htab aligned based (shared.htab_ptr), /* horizontal tab pattern tables */ 7 4 2 count fixed bin, /* number of defined patterns */ 7 5 2 chars char (32) varying, /* active htab characters */ 7 6 2 pats (32) fixed (8) unaligned, /* pattern index for each char above */ 7 7 2 pattern (0:20), /* up to 20 patterns + one-shot */ 7 8 3 name char (32), /* pattern name */ 7 9 3 count fixed bin, /* number of tab stops */ 7 10 3 stop (20) fixed bin (31),/* tab stop values */ 7 11 3 fill (20) char (32) varying; /* fill string */ 7 12 7 13 /* END INCLUDE FILE comp_htab.cinl.pl1 */ 912 8 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 8 2 8 3 dcl option_version fixed bin (35) static options (constant) init (2); 8 4 8 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 8 6 2 version fixed bin (35), 8 7 /* Options with parameters */ 8 8 (2 argument_opt, /* -argument option flag */ 8 9 2 cbar_opt, /* -change_bars option flag */ 8 10 2 cbar_art_opt, /* -change_bars_art option flag */ 8 11 2 debug_opt, /* -debug option flag */ 8 12 2 db_all_opt, /* -debug_all option flag */ 8 13 2 db_file_opt, /* -debug_file option flag */ 8 14 2 device_opt, /* -device option flag */ 8 15 2 execute_opt, /* -execute option flag */ 8 16 2 from_opt, /* -from option flag */ 8 17 2 galley_opt, /* -galley option flag */ 8 18 2 hyph_opt, /* -hyphenation option flag */ 8 19 2 indent_opt, /* -indent option flag */ 8 20 2 input_file_opt, /* -input_file option flag */ 8 21 2 linespace_opt, /* -linespace option flag */ 8 22 2 output_file_opt, /* -output_file option flag */ 8 23 2 pages_opt, /* -pages option flag */ 8 24 2 page_chng_opt, /* -pages_changed option flag */ 8 25 2 parameter_opt, /* -parameter option flag */ 8 26 2 passes_opt, /* -passes option flag */ 8 27 2 tdir_opt, /* -temp_dir option flag */ 8 28 2 to_opt, /* -to option flag */ 8 29 /* Options without parameters */ 8 30 2 annot_opt, /* -annotate */ 8 31 2 brief_opt, /* -brief option flag */ 8 32 2 check_opt, /* -check option flag */ 8 33 2 cws_opt, /* -cws option flag */ 8 34 2 db_pause_opt, /* -debug_pause option flag */ 8 35 2 noart_opt, /* -noart option flag */ 8 36 2 nobell_opt, /* -no_bell option flag */ 8 37 2 nofill_opt, /* -nofill option flag */ 8 38 2 nohit_opt, /* -nohit option flag */ 8 39 2 number_opt, /* -number option flag */ 8 40 2 number_append_opt, /* -number_append option flag */ 8 41 2 number_brief_opt, /* -number_brief option flag */ 8 42 2 stop_opt, /* -stop option flag */ 8 43 2 wait_opt) unal bit (1), /* -wait option flag */ 8 44 2 MBZ bit (2) unal, 8 45 /* Optional parameters */ 8 46 2 arg_count fixed bin, /* count of -ag values */ 8 47 2 cbar, /* change bar data */ 8 48 3 level char (1), /* change level character (ASCII NUL) */ 8 49 3 place char (1), /* placement character */ 8 50 3 space fixed bin (31), /* extra left margin space needed */ 8 51 3 left, /* left margin mark data */ 8 52 4 sep fixed bin (31), /* separation */ 8 53 4 width fixed bin (31), /* mark width */ 8 54 4 mark char (80) varying, /* the left margin mark */ 8 55 3 right, /* right margin mark data */ 8 56 4 sep fixed bin (31), /* separation */ 8 57 4 width fixed bin (31), /* mark width */ 8 58 4 mark char (80) varying, /* the right margin mark */ 8 59 3 del, /* deletion mark data */ 8 60 4 sep fixed bin (31), /* separation */ 8 61 4 width fixed bin (31), /* mark width */ 8 62 4 mark char (80) varying, /* the deletion mark */ 8 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 8 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 8 65 2 db_file char (200) var, /* file pathanme for debug */ 8 66 2 db_file_after fixed bin (35), /* debug file starting line */ 8 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 8 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 8 69 2 device char (32) varying, /* output device */ 8 70 2 extra_indent fixed bin (31), /* extra indent value */ 8 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 8 72 2 line_1 fixed bin (35), /* initial line for output */ 8 73 2 line_2 fixed bin (35), /* final line for output */ 8 74 2 linespace fixed bin (31), /* line spacing value */ 8 75 2 pglstct fixed bin (35), /* number of page list entries */ 8 76 2 pglstndx fixed bin (35), /* index for -pages list */ 8 77 2 pglst (0:49), /* list of requested pages */ 8 78 3 from char (32) var, 8 79 3 to char (32) var, 8 80 2 parameter char (80) varying, /* parameter from command line */ 8 81 2 passes fixed bin, /* passes remaining */ 8 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 8 83 8 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 8 85 913 9 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl max_image_lines 9 6 fixed static options (constant) init (1000); 9 7 dcl max_cols fixed static options (constant) init (20); 9 8 9 9 dcl page_version fixed bin static options (constant) init (5); 9 10 /* composed page structure */ 9 11 dcl 1 page aligned based (const.page_ptr), 9 12 2 version fixed bin, /* version of this structure */ 9 13 2 parms aligned like page_parms, 9 14 /* page formatting parameters */ 9 15 2 hdr aligned like page_header, 9 16 /* page control stuff */ 9 17 2 image_ptr ptr, /* pointer to the madeup page image */ 9 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 9 19 2 col_image_ptr 9 20 (-2:21) ptr; /* pointers to column images */ 9 21 /* col -1 is for line numbers and */ 9 22 /* left margin change bars; */ 9 23 /* col -2 is for */ 9 24 /* right margin change bars */ 9 25 /* and/or annotation * / 9 26* /* page control stuff */ 9 27 dcl 1 page_header aligned based (const.page_header_ptr), 9 28 2 sws, 9 29 3 art bit (1) unal, /* 1 = header/footer art */ 9 30 3 blankpage 9 31 bit (1) unal, /* 1 = intentional blank page */ 9 32 3 frontpage 9 33 bit (1) unal, /* 1 = odd page number */ 9 34 3 headed bit (1) unal, /* 1 = page header has been written */ 9 35 3 modified bit (1) unal, /* 1 = page has been modified */ 9 36 3 overflow bit (1) unal, /* OBSOLETE */ 9 37 3 MBZ bit (12) unal, 9 38 3 dot_addltr 9 39 char (1) unal, /* dot page add letter, if any */ 9 40 3 pgc_select 9 41 char (1) unal, /* for selecting change pages */ 9 42 2 baldepth fixed bin (31), /* page depth at balance point */ 9 43 2 balusd fixed bin (31), /* space used at balance point */ 9 44 2 col_count fixed bin, /* highest value of col_index for the page */ 9 45 2 col_index fixed bin, /* column index */ 9 46 2 depth fixed bin (31), /* current page depth */ 9 47 2 hdspc fixed bin (31), /* TOP white space */ 9 48 2 lmarg fixed bin (31), /* left margin for this page */ 9 49 2 net fixed bin (31), /* net usable space on the page */ 9 50 2 pageno char (32) var, /* current page number */ 9 51 2 used fixed bin (31); /* space already used on the page */ 9 52 9 53 dcl page_image_version 9 54 fixed bin (35) static options (constant) init (2); 9 55 /* structure passed to writers */ 9 56 dcl 1 page_image aligned based (page.image_ptr), 9 57 2 version fixed bin (35), /* structure version no */ 9 58 2 count fixed bin, /* count of page image lines */ 9 59 2 file_id char (32) var, /* compout identifier */ 9 60 2 func fixed bin, /* function code; 0 = build, 9 61* 1 = intialize, 2 = cleanup */ 9 62 2 text_ptr ptr, /* pointer to the text area */ 9 63 /* the image lines */ 9 64 2 line (max_image_lines), 9 65 3 sws, 9 66 4 quad bit (6) unal, /* text set position flags */ 9 67 4 art bit (1) unal, /* 1 = artwork in the line */ 9 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 9 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 9 70 4 white bit (1) unal, /* line is white */ 9 71 4 MBZ bit (26) unal, 9 72 3 depth fixed bin (31), /* page depth for the text */ 9 73 3 gaps fixed bin, /* number of WS gaps in the line */ 9 74 3 info like text_entry.info, 9 75 /* input file info */ 9 76 3 lead fixed bin (31), /* lead value if trailing WS */ 9 77 3 lfnt fixed bin, /* font at the left margin */ 9 78 3 lmarg fixed bin (31), /* text left margin position */ 9 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 9 80 3 net fixed bin (31), /* net width for filling */ 9 81 3 pos fixed bin (31), /* current horiz position */ 9 82 3 ptr ptr, /* pointer to the text */ 9 83 3 rmarg fixed bin (31), /* text right margin position */ 9 84 3 width fixed bin (31); /* width of the text */ 9 85 /* current page formatting parms */ 9 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 9 87 2 init_page_depth 9 88 fixed bin (31), /* initial page depth */ 9 89 2 length fixed bin (31), /* page length */ 9 90 2 lmarg, /* page left margin */ 9 91 3 even fixed bin (31), 9 92 3 odd fixed bin (31), 9 93 2 margin, /* margin values */ 9 94 3 top fixed bin (31), 9 95 3 header fixed bin (31), 9 96 3 footer fixed bin (31), 9 97 3 bottom fixed bin (31), 9 98 2 measure fixed bin (31), /* line space available for text */ 9 99 2 net, /* net usable space on page */ 9 100 3 even fixed bin (31), /* even pages */ 9 101 3 odd fixed bin (31), /* odd pages */ 9 102 /* arrays at the end */ 9 103 2 cols, /* columns defined for the page */ 9 104 3 bal bit (1) unal, /* column balancing control flag */ 9 105 3 MBZ bit (17) unal, 9 106 3 count fixed bin unal; /* the number of columns */ 9 107 /* default page formatting parms */ 9 108 dcl 1 init_page_parms 9 109 aligned like page_parms 9 110 based (const.init_page_parms_ptr); 9 111 9 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 914 10 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl shared_version fixed bin (35) static options (constant) init (17); 10 6 10 7 dcl 1 shared aligned based (const.shared_ptr), 10 8 2 version fixed bin (35), /* version of this structure */ 10 9 2 chars, 10 10 ( 3 sym_delim, /* delimiter for symbols */ 10 11 3 ttl_delim, /* delimiter for title parts */ 10 12 3 wrd_brkr /* word break character */ 10 13 ) char (1) unal, 10 14 3 PAD char (1) unal, 10 15 2 cbar_type char (4) var, /* change bar type */ 10 16 2 dot_add_letter /* dot page add letter */ 10 17 char (1) var, 10 18 2 EN_width fixed bin (31), /* width of EN in current font */ 10 19 2 eqn_refct fixed bin, /* equation reference counter */ 10 20 2 footref_fcs /* footnote ref FCS string */ 10 21 char (8) aligned, 10 22 2 ftn_reset char (8) var, /* footnote reset mode */ 10 23 2 ftnrefct fixed bin, /* footnote ref counter */ 10 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 10 25 2 if_nest, /* if/then/else logic control */ 10 26 3 ndx fixed bin, /* depth of logic nest */ 10 27 3 e (25), /* nest entries */ 10 28 /* .if control switch */ 10 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 10 30 4 info aligned like text_entry.info, 10 31 4 line char (256) var, /* the control line */ 10 32 2 indctl, /* indent ctls stack */ 10 33 3 ndx fixed bin, /* current level */ 10 34 /* switch bits */ 10 35 3 stk (0:35) bit (1) unal, 10 36 2 input_dirname 10 37 char (168) var, /* dir containing current input file */ 10 38 2 input_filename 10 39 char (200) var, /* current input file name */ 10 40 2 lead fixed bin (31), /* current linespacing value */ 10 41 2 lit_count fixed bin (35), /* count of literal lines */ 10 42 2 next_pagenmbr 10 43 char (32) var, /* next page number / */ 10 44 2 output_file 10 45 char (32) var, /* output file identifier */ 10 46 2 pagecount fixed bin, /* number of pages produced */ 10 47 2 pagenum, /* page number structure */ 10 48 3 index fixed bin, /* level currently counting */ 10 49 ( 10 50 3 sep char (1) unal, /* separator chars */ 10 51 3 nmbr fixed bin (31), /* the counters */ 10 52 3 mode /* display modes */ 10 53 fixed bin (8) unal 10 54 ) dimension (20), 10 55 2 parameter char (254) var, /* command line parameter */ 10 56 2 param_pres bit (1), /* passed parameter flag */ 10 57 2 pass_counter 10 58 fixed bin, /* pass counter */ 10 59 2 picture, /* picture blocks */ 10 60 3 count fixed bin, /* number of them */ 10 61 3 space fixed bin (31), /* total picture space */ 10 62 3 blk (10), /* picture blocks */ 10 63 4 type char (4), /* type = page/col */ 10 64 4 place char (4), /* place = top/cen/bot */ 10 65 4 ptr ptr, /* pointer to block */ 10 66 4 size fixed bin (31), /* size of the picture */ 10 67 2 ptrs, 10 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 10 69 3 blank_footer_ptr, /* -> blank page footer */ 10 70 3 blank_header_ptr, /* -> blank page header */ 10 71 3 blank_text_ptr, /* -> blank page text */ 10 72 3 blkptr, /* -> active text */ 10 73 3 colptr, /* current column */ 10 74 3 compout_ptr, /* iocb pointer for output */ 10 75 3 compx_ptr, /* iocb pointer for compx file */ 10 76 3 ctb_ptr, /* current line artwork table */ 10 77 3 epftrptr, /* even page footer block */ 10 78 3 ephdrptr, /* even page header block */ 10 79 3 fcb_ptr, /* input file control block pointer */ 10 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 10 81 3 footnote_header_ptr, /* footnote header "title" */ 10 82 3 graphic_page_ptr, /* graphic output page */ 10 83 3 hit_data_ptr, /* hit data pointer */ 10 84 3 htab_ptr, /* horizontal tab tables */ 10 85 3 hwrd_data_ptr, /* local hyphenation table */ 10 86 3 insert_ptr, /* data entry for current input file */ 10 87 3 opftrptr, /* odd page footer block */ 10 88 3 ophdrptr, /* odd page header block */ 10 89 3 ptb_ptr, /* previous line artwork table */ 10 90 3 spcl_blkptr, /* "special" block pointer */ 10 91 3 tbldata_ptr, /* table column data structure */ 10 92 3 tblkdata_ptr, /* text block data array */ 10 93 3 text_header_ptr /* empty text header structure */ 10 94 ) ptr, 10 95 2 scale, /* space conversion scale factors */ 10 96 3 horz fixed bin (31), /* horizontal */ 10 97 3 vert fixed bin (31), /* vertical */ 10 98 2 source_filename 10 99 char (200) var, /* current source file name */ 10 100 2 sws, /* switch bits */ 10 101 ( 3 bug_mode, /* debug mode */ 10 102 3 compout_not_headed, /* compout is not headed */ 10 103 3 end_input, /* EOF for current input file */ 10 104 3 end_output, /* no more output is wanted */ 10 105 3 firstpass, /* first pass over input */ 10 106 3 ftn_mode, /* in footnote mode */ 10 107 3 hyph_mode, /* hyphenating mode */ 10 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 10 109 3 literal_mode, /* literal line mode flag */ 10 110 3 pageblock, /* blocks belong to page */ 10 111 3 picture_mode, /* building a picture */ 10 112 3 print_flag, /* producing output */ 10 113 3 purge_ftns, /* purging footnotes */ 10 114 3 suppress_footref, /* suppress next footnote ref */ 10 115 3 table_mode /* table mode */ 10 116 ) bit (1) unal, 10 117 3 MBZ bit (21) unal, 10 118 2 trans, /* trans table for .tr */ 10 119 3 in char (128) var, /* input chars */ 10 120 3 out char (128) var, /* output chars */ 10 121 2 widow_size fixed bin (31), /* widow size */ 10 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 10 123 /* to save shared data between files/passes */ 10 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 10 125 10 126 dcl dot_addltr_symb_index 10 127 fixed bin static options (constant) init (12); 10 128 dcl max_text_lines fixed bin static options (constant) init (1000); 10 129 dcl mode_string char (16) static options (constant) 10 130 init ("arbihxocalaurlru"); 10 131 /* value overlays */ 10 132 dcl flag_value bit (1) based; 10 133 dcl num_value fixed bin (31) based; 10 134 10 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 915 11 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 11 2 11 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 11 6 2 ct fixed bin, /* number of active table formats */ 11 7 2 ndx fixed bin, /* index of current active format */ 11 8 2 fmt (20), /* the format */ 11 9 3 name char (32) var, /* name of the format */ 11 10 3 ptr ptr; /* pointer to the format data */ 11 11 11 12 dcl tblfmtndx fixed bin; /* current table format index */ 11 13 dcl tblfmtptr ptr; /* -> current table format */ 11 14 /* table format data */ 11 15 dcl 1 tblfmt aligned based (tblfmtptr), 11 16 2 context bit (1), /* =1 if context mode */ 11 17 2 ccol fixed bin, /* the current table column */ 11 18 2 maxdepth fixed bin (31), /* max depth in table */ 11 19 2 ncols fixed bin, /* number of columns in this format */ 11 20 2 colptr (0:20) ptr; /* pointers to the columns */ 11 21 11 22 dcl tblcolndx fixed bin; /* current table column index */ 11 23 /* -> current table column */ 11 24 dcl tblcolptr ptr init (null ()); 11 25 /* table column data */ 11 26 dcl 1 tblcol aligned based (tblcolptr), 11 27 2 align, /* column alignment mode */ 11 28 3 posn fixed bin (31), 11 29 3 str char (32) var, 11 30 2 depth fixed bin (31), /* current depth for column */ 11 31 2 gutter fixed bin (31), 11 32 2 leader char (16) var, /* leadering string */ 11 33 2 margin, 11 34 3 left fixed bin (31), 11 35 3 right fixed bin (31), 11 36 2 valign bit (4) unal, /* vertical alignment flags */ 11 37 2 MBZ bit (29) unal, 11 38 2 parms /* parms for columns */ 11 39 aligned like default_parms; 11 40 11 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 11 42 /* -> previous table column */ 11 43 dcl prvtblcolptr ptr init (null ()); 11 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 11 45 11 46 dcl vtop bit (4) static options (constant) init ("1000"b); 11 47 dcl vcen bit (4) static options (constant) init ("0100"b); 11 48 dcl vbot bit (4) static options (constant) init ("0010"b); 11 49 dcl vjust bit (4) static options (constant) init ("0001"b); 11 50 11 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 916 12 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 12 2 12 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 4 12 5 dcl 1 tblkdata /* data for allocated text blocks */ 12 6 aligned based (shared.tblkdata_ptr), 12 7 2 block, /* block pool */ 12 8 3 count fixed bin, 12 9 3 ptr (500) ptr, /* block pointers */ 12 10 /* block state flags */ 12 11 3 free (500) bit (1) unal, 12 12 2 line_area, /* line area pool */ 12 13 3 count fixed bin, 12 14 3 ptr (500) ptr, /* area pointers */ 12 15 /* area state flags */ 12 16 3 free (500) bit (1) unal, 12 17 2 text_area, /* text area pool */ 12 18 3 count fixed bin, 12 19 3 ptr (500) ptr, /* area pointers */ 12 20 /* area state flags */ 12 21 3 free (500) bit (1) unal, 12 22 3 string_area_count 12 23 fixed bin; /* line areas */ 12 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 12 25 dcl line_area_ptr ptr init (null); 12 26 dcl 1 line_area aligned based (line_area_ptr), 12 27 2 next ptr, /* forward thread */ 12 28 2 prev ptr, /* backward thread */ 12 29 2 count fixed bin, /* number of lines allocated */ 12 30 2 ndx fixed bin, /* index of current line */ 12 31 2 pndx fixed bin, /* area pool index */ 12 32 2 linptr (LINE_AREA_SIZE) ptr; 12 33 /* text areas */ 12 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 12 35 dcl text_area_ptr ptr init (null); 12 36 dcl 1 text_area aligned based (text_area_ptr), 12 37 2 next ptr, /* forward thread */ 12 38 2 count fixed bin, /* number of areas allocated */ 12 39 2 ndx fixed bin, /* index of current strarea */ 12 40 2 pndx fixed bin, /* area pool index */ 12 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 12 42 /* text string area */ 12 43 dcl string_area (256) fixed bin based; 12 44 dcl txtstrptr ptr; /* current text string */ 12 45 dcl txtstr char (1020) var based (txtstrptr); 12 46 12 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 12 48 /* general text block */ 12 49 dcl 1 text aligned based (shared.blkptr), 12 50 2 version fixed bin, /* version of structure */ 12 51 2 blkndx fixed bin, /* block data index */ 12 52 2 blktype char (2), /* block type code */ 12 53 /* dynamic block control stuff */ 12 54 2 hdr aligned like text_header, 12 55 /* text read from input file */ 12 56 2 input aligned like text_entry, 12 57 2 input_line char (1020) var,/* input buffer */ 12 58 2 line_area, 12 59 3 first ptr, /* head of line area thread */ 12 60 3 cur ptr, /* current line area */ 12 61 2 next_text ptr, /* next text string */ 12 62 /* text formatting parameters */ 12 63 2 parms aligned like default_parms, 12 64 2 text_area, 12 65 3 first ptr, /* head of text area thread */ 12 66 3 cur ptr; /* current text area */ 12 67 /* an empty text block line */ 12 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 12 69 2 sws, /* unaligned switches, etc. */ 12 70 3 art bit (1) unal, /* line has artwork */ 12 71 3 cbar, /* change bar flags */ 12 72 4 add bit (1) unal, /* text addition flag */ 12 73 4 del bit (1) unal, /* text deletion flag */ 12 74 4 mod bit (1) unal, /* text modification flag */ 12 75 3 default bit (1) unal, /* 1 = default case as needed */ 12 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 12 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 12 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 12 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 12 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 12 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 12 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 12 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 12 84 3 oflo bit (1) unal, /* line causes overflow */ 12 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 12 86 3 quad bit (6) unal, /* text alignment flags */ 12 87 3 space_added /* 1= line has added space */ 12 88 bit (1) unal, 12 89 3 spcl, /* special entry - not output text */ 12 90 4 file bit (1) unal, /* 1= output to special file */ 12 91 4 blk_splt /* 1= action at block split time */ 12 92 bit (1) unal, 12 93 4 page_mkup /* 1= action at page makeup time */ 12 94 bit (1) unal, 12 95 3 table bit (1) unal, /* 1= line is a table entry */ 12 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 12 97 3 title bit (1) unal, /* 1= line is a */ 12 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 12 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 12 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 12 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 12 102 3 white bit (1) unal, /* 1= line is white space */ 12 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 12 104 3 MBZ bit (4) unal, 12 105 2 art_start fixed bin unal, /* start of art string in line */ 12 106 2 art_len fixed bin unal, /* length of art string in line */ 12 107 2 cbar_level /* change level for cbars */ 12 108 char (1) aligned, 12 109 2 cur, /* current scanning data for line */ 12 110 3 chrct fixed bin, /* count of chars scanned */ 12 111 3 gaps fixed bin, /* gap count */ 12 112 3 width fixed bin (31), /* width of font chars */ 12 113 3 min fixed bin (31), /* width of min spbnds */ 12 114 3 avg fixed bin (31), /* width of avg spbnds */ 12 115 3 max fixed bin (31), /* width of max spbnds */ 12 116 3 font like fntstk_entry, 12 117 2 depth fixed bin (31), /* page depth for line */ 12 118 /* font at start of line */ 12 119 2 font like fntstk_entry, 12 120 2 index fixed bin (21), /* char index for line scanning */ 12 121 2 info, /* stuff created during line input */ 12 122 3 fileno fixed bin, /* input file index */ 12 123 3 lineno fixed bin, /* input file line number */ 12 124 3 lineno0 fixed bin, /* call_box0 line number */ 12 125 2 linespace fixed bin (31), /* linespace value for the line */ 12 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 12 127 2 mod_len fixed bin, /* length of modified text */ 12 128 2 mod_start fixed bin, /* index for start of modified text */ 12 129 2 net fixed bin (31), /* net line width for filling */ 12 130 2 ptr ptr, /* pointer to the actual text */ 12 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 12 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 12 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 12 134 2 tblcol fixed bin, /* column for table entries */ 12 135 2 title_delim 12 136 char (1) unal, /* title delimiter if a <title> */ 12 137 2 title_index 12 138 fixed bin, /* <title> block index for line */ 12 139 2 width fixed bin (31), /* width of text */ 12 140 2 ftn, /* footnote info for line */ 12 141 3 ct fixed bin, /* number of footnote refs */ 12 142 3 used fixed bin (31), /* space used */ 12 143 3 e (40), /* limit is arbitrary */ 12 144 4 blkndx fixed bin unal, /* block index of footnote - if this 12 145* value is 0, then .frf was used */ 12 146 4 refno fixed bin unal; /* reference number */ 12 147 12 148 dcl ( 12 149 quadi init ("40"b3), /* set to the inside margin */ 12 150 quado init ("20"b3), /* set to the outside margin */ 12 151 quadl init ("10"b3), /* set left */ 12 152 quadc init ("04"b3), /* set centered */ 12 153 quadr init ("02"b3), /* set right */ 12 154 just init ("01"b3) /* justified */ 12 155 ) bit (6) static options (constant); 12 156 /* control line structure */ 12 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 12 158 dcl ctl_line char (1020) var based (ctl.ptr); 12 159 12 160 dcl txtlinptr ptr; /* the current text line */ 12 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 12 162 /* empty text header structure */ 12 163 dcl 1 text_header aligned based (const.text_header_ptr), 12 164 2 sws, /* control switches */ 12 165 3 art bit (1) unal, /* block has artwork */ 12 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 12 167 3 modified bit (1) unal, /* block contains modified lines */ 12 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 12 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 12 170 3 tblblk bit (1) unal, /* a table block */ 12 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 12 172 3 white bit (1) unal, /* block is a white space block */ 12 173 3 picture bit (1) unal, /* picture block */ 12 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 12 175 3 MBZ bit (26) unal, 12 176 2 art_count fixed bin unal, /* to count input art lines */ 12 177 2 blkptr ptr, /* pointer to suspended block */ 12 178 2 cap_size fixed bin unal, /* line count of text caption */ 12 179 2 cap_used fixed bin (31), /* size of text caption */ 12 180 2 colno fixed bin unal, /* column owning the block */ 12 181 2 count fixed bin unal, /* line count for block */ 12 182 2 eqn_line_count 12 183 fixed bin unal, /* counter for equation lines */ 12 184 2 first_text fixed bin unal, /* OBSOLETE */ 12 185 2 ftn, /* footnotes */ 12 186 3 ct fixed bin, /* count */ 12 187 3 usd fixed bin (31), /* space used */ 12 188 3 blkndx (40) fixed bin, /* footnote block index values */ 12 189 2 head_size fixed bin, /* line count of text header */ 12 190 2 head_used fixed bin (31), /* size of text header */ 12 191 2 index fixed bin unal, /* block index of next output line */ 12 192 2 keep_count fixed bin unal, /* to count input keep lines */ 12 193 2 last_line fixed bin, /* last text line in column */ 12 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 12 195 2 name char (32) var, /* block name, if any */ 12 196 2 nofill_count /* to count nofill lines */ 12 197 fixed bin, 12 198 2 parms_ptr ptr, /* parms for suspended block */ 12 199 2 refer fixed bin, /* inter-block reference */ 12 200 2 refer_index /* OBSOLETE */ 12 201 fixed bin, /* a reference */ 12 202 2 split fixed bin, /* split point for balancing */ 12 203 2 trl_ws fixed bin (31), /* trailing WS */ 12 204 2 used fixed bin (31); /* page space used by a column/block */ 12 205 /* text formatting parameters */ 12 206 dcl 1 text_parms aligned like default_parms 12 207 based (const.text_parms_ptr); 12 208 12 209 dcl 1 current_parms 12 210 aligned like default_parms 12 211 based (const.current_parms_ptr); 12 212 12 213 dcl 1 default_parms 12 214 aligned based (const.default_parms_ptr), 12 215 2 sws, /* control switches */ 12 216 3 quad bit (6) unal, /* text alignment mode */ 12 217 3 art bit (1) unal, /* 1 = block countains artwork */ 12 218 3 cbar, /* change bar flags */ 12 219 4 add bit (1) unal, /* text addition flag */ 12 220 4 del bit (1) unal, /* text deletion flag for next line */ 12 221 4 mod bit (1) unal, /* text modification flag */ 12 222 3 fill_mode 12 223 bit (1) unal, /* 1 = fill mode ON */ 12 224 3 footnote bit (1) unal, /* block is a footnote */ 12 225 3 hfc bit (1) unal, /* OBSOLETE */ 12 226 3 htab_mode 12 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 12 228 3 keep bit (1) unal, /* keep mode */ 12 229 3 page bit (1) unal, /* block belongs to page, not text */ 12 230 3 title_mode 12 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 12 232 3 MBZ bit (19) unal, 12 233 2 ftrptr ptr, /* text caption block */ 12 234 2 cbar_level /* change level for cbars */ 12 235 char (1) aligned, 12 236 2 hdrptr ptr, /* text header block */ 12 237 2 left, /* left margin data */ 12 238 3 indent fixed bin (31), 12 239 3 undent fixed bin (31), 12 240 2 linespace fixed bin (31), /* line spacing value */ 12 241 2 measure fixed bin (31), /* line space for text */ 12 242 /* right margin data */ 12 243 2 right like default_parms.left, 12 244 2 fntstk, /* stack of last 20 font changes */ 12 245 3 index fixed bin, /* which one in use */ 12 246 /* entry(0) is the default */ 12 247 3 entry (0:19) like fntstk_entry; 12 248 12 249 dcl hfcblk_ptr ptr; 12 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 12 251 12 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 917 13 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 13 2* 13 3* This storage is converted from external (as declared) to internal by the 13 4* binder and contains items that must be accessible to both the bound and 13 5* unbound program. */ 13 6 13 7 /* Written: ??/??/7? - EJW 13 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 13 9* and removed the codes array; version 6. 13 10**/ 13 11 13 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 13 13 14 dcl 1 compstat$compconst 13 15 aligned like const ext static; 13 16 13 17 dcl const_version fixed bin (35) static options (constant) init (6); 13 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 13 19 fixed bin static options (constant) init (80); 13 20 dcl MAX_TREE_AREAS /* number of tree areas */ 13 21 fixed bin static options (constant) init (20); 13 22 13 23 dcl 1 const aligned based (compstat$compconst.ptr), 13 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 13 25 2 version fixed bin (35), /* structure version */ 13 26 2 art_symbols /* string of art symbols */ 13 27 char (28) aligned, 13 28 2 builtin_count /* count of builtin variables */ 13 29 fixed bin, 13 30 2 comp_dir char (200), /* dir in which compose lives */ 13 31 2 comp_version 13 32 char (8) var, /* compose version id */ 13 33 2 date_value char (8) var, /* current date */ 13 34 2 dsm_name char (32), /* device support module name */ 13 35 2 dvt_name char (32), /* device table name */ 13 36 2 max_seg_chars 13 37 fixed bin (35), /* char count in a max seg */ 13 38 2 null_str char (1) var, /* an empty string */ 13 39 2 ptrs, 13 40 ( 3 call_stk_ptr, /* -> insert call stack */ 13 41 3 colhdrptr, /* empty column header structure */ 13 42 3 ctl_ptr, /* input line structure */ 13 43 3 current_parms_ptr, /* current formatting parms */ 13 44 3 default_parms_ptr, /* default initial text parms */ 13 45 3 devptr, /* -> comp_dvt structure */ 13 46 3 dvidptr, /* -> comp_dvid structure */ 13 47 3 errblk_ptr, /* error message block pointer */ 13 48 3 footnote_parms_ptr, /* footnote formatting parms */ 13 49 3 fnttbldata_ptr, /* -> font table data */ 13 50 3 global_area_ptr, /* per invocation storage */ 13 51 3 init_page_parms_ptr, /* default initial page parms */ 13 52 3 insert_data_ptr, /* insert file data block */ 13 53 3 local_area_ptr, /* per file storage */ 13 54 3 loctbl_ptr, /* for font copying */ 13 55 3 option_ptr, /* program options block */ 13 56 3 outproc_ptr, /* device writer for cleanup */ 13 57 3 page_ptr, /* active page structure */ 13 58 3 page_header_ptr, /* empty page header structure */ 13 59 3 page_parms_ptr, /* page formatting parameter block */ 13 60 3 save_shared_ptr, /* saved shared data */ 13 61 3 shared_ptr, /* shared data structure */ 13 62 3 text_entry_ptr, /* empty text entry structure */ 13 63 3 text_header_ptr, /* empty text header structure */ 13 64 3 text_parms_ptr, /* main body formatting parms */ 13 65 3 tree_ptr /* symbol tree structure */ 13 66 ) ptr, 13 67 2 time_value char (6) var; /* time at start */ 13 68 13 69 /* Other external */ 13 70 dcl ( 13 71 ioa_, 13 72 ioa_$nnl 13 73 ) entry options (variable); 13 74 dcl iox_$error_output 13 75 ptr ext static, /* iocb pointer for error_output */ 13 76 iox_$user_input 13 77 ptr ext static, /* iocb pointer for user_input */ 13 78 iox_$user_output 13 79 ptr ext static; /* iocb pointer for user_output */ 13 80 dcl sys_info$max_seg_size 13 81 fixed bin (18) ext static; 13 82 13 83 /* END INCLUDE FILE compstat.incl.pl1 */ 918 14 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 14 6 /* */ 14 7 /* This include segment allocates space in a translator's temporary segment. It */ 14 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 14 9 /* internal procedure in the program which includes this include segment. The temporary */ 14 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 14 11 /* */ 14 12 /* S__t_a_t_u_s */ 14 13 /* */ 14 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 14 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 14 16 /* */ 14 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 18 14 19 14 20 14 21 allocate: procedure (Parea, ANwords) returns (ptr); 14 22 14 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 14 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 14 25 14 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 14 27 /* to a 0 mod 2 quantity. */ 14 28 P ptr, /* a temporary pointer. */ 14 29 code fixed bin(35), /* a status code. */ 14 30 (mod, null, ptr) builtin; 14 31 14 32 dcl 1 area based (Parea), 14 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 14 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 14 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 14 36 14 37 dcl translator_temp_$get_next_segment 14 38 entry (ptr, ptr, fixed bin(35)); 14 39 14 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 14 41 if Nwords > Lfree then do; /* handle area overflow. */ 14 42 call translator_temp_$get_next_segment (Parea, P, code); 14 43 if P = null then return (null); 14 44 Parea = P; 14 45 if Nwords > area.Lfree then return (null); 14 46 end; 14 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 14 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 14 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 14 50 return (P); 14 51 14 52 end allocate; 14 53 14 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 919 920 921 end comp_format_ctls_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0909.5 comp_format_ctls_.pl1 >spec>online>comp>comp_format_ctls_.pl1 905 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 906 2 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 908 3 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 909 4 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 910 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 911 6 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1 912 7 03/01/85 1412.0 comp_htab.incl.pl1 >ldd>include>comp_htab.incl.pl1 913 8 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 914 9 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 915 10 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 916 11 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 917 12 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 918 13 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 919 14 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 14-23 ref 14-21 14-40 14-40 Lfree 2 based fixed bin(35,0) level 2 dcl 14-32 set ref 14-41 14-45 14-49* 14-49 Nwords 000674 automatic fixed bin(17,0) dcl 14-26 set ref 14-40* 14-41 14-45 14-48 14-49 Ofree 1 based fixed bin(35,0) level 2 dcl 14-32 set ref 14-47 14-48* 14-48 P 000676 automatic pointer dcl 14-26 set ref 14-42* 14-43 14-44 14-47* 14-50 Parea parameter pointer dcl 14-23 set ref 14-21 14-41 14-42* 14-44* 14-45 14-47 14-47 14-48 14-48 14-49 14-49 align_flags 000265 constant bit(6) initial array dcl 21 ref 98 101 104 align_mode 000100 automatic varying char(32) dcl 24 set ref 110* 111* 112* area based structure level 1 unaligned dcl 14-32 bal 13 based bit(1) level 3 in structure "page_parms" packed unaligned dcl 9-86 in procedure "comp_format_ctls_" set ref 623* 716* 718* bal 14 based bit(1) level 4 in structure "page" packed unaligned dcl 9-11 in procedure "comp_format_ctls_" set ref 623* 716* 718* baldepth 16 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" ref 603 709 baldepth 317 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 709* 741* 741* baldepth 317 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 603* balftn 320 based structure level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" balftn 320 based structure level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" balftn 2 based structure level 2 in structure "colhdr" dcl 2-21 in procedure "comp_format_ctls_" balftn 320 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" balftn 320 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" balusd 372 based fixed bin(31,0) level 3 dcl 36 set ref 734* blkct 373 based fixed bin(17,0) level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537* blkct 373 based fixed bin(17,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 611* blkct 373 based fixed bin(17,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 741* blkptr based pointer array level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 649* blkptr 3752 based pointer level 3 in structure "shared" dcl 10-7 in procedure "comp_format_ctls_" set ref 82 91 91 98 101 101 120 124 126 127 131 133 153 153 157 160 161 356 356 434 437 439 449 449 461 461 482 485 487 504 504 504 512 754 797 797 812 819* 822 825 828 835* 838 845 845 845 849 849 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 867 867* 875 875 875 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 blkptr based pointer array level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 561* block_break 000340 constant fixed bin(17,0) initial dcl 1-9 set ref 512* 754* bottom 10 based fixed bin(31,0) level 4 dcl 9-11 ref 768 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 10-7 ref 64 107 464 490 537 611 737 782 800 852 879 891 ccol 1 based fixed bin(17,0) level 2 dcl 11-15 ref 74 chars 1 based varying char(32) level 2 dcl 7-3 set ref 192* 316* 322 327 330* 330 330 341* 341 352 377* 421 426* 426 428 code 000700 automatic fixed bin(35,0) dcl 14-26 set ref 14-42* col based structure level 1 dcl 2-5 set ref 560 560 642 642 col0 based structure level 1 dcl 2-37 col1 based structure level 1 dcl 907 col_count 20 based fixed bin(17,0) level 3 dcl 9-11 set ref 537* 611* 665* 728* 728 730* 732 col_depth_adj 000111 automatic fixed bin(31,0) dcl 25 set ref 576* 582* 583 691* 698* 699 740* col_index 21 based fixed bin(17,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 464* 490* 532* 723* 819* 835* 852* 867* 879* col_index 4 based fixed bin(17,0) level 2 in structure "page_header" dcl 9-27 in procedure "comp_format_ctls_" set ref 532* colhdr based structure level 1 dcl 2-21 ref 562 646 colhdrptr 130 based pointer level 3 dcl 13-23 ref 562 646 colno 12 based fixed bin(17,0) level 3 packed unaligned dcl 12-49 ref 98 127 161 colptr 4 based pointer array level 2 in structure "tblfmt" dcl 11-15 in procedure "comp_format_ctls_" ref 74 colptr 3754 based pointer level 3 in structure "shared" dcl 10-7 in procedure "comp_format_ctls_" set ref 534* 537 537 537 537 537 537 537 537 537 537 537 537 537 560 560 642 642 724* cols 14 based structure level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 664* 721* cols 13 based structure level 2 in structure "page_parms" dcl 9-86 in procedure "comp_format_ctls_" set ref 664 721 column_break 000337 constant fixed bin(17,0) initial dcl 1-9 set ref 517* column_ptr 42 based pointer array level 2 dcl 9-11 set ref 528 534 535 552 552 557 560* 561 562 563 563 564 564 568 570 583 588 590 593 596 596 599 600 600 600 602 602 602 603 604 609 609 611 611 611 611 611 611 611 611 611 611 611 611 611 638 642* 645 701 701 707 724 725 733 794 794 comp_break_ 000022 constant entry external dcl 4-11 ref 91 124 157 437 449 485 512 517 754 822 838 comp_dvt based structure level 1 dcl 3-19 comp_error_table_$inconsistent 000010 external static fixed bin(35,0) dcl 50 set ref 658* comp_error_table_$limitation 000012 external static fixed bin(35,0) dcl 52 set ref 205* 299* comp_error_table_$missing_delimiter 000014 external static fixed bin(35,0) dcl 54 ref 285 comp_error_table_$syntax_error 000016 external static fixed bin(35,0) dcl 56 set ref 367* 387* comp_extr_str_ 000024 constant entry external dcl 4-21 ref 259 comp_head_page_ 000026 constant entry external dcl 4-33 ref 817 833 comp_read_$name 000030 constant entry external dcl 4-50 ref 180 404 comp_read_$number 000032 constant entry external dcl 4-53 ref 133 141 244 comp_report_ 000034 constant entry external dcl 4-59 ref 293 346 415 630 comp_report_$ctlstr 000036 constant entry external dcl 4-61 ref 205 286 299 367 387 658 comp_use_ref_ 000040 constant entry external dcl 4-74 ref 111 comp_util_$getblk 000042 constant entry external dcl 4-82 ref 819 835 867 comp_util_$set_bin 000044 constant entry external dcl 4-100 ref 453 458 477 498 568 576 588 590 652 675 691 772 790 845 875 comp_util_$set_net_page 000046 constant entry external dcl 4-104 ref 776 compstat$compconst 000050 external static structure level 1 dcl 13-14 const based structure level 1 dcl 13-23 count based fixed bin(17,0) level 2 in structure "htab" dcl 7-3 in procedure "comp_format_ctls_" set ref 175* 191* 198 215 218 223* 223 306* 306 376* 406 406 412 count 3644 based fixed bin(17,0) level 3 in structure "shared" dcl 10-7 in procedure "comp_format_ctls_" set ref 537 537* 611 611* count 14(18) based fixed bin(17,0) level 4 in structure "page" packed unaligned dcl 9-11 in procedure "comp_format_ctls_" set ref 523 527 532* 665* 728 730 count 12(18) based fixed bin(17,0) level 3 in structure "text" packed unaligned dcl 12-49 in procedure "comp_format_ctls_" ref 91 count 13(18) based fixed bin(17,0) level 3 in structure "page_parms" packed unaligned dcl 9-86 in procedure "comp_format_ctls_" set ref 532* 567* 627 636* 636 638 642 645 658* 665 675 723* count 32 based fixed bin(17,0) array level 3 in structure "htab" dcl 7-3 in procedure "comp_format_ctls_" set ref 195* 240* 305* ct 375 based fixed bin(17,0) level 4 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537 537* ct 375 based fixed bin(17,0) level 4 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 611 611* ct 375 based fixed bin(17,0) level 4 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 741 741* ctl based structure level 1 dcl 12-157 ctl_index parameter fixed bin(17,0) dcl 17 set ref 12 64* 77 98 101 104 ctl_line based varying char(1020) dcl 12-158 set ref 64* 68 131 133* 139 141* 205* 286* 293* 299* 316 319 322 346 346* 367* 387* 415* 471 520 572 625 630* 658* 686 686 713 716 779 804 849 ctl_ptr 132 based pointer level 3 dcl 13-23 ref 64 68 68 111 111 131 131 133 133 133 133 133 139 139 141 141 141 141 141 180 180 205 205 205 244 244 259 259 286 286 286 293 293 293 299 299 299 316 316 319 319 319 322 322 346 346 346 346 346 367 367 367 387 387 387 404 404 415 415 415 444 471 474 502 520 520 572 572 575 575 580 580 625 625 630 630 630 658 658 658 686 686 686 686 690 690 696 696 713 713 716 716 779 804 849 current_parms based structure level 1 dcl 12-209 set ref 819 819 835 835 867 867 current_parms_ptr 134 based pointer level 3 dcl 13-23 ref 98 104 104 127 137 161 167 355 432 453 458 458 461 464 464 464 464 464 464 464 464 464 464 464 464 477 477 487 490 490 490 490 490 490 490 490 498 502 504 535 725 819 819 835 835 841 841 841 867 867 872 872 datum parameter fixed bin(31,0) dcl 899 ref 897 902 default_parms based structure level 1 dcl 12-213 depth_adj 310 based fixed bin(31,0) level 2 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537* 537* depth_adj 310 based fixed bin(31,0) level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 699* 740 741* 741* depth_adj 310 based fixed bin(31,0) level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 583* 611* 611* devptr 140 based pointer level 3 dcl 13-23 ref 453 458 477 498 568 576 588 590 652 675 691 772 772 790 790 845 875 epftrptr 3764 based pointer level 3 dcl 10-7 ref 766 766 ephdrptr 3766 based pointer level 3 dcl 10-7 ref 762 762 ercd 000112 automatic fixed bin(35,0) dcl 26 set ref 227* 228 396* 397 exit_str 000113 automatic varying char(128) initial dcl 28 set ref 28* 112* 464* 490* 537* 537* 611* 611* 782* 800* 852* 879* 891 891* fill 57 based varying char(32) array level 3 dcl 7-3 set ref 194* 252* 259* 270* 276* fill_mode 2 based bit(1) level 3 in structure "current_parms" packed unaligned dcl 12-209 in procedure "comp_format_ctls_" set ref 127* 137* 161* 167* fill_mode 1006 based bit(1) level 4 in structure "text" packed unaligned dcl 12-49 in procedure "comp_format_ctls_" set ref 126* 153 160* fmt 2 based structure array level 2 dcl 11-5 fntstk_entry based structure level 1 dcl 5-6 fnxt 000154 automatic fixed bin(21,0) dcl 29 set ref 180* 185 244* 250 259* 261 footer 7 based fixed bin(31,0) level 4 dcl 9-11 ref 768 footnote_parms based structure level 1 dcl 6-12 footnote_parms_ptr 146 based pointer level 3 dcl 13-23 ref 453 453 453 794 format_break 000330 constant fixed bin(17,0) initial dcl 1-9 set ref 91* 124* 157* 437* 449* 485* 822* 838* ftn 375 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" ftn 375 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" ftn 375 based structure level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" ftn 375 based structure level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 10-7 ref 91 91 453 ftrptr 312 based pointer level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 647* ftrptr 312 based pointer level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 563* ftrusd 314 based fixed bin(31,0) level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 648* 701 ftrusd 314 based fixed bin(31,0) level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 564* galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 8-5 ref 98 776 817 833 gutter 315 based fixed bin(31,0) level 2 dcl 36 set ref 652* 655 672 hanging 120(06) based bit(1) level 4 packed unaligned dcl 12-49 set ref 825* hdr 4 based structure level 2 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" hdr 15 based structure level 2 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" hdr 316 based structure level 2 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" hdr 4 based structure level 2 in structure "hfcblk" dcl 12-250 in procedure "comp_format_ctls_" hdr 316 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" hdr 316 based structure level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 646* hdr 316 based structure level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 562* hdrptr 452 based pointer level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 647* hdrptr 452 based pointer level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 563* hdrusd 454 based fixed bin(31,0) level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 564* hdrusd 454 based fixed bin(31,0) level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 648* hdspc 23 based fixed bin(31,0) level 3 dcl 9-11 set ref 537* 537* 611* 611* head_used 000155 automatic fixed bin(31,0) dcl 30 set ref 817* 833* headed 15(03) based bit(1) level 4 packed unaligned dcl 9-11 ref 817 833 header 6 based fixed bin(31,0) level 4 dcl 9-11 ref 768 hf_needed 000156 automatic fixed bin(31,0) dcl 31 set ref 759* 760* 760 762* 762 764* 764 766* 766 768 hfcblk based structure level 1 dcl 12-250 hscales 000256 constant fixed bin(31,0) initial array dcl 32 set ref 244* 453* 458* 477* 568* 588* 590* 652* 675* 790* 845* 875* htab based structure level 1 dcl 7-3 set ref 190 190 375 375 htab_mode 2(03) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 12-209 in procedure "comp_format_ctls_" set ref 355* 432* htab_mode 1006(03) based bit(1) level 4 in structure "text" packed unaligned dcl 12-49 in procedure "comp_format_ctls_" set ref 356* 439* htab_ptr 4002 based pointer level 3 dcl 10-7 set ref 175 175 187 190* 190 190 191 191 192 194 194 195 195 198 198 202 205 205 215 218 220 220 223 223 228 240 242 244 252 259 270 276 293 299 299 305 306 306 312 316 322 327 330 330 330 334 335 335 341 341 342 352 372 375* 375 375 376 376 377 406 406 406 412 421 426 426 428 431 i 000157 automatic fixed bin(17,0) dcl 34 set ref 198* 198* 202 215 218* 218* 220 220* 227* 228 322* 324 327 330 330 334* 334 334* 335 335* 341 342 421* 423 428* 431 527* 528* 732* 733 734 741* indent 12 based fixed bin(31,0) level 3 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" set ref 453* 458* 461 464* 464* 464 464 490* 490* 490 490 841 872 indent 12 based fixed bin(31,0) level 3 in structure "footnote_parms" dcl 6-12 in procedure "comp_format_ctls_" set ref 453* 453* indent 1016 based fixed bin(31,0) level 4 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 461* 845* 845* 852 852 852 852 879 879 879 879 indent 16 based fixed bin(31,0) level 3 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" set ref 464 464 464 464 477* 487 841 872 indent 1022 based fixed bin(31,0) level 4 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 487* 852 852 852 852 875* 875* 879 879 879 879 index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 12-157 in procedure "comp_format_ctls_" set ref 68 131 133* 133* 139 141* 141* 316 319* 319* 322 346* 444 474* 520 572 575* 575 580* 580 625 686 686 690* 690 696* 696 713 716 index builtin function dcl 59 in procedure "comp_format_ctls_" ref 253 256 282 362 421 471 716 779 804 849 info 277 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" info 161 based structure level 2 in structure "txtlin" dcl 12-161 in procedure "comp_format_ctls_" info 277 based structure level 3 in structure "hfcblk" dcl 12-250 in procedure "comp_format_ctls_" info 161 based structure level 2 in structure "text_entry" dcl 12-68 in procedure "comp_format_ctls_" info 277 based structure level 3 in structure "ftnhdr" dcl 6-10 in procedure "comp_format_ctls_" info 161 based structure level 2 in structure "ctl" dcl 12-157 in procedure "comp_format_ctls_" set ref 111 111 133 133 141 141 180 180 205 205 244 244 259 259 286 286 293 293 299 299 346 346 367 367 387 387 404 404 415 415 630 630 658 658 input 116 based structure level 2 dcl 12-49 input_line 375 based varying char(1020) level 2 dcl 12-49 ref 91 124 437 449 485 822 838 ioa_ 000052 constant entry external dcl 13-70 ref 64 741 891 ioa_$rsnnl 000020 constant entry external dcl 62 ref 112 464 490 537 611 782 800 852 879 itab parameter fixed bin(17,0) dcl 234 ref 231 240 244 252 259 270 276 293 305 306 j 000160 automatic fixed bin(17,0) dcl 34 set ref 399* 406* 406* 410* 412 412 431 jstop 000656 automatic fixed bin(17,0) dcl 237 set ref 240* 242 244 252 259 270 276 286 293 296* 296 305 k 000161 automatic fixed bin(17,0) dcl 34 set ref 266* 267 270 272 left 36 based structure level 3 in structure "prvtblcol" dcl 11-44 in procedure "comp_format_ctls_" left 12 based structure level 2 in structure "default_parms" dcl 12-213 in procedure "comp_format_ctls_" left 455 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 672* 684 741* 741* left 12 based structure level 2 in structure "footnote_parms" dcl 6-12 in procedure "comp_format_ctls_" left 36 based structure level 3 in structure "tblcol0" dcl 11-41 in procedure "comp_format_ctls_" left 12 based structure level 2 in structure "text_parms" dcl 12-206 in procedure "comp_format_ctls_" left 36 based structure level 3 in structure "tblcol" dcl 11-26 in procedure "comp_format_ctls_" left 1016 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" left 455 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 588* 596 599* 600 left 12 based structure level 2 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" left 1016 based structure level 3 in structure "hfcblk" dcl 12-250 in procedure "comp_format_ctls_" left 1016 based structure level 3 in structure "ftnhdr" dcl 6-10 in procedure "comp_format_ctls_" length 2 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 498* 772* 774 782* 782* length builtin function dcl 59 in procedure "comp_format_ctls_" ref 91 131 139 157 316 319 428 520 625 686 713 length 1 based fixed bin(31,0) level 2 in structure "page_parms" dcl 9-86 in procedure "comp_format_ctls_" set ref 576* 576 576* 691* 691 691* 774* line_area_ptr 000610 automatic pointer initial dcl 12-25 set ref 12-25* linespace 164 based fixed bin(31,0) level 2 in structure "ctl" dcl 12-157 in procedure "comp_format_ctls_" set ref 502* linespace 302 based fixed bin(31,0) level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 504* linespace 1020 based fixed bin(31,0) level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 504* linespace 221 based fixed bin(31,0) level 2 in structure "option" dcl 8-5 in procedure "comp_format_ctls_" set ref 498* linespace 14 based fixed bin(31,0) level 2 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" set ref 498* 502 504 local_area_ptr 160 based pointer level 3 dcl 13-23 set ref 190* 375* 560* 642* locol based structure level 1 dcl 36 locolptr 000162 automatic pointer dcl 35 set ref 638* 639 645* 646 647 647 648 648 649 652 655 672 672 675 680 682 684 684 684 699 701 701 707 709 710 733* 734 734 740 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 ltrim builtin function dcl 59 ref 185 382 630 675 margin 455 based structure level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" margin 5 based structure level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" margin 455 based structure level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" margin 455 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" max builtin function dcl 59 ref 306 528 710 728 760 762 764 766 max_cols 012317 constant fixed bin(17,0) initial dcl 9-7 ref 627 630 maxcolusd 000164 automatic fixed bin(31,0) dcl 37 set ref 67* 528* 528 604* 710* 710 734 measure 15 based fixed bin(31,0) level 2 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" set ref 458* 464 464 464 464 477* 490 490 490* 490* 535* 725* 841 measure 457 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 568* 570 590* 593 596 600 725 measure 15 based fixed bin(31,0) level 2 in structure "text_parms" dcl 12-206 in procedure "comp_format_ctls_" set ref 794* 797 measure 1021 based fixed bin(31,0) level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 797* 852 852 852 852 879 879 879 879 measure 11 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 552 794* measure 10 based fixed bin(31,0) level 2 in structure "page_parms" dcl 9-86 in procedure "comp_format_ctls_" set ref 568* 588* 590* 593 652* 655 675* 680 790* 794 800* 800* 872 measure 457 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 675* 680 682 684 741* 741* measure 15 based fixed bin(31,0) level 2 in structure "footnote_parms" dcl 6-12 in procedure "comp_format_ctls_" set ref 453* 794* measure 457 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" set ref 535 552* 794* min_WS 30 based fixed bin(31,0) level 2 dcl 3-19 set ref 453* 458* 477* 568* 588* 590* 652* 675* 790* 845* 875* min_lead 31 based fixed bin(31,0) level 2 dcl 3-19 set ref 498* 576* 691* 772* min_val 000165 automatic fixed bin(31,0) dcl 38 set ref 768* 772* mod builtin function dcl 14-26 ref 14-40 name 22 based char(32) array level 3 dcl 7-3 set ref 194* 198 228* 406 ndx 1 based fixed bin(17,0) level 2 dcl 11-5 ref 73 net 25 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 537* 537* 602 611* 611* 701 net 450 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537* 537* net 450 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 602* 611* 611* net 450 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 701* 741* 741* net_line 000166 automatic fixed bin(31,0) dcl 39 set ref 841* 845 872* 875 nofill_count 104 based fixed bin(17,0) level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 131* 133* nofill_count 100 based fixed bin(17,0) level 2 in structure "text_header" dcl 12-163 in procedure "comp_format_ctls_" set ref 139* 141* nofill_opt 1(28) based bit(1) level 2 packed unaligned dcl 8-5 ref 148 null builtin function dcl 14-26 ref 14-43 14-43 14-45 opftrptr 4010 based pointer level 3 dcl 10-7 ref 764 764 ophdrptr 4012 based pointer level 3 dcl 10-7 ref 760 760 option based structure level 1 dcl 8-5 option_ptr 164 based pointer level 3 dcl 13-23 ref 98 148 498 776 817 833 page based structure level 1 dcl 9-11 page_header based structure level 1 dcl 9-27 page_header_ptr 172 based pointer level 3 dcl 13-23 ref 532 page_parms based structure level 1 dcl 9-86 page_parms_ptr 174 based pointer level 3 dcl 13-23 ref 532 567 568 576 576 576 588 590 593 623 627 636 636 638 642 645 652 655 658 664 665 675 675 680 691 691 691 716 718 721 723 774 790 794 800 800 872 page_ptr 170 based pointer level 3 dcl 13-23 ref 464 490 498 517 523 527 528 532 532 534 535 537 537 537 537 537 537 537 537 552 552 552 557 560 561 562 563 563 564 564 568 570 583 588 590 593 596 596 599 600 600 600 602 602 602 602 603 603 604 609 609 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 623 638 642 645 664 665 665 701 701 701 707 709 716 718 721 723 724 725 728 728 728 728 730 730 732 733 768 768 768 768 772 774 782 782 794 794 794 817 819 833 835 852 867 879 page_width 000167 automatic fixed bin(31,0) dcl 40 set ref 570* 585 593 596* 655 672 672* 680 682* 682 pageno 26 based varying char(32) level 3 dcl 9-11 set ref 537* 611* parms 1004 based structure level 2 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" parms 1 based structure level 2 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" parms 457 based structure level 2 in structure "locol" dcl 36 in procedure "comp_format_ctls_" parms 457 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" parms 457 based structure level 2 in structure "col1" dcl 907 in procedure "comp_format_ctls_" pats 12 based fixed bin(8,0) array level 2 packed unaligned dcl 7-3 set ref 191* 334 335* 335 342* 376* 431* pattern 22 based structure array level 2 dcl 7-3 set ref 202 205 205 220* 220 pdl_max 41 based fixed bin(31,0) level 2 dcl 3-19 set ref 772* pdw_max 40 based fixed bin(31,0) level 2 dcl 3-19 set ref 790* picture 3644 based structure level 2 dcl 10-7 pmercd parameter fixed bin(35,0) dcl 235 set ref 231 239* 244* 247 285* 286* prvtblcolptr 000606 automatic pointer initial dcl 11-43 set ref 11-43* pspc 447 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537* 537* pspc 447 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 707* 741* 741* pspc 447 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 609* 611* 611* pspc 447 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" ref 609 707 ptr builtin function dcl 14-26 in procedure "allocate" ref 14-47 ptr 14 based pointer array level 3 in structure "tbldata" dcl 11-5 in procedure "comp_format_ctls_" ref 73 ptr 000050 external static pointer level 2 in structure "compstat$compconst" dcl 13-14 in procedure "comp_format_ctls_" ref 64 64 68 68 70 73 73 82 91 91 91 91 98 98 98 101 101 104 104 107 111 111 120 124 126 127 127 131 131 131 133 133 133 133 133 133 137 139 139 139 141 141 141 141 141 141 148 153 153 157 160 161 161 167 175 175 180 180 187 190 190 190 190 191 191 192 194 194 195 195 198 198 202 205 205 205 205 205 215 218 220 220 223 223 228 240 242 244 244 244 252 259 259 259 270 276 286 286 286 293 293 293 293 299 299 299 299 299 305 306 306 312 316 316 316 319 319 319 322 322 322 327 330 330 330 334 335 335 341 341 342 346 346 346 346 346 352 355 356 356 367 367 367 372 375 375 375 375 376 376 377 387 387 387 404 404 406 406 406 412 415 415 415 421 426 426 428 431 432 434 437 439 444 449 449 453 453 453 453 453 453 458 458 458 461 461 461 464 464 464 464 464 464 464 464 464 464 464 464 464 464 471 474 477 477 477 482 485 487 487 490 490 490 490 490 490 490 490 490 490 498 498 498 498 502 502 504 504 504 504 512 517 520 520 523 527 528 532 532 532 532 534 534 535 535 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 552 552 552 557 560 560 560 560 561 562 562 563 563 564 564 567 568 568 568 570 572 572 575 575 576 576 576 576 580 580 583 588 588 588 590 590 590 593 593 596 596 599 600 600 600 602 602 602 602 603 603 604 609 609 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 623 623 625 625 627 630 630 630 636 636 638 638 642 642 642 642 642 645 645 646 652 652 655 658 658 658 658 664 664 665 665 665 675 675 675 680 686 686 686 686 690 690 691 691 691 691 696 696 701 701 701 707 709 713 713 716 716 716 716 718 718 721 721 723 723 724 724 725 725 728 728 728 728 730 730 732 733 737 754 760 760 762 762 764 764 766 766 768 768 768 768 772 772 772 774 774 776 779 782 782 782 790 790 790 794 794 794 794 794 794 797 797 797 800 800 800 804 812 817 817 819 819 819 819 822 825 828 833 833 835 835 835 835 838 841 841 841 845 845 845 845 849 849 849 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 867 867 867 867 867 872 872 872 875 875 875 875 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 891 ptr 310 based pointer level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" ref 157 ptr 172 based pointer level 2 in structure "ctl" dcl 12-157 in procedure "comp_format_ctls_" ref 64 68 131 133 139 141 205 286 293 299 316 319 322 346 346 367 387 415 471 520 572 625 630 658 686 686 713 716 779 804 849 ptrs 3742 based structure level 2 in structure "shared" dcl 10-7 in procedure "comp_format_ctls_" ptrs 126 based structure level 2 in structure "const" dcl 13-23 in procedure "comp_format_ctls_" quad 120(11) based bit(6) level 4 in structure "text" packed unaligned dcl 12-49 in procedure "comp_format_ctls_" set ref 101* quad based bit(6) level 3 in structure "current_parms" packed unaligned dcl 12-209 in procedure "comp_format_ctls_" set ref 98* 104* quad 1004 based bit(6) level 4 in structure "text" packed unaligned dcl 12-49 in procedure "comp_format_ctls_" set ref 101* right 456 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" set ref 552* 794* right 456 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 600* right 1022 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" right 16 based structure level 2 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" right 456 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 684* 741* 741* save_index 000170 automatic fixed bin(35,0) dcl 41 set ref 444* 474 scale parameter fixed bin(31,0) dcl 900 ref 897 902 shared based structure level 1 dcl 10-7 shared_ptr 200 based pointer level 3 dcl 13-23 ref 64 70 73 73 82 91 91 91 91 98 101 101 107 120 124 126 127 131 133 153 153 157 160 161 175 175 187 190 190 190 191 191 192 194 194 195 195 198 198 202 205 205 215 218 220 220 223 223 228 240 242 244 252 259 270 276 293 299 299 305 306 306 312 316 322 327 330 330 330 334 335 335 341 341 342 352 356 356 372 375 375 375 376 376 377 406 406 406 412 421 426 426 428 431 434 437 439 449 449 453 461 461 464 482 485 487 490 504 504 504 512 534 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 560 560 611 611 611 611 611 642 642 724 737 754 760 760 762 762 764 764 766 766 782 797 797 800 812 819 822 825 828 835 838 845 845 845 849 849 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 852 867 867 875 875 875 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 879 891 size builtin function dcl 59 ref 190 190 375 375 560 560 642 642 space 3645 based fixed bin(31,0) level 3 dcl 10-7 set ref 537* 537* 611* 611* stop 33 based fixed bin(31,0) array level 3 dcl 7-3 set ref 195* 242 244* 293 299 299 sws 15 based structure level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" sws 116 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" sws based structure level 2 in structure "current_parms" dcl 12-209 in procedure "comp_format_ctls_" sws 1004 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" sws 4113 based structure level 2 in structure "shared" dcl 10-7 in procedure "comp_format_ctls_" tab_char 000171 automatic char(1) unaligned dcl 42 set ref 380* 421 426 tab_name 000172 automatic char(32) unaligned dcl 43 set ref 180* 182 198 228 404* 406 table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 10-7 ref 70 tblcol based structure level 1 dcl 11-26 tblcolptr 000604 automatic pointer initial dcl 11-24 set ref 74* 11-24* tbldata based structure level 1 dcl 11-5 tbldata_ptr 4020 based pointer level 3 dcl 10-7 ref 73 73 tblfmt based structure level 1 dcl 11-15 tblfmtptr 000602 automatic pointer dcl 11-13 set ref 73* 74 74 text based structure level 1 dcl 12-49 text_area_ptr 000612 automatic pointer initial dcl 12-35 set ref 12-35* text_entry based structure level 1 dcl 12-68 text_header based structure level 1 dcl 12-163 text_header_ptr 204 based pointer level 3 dcl 13-23 ref 139 141 text_parms based structure level 1 dcl 12-206 text_parms_ptr 206 based pointer level 3 dcl 13-23 ref 794 797 title_mode 2(06) based bit(1) level 3 packed unaligned dcl 12-209 set ref 104 top 5 based fixed bin(31,0) level 4 dcl 9-11 ref 768 translator_temp_$get_next_segment 000054 constant entry external dcl 14-37 ref 14-42 txtstr based varying char(1020) dcl 12-45 ref 157 undent 1023 based fixed bin(31,0) level 4 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 849* 852 852 852 852 875* 879 879 879 879 undent 1017 based fixed bin(31,0) level 4 in structure "text" dcl 12-49 in procedure "comp_format_ctls_" set ref 845* 849 852 852 852 852 879 879 879 879 unscaled 000340 constant fixed bin(31,0) initial array dcl 44 set ref 133* 141* usd 376 based fixed bin(31,0) level 4 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 537* 537* usd 376 based fixed bin(31,0) level 4 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" ref 602 701 usd 376 based fixed bin(31,0) level 4 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 611* 611* usd 376 based fixed bin(31,0) level 4 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 741* 741* used 37 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_format_ctls_" set ref 517 537* 537* 611* 611* 728 used 451 based fixed bin(31,0) level 3 in structure "col0" dcl 2-37 in procedure "comp_format_ctls_" ref 602 701 used 114 based fixed bin(31,0) level 3 in structure "hfcblk" dcl 12-250 in procedure "comp_format_ctls_" ref 760 762 764 766 used 451 based fixed bin(31,0) level 3 in structure "col1" dcl 907 in procedure "comp_format_ctls_" set ref 604 611* 611* used 451 based fixed bin(31,0) level 3 in structure "locol" dcl 36 in procedure "comp_format_ctls_" set ref 710 734* 741* 741* used 451 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_format_ctls_" set ref 528 537* 537* varfld 000202 automatic varying char(1020) dcl 46 set ref 68* 171 180* 185* 185 212 242 244* 250* 250 253 256 259* 261* 261 266 270 272* 272 276 277* 282 282 291* 291 299 362 362 380 382* 382 384 393 404* vscales 000247 constant fixed bin(31,0) initial array dcl 47 set ref 498* 576* 691* 772* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 12-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 13-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 13-18 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 12-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 12-47 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_eject_page_ 000000 constant entry external dcl 4-15 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_hft_ctls_$title 000000 constant entry external dcl 4-36 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_report_$exact 000000 constant entry external dcl 4-64 comp_space_ 000000 constant entry external dcl 4-66 comp_tbl_ctls_ 000000 constant entry external dcl 4-68 comp_title_block_ 000000 constant entry external dcl 4-69 comp_update_symbol_ 000000 constant entry external dcl 4-71 comp_util_$add_text 000000 constant entry external dcl 4-75 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_$pageno 000000 constant entry external dcl 4-86 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_$relblk 000000 constant entry external dcl 4-94 comp_util_$replace_text 000000 constant entry external dcl 4-96 comp_util_$search_tree 000000 constant entry external dcl 4-98 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 13-17 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 10-126 flag_value based bit(1) unaligned dcl 10-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 ftnblk_data based structure level 1 dcl 6-5 ftnhdr based structure level 1 dcl 6-10 hfcblk_ptr automatic pointer dcl 12-249 init_page_parms based structure level 1 dcl 9-108 ioa_$nnl 000000 constant entry external dcl 13-70 iox_$error_output external static pointer dcl 13-74 iox_$user_input external static pointer dcl 13-74 iox_$user_output external static pointer dcl 13-74 just internal static bit(6) initial unaligned dcl 12-148 line_area based structure level 1 dcl 12-26 max_image_lines internal static fixed bin(17,0) initial dcl 9-5 max_text_lines internal static fixed bin(17,0) initial dcl 10-128 min builtin function dcl 59 mode_string internal static char(16) initial unaligned dcl 10-129 need_break internal static fixed bin(17,0) initial dcl 1-9 num_value based fixed bin(31,0) dcl 10-133 option_version internal static fixed bin(35,0) initial dcl 8-3 page_break internal static fixed bin(17,0) initial dcl 1-9 page_image based structure level 1 dcl 9-56 page_image_version internal static fixed bin(35,0) initial dcl 9-53 page_version internal static fixed bin(17,0) initial dcl 9-9 prvtblcol based structure level 1 dcl 11-44 quadc internal static bit(6) initial unaligned dcl 12-148 quadi internal static bit(6) initial unaligned dcl 12-148 quadl internal static bit(6) initial unaligned dcl 12-148 quado internal static bit(6) initial unaligned dcl 12-148 quadr internal static bit(6) initial unaligned dcl 12-148 save_shared based structure level 1 dcl 10-124 shared_version internal static fixed bin(35,0) initial dcl 10-5 string_area based fixed bin(17,0) array dcl 12-43 sys_info$max_seg_size external static fixed bin(18,0) dcl 13-80 tblcol0 based structure level 1 dcl 11-41 tblcolndx automatic fixed bin(17,0) dcl 11-22 tblfmtndx automatic fixed bin(17,0) dcl 11-12 tblkdata based structure level 1 dcl 12-5 text_area based structure level 1 dcl 12-36 txtlin based structure level 1 dcl 12-161 txtlinptr automatic pointer dcl 12-160 txtstrptr automatic pointer dcl 12-44 vbot internal static bit(4) initial unaligned dcl 11-48 vcen internal static bit(4) initial unaligned dcl 11-47 vjust internal static bit(4) initial unaligned dcl 11-49 vtop internal static bit(4) initial unaligned dcl 11-46 NAMES DECLARED BY EXPLICIT CONTEXT. allocate 011465 constant entry internal dcl 14-21 ref 190 375 560 642 bad_col 006153 constant label dcl 658 set ref 593 680 comp_format_ctls_ 000773 constant entry external dcl 12 ctl_ 000000 constant label array(167) dcl 82 ref 77 fin_ctl 001513 constant label dcl 148 ref 117 inr_ctl 003610 constant label dcl 477 ref 475 join_unl 010023 constant label dcl 841 ref 826 pdc_ctl 004133 constant label dcl 512 ref 806 pdl_ctl 007134 constant label dcl 754 ref 509 pdw_ctl 007422 constant label dcl 790 ref 779 return_ 010504 constant label dcl 891 ref 115 145 169 177 182 209 215 224 310 312 360 369 390 397 417 442 471 496 507 633 667 752 785 804 862 889 set_htabs 010545 constant entry internal dcl 231 ref 227 396 show 011430 constant entry internal dcl 897 ref 464 464 464 464 464 464 490 490 490 490 490 490 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 537 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 611 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 741 782 782 800 800 852 852 852 852 852 852 879 879 879 879 879 879 unh_ctl 007613 constant label dcl 812 ref 864 unl_ctl 007724 constant label dcl 828 ref 808 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 111 111 133 133 141 141 180 180 205 205 244 244 259 259 286 286 293 293 299 299 346 346 367 367 387 387 404 404 415 415 630 630 658 658 819 819 835 835 867 867 after builtin function ref 291 char builtin function ref 630 675 dec builtin function ref 902 divide builtin function ref 902 hbound builtin function ref 202 205 205 242 299 299 maxlength builtin function ref 327 null builtin function ref 82 120 153 175 187 312 356 372 434 449 461 482 504 512 557 561 563 639 647 649 754 760 762 764 766 797 812 828 867 11-24 11-43 12-25 12-35 round builtin function ref 902 902 search builtin function ref 266 322 393 substr builtin function ref 68 185 250 261 270 272 322 330 330 341 346 380 382 572 686 716 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 12560 12636 12321 12570 Length 13462 12321 56 610 237 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_format_ctls_ 808 external procedure is an external procedure. set_htabs internal procedure shares stack frame of external procedure comp_format_ctls_. show internal procedure shares stack frame of external procedure comp_format_ctls_. allocate internal procedure shares stack frame of external procedure comp_format_ctls_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_format_ctls_ 000100 align_mode comp_format_ctls_ 000111 col_depth_adj comp_format_ctls_ 000112 ercd comp_format_ctls_ 000113 exit_str comp_format_ctls_ 000154 fnxt comp_format_ctls_ 000155 head_used comp_format_ctls_ 000156 hf_needed comp_format_ctls_ 000157 i comp_format_ctls_ 000160 j comp_format_ctls_ 000161 k comp_format_ctls_ 000162 locolptr comp_format_ctls_ 000164 maxcolusd comp_format_ctls_ 000165 min_val comp_format_ctls_ 000166 net_line comp_format_ctls_ 000167 page_width comp_format_ctls_ 000170 save_index comp_format_ctls_ 000171 tab_char comp_format_ctls_ 000172 tab_name comp_format_ctls_ 000202 varfld comp_format_ctls_ 000602 tblfmtptr comp_format_ctls_ 000604 tblcolptr comp_format_ctls_ 000606 prvtblcolptr comp_format_ctls_ 000610 line_area_ptr comp_format_ctls_ 000612 text_area_ptr comp_format_ctls_ 000656 jstop set_htabs 000674 Nwords allocate 000676 P allocate 000700 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_ne_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return mod_fx1 shorten_stack ext_entry round_fx1 set_cs_eis index_cs_eis search_eis real_to_real_tr divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_break_ comp_extr_str_ comp_head_page_ comp_read_$name comp_read_$number comp_report_ comp_report_$ctlstr comp_use_ref_ comp_util_$getblk comp_util_$set_bin comp_util_$set_net_page ioa_ ioa_$rsnnl translator_temp_$get_next_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. comp_error_table_$inconsistent comp_error_table_$limitation comp_error_table_$missing_delimiter comp_error_table_$syntax_error compstat$compconst LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000770 28 001000 11 24 001001 11 43 001003 12 25 001004 12 35 001005 64 001006 67 001042 68 001043 70 001065 73 001071 74 001076 77 001102 82 001105 91 001111 98 001140 101 001161 102 001171 104 001172 107 001202 110 001210 111 001215 112 001246 115 001276 117 001277 120 001300 124 001304 126 001323 127 001332 131 001340 133 001347 136 001421 137 001422 139 001427 141 001441 145 001512 148 001513 153 001521 157 001531 160 001544 161 001553 165 001561 167 001562 169 001567 171 001570 175 001575 177 001602 180 001603 182 001643 185 001650 187 001705 190 001715 191 001731 192 001756 194 001761 195 002035 198 002102 200 002130 202 002132 205 002135 209 002207 212 002210 215 002215 218 002223 220 002233 221 002246 223 002250 224 002256 227 002257 228 002261 310 002276 312 002277 316 002303 319 002311 322 002324 324 002343 327 002344 330 002346 334 002376 335 002420 336 002424 337 002426 341 002427 342 002435 344 002442 346 002443 350 002507 352 002512 355 002524 356 002527 360 002536 362 002537 367 002557 369 002616 372 002617 375 002623 376 002641 377 002666 380 002671 382 002674 384 002720 387 002725 390 002770 393 002771 396 003005 397 003010 399 003012 400 003013 404 003014 406 003060 409 003110 410 003113 412 003114 415 003124 417 003171 421 003172 423 003211 426 003212 428 003221 431 003223 432 003233 434 003236 437 003242 439 003261 442 003270 444 003271 449 003273 453 003316 458 003372 461 003437 464 003453 471 003570 474 003605 475 003607 477 003610 482 003657 485 003667 487 003706 490 003716 496 004040 498 004041 502 004111 504 004120 507 004131 509 004132 512 004133 517 004154 520 004173 523 004202 527 004207 528 004215 529 004231 532 004233 534 004247 535 004252 537 004261 548 004640 552 004641 557 004646 560 004652 561 004666 562 004706 563 004716 564 004725 567 004733 568 004736 570 005004 572 005013 575 005022 576 005023 580 005070 581 005076 582 005077 583 005100 585 005104 588 005106 590 005153 593 005225 596 005237 597 005242 599 005243 600 005244 602 005251 603 005256 604 005260 609 005262 611 005264 623 005642 625 005653 627 005663 630 005672 633 005776 636 006000 638 006002 639 006006 642 006013 645 006030 646 006043 647 006047 648 006052 649 006054 652 006070 655 006142 658 006153 664 006226 665 006235 667 006242 672 006243 675 006247 680 006366 682 006400 684 006402 686 006404 690 006415 691 006416 696 006462 697 006470 698 006471 699 006472 701 006475 707 006506 709 006510 710 006512 711 006517 713 006520 716 006521 718 006547 721 006555 723 006561 724 006565 725 006570 728 006577 730 006615 732 006621 733 006627 734 006636 737 006643 740 006651 741 006653 750 007131 752 007133 754 007134 759 007151 760 007152 762 007170 764 007202 766 007214 768 007226 772 007240 774 007304 776 007313 779 007327 782 007344 785 007421 790 007422 794 007473 797 007511 800 007521 804 007574 806 007611 808 007612 812 007613 817 007623 819 007641 821 007674 822 007675 825 007714 826 007723 828 007724 833 007730 835 007750 837 010003 838 010004 841 010023 845 010033 849 010101 852 010122 862 010243 864 010244 867 010245 872 010300 875 010311 879 010357 889 010503 891 010504 895 010544 231 010545 239 010547 240 010550 242 010561 244 010572 247 010655 250 010661 252 010676 253 010710 256 010724 259 010737 261 011032 262 011050 266 011051 267 011064 270 011065 272 011077 273 011114 276 011115 277 011127 282 011130 285 011150 286 011153 288 011225 291 011226 293 011251 296 011326 297 011327 299 011330 305 011407 306 011422 308 011427 897 011430 902 011432 14 21 011465 14 40 011467 14 41 011475 14 42 011501 14 43 011514 14 44 011524 14 45 011527 14 47 011537 14 48 011546 14 49 011552 14 50 011560 ----------------------------------------------------------- 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