COMPILATION LISTING OF SEGMENT comp_util_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1010.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* quickie utility routines for compose */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_util_: 15 proc; /* no entry at main level */ 16 17 /* GLOBAL PARAMETERS */ 18 19 dcl ( 20 blkptr ptr, /* pointer to target block */ 21 blktype char (2) aligned,/* block use */ 22 blk_parms_ptr ptr, /* initial parms for block */ 23 empty bit (1), /* 1= dont get storage for block */ 24 esc_flag bit (1), /* 1 = process escapes */ 25 icol fixed bin, /* -1 if NOT a column block */ 26 line_ptr ptr, /* -> line to be added or replaced */ 27 meas_sw bit (1), /* 1 = measure the text */ 28 oflo bit (1), /* overflow switch */ 29 repltxtptr ptr, /* pointer to new text */ 30 symbol char (32), /* variable to be pushed */ 31 trflag bit (1) /* 1 = translate the text */ 32 ) parameter; 33 34 /* LOCAL STORAGE */ 35 36 dcl abrt_sw bit (1) static init ("0"b); 37 dcl art_cbar_line char (1020) var static init (" "); 38 dcl art_cbar_space fixed bin (31); /* for multiline art and cbars */ 39 dcl art_cbar_sw bit (1); /* for multiline art and cbars */ 40 dcl 1 blk_parms aligned like default_parms based (blk_parms_ptr); 41 dcl 1 block /* the target block */ 42 aligned like text based (blkptr); 43 dcl char_index fixed; /* scanning index for *c constructs */ 44 dcl colblkndx fixed; /* column data index for block */ 45 dcl coldepth fixed bin (31); /* for debug */ 46 dcl collft fixed bin (31); /* column space left */ 47 dcl cmode fixed bin; /* conversion mode for *c */ 48 dcl CREATE bit (1) static options (constant) init ("1"b); 49 dcl (i, k, l, m) fixed bin; 50 dcl len fixed bin; /* length of digit string for *c */ 51 dcl 1 line aligned like text_entry based (line_ptr); 52 dcl locolptr ptr; /* for local reference */ 53 dcl 1 locol aligned like col based (locolptr); 54 dcl loc_lead fixed bin (31); /* local linespace value */ 55 /* for text measuring */ 56 dcl 1 meas1 aligned like text_entry.cur; 57 dcl 1 meas2 aligned like text_entry.cur; 58 dcl newblkptr ptr; /* local block pointer */ 59 dcl 1 newblk aligned like text based (newblkptr); 60 dcl 1 nullpic /* empty picture block */ 61 static options (constant), 62 4 type /* type = page/col */ 63 char (4) init (""), 64 4 place /* place = top/cen/bot */ 65 char (4) init (""), 66 4 ptr ptr init (null), /* pointer to block */ 67 4 size /* size of picture */ 68 fixed bin (31) init (0); 69 dcl rchar char (10) var; /* replacement string */ 70 dcl ret_str char (8192) var; 71 /****dcl save_input aligned like text_entry; 72*/****dcl save_input_line cahr (1020) var;*/ 73 dcl tblcntxt bit (1); /* 1= table format in context mode */ 74 dcl tblfillspc bit (1); /* 1= table format fill space */ 75 dcl tbllin bit (1); /* 1= adding a table line */ 76 dcl tdblkndx fixed; /* tblkdata index for block */ 77 dcl tdlandx fixed; /* tblkdata index for line area */ 78 dcl tdtandx fixed; /* tblkdata index for text area */ 79 dcl wbuf char (1020) var; /* working buffer */ 80 81 dcl (addrel, bin, char, hbound, index, length, ltrim, max, min, mod, null, 82 rel, rtrim, size, substr, translate) 83 builtin; 84 dcl comp_abort condition; 85 86 getblk: /* GET A BLOCK */ 87 entry (icol, blkptr, blktype, blk_parms_ptr, empty); 88 89 if icol >= 0 /* if getting a block for a column */ 90 then 91 do; 92 locolptr = page.column_ptr (icol); 93 colblkndx, locol.hdr.blkct = locol.hdr.blkct + 1; 94 blkptr, locol.blkptr (colblkndx) = get_blk (); 95 end; 96 97 else blkptr = get_blk (); /* get a loose block */ 98 99 /* initialize the block */ 100 block.parms = blk_parms; /* formatting parms */ 101 block.parms.left.undent, block.parms.right.undent = 0; 102 if shared.pageblock & icol <= 0 103 then 104 do; 105 block.parms.left.indent = 0; 106 block.parms.measure = page.parms.measure; 107 block.parms.page = "1"b; 108 end; 109 110 block.hdr = text_header; /* block control stuff */ 111 block.hdr.art = blk_parms.art; 112 block.hdr.colno = icol; 113 block.hdr.tblblk = shared.table_mode; 114 block.blktype = blktype; 115 block.next_text = block.text_area.first -> text_area.strareaptr (1); 116 117 block.input = text_entry; /* initialize block input */ 118 block.input.ptr = addr (block.input_line); 119 block.input.linespace = block.parms.linespace; 120 block.input.quad = block.parms.quad; 121 block.input.info = ctl.info; /* copy ctl info */ 122 block.input.font, block.input.cur.font = 123 block.parms.fntstk.entry (block.parms.fntstk.index); 124 block.input_line = ""; /* clear the text input buffer */ 125 126 if shared.bug_mode 127 then call ioa_ ("getblk: (^[col=^d^;LOOSE^s^]^[ EMPTY^] ^a ndx=^d " 128 || "fnt=^a ^f^[ K^])", (icol >= 0), icol, empty, block.blktype, 129 block.blkndx, block.input.font.name, 130 show (block.input.font.size, 1000), block.parms.keep); 131 132 get_blk: 133 proc returns (ptr); 134 135 (nosubrg): /* search for a free block */ 136 do tdblkndx = 1 to tblkdata.block.count 137 while (^tblkdata.block.free (tdblkndx)); 138 end; 139 140 if tdblkndx > tblkdata.block.count /* dont have any */ 141 then 142 do; 143 if tblkdata.block.count = hbound (tblkdata.block.ptr, 1) 144 then 145 do; 146 call comp_report_ (4, 0, 147 "Implementation restriction, more than " 148 || ltrim (char (hbound (tblkdata.block.ptr, 1))) 149 || "blocks needed.", addr (ctl.info), ctl_line); 150 signal comp_abort; 151 goto return_; 152 end; /**/ 153 /* allocate new block */ 154 tdblkndx, tblkdata.block.count = tblkdata.block.count + 1; 155 newblkptr, tblkdata.block.ptr (tdblkndx) = 156 allocate (const.local_area_ptr, size (text)); 157 158 unspec (newblk) = "0"b; /* wipe it */ 159 newblk.blktype = " "; 160 newblk.blkndx = tdblkndx; 161 newblk.line_area.first, newblk.line_area.cur = null; 162 newblk.text_area.first, newblk.text_area.cur = null; 163 end; 164 165 else newblkptr = tblkdata.block.ptr (tdblkndx); 166 167 if ^empty /* if storage is wanted */ 168 then 169 do; /**/ 170 /* first line area */ 171 line_area_ptr, newblk.line_area.first, newblk.line_area.cur = 172 get_line_area (newblk.line_area.cur); 173 /* first text area */ 174 newblk.text_area.first, newblk.text_area.cur = 175 get_text_area (newblk.text_area.cur); 176 end; /**/ 177 /* set up the new block */ 178 /* set area pointers */ 179 newblk.line_area.cur = newblk.line_area.first; 180 newblk.text_area.cur = newblk.text_area.first; 181 /* no longer free */ 182 tblkdata.block.free (tdblkndx) = "0"b; 183 184 return (newblkptr); 185 186 end get_blk; 187 188 get_line_area: 189 proc (laptr) returns (ptr); 190 191 dcl laptr ptr; /* current line_area */ 192 dcl 1 larea like line_area based (laptr); 193 194 (nosubrg): /* search for a free area */ 195 do tdlandx = 1 to tblkdata.line_area.count 196 while (^tblkdata.line_area.free (tdlandx)); 197 end; /**/ 198 /* dont have any */ 199 if tdlandx > tblkdata.line_area.count 200 then 201 do; 202 if tblkdata.line_area.count = hbound (tblkdata.line_area.ptr, 1) 203 then 204 do; 205 call comp_report_ (4, 0, 206 "Implementation restriction, more than " 207 || ltrim (char (hbound (tblkdata.line_area.ptr, 1))) 208 || "line areas needed.", addr (ctl.info), ctl_line); 209 signal comp_abort; 210 goto return_; 211 end; /**/ 212 /* allocate new area */ 213 tdlandx, tblkdata.line_area.count = tblkdata.line_area.count + 1; 214 line_area_ptr, tblkdata.line_area.ptr (tdlandx) = 215 allocate (const.local_area_ptr, size (line_area)); 216 /* set it up */ 217 line_area.count, line_area.ndx = 0; 218 line_area.pndx = tdlandx; 219 line_area.next, line_area.prev, line_area.linptr = null; 220 end; 221 222 else line_area_ptr = tblkdata.line_area.ptr (tdlandx); 223 224 if laptr ^= null 225 then larea.next = line_area_ptr; /* set forward thread */ 226 line_area.prev = laptr; /* set backward thread */ 227 /* no longer free */ 228 tblkdata.line_area.free (tdlandx) = "0"b; 229 230 return (tblkdata.line_area.ptr (tdlandx)); 231 end get_line_area; 232 233 get_text_area: 234 proc (taptr) returns (ptr); 235 236 dcl taptr ptr; /* current text_area */ 237 dcl 1 tarea like text_area based (taptr); 238 239 (nosubrg): /* search for a free area */ 240 do tdtandx = 1 to tblkdata.text_area.count 241 while (^tblkdata.text_area.free (tdtandx)); 242 end; /**/ 243 /* dont have any */ 244 if tdtandx > tblkdata.text_area.count 245 then 246 do; 247 if tblkdata.text_area.count = hbound (tblkdata.text_area.ptr, 1) 248 then 249 do; 250 call comp_report_ (4, 0, 251 "Implementation restriction, more than " 252 || ltrim (char (hbound (tblkdata.text_area.ptr, 1))) 253 || "text areas needed.", addr (ctl.info), ctl_line); 254 signal comp_abort; 255 goto return_; 256 end; /**/ 257 /* allocate new area */ 258 tdtandx, tblkdata.text_area.count = tblkdata.text_area.count + 1; 259 text_area_ptr, tblkdata.text_area.ptr (tdtandx) = 260 allocate (const.local_area_ptr, size (text_area)); 261 262 text_area.pndx = tdtandx; /* set it up */ 263 text_area.next, text_area.strareaptr = null; 264 text_area.ndx = 0; 265 text_area.count = 1; 266 text_area.strareaptr (1) = 267 allocate (const.local_area_ptr, size (string_area)); 268 tblkdata.text_area.string_area_count = 269 tblkdata.text_area.string_area_count + 1; 270 end; 271 272 else text_area_ptr = tblkdata.text_area.ptr (tdtandx); 273 274 if taptr ^= null 275 then tarea.next = text_area_ptr; /* set forward thread */ 276 text_area.ndx = 1; /* make first strarea active */ 277 /* no longer free */ 278 tblkdata.text_area.free (tdtandx) = "0"b; 279 280 return (tblkdata.text_area.ptr (tdtandx)); 281 282 end get_text_area; 283 284 return; /* end of getblk */ 285 286 /* return a text block to the free list */ 287 288 relblk: 289 entry (icol, blkptr); /**/ 290 if blkptr = null /* has to be one to release! */ 291 then return; /**/ 292 /* if returning a column block */ 293 if icol >= 0 /* count column blocks */ 294 then page.column_ptr (icol) -> col.hdr.blkct = 295 page.column_ptr (icol) -> col.hdr.blkct - 1; 296 297 if shared.bug_mode 298 then 299 do; 300 if icol >= 0 301 then j = page.column_ptr (icol) -> col.hdr.blkct; 302 303 call ioa_ ("util$relblk: (^d ^d ^a ^[col^d ^d^;LOOSE^2s^])", 304 block.blkndx, tblkdata.block.count, block.blktype, (icol >= 0), 305 icol, j); 306 end; /**/ 307 /* release line areas */ 308 do line_area_ptr = block.line_area.first repeat (line_area.next) 309 while (line_area_ptr ^= null); 310 line_area.ndx = 0; /* no active lines */ 311 line_area.prev, line_area.next = null; 312 tblkdata.line_area.free (line_area.pndx) = "1"b; 313 end; 314 block.line_area.first, block.line_area.cur = null; 315 /* release text areas */ 316 do text_area_ptr = block.text_area.first repeat (text_area.next) 317 while (text_area_ptr ^= null); 318 text_area.ndx = 0; /* no active areas */ 319 text_area.next = null; 320 tblkdata.text_area.free (text_area.pndx) = "1"b; 321 end; 322 block.text_area.first, block.text_area.cur = null; 323 /* block is now free */ 324 tblkdata.block.free (block.blkndx) = "1"b; 325 326 blkptr = null (); /* clear given pointer */ 327 328 return; /* end of relblk */ 329 330 add_text: /* ADD A LINE TO A BLOCK */ 331 entry (blkptr, meas_sw, trflag, esc_flag, oflo, line_ptr); 332 /* adding a table line? */ 333 if shared.table_mode & block.hdr.tblblk 334 then 335 do; 336 tbllin = "1"b; 337 tblfmtndx = tbldata.ndx; 338 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 339 tblcntxt = tblfmt.context; 340 tblcolndx = tblfmt.ccol; 341 tblcolptr = tblfmt.colptr (tblcolndx); 342 end; 343 344 else 345 do; 346 tbllin = "0"b; 347 tblfmtndx, tblcolndx = 0; 348 end; 349 350 if shared.bug_mode & dt_sw 351 then 352 do; 353 call ioa_$nnl ("add_text: (^[col=^d^;LOOSE^s^] ^a=^d e^d u^f(^f) ld=^f" 354 || "^[ ftn=^d/^f^;^2s^]", (block.hdr.colno >= 0), block.hdr.colno, 355 block.blktype, block.blkndx, block.hdr.count, 356 show (block.hdr.used, 12000), show (block.hdr.trl_ws, 12000), 357 show (line.linespace, 12000), (line.ftn.ct > 0), line.ftn.ct, 358 show (line.ftn.used, 12000)); 359 360 if shared.table_mode & block.hdr.tblblk 361 then call ioa_$nnl (" tbl=^d/^d d^f/^f", tblcolndx, tblfmtndx, 362 show (tblcol.depth, 12000), show (tblfmt.maxdepth, 12000)); 363 364 call ioa_ (") ^[I^]^[O^]^[L^]^[C^]^[R^]^[J^] " 365 || "^[M^]^[E^]^[A^]^[H^]^[S^]", (line.sws.quad & quadi), 366 (line.sws.quad & quado), 367 (line.sws.quad & quadl | line.sws.quad = "0"b), 368 (line.sws.quad & quadc), (line.sws.quad & quadr), 369 (line.sws.quad & just), meas_sw, esc_flag, line.sws.art, 370 line.hanging, (unspec (line.sws.spcl) ^= "0"b)); 371 end; 372 373 loc_lead = line.linespace; /* local value */ 374 if ^line.sws.table 375 then line.net = line.rmarg - line.lmarg; 376 art_cbar_sw = 377 (line.cbar.add | line.sws.art | block.parms.add | block.hdr.art); 378 379 if art_cbar_sw /* make individual entries */ 380 then 381 do; 382 call put_line (line_ptr, line.ptr, null, "0"b, min (loc_lead, 12000)); 383 line.cur.gaps, line.cur.width = 0; 384 line.ftn = text_entry.ftn; 385 art_cbar_space = line.linespace - min (loc_lead, 12000); 386 387 if art_cbar_space > 12000 /* if multiline */ 388 then 389 do while (art_cbar_space > 12000); 390 call put_line (line_ptr, addr (art_cbar_line), null, "0"b, 12000); 391 /* next line */ 392 loc_lead, art_cbar_space = art_cbar_space - 12000; 393 /* count space */ 394 end; 395 396 if art_cbar_space > 0 /* last line */ 397 then call put_line (line_ptr, addr (art_cbar_line), null, oflo, 398 art_cbar_space); 399 end; /**/ 400 /* make one entry */ 401 else call put_line (line_ptr, line.ptr, null, oflo, loc_lead); 402 403 tblfillspc = "0"b; /* force flag off */ 404 405 if page.hdr.col_index >= 0 & block.blktype ^= "fn" 406 then page.hdr.depth = max (page.hdr.depth, col.hdr.depth); 407 408 return_: 409 return; /* end of add_text */ 410 411 replace_text: 412 entry (blkptr, meas_sw, line_ptr, repltxtptr); 413 414 if shared.table_mode & block.hdr.tblblk 415 then 416 do; 417 tblfmtndx = tbldata.ndx; 418 tblfmtptr = tbldata.fmt (tblfmtndx).ptr; 419 tblcolndx = tblfmt.ccol; 420 tblcolptr = tblfmt.colptr (tblcolndx); 421 end; 422 else tblfmtndx, tblcolndx = 0; 423 424 if shared.bug_mode & dt_sw 425 then call ioa_ ("replace_text: (col=^d ^a=^d/^d^[ tbl=^d/^d^;^2s^]" 426 || " c^d mrg^f/^f/^f)" 427 || " ^[I^]^[O^]^[L^]^[C^]^[R^]^[J^] ^[|^]^[*^]^[A^]^[K^]^[T^]", 428 block.hdr.colno, block.blktype, block.blkndx, line.info.lineno, 429 (block.hdr.tblblk), tblcolndx, tblfmtndx, 430 length (repltxtptr -> txtstr), show (line.lmarg, 12000), 431 show (line.rmarg, 12000), show (line.net, 12000), 432 (line.sws.quad & quadi), (line.sws.quad & quado), 433 (line.sws.quad & quadl), (line.sws.quad & quadc), 434 (line.sws.quad & quadr), (line.sws.quad & just), 435 (line.cbar.mod | line.cbar.add), line.cbar.del, line.sws.art, 436 line.sws.keep, line.sws.title); 437 438 call put_line (line_ptr, repltxtptr, line_ptr, "0"b, -1); 439 440 return; /* end of replace_text */ 441 442 pictures: /* place pictures that fit */ 443 entry (blkptr); /**/ 444 /* find space remaining */ 445 collft = col.hdr.net - col.hdr.used - col.hdr.ftn.usd; 446 447 if blkptr ^= null 448 then collft = collft - block.hdr.used - block.hdr.ftn.usd; 449 450 if shared.bug_mode 451 then call ioa_ ("pictures: (ct=^d spc=^f lft=^f^[ galley^]^[ active^])", 452 shared.picture.count, show (shared.picture.space, 12000), 453 show (collft, 12000), option.galley_opt, (blkptr ^= null)); 454 455 if blkptr = null /* if theres no active block, */ 456 then /* dump all the pictures */ 457 do; 458 do i = 1 to shared.picture.count; 459 col.hdr.blkct = col.hdr.blkct + 1; 460 col.blkptr (col.hdr.blkct) = shared.picture.ptr (i); 461 col.hdr.used = 462 col.hdr.used + shared.picture.ptr (i) -> text.hdr.used; 463 page.hdr.used = 464 page.hdr.used + shared.picture.ptr (i) -> text.hdr.used; 465 end; 466 467 shared.picture.blk = nullpic; /* all gone */ 468 shared.picture.space, shared.picture.count = 0; 469 end; /**/ 470 /* put the ones that fit */ 471 else if shared.picture.blk (1).size <= collft 472 then 473 do; 474 /****save_input = text.input; 475*/****save_input_line = text.input_line;*/ 476 477 do i = 1 to shared.picture.count 478 while (shared.picture.blk (i).size <= collft | option.galley_opt); 479 collft = collft - shared.picture.blk (i).size; 480 481 do line_area_ptr = 482 shared.picture.blk (i).ptr -> block.line_area.first 483 repeat (line_area.next) while (line_area_ptr ^= null); 484 do j = 1 to line_area.ndx; 485 /****txtlinptr = line_area.linptr (j); 486*/****text.input = txtlin; 487*/****text.input_line = txtlin.ptr -> txtstr;*/ 488 489 call comp_util_$add_text (blkptr, "0"b, "0"b, "0"b, "0"b, 490 line_area.linptr (j)); 491 end; 492 end; 493 494 line_area_ptr = text.line_area.cur; 495 txtlinptr = line_area.linptr (line_area.ndx); 496 txtlin.end_keep = "1"b; 497 498 if shared.bug_mode 499 then call ioa_ ("^-(pic=^d ^f)", i, 500 show (shared.picture.ptr (i) -> text.hdr.used, 12000)); 501 502 shared.picture.space = 503 shared.picture.space - shared.picture.blk (i).size; 504 call comp_util_$relblk (-1, shared.picture.blk (i).ptr); 505 shared.picture.blk (i) = nullpic; 506 end; 507 508 /****text.input = save_input; 509*/**** text.input_line = save_input_line;*/ 510 /* clean up */ 511 do i = 1 to shared.picture.count 512 while (shared.picture.blk (i).ptr = null); 513 end; 514 515 if i <= shared.picture.count 516 then 517 do j = i to shared.picture.count; 518 shared.picture.blk (j - i + 1) = shared.picture.blk (j); 519 shared.picture.blk (j) = nullpic; 520 end; 521 522 shared.picture.count = shared.picture.count - i + 1; 523 end; 524 525 if shared.bug_mode 526 then call ioa_ ("^5x(pictures: ct=^d spc=^f ^f)", shared.picture.count, 527 show (shared.picture.space, 12000), 528 show (sum (shared.picture.blk.size), 12000)); 529 530 return; /* end of pictures */ 531 532 set_net_page: /* SET NET PAGE LENGTH */ 533 entry (set_current_page); 534 535 /* PARAMETER */ 536 537 dcl set_current_page /* 1 = set current page if unheaded */ 538 bit (1); 539 540 /* LOCAL STORAGE */ 541 542 dcl even_foot fixed bin (31); /* even page footer size */ 543 dcl even_head fixed bin (31); /* even page header size */ 544 dcl even_headspace fixed bin (31); /* even page head space */ 545 dcl max_col fixed bin (31); /* length of longest column */ 546 dcl odd_foot fixed bin (31); /* odd page footer size */ 547 dcl odd_head fixed bin (31); /* odd page header size */ 548 dcl odd_headspace fixed bin (31); /* odd page head space */ 549 /* clear local storage */ 550 even_foot, even_head, odd_foot, odd_head = 0; 551 even_headspace, odd_headspace = page_parms.margin.top; 552 /* preset both pages */ 553 page_parms.net.even, page_parms.net.odd = 554 page_parms.length - page_parms.margin.top - page_parms.margin.header 555 - page_parms.margin.footer - page_parms.margin.bottom; 556 557 hfcblk_ptr = shared.epftrptr; /* even footer? */ 558 if hfcblk_ptr ^= null 559 then 560 do; 561 even_foot = hfcblk.hdr.used; 562 page_parms.net.even = page_parms.net.even - even_foot; 563 end; 564 565 hfcblk_ptr = shared.ephdrptr; /* even header? */ 566 if hfcblk_ptr ^= null 567 then 568 do; /* if it wont fit */ 569 if page_parms.net.even - hfcblk.hdr.used < 0 & ^option.galley_opt 570 then 571 do; 572 call comp_report_ (2, 0, 573 "Even page header block exceeds " 574 || "available page space. It will be ignored.", 575 addr (ctl.info), ctl_line); 576 /* erase the whole block */ 577 hfcblk.hdr = text_header; 578 end; 579 580 even_head = hfcblk.hdr.used; 581 page_parms.net.even = page_parms.net.even - even_head; 582 even_headspace = 0; /* reset head space */ 583 end; 584 585 hfcblk_ptr = shared.opftrptr; /* odd footer? */ 586 if hfcblk_ptr ^= null 587 then 588 do; 589 odd_foot = hfcblk.hdr.used; 590 page_parms.net.odd = page_parms.net.odd - odd_foot; 591 end; 592 593 hfcblk_ptr = shared.ophdrptr; /* odd header? */ 594 if hfcblk_ptr ^= null 595 then 596 do; /* if it wont fit */ 597 if page_parms.net.odd - hfcblk.hdr.used < 0 & ^option.galley_opt 598 then 599 do; 600 call comp_report_ (2, 0, 601 "Odd page header block exceeds " 602 || "available page space. It will be ignored.", 603 addr (ctl.info), ctl_line); 604 /* erase the whole block */ 605 hfcblk.hdr = text_header; 606 end; 607 608 odd_head = hfcblk.hdr.used; 609 page_parms.net.odd = page_parms.net.odd - odd_head; 610 odd_headspace = 0; /* reset head space */ 611 end; 612 613 odd_headspace = odd_headspace + page_parms.margin.header; 614 even_headspace = even_headspace + page_parms.margin.header; 615 616 if page.hdr.frontpage 617 then colhdr.net, page_header.net = page_parms.net.odd; 618 else colhdr.net, page_header.net = page_parms.net.even; 619 620 max_col = 0; /* if multi-column */ 621 if page.hdr.col_count > 1 /* find longest column */ 622 then 623 do i = 1 to page.hdr.col_count; 624 locolptr = page.column_ptr (i); 625 max_col = max (max_col, col.hdr.used + col.hdr.ftn.usd); 626 end; /**/ 627 /* current page & all columns */ 628 if ^set_current_page | (set_current_page & ^page.hdr.headed) 629 then 630 do; 631 page.parms.net = page_parms.net; 632 if page.hdr.frontpage 633 then page.hdr.net = page.parms.net.odd; 634 else page.hdr.net = page.parms.net.even; 635 /* set column 0 */ 636 col0.hdr.net = max (page.hdr.net - max_col, 0); 637 638 if page.parms.cols.count > 0 /* if not 1-up set all columns */ 639 then 640 do i = 1 to page.parms.cols.count; 641 locolptr = page.column_ptr (i); 642 locol.hdr.net = 643 page.hdr.net - col0.hdr.used - locol.ftrusd 644 - col0.hdr.ftn.usd; 645 end; 646 end; 647 648 if shared.bug_mode 649 then call ioa_ ("util$set_net_page: (^[^^^]current ^[^^^]headed" 650 || " odd=^f ^f evn=^f ^f act=^f ^f col=^d ^f(^f) ^f)", 651 ^set_current_page, ^page.hdr.headed, 652 show (page_parms.net.odd, 12000), show (odd_headspace, 12000), 653 show (page_parms.net.even, 12000), show (even_headspace, 12000), 654 show (page.hdr.net, 12000), show (page.hdr.hdspc, 12000), 655 page.hdr.col_index, show (col.hdr.net, 12000), 656 show (col.depth_adj, 12000), show (col.hdr.pspc, 12000)); 657 658 return; /* end of set_net_page */ 659 660 num_display: 661 entry (val_ptr, displ_mode) returns (char (32) var); 662 663 /* PARAMETERS */ 664 665 dcl val_ptr ptr; /* value to be converted */ 666 dcl displ_mode fixed bin; /* display mode index */ 667 668 /* LOCAL STORAGE */ 669 670 dcl alpha_repl (2) char (26) unal static options (constant) 671 init ("abcdefghijklmnopqrstuvwxyz", 672 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 673 dcl display_str char (91); /* string to return */ 674 dcl hexb bit (4); /* for hex fractions */ 675 dcl hexc char (16); /* for hex fractions */ 676 dcl hexd fixed bin (4) unsigned; 677 /* for hex fractions */ 678 dcl j fixed bin; /* working index */ 679 dcl ldspl fixed bin; /* length of display string */ 680 dcl octb bit (3); /* for oct fractions */ 681 dcl octc char (16); /* for oct fractions */ 682 dcl octd fixed bin (3) unsigned; 683 /* for oct fractions */ 684 dcl (r, s) fixed bin (31); /* working value */ 685 dcl roman_repl_1 (2, 4) char (1) static options (constant) 686 init ("i", "x", "c", "m", "I", "X", "C", "M"); 687 dcl roman_repl_2 (2, 3) char (1) static options (constant) 688 init ("v", "l", "d", "V", "L", "D"); 689 dcl val fixed bin (31) based (val_ptr); 690 dcl val_pic pic "---------9.999v"; 691 /* for arabic displays */ 692 dcl (wa, wb) (8) fixed bin (35); 693 694 dcl ioa_$rsnnl entry options (variable); 695 696 display_str = ""; /* clear return value */ 697 698 if displ_mode = 0 /* arabic */ 699 then 700 do; 701 val_pic = val; /* copy value */ 702 display_str = rtrim (rtrim (ltrim (val_pic), "0"), "."); 703 ldspl = index (display_str, " ") - 1; 704 end; 705 706 else if displ_mode = 1 /* binary */ 707 then 708 do; 709 r = divide (val, 1000, 31, 0); /* integer part */ 710 display_str = ltrim (char (unspec (r)), "0"); 711 if display_str = "" 712 then display_str = "0"; 713 ldspl = index (display_str, " ") - 1; 714 715 r = mod (val, 1000); /* fraction part */ 716 if r > 0 717 then 718 do; 719 substr (display_str, ldspl + 1) = "."; 720 ldspl = ldspl + 1; 721 do j = 1 to 11 while (r > 0); 722 substr (display_str, ldspl + j) = 723 ltrim (char (divide (2 * r, 1000, 1, 0))); 724 r = mod (2 * r, 1000); 725 end; 726 display_str = rtrim (rtrim (display_str), "0"); 727 ldspl = index (display_str, " ") - 1; 728 end; 729 end; 730 731 else if displ_mode = 2 /* hexadecimal */ 732 then 733 do; 734 r = divide (val, 1000, 31, 0); /* integer part */ 735 call ioa_$rsnnl ("^.4b", display_str, 0, unspec (r)); 736 display_str = ltrim (display_str, "0"); 737 if display_str = "" 738 then display_str = "0"; 739 ldspl = index (display_str, " ") - 1; 740 741 r = mod (val, 1000); /* fraction part */ 742 if r > 0 743 then 744 do; 745 substr (display_str, ldspl + 1) = "."; 746 ldspl = ldspl + 1; 747 do j = 1 to 3 while (r > 0); 748 hexd = divide (16 * r, 1000, 4, 0); 749 hexb = bit (hexd); 750 call ioa_$rsnnl ("^.4b", hexc, 0, hexb); 751 substr (display_str, ldspl + j) = rtrim (hexc); 752 r = mod (16 * r, 1000); 753 end; 754 display_str = rtrim (rtrim (display_str), "0"); 755 ldspl = index (display_str, " ") - 1; 756 end; 757 end; 758 759 else if displ_mode = 3 /* octal */ 760 then 761 do; 762 r = divide (val, 1000, 31, 0); /* integer part */ 763 call ioa_$rsnnl ("^.3b", display_str, 0, unspec (r)); 764 display_str = ltrim (display_str, "0"); 765 if display_str = "" 766 then display_str = "0"; 767 ldspl = index (display_str, " ") - 1; 768 769 r = mod (val, 1000); /* fraction part */ 770 if r > 0 771 then 772 do; 773 substr (display_str, ldspl + 1) = "."; 774 ldspl = ldspl + 1; 775 do j = 1 to 4 while (r > 0); 776 octd = divide (8 * r, 1000, 4, 0); 777 octb = bit (octd); 778 call ioa_$rsnnl ("^.3b", octc, 0, octb); 779 substr (display_str, ldspl + j) = rtrim (octc); 780 r = mod (8 * r, 1000); 781 end; 782 display_str = rtrim (rtrim (display_str), "0"); 783 ldspl = index (display_str, " ") - 1; 784 end; 785 end; 786 787 else if displ_mode <= 5 /* alpha */ 788 then 789 do; 790 if val = 0 /* map 0 to a blank */ 791 then 792 do; 793 display_str = " "; 794 ldspl = 1; 795 end; 796 797 else if val > 26 ** 8 /* check top of conversion range */ 798 then 799 do; 800 display_str = copy ("*", 8); 801 ldspl = 8; 802 end; 803 804 else 805 do; 806 r = divide (val, 1000, 31, 0); 807 /* integer part */ 808 wa (*) = 0; /* clear local storage */ 809 do j = 8 to 1 by -1 while (r > 0); 810 if mod (r, 26) = 0 811 then wa (j) = 26; 812 else wa (j) = mod (r, 26); 813 if mod (r, 26) = 0 814 then r = divide (r, 26, 35) - 1; 815 else r = divide (r, 26, 35); 816 end; 817 818 ldspl = 0; 819 do j = 1 to 8; 820 if wa (j) > 0 821 then 822 do; 823 ldspl = ldspl + 1; 824 substr (display_str, ldspl, 1) = 825 substr (alpha_repl (displ_mode - 3), wa (j), 1); 826 end; 827 end; 828 end; 829 end; 830 831 else if displ_mode <= 7 /* roman */ 832 then 833 do; 834 if val = 0 /* value undefined in roman, show as blank */ 835 then 836 do; 837 display_str = " "; 838 ldspl = 1; 839 end; 840 841 else 842 do; 843 r = divide (val, 1000, 31, 0); 844 /* discard fraction part */ 845 wa (*), wb (*) = 0; /* clear local storage */ 846 /* "parse" the value */ 847 do j = 1 to 3; /* roman has 3 "decades"; 848* x - 10, c - 100, m - 1000 849* each having a "quintade"; 850* v - 5, l - 50, d - 500 851* we will not bother with the higher 852* "overbarred" orders since this mode 853* is intended for page numbers */ 854 s = mod (r, 10); /* value within the decade */ 855 wa (j) = mod (s, 5); /* residue within the quintade */ 856 wb (j) = divide (s, 5, 35); 857 /* which quintade? */ 858 r = divide (r, 10, 35); /* next decade */ 859 end; 860 861 ldspl = 0; /* clear display char counter */ 862 863 if r > 0 /* use Ms for high order value */ 864 then 865 do; 866 display_str = copy (roman_repl_1 (displ_mode - 5, 4), r); 867 ldspl = r; 868 end; 869 870 do j = 3 to 1 by -1; /* go thru decades from high to low */ 871 if wa (j) > 0 /* anything for this one? */ 872 then 873 do; 874 875 if wa (j) = 4 /* if residue is 4 */ 876 then 877 do; /* use one of these */ 878 substr (display_str, ldspl + 1, 1) = 879 roman_repl_1 (displ_mode - 5, j); 880 if wb (j) = 1 /* and one of the next higher decade */ 881 then substr (display_str, ldspl + 2, 1) = 882 roman_repl_1 (displ_mode - 5, j + 1); 883 else substr (display_str, ldspl + 2, 1) = 884 /* or quintade */ 885 roman_repl_2 (displ_mode - 5, j); 886 ldspl = ldspl + 2; 887 end; 888 889 else 890 do; 891 if wb (j) = 1 /* if in the second quintade */ 892 then 893 do; /* use one of them */ 894 ldspl = ldspl + 1; 895 substr (display_str, ldspl, 1) = 896 roman_repl_2 (displ_mode - 5, j); 897 end; /* and the residue number of this decade */ 898 substr (display_str, ldspl + 1, wa (j)) = 899 copy (roman_repl_1 (displ_mode - 5, j), wa (j)); 900 ldspl = ldspl + wa (j); 901 end; 902 end; 903 else if wb (j) > 0 904 then 905 do; 906 ldspl = ldspl + 1; 907 substr (display_str, ldspl, 1) = 908 roman_repl_2 (displ_mode - 5, j); 909 end; 910 end; 911 end; 912 end; 913 914 return (substr (display_str, 1, ldspl)); 915 /* end of num_display */ 916 917 escape: 918 entry (buffer, info_ptr); 919 920 /* PARAMETERS */ 921 922 dcl buffer char (*) var; 923 dcl info_ptr ptr; 924 925 rchar = ""; /* clear local storage */ 926 wbuf = buffer; /* copy buffer */ 927 928 if shared.bug_mode & dt_sw 929 then call ioa_ ("escape: ^a", comp_util_$display (buffer, 0, "0"b)); 930 931 l, k = 1; 932 do while (l > 0 & k < length (wbuf)); 933 /* scan for escapes */ 934 l = search (substr (wbuf, k), "*" || DC1); 935 936 if l > 0 /* find anything? */ 937 then 938 do; /* step over DC1 control strings */ 939 if substr (wbuf, k + l - 1, 1) = DC1 940 then k = k + l + 2 + bin (unspec (substr (wbuf, k + l + 1, 1))); 941 942 else 943 do; /* must be a * */ 944 if k + l > 2 /* an escaped *? */ 945 then if index (substr (wbuf, k + l - 2), "¿") = 1 946 then 947 do; 948 k = k + l + 1; 949 goto srch; 950 end; 951 952 k, m = k + l; 953 if k <= length (wbuf) /* if not a trailing * */ 954 then 955 do; /* replace * with \277 */ 956 substr (wbuf, k - 1, 1) = "¿"; 957 rchar = substr (wbuf, k, 1); 958 959 if rchar = "'" 960 then rchar = rquote; 961 962 else if rchar = """" 963 then rchar = rquote; 964 965 else if rchar = "`" 966 then rchar = lquote; 967 968 else if rchar = "M" 969 then rchar = EM; 970 971 else if rchar = "N" 972 then rchar = EN; 973 974 else if rchar = "-" 975 then 976 do; 977 if index (substr (wbuf, k), "-*-") = 1 978 then 979 do; 980 rchar = EMdash; 981 substr (wbuf, k, 2) = "¿¿"; 982 k, m = k + 2; 983 end; 984 else rchar = ENd; 985 end; 986 987 else if rchar = "b" 988 then rchar = BSP; 989 990 else if rchar = "n" 991 then rchar = NL; 992 993 else if rchar = "s" 994 then rchar = " "; 995 996 else if rchar = "t" 997 then rchar = HT; 998 999 else if rchar = "f" 1000 then rchar = FF; 1001 1002 else if rchar = "c" | rchar = "C" 1003 then 1004 do; /* numeric character value */ 1005 rchar = "¿"; /* octal 277 to replace the c */ 1006 m = m + 1; 1007 if substr (wbuf, m, 1) = "#" 1008 /* octal value */ 1009 then 1010 do; 1011 cmode = 8; 1012 rchar = rchar || "¿"; 1013 /* octal 277 to replace the # */ 1014 m = m + 1; 1015 end; 1016 else cmode = 10; /* decimal value */ 1017 1018 char_index = 0; /* clear value accumulator */ 1019 len = min (verify (substr (wbuf, m), "0123456789") - 1, 1020 3); 1021 if len = -1 1022 then len = length (wbuf) - m + 1; 1023 if len = 0 1024 then call comp_report_ (2, 0, "Numeric value expected.", 1025 info_ptr, buffer); 1026 else 1027 do; 1028 do m = m to m + len - 1; 1029 char_index = 1030 cmode * char_index 1031 + bin (substr (wbuf, m, 1)); 1032 end; 1033 rchar = rchar || copy ("¿", len - 1) 1034 || substr (collate9 (), char_index + 1, 1); 1035 m = m - 1; 1036 end; 1037 end; /* everything else just passes through */ 1038 if rchar ^= "" 1039 then 1040 do; 1041 if m < length (wbuf) 1042 then wbuf = substr (wbuf, 1, k - 1) || rchar 1043 || substr (wbuf, m + 1); 1044 else wbuf = substr (wbuf, 1, k - 1) || rchar; 1045 rchar = ""; 1046 len = 1; 1047 end; 1048 k = k + 1; 1049 end; 1050 end; 1051 srch: 1052 end; 1053 end; 1054 1055 buffer = wbuf; /* copy result back to buffer */ 1056 1057 if shared.bug_mode & dt_sw 1058 then 1059 do; 1060 call ioa_ ("^5x(escape) ^a", comp_util_$display (buffer, 0, "0"b)); 1061 end; 1062 1063 return; /* end of escape */ 1064 1065 1066 /* SEARCH SYMBOL TREE */ 1067 search_tree: 1068 entry (symbol, create); 1069 1070 /* PARAMETERS */ 1071 1072 dcl create bit (1); /* 1= create the symbol */ 1073 1074 if shared.bug_mode & dt_sw 1075 then call ioa_ ("search_tree: (^a^[ CREATE^])", symbol, create); 1076 1077 tree.entryndx = 0; 1078 do tree.areandx = 1 to tree.count /* run thru allocated name areas */ 1079 while (tree.entryndx = 0); 1080 tree_names_ptr = tree.name_ptr (tree.areandx); 1081 tree.entryndx = index (string (tree_names), symbol); 1082 end; 1083 1084 if tree.entryndx = 0 & create /* create it if not there? */ 1085 then 1086 do; 1087 tree.areandx = tree.count; /* use the last area */ 1088 /* full up? - then get a new area */ 1089 if tree.entry_ct (tree.areandx) = MAX_TREE_AREA_CT 1090 then 1091 do; /* all out of areas? */ 1092 if tree.count = MAX_TREE_AREAS 1093 then 1094 do; 1095 call comp_report_$ctlstr (4, 0, addr (ctl.info), ctl_line, 1096 "Too many user variables. Program limit is ^d.", 1097 MAX_TREE_AREAS * MAX_TREE_AREA_CT); 1098 return; 1099 end; /**/ 1100 /* create storage for new area */ 1101 tree.areandx, tree.count = tree.count + 1; 1102 tree.flag_ptr (tree.areandx) = 1103 allocate (const.local_area_ptr, size (tree_flags)); 1104 tree_names_ptr, tree.name_ptr (tree.areandx) = 1105 allocate (const.local_area_ptr, size (tree_names)); 1106 tree_names = ""; 1107 tree.num_ptr (tree.areandx) = 1108 allocate (const.local_area_ptr, size (tree_nums)); 1109 tree.incr_ptr (tree.areandx) = 1110 allocate (const.local_area_ptr, size (tree_incrs)); 1111 tree.var_ptr (tree.areandx) = 1112 allocate (const.local_area_ptr, size (tree_var)); 1113 tree.entry_ct (tree.areandx) = 0; 1114 end; /**/ 1115 /* record new variable */ 1116 tree.entryndx, tree.entry_ct (tree.areandx) = 1117 tree.entry_ct (tree.areandx) + 1; 1118 tree_names_ptr = tree.name_ptr (tree.areandx); 1119 tree_names (tree.entryndx) = symbol; 1120 tree_var_ptr = tree.var_ptr (tree.areandx); 1121 tree_var.flags (tree.entryndx) = "000000000"b; 1122 tree_var.mode (tree.entryndx) = 0; 1123 /* set initial values */ 1124 tree_var.flag_loc (tree.entryndx) = addr (tree_flags (tree.entryndx)); 1125 tree_var.flag_loc (tree.entryndx) -> flag_value = "0"b; 1126 tree_var.num_loc (tree.entryndx) = addr (tree_nums (tree.entryndx)); 1127 tree_var.num_loc (tree.entryndx) -> num_value = 0; 1128 tree_var.incr_loc (tree.entryndx) = addr (tree_incrs (tree.entryndx)); 1129 tree_var.incr_loc (tree.entryndx) -> num_value = 1000; 1130 tree_var.str_loc (tree.entryndx) = 1131 allocate (const.local_area_ptr, size (string_area)); 1132 tree_var.str_loc (tree.entryndx) -> txtstr = ""; 1133 end; 1134 1135 else 1136 do; 1137 tree.areandx = tree.areandx - 1;/* loop counts one to many */ 1138 /* true symbol index */ 1139 tree.entryndx = divide (tree.entryndx + 31, 32, 17, 0); 1140 end; 1141 1142 if shared.bug_mode & dt_sw 1143 then call ioa_ ("^5x(search_tree: ^d|^d)", tree.areandx, tree.entryndx); 1144 1145 return; /* end of search_tree */ 1146 1147 set_bin: /* SET BINARY PARAMETERS */ 1148 entry (param, param_name, default, min_param, max_param, scale, res); 1149 1150 /* PARAMETERS */ 1151 1152 dcl param fixed bin (31); /* (IN/OUT) parameter to be set */ 1153 dcl param_name char (32) var; /* (IN) the name of the parameter */ 1154 dcl default fixed bin (31); /* (IN) default value for param */ 1155 dcl min_param fixed bin (31); /* (IN) minimum parameter value */ 1156 dcl max_param fixed bin (31); /* (IN) maximum parameter value */ 1157 /* (IN) conversion scale factor */ 1158 dcl scale (*) fixed bin (31); 1159 dcl res fixed bin (31); /* (IN) resolution (min value) */ 1160 1161 /* LOCAL STORAGE */ 1162 1163 dcl old_param fixed bin (31); /* working storage */ 1164 /* for errors */ 1165 dcl max_param_pic pic "zzzzzz9.999"; 1166 dcl min_param_pic pic "zzzzzz9.999"; 1167 dcl value fixed bin (31); /* new or delta value */ 1168 1169 if shared.bug_mode & dt_sw 1170 then call ioa_ ("util$set_bin: (cr=^f df=^f mn=^f mx=^[^f^;none^s^])", 1171 show (param, 12000), show (default, 12000), 1172 show (min_param, 12000), (max_param > 0), 1173 show (max_param, 12000)); 1174 1175 old_param = param; /* save old value */ 1176 param = default; /* preset to default value */ 1177 1178 if ctl.index <= length (ctl_line) /* if value is given */ 1179 then if substr (ctl_line, ctl.index, 1) ^= "," 1180 then 1181 do; /* delta? */ 1182 if index ("+-", substr (ctl_line, ctl.index, 1)) ^= 0 1183 then 1184 do; 1185 value = res /* read delta value */ 1186 * 1187 round ( 1188 divide ( 1189 comp_read_$number (ctl_line, scale, ctl.index, ctl.index, 1190 addr (ctl.info), 0), res, 31, 1), 0); 1191 1192 if max_param >= 0 & old_param + value > max_param 1193 then 1194 do; 1195 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1196 "Given value for ^a too large. " 1197 || "Current max value, ^f, will be used.", 1198 param_name, show (max_param, scale (1))); 1199 param = max_param; 1200 end; 1201 1202 else if old_param + value - min_param < -scale (1) 1203 then 1204 do; 1205 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1206 "Given value for ^a too small. " 1207 || "Current min value, ^f, will be used.", 1208 param_name, show (min_param, scale (1))); 1209 param = min_param; 1210 end; 1211 1212 else param = old_param + value; 1213 end; 1214 1215 else /* resetting to cardinal value */ 1216 do; 1217 value = res 1218 * 1219 round ( 1220 divide ( 1221 comp_read_$number (ctl_line, scale, ctl.index, ctl.index, 1222 addr (ctl.info), 0), res, 31, 1), 0); 1223 1224 if max_param >= 0 & value > max_param 1225 then 1226 do; 1227 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1228 "Given value for ^a too large. " 1229 || "Current max value, ^f, will be used.", 1230 param_name, show (max_param, scale (1))); 1231 param = max_param; 1232 end; 1233 1234 else if value < min_param 1235 then 1236 do; 1237 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1238 "Given value for ^a too small. " 1239 || "Current min value, ^f, will be used.", 1240 param_name, show (min_param, scale (1))); 1241 param = min_param; 1242 end; 1243 1244 else param = value; 1245 end; 1246 end; 1247 1248 if ctl.index <= length (ctl_line) /* to skip comma or overflow ctl line */ 1249 then if substr (ctl_line, ctl.index, 1) = "," 1250 then ctl.index = ctl.index + 1; 1251 1252 if shared.bug_mode & dt_sw 1253 then call ioa_ ("^5x(set_bin: ^a ^f)", param_name, show (param, 12000)); 1254 1255 return; /* end of set_bin */ 1256 1257 pageno: 1258 entry (page_incr, pageno_str); 1259 1260 /* PARAMETERS */ 1261 1262 dcl page_incr fixed bin; /* page count page_increment */ 1263 dcl pageno_str char (*) var; /* PageNo string to be returned */ 1264 1265 /* LOCAL STORAGE */ 1266 1267 dcl local_str char (32) var; /* for each PageNo element */ 1268 dcl next_pageno_val 1269 fixed bin (31); 1270 1271 if shared.bug_mode & dt_sw 1272 then call ioa_$nnl ("pageno: (^a -> ", pageno_str); 1273 /* advance as requested */ 1274 shared.pagenum.nmbr (shared.pagenum.index) = 1275 shared.pagenum.nmbr (shared.pagenum.index) + page_incr; 1276 /* clear target strings */ 1277 pageno_str, shared.next_pagenmbr = ""; 1278 /* for each element */ 1279 do i = 1 to shared.pagenum.index; /* display in its own mode */ 1280 local_str = 1281 comp_util_$num_display (addr (shared.pagenum.nmbr (i)), 1282 (shared.pagenum.mode (i))); 1283 pageno_str = pageno_str || local_str; 1284 1285 if i < shared.pagenum.index /* add separator if more */ 1286 then 1287 do; 1288 shared.next_pagenmbr = shared.next_pagenmbr || local_str; 1289 pageno_str = pageno_str || shared.pagenum.sep (i); 1290 shared.next_pagenmbr = 1291 shared.next_pagenmbr || shared.pagenum.sep (i); 1292 end; 1293 1294 else 1295 do; 1296 next_pageno_val = shared.pagenum.nmbr (i) + max (page_incr, 1000); 1297 local_str = 1298 comp_util_$num_display (addr (next_pageno_val), 1299 (shared.pagenum.mode (i))); 1300 shared.next_pagenmbr = shared.next_pagenmbr || local_str; 1301 end; 1302 end; 1303 1304 if shared.bug_mode & dt_sw 1305 then call ioa_ ("^a^[ front^; back^]) ", pageno_str, page.hdr.frontpage); 1306 1307 return; /* end of pageno */ 1308 1309 push: 1310 entry (symbol); /* push a stack variable */ 1311 1312 /* For stack variables, tree_var.num_loc points to the current stack box */ 1313 /* and tree_var.str_loc points to the first stack box */ 1314 1315 if shared.bug_mode & dt_sw 1316 then call ioa_ ("push: ^a", rtrim (symbol)); 1317 1318 tree_var_ptr = tree.var_ptr (tree.areandx); 1319 /* not stacked? */ 1320 if ^substr (tree_var.flags (tree.entryndx), 9, 1) 1321 then 1322 do; /* make it stacked */ 1323 tree_var.flags (tree.entryndx) = 1324 tree_var.flags (tree.entryndx) | push_attr; 1325 /* first box */ 1326 stkbox_ptr = allocate (const.local_area_ptr, size (stack_box)); 1327 1328 stack_box = init_stack_box; /* move current values */ 1329 if tree_var.num_loc (tree.entryndx) ^= null () 1330 then stack_box.numval = tree_var.num_loc (tree.entryndx) -> num_value; 1331 if tree_var.incr_loc (tree.entryndx) ^= null () 1332 then stack_box.incrval = 1333 tree_var.incr_loc (tree.entryndx) -> num_value; 1334 stack_box.txtstr = tree_var.str_loc (tree.entryndx) -> txtstr; 1335 /* point to the box */ 1336 tree_var.str_loc (tree.entryndx), tree_var.num_loc (tree.entryndx) = 1337 stkbox_ptr; 1338 end; /* its already stacked */ 1339 /* set stack box pointer */ 1340 else stkbox_ptr = tree_var.num_loc (tree.entryndx); 1341 1342 if stack_box.fthrd = null () /* need a new box? */ 1343 then 1344 do; 1345 stack_box.fthrd = allocate (const.local_area_ptr, size (stack_box)); 1346 stack_box.fthrd -> stack_box = init_stack_box; 1347 stack_box.fthrd -> stack_box.bthrd = stkbox_ptr; 1348 end; /**/ 1349 /* set forward thread */ 1350 tree_var.num_loc (tree.entryndx), stkbox_ptr = stack_box.fthrd; 1351 /* advance stack level */ 1352 tree_var.str_loc (tree.entryndx) -> stack_box.level = 1353 tree_var.str_loc (tree.entryndx) -> stack_box.level + 1; 1354 1355 push_return: 1356 if shared.bug_mode & dt_sw 1357 then call ioa_ ("^5x(push: ^d|^d stk=^d ^a)", tree.areandx, tree.entryndx, 1358 tree_var.str_loc (tree.entryndx) -> stack_box.level, 1359 rtrim (symbol)); 1360 1361 return; /* end of push */ 1362 1363 pop: 1364 entry (symbol); 1365 1366 /* Same PARAMETERS as push above */ 1367 1368 dcl bad_stack_pop condition; /* for debugging */ 1369 1370 call comp_util_$search_tree (symbol, ^CREATE); 1371 1372 if tree.entryndx = 0 /* not there? */ 1373 then 1374 do; 1375 no_pop: 1376 call comp_report_ (4, 0, 1377 "Program error. Attempting to pop an " 1378 || "undefined stack variable.", addr (ctl.info), ctl_line); 1379 if option.debug_opt 1380 then signal bad_stack_pop; 1381 else signal comp_abort; 1382 return; 1383 end; 1384 1385 tree_var_ptr = tree.var_ptr (tree.areandx); 1386 1387 if tree_var.num_loc (tree.entryndx) ^= null () 1388 /* do the pop */ 1389 then tree_var.num_loc (tree.entryndx), stkbox_ptr = 1390 tree_var.num_loc (tree.entryndx) -> stack_box.bthrd; 1391 /* retard stack level */ 1392 tree_var.str_loc (tree.entryndx) -> stack_box.level = 1393 tree_var.str_loc (tree.entryndx) -> stack_box.level - 1; 1394 /* at the base? */ 1395 if tree_var.str_loc (tree.entryndx) -> stack_box.level = 0 1396 then tree_var.num_loc (tree.entryndx) = tree_var.str_loc (tree.entryndx); 1397 1398 pop_return: 1399 if shared.bug_mode & dt_sw 1400 then 1401 do; 1402 if tree_var.num_loc (tree.entryndx) = null () 1403 then call ioa_ ("util$pop: (^d(^d),^a=null)", tree.entryndx, 1404 tree_var.str_loc (tree.entryndx) -> stack_box.level, 1405 rtrim (symbol)); 1406 else call ioa_ ("util$pop: (^d(^d),^a=^[^d^;^s^]^[^a^;^s^])", 1407 tree.entryndx, 1408 tree_var.str_loc (tree.entryndx) -> stack_box.level, 1409 rtrim (symbol), 1410 (tree_var.flags (tree.entryndx) & numeric_attr), 1411 stack_box.numval, 1412 (tree_var.flags (tree.entryndx) & string_attr), 1413 stack_box.txtstr); 1414 end; 1415 1416 return; /* end of pop */ 1417 1418 translate: 1419 entry (tr_str) returns (char (*) var); 1420 1421 /* PARAMETERS */ 1422 1423 dcl tr_str char (*) var; /* string to be translated */ 1424 1425 /* LOCAL STORAGE */ 1426 1427 dcl rtn_str char (1020) var; /* return string */ 1428 1429 if shared.bug_mode & dt_sw 1430 then call ioa_ ("util$translate: ^a", 1431 comp_util_$display (substr (tr_str, 1, length (tr_str)), 0, "0"b) 1432 ); 1433 1434 rtn_str = ""; /* clear return string */ 1435 i = 1; /* set up loop index */ 1436 1437 do while (i <= length (tr_str)); 1438 j = index (substr (tr_str, i), DC1); 1439 /* look for ctl str */ 1440 if j ^= 0 /* found one? */ 1441 then 1442 do; 1443 if j > 1 /* translate preceding text */ 1444 then rtn_str = 1445 rtn_str 1446 || 1447 translate (substr (tr_str, i, j - 1), shared.trans.out, 1448 shared.trans.in); 1449 i = i + j - 1; /* step to start of ctl str */ 1450 j = bin (unspec (substr (tr_str, i + 2, 1))) + 3; 1451 /* length of ctl str */ 1452 rtn_str = rtn_str || substr (tr_str, i, j); 1453 /* move the ctl str */ 1454 i = i + j; /* and step over it */ 1455 end; 1456 else 1457 do; 1458 rtn_str = 1459 rtn_str 1460 || 1461 translate (substr (tr_str, i), shared.trans.out, 1462 shared.trans.in); 1463 i = length (tr_str) + 1; /* exit the loop */ 1464 end; 1465 end; 1466 1467 if shared.bug_mode & dt_sw 1468 then call ioa_ ("^5x(translate) ^a", 1469 comp_util_$display (substr (rtn_str, 1, length (tr_str)), 0, 1470 "0"b)); 1471 1472 return (rtn_str); /* end of translate */ 1473 1474 display: 1475 entry (dtext, dlen, nl_sw) returns (char (*) var); 1476 1477 /* PARAMETERS */ 1478 1479 dcl dtext char (*) var; /* string to display */ 1480 dcl dlen fixed bin; /* number of dtext chars displayed */ 1481 dcl nl_sw bit (1); /* 1= append NL to output */ 1482 1483 /* LOCAL STORAGE */ 1484 1485 dcl ch char (1); /* character to be displayed */ 1486 dcl ct fixed bin; /* # of duplicate chars */ 1487 dcl ctl_decode (0:31) char (3) var int static options (constant) 1488 init ("NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", 1489 "BEL", "BSP", "HT", "NL", "VT", "FF", "CR", "SO", "SI", 1490 "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB", 1491 "CAN", "031", "SUB", "ESC", "FS", "GS", "RS", "US"); 1492 dcl dstr char (2048) var; 1493 dcl (ii, jj, jjj) fixed bin (24); 1494 dcl ichr fixed bin; 1495 dcl 1 meta static options (constant), 1496 2 codes (63) char 1497 init ("", " ", "ª", "«", "¬", "­", "¯", "±", "»", "½", 1498 "¿", "Á", "Ã", "Ä", "Í", "Î", "Ð", "Ô", "Ö", "Ú", "ß", 1499 "ê", "ð", "ý", "þ", "ÿ", "", "", "", "", "", "", 1500 "", "", "", " ", " ", " ", " ", " ", "", "", "", 1501 "", "", "", "", "", "", "", "", "", "", "", 1502 "", "", "", "", " ", "!", """, "#", "$"), 1503 2 decodes (63) char (8) var 1504 init ("DEL", "space", "multiply", "pls-min", "nabla", 1505 "EM-", "slash", "dagger", "perpen", "not-eql", "PAD", 1506 "dbldaggr", "cright", "delta", "bullet", "parallel", 1507 "PI", "trdmark", "therfore", "approx", "infinity", 1508 "theta", "pi", "square", "overbar", "PS", "sup0", 1509 "sup1", "sup2", "sup3", "sup4", "sup5", "sup6", "sup7", 1510 "sup8", "sup9", "EM", "EM_", "EN", "EN_", "ENd", "THIN", 1511 "PIXEL", "lquote", "rquote", "multiply", "modmark", 1512 "dnarro", "diambot", "diamlf", "delmark", "diamrt", 1513 "diamtop", "lfarro", "{1hi", "[1hi", "lfcirc", "(1hi", 1514 "rtarro", "}1hi", "]1hi", "rtcirc", ")1hi"); 1515 1516 /* 1517* 600 1518* 601 1519* 602 1520* 603 1521* 604 1522* 605 1523* 606 1524* 607 1525* 610 1526* 611 1527* 612 1528* 613 1529* 614 1530* 615 1531* 616 1532* 617 1533* 620 1534* 621 1535* 622 1536* 623 1537* 624 1538* 625 1539* 626 1540* 627 1541* 630 1542* 631 1543* 632 1544* 633 1545* 634 1546* 635 1547* 636 1548* 637 1549* 640 1550* 641 1551* 642 1552* 643 1553* 644 1554*445 uparo 645 1555*446 646 1556*447 [tp 647 1557*450 [ht 650 1558*451 [md 651 1559*452 [bt 652 1560*453 [hb 653 1561*454 [fl 654 1562*455 ]tp 655 1563*456 ]ht 656 1564*457 ]md 657 1565*460 ]bt 660 1566*461 ]hb 661 1567*462 ]fl 662 1568*463 {tp 663 1569*464 {ht 664 1570*465 {md 665 1571*466 {bt 666 1572*467 {hb 667 1573*470 {fl 670 1574*471 }tp 671 1575*472 }ht 672 1576*473 }md 673 1577*474 }bt 674 1578*475 }hb 675 1579*476 }fl 676 1580*477 art) 677 1581*500 art 700 1582*501 art 701 1583*502 art 702 1584*503 art 703 1585*504 art 704 1586*505 art 705 1587*506 art 706 1588*507 art 707 1589*510 art 710 1590*511 art 711 1591*512 art 712 1592*513 art 713 1593*514 art 714 1594*515 art 715 1595*516 art 716 1596*517 art 717 1597*520 art 720 1598*521 art 721 1599*522 art 722 1600*523 art 723 1601*524 art 724 1602*525 art 725 1603*526 art 726 1604*527 art 727 1605*530 art 730 1606*531 /onehi 731 1607*532 vrule 732 1608*533 hstrt 733 1609*534 hline 734 1610*535 hterm 735 1611*536 lslnt 736 1612*537 rslnt 737 1613*540 boxtl 740 1614*541 boxt 741 1615*542 boxtr 742 1616*543 boxl 743 1617*544 box+ 744 1618*545 boxr 745 1619*546 boxbl 746 1620*547 boxb 747 1621*550 boxbr 750 1622*551 loztl 751 1623*552 loztr 752 1624*553 lozl 753 1625*554 lozr 754 1626*555 lozbl 755 1627*556 lozbr 756 1628*557 757 1629*560 760 1630*561 761 1631*562 762 1632*563 763 1633*564 764 1634*565 765 1635*566 766 1636*567 767 1637*570 770 1638*571 771 1639*572 772 1640*573 773 1641*574 774 1642*575 775 1643*576 776 1644*577 777 1645**/ 1646 dcl printable char (95) static options (constant) 1647 init (" !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM" 1648 || "NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"); 1649 /* area for comp_dvt.displayproc */ 1650 dcl work (100) fixed bin (35); 1651 1652 ret_str = ""; 1653 work (*) = 0; 1654 1655 ii = 1; 1656 do while (ii <= length (dtext)); /**/ 1657 /* display any printing chars */ 1658 jj = verify (substr (dtext, ii), printable); 1659 if jj = 0 1660 then jj = length (dtext) - ii + 1; 1661 else jj = jj - 1; 1662 1663 if jj > 0 /* any printables? */ 1664 then ret_str = ret_str || substr (dtext, ii, jj); 1665 ii = ii + jj; /* step over them */ 1666 1667 if ii <= length (dtext) /* more? */ 1668 then 1669 do; 1670 ch = substr (dtext, ii, 1); /**/ 1671 1672 if rank (ch) < 32 /* ASCII control chars */ 1673 | rank (ch) >= 127 /* or meta characters */ 1674 then 1675 do; 1676 dstr = comp_dvt /* does the device know this one? */ 1677 .displayproc (substr (dtext, ii), jjj, "0"b); 1678 if jjj > 0 /* yes */ 1679 then ii = ii + jjj; 1680 1681 else if jjj < 0 1682 then goto display_rtn; 1683 1684 else /* not a device character */ 1685 do; 1686 if rank (ch) = 0 /* special handling for NUL */ 1687 then 1688 do; 1689 if ii = length (dtext) 1690 then call ioa_$rsnnl ("", dstr, 0); 1691 else call ioa_$rsnnl ( 1692 " -- <>", dstr, 0, 1694 length (dtext) - ii, 1695 unspec (substr (dtext, ii + 1, 1))); 1696 ii = length (dtext) + 1; 1697 end; /**/ 1698 /* check for escapes */ 1699 else if ch = "¿" & length (dtext) > ii 1700 then 1701 do; 1702 ct = 2; /* count for this first bunch */ 1703 if substr (dtext, ii + 1, 1) = lquote 1704 then dstr = ""; 1705 else if substr (dtext, ii + 1, 1) = rquote 1706 then dstr = ""; 1707 else if substr (dtext, ii + 1, 1) = EN 1708 then dstr = ""; 1709 else if substr (dtext, ii + 1, 1) = EM 1710 then dstr = ""; 1711 else if substr (dtext, ii + 1, 1) = ENd 1712 then dstr = ""; 1713 else if index (substr (dtext, ii + 1), "¿¿" || EMdash) 1714 = 1 1715 then 1716 do; 1717 dstr = ""; 1718 ct = 4; 1719 end; 1720 1721 else 1722 do; 1723 ct = /* how many? */ 1724 verify (substr (dtext, ii), "¿"); 1725 if ct = 0 /* all the rest */ 1726 then ct = length (dtext) - ii + 1; 1727 else ct = ct - 1; 1728 1729 if ct > 1 /* if more than one */ 1730 then call ioa_$rsnnl ("", dstr, 0, ct); 1731 else dstr = ""; 1732 end; 1733 1734 ii = ii + ct; 1735 end; 1736 1737 else if ch = DC1 1738 then 1739 do; 1740 DCxx_p = addr (substr (dtext, ii)); 1741 /* shift controls */ 1742 if dclong_val.type = type_slx 1743 then call ioa_$rsnnl ("<>", dstr, 0, 1744 show (fixed (dclong_val.v1), 12000)); 1745 1746 else if dclong_val.type = type_sly 1747 then call ioa_$rsnnl ("<>", dstr, 0, 1748 show (fixed (dclong_val.v1), 12000)); 1749 1750 else if dcshort_val.type = type_sy 1751 then call ioa_$rsnnl ("<>", dstr, 0, 1752 show (fixed (dcshort_val.v1), 12000)); 1753 /* vector controls */ 1754 else if dclong_val.type = type_vlx 1755 then call ioa_$rsnnl ("<>", dstr, 0, 1756 show (fixed (dclong_val.v1), 12000)); 1757 /* font change controls */ 1758 else if dcctl.type = type_font 1759 then call ioa_$rsnnl ("<>", dstr, 0, 1760 fnttbldata.ptr (dcfs.f) -> fnttbl.entry.name, 1761 show (fixed (dcfs.p), 1000)); 1762 1763 else if dcctl.type = type_wait 1764 then call ioa_$rsnnl ("<>", dstr, 0); 1765 1766 else if dcctl.type = type_unstart 1767 then call ioa_$rsnnl ("<>", dstr, 0); 1768 1769 else if dcctl.type = type_unstop 1770 then call ioa_$rsnnl ("<>", dstr, 0); 1771 1772 ii = ii + dcxx.leng + 3; 1773 end; /* DC1 controls */ 1774 1775 else 1776 do; 1777 ct = /* how many? */ 1778 verify (substr (dtext, ii), ch); 1779 if ct = 0 /* all the rest */ 1780 then ct = length (dtext) - ii + 1; 1781 else ct = ct - 1; 1782 1783 if rank (ch) < 32 1784 then 1785 do; 1786 if ct > 1 /* if more than one */ 1787 then call ioa_$rsnnl ("<^a*^d>", dstr, 0, 1788 ctl_decode (rank (ch)), ct); 1789 else dstr = "<" || ctl_decode (rank (ch)) || ">"; 1790 end; 1791 1792 else 1793 do; 1794 ichr = index (string (meta.codes), ch); 1795 if ichr > 0 /**/ 1796 /* TEMPORARY IF CLAUSE */ 1797 & ichr <= hbound (meta.codes, 1) 1798 then 1799 do; 1800 if ct > 1 /* if more than one */ 1801 then call ioa_$rsnnl ("<^a*^d>", dstr, 0, 1802 meta.decodes (ichr), ct); 1803 else dstr = "<" || meta.decodes (ichr) || ">"; 1804 end; /**/ 1805 /* not a known character */ 1806 else 1807 do; 1808 if ct > 1 /* if more than one */ 1809 then call ioa_$rsnnl ("<<^.3b>" || "*^d>", dstr, 1810 0, unspec (ch), ct); 1811 else call ioa_$rsnnl ("<^.3b>", dstr, 0, 1812 unspec (ch)); 1813 end; 1814 end; 1815 1816 ii = ii + ct; 1817 end; 1818 1819 if ch = NL 1820 then if nl_sw 1821 then dstr = dstr || NL; 1822 end; 1823 end; /**/ 1824 /* not a known character */ 1825 1826 /* else 1827*/* do; 1828*/* call ioa_$rsnnl ("<^.3b>", dstr, 0, unspec (ch)); 1829*/* ct = 1; 1830*/* ii = ii + 1; 1831*/* end;*/ 1832 1833 ret_str = ret_str || dstr; 1834 end; 1835 end; 1836 1837 display_rtn: 1838 dlen = ii - 1; 1839 return (ret_str); /* end of display */ 1840 1841 put_line: /* to put lines into the block */ 1842 proc (aline_ptr, newtxtptr, tline_ptr, oflo, lead); 1843 1844 dcl aline_ptr ptr; /* line to be added */ 1845 dcl 1 aline aligned like text_entry based (aline_ptr); 1846 dcl newtxtptr ptr; /* -> new/replacement text */ 1847 dcl tline_ptr ptr; /* target line - if null, new line */ 1848 dcl oflo bit (1); /* overflow switch */ 1849 dcl lead fixed bin (31); /* lead for this line */ 1850 1851 dcl arearel fixed bin (18) uns; 1852 dcl newtxt char (1020) var based (newtxtptr); 1853 dcl newwrds fixed bin (18) uns; 1854 dcl nextrel fixed bin (18) uns; 1855 dcl plead fixed bin (31); 1856 dcl tchars fixed bin; /* count of chars in added text */ 1857 /* txtstr overlay */ 1858 dcl 1 tstr based (txtstrptr), 1859 2 leng fixed bin (21), 1860 2 chars char (1020); 1861 1862 dcl (index, max, size) 1863 builtin; 1864 1865 line_area_ptr = block.line_area.cur; 1866 text_area_ptr = block.text_area.cur; 1867 1868 if tline_ptr = null /* new line wanted? */ 1869 then 1870 do; 1871 if line_area.ndx > 0 1872 then plead = line_area.linptr (line_area.ndx) -> txtlin.linespace; 1873 else plead = block.parms.linespace; 1874 1875 block.hdr.count = block.hdr.count + 1; 1876 /* need a new line structure? */ 1877 if line_area.ndx = line_area.count 1878 then 1879 do; /**/ 1880 /* need a new line area? */ 1881 if line_area.count = LINE_AREA_SIZE 1882 then line_area_ptr, block.line_area.cur = 1883 get_line_area (block.line_area.cur); 1884 /* allocate a new line if needed */ 1885 if line_area.ndx = line_area.count 1886 then 1887 do; 1888 line_area.count = line_area.count + 1; 1889 line_area.linptr (line_area.count) = 1890 allocate (const.local_area_ptr, size (text_entry)); 1891 end; 1892 end; /**/ 1893 /* activate the next line */ 1894 line_area.ndx = line_area.ndx + 1; 1895 txtlinptr = line_area.linptr (line_area.ndx); 1896 1897 txtlin = aline; /* move the line */ 1898 1899 block.hdr.modified = /* do the cbars */ 1900 block.hdr.modified | txtlin.cbar.mod | txtlin.cbar.add 1901 | txtlin.cbar.del; 1902 if block.parms.cbar.del 1903 then shared.cbar_type = ""; 1904 block.parms.cbar.del, text_parms.cbar.del = "0"b; 1905 if txtlinptr ^= aline_ptr 1906 then aline.cbar.del = "0"b; 1907 1908 txtlin.art = txtlin.art | aline.art; 1909 aline.art = current_parms.art; /**/ 1910 1911 txtlin.linespace = lead; /* set lead for this line */ 1912 /* depth & space for this line */ 1913 if shared.table_mode & block.hdr.tblblk 1914 & (tblcolndx > 0 | tblcolndx = 0 & (tblfillspc | tblcntxt)) 1915 then 1916 do; 1917 txtlin.table = "1"b; 1918 txtlin.tblcol = tblcolndx; 1919 txtlin.depth = tblcol.depth; 1920 tblcol.depth = tblcol.depth + lead; 1921 if tblcol.depth > tblfmt.maxdepth 1922 then block.hdr.used = 1923 block.hdr.used + tblcol.depth - tblfmt.maxdepth; 1924 tblfmt.maxdepth = max (tblfmt.maxdepth, tblcol.depth); 1925 end; 1926 1927 else block.hdr.used = block.hdr.used + lead; 1928 1929 if (txtlin.white | newtxt = "") & plead > 0 1930 then block.hdr.trl_ws = block.hdr.trl_ws + lead; 1931 else block.hdr.trl_ws = 0; 1932 1933 oflo = (col.hdr.used + block.hdr.used + col.depth_adj 1934 > col.hdr.net + shared.widow_size * current_parms.linespace); 1935 end; 1936 1937 else txtlinptr = tline_ptr; /* no, just replacing text */ 1938 1939 tchars = length (newtxt); 1940 newwrds = divide (tchars + 7, 4, 17, 0); 1941 1942 if newwrds > size (string_area) /* will it fit at all? */ 1943 then 1944 do; 1945 call comp_report_$ctlstr (4, 0, addr (ctl.info), ctl_line, 1946 "Line has too many characters. Program limit is 1020."); 1947 newwrds, tchars = 0; 1948 end; 1949 1950 nextrel = bin (rel (block.next_text)); 1951 arearel = bin (rel (text_area.strareaptr (text_area.ndx))); 1952 /* does it overflow current area? */ 1953 if nextrel - arearel + newwrds >= size (string_area) 1954 then 1955 do; /* get a new string area */ 1956 if text_area.ndx = text_area.count 1957 then 1958 do; 1959 if text_area.count = TEXT_AREA_SIZE 1960 then text_area_ptr, block.text_area.cur = 1961 get_text_area (block.text_area.cur); 1962 else 1963 do; 1964 text_area.ndx, text_area.count = text_area.count + 1; 1965 text_area.strareaptr (text_area.ndx) = 1966 allocate (const.local_area_ptr, size (string_area)); 1967 tblkdata.text_area.string_area_count = 1968 tblkdata.text_area.string_area_count + 1; 1969 end; 1970 end; 1971 else text_area.ndx = text_area.ndx + 1; 1972 1973 block.next_text = text_area.strareaptr (text_area.ndx); 1974 arearel, nextrel = bin (rel (block.next_text)); 1975 end; /**/ 1976 /* text pointer for this line */ 1977 txtstrptr, txtlin.ptr = block.next_text; 1978 tstr.leng = tchars; /* add line to text block */ 1979 (nostrg): 1980 substr (tstr.chars, 1, tchars) = substr (newtxt, 1, tchars); 1981 1982 if tchars > 0 & txtstr ^= " " /* if not empty or blank */ 1983 then 1984 do; 1985 if meas_sw 1986 then 1987 do; /* assure beginning font */ 1988 unspec (txtlin.cur) = "0"b; 1989 txtlin.cur.font = txtlin.font; 1990 call comp_measure_ (txtstr, addr (txtlin.cur.font), "0"b, 1991 txtlin.art, txtlin.quad, 0, addr (txtlin.cur), addr (meas2), 1992 addr (txtlin.info)); 1993 txtlin.width = txtlin.cur.width + txtlin.cur.avg; 1994 end; 1995 1996 (nostrg): 1997 if trflag & search (substr (txtstr, 1, tchars), shared.trans.in) > 0 1998 then 1999 (nostrg): 2000 substr (tstr.chars, 1, tchars) = comp_util_$translate (newtxt); 2001 2002 if esc_flag 2003 then if index (txtstr, "*") ^= 0 2004 then call comp_util_$escape (txtstr, addr (ctl.info)); 2005 2006 block.hdr.white = "0"b; /* its not white any more */ 2007 if block.blktype = "ws" /* change block type, too */ 2008 then block.blktype = "tx"; 2009 end; 2010 2011 if block.parms.keep /* a keep block? */ 2012 then 2013 do; 2014 txtlin.keep = "1"b; 2015 block.hdr.keep_count = block.hdr.keep_count - 1; 2016 if block.hdr.keep_count = 0 2017 then 2018 do; 2019 text_parms.keep, txtlin.keep, block.parms.keep = "0"b; 2020 txtlin.end_keep = "1"b; 2021 end; 2022 end; /**/ 2023 /* update next text pointer */ 2024 block.next_text = addrel (block.next_text, newwrds); 2025 2026 /**** if (block.hdr.colno >= 0 /* if block belongs to a column */ 2027 /**** | block.blktype = "th") /* or is a text header */ 2028 /**** then if txtstr ^= " " /* and not a blank line */ 2029 /**** & ^aline.fnt_chng /* and not a font change string */ 2030 /**** then col.hdr.pspc = 0; /* reset column head space */ 2031 2032 if shared.bug_mode & dt_sw 2033 then 2034 do; 2035 call ioa_$nnl ("^5x(put_line: ^a=^d/^d e^d u^f(^f) ch^d w^f g^d " 2036 || "mrg^f/^f/^f fnt=^a ^f", block.blktype, block.blkndx, 2037 txtlin.info.lineno, block.hdr.count, show (block.hdr.used, 12000), 2038 show (block.hdr.trl_ws, 12000), length (newtxt), 2039 show (txtlin.width, 12000), txtlin.cur.gaps, 2040 show (txtlin.lmarg, 12000), show (txtlin.rmarg, 12000), 2041 show (txtlin.net, 12000), txtlin.font.name, 2042 show (txtlin.font.size, 1000)); 2043 2044 if shared.table_mode & block.hdr.tblblk 2045 then call ioa_$nnl (" tbl=^d/^d d^f/^f", tblcolndx, tblfmtndx, 2046 show (tblcol.depth, 12000), show (tblfmt.maxdepth, 12000)); 2047 2048 call ioa_ (") ^[|^]^[*^]^[A^]^[K^]^[^^K^]^[T^]^[H^]" 2049 || "^[W^[(n)^]^;^s^]^[ SPCL^]^[FRF^]^/^5x""^a""", 2050 (txtlin.cbar.mod | txtlin.cbar.add), txtlin.cbar.del, txtlin.art, 2051 txtlin.keep, txtlin.end_keep, txtlin.title, txtlin.hanging, 2052 txtlin.white, txtlin.no_trim, (unspec (txtlin.spcl) ^= "0"b), 2053 txtlin.footref, 2054 comp_util_$display (txtlin.ptr -> txtstr, 0, "0"b)); 2055 end; 2056 2057 end put_line; 2058 2059 show: 2060 proc (datum, scale) returns (fixed dec (11, 3)); 2061 dcl datum fixed bin (31); 2062 dcl scale fixed bin (31); 2063 2064 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 2065 end show; 2066 2067 dcl dt_sw bit (1) static init ("0"b); 2068 dtn: 2069 entry; 2070 dt_sw = "1"b; 2071 return; 2072 dtf: 2073 entry; 2074 dt_sw = "0"b; 2075 return; 2076 2077 abrtn: 2078 entry; 2079 abrt_sw = "1"b; 2080 return; 2081 abrtf: 2082 entry; 2083 abrt_sw = "0"b; 2084 return; 2085 1 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 1 2 1 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 4 1 5 dcl 1 col /* the text column */ 1 6 aligned based (shared.colptr), 1 7 2 blkptr (100) ptr, /* pointers to text blocks */ 1 8 2 depth_adj fixed bin (31), /* for variable start depth */ 1 9 2 ftrptr ptr, /* -> column footer */ 1 10 2 ftrusd fixed bin (31), /* column footer space used */ 1 11 2 gutter fixed bin (31), /* column separation */ 1 12 2 hdr like colhdr, /* column control stuff */ 1 13 2 hdrptr ptr, /* -> column header */ 1 14 2 hdrusd fixed bin (31), /* column header space used */ 1 15 2 margin, /* margin settings for column */ 1 16 3 left fixed bin (31), 1 17 3 right fixed bin (31), 1 18 2 parms, /* text parms for the column */ 1 19 3 measure fixed bin (31); /* column width */ 1 20 1 21 dcl 1 colhdr aligned based (const.colhdrptr), 1 22 /* an empty column header */ 1 23 2 balblk fixed bin, /* block to begin column balancing */ 1 24 2 baldepth fixed bin (31), /* page depth at balance point */ 1 25 2 balftn, /* footnotes at balance point */ 1 26 3 ct fixed bin, /* count */ 1 27 3 usd fixed bin (31), /* space used */ 1 28 3 blkndx (40) fixed bin, /* block index values */ 1 29 2 balusd fixed bin (31), /* space used up to balance point */ 1 30 2 blkct fixed bin, /* text block count */ 1 31 2 depth fixed bin (31), /* current page depth in the column */ 1 32 2 ftn like balftn, /* footnotes */ 1 33 2 pspc fixed bin (31), /* current white space */ 1 34 2 net fixed bin (31), /* net usable space in the column */ 1 35 2 used fixed bin (31); /* space used in this column */ 1 36 /* for quick reference */ 1 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 1 38 1 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 2086 2 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 2 2* Modified: ??/81 - EJW - Addded type_wait 2 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 2 4**/ 2 5 2 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 2 7 2 8 dcl DCxx_p ptr; /* for qualification of embedded */ 2 9 /* control strings */ 2 10 /* an embedded control string */ 2 11 dcl 1 dcxx unal based (DCxx_p), 2 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 2 13 2 ctl, 2 14 3 type bit (3) unal, /* 000- device/writer control */ 2 15 /* 001- */ 2 16 /* 010- literal data */ 2 17 /* 011- family/member/size data */ 2 18 /* 100- shift */ 2 19 /* 101- */ 2 20 /* 110- vector */ 2 21 /* 111- zero-offset vector */ 2 22 3 fill1 bit (1) unal, 2 23 3 Xctl bit (2) unal, /* 00- no X value present */ 2 24 /* 01- short X value */ 2 25 /* 10- long X value */ 2 26 3 fill2 bit (1) unal, 2 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 2 28 /* 01- short Y value present */ 2 29 /* 10- long Y value present */ 2 30 2 leng fixed bin (9) unal unsigned, 2 31 /* # of remaining bytes */ 2 32 2 etc; /* the rest of the control bytes */ 2 33 /* device/writer controls */ 2 34 dcl 1 dcctl unal based (DCxx_p), 2 35 2 mark char (1) unal, 2 36 2 type char (1) unal, /* control type */ 2 37 /* leng is always 0 for these */ 2 38 2 leng fixed bin (9) unal unsigned; 2 39 dcl ( 2 40 wait_signal init (""), /* = 021001000 */ 2 41 unstart_signal init (""), /* = 021002000 */ 2 42 unstop_signal init ("") /* = 021003000 */ 2 43 ) char (3) static options (constant); 2 44 /* the "literal" control string */ 2 45 dcl 1 dclit unal based (DCxx_p), 2 46 2 mark char (1) unal, 2 47 2 type char (1) unal, /* control type */ 2 48 2 leng fixed bin (9) unal unsigned, 2 49 /* width in milli-points of literal */ 2 50 2 width fixed bin (31) unal, 2 51 /* actual literal, max length 509 */ 2 52 2 data char (dclit.leng - 4); 2 53 /* long (31 bits) values */ 2 54 dcl 1 dclong_val unal based (DCxx_p), 2 55 2 mark char (1) unal, 2 56 2 type char (1) unal, /* control type */ 2 57 2 leng fixed bin (9) unal unsigned, 2 58 ( 2 59 2 v1 fixed bin (31), /* long value */ 2 60 2 v2 fixed bin (31) /* long value */ 2 61 ) unal; 2 62 dcl ( 2 63 dclong_len init (8), /* 2 long values */ 2 64 dclong1_len init (4) /* 1 long value */ 2 65 ) fixed bin static options (constant); 2 66 /* short (17 bit) values */ 2 67 dcl 1 dcshort_val unal based (DCxx_p), 2 68 2 mark char (1) unal, 2 69 2 type char (1) unal, /* control type */ 2 70 2 leng fixed bin (9) unal unsigned, 2 71 ( 2 72 2 v1 fixed bin, /* short value */ 2 73 2 v2 fixed bin /* short value */ 2 74 ) unal; 2 75 dcl ( 2 76 dcshort_len init (4), /* 2 short values */ 2 77 dcshort1_len init (2) /* 1 short value */ 2 78 ) fixed bin static options (constant); 2 79 /* a font change string */ 2 80 dcl 1 dcfs unal based (DCxx_p), 2 81 2 mark char (1) unal, /* font/size data */ 2 82 2 type char (1) unal, /* control type */ 2 83 2 leng fixed bin (9) unal unsigned, 2 84 /* fnttbldata index */ 2 85 2 f fixed bin (9) unal unsigned, 2 86 /* point size in milli-points */ 2 87 2 p fixed bin (31) unal; 2 88 dcl dcfs_len fixed bin init (5) static options (constant); 2 89 2 90 dcl ( /* symbolic definitions of DC types */ 2 91 type_wait init (""), /* writer wait */ 2 92 type_unstart init (""), /* underscore start */ 2 93 type_unstop init (""), /* underscore stop */ 2 94 type_lit init ("ˆ"), /* literal data */ 2 95 type_font init ("À"), /* family/member/size data */ 2 96 /* SHIFTS - */ 2 97 type_sy init (""), /* -- no x, short y */ 2 98 type_sly init (""), /* -- no x, long y */ 2 99 type_sx init (""), /* -- short x, no y */ 2 100 type_sxy init (" "), /* -- short x, short y */ 2 101 type_slx init (""), /* -- long x, no y */ 2 102 type_slxly init (""), /* -- long x, long y */ 2 103 /* VECTORS */ 2 104 type_vy init (""), /* -- no x, short y */ 2 105 type_vly init ("‚"), /* -- no x, long y */ 2 106 type_vx init ("ˆ"), /* -- short x, no y */ 2 107 type_vxy init ("‰"), /* -- short x, short y */ 2 108 type_vlx init (""), /* -- long x, no y */ 2 109 type_vlxly init ("’"), /* -- long x, long y */ 2 110 /* ZERO-OFFSET VECTORS- */ 2 111 type_v0y init ("Á"), /* -- no x, short y */ 2 112 type_v0ly init ("Â"), /* -- no x, long y */ 2 113 type_v0x init ("È"), /* -- short x, no y */ 2 114 type_v0xy init ("É"), /* -- short x, short y */ 2 115 type_v0lx init ("Ð"), /* -- long x, no y */ 2 116 type_v0lxly init ("Ò") /* -- long x, long y */ 2 117 ) char (1) unal int static options (constant); 2 118 2 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 2087 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 */ 2088 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 */ 2089 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 */ 2090 6 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 6 2 6 3 /* Fonts already loaded into the compose (pdir) database */ 6 4 6 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 6 6 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 6 8 2 count fixed bin, /* number of fonts loaded */ 6 9 2 ndx fixed bin, /* index of current font */ 6 10 2 medsel_ptr ptr, /* -> media select table */ 6 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 6 12 6 13 dcl fnttbl_ptr ptr init (null); 6 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 6 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 6 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 6 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 6 18 2 rel_units fixed bin, /* stroke value for this font */ 6 19 2 siztbl_ptr ptr, /* -> loaded size table */ 6 20 2 entry /* stack entry for this font */ 6 21 like fntstk_entry, 6 22 ( /* for each font character */ 6 23 2 devfnt fixed bin, /* font in the device */ 6 24 2 replptr ptr, /* replacement string ptrs */ 6 25 2 units fixed bin, /* width in strokes */ 6 26 2 white bit (1) unal /* white space flags */ 6 27 ) dimension (0:511); 6 28 6 29 dcl repl_str_ptr ptr; /* replacement strings */ 6 30 dcl 1 repl_str based (repl_str_ptr), 6 31 2 len fixed bin (35), 6 32 2 str char (256); 6 33 dcl replstr char (256) var based (repl_str_ptr); 6 34 /* media select strings */ 6 35 /* (indexed on fnttbldata.ndx) */ 6 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 6 37 6 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 6 39 2 ct fixed bin, /* number of sizes */ 6 40 2 size (siztbl.ct) fixed bin (31); 6 41 6 42 /* This is the storage referred by family.member_r in comp_dvt 6 43* 6 44* If member.count is 1 and member.name(1) is null, then the font is a 6 45* 'bachelor'. 6 46* 6 47* The font stack will hold the family/member names which were used to 6 48* originally get to the font. When a bachelor is accessed, the member name 6 49* will remain but the bachelor flag will be set to tell any displayers not 6 50* to include it. 6 51* 6 52* %FontName% will contain either "family" or "family/member" depending on 6 53* the setting of the bachelor switch. */ 6 54 6 55 dcl member_ptr ptr; 6 56 dcl 1 member based (member_ptr), 6 57 2 count fixed bin, /* # members present */ 6 58 2 e (member.count), /* members defined for this device */ 6 59 3 font_r bit (18) unal, /* font character table relptr */ 6 60 3 size_r bit (18) aligned, 6 61 /* point size list relptr */ 6 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 6 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 6 64 3 name char (32); /* member name */ 6 65 6 66 /* Storage referred by member.font_r */ 6 67 dcl font_ptr ptr; 6 68 dcl 1 font based (font_ptr), 6 69 ( 2 oput_r, /* offset of output data array */ 6 70 2 units_r /* offset of width array */ 6 71 ) bit (18) aligned, 6 72 2 rel_units fixed bin, /* stroke value for this table */ 6 73 2 footsep char (1), /* footref separator */ 6 74 2 fill char (3), 6 75 2 min_wsp fixed bin, /* min wordspace */ 6 76 2 avg_wsp fixed bin, /* nominal wordspace */ 6 77 2 max_wsp fixed bin; /* max wordspace */ 6 78 6 79 /* storage referred by font.units_r */ 6 80 dcl units_ptr ptr; /* width in strokes */ 6 81 dcl units (0:511) fixed bin based (units_ptr); 6 82 6 83 /* media select table in the device table */ 6 84 dcl medsel_table_ptr 6 85 ptr; 6 86 dcl 1 medsel_table based (medsel_table_ptr), 6 87 2 count fixed bin, 6 88 2 ref_r (medsel_table.count) bit (18) aligned; 6 89 6 90 /* storage referred by font.oput_r */ 6 91 dcl oput_p ptr; 6 92 dcl 1 oput based (oput_p), 6 93 2 data_ct fixed bin, /* highest char defined */ 6 94 2 e (0:oput.data_ct), 6 95 3 which /* index into view array */ 6 96 fixed bin (17) unal, 6 97 3 what_r /* output string */ 6 98 bit (18) unal; 6 99 6 100 /* storage referred by member.size_r */ 6 101 6 102 dcl sizel_p ptr; 6 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 6 104 2 val_ct fixed bin, 6 105 2 val (sizel.val_ct) fixed bin (31); 6 106 6 107 /* storage referred by oput.what_r */ 6 108 6 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 6 110 dcl 1 medchar_sel based (medchar_sel_p), 6 111 2 str_l fixed bin, 6 112 2 str char (medchar_sel.str_l); 6 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 6 114 6 115 dcl med_sel_p ptr; /* media select string */ 6 116 dcl 1 med_sel based (med_sel_p), 6 117 2 str_l fixed bin, 6 118 2 str char (med_sel.str_l); 6 119 6 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 2091 7 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 7 4 7 5 /* ASCII control characters */ 7 6 dcl ( 7 7 NUL init (""), /* 000 */ 7 8 SOH init (""), /* 001 */ 7 9 STX init (""), /* 002 */ 7 10 ETX init (""), /* 003 */ 7 11 EOT init (""), /* 004 */ 7 12 ENQ init (""), /* 005 */ 7 13 ACK init (""), /* 006 */ 7 14 BEL init (""), /* 007 */ 7 15 BSP init (""), /* 010 */ 7 16 HT init (" "), 7 17 /* 011 */ 7 18 (NL, LF) init (" 7 19 "), /* 012 */ 7 20 VT init (" "), /* 013 */ 7 21 FF init (" "), /* 014 */ 7 22 CR init (" "), /* 015 */ 7 23 (RRS, SO) init (""), /* 016 */ 7 24 (BRS, SI) init (""), /* 017 */ 7 25 DLE init (""), /* 020 */ 7 26 DC1 init (""), /* 021 */ 7 27 (DC2, HLF, HUGE) init (""), /* 022 */ 7 28 DC3 init (""), /* 023 */ 7 29 (DC4, HLR, THICK) init (""), /* 024 */ 7 30 (NAK, MEDIUM) init (""), /* 025 */ 7 31 SYN init (""), /* 026 */ 7 32 (ETB, HAIR) init (""), /* 027 */ 7 33 (CAN, STROKE) init (""), /* 030 */ 7 34 oct031 init (""), /* 031 */ 7 35 SUB init (""), /* 032 */ 7 36 ESC init (""), /* 033 */ 7 37 FS init (""), /* 034 */ 7 38 GS init (""), /* 035 */ 7 39 RS init (""), /* 036 */ 7 40 US init (""), /* 037 */ 7 41 (DEL, PAD) init (""), /* 177 */ 7 42 /* compose meta-characters */ 7 43 multiply init ("ª"), /* 252 - multiply symbol */ 7 44 pl_mi init ("«"), /* 253 - plus/minus sign */ 7 45 nabla init ("¬"), /* 254 */ 7 46 EMdash init ("­"), /* 255 - EM dash */ 7 47 slash init ("¯"), /* 256 */ 7 48 dagger init ("±"), /* 261 */ 7 49 perpen init ("»"), /* 273 - perpendicular mark */ 7 50 not_eq init ("½"), /* 275 - not-equal mark */ 7 51 dbldag init ("Á"), /* 301 - double daggar */ 7 52 cright init ("Ã"), /* 303 - copyright mark */ 7 53 delta init ("Ä"), /* 304 */ 7 54 bullet init ("Í"), /* 315 */ 7 55 prll init ("Î"), /* 316 - parallel mark */ 7 56 PI init ("Ð"), /* 320 - uppercase Greek pi */ 7 57 tmark init ("Ô"), /* 324 - trademark */ 7 58 tfore init ("Ö"), /* 326 - therefore mark */ 7 59 approx init ("Ú"), /* 332 - approximately-equal mark */ 7 60 infin init ("ß"), /* 337 - infinity */ 7 61 theta init ("ê"), /* 352 */ 7 62 pi init ("ð"), /* 360 - lowercase Greek pi */ 7 63 square init ("ý"), /* 375 */ 7 64 overbar init ("þ"), /* 376 */ 7 65 PS init ("ÿ"), /* 377 - punctuation space */ 7 66 sup0 init (""), /* 400 - superior digit 0 */ 7 67 sup1 init (""), /* 401 - superior digit 1 */ 7 68 sup2 init (""), /* 402 - superior digit 2 */ 7 69 sup3 init (""), /* 403 - superior digit 3 */ 7 70 sup4 init (""), /* 404 - superior digit 4 */ 7 71 sup5 init (""), /* 405 - superior digit 5 */ 7 72 sup6 init (""), /* 406 - superior digit 6 */ 7 73 sup7 init (""), /* 407 - superior digit 7 */ 7 74 sup8 init (""), /* 410 - superior digit 8 */ 7 75 sup9 init (" "), /* 411 - superior digit 9 */ 7 76 EM init (" "), /* 412 - EM space */ 7 77 EM_ init (" "), /* 413 - EM aligned dash */ 7 78 EN init (" "), /* 414 - EN space */ 7 79 EN_ init (" "), /* 415 - EN aligned dash */ 7 80 ENd init (""), /* 416 - EN dash */ 7 81 THIN init (""), /* 417 - thinspace */ 7 82 DEVIT init (""), /* 420 - device unit */ 7 83 lquote init (""), /* 421 - left double quote */ 7 84 rquote init (""), /* 422 - right double quote */ 7 85 modmark init (""), /* 424 - text modification/addition mark */ 7 86 delmark init (""), /* 430 - deletion mark */ 7 87 vrule init ("Z"), /* 532 - vertical rule */ 7 88 lslnt init ("^") /* 536 - left slant */ 7 89 ) char (1) unaligned static options (constant); 7 90 7 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 2092 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 2093 9 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl shared_version fixed bin (35) static options (constant) init (17); 9 6 9 7 dcl 1 shared aligned based (const.shared_ptr), 9 8 2 version fixed bin (35), /* version of this structure */ 9 9 2 chars, 9 10 ( 3 sym_delim, /* delimiter for symbols */ 9 11 3 ttl_delim, /* delimiter for title parts */ 9 12 3 wrd_brkr /* word break character */ 9 13 ) char (1) unal, 9 14 3 PAD char (1) unal, 9 15 2 cbar_type char (4) var, /* change bar type */ 9 16 2 dot_add_letter /* dot page add letter */ 9 17 char (1) var, 9 18 2 EN_width fixed bin (31), /* width of EN in current font */ 9 19 2 eqn_refct fixed bin, /* equation reference counter */ 9 20 2 footref_fcs /* footnote ref FCS string */ 9 21 char (8) aligned, 9 22 2 ftn_reset char (8) var, /* footnote reset mode */ 9 23 2 ftnrefct fixed bin, /* footnote ref counter */ 9 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 9 25 2 if_nest, /* if/then/else logic control */ 9 26 3 ndx fixed bin, /* depth of logic nest */ 9 27 3 e (25), /* nest entries */ 9 28 /* .if control switch */ 9 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 9 30 4 info aligned like text_entry.info, 9 31 4 line char (256) var, /* the control line */ 9 32 2 indctl, /* indent ctls stack */ 9 33 3 ndx fixed bin, /* current level */ 9 34 /* switch bits */ 9 35 3 stk (0:35) bit (1) unal, 9 36 2 input_dirname 9 37 char (168) var, /* dir containing current input file */ 9 38 2 input_filename 9 39 char (200) var, /* current input file name */ 9 40 2 lead fixed bin (31), /* current linespacing value */ 9 41 2 lit_count fixed bin (35), /* count of literal lines */ 9 42 2 next_pagenmbr 9 43 char (32) var, /* next page number / */ 9 44 2 output_file 9 45 char (32) var, /* output file identifier */ 9 46 2 pagecount fixed bin, /* number of pages produced */ 9 47 2 pagenum, /* page number structure */ 9 48 3 index fixed bin, /* level currently counting */ 9 49 ( 9 50 3 sep char (1) unal, /* separator chars */ 9 51 3 nmbr fixed bin (31), /* the counters */ 9 52 3 mode /* display modes */ 9 53 fixed bin (8) unal 9 54 ) dimension (20), 9 55 2 parameter char (254) var, /* command line parameter */ 9 56 2 param_pres bit (1), /* passed parameter flag */ 9 57 2 pass_counter 9 58 fixed bin, /* pass counter */ 9 59 2 picture, /* picture blocks */ 9 60 3 count fixed bin, /* number of them */ 9 61 3 space fixed bin (31), /* total picture space */ 9 62 3 blk (10), /* picture blocks */ 9 63 4 type char (4), /* type = page/col */ 9 64 4 place char (4), /* place = top/cen/bot */ 9 65 4 ptr ptr, /* pointer to block */ 9 66 4 size fixed bin (31), /* size of the picture */ 9 67 2 ptrs, 9 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 9 69 3 blank_footer_ptr, /* -> blank page footer */ 9 70 3 blank_header_ptr, /* -> blank page header */ 9 71 3 blank_text_ptr, /* -> blank page text */ 9 72 3 blkptr, /* -> active text */ 9 73 3 colptr, /* current column */ 9 74 3 compout_ptr, /* iocb pointer for output */ 9 75 3 compx_ptr, /* iocb pointer for compx file */ 9 76 3 ctb_ptr, /* current line artwork table */ 9 77 3 epftrptr, /* even page footer block */ 9 78 3 ephdrptr, /* even page header block */ 9 79 3 fcb_ptr, /* input file control block pointer */ 9 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 9 81 3 footnote_header_ptr, /* footnote header "title" */ 9 82 3 graphic_page_ptr, /* graphic output page */ 9 83 3 hit_data_ptr, /* hit data pointer */ 9 84 3 htab_ptr, /* horizontal tab tables */ 9 85 3 hwrd_data_ptr, /* local hyphenation table */ 9 86 3 insert_ptr, /* data entry for current input file */ 9 87 3 opftrptr, /* odd page footer block */ 9 88 3 ophdrptr, /* odd page header block */ 9 89 3 ptb_ptr, /* previous line artwork table */ 9 90 3 spcl_blkptr, /* "special" block pointer */ 9 91 3 tbldata_ptr, /* table column data structure */ 9 92 3 tblkdata_ptr, /* text block data array */ 9 93 3 text_header_ptr /* empty text header structure */ 9 94 ) ptr, 9 95 2 scale, /* space conversion scale factors */ 9 96 3 horz fixed bin (31), /* horizontal */ 9 97 3 vert fixed bin (31), /* vertical */ 9 98 2 source_filename 9 99 char (200) var, /* current source file name */ 9 100 2 sws, /* switch bits */ 9 101 ( 3 bug_mode, /* debug mode */ 9 102 3 compout_not_headed, /* compout is not headed */ 9 103 3 end_input, /* EOF for current input file */ 9 104 3 end_output, /* no more output is wanted */ 9 105 3 firstpass, /* first pass over input */ 9 106 3 ftn_mode, /* in footnote mode */ 9 107 3 hyph_mode, /* hyphenating mode */ 9 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 9 109 3 literal_mode, /* literal line mode flag */ 9 110 3 pageblock, /* blocks belong to page */ 9 111 3 picture_mode, /* building a picture */ 9 112 3 print_flag, /* producing output */ 9 113 3 purge_ftns, /* purging footnotes */ 9 114 3 suppress_footref, /* suppress next footnote ref */ 9 115 3 table_mode /* table mode */ 9 116 ) bit (1) unal, 9 117 3 MBZ bit (21) unal, 9 118 2 trans, /* trans table for .tr */ 9 119 3 in char (128) var, /* input chars */ 9 120 3 out char (128) var, /* output chars */ 9 121 2 widow_size fixed bin (31), /* widow size */ 9 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 9 123 /* to save shared data between files/passes */ 9 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 9 125 9 126 dcl dot_addltr_symb_index 9 127 fixed bin static options (constant) init (12); 9 128 dcl max_text_lines fixed bin static options (constant) init (1000); 9 129 dcl mode_string char (16) static options (constant) 9 130 init ("arbihxocalaurlru"); 9 131 /* value overlays */ 9 132 dcl flag_value bit (1) based; 9 133 dcl num_value fixed bin (31) based; 9 134 9 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 2094 10 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl max_image_lines 10 6 fixed static options (constant) init (1000); 10 7 dcl max_cols fixed static options (constant) init (20); 10 8 10 9 dcl page_version fixed bin static options (constant) init (5); 10 10 /* composed page structure */ 10 11 dcl 1 page aligned based (const.page_ptr), 10 12 2 version fixed bin, /* version of this structure */ 10 13 2 parms aligned like page_parms, 10 14 /* page formatting parameters */ 10 15 2 hdr aligned like page_header, 10 16 /* page control stuff */ 10 17 2 image_ptr ptr, /* pointer to the madeup page image */ 10 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 10 19 2 col_image_ptr 10 20 (-2:21) ptr; /* pointers to column images */ 10 21 /* col -1 is for line numbers and */ 10 22 /* left margin change bars; */ 10 23 /* col -2 is for */ 10 24 /* right margin change bars */ 10 25 /* and/or annotation * / 10 26* /* page control stuff */ 10 27 dcl 1 page_header aligned based (const.page_header_ptr), 10 28 2 sws, 10 29 3 art bit (1) unal, /* 1 = header/footer art */ 10 30 3 blankpage 10 31 bit (1) unal, /* 1 = intentional blank page */ 10 32 3 frontpage 10 33 bit (1) unal, /* 1 = odd page number */ 10 34 3 headed bit (1) unal, /* 1 = page header has been written */ 10 35 3 modified bit (1) unal, /* 1 = page has been modified */ 10 36 3 overflow bit (1) unal, /* OBSOLETE */ 10 37 3 MBZ bit (12) unal, 10 38 3 dot_addltr 10 39 char (1) unal, /* dot page add letter, if any */ 10 40 3 pgc_select 10 41 char (1) unal, /* for selecting change pages */ 10 42 2 baldepth fixed bin (31), /* page depth at balance point */ 10 43 2 balusd fixed bin (31), /* space used at balance point */ 10 44 2 col_count fixed bin, /* highest value of col_index for the page */ 10 45 2 col_index fixed bin, /* column index */ 10 46 2 depth fixed bin (31), /* current page depth */ 10 47 2 hdspc fixed bin (31), /* TOP white space */ 10 48 2 lmarg fixed bin (31), /* left margin for this page */ 10 49 2 net fixed bin (31), /* net usable space on the page */ 10 50 2 pageno char (32) var, /* current page number */ 10 51 2 used fixed bin (31); /* space already used on the page */ 10 52 10 53 dcl page_image_version 10 54 fixed bin (35) static options (constant) init (2); 10 55 /* structure passed to writers */ 10 56 dcl 1 page_image aligned based (page.image_ptr), 10 57 2 version fixed bin (35), /* structure version no */ 10 58 2 count fixed bin, /* count of page image lines */ 10 59 2 file_id char (32) var, /* compout identifier */ 10 60 2 func fixed bin, /* function code; 0 = build, 10 61* 1 = intialize, 2 = cleanup */ 10 62 2 text_ptr ptr, /* pointer to the text area */ 10 63 /* the image lines */ 10 64 2 line (max_image_lines), 10 65 3 sws, 10 66 4 quad bit (6) unal, /* text set position flags */ 10 67 4 art bit (1) unal, /* 1 = artwork in the line */ 10 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 10 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 10 70 4 white bit (1) unal, /* line is white */ 10 71 4 MBZ bit (26) unal, 10 72 3 depth fixed bin (31), /* page depth for the text */ 10 73 3 gaps fixed bin, /* number of WS gaps in the line */ 10 74 3 info like text_entry.info, 10 75 /* input file info */ 10 76 3 lead fixed bin (31), /* lead value if trailing WS */ 10 77 3 lfnt fixed bin, /* font at the left margin */ 10 78 3 lmarg fixed bin (31), /* text left margin position */ 10 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 10 80 3 net fixed bin (31), /* net width for filling */ 10 81 3 pos fixed bin (31), /* current horiz position */ 10 82 3 ptr ptr, /* pointer to the text */ 10 83 3 rmarg fixed bin (31), /* text right margin position */ 10 84 3 width fixed bin (31); /* width of the text */ 10 85 /* current page formatting parms */ 10 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 10 87 2 init_page_depth 10 88 fixed bin (31), /* initial page depth */ 10 89 2 length fixed bin (31), /* page length */ 10 90 2 lmarg, /* page left margin */ 10 91 3 even fixed bin (31), 10 92 3 odd fixed bin (31), 10 93 2 margin, /* margin values */ 10 94 3 top fixed bin (31), 10 95 3 header fixed bin (31), 10 96 3 footer fixed bin (31), 10 97 3 bottom fixed bin (31), 10 98 2 measure fixed bin (31), /* line space available for text */ 10 99 2 net, /* net usable space on page */ 10 100 3 even fixed bin (31), /* even pages */ 10 101 3 odd fixed bin (31), /* odd pages */ 10 102 /* arrays at the end */ 10 103 2 cols, /* columns defined for the page */ 10 104 3 bal bit (1) unal, /* column balancing control flag */ 10 105 3 MBZ bit (17) unal, 10 106 3 count fixed bin unal; /* the number of columns */ 10 107 /* default page formatting parms */ 10 108 dcl 1 init_page_parms 10 109 aligned like page_parms 10 110 based (const.init_page_parms_ptr); 10 111 10 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 2095 11 1 /* BEGIN INCLUDE FILE comp_stack_box.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl arg_count_symb_index 11 6 fixed bin static options (constant) init (2); 11 7 11 8 dcl stkbox_ptr ptr; 11 9 dcl 1 stack_box aligned like init_stack_box based (stkbox_ptr); 11 10 11 11 dcl 1 init_stack_box 11 12 aligned static options (constant), 11 13 2 bthrd ptr init (null ()), 11 14 /* backward thread */ 11 15 2 fthrd ptr init (null ()), 11 16 /* forward thread */ 11 17 2 level fixed bin init (0), 11 18 /* stack level */ 11 19 2 numval fixed bin (31) init (0), 11 20 /* numeric value */ 11 21 2 incrval fixed bin (31) init (0), 11 22 /* counter increment */ 11 23 2 txtstr char (1020) var init (""); 11 24 /* string value */ 11 25 11 26 /* END INCLUDE FILE comp_stack_box.incl.pl1 */ 2096 12 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 12 2 12 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 12 4 12 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 12 6 2 ct fixed bin, /* number of active table formats */ 12 7 2 ndx fixed bin, /* index of current active format */ 12 8 2 fmt (20), /* the format */ 12 9 3 name char (32) var, /* name of the format */ 12 10 3 ptr ptr; /* pointer to the format data */ 12 11 12 12 dcl tblfmtndx fixed bin; /* current table format index */ 12 13 dcl tblfmtptr ptr; /* -> current table format */ 12 14 /* table format data */ 12 15 dcl 1 tblfmt aligned based (tblfmtptr), 12 16 2 context bit (1), /* =1 if context mode */ 12 17 2 ccol fixed bin, /* the current table column */ 12 18 2 maxdepth fixed bin (31), /* max depth in table */ 12 19 2 ncols fixed bin, /* number of columns in this format */ 12 20 2 colptr (0:20) ptr; /* pointers to the columns */ 12 21 12 22 dcl tblcolndx fixed bin; /* current table column index */ 12 23 /* -> current table column */ 12 24 dcl tblcolptr ptr init (null ()); 12 25 /* table column data */ 12 26 dcl 1 tblcol aligned based (tblcolptr), 12 27 2 align, /* column alignment mode */ 12 28 3 posn fixed bin (31), 12 29 3 str char (32) var, 12 30 2 depth fixed bin (31), /* current depth for column */ 12 31 2 gutter fixed bin (31), 12 32 2 leader char (16) var, /* leadering string */ 12 33 2 margin, 12 34 3 left fixed bin (31), 12 35 3 right fixed bin (31), 12 36 2 valign bit (4) unal, /* vertical alignment flags */ 12 37 2 MBZ bit (29) unal, 12 38 2 parms /* parms for columns */ 12 39 aligned like default_parms; 12 40 12 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 12 42 /* -> previous table column */ 12 43 dcl prvtblcolptr ptr init (null ()); 12 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 12 45 12 46 dcl vtop bit (4) static options (constant) init ("1000"b); 12 47 dcl vcen bit (4) static options (constant) init ("0100"b); 12 48 dcl vbot bit (4) static options (constant) init ("0010"b); 12 49 dcl vjust bit (4) static options (constant) init ("0001"b); 12 50 12 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 2097 13 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 13 2 13 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 4 13 5 dcl 1 tblkdata /* data for allocated text blocks */ 13 6 aligned based (shared.tblkdata_ptr), 13 7 2 block, /* block pool */ 13 8 3 count fixed bin, 13 9 3 ptr (500) ptr, /* block pointers */ 13 10 /* block state flags */ 13 11 3 free (500) bit (1) unal, 13 12 2 line_area, /* line area pool */ 13 13 3 count fixed bin, 13 14 3 ptr (500) ptr, /* area pointers */ 13 15 /* area state flags */ 13 16 3 free (500) bit (1) unal, 13 17 2 text_area, /* text area pool */ 13 18 3 count fixed bin, 13 19 3 ptr (500) ptr, /* area pointers */ 13 20 /* area state flags */ 13 21 3 free (500) bit (1) unal, 13 22 3 string_area_count 13 23 fixed bin; /* line areas */ 13 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 13 25 dcl line_area_ptr ptr init (null); 13 26 dcl 1 line_area aligned based (line_area_ptr), 13 27 2 next ptr, /* forward thread */ 13 28 2 prev ptr, /* backward thread */ 13 29 2 count fixed bin, /* number of lines allocated */ 13 30 2 ndx fixed bin, /* index of current line */ 13 31 2 pndx fixed bin, /* area pool index */ 13 32 2 linptr (LINE_AREA_SIZE) ptr; 13 33 /* text areas */ 13 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 13 35 dcl text_area_ptr ptr init (null); 13 36 dcl 1 text_area aligned based (text_area_ptr), 13 37 2 next ptr, /* forward thread */ 13 38 2 count fixed bin, /* number of areas allocated */ 13 39 2 ndx fixed bin, /* index of current strarea */ 13 40 2 pndx fixed bin, /* area pool index */ 13 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 13 42 /* text string area */ 13 43 dcl string_area (256) fixed bin based; 13 44 dcl txtstrptr ptr; /* current text string */ 13 45 dcl txtstr char (1020) var based (txtstrptr); 13 46 13 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 13 48 /* general text block */ 13 49 dcl 1 text aligned based (shared.blkptr), 13 50 2 version fixed bin, /* version of structure */ 13 51 2 blkndx fixed bin, /* block data index */ 13 52 2 blktype char (2), /* block type code */ 13 53 /* dynamic block control stuff */ 13 54 2 hdr aligned like text_header, 13 55 /* text read from input file */ 13 56 2 input aligned like text_entry, 13 57 2 input_line char (1020) var,/* input buffer */ 13 58 2 line_area, 13 59 3 first ptr, /* head of line area thread */ 13 60 3 cur ptr, /* current line area */ 13 61 2 next_text ptr, /* next text string */ 13 62 /* text formatting parameters */ 13 63 2 parms aligned like default_parms, 13 64 2 text_area, 13 65 3 first ptr, /* head of text area thread */ 13 66 3 cur ptr; /* current text area */ 13 67 /* an empty text block line */ 13 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 13 69 2 sws, /* unaligned switches, etc. */ 13 70 3 art bit (1) unal, /* line has artwork */ 13 71 3 cbar, /* change bar flags */ 13 72 4 add bit (1) unal, /* text addition flag */ 13 73 4 del bit (1) unal, /* text deletion flag */ 13 74 4 mod bit (1) unal, /* text modification flag */ 13 75 3 default bit (1) unal, /* 1 = default case as needed */ 13 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 13 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 13 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 13 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 13 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 13 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 13 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 13 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 13 84 3 oflo bit (1) unal, /* line causes overflow */ 13 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 13 86 3 quad bit (6) unal, /* text alignment flags */ 13 87 3 space_added /* 1= line has added space */ 13 88 bit (1) unal, 13 89 3 spcl, /* special entry - not output text */ 13 90 4 file bit (1) unal, /* 1= output to special file */ 13 91 4 blk_splt /* 1= action at block split time */ 13 92 bit (1) unal, 13 93 4 page_mkup /* 1= action at page makeup time */ 13 94 bit (1) unal, 13 95 3 table bit (1) unal, /* 1= line is a table entry */ 13 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 13 97 3 title bit (1) unal, /* 1= line is a */ 13 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 13 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 13 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 13 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 13 102 3 white bit (1) unal, /* 1= line is white space */ 13 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 13 104 3 MBZ bit (4) unal, 13 105 2 art_start fixed bin unal, /* start of art string in line */ 13 106 2 art_len fixed bin unal, /* length of art string in line */ 13 107 2 cbar_level /* change level for cbars */ 13 108 char (1) aligned, 13 109 2 cur, /* current scanning data for line */ 13 110 3 chrct fixed bin, /* count of chars scanned */ 13 111 3 gaps fixed bin, /* gap count */ 13 112 3 width fixed bin (31), /* width of font chars */ 13 113 3 min fixed bin (31), /* width of min spbnds */ 13 114 3 avg fixed bin (31), /* width of avg spbnds */ 13 115 3 max fixed bin (31), /* width of max spbnds */ 13 116 3 font like fntstk_entry, 13 117 2 depth fixed bin (31), /* page depth for line */ 13 118 /* font at start of line */ 13 119 2 font like fntstk_entry, 13 120 2 index fixed bin (21), /* char index for line scanning */ 13 121 2 info, /* stuff created during line input */ 13 122 3 fileno fixed bin, /* input file index */ 13 123 3 lineno fixed bin, /* input file line number */ 13 124 3 lineno0 fixed bin, /* call_box0 line number */ 13 125 2 linespace fixed bin (31), /* linespace value for the line */ 13 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 13 127 2 mod_len fixed bin, /* length of modified text */ 13 128 2 mod_start fixed bin, /* index for start of modified text */ 13 129 2 net fixed bin (31), /* net line width for filling */ 13 130 2 ptr ptr, /* pointer to the actual text */ 13 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 13 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 13 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 13 134 2 tblcol fixed bin, /* column for table entries */ 13 135 2 title_delim 13 136 char (1) unal, /* title delimiter if a <title> */ 13 137 2 title_index 13 138 fixed bin, /* <title> block index for line */ 13 139 2 width fixed bin (31), /* width of text */ 13 140 2 ftn, /* footnote info for line */ 13 141 3 ct fixed bin, /* number of footnote refs */ 13 142 3 used fixed bin (31), /* space used */ 13 143 3 e (40), /* limit is arbitrary */ 13 144 4 blkndx fixed bin unal, /* block index of footnote - if this 13 145* value is 0, then .frf was used */ 13 146 4 refno fixed bin unal; /* reference number */ 13 147 13 148 dcl ( 13 149 quadi init ("40"b3), /* set to the inside margin */ 13 150 quado init ("20"b3), /* set to the outside margin */ 13 151 quadl init ("10"b3), /* set left */ 13 152 quadc init ("04"b3), /* set centered */ 13 153 quadr init ("02"b3), /* set right */ 13 154 just init ("01"b3) /* justified */ 13 155 ) bit (6) static options (constant); 13 156 /* control line structure */ 13 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 13 158 dcl ctl_line char (1020) var based (ctl.ptr); 13 159 13 160 dcl txtlinptr ptr; /* the current text line */ 13 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 13 162 /* empty text header structure */ 13 163 dcl 1 text_header aligned based (const.text_header_ptr), 13 164 2 sws, /* control switches */ 13 165 3 art bit (1) unal, /* block has artwork */ 13 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 13 167 3 modified bit (1) unal, /* block contains modified lines */ 13 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 13 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 13 170 3 tblblk bit (1) unal, /* a table block */ 13 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 13 172 3 white bit (1) unal, /* block is a white space block */ 13 173 3 picture bit (1) unal, /* picture block */ 13 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 13 175 3 MBZ bit (26) unal, 13 176 2 art_count fixed bin unal, /* to count input art lines */ 13 177 2 blkptr ptr, /* pointer to suspended block */ 13 178 2 cap_size fixed bin unal, /* line count of text caption */ 13 179 2 cap_used fixed bin (31), /* size of text caption */ 13 180 2 colno fixed bin unal, /* column owning the block */ 13 181 2 count fixed bin unal, /* line count for block */ 13 182 2 eqn_line_count 13 183 fixed bin unal, /* counter for equation lines */ 13 184 2 first_text fixed bin unal, /* OBSOLETE */ 13 185 2 ftn, /* footnotes */ 13 186 3 ct fixed bin, /* count */ 13 187 3 usd fixed bin (31), /* space used */ 13 188 3 blkndx (40) fixed bin, /* footnote block index values */ 13 189 2 head_size fixed bin, /* line count of text header */ 13 190 2 head_used fixed bin (31), /* size of text header */ 13 191 2 index fixed bin unal, /* block index of next output line */ 13 192 2 keep_count fixed bin unal, /* to count input keep lines */ 13 193 2 last_line fixed bin, /* last text line in column */ 13 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 13 195 2 name char (32) var, /* block name, if any */ 13 196 2 nofill_count /* to count nofill lines */ 13 197 fixed bin, 13 198 2 parms_ptr ptr, /* parms for suspended block */ 13 199 2 refer fixed bin, /* inter-block reference */ 13 200 2 refer_index /* OBSOLETE */ 13 201 fixed bin, /* a reference */ 13 202 2 split fixed bin, /* split point for balancing */ 13 203 2 trl_ws fixed bin (31), /* trailing WS */ 13 204 2 used fixed bin (31); /* page space used by a column/block */ 13 205 /* text formatting parameters */ 13 206 dcl 1 text_parms aligned like default_parms 13 207 based (const.text_parms_ptr); 13 208 13 209 dcl 1 current_parms 13 210 aligned like default_parms 13 211 based (const.current_parms_ptr); 13 212 13 213 dcl 1 default_parms 13 214 aligned based (const.default_parms_ptr), 13 215 2 sws, /* control switches */ 13 216 3 quad bit (6) unal, /* text alignment mode */ 13 217 3 art bit (1) unal, /* 1 = block countains artwork */ 13 218 3 cbar, /* change bar flags */ 13 219 4 add bit (1) unal, /* text addition flag */ 13 220 4 del bit (1) unal, /* text deletion flag for next line */ 13 221 4 mod bit (1) unal, /* text modification flag */ 13 222 3 fill_mode 13 223 bit (1) unal, /* 1 = fill mode ON */ 13 224 3 footnote bit (1) unal, /* block is a footnote */ 13 225 3 hfc bit (1) unal, /* OBSOLETE */ 13 226 3 htab_mode 13 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 13 228 3 keep bit (1) unal, /* keep mode */ 13 229 3 page bit (1) unal, /* block belongs to page, not text */ 13 230 3 title_mode 13 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 13 232 3 MBZ bit (19) unal, 13 233 2 ftrptr ptr, /* text caption block */ 13 234 2 cbar_level /* change level for cbars */ 13 235 char (1) aligned, 13 236 2 hdrptr ptr, /* text header block */ 13 237 2 left, /* left margin data */ 13 238 3 indent fixed bin (31), 13 239 3 undent fixed bin (31), 13 240 2 linespace fixed bin (31), /* line spacing value */ 13 241 2 measure fixed bin (31), /* line space for text */ 13 242 /* right margin data */ 13 243 2 right like default_parms.left, 13 244 2 fntstk, /* stack of last 20 font changes */ 13 245 3 index fixed bin, /* which one in use */ 13 246 /* entry(0) is the default */ 13 247 3 entry (0:19) like fntstk_entry; 13 248 13 249 dcl hfcblk_ptr ptr; 13 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 13 251 13 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 2098 14 1 /* BEGIN INCLUDE FILE comp_tree.incl.pl1 */ 14 2 14 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 14 4 14 5 dcl 1 tree /* symbol tree structure */ 14 6 based (const.tree_ptr) aligned, 14 7 ( 2 align_mode, /* current text alignment mode */ 14 8 2 art_mode, /* artwork mode */ 14 9 2 block_index, /* current block index */ 14 10 2 block_name, /* name of current block */ 14 11 2 bottom_margin, /* page bottom margin */ 14 12 2 calling_file_name, /* caller of inserted file */ 14 13 2 callers_lineno, /* lineno of .ifi in calling file */ 14 14 2 devclass, /* DeviceClass */ 14 15 2 devname, /* DeviceName */ 14 16 2 dot_addltr, /* add letter of dot page */ 14 17 2 equation_mode, /* equation mode */ 14 18 2 fill_mode, /* text filling mode */ 14 19 2 fontname, /* fontname function */ 14 20 2 footer_margin, /* page footer margin function */ 14 21 2 frontpage, /* front page flag function */ 14 22 2 head_space, /* head space function */ 14 23 2 header_margin, /* page header margin function */ 14 24 2 keep_mode, /* block splitting mode */ 14 25 2 left_indent, /* left margin indention */ 14 26 2 left_undent, /* left margin adjustment */ 14 27 2 line_input, /* line input function */ 14 28 2 linesleft, /* lines left function */ 14 29 2 linespace, /* linespace function */ 14 30 2 measure_bif, /* measure function */ 14 31 2 next_pageno, /* next page number */ 14 32 2 pagecount, /* total page count function */ 14 33 2 pagelines, /* line number on page function */ 14 34 2 page_length, /* current page length function */ 14 35 2 pageno, /* page number function */ 14 36 2 pointsize, /* pointsize function */ 14 37 2 right_indent, /* right margin indention */ 14 38 2 right_undent, /* right margin adjustment */ 14 39 2 symbol_delimiter, /* symbol delimiter function */ 14 40 2 text_depth, /* text depth function */ 14 41 2 text_lineno, /* input file line number for output_line */ 14 42 2 text_width, /* text width function */ 14 43 2 title_delimiter, /* title delimiter function */ 14 44 2 top_margin, /* page top margin function */ 14 45 2 trans, /* translation table for .trf */ 14 46 2 userinput /* terminal insert function */ 14 47 ) label, /**/ 14 48 /* VARIABLE TABLES */ 14 49 2 count fixed bin, /* variable areas allocated */ 14 50 2 areandx fixed bin, /* current area */ 14 51 /* entry count per area */ 14 52 2 entry_ct (MAX_TREE_AREAS) fixed bin, 14 53 2 entryndx fixed bin, /* current entry in area */ 14 54 ( /* storage area pointers */ 14 55 2 flag_ptr, /* flags */ 14 56 2 name_ptr, /* names */ 14 57 2 num_ptr, /* number values */ 14 58 2 incr_ptr, /* counter increments */ 14 59 2 var_ptr /* variable structures */ 14 60 ) ptr dimension (MAX_TREE_AREAS); 14 61 /* flag values */ 14 62 dcl tree_flags (MAX_TREE_AREA_CT) bit (1) aligned 14 63 based (tree.flag_ptr (tree.areandx)); 14 64 /* counter increment values */ 14 65 dcl tree_incrs (MAX_TREE_AREA_CT) fixed bin (31) 14 66 based (tree.incr_ptr (tree.areandx)); 14 67 /* variable names */ 14 68 dcl tree_names_ptr ptr init (null); 14 69 dcl tree_names (MAX_TREE_AREA_CT) char (32) unal 14 70 based (tree_names_ptr); 14 71 /* numeric values */ 14 72 dcl tree_nums (MAX_TREE_AREA_CT) fixed bin (31) 14 73 based (tree.num_ptr (tree.areandx)); 14 74 14 75 dcl tree_var_ptr ptr init (null);/* variable entry structures */ 14 76 dcl 1 tree_var (MAX_TREE_AREA_CT) aligned based (tree_var_ptr), 14 77 2 flags bit (9) aligned,/* type flags */ 14 78 2 mode fixed bin, /* numeric display mode */ 14 79 2 flag_loc ptr, /* flag value pointer */ 14 80 2 num_loc ptr, /* num value pointer */ 14 81 2 incr_loc ptr, /* num increment pointer */ 14 82 2 str_loc ptr; /* str value pointer */ 14 83 14 84 /* END INCLUDE FILE comp_tree.incl.pl1 */ 2099 15 1 /* BEGIN INDCLUDE FILE comp_varattrs.incl.pl1 */ 15 2 15 3 /* Written - 4/82 - EJW 15 4* 15 5* Defines constants for all variable attribute flag bits in compose */ 15 6 15 7 /* Modified - 5/83 - EJW - Changed binary_attr to unscaled_attr */ 15 8 15 9 dcl (numeric_attr init ("100000000"b), /* binary numeric */ 15 10 counter_attr init ("010000000"b), /* counter */ 15 11 string_attr init ("001000000"b), /* string */ 15 12 flag_attr init ("00010000"b), /* flag */ 15 13 unscaled_attr init ("000010000"b), /* unscaled numeric */ 15 14 function_attr init ("000001000"b), /* function value */ 15 15 hspace_attr init ("000000100"b), /* horizontal millipoint value */ 15 16 vspace_attr init ("000000010"b), /* vertical millipoint value */ 15 17 push_attr init ("000000001"b)) /* pushable variable */ 15 18 bit (9) unal static options (constant); 15 19 15 20 /* END INCLUDE FILE comp_varattrs.incl.pl1 */ 2100 16 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 16 2* 16 3* This storage is converted from external (as declared) to internal by the 16 4* binder and contains items that must be accessible to both the bound and 16 5* unbound program. */ 16 6 16 7 /* Written: ??/??/7? - EJW 16 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 16 9* and removed the codes array; version 6. 16 10**/ 16 11 16 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 16 13 16 14 dcl 1 compstat$compconst 16 15 aligned like const ext static; 16 16 16 17 dcl const_version fixed bin (35) static options (constant) init (6); 16 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 16 19 fixed bin static options (constant) init (80); 16 20 dcl MAX_TREE_AREAS /* number of tree areas */ 16 21 fixed bin static options (constant) init (20); 16 22 16 23 dcl 1 const aligned based (compstat$compconst.ptr), 16 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 16 25 2 version fixed bin (35), /* structure version */ 16 26 2 art_symbols /* string of art symbols */ 16 27 char (28) aligned, 16 28 2 builtin_count /* count of builtin variables */ 16 29 fixed bin, 16 30 2 comp_dir char (200), /* dir in which compose lives */ 16 31 2 comp_version 16 32 char (8) var, /* compose version id */ 16 33 2 date_value char (8) var, /* current date */ 16 34 2 dsm_name char (32), /* device support module name */ 16 35 2 dvt_name char (32), /* device table name */ 16 36 2 max_seg_chars 16 37 fixed bin (35), /* char count in a max seg */ 16 38 2 null_str char (1) var, /* an empty string */ 16 39 2 ptrs, 16 40 ( 3 call_stk_ptr, /* -> insert call stack */ 16 41 3 colhdrptr, /* empty column header structure */ 16 42 3 ctl_ptr, /* input line structure */ 16 43 3 current_parms_ptr, /* current formatting parms */ 16 44 3 default_parms_ptr, /* default initial text parms */ 16 45 3 devptr, /* -> comp_dvt structure */ 16 46 3 dvidptr, /* -> comp_dvid structure */ 16 47 3 errblk_ptr, /* error message block pointer */ 16 48 3 footnote_parms_ptr, /* footnote formatting parms */ 16 49 3 fnttbldata_ptr, /* -> font table data */ 16 50 3 global_area_ptr, /* per invocation storage */ 16 51 3 init_page_parms_ptr, /* default initial page parms */ 16 52 3 insert_data_ptr, /* insert file data block */ 16 53 3 local_area_ptr, /* per file storage */ 16 54 3 loctbl_ptr, /* for font copying */ 16 55 3 option_ptr, /* program options block */ 16 56 3 outproc_ptr, /* device writer for cleanup */ 16 57 3 page_ptr, /* active page structure */ 16 58 3 page_header_ptr, /* empty page header structure */ 16 59 3 page_parms_ptr, /* page formatting parameter block */ 16 60 3 save_shared_ptr, /* saved shared data */ 16 61 3 shared_ptr, /* shared data structure */ 16 62 3 text_entry_ptr, /* empty text entry structure */ 16 63 3 text_header_ptr, /* empty text header structure */ 16 64 3 text_parms_ptr, /* main body formatting parms */ 16 65 3 tree_ptr /* symbol tree structure */ 16 66 ) ptr, 16 67 2 time_value char (6) var; /* time at start */ 16 68 16 69 /* Other external */ 16 70 dcl ( 16 71 ioa_, 16 72 ioa_$nnl 16 73 ) entry options (variable); 16 74 dcl iox_$error_output 16 75 ptr ext static, /* iocb pointer for error_output */ 16 76 iox_$user_input 16 77 ptr ext static, /* iocb pointer for user_input */ 16 78 iox_$user_output 16 79 ptr ext static; /* iocb pointer for user_output */ 16 80 dcl sys_info$max_seg_size 16 81 fixed bin (18) ext static; 16 82 16 83 /* END INCLUDE FILE compstat.incl.pl1 */ 2101 17 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 17 2 17 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 4 /* */ 17 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 17 6 /* */ 17 7 /* This include segment allocates space in a translator's temporary segment. It */ 17 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 17 9 /* internal procedure in the program which includes this include segment. The temporary */ 17 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 17 11 /* */ 17 12 /* S__t_a_t_u_s */ 17 13 /* */ 17 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 17 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 17 16 /* */ 17 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 18 17 19 17 20 17 21 allocate: procedure (Parea, ANwords) returns (ptr); 17 22 17 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 17 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 17 25 17 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 17 27 /* to a 0 mod 2 quantity. */ 17 28 P ptr, /* a temporary pointer. */ 17 29 code fixed bin(35), /* a status code. */ 17 30 (mod, null, ptr) builtin; 17 31 17 32 dcl 1 area based (Parea), 17 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 17 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 17 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 17 36 17 37 dcl translator_temp_$get_next_segment 17 38 entry (ptr, ptr, fixed bin(35)); 17 39 17 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 17 41 if Nwords > Lfree then do; /* handle area overflow. */ 17 42 call translator_temp_$get_next_segment (Parea, P, code); 17 43 if P = null then return (null); 17 44 Parea = P; 17 45 if Nwords > area.Lfree then return (null); 17 46 end; 17 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 17 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 17 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 17 50 return (P); 17 51 17 52 end allocate; 17 53 17 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 2102 2103 2104 end comp_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0910.7 comp_util_.pl1 >spec>online>comp>comp_util_.pl1 2086 1 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 2087 2 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 2088 3 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 2089 4 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 2090 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 2091 6 04/23/85 0912.3 comp_font.incl.pl1 >spec>online>comp>comp_font.incl.pl1 2092 7 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 2093 8 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 2094 9 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 2095 10 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 2096 11 03/01/85 1412.0 comp_stack_box.incl.pl1 >ldd>include>comp_stack_box.incl.pl1 2097 12 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 2098 13 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 2099 14 03/01/85 1412.0 comp_tree.incl.pl1 >ldd>include>comp_tree.incl.pl1 2100 15 03/01/85 1412.0 comp_varattrs.incl.pl1 >ldd>include>comp_varattrs.incl.pl1 2101 16 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 2102 17 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 17-23 ref 17-21 17-40 17-40 BSP constant char(1) initial unaligned dcl 7-6 ref 987 CREATE constant bit(1) initial unaligned dcl 48 ref 1370 DC1 023262 constant char(1) initial unaligned dcl 7-6 ref 934 939 1438 1737 DCxx_p 006532 automatic pointer dcl 2-8 set ref 1740* 1742 1742 1742 1742 1742 1746 1746 1746 1746 1746 1750 1750 1750 1750 1750 1754 1754 1754 1754 1754 1758 1758 1758 1758 1758 1758 1763 1766 1769 1772 EM constant char(1) initial unaligned dcl 7-6 ref 968 1709 EMdash constant char(1) initial unaligned dcl 7-6 ref 980 1713 EN constant char(1) initial unaligned dcl 7-6 ref 971 1707 ENd constant char(1) initial unaligned dcl 7-6 ref 984 1711 FF constant char(1) initial unaligned dcl 7-6 ref 999 HT constant char(1) initial unaligned dcl 7-6 ref 996 LINE_AREA_SIZE constant fixed bin(17,0) initial dcl 13-24 ref 214 214 219 1881 Lfree 2 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-41 17-45 17-49* 17-49 MAX_TREE_AREAS constant fixed bin(17,0) initial dcl 16-20 ref 1077 1078 1080 1080 1081 1084 1092 1095 1102 1102 1102 1104 1104 1107 1107 1107 1107 1107 1107 1107 1107 1107 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1109 1111 1111 1111 1111 1111 1116 1118 1118 1119 1120 1120 1120 1120 1120 1121 1122 1124 1124 1124 1125 1126 1126 1126 1126 1126 1127 1128 1128 1128 1128 1128 1128 1129 1130 1132 1139 1139 1142 1318 1318 1318 1318 1318 1320 1323 1323 1329 1329 1331 1331 1334 1336 1336 1340 1350 1352 1352 1355 1355 1372 1385 1385 1385 1385 1385 1387 1387 1387 1392 1392 1395 1395 1395 1402 1402 1402 1406 1406 1406 1406 MAX_TREE_AREA_CT constant fixed bin(17,0) initial dcl 16-18 ref 1081 1089 1095 1102 1102 1104 1104 1106 1107 1107 1109 1109 1111 1111 NL 023263 constant char(1) initial unaligned dcl 7-6 ref 990 1819 1819 Nwords 006752 automatic fixed bin(17,0) dcl 17-26 set ref 17-40* 17-41 17-45 17-48 17-49 Ofree 1 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-47 17-48* 17-48 P 006754 automatic pointer dcl 17-26 set ref 17-42* 17-43 17-44 17-47* 17-50 Parea parameter pointer dcl 17-23 set ref 17-21 17-41 17-42* 17-44* 17-45 17-47 17-47 17-48 17-48 17-49 17-49 TEXT_AREA_SIZE constant fixed bin(17,0) initial dcl 13-34 ref 259 259 263 1959 abrt_sw 000010 internal static bit(1) initial unaligned dcl 36 set ref 2079* 2083* add 1005 based bit(1) level 5 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 376 add 1 based bit(1) level 4 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" ref 376 424 add 1 based bit(1) level 4 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1899 2048 addrel builtin function dcl 81 ref 2024 aline based structure level 1 dcl 1845 set ref 1897 aline_ptr parameter pointer dcl 1844 ref 1841 1897 1905 1905 1908 1909 alpha_repl 001066 constant char(26) initial array unaligned dcl 670 ref 824 area based structure level 1 unaligned dcl 17-32 areandx 241 based fixed bin(17,0) level 2 dcl 14-5 set ref 1078* 1080* 1087* 1089 1101* 1102 1102 1102 1104 1107 1107 1107 1109 1109 1109 1111 1113 1116 1116 1118 1120 1124 1126 1128 1137* 1137 1142* 1318 1355* 1385 arearel 006730 automatic fixed bin(18,0) unsigned dcl 1851 set ref 1951* 1953 1974* art 0(06) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 13-209 in procedure "comp_util_" ref 1909 art based bit(1) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" set ref 364* 376 424* art based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1908* 1908 1990* 2048* art 0(06) based bit(1) level 3 in structure "blk_parms" packed unaligned dcl 40 in procedure "comp_util_" ref 111 art based bit(1) level 3 in structure "aline" packed unaligned dcl 1845 in procedure "put_line" set ref 1908 1909* art 4 based bit(1) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 111* 376 art_cbar_line 000011 internal static varying char(1020) initial dcl 37 set ref 390 390 396 396 art_cbar_space 000100 automatic fixed bin(31,0) dcl 38 set ref 385* 387 387 392 392* 396 396* art_cbar_sw 000101 automatic bit(1) unaligned dcl 39 set ref 376* 379 avg 14 based fixed bin(31,0) level 3 dcl 13-161 set ref 1993 bad_stack_pop 004750 stack reference condition dcl 1368 ref 1379 balftn 320 based structure level 3 in structure "col0" dcl 1-37 in procedure "comp_util_" balftn 2 based structure level 2 in structure "colhdr" dcl 1-21 in procedure "comp_util_" balftn 320 based structure level 3 in structure "col" dcl 1-5 in procedure "comp_util_" balftn 320 based structure level 3 in structure "locol" dcl 53 in procedure "comp_util_" bin builtin function dcl 81 ref 939 1029 1450 1950 1951 1974 blk 3646 based structure array level 3 dcl 9-7 set ref 467* 505* 518* 518 519* blk_parms based structure level 1 dcl 40 ref 100 blk_parms_ptr parameter pointer dcl 19 ref 86 100 111 blkct 373 based fixed bin(17,0) level 3 in structure "locol" dcl 53 in procedure "comp_util_" set ref 93 93* blkct 373 based fixed bin(17,0) level 3 in structure "col" dcl 1-5 in procedure "comp_util_" set ref 293* 293 300 459* 459 460 blkndx 1 based fixed bin(17,0) level 2 in structure "block" dcl 41 in procedure "comp_util_" set ref 126* 303* 324 353* 424* 2035* blkndx 1 based fixed bin(17,0) level 2 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 160* blkptr based pointer array level 2 in structure "col" dcl 1-5 in procedure "comp_util_" set ref 460* blkptr based pointer array level 2 in structure "locol" dcl 53 in procedure "comp_util_" set ref 94* blkptr parameter pointer dcl 19 in procedure "comp_util_" set ref 86 94* 97* 100 101 101 105 106 107 110 111 112 113 114 115 115 117 118 118 119 119 120 120 121 122 122 122 122 124 126 126 126 126 126 126 288 290 303 303 308 314 314 316 322 322 324 326* 330 333 353 353 353 353 353 353 353 353 353 360 376 376 405 411 414 424 424 424 424 442 447 447 447 450 455 489* 1865 1866 1873 1875 1875 1881 1881 1899 1899 1902 1904 1913 1921 1921 1927 1927 1929 1929 1931 1933 1950 1959 1959 1973 1974 1977 2006 2007 2007 2011 2015 2015 2016 2019 2024 2024 2035 2035 2035 2035 2035 2035 2035 2044 blkptr 3752 based pointer level 3 in structure "shared" dcl 9-7 in procedure "comp_util_" ref 155 155 494 blktype parameter char(2) dcl 19 in procedure "comp_util_" ref 86 114 blktype 2 based char(2) level 2 in structure "block" dcl 41 in procedure "comp_util_" set ref 114* 126* 303* 353* 405 424* 2007 2007* 2035* blktype 2 based char(2) level 2 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 159* block based structure level 1 dcl 41 in procedure "comp_util_" block based structure level 2 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" bottom 7 based fixed bin(31,0) level 3 dcl 10-86 ref 553 bthrd based pointer initial level 2 dcl 11-9 set ref 1347* 1387 buffer parameter varying char dcl 922 set ref 917 926 928* 1023* 1055* 1060* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 9-7 ref 126 297 350 424 450 498 525 648 928 1057 1074 1142 1169 1252 1271 1304 1315 1355 1398 1429 1467 2032 cbar 1 based structure level 3 in structure "text_parms" dcl 13-206 in procedure "comp_util_" cbar 1 based structure level 3 in structure "line" dcl 51 in procedure "comp_util_" cbar 1 based structure level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" cbar 1 based structure level 3 in structure "aline" dcl 1845 in procedure "put_line" cbar 1005 based structure level 4 in structure "block" dcl 41 in procedure "comp_util_" cbar_type 2 based varying char(4) level 2 dcl 9-7 set ref 1902* ccol 1 based fixed bin(17,0) level 2 dcl 12-15 ref 340 419 ch 005356 automatic char(1) unaligned dcl 1485 set ref 1670* 1672 1672 1686 1699 1737 1777 1783 1786 1789 1794 1808 1808 1811 1811 1819 char builtin function dcl 81 ref 146 205 250 710 722 char_index 000102 automatic fixed bin(17,0) dcl 43 set ref 1018* 1029* 1029 1033 chars 1 based char(1020) level 2 packed unaligned dcl 1858 set ref 1979* 1996* cmode 000105 automatic fixed bin(17,0) dcl 47 set ref 1011* 1016* 1029 code 006756 automatic fixed bin(35,0) dcl 17-26 set ref 17-42* codes 000005 constant char(1) initial array level 2 packed unaligned dcl 1495 ref 1794 1795 col based structure level 1 dcl 1-5 col0 based structure level 1 dcl 1-37 col_count 20 based fixed bin(17,0) level 3 dcl 10-11 ref 621 621 col_index 21 based fixed bin(17,0) level 3 dcl 10-11 set ref 405 648* colblkndx 000103 automatic fixed bin(17,0) dcl 44 set ref 93* 94 colhdr based structure level 1 dcl 1-21 colhdrptr 130 based pointer level 3 dcl 16-23 ref 616 618 collft 000104 automatic fixed bin(31,0) dcl 46 set ref 445* 447* 447 450* 450* 471 477 479* 479 colno 12 based fixed bin(17,0) level 3 packed unaligned dcl 41 set ref 112* 353 353* 424* colptr 4 based pointer array level 2 in structure "tblfmt" dcl 12-15 in procedure "comp_util_" ref 341 420 colptr 3754 based pointer level 3 in structure "shared" dcl 9-7 in procedure "comp_util_" ref 405 445 445 445 459 459 460 460 461 461 625 625 648 648 648 648 648 648 1933 1933 1933 cols 14 based structure level 3 dcl 10-11 column_ptr 42 based pointer array level 2 dcl 10-11 ref 92 293 293 300 624 636 641 642 642 comp_abort 004624 stack reference condition dcl 84 ref 150 209 254 1381 comp_dvt based structure level 1 dcl 3-19 comp_measure_ 000416 constant entry external dcl 4-48 ref 1990 comp_read_$number 000420 constant entry external dcl 4-53 ref 1185 1217 comp_report_ 000422 constant entry external dcl 4-59 ref 146 205 250 572 600 1023 1375 comp_report_$ctlstr 000424 constant entry external dcl 4-61 ref 1095 1195 1205 1227 1237 1945 comp_util_$add_text 000426 constant entry external dcl 4-75 ref 489 comp_util_$display 000430 constant entry external dcl 4-77 ref 928 1060 1429 1467 2048 comp_util_$escape 000432 constant entry external dcl 4-80 ref 2002 comp_util_$num_display 000434 constant entry external dcl 4-84 ref 1280 1297 comp_util_$relblk 000436 constant entry external dcl 4-94 ref 504 comp_util_$search_tree 000440 constant entry external dcl 4-98 ref 1370 comp_util_$translate 000442 constant entry external dcl 4-106 ref 1996 compstat$compconst 000444 external static structure level 1 dcl 16-14 const based structure level 1 dcl 16-23 context based bit(1) level 2 dcl 12-15 ref 339 count 1770 based fixed bin(17,0) level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 194 199 202 213 213* count 2 based fixed bin(17,0) level 2 in structure "text_area" dcl 13-36 in procedure "comp_util_" set ref 265* 1956 1959 1964 1964* count based fixed bin(17,0) level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 135 140 143 154 154* 303* count 3644 based fixed bin(17,0) level 3 in structure "shared" dcl 9-7 in procedure "comp_util_" set ref 450* 458 468* 477 511 515 515 522* 522 525* count 3760 based fixed bin(17,0) level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 239 244 247 258 258* count 14(18) based fixed bin(17,0) level 4 in structure "page" packed unaligned dcl 10-11 in procedure "comp_util_" ref 638 638 count 4 based fixed bin(17,0) level 2 in structure "line_area" dcl 13-26 in procedure "comp_util_" set ref 217* 1877 1881 1885 1888* 1888 1889 count 240 based fixed bin(17,0) level 2 in structure "tree" dcl 14-5 in procedure "comp_util_" set ref 1078 1087 1092 1101 1101* count 12(18) based fixed bin(17,0) level 3 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 353* 1875* 1875 2035* create parameter bit(1) unaligned dcl 1072 set ref 1067 1074* 1084 ct 005357 automatic fixed bin(17,0) dcl 1486 in procedure "comp_util_" set ref 1702* 1718* 1723* 1725 1725* 1727* 1727 1729 1729* 1734 1777* 1779 1779* 1781* 1781 1786 1786* 1800 1800* 1808 1808* 1816 ct 205 based fixed bin(17,0) level 3 in structure "line" dcl 51 in procedure "comp_util_" set ref 353 353* ctl based structure level 1 dcl 13-157 ctl_decode 000761 constant varying char(3) initial array dcl 1487 set ref 1786* 1789 ctl_line based varying char(1020) dcl 13-158 set ref 146* 205* 250* 572* 600* 1095* 1178 1178 1182 1185* 1195* 1205* 1217* 1227* 1237* 1248 1248 1375* 1945* ctl_ptr 132 based pointer level 3 dcl 16-23 ref 121 146 146 146 205 205 205 250 250 250 572 572 572 600 600 600 1095 1095 1095 1178 1178 1178 1178 1182 1182 1185 1185 1185 1185 1185 1195 1195 1195 1205 1205 1205 1217 1217 1217 1217 1217 1227 1227 1227 1237 1237 1237 1248 1248 1248 1248 1248 1248 1375 1375 1375 1945 1945 1945 2002 2002 cur 126 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" cur 126 based structure level 3 in structure "hfcblk" dcl 13-250 in procedure "comp_util_" cur 2730 based pointer level 3 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 162* 174* 174* 180* cur 10 based structure level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1988* 1990 1990 cur 126 based structure level 3 in structure "newblk" dcl 59 in procedure "comp_util_" cur 126 based structure level 3 in structure "text" dcl 13-49 in procedure "comp_util_" cur 1000 based pointer level 3 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 161* 171* 171* 179* cur 1000 based pointer level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 314* 1865 1881* 1881* cur 1000 based pointer level 3 in structure "text" dcl 13-49 in procedure "comp_util_" ref 494 cur 10 based structure level 2 in structure "text_entry" dcl 13-68 in procedure "comp_util_" cur 10 based structure level 2 in structure "line" dcl 51 in procedure "comp_util_" cur 10 based structure level 2 in structure "ctl" dcl 13-157 in procedure "comp_util_" cur 2730 based pointer level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 322* 1866 1959* 1959* cur 10 based structure level 2 in structure "aline" dcl 1845 in procedure "put_line" current_parms based structure level 1 dcl 13-209 current_parms_ptr 134 based pointer level 3 dcl 16-23 ref 1909 1933 datum parameter fixed bin(31,0) dcl 2061 ref 2059 2064 dcctl based structure level 1 packed unaligned dcl 2-34 dcfs based structure level 1 packed unaligned dcl 2-80 dclong_val based structure level 1 packed unaligned dcl 2-54 dcshort_val based structure level 1 packed unaligned dcl 2-67 dcxx based structure level 1 packed unaligned dcl 2-11 debug_opt 1(03) based bit(1) level 2 packed unaligned dcl 8-5 ref 1379 decodes 20 000005 constant varying char(8) initial array level 2 dcl 1495 set ref 1800* 1803 default parameter fixed bin(31,0) dcl 1154 set ref 1147 1169* 1169* 1176 default_parms based structure level 1 dcl 13-213 del 1(01) based bit(1) level 4 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1899 2048* del 1(01) based bit(1) level 4 in structure "text_parms" packed unaligned dcl 13-206 in procedure "comp_util_" set ref 1904* del 1005(01) based bit(1) level 5 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 1902 1904* del 1(01) based bit(1) level 4 in structure "aline" packed unaligned dcl 1845 in procedure "put_line" set ref 1905* del 1(01) based bit(1) level 4 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" set ref 424* depth 22 based fixed bin(31,0) level 3 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 405* 405 depth 12 based fixed bin(31,0) level 2 in structure "tblcol" dcl 12-26 in procedure "comp_util_" set ref 360* 360* 1919 1920* 1920 1921 1921 1924 2044* 2044* depth 374 based fixed bin(31,0) level 3 in structure "col" dcl 1-5 in procedure "comp_util_" ref 405 depth 76 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1919* depth_adj 310 based fixed bin(31,0) level 2 dcl 1-5 set ref 648* 648* 1933 devptr 140 based pointer level 3 dcl 16-23 ref 1676 displ_mode parameter fixed bin(17,0) dcl 666 ref 660 698 706 731 759 787 824 831 866 878 880 883 895 898 907 display_str 004641 automatic char(91) unaligned dcl 673 set ref 696* 702* 703 710* 711 711* 713 719* 722* 726* 726 727 735* 736* 736 737 737* 739 745* 751* 754* 754 755 763* 764* 764 765 765* 767 773* 779* 782* 782 783 793* 800* 824* 837* 866* 878* 880* 883* 895* 898* 907* 914 displayproc 24 based entry variable level 2 dcl 3-19 ref 1676 dlen parameter fixed bin(17,0) dcl 1480 set ref 1474 1837* dstr 005360 automatic varying char(2048) dcl 1492 set ref 1676* 1689* 1691* 1703* 1705* 1707* 1709* 1711* 1717* 1729* 1731* 1742* 1746* 1750* 1754* 1758* 1763* 1766* 1769* 1786* 1789* 1800* 1803* 1808* 1811* 1819* 1819 1833 dt_sw 000411 internal static bit(1) initial unaligned dcl 2067 set ref 350 424 928 1057 1074 1142 1169 1252 1271 1304 1315 1355 1398 1429 1467 2032 2070* 2074* dtext parameter varying char dcl 1479 set ref 1474 1656 1658 1659 1663 1667 1670 1676 1676 1689 1691 1691 1691 1696 1699 1703 1705 1707 1709 1711 1713 1723 1725 1740 1777 1779 empty parameter bit(1) unaligned dcl 19 set ref 86 126* 167 end_keep 2(03) based bit(1) level 3 packed unaligned dcl 13-161 set ref 496* 2020* 2048* entry 6 based structure level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_util_" entry 1026 based structure array level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 122 entry_ct 242 based fixed bin(17,0) array level 2 dcl 14-5 set ref 1089 1113* 1116 1116* entryndx based fixed bin(17,0) level 2 dcl 14-5 set ref 1077* 1078 1081* 1084 1116* 1119 1121 1122 1124 1124 1125 1126 1126 1127 1128 1128 1129 1130 1132 1139* 1139 1142* 1320 1323 1323 1329 1329 1331 1331 1334 1336 1336 1340 1350 1352 1352 1355* 1355 1372 1387 1387 1387 1392 1392 1395 1395 1395 1402 1402* 1402 1406* 1406 1406 1406 epftrptr 3764 based pointer level 3 dcl 9-7 ref 557 ephdrptr 3766 based pointer level 3 dcl 9-7 ref 565 esc_flag parameter bit(1) unaligned dcl 19 set ref 330 364* 2002 even 11 based fixed bin(31,0) level 3 in structure "page_parms" dcl 10-86 in procedure "comp_util_" set ref 553* 562* 562 569 581* 581 618 648* 648* even 12 based fixed bin(31,0) level 4 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 634 even_foot 004632 automatic fixed bin(31,0) dcl 542 set ref 550* 561* 562 even_head 004633 automatic fixed bin(31,0) dcl 543 set ref 550* 580* 581 even_headspace 004634 automatic fixed bin(31,0) dcl 544 set ref 551* 582* 614* 614 648* 648* f 0(27) based fixed bin(9,0) level 2 packed unsigned unaligned dcl 2-80 ref 1758 first 776 based pointer level 3 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 161* 171* 179 first 776 based pointer level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 308 314* 481 first 2726 based pointer level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 115 316 322* first 2726 based pointer level 3 in structure "newblk" dcl 59 in procedure "comp_util_" set ref 162* 174* 180 flag_loc 2 based pointer array level 2 dcl 14-76 set ref 1124* 1125 flag_ptr based pointer array level 2 dcl 14-5 set ref 1102* 1102 1102 1124 flag_value based bit(1) unaligned dcl 9-132 set ref 1125* flags based bit(9) array level 2 dcl 14-76 set ref 1121* 1320 1323* 1323 1406 1406 fmt 2 based structure array level 2 dcl 12-5 fntstk 1024 based structure level 3 dcl 41 fntstk_entry based structure level 1 dcl 5-6 fnttbl based structure level 1 dcl 6-14 fnttbl_ptr 006534 automatic pointer initial dcl 6-13 set ref 6-13* fnttbldata based structure level 1 dcl 6-7 fnttbldata_ptr 150 based pointer level 3 dcl 16-23 ref 1758 font 216 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 122* font 16 based structure level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1989* 1990 1990 font 100 based structure level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1989 font 134 based structure level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 122* footer 6 based fixed bin(31,0) level 3 dcl 10-86 ref 553 footref 2(05) based bit(1) level 3 packed unaligned dcl 13-161 set ref 2048* free 5732 based bit(1) array level 3 in structure "tblkdata" packed unaligned dcl 13-5 in procedure "comp_util_" set ref 239 278* 320* free 1752 based bit(1) array level 3 in structure "tblkdata" packed unaligned dcl 13-5 in procedure "comp_util_" set ref 135 182* 324* free 3742 based bit(1) array level 3 in structure "tblkdata" packed unaligned dcl 13-5 in procedure "comp_util_" set ref 194 228* 312* frontpage 15(02) based bit(1) level 4 packed unaligned dcl 10-11 set ref 616 632 1304* fthrd 2 based pointer initial level 2 dcl 11-9 set ref 1342 1345* 1346 1347 1350 ftn 205 based structure level 2 in structure "text_entry" dcl 13-68 in procedure "comp_util_" ref 384 ftn 375 based structure level 3 in structure "col" dcl 1-5 in procedure "comp_util_" ftn 205 based structure level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 384* ftn 14 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" ftn 375 based structure level 3 in structure "col0" dcl 1-37 in procedure "comp_util_" ftrusd 314 based fixed bin(31,0) level 2 dcl 53 ref 642 galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 8-5 set ref 450* 477 569 597 gaps 11 based fixed bin(17,0) level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* gaps 11 based fixed bin(17,0) level 3 in structure "line" dcl 51 in procedure "comp_util_" set ref 383* hanging 2(06) based bit(1) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" set ref 364* hanging 2(06) based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 2048* hbound builtin function dcl 81 ref 143 146 202 205 247 250 1795 hdr 316 based structure level 2 in structure "locol" dcl 53 in procedure "comp_util_" hdr 316 based structure level 2 in structure "col0" dcl 1-37 in procedure "comp_util_" hdr 316 based structure level 2 in structure "col" dcl 1-5 in procedure "comp_util_" hdr 15 based structure level 2 in structure "page" dcl 10-11 in procedure "comp_util_" hdr 4 based structure level 2 in structure "text" dcl 13-49 in procedure "comp_util_" hdr 4 based structure level 2 in structure "hfcblk" dcl 13-250 in procedure "comp_util_" set ref 577* 605* hdr 4 based structure level 2 in structure "block" dcl 41 in procedure "comp_util_" set ref 110* hdspc 23 based fixed bin(31,0) level 3 dcl 10-11 set ref 648* 648* headed 15(03) based bit(1) level 4 packed unaligned dcl 10-11 ref 628 648 header 5 based fixed bin(31,0) level 3 dcl 10-86 ref 553 613 614 hexb 004670 automatic bit(4) unaligned dcl 674 set ref 749* 750* hexc 004671 automatic char(16) unaligned dcl 675 set ref 750* 751 hexd 004675 automatic fixed bin(4,0) unsigned dcl 676 set ref 748* 749 hfcblk based structure level 1 dcl 13-250 hfcblk_ptr 006562 automatic pointer dcl 13-249 set ref 557* 558 561 565* 566 569 577 580 585* 586 589 593* 594 597 605 608 i 000106 automatic fixed bin(17,0) dcl 49 set ref 458* 460 461 463* 477* 477* 479 481 498* 498 498 502 504 505 505 505 505* 511* 511* 515 515 518 522 621* 624* 638* 641* 1279* 1280 1280 1280 1285 1289 1290 1296 1297* 1435* 1437 1438 1443 1449* 1449 1450 1452 1454* 1454 1458 1463* ichr 006364 automatic fixed bin(17,0) dcl 1494 set ref 1794* 1795 1795 1800 1803 icol parameter fixed bin(17,0) dcl 19 set ref 86 89 92 102 112 126 126* 288 293 293 293 300 300 303 303* ii 006361 automatic fixed bin(24,0) dcl 1493 set ref 1655* 1656 1658 1659 1663 1665* 1665 1667 1670 1676 1676 1678* 1678 1689 1691 1691 1691 1696* 1699 1703 1705 1707 1709 1711 1713 1723 1725 1734* 1734 1740 1772* 1772 1777 1779 1816* 1816 1837 in 4114 based varying char(128) level 3 dcl 9-7 ref 1443 1458 1996 incr_loc 6 based pointer array level 2 dcl 14-76 set ref 1128* 1129 1331 1331 incr_ptr based pointer array level 2 dcl 14-5 set ref 1109* 1109 1109 1128 incrval 6 based fixed bin(31,0) initial level 2 dcl 11-9 set ref 1331* indent 1016 based fixed bin(31,0) level 4 dcl 41 set ref 105* index 1024 based fixed bin(17,0) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 122 index builtin function dcl 81 in procedure "comp_util_" ref 703 713 727 739 755 767 783 944 977 1081 1182 1438 1713 1794 index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 13-157 in procedure "comp_util_" set ref 1178 1178 1182 1185* 1185* 1217* 1217* 1248 1248 1248* 1248 index builtin function dcl 1862 in procedure "put_line" ref 2002 index 3502 based fixed bin(17,0) level 3 in structure "shared" dcl 9-7 in procedure "comp_util_" ref 1274 1274 1279 1285 info 161 based structure level 2 in structure "line" dcl 51 in procedure "comp_util_" info 277 based structure level 3 in structure "hfcblk" dcl 13-250 in procedure "comp_util_" info 277 based structure level 3 in structure "newblk" dcl 59 in procedure "comp_util_" info 161 based structure level 2 in structure "text_entry" dcl 13-68 in procedure "comp_util_" info 277 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 121* info 161 based structure level 2 in structure "ctl" dcl 13-157 in procedure "comp_util_" set ref 121 146 146 205 205 250 250 572 572 600 600 1095 1095 1185 1185 1195 1195 1205 1205 1217 1217 1227 1227 1237 1237 1375 1375 1945 1945 2002 2002 info 161 based structure level 2 in structure "aline" dcl 1845 in procedure "put_line" info 161 based structure level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1990 1990 info 277 based structure level 3 in structure "text" dcl 13-49 in procedure "comp_util_" info_ptr parameter pointer dcl 923 set ref 917 1023* init_stack_box 000322 constant structure level 1 dcl 11-11 ref 1328 1346 input 116 based structure level 2 dcl 41 set ref 117* input_line 375 based varying char(1020) level 2 dcl 41 set ref 118 124* ioa_ 000446 constant entry external dcl 16-70 ref 126 303 364 424 450 498 525 648 928 1060 1074 1142 1169 1252 1304 1315 1355 1402 1406 1429 1467 2048 ioa_$nnl 000450 constant entry external dcl 16-70 ref 353 360 1271 2035 2044 ioa_$rsnnl 000414 constant entry external dcl 694 ref 735 750 763 778 1689 1691 1729 1742 1746 1750 1754 1758 1763 1766 1769 1786 1800 1808 1811 j 004676 automatic fixed bin(17,0) dcl 678 set ref 300* 303* 484* 489* 515* 518 518 519 519 519 519* 721* 722* 747* 751* 775* 779* 809* 810 812* 819* 820 824* 847* 855 856* 870* 871 875 878 880 880 883 891 895 898 898 898 900 903 907* 1438* 1440 1443 1443 1449 1450* 1452 1454 jj 006362 automatic fixed bin(24,0) dcl 1493 set ref 1658* 1659 1659* 1661* 1661 1663 1663 1665 jjj 006363 automatic fixed bin(24,0) dcl 1493 set ref 1676* 1678 1678 1681 just constant bit(6) initial unaligned dcl 13-148 ref 364 424 k 000107 automatic fixed bin(17,0) dcl 49 set ref 931* 932 934 939 939* 939 939 944 944 948* 948 952 952* 953 956 957 977 981 982 982* 1041 1044 1048* 1048 keep 2(07) based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 2014* 2019* 2048* keep 1006(04) based bit(1) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 126* 2011 2019* keep 2(04) based bit(1) level 3 in structure "text_parms" packed unaligned dcl 13-206 in procedure "comp_util_" set ref 2019* keep 2(07) based bit(1) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" set ref 424* keep_count 70(18) based fixed bin(17,0) level 3 packed unaligned dcl 41 set ref 2015* 2015 2016 l 000110 automatic fixed bin(17,0) dcl 49 set ref 931* 932 934* 936 939 939 939 944 944 948 952 laptr parameter pointer dcl 191 ref 188 224 224 226 larea based structure level 1 unaligned dcl 192 ldspl 004677 automatic fixed bin(17,0) dcl 679 set ref 703* 713* 719 720* 720 722 727* 739* 745 746* 746 751 755* 767* 773 774* 774 779 783* 794* 801* 818* 823* 823 824 838* 861* 867* 878 880 883 886* 886 894* 894 895 898 900* 900 906* 906 907 914 lead parameter fixed bin(31,0) dcl 1849 ref 1841 1911 1920 1927 1929 left 12 based structure level 2 in structure "current_parms" dcl 13-209 in procedure "comp_util_" left 1016 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" left 1016 based structure level 3 in structure "text" dcl 13-49 in procedure "comp_util_" left 12 based structure level 2 in structure "blk_parms" dcl 40 in procedure "comp_util_" left 1016 based structure level 3 in structure "hfcblk" dcl 13-250 in procedure "comp_util_" left 12 based structure level 2 in structure "text_parms" dcl 13-206 in procedure "comp_util_" left 1016 based structure level 3 in structure "newblk" dcl 59 in procedure "comp_util_" left 36 based structure level 3 in structure "prvtblcol" dcl 12-44 in procedure "comp_util_" left 36 based structure level 3 in structure "tblcol0" dcl 12-41 in procedure "comp_util_" left 36 based structure level 3 in structure "tblcol" dcl 12-26 in procedure "comp_util_" left 12 based structure level 2 in structure "default_parms" dcl 13-213 in procedure "comp_util_" len 000112 automatic fixed bin(17,0) dcl 50 set ref 1019* 1021 1021* 1023 1028 1033 1046* leng 0(18) based fixed bin(9,0) level 2 in structure "dcxx" packed unsigned unaligned dcl 2-11 in procedure "comp_util_" ref 1772 leng based fixed bin(21,0) level 2 in structure "tstr" dcl 1858 in procedure "put_line" set ref 1978* length builtin function dcl 81 in procedure "comp_util_" ref 424 424 932 953 1021 1041 1178 1248 1429 1429 1437 1463 1467 1467 1656 1659 1667 1689 1691 1696 1699 1725 1779 1939 2035 2035 length 1 based fixed bin(31,0) level 2 in structure "page_parms" dcl 10-86 in procedure "comp_util_" ref 553 level 4 based fixed bin(17,0) initial level 2 dcl 11-9 set ref 1352* 1352 1355* 1392* 1392 1395 1402* 1406* line based structure level 1 dcl 51 line_area based structure level 1 dcl 13-26 in procedure "comp_util_" set ref 214 214 line_area 776 based structure level 2 in structure "text" dcl 13-49 in procedure "comp_util_" line_area 776 based structure level 2 in structure "newblk" dcl 59 in procedure "comp_util_" line_area 776 based structure level 2 in structure "block" dcl 41 in procedure "comp_util_" line_area 1770 based structure level 2 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" line_area_ptr 006552 automatic pointer initial dcl 13-25 set ref 308* 308* 310 311 311 312* 313 481* 481* 484 489* 492 494* 495 495 13-25* 171* 214 214 214* 217 217 218 219 219 219 222* 224 226 1865* 1871 1871 1871 1877 1877 1881 1881* 1885 1885 1888 1888 1889 1889 1894 1894 1895 1895 line_ptr parameter pointer dcl 19 set ref 330 353 353 353 353 353 353 364 364 364 364 364 364 364 364 364 364 373 374 374 374 374 376 376 382* 382 383 383 384 385 390* 396* 401* 401 411 424 424 424 424 424 424 424 424 424 424 424 424 424 424 424 424 424 424 424 438* 438* lineno 162 based fixed bin(17,0) level 3 in structure "line" dcl 51 in procedure "comp_util_" set ref 424* lineno 162 based fixed bin(17,0) level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* linespace 14 based fixed bin(31,0) level 2 in structure "current_parms" dcl 13-209 in procedure "comp_util_" ref 1933 linespace 302 based fixed bin(31,0) level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 119* linespace 164 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1871 1911* linespace 164 based fixed bin(31,0) level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 353* 353* 373 385 linespace 1020 based fixed bin(31,0) level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 119 1873 linptr 10 based pointer array level 2 dcl 13-26 set ref 219* 489* 495 1871 1889* 1895 lmarg 165 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* 2035* lmarg 165 based fixed bin(31,0) level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 374 424* 424* loc_lead 000116 automatic fixed bin(31,0) dcl 54 set ref 373* 382 382 385 392* 401* local_area_ptr 160 based pointer level 3 dcl 16-23 set ref 155* 214* 259* 266* 1102* 1104* 1107* 1109* 1111* 1130* 1326* 1345* 1889* 1965* local_str 004736 automatic varying char(32) dcl 1267 set ref 1280* 1283 1288 1297* 1300 locol based structure level 1 dcl 53 locolptr 000114 automatic pointer dcl 52 set ref 92* 93 93 94 624* 641* 642 642 lquote constant char(1) initial unaligned dcl 7-6 ref 965 1703 ltrim builtin function dcl 81 ref 146 205 250 702 710 722 736 764 m 000111 automatic fixed bin(17,0) dcl 49 set ref 952* 982* 1006* 1006 1007 1014* 1014 1019 1021 1028* 1028 1028* 1029* 1035* 1035 1041 1041 margin 4 based structure level 2 dcl 10-86 max builtin function dcl 81 in procedure "comp_util_" ref 405 625 636 1296 max builtin function dcl 1862 in procedure "put_line" ref 1924 max_col 004635 automatic fixed bin(31,0) dcl 545 set ref 620* 625* 625 636 max_param parameter fixed bin(31,0) dcl 1156 set ref 1147 1169 1169* 1169* 1192 1192 1195* 1195* 1199 1224 1224 1227* 1227* 1231 maxdepth 2 based fixed bin(31,0) level 2 dcl 12-15 set ref 360* 360* 1921 1921 1924* 1924 2044* 2044* meas2 000120 automatic structure level 1 dcl 57 set ref 1990 1990 meas_sw parameter bit(1) unaligned dcl 19 set ref 330 364* 411 1985 measure 11 based fixed bin(31,0) level 3 in structure "page" dcl 10-11 in procedure "comp_util_" ref 106 measure 1021 based fixed bin(31,0) level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 106* meta 000005 constant structure level 1 unaligned dcl 1495 min builtin function dcl 81 ref 382 382 385 1019 min_param parameter fixed bin(31,0) dcl 1155 set ref 1147 1169* 1169* 1202 1205* 1205* 1209 1234 1237* 1237* 1241 mod 1(02) based bit(1) level 4 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" ref 424 mod builtin function dcl 17-26 in procedure "allocate" ref 17-40 mod builtin function dcl 81 in procedure "comp_util_" ref 715 724 741 752 769 780 810 812 813 854 855 mod 1(02) based bit(1) level 4 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1899 2048 mode 3534 based fixed bin(8,0) array level 3 in structure "shared" packed unaligned dcl 9-7 in procedure "comp_util_" ref 1280 1297 mode 1 based fixed bin(17,0) array level 2 in structure "tree_var" dcl 14-76 in procedure "comp_util_" set ref 1122* modified 4(02) based bit(1) level 4 packed unaligned dcl 41 set ref 1899* 1899 name 40 based varying char(65) level 3 in structure "fnttbl" dcl 6-14 in procedure "comp_util_" set ref 1758* name 132 based varying char(65) level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* name 250 based varying char(65) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 126* name_ptr based pointer array level 2 dcl 14-5 set ref 1080 1104* 1118 ndx 1 based fixed bin(17,0) level 2 in structure "tbldata" dcl 12-5 in procedure "comp_util_" ref 337 338 417 ndx 3 based fixed bin(17,0) level 2 in structure "text_area" dcl 13-36 in procedure "comp_util_" set ref 264* 276* 318* 1951 1956 1964* 1965 1971* 1971 1973 ndx 5 based fixed bin(17,0) level 2 in structure "line_area" dcl 13-26 in procedure "comp_util_" set ref 217* 310* 484 495 1871 1871 1877 1885 1894* 1894 1895 net 11 based structure level 2 in structure "page_parms" dcl 10-86 in procedure "comp_util_" set ref 631 net 170 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* 2035* net 450 based fixed bin(31,0) level 3 in structure "locol" dcl 53 in procedure "comp_util_" set ref 642* net 25 based fixed bin(31,0) level 3 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 632* 634* 636 642 648* 648* net 10 based fixed bin(31,0) level 2 in structure "page_header" dcl 10-27 in procedure "comp_util_" set ref 616* 618* net 450 based fixed bin(31,0) level 3 in structure "col0" dcl 1-37 in procedure "comp_util_" set ref 636* net 170 based fixed bin(31,0) level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 374* 424* 424* net 12 based structure level 3 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 631* net 450 based fixed bin(31,0) level 3 in structure "col" dcl 1-5 in procedure "comp_util_" set ref 445 648* 648* 1933 net 132 based fixed bin(31,0) level 2 in structure "colhdr" dcl 1-21 in procedure "comp_util_" set ref 616* 618* newblk based structure level 1 dcl 59 set ref 158* newblkptr 000206 automatic pointer dcl 58 set ref 155* 158 159 160 161 161 162 162 165* 171 171 171 174 174 174 179 179 180 180 184 newtxt based varying char(1020) dcl 1852 set ref 1929 1939 1979 1996* 2035 2035 newtxtptr parameter pointer dcl 1846 ref 1841 1929 1939 1979 1996 2035 2035 newwrds 006731 automatic fixed bin(18,0) unsigned dcl 1853 set ref 1940* 1942 1947* 1953 2024 next based pointer level 2 in structure "text_area" dcl 13-36 in procedure "comp_util_" set ref 263* 319* 321 next based pointer level 2 in structure "line_area" dcl 13-26 in procedure "comp_util_" set ref 219* 311* 313 492 next based pointer level 2 in structure "larea" dcl 192 in procedure "get_line_area" set ref 224* next based pointer level 2 in structure "tarea" dcl 237 in procedure "get_text_area" set ref 274* next_pagenmbr 3457 based varying char(32) level 2 dcl 9-7 set ref 1277* 1288* 1288 1290* 1290 1300* 1300 next_pageno_val 004747 automatic fixed bin(31,0) dcl 1268 set ref 1296* 1297 1297 next_text 1002 based pointer level 2 dcl 41 set ref 115* 1950 1973* 1974 1977 2024* 2024 nextrel 006732 automatic fixed bin(18,0) unsigned dcl 1854 set ref 1950* 1953 1974* nl_sw parameter bit(1) unaligned dcl 1481 ref 1474 1819 nmbr 3510 based fixed bin(31,0) array level 3 dcl 9-7 set ref 1274* 1274 1280 1280 1296 no_trim 2(08) based bit(1) level 3 packed unaligned dcl 13-161 set ref 2048* null builtin function dcl 81 in procedure "comp_util_" ref 290 308 311 314 316 319 322 326 382 382 390 390 396 396 401 401 447 450 455 481 511 558 566 586 594 1329 1331 1342 1387 1402 6-13 12-24 12-43 13-25 13-35 14-68 14-75 161 162 219 224 263 274 1868 null builtin function dcl 17-26 in procedure "allocate" ref 17-43 17-43 17-45 nullpic 000000 constant structure level 1 unaligned dcl 60 ref 467 505 519 num_loc 4 based pointer array level 2 dcl 14-76 set ref 1126* 1127 1329 1329 1336* 1340 1350* 1387 1387 1387* 1395* 1402 num_ptr based pointer array level 2 dcl 14-5 set ref 1107* 1107 1107 1126 num_value based fixed bin(31,0) dcl 9-133 set ref 1127* 1129* 1329 1331 numeric_attr constant bit(9) initial unaligned dcl 15-9 ref 1406 numval 5 based fixed bin(31,0) initial level 2 dcl 11-9 set ref 1329* 1406* octb 004700 automatic bit(3) unaligned dcl 680 set ref 777* 778* octc 004701 automatic char(16) unaligned dcl 681 set ref 778* 779 octd 004705 automatic fixed bin(3,0) unsigned dcl 682 set ref 776* 777 odd 13 based fixed bin(31,0) level 4 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 632 odd 12 based fixed bin(31,0) level 3 in structure "page_parms" dcl 10-86 in procedure "comp_util_" set ref 553* 590* 590 597 609* 609 616 648* 648* odd_foot 004636 automatic fixed bin(31,0) dcl 546 set ref 550* 589* 590 odd_head 004637 automatic fixed bin(31,0) dcl 547 set ref 550* 608* 609 odd_headspace 004640 automatic fixed bin(31,0) dcl 548 set ref 551* 610* 613* 613 648* 648* oflo parameter bit(1) unaligned dcl 19 in procedure "comp_util_" set ref 330 396* 401* oflo parameter bit(1) unaligned dcl 1848 in procedure "put_line" set ref 1841 1933* old_param 004734 automatic fixed bin(31,0) dcl 1163 set ref 1175* 1192 1202 1212 opftrptr 4010 based pointer level 3 dcl 9-7 ref 585 ophdrptr 4012 based pointer level 3 dcl 9-7 ref 593 option based structure level 1 dcl 8-5 option_ptr 164 based pointer level 3 dcl 16-23 ref 450 477 569 597 1379 out 4155 based varying char(128) level 3 dcl 9-7 ref 1443 1458 p 1 based fixed bin(31,0) level 2 packed unaligned dcl 2-80 ref 1758 1758 1758 1758 page 1006(05) based bit(1) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 107* page based structure level 1 dcl 10-11 in procedure "comp_util_" page_header based structure level 1 dcl 10-27 page_header_ptr 172 based pointer level 3 dcl 16-23 ref 616 618 page_incr parameter fixed bin(17,0) dcl 1262 ref 1257 1274 1296 page_parms based structure level 1 dcl 10-86 page_parms_ptr 174 based pointer level 3 dcl 16-23 ref 551 553 553 553 553 553 553 553 562 562 569 581 581 590 590 597 609 609 613 614 616 618 631 648 648 648 648 page_ptr 170 based pointer level 3 dcl 16-23 ref 92 106 293 293 300 405 405 405 463 463 616 621 621 624 628 631 632 632 632 634 634 636 636 638 638 641 642 642 642 648 648 648 648 648 648 1304 pageblock 4113(09) based bit(1) level 3 packed unaligned dcl 9-7 ref 102 pageno_str parameter varying char dcl 1263 set ref 1257 1271* 1277* 1283* 1283 1289* 1289 1304* pagenum 3502 based structure level 2 dcl 9-7 param parameter fixed bin(31,0) dcl 1152 set ref 1147 1169* 1169* 1175 1176* 1199* 1209* 1212* 1231* 1241* 1244* 1252* 1252* param_name parameter varying char(32) dcl 1153 set ref 1147 1195* 1205* 1227* 1237* 1252* parms 1 based structure level 2 in structure "page" dcl 10-11 in procedure "comp_util_" parms 1004 based structure level 2 in structure "block" dcl 41 in procedure "comp_util_" set ref 100* picture 3644 based structure level 2 dcl 9-7 place 1 000000 constant char(4) initial level 2 packed unaligned dcl 60 plead 006733 automatic fixed bin(31,0) dcl 1855 set ref 1871* 1873* 1929 pndx 4 based fixed bin(17,0) level 2 in structure "text_area" dcl 13-36 in procedure "comp_util_" set ref 262* 320 pndx 6 based fixed bin(17,0) level 2 in structure "line_area" dcl 13-26 in procedure "comp_util_" set ref 218* 312 prev 2 based pointer level 2 dcl 13-26 set ref 219* 226* 311* printable 000731 constant char(95) initial unaligned dcl 1646 ref 1658 prvtblcolptr 006550 automatic pointer initial dcl 12-43 set ref 12-43* pspc 447 based fixed bin(31,0) level 3 dcl 1-5 set ref 648* 648* ptr 3762 based pointer array level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 247 250 259* 272 280 ptr 1772 based pointer array level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 202 205 214* 222 230 ptr 172 based pointer level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1977* 2048 ptr builtin function dcl 17-26 in procedure "allocate" ref 17-47 ptr 000444 external static pointer level 2 in structure "compstat$compconst" dcl 16-14 in procedure "comp_util_" ref 92 102 106 110 113 117 121 126 135 135 140 143 143 146 146 146 146 154 154 155 155 155 155 165 182 194 194 199 202 202 205 205 205 205 213 213 214 214 222 228 230 239 239 244 247 247 250 250 250 250 258 258 259 259 266 268 268 272 278 280 293 293 297 300 303 312 320 324 333 337 338 338 350 360 384 405 405 405 405 414 417 418 424 445 445 445 450 450 450 450 450 458 459 459 460 460 460 461 461 461 463 463 463 467 468 468 471 477 477 477 479 481 494 498 498 498 502 502 502 504 505 511 511 515 515 518 518 519 522 522 525 525 525 525 525 525 525 525 551 553 553 553 553 553 553 553 557 562 562 565 569 569 572 572 572 577 581 581 585 590 590 593 597 597 600 600 600 605 609 609 613 614 616 616 616 616 618 618 618 621 621 624 625 625 628 631 631 632 632 632 634 634 636 636 638 638 641 642 642 642 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 928 1057 1074 1077 1078 1078 1078 1080 1080 1081 1084 1087 1087 1089 1089 1092 1095 1095 1095 1101 1101 1101 1102 1102 1102 1102 1102 1102 1102 1104 1104 1104 1107 1107 1107 1107 1107 1107 1107 1109 1109 1109 1109 1109 1109 1109 1111 1111 1111 1113 1113 1116 1116 1116 1116 1116 1118 1118 1119 1120 1120 1121 1122 1124 1124 1124 1124 1125 1126 1126 1126 1126 1127 1128 1128 1128 1128 1129 1130 1130 1132 1137 1137 1139 1139 1142 1142 1142 1169 1178 1178 1178 1178 1182 1182 1185 1185 1185 1185 1185 1195 1195 1195 1205 1205 1205 1217 1217 1217 1217 1217 1227 1227 1227 1237 1237 1237 1248 1248 1248 1248 1248 1248 1252 1271 1274 1274 1274 1274 1277 1279 1280 1280 1280 1285 1288 1288 1289 1290 1290 1290 1296 1297 1300 1300 1304 1304 1315 1318 1318 1320 1323 1323 1326 1329 1329 1331 1331 1334 1336 1336 1340 1345 1350 1352 1352 1355 1355 1355 1355 1372 1375 1375 1375 1379 1385 1385 1387 1387 1387 1392 1392 1395 1395 1395 1398 1402 1402 1402 1406 1406 1406 1406 1429 1443 1443 1458 1458 1467 1676 1758 1889 1889 1889 1902 1904 1909 1913 1933 1933 1933 1933 1933 1945 1945 1945 1965 1967 1967 1996 2002 2002 2019 2032 2044 ptr 4 based pointer array level 2 in structure "fnttbldata" dcl 6-7 in procedure "comp_util_" ref 1758 ptr 172 based pointer level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 382* 401* ptr 172 based pointer level 2 in structure "ctl" dcl 13-157 in procedure "comp_util_" ref 146 205 250 572 600 1095 1178 1178 1182 1185 1195 1205 1217 1227 1237 1248 1248 1375 1945 ptr 2 based pointer array level 3 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" set ref 143 146 155* 165 ptr 2 000000 constant pointer initial level 2 in structure "nullpic" dcl 60 in procedure "comp_util_" ptr 14 based pointer array level 3 in structure "tbldata" dcl 12-5 in procedure "comp_util_" ref 338 418 ptr 310 based pointer level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 118* ptr 3650 based pointer array level 4 in structure "shared" dcl 9-7 in procedure "comp_util_" set ref 460 461 463 481 498 498 504* 511 ptrs 126 based structure level 2 in structure "const" dcl 16-23 in procedure "comp_util_" ptrs 3742 based structure level 2 in structure "shared" dcl 9-7 in procedure "comp_util_" push_attr constant bit(9) initial unaligned dcl 15-9 ref 1323 quad 1004 based bit(6) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 120 quad 2(11) based bit(6) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" ref 364 364 364 364 364 364 364 424 424 424 424 424 424 quad 2(11) based bit(6) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1990* quad 120(11) based bit(6) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 120* quadc constant bit(6) initial unaligned dcl 13-148 ref 364 424 quadi constant bit(6) initial unaligned dcl 13-148 ref 364 424 quadl constant bit(6) initial unaligned dcl 13-148 ref 364 424 quado constant bit(6) initial unaligned dcl 13-148 ref 364 424 quadr constant bit(6) initial unaligned dcl 13-148 ref 364 424 r 004706 automatic fixed bin(31,0) dcl 684 set ref 709* 710 715* 716 721 722 724* 724 734* 735 735 741* 742 747 748 752* 752 762* 763 763 769* 770 775 776 780* 780 806* 809 810 812 813 813* 813 815* 815 843* 854 858* 858 863 866 867 rchar 000210 automatic varying char(10) dcl 69 set ref 925* 957* 959 959* 962 962* 965 965* 968 968* 971 971* 974 980* 984* 987 987* 990 990* 993 993* 996 996* 999 999* 1002 1002 1005* 1012* 1012 1033* 1033 1038 1041 1044 1045* rel builtin function dcl 81 ref 1950 1951 1974 repltxtptr parameter pointer dcl 19 set ref 411 424 424 438* res parameter fixed bin(31,0) dcl 1159 ref 1147 1185 1185 1217 1217 ret_str 000214 automatic varying char(8192) dcl 70 set ref 1652* 1663* 1663 1833* 1833 1839 right 1022 based structure level 3 dcl 41 rmarg 174 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* 2035* rmarg 174 based fixed bin(31,0) level 2 in structure "line" dcl 51 in procedure "comp_util_" set ref 374 424* 424* roman_repl_1 001064 constant char(1) initial array unaligned dcl 685 ref 866 878 880 898 roman_repl_2 001062 constant char(1) initial array unaligned dcl 687 ref 883 895 907 rquote constant char(1) initial unaligned dcl 7-6 ref 959 962 1705 rtn_str 004756 automatic varying char(1020) dcl 1427 set ref 1434* 1443* 1443 1452* 1452 1458* 1458 1467 1467 1472 rtrim builtin function dcl 81 ref 702 702 726 726 751 754 754 779 782 782 1315 1315 1355 1355 1402 1402 1406 1406 s 004707 automatic fixed bin(31,0) dcl 684 set ref 854* 855 856 scale parameter fixed bin(31,0) dcl 2062 in procedure "show" ref 2059 2064 scale parameter fixed bin(31,0) array dcl 1158 in procedure "comp_util_" set ref 1147 1185* 1195* 1195* 1202 1205* 1205* 1217* 1227* 1227* 1237* 1237* sep 3503 based char(1) array level 3 packed unaligned dcl 9-7 ref 1289 1290 set_current_page parameter bit(1) unaligned dcl 537 ref 532 628 628 648 shared based structure level 1 dcl 9-7 shared_ptr 200 based pointer level 3 dcl 16-23 ref 102 113 126 135 135 140 143 143 146 154 154 155 155 155 165 182 194 194 199 202 202 205 213 213 214 222 228 230 239 239 244 247 247 250 258 258 259 268 268 272 278 280 297 303 312 320 324 333 337 338 338 350 360 405 414 417 418 424 445 445 445 450 450 450 450 458 459 459 460 460 460 461 461 461 463 467 468 468 471 477 477 479 481 494 498 498 498 502 502 502 504 505 511 511 515 515 518 518 519 522 522 525 525 525 525 525 525 525 525 557 565 585 593 625 625 648 648 648 648 648 648 648 928 1057 1074 1142 1169 1252 1271 1274 1274 1274 1274 1277 1279 1280 1280 1280 1285 1288 1288 1289 1290 1290 1290 1296 1297 1300 1300 1304 1315 1355 1398 1429 1443 1443 1458 1458 1467 1902 1913 1933 1933 1933 1933 1967 1967 1996 2032 2044 size 154 based fixed bin(31,0) level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2035* 2035* size 272 based fixed bin(31,0) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 126* 126* size builtin function dcl 1862 in procedure "put_line" ref 1889 1889 1942 1953 1965 1965 size builtin function dcl 81 in procedure "comp_util_" ref 155 155 214 214 259 259 266 266 1102 1102 1104 1104 1107 1107 1109 1109 1111 1111 1130 1130 1326 1326 1345 1345 size 3652 based fixed bin(31,0) array level 4 in structure "shared" dcl 9-7 in procedure "comp_util_" set ref 471 477 479 502 525 525 525 525 space 3645 based fixed bin(31,0) level 3 dcl 9-7 set ref 450* 450* 468* 502* 502 525* 525* spcl 3 based structure level 3 in structure "line" dcl 51 in procedure "comp_util_" ref 364 spcl 3 based structure level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 2048 stack_box based structure level 1 dcl 11-9 set ref 1326 1326 1328* 1345 1345 1346* stkbox_ptr 006536 automatic pointer dcl 11-8 set ref 1326* 1326 1326 1328 1329 1331 1334 1336 1340* 1342 1345 1345 1345 1346 1347 1347 1350 1350* 1387* 1406 1406 str_loc 10 based pointer array level 2 dcl 14-76 set ref 1130* 1132 1334 1336* 1352 1352 1355 1392 1392 1395 1395 1402 1406 strareaptr 6 based pointer array level 2 dcl 13-36 set ref 115 263* 266* 1951 1965* 1973 string_area based fixed bin(17,0) array dcl 13-43 ref 266 266 1130 1130 1942 1953 1965 1965 string_area_count 5750 based fixed bin(17,0) level 3 dcl 13-5 set ref 268* 268 1967* 1967 string_attr constant bit(9) initial unaligned dcl 15-9 ref 1406 substr builtin function dcl 81 set ref 719* 722* 745* 751* 773* 779* 824* 824 878* 880* 883* 895* 898* 907* 914 934 939 939 944 956* 957 977 981* 1007 1019 1029 1033 1041 1041 1044 1178 1182 1248 1320 1429 1429 1438 1443 1450 1452 1458 1467 1467 1658 1663 1670 1676 1676 1691 1691 1703 1705 1707 1709 1711 1713 1723 1740 1777 1979* 1979 1996 1996* sws 116 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" sws based structure level 2 in structure "text_parms" dcl 13-206 in procedure "comp_util_" sws based structure level 2 in structure "line" dcl 51 in procedure "comp_util_" sws based structure level 2 in structure "current_parms" dcl 13-209 in procedure "comp_util_" sws 15 based structure level 3 in structure "page" dcl 10-11 in procedure "comp_util_" sws 1004 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" sws based structure level 2 in structure "aline" dcl 1845 in procedure "put_line" sws based structure level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" sws based structure level 2 in structure "blk_parms" dcl 40 in procedure "comp_util_" sws 4113 based structure level 2 in structure "shared" dcl 9-7 in procedure "comp_util_" sws 4 based structure level 3 in structure "block" dcl 41 in procedure "comp_util_" symbol parameter char(32) unaligned dcl 19 set ref 1067 1074* 1081 1119 1309 1315 1315 1355 1355 1363 1370* 1402 1402 1406 1406 table 4 based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1917* table 4 based bit(1) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" ref 374 table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 9-7 ref 113 333 360 414 1913 2044 taptr parameter pointer dcl 236 ref 233 274 274 tarea based structure level 1 unaligned dcl 237 tblblk 4(05) based bit(1) level 4 packed unaligned dcl 41 set ref 113* 333 360 414 424 1913 2044 tblcntxt 004215 automatic bit(1) unaligned dcl 73 set ref 339* 1913 tblcol based structure level 1 dcl 12-26 in procedure "comp_util_" tblcol 201 based fixed bin(17,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1918* tblcolndx 006544 automatic fixed bin(17,0) dcl 12-22 set ref 340* 341 347* 360* 419* 420 422* 424* 1913 1913 1918 2044* tblcolptr 006546 automatic pointer initial dcl 12-24 set ref 341* 360 360 420* 12-24* 1919 1920 1920 1921 1921 1924 2044 2044 tbldata based structure level 1 dcl 12-5 tbldata_ptr 4020 based pointer level 3 dcl 9-7 ref 337 338 338 417 418 tblfillspc 004216 automatic bit(1) unaligned dcl 74 set ref 403* 1913 tblfmt based structure level 1 dcl 12-15 tblfmtndx 006540 automatic fixed bin(17,0) dcl 12-12 set ref 337* 347* 360* 417* 418 422* 424* 2044* tblfmtptr 006542 automatic pointer dcl 12-13 set ref 338* 339 340 341 360 360 418* 419 420 1921 1921 1924 1924 2044 2044 tblkdata based structure level 1 dcl 13-5 tblkdata_ptr 4022 based pointer level 3 dcl 9-7 ref 135 135 140 143 143 146 154 154 155 165 182 194 194 199 202 202 205 213 213 214 222 228 230 239 239 244 247 247 250 258 258 259 268 268 272 278 280 303 312 320 324 1967 1967 tbllin 004217 automatic bit(1) unaligned dcl 75 set ref 336* 346* tchars 006734 automatic fixed bin(17,0) dcl 1856 set ref 1939* 1940 1947* 1978 1979 1979 1982 1996 1996 tdblkndx 004220 automatic fixed bin(17,0) dcl 76 set ref 135* 135* 140 154* 155 160 165 182 tdlandx 004221 automatic fixed bin(17,0) dcl 77 set ref 194* 194* 199 213* 214 218 222 228 230 tdtandx 004222 automatic fixed bin(17,0) dcl 78 set ref 239* 239* 244 258* 259 262 272 278 280 text based structure level 1 dcl 13-49 set ref 155 155 text_area 2726 based structure level 2 in structure "block" dcl 41 in procedure "comp_util_" text_area based structure level 1 dcl 13-36 in procedure "comp_util_" set ref 259 259 text_area 3760 based structure level 2 in structure "tblkdata" dcl 13-5 in procedure "comp_util_" text_area 2726 based structure level 2 in structure "newblk" dcl 59 in procedure "comp_util_" text_area_ptr 006554 automatic pointer initial dcl 13-35 set ref 316* 316* 318 319 320* 321 13-35* 259 259 259* 262 263 263 264 265 266 272* 274 276 1866* 1951 1951 1956 1956 1959 1959* 1964 1964 1964 1965 1965 1971 1971 1973 1973 text_entry based structure level 1 dcl 13-68 ref 117 1889 1889 text_entry_ptr 202 based pointer level 3 dcl 16-23 ref 117 384 1889 1889 text_header based structure level 1 dcl 13-163 ref 110 577 605 text_header_ptr 204 based pointer level 3 dcl 16-23 ref 110 577 605 text_parms based structure level 1 dcl 13-206 text_parms_ptr 206 based pointer level 3 dcl 16-23 ref 1904 2019 title 4(02) based bit(1) level 3 in structure "line" packed unaligned dcl 51 in procedure "comp_util_" set ref 424* title 4(02) based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 2048* tline_ptr parameter pointer dcl 1847 ref 1841 1868 1937 top 4 based fixed bin(31,0) level 3 dcl 10-86 ref 551 553 tr_str parameter varying char dcl 1423 ref 1418 1429 1429 1429 1429 1437 1438 1443 1450 1452 1458 1463 1467 1467 trans 4114 based structure level 2 dcl 9-7 translate builtin function dcl 81 ref 1443 1458 translator_temp_$get_next_segment 000452 constant entry external dcl 17-37 ref 17-42 tree based structure level 1 dcl 14-5 tree_flags based bit(1) array dcl 14-62 set ref 1102 1102 1124 tree_incrs based fixed bin(31,0) array dcl 14-65 set ref 1109 1109 1128 tree_names based char(32) array unaligned dcl 14-69 set ref 1081 1104 1104 1106* 1119* tree_names_ptr 006564 automatic pointer initial dcl 14-68 set ref 1080* 1081 1104 1104 1104* 1106 1118* 1119 14-68* tree_nums based fixed bin(31,0) array dcl 14-72 set ref 1107 1107 1126 tree_ptr 210 based pointer level 3 dcl 16-23 ref 1077 1078 1078 1078 1080 1080 1081 1084 1087 1087 1089 1089 1092 1101 1101 1101 1102 1102 1102 1102 1102 1102 1104 1104 1107 1107 1107 1107 1107 1107 1109 1109 1109 1109 1109 1109 1111 1111 1113 1113 1116 1116 1116 1116 1116 1118 1118 1119 1120 1120 1121 1122 1124 1124 1124 1124 1125 1126 1126 1126 1126 1127 1128 1128 1128 1128 1129 1130 1132 1137 1137 1139 1139 1142 1142 1318 1318 1320 1323 1323 1329 1329 1331 1331 1334 1336 1336 1340 1350 1352 1352 1355 1355 1355 1372 1385 1385 1387 1387 1387 1392 1392 1395 1395 1395 1402 1402 1402 1406 1406 1406 1406 tree_var based structure array level 1 dcl 14-76 set ref 1111 1111 tree_var_ptr 006566 automatic pointer initial dcl 14-75 set ref 1111 1111 1120* 1121 1122 1124 1125 1126 1127 1128 1129 1130 1132 1318* 1320 1323 1323 1329 1329 1331 1331 1334 1336 1336 1340 1350 1352 1352 1355 1385* 1387 1387 1387 1392 1392 1395 1395 1395 1402 1402 1406 1406 1406 14-75* trflag parameter bit(1) unaligned dcl 19 ref 330 1996 trl_ws 113 based fixed bin(31,0) level 3 dcl 41 set ref 353* 353* 1929* 1929 1931* 2035* 2035* tstr based structure level 1 unaligned dcl 1858 txtlin based structure level 1 dcl 13-161 set ref 1897* txtlinptr 006560 automatic pointer dcl 13-160 set ref 495* 496 1895* 1897 1899 1899 1899 1905 1908 1908 1911 1917 1918 1919 1929 1937* 1977 1988 1989 1989 1990 1990 1990 1990 1990 1990 1990 1990 1993 1993 1993 2014 2019 2020 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 2048 txtstr based varying char(1020) dcl 13-45 in procedure "comp_util_" set ref 424 424 1132* 1334 1982 1990* 1996 2002 2002* 2048* txtstr 7 based varying char(1020) initial level 2 in structure "stack_box" dcl 11-9 in procedure "comp_util_" set ref 1334* 1406* txtstrptr 006556 automatic pointer dcl 13-44 set ref 1977* 1978 1979 1982 1990 1996 1996 2002 2002 type 0(09) based char(1) level 2 in structure "dclong_val" packed unaligned dcl 2-54 in procedure "comp_util_" ref 1742 1746 1754 type 0(09) based char(1) level 2 in structure "dcshort_val" packed unaligned dcl 2-67 in procedure "comp_util_" ref 1750 type 0(09) based char(1) level 2 in structure "dcctl" packed unaligned dcl 2-34 in procedure "comp_util_" ref 1758 1763 1766 1769 type 000000 constant char(4) initial level 2 in structure "nullpic" packed unaligned dcl 60 in procedure "comp_util_" type_font constant char(1) initial unaligned dcl 2-90 ref 1758 type_slx constant char(1) initial unaligned dcl 2-90 ref 1742 type_sly constant char(1) initial unaligned dcl 2-90 ref 1746 type_sy 023264 constant char(1) initial unaligned dcl 2-90 ref 1750 type_unstart constant char(1) initial unaligned dcl 2-90 ref 1766 type_unstop constant char(1) initial unaligned dcl 2-90 ref 1769 type_vlx constant char(1) initial unaligned dcl 2-90 ref 1754 type_wait constant char(1) initial unaligned dcl 2-90 ref 1763 undent 1023 based fixed bin(31,0) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 101* undent 1017 based fixed bin(31,0) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 101* usd 376 based fixed bin(31,0) level 4 in structure "col0" dcl 1-37 in procedure "comp_util_" ref 642 usd 376 based fixed bin(31,0) level 4 in structure "col" dcl 1-5 in procedure "comp_util_" ref 445 625 usd 15 based fixed bin(31,0) level 4 in structure "block" dcl 41 in procedure "comp_util_" set ref 447 used 114 based fixed bin(31,0) level 3 in structure "block" dcl 41 in procedure "comp_util_" set ref 353* 353* 447 1921* 1921 1927* 1927 1933 2035* 2035* used 451 based fixed bin(31,0) level 3 in structure "col0" dcl 1-37 in procedure "comp_util_" ref 642 used 451 based fixed bin(31,0) level 3 in structure "col" dcl 1-5 in procedure "comp_util_" set ref 445 461* 461 625 1933 used 114 based fixed bin(31,0) level 3 in structure "hfcblk" dcl 13-250 in procedure "comp_util_" set ref 561 569 580 589 597 608 used 37 based fixed bin(31,0) level 3 in structure "page" dcl 10-11 in procedure "comp_util_" set ref 463* 463 used 206 based fixed bin(31,0) level 3 in structure "line" dcl 51 in procedure "comp_util_" set ref 353* 353* used 114 based fixed bin(31,0) level 3 in structure "text" dcl 13-49 in procedure "comp_util_" set ref 461 463 498* 498* v1 0(27) based fixed bin(31,0) level 2 in structure "dclong_val" packed unaligned dcl 2-54 in procedure "comp_util_" ref 1742 1742 1742 1742 1746 1746 1746 1746 1754 1754 1754 1754 v1 0(27) based fixed bin(17,0) level 2 in structure "dcshort_val" packed unaligned dcl 2-67 in procedure "comp_util_" ref 1750 1750 1750 1750 val based fixed bin(31,0) dcl 689 ref 701 709 715 734 741 762 769 790 797 806 834 843 val_pic 004710 automatic picture(14) unaligned dcl 690 set ref 701* 702 val_ptr parameter pointer dcl 665 ref 660 701 709 715 734 741 762 769 790 797 806 834 843 value 004735 automatic fixed bin(31,0) dcl 1167 set ref 1185* 1192 1202 1212 1217* 1224 1234 1244 var_ptr based pointer array level 2 dcl 14-5 set ref 1111* 1120 1318 1385 wa 004714 automatic fixed bin(35,0) array dcl 692 set ref 808* 810* 812* 820 824 845* 855* 871 875 898 898 900 wb 004724 automatic fixed bin(35,0) array dcl 692 set ref 845* 856* 880 891 903 wbuf 004223 automatic varying char(1020) dcl 79 set ref 926* 932 934 939 939 944 953 956* 957 977 981* 1007 1019 1021 1029 1041 1041* 1041 1041 1044* 1044 1055 white 4(07) based bit(1) level 4 in structure "block" packed unaligned dcl 41 in procedure "comp_util_" set ref 2006* white 4(07) based bit(1) level 3 in structure "txtlin" packed unaligned dcl 13-161 in procedure "comp_util_" set ref 1929 2048* widow_size 4216 based fixed bin(31,0) level 2 dcl 9-7 ref 1933 width 204 based fixed bin(31,0) level 2 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1993* 2035* 2035* width 12 based fixed bin(31,0) level 3 in structure "txtlin" dcl 13-161 in procedure "comp_util_" set ref 1993 width 12 based fixed bin(31,0) level 3 in structure "line" dcl 51 in procedure "comp_util_" set ref 383* work 006365 automatic fixed bin(35,0) array dcl 1650 set ref 1653* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 7-6 BEL internal static char(1) initial unaligned dcl 7-6 BRS internal static char(1) initial unaligned dcl 7-6 CAN internal static char(1) initial unaligned dcl 7-6 CR internal static char(1) initial unaligned dcl 7-6 DC2 internal static char(1) initial unaligned dcl 7-6 DC3 internal static char(1) initial unaligned dcl 7-6 DC4 internal static char(1) initial unaligned dcl 7-6 DEL internal static char(1) initial unaligned dcl 7-6 DEVIT internal static char(1) initial unaligned dcl 7-6 DLE internal static char(1) initial unaligned dcl 7-6 EM_ internal static char(1) initial unaligned dcl 7-6 ENQ internal static char(1) initial unaligned dcl 7-6 EN_ internal static char(1) initial unaligned dcl 7-6 EOT internal static char(1) initial unaligned dcl 7-6 ESC internal static char(1) initial unaligned dcl 7-6 ETB internal static char(1) initial unaligned dcl 7-6 ETX internal static char(1) initial unaligned dcl 7-6 FS internal static char(1) initial unaligned dcl 7-6 GS internal static char(1) initial unaligned dcl 7-6 HAIR internal static char(1) initial unaligned dcl 7-6 HLF internal static char(1) initial unaligned dcl 7-6 HLR internal static char(1) initial unaligned dcl 7-6 HUGE internal static char(1) initial unaligned dcl 7-6 LF internal static char(1) initial unaligned dcl 7-6 MEDIUM internal static char(1) initial unaligned dcl 7-6 NAK internal static char(1) initial unaligned dcl 7-6 NUL internal static char(1) initial unaligned dcl 7-6 PAD internal static char(1) initial unaligned dcl 7-6 PI internal static char(1) initial unaligned dcl 7-6 PS internal static char(1) initial unaligned dcl 7-6 RRS internal static char(1) initial unaligned dcl 7-6 RS internal static char(1) initial unaligned dcl 7-6 SI internal static char(1) initial unaligned dcl 7-6 SO internal static char(1) initial unaligned dcl 7-6 SOH internal static char(1) initial unaligned dcl 7-6 STROKE internal static char(1) initial unaligned dcl 7-6 STX internal static char(1) initial unaligned dcl 7-6 SUB internal static char(1) initial unaligned dcl 7-6 SYN internal static char(1) initial unaligned dcl 7-6 TEXT_VERSION internal static fixed bin(17,0) initial dcl 13-47 THICK internal static char(1) initial unaligned dcl 7-6 THIN internal static char(1) initial unaligned dcl 7-6 US internal static char(1) initial unaligned dcl 7-6 VT internal static char(1) initial unaligned dcl 7-6 approx internal static char(1) initial unaligned dcl 7-6 arg_count_symb_index internal static fixed bin(17,0) initial dcl 11-5 bullet internal static char(1) initial unaligned dcl 7-6 coldepth automatic fixed bin(31,0) dcl 45 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_ 000000 constant entry external dcl 4-11 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_extr_str_ 000000 constant entry external dcl 4-21 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_head_page_ 000000 constant entry external dcl 4-33 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_read_$line 000000 constant entry external dcl 4-57 comp_read_$name 000000 constant entry external dcl 4-50 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_use_ref_ 000000 constant entry external dcl 4-74 comp_util_$getblk 000000 constant entry external dcl 4-82 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_$replace_text 000000 constant entry external dcl 4-96 comp_util_$set_bin 000000 constant entry external dcl 4-100 comp_util_$set_net_page 000000 constant entry external dcl 4-104 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 16-17 counter_attr internal static bit(9) initial unaligned dcl 15-9 cright internal static char(1) initial unaligned dcl 7-6 dagger internal static char(1) initial unaligned dcl 7-6 dbldag internal static char(1) initial unaligned dcl 7-6 dcfs_len internal static fixed bin(17,0) initial dcl 2-88 dclit based structure level 1 packed unaligned dcl 2-45 dclong1_len internal static fixed bin(17,0) initial dcl 2-62 dclong_len internal static fixed bin(17,0) initial dcl 2-62 dcshort1_len internal static fixed bin(17,0) initial dcl 2-75 dcshort_len internal static fixed bin(17,0) initial dcl 2-75 delmark internal static char(1) initial unaligned dcl 7-6 delta internal static char(1) initial unaligned dcl 7-6 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 9-126 flag_attr internal static bit(9) initial unaligned dcl 15-9 fntstk_eptr automatic pointer dcl 5-5 font based structure level 1 unaligned dcl 6-68 font_ptr automatic pointer dcl 6-67 function_attr internal static bit(9) initial unaligned dcl 15-9 hspace_attr internal static bit(9) initial unaligned dcl 15-9 infin internal static char(1) initial unaligned dcl 7-6 init_page_parms based structure level 1 dcl 10-108 iox_$error_output external static pointer dcl 16-74 iox_$user_input external static pointer dcl 16-74 iox_$user_output external static pointer dcl 16-74 lslnt internal static char(1) initial unaligned dcl 7-6 max_cols internal static fixed bin(17,0) initial dcl 10-7 max_image_lines internal static fixed bin(17,0) initial dcl 10-5 max_param_pic automatic picture(11) unaligned dcl 1165 max_text_lines internal static fixed bin(17,0) initial dcl 9-128 meas1 automatic structure level 1 dcl 56 med_sel based structure level 1 unaligned dcl 6-116 med_sel_p automatic pointer dcl 6-115 medchar based varying char dcl 6-113 medchar_sel based structure level 1 unaligned dcl 6-110 medchar_sel_p automatic pointer dcl 6-109 medsel based char(12) array unaligned dcl 6-36 medsel_table based structure level 1 unaligned dcl 6-86 medsel_table_ptr automatic pointer dcl 6-84 member based structure level 1 unaligned dcl 6-56 member_ptr automatic pointer dcl 6-55 min_param_pic automatic picture(11) unaligned dcl 1166 mode_string internal static char(16) initial unaligned dcl 9-129 modmark internal static char(1) initial unaligned dcl 7-6 multiply internal static char(1) initial unaligned dcl 7-6 nabla internal static char(1) initial unaligned dcl 7-6 not_eq internal static char(1) initial unaligned dcl 7-6 oct031 internal static char(1) initial unaligned dcl 7-6 option_version internal static fixed bin(35,0) initial dcl 8-3 oput based structure level 1 unaligned dcl 6-92 oput_p automatic pointer dcl 6-91 overbar internal static char(1) initial unaligned dcl 7-6 page_image based structure level 1 dcl 10-56 page_image_version internal static fixed bin(35,0) initial dcl 10-53 page_version internal static fixed bin(17,0) initial dcl 10-9 perpen internal static char(1) initial unaligned dcl 7-6 pi internal static char(1) initial unaligned dcl 7-6 pl_mi internal static char(1) initial unaligned dcl 7-6 prll internal static char(1) initial unaligned dcl 7-6 prvtblcol based structure level 1 dcl 12-44 repl_str based structure level 1 unaligned dcl 6-30 repl_str_ptr automatic pointer dcl 6-29 replstr based varying char(256) dcl 6-33 save_shared based structure level 1 dcl 9-124 shared_version internal static fixed bin(35,0) initial dcl 9-5 sizel based structure level 1 unaligned dcl 6-103 sizel_p automatic pointer dcl 6-102 siztbl based structure level 1 unaligned dcl 6-38 slash internal static char(1) initial unaligned dcl 7-6 square internal static char(1) initial unaligned dcl 7-6 sup0 internal static char(1) initial unaligned dcl 7-6 sup1 internal static char(1) initial unaligned dcl 7-6 sup2 internal static char(1) initial unaligned dcl 7-6 sup3 internal static char(1) initial unaligned dcl 7-6 sup4 internal static char(1) initial unaligned dcl 7-6 sup5 internal static char(1) initial unaligned dcl 7-6 sup6 internal static char(1) initial unaligned dcl 7-6 sup7 internal static char(1) initial unaligned dcl 7-6 sup8 internal static char(1) initial unaligned dcl 7-6 sup9 internal static char(1) initial unaligned dcl 7-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 16-80 tblcol0 based structure level 1 dcl 12-41 tfore internal static char(1) initial unaligned dcl 7-6 theta internal static char(1) initial unaligned dcl 7-6 tmark internal static char(1) initial unaligned dcl 7-6 type_lit internal static char(1) initial unaligned dcl 2-90 type_slxly internal static char(1) initial unaligned dcl 2-90 type_sx internal static char(1) initial unaligned dcl 2-90 type_sxy internal static char(1) initial unaligned dcl 2-90 type_v0lx internal static char(1) initial unaligned dcl 2-90 type_v0lxly internal static char(1) initial unaligned dcl 2-90 type_v0ly internal static char(1) initial unaligned dcl 2-90 type_v0x internal static char(1) initial unaligned dcl 2-90 type_v0xy internal static char(1) initial unaligned dcl 2-90 type_v0y internal static char(1) initial unaligned dcl 2-90 type_vlxly internal static char(1) initial unaligned dcl 2-90 type_vly internal static char(1) initial unaligned dcl 2-90 type_vx internal static char(1) initial unaligned dcl 2-90 type_vxy internal static char(1) initial unaligned dcl 2-90 type_vy internal static char(1) initial unaligned dcl 2-90 units based fixed bin(17,0) array dcl 6-81 units_ptr automatic pointer dcl 6-80 unscaled_attr internal static bit(9) initial unaligned dcl 15-9 unstart_signal internal static char(3) initial unaligned dcl 2-39 unstop_signal internal static char(3) initial unaligned dcl 2-39 vbot internal static bit(4) initial unaligned dcl 12-48 vcen internal static bit(4) initial unaligned dcl 12-47 vjust internal static bit(4) initial unaligned dcl 12-49 vrule internal static char(1) initial unaligned dcl 7-6 vspace_attr internal static bit(9) initial unaligned dcl 15-9 vtop internal static bit(4) initial unaligned dcl 12-46 wait_signal internal static char(3) initial unaligned dcl 2-39 NAMES DECLARED BY EXPLICIT CONTEXT. abrtf 017465 constant entry external dcl 2081 abrtn 017437 constant entry external dcl 2077 add_text 003244 constant entry external dcl 330 allocate 022435 constant entry internal dcl 17-21 ref 155 214 259 266 1102 1104 1107 1109 1111 1130 1326 1345 1889 1965 comp_util_ 002407 constant entry external dcl 14 display 015462 constant entry external dcl 1474 display_rtn 017326 constant label dcl 1837 ref 1681 dtf 017412 constant entry external dcl 2072 dtn 017364 constant entry external dcl 2068 escape 010277 constant entry external dcl 917 get_blk 017511 constant entry internal dcl 132 ref 94 97 get_line_area 020023 constant entry internal dcl 188 ref 171 1881 get_text_area 020313 constant entry internal dcl 233 ref 174 1959 getblk 002425 constant entry external dcl 86 no_pop 014455 constant label dcl 1375 num_display 006543 constant entry external dcl 660 pageno 013462 constant entry external dcl 1257 pictures 004617 constant entry external dcl 442 pop 014421 constant entry external dcl 1363 pop_return 014623 constant label dcl 1398 push 014035 constant entry external dcl 1309 push_return 014316 constant label dcl 1355 put_line 020627 constant entry internal dcl 1841 ref 382 390 396 401 438 relblk 002757 constant entry external dcl 288 replace_text 004220 constant entry external dcl 411 return_ 004201 constant label dcl 408 ref 151 210 255 search_tree 011417 constant entry external dcl 1067 set_bin 012344 constant entry external dcl 1147 set_net_page 005556 constant entry external dcl 532 show 022400 constant entry internal dcl 2059 ref 126 126 353 353 353 353 353 353 353 353 360 360 360 360 424 424 424 424 424 424 450 450 450 450 498 498 525 525 525 525 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 648 1169 1169 1169 1169 1169 1169 1169 1169 1195 1195 1205 1205 1227 1227 1237 1237 1252 1252 1742 1742 1746 1746 1750 1750 1754 1754 1758 1758 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2035 2044 2044 2044 2044 srch 011303 constant label dcl 1051 ref 949 translate 015036 constant entry external dcl 1418 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 118 146 146 205 205 250 250 390 390 396 396 572 572 600 600 1095 1095 1124 1126 1128 1185 1185 1195 1195 1205 1205 1217 1217 1227 1227 1237 1237 1280 1280 1297 1297 1375 1375 1740 1945 1945 1990 1990 1990 1990 1990 1990 1990 1990 2002 2002 bit builtin function ref 749 777 collate9 builtin function ref 1033 copy builtin function ref 800 866 898 1033 dec builtin function ref 2064 divide builtin function ref 709 722 734 748 762 776 806 813 815 843 856 858 1139 1185 1217 1940 2064 fixed builtin function ref 1742 1742 1742 1742 1746 1746 1746 1746 1750 1750 1750 1750 1754 1754 1754 1754 1758 1758 1758 1758 rank builtin function ref 1672 1672 1686 1783 1786 1789 round builtin function ref 1185 1217 2064 2064 search builtin function ref 934 1996 string builtin function ref 1081 1794 sum builtin function ref 525 525 525 525 unspec builtin function set ref 158* 364 710 735 735 763 763 939 1450 1691 1691 1808 1808 1811 1811 1988* 2048 verify builtin function ref 1019 1658 1723 1777 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 23650 24324 23324 23660 Length 25314 23324 454 754 324 402 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_util_ 4446 external procedure is an external procedure. get_blk internal procedure shares stack frame of external procedure comp_util_. get_line_area internal procedure shares stack frame of external procedure comp_util_. get_text_area internal procedure shares stack frame of external procedure comp_util_. put_line internal procedure shares stack frame of external procedure comp_util_. show internal procedure shares stack frame of external procedure comp_util_. allocate internal procedure shares stack frame of external procedure comp_util_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 abrt_sw comp_util_ 000011 art_cbar_line comp_util_ 000411 dt_sw comp_util_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_util_ 000100 art_cbar_space comp_util_ 000101 art_cbar_sw comp_util_ 000102 char_index comp_util_ 000103 colblkndx comp_util_ 000104 collft comp_util_ 000105 cmode comp_util_ 000106 i comp_util_ 000107 k comp_util_ 000110 l comp_util_ 000111 m comp_util_ 000112 len comp_util_ 000114 locolptr comp_util_ 000116 loc_lead comp_util_ 000120 meas2 comp_util_ 000206 newblkptr comp_util_ 000210 rchar comp_util_ 000214 ret_str comp_util_ 004215 tblcntxt comp_util_ 004216 tblfillspc comp_util_ 004217 tbllin comp_util_ 004220 tdblkndx comp_util_ 004221 tdlandx comp_util_ 004222 tdtandx comp_util_ 004223 wbuf comp_util_ 004632 even_foot comp_util_ 004633 even_head comp_util_ 004634 even_headspace comp_util_ 004635 max_col comp_util_ 004636 odd_foot comp_util_ 004637 odd_head comp_util_ 004640 odd_headspace comp_util_ 004641 display_str comp_util_ 004670 hexb comp_util_ 004671 hexc comp_util_ 004675 hexd comp_util_ 004676 j comp_util_ 004677 ldspl comp_util_ 004700 octb comp_util_ 004701 octc comp_util_ 004705 octd comp_util_ 004706 r comp_util_ 004707 s comp_util_ 004710 val_pic comp_util_ 004714 wa comp_util_ 004724 wb comp_util_ 004734 old_param comp_util_ 004735 value comp_util_ 004736 local_str comp_util_ 004747 next_pageno_val comp_util_ 004756 rtn_str comp_util_ 005356 ch comp_util_ 005357 ct comp_util_ 005360 dstr comp_util_ 006361 ii comp_util_ 006362 jj comp_util_ 006363 jjj comp_util_ 006364 ichr comp_util_ 006365 work comp_util_ 006532 DCxx_p comp_util_ 006534 fnttbl_ptr comp_util_ 006536 stkbox_ptr comp_util_ 006540 tblfmtndx comp_util_ 006542 tblfmtptr comp_util_ 006544 tblcolndx comp_util_ 006546 tblcolptr comp_util_ 006550 prvtblcolptr comp_util_ 006552 line_area_ptr comp_util_ 006554 text_area_ptr comp_util_ 006556 txtstrptr comp_util_ 006560 txtlinptr comp_util_ 006562 hfcblk_ptr comp_util_ 006564 tree_names_ptr comp_util_ 006566 tree_var_ptr comp_util_ 006730 arearel put_line 006731 newwrds put_line 006732 nextrel put_line 006733 plead put_line 006734 tchars put_line 006752 Nwords allocate 006754 P allocate 006756 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as r_ge_a alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out return mod_fx1 mod_fx3 signal shorten_stack ext_entry ext_entry_desc round_fx1 repeat set_cs_eis index_cs_eis return_chars_eis verify_eis search_eis real_to_real_tr any_to_any_tr divide_fx1 divide_fx3 translate_3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_measure_ comp_read_$number comp_report_ comp_report_$ctlstr comp_util_$add_text comp_util_$display comp_util_$escape comp_util_$num_display comp_util_$relblk comp_util_$search_tree comp_util_$translate decimal_exp_ ioa_ ioa_$nnl ioa_$rsnnl translator_temp_$get_next_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 13 002374 12 24 002376 12 43 002377 13 25 002400 13 35 002401 14 68 002402 14 75 002403 14 002406 86 002417 89 002440 92 002443 93 002452 94 002456 95 002466 97 002467 100 002475 101 002505 102 002507 105 002520 106 002521 107 002526 110 002530 111 002536 112 002543 113 002547 114 002554 115 002557 117 002562 118 002572 119 002574 120 002600 121 002605 122 002616 124 002632 126 002633 284 002741 288 002753 290 002772 293 003010 297 003024 300 003033 303 003042 308 003107 310 003120 311 003122 312 003125 313 003136 314 003140 316 003147 318 003160 319 003162 320 003164 321 003175 322 003200 324 003207 326 003222 328 003224 330 003236 333 003261 336 003275 337 003277 338 003302 339 003305 340 003307 341 003311 342 003314 346 003315 347 003316 350 003320 353 003325 360 003514 364 003614 373 003736 374 003742 376 003750 379 003771 382 003772 383 004021 384 004025 385 004034 387 004044 390 004051 392 004100 394 004104 396 004105 399 004133 401 004134 403 004155 405 004156 408 004201 411 004213 414 004235 417 004253 418 004256 419 004261 420 004263 421 004266 422 004267 424 004271 438 004557 440 004602 442 004614 445 004632 447 004643 450 004655 455 004752 458 004756 459 004771 460 004777 461 005006 463 005016 465 005021 467 005023 468 005051 469 005056 471 005057 477 005066 479 005112 481 005115 484 005124 489 005135 491 005165 492 005167 494 005173 495 005202 496 005206 498 005210 502 005260 504 005271 505 005304 506 005321 511 005323 513 005350 515 005352 518 005371 519 005411 520 005424 522 005426 525 005436 530 005541 532 005553 550 005566 551 005572 553 005601 557 005610 558 005613 561 005617 562 005621 565 005623 566 005625 569 005631 572 005642 577 005704 580 005714 581 005716 582 005723 585 005724 586 005731 589 005735 590 005737 593 005742 594 005744 597 005750 600 005760 605 006022 608 006032 609 006034 610 006041 613 006042 614 006045 616 006046 618 006060 620 006065 621 006066 624 006077 625 006106 626 006120 628 006122 631 006141 632 006152 634 006160 636 006162 638 006171 641 006203 642 006212 645 006220 648 006222 658 006525 660 006537 696 006553 698 006556 701 006561 702 006572 703 006633 704 006643 706 006644 709 006646 710 006652 711 006677 713 006706 715 006716 716 006724 719 006725 720 006733 721 006734 722 006743 724 007010 725 007013 726 007015 727 007043 729 007053 731 007054 734 007056 735 007062 736 007114 737 007131 739 007140 741 007150 742 007156 745 007157 746 007165 747 007166 748 007175 749 007203 750 007206 751 007236 752 007263 753 007267 754 007271 755 007317 757 007327 759 007330 762 007332 763 007336 764 007370 765 007405 767 007414 769 007424 770 007432 773 007433 774 007441 775 007442 776 007451 777 007457 778 007462 779 007512 780 007537 781 007543 782 007545 783 007573 785 007603 787 007604 790 007606 793 007611 794 007614 795 007616 797 007617 800 007653 801 007661 802 007663 806 007664 808 007667 809 007700 810 007707 812 007717 813 007721 815 007735 816 007740 818 007743 819 007744 820 007751 823 007753 824 007754 827 007766 829 007770 831 007771 834 007773 837 007776 838 010001 839 010003 843 010004 845 010006 847 010026 854 010033 855 010037 856 010043 858 010046 859 010051 861 010053 863 010054 866 010056 867 010076 870 010100 871 010105 875 010107 878 010111 880 010124 883 010140 886 010147 887 010151 891 010152 894 010156 895 010157 898 010170 900 010213 902 010220 903 010221 906 010224 907 010225 910 010236 914 010241 917 010273 925 010315 926 010316 928 010330 931 010412 932 010416 934 010423 936 010442 939 010443 944 010467 948 010513 949 010516 952 010517 953 010523 956 010525 957 010530 959 010536 962 010547 965 010560 968 010571 971 010602 974 010613 977 010620 980 010636 981 010642 982 010645 983 010651 984 010652 985 010656 987 010657 990 010670 993 010701 996 010712 999 010723 1002 010734 1005 010746 1006 010751 1007 010752 1011 010757 1012 010761 1014 010770 1015 010771 1016 010772 1018 010774 1019 010775 1021 011017 1023 011025 1028 011074 1029 011105 1032 011126 1033 011130 1035 011175 1038 011200 1041 011205 1044 011252 1045 011276 1046 011300 1048 011302 1053 011303 1055 011304 1057 011316 1060 011327 1061 011400 1063 011401 1067 011413 1074 011427 1077 011464 1078 011472 1080 011513 1081 011527 1082 011541 1084 011544 1087 011561 1089 011563 1092 011566 1095 011571 1098 011640 1101 011652 1102 011655 1104 011700 1106 011741 1107 011757 1109 012006 1111 012035 1113 012063 1116 012071 1118 012103 1119 012121 1120 012131 1121 012142 1122 012145 1124 012146 1125 012161 1126 012172 1127 012203 1128 012211 1129 012222 1130 012232 1132 012246 1133 012257 1137 012260 1139 012262 1142 012266 1145 012324 1147 012336 1169 012354 1175 012511 1176 012514 1178 012516 1182 012532 1185 012543 1192 012617 1195 012625 1199 012727 1200 012732 1202 012733 1205 012751 1209 013045 1210 013050 1212 013051 1213 013054 1217 013055 1224 013131 1227 013135 1231 013237 1232 013242 1234 013243 1237 013246 1241 013350 1242 013353 1244 013354 1248 013355 1252 013372 1255 013444 1257 013456 1271 013500 1274 013533 1277 013543 1279 013546 1280 013555 1283 013615 1285 013631 1288 013640 1289 013652 1290 013662 1292 013671 1296 013672 1297 013701 1300 013734 1302 013752 1304 013754 1307 014020 1309 014032 1315 014045 1318 014116 1320 014142 1323 014151 1326 014154 1328 014170 1329 014174 1331 014214 1334 014223 1336 014231 1338 014240 1340 014241 1342 014243 1345 014250 1346 014266 1347 014273 1350 014274 1352 014307 1355 014316 1361 014404 1363 014417 1370 014431 1372 014446 1375 014455 1379 014517 1381 014532 1382 014535 1385 014547 1387 014566 1392 014602 1395 014613 1398 014623 1402 014633 1406 014716 1414 015017 1416 015020 1418 015032 1429 015060 1434 015151 1435 015153 1437 015155 1438 015163 1440 015202 1443 015203 1449 015237 1450 015244 1452 015254 1454 015267 1455 015271 1458 015272 1463 015323 1465 015327 1467 015330 1472 015422 1474 015455 1652 015504 1653 015505 1655 015516 1656 015520 1658 015525 1659 015544 1661 015552 1663 015554 1665 015570 1667 015572 1670 015575 1672 015601 1676 015610 1678 015671 1681 015676 1686 015677 1689 015703 1691 015735 1696 016003 1697 016010 1699 016011 1702 016021 1703 016023 1705 016040 1707 016050 1709 016057 1711 016066 1713 016076 1717 016115 1718 016122 1719 016124 1723 016125 1725 016145 1727 016152 1729 016154 1731 016210 1734 016215 1735 016217 1737 016220 1740 016222 1742 016231 1746 016304 1750 016354 1754 016426 1758 016475 1763 016570 1766 016622 1769 016653 1772 016704 1773 016715 1777 016716 1779 016735 1781 016744 1783 016746 1786 016751 1789 017013 1790 017051 1794 017053 1795 017064 1800 017067 1803 017131 1804 017167 1808 017171 1811 017236 1816 017271 1819 017273 1833 017313 1835 017325 1837 017326 1839 017332 2068 017363 2070 017374 2071 017377 2072 017411 2074 017422 2075 017424 2077 017436 2079 017447 2080 017452 2081 017464 2083 017475 2084 017477 132 017511 135 017513 138 017540 140 017542 143 017550 146 017553 150 017660 151 017664 154 017665 155 017670 158 017715 159 017722 160 017724 161 017726 162 017731 163 017734 165 017735 167 017741 171 017747 174 017765 179 020001 180 020005 182 020007 184 020020 188 020023 194 020025 197 020052 199 020054 202 020063 205 020066 209 020173 210 020177 213 020200 214 020203 217 020231 218 020234 219 020236 220 020255 222 020256 224 020261 226 020271 228 020275 230 020306 233 020313 239 020315 242 020342 244 020344 247 020353 250 020356 254 020463 255 020467 258 020470 259 020473 262 020521 263 020524 264 020543 265 020544 266 020546 268 020565 270 020573 272 020574 274 020577 276 020607 278 020612 280 020622 1841 020627 1865 020631 1866 020635 1868 020637 1871 020643 1873 020652 1875 020654 1877 020661 1881 020664 1885 020704 1888 020710 1889 020711 1894 020732 1895 020734 1897 020740 1899 020746 1902 020775 1904 021005 1905 021014 1908 021022 1909 021024 1911 021032 1913 021035 1917 021053 1918 021056 1919 021057 1920 021063 1921 021066 1924 021075 1925 021104 1927 021105 1929 021107 1931 021127 1933 021130 1935 021154 1937 021155 1939 021160 1940 021164 1942 021167 1945 021171 1947 021235 1950 021237 1951 021244 1953 021252 1956 021257 1959 021262 1964 021303 1965 021306 1967 021327 1970 021335 1971 021336 1973 021337 1974 021346 1977 021354 1978 021362 1979 021364 1982 021373 1985 021401 1988 021407 1989 021413 1990 021416 1993 021465 1996 021471 2002 021540 2006 021604 2007 021610 2011 021616 2014 021623 2015 021626 2016 021633 2019 021634 2020 021646 2024 021650 2032 021654 2035 021665 2044 022125 2048 022225 2055 022376 2057 022377 2059 022400 2064 022402 17 21 022435 17 40 022437 17 41 022445 17 42 022451 17 43 022464 17 44 022474 17 45 022477 17 47 022507 17 48 022516 17 49 022522 17 50 022530 ----------------------------------------------------------- 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