COMPILATION LISTING OF SEGMENT comp_art_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 0943.3 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* compose subroutine to expand artwork. */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_art_: 15 proc (blkptr, page_art); 16 17 /* PARAMETERS */ 18 19 dcl blkptr ptr; /* pointer to source text block */ 20 dcl page_art bit (1); /* 1 if page mode art */ 21 22 /* LOCAL STORAGE */ 23 24 dcl art_str char (1020) var; /* constructed artwork line */ 25 dcl art_symbol_width 26 fixed bin (31) static options (constant) init (7200); 27 dcl bad_char char (4); /* octal representation of an 28* invalid overstrike character */ 29 dcl base fixed bin (31); /* baseline offset (millipoints) */ 30 dcl cflags bit (72) based (cptr); 31 /* symbol character cflags */ 32 dcl copen fixed bin init (0); 33 /* count of open semi-circles */ 34 dcl cptr ptr init (null ()); 35 /* pointer to current entry */ 36 dcl crl fixed bin; /* current line index */ 37 dcl crla fixed bin; /* current line area index */ 38 dcl crs fixed bin; /* current symbol index */ 39 dcl crs_pos fixed bin (31); /* current output position */ 40 dcl crx fixed bin; /* input index for current symbol */ 41 dcl debug_sw bit (1) init ("0"b); 42 /* effective debug switch */ 43 dcl detail_sw bit (1) init ("0"b); 44 /* effective detail debug switch */ 45 dcl EN3 fixed bin (31); /* 2 plot incrs for diablos */ 46 dcl EN6 fixed bin (31); /* 1 plot incrs for diablos */ 47 dcl half_size fixed bin; /* half size of math symbol */ 48 dcl hcnt fixed bin (31); /* length of horizontal rules */ 49 dcl hopen bit (1) init ("0"b); 50 /* 1 = horiz rule is open */ 51 dcl hterm_pos fixed bin (31); /* position of Hvec terminator */ 52 dcl 1 hor_sft like dclong_val; /* horizontal shifts */ 53 dcl hor_sft_str char (dclong1_len + 3) based (addr (hor_sft)); 54 dcl 1 hor_vec like dclong_val; /* horizontal vectors */ 55 dcl hor_vec_str char (dclong1_len + 3) based (addr (hor_vec)); 56 dcl (i, k) fixed bin; /* working index */ 57 dcl isym fixed bin; /* working symbol index */ 58 dcl j fixed bin (21); /* working index and string index */ 59 dcl last_symb bit (1); /* control for overstrike loop */ 60 /* 1= building lozenge top */ 61 dcl loztop bit (1) init ("0"b); 62 /* for text measuring */ 63 dcl 1 meas1 aligned like text_entry.cur; 64 dcl 1 meas2 aligned like text_entry.cur; 65 dcl mini_size fixed bin; /* minipos movement value */ 66 dcl oneEN fixed bin (31); /* current EN width */ 67 dcl pad_adj fixed bin; 68 dcl pflags bit (72) based (pptr); 69 /* symbol character pflags */ 70 dcl pptr ptr init (null ()); 71 /* a previous table entry */ 72 dcl prlct fixed bin; /* symbol count for previous line */ 73 dcl prs_pos fixed bin (31); /* previous output position */ 74 dcl prs_width fixed bin (31); /* width of previous symbol */ 75 dcl prx fixed bin; /* input index for previous symbol */ 76 dcl scndx fixed bin; /* overstrike loop scan index */ 77 dcl size_char char (1); /* symbol size character */ 78 dcl ssym fixed bin; /* symbol counter for searching */ 79 dcl swaps fixed bin; /* swap counter for symbol sorting */ 80 dcl symbndx fixed bin; /* current symbol index */ 81 dcl symbstr char (100) varying; 82 /* symbol string for debug */ 83 dcl syntax_error bit (1) init ("0"b); 84 /* syntax error flag */ 85 dcl 1 temp_entry like ctb.e; /* entry holder for symbol sorting */ 86 dcl text_pos fixed bin (31) init (0); 87 /* current position in output line */ 88 dcl trans_str char (36) var; /* art construct translation string */ 89 dcl twoEN fixed bin (31); /* twice current EN width */ 90 dcl 1 vert_sft like dclong_val; 91 dcl vert_sft_ptr ptr; 92 dcl vert_sft_str char (dclong1_len + 3) based (vert_sft_ptr); 93 dcl zer_adj fixed bin; /* adjustment for 0 width symbol */ 94 95 /* SYMBOL/FLAG STRING INDEX VALUES */ 96 dcl ( 97 boxtl_ndx init (38), 98 boxl_ndx init (41), 99 boxbl_ndx init (44), 100 daro_ndx init (17), /* down arrow */ 101 first_mini_pos init (16), /* first mini-positioning symbol */ 102 horiz_ndx init (21), /* horizontal element */ 103 last_graphic init (21), /* number of symbols having graphics */ 104 last_math init (15), /* last math symbol */ 105 last_mini_pos init (19), /* last minipos symbol */ 106 last_ml_math init (8), /* last multiline math symbol */ 107 lprn_ndx init (5), /* left paren */ 108 lslnt_ndx init (20), /* left slant */ 109 rprn_ndx init (6), /* right paren */ 110 rslnt_ndx init (10), /* right slant */ 111 star_ndx init (12), /* star */ 112 uparo_ndx init (16), /* up arrow */ 113 vert_ndx init (7), /* vertical element */ 114 vterm_ndx init (26) /* vertical terminator */ 115 ) fixed bin static options (constant); 116 117 /* EXTERNAL STORAGE */ 118 119 dcl 1 block aligned like text based (blkptr); 120 /* the input block */ 121 /* current line art symbol table */ 122 dcl 1 ctb aligned, 123 2 depth fixed bin (31), /* depth of line */ 124 2 dopen fixed bin, /* count of open diamonds */ 125 2 lmarg fixed bin (31), /* left margin value */ 126 2 lopen fixed bin, /* count of open left slant lines */ 127 2 line_width fixed bin (31), /* line width */ 128 2 open fixed bin, /* count of open vertical art constructs */ 129 2 ropen fixed bin, /* count of open right slant lines */ 130 2 scnt fixed bin, /* count of symbols in the line */ 131 2 vopen fixed bin, /* count of open vertical lines */ 132 2 e (100), /* the entries */ 133 ( 3 lbrk bit (1), /* 1 - left bracket */ 134 3 rbrk bit (1), /* 2 - right bracket */ 135 3 lbrc bit (1), /* 3 - left brace */ 136 3 rbrc bit (1), /* 4 - right brace */ 137 3 lprn bit (1), /* 5 - left paren & left semicircle */ 138 3 rprn bit (1), /* 6 - right paren */ 139 3 vert bit (1), /* 7 - Boolean OR & vertical rule */ 140 3 concat bit (1), /* 8 - concatenation */ 141 3 bullet bit (1), /* 9 - bullet */ 142 3 rslnt bit (1), /* 10 - right slant */ 143 3 mult bit (1), /* 11 - multiplication */ 144 3 star bit (1), /* 12 - asterisk & horizontal terminator */ 145 3 cbar bit (1), /* 13 - change bar */ 146 3 cm bit (1), /* 14 - copyright */ 147 3 tm bit (1), /* 15 - trademark */ 148 3 uparo bit (1), /* 16 - up arrow */ 149 3 daro bit (1), /* 17 = down arrow */ 150 3 laro bit (1), /* 18 = left arrow */ 151 3 raro bit (1), /* 19 = right arrow */ 152 3 lslnt bit (1), /* 20 = left slant */ 153 3 horiz bit (1), /* 21 = horizontal rule */ 154 3 hlup bit (1), /* 22 = half-line up */ 155 3 hldn bit (1), /* 23 = half-line down */ 156 3 supscr bit (1), /* 24 = superscript */ 157 3 subscr bit (1), /* 25 = subscript */ 158 3 vterm bit (1), /* 26 = vertical & slant-line terminator */ 159 3 repl bit (2), /* 27 = replicators */ 160 3 diam bit (1), /* 29 = diamond part */ 161 3 text bit (1), /* 30 = text */ 162 3 lstrt bit (1), /* 31 - left slant start */ 163 3 rstrt bit (1), /* 32 - right slant start */ 164 3 lterm bit (1), /* 33 - left slant terminator */ 165 3 rterm bit (1), /* 34 - right slant terminator */ 166 3 vstrt bit (1), /* 35 - OBSOLETE */ 167 3 loz bit (1), /* 36 - lozenge part */ 168 3 blind bit (1), /* 37 - do not display this symbol */ 169 3 boxtl bit (1), /* 38 - box top left corner */ 170 3 boxt bit (1), /* 39 - box top line intersection */ 171 3 boxtr bit (1), /* 40 - box top right corner */ 172 3 boxl bit (1), /* 41 - box lefts edge intersection */ 173 3 boxx bit (1), /* 42 - box interior intersection */ 174 3 boxr bit (1), /* 43 - box right edge intersection */ 175 3 boxbl bit (1), /* 44 - box bottom left corner */ 176 3 boxb bit (1), /* 45 - box bottom line intersection */ 177 3 boxbr bit (1), /* 46 - box bottom right corner */ 178 3 loztl bit (1), /* 47 - lozenge top left corner */ 179 3 loztr bit (1), /* 48 - lozenge top right corner */ 180 3 lozl bit (1), /* 49 - lozenge left vertex */ 181 3 lozr bit (1), /* 50 - lozenge right vertex */ 182 3 lozbl bit (1), /* 51 - lozenge bottom left corner */ 183 3 lozbr bit (1), /* 52 - lozenge bottom right corner */ 184 3 MBZ bit (20) /* = 72 bits */ 185 ) unal, 186 3 base fixed bin (31), /* baseline offset (millipoints) */ 187 3 hadj fixed bin (31), /* horizontal position adjustment */ 188 3 len fixed bin (21), /* length of input text string */ 189 3 lndx fixed bin, /* line position index */ 190 3 pos fixed bin (31), /* position of char in target line */ 191 3 size fixed bin (31), /* size of math symbol */ 192 3 tstrt fixed bin (21), /* input starting text position */ 193 3 width fixed bin (31), /* width of text */ 194 3 wsp fixed bin (31); /* wordspace for text */ 195 196 dcl 1 ctbe like ctb.e based (cptr); 197 /* the current table entry */ 198 /* previous line art symbol table */ 199 dcl 1 ptb aligned like ctb; 200 dcl 1 ptbe like ctb.e based (pptr); 201 /* any previous table entry */ 202 dcl tmpstr char (1020) var; /* working text line */ 203 204 dcl (addr, char, dec, divide, index, length, ltrim, max, min, mod, null, 205 search, substr, translate, unspec, verify) 206 builtin; 207 208 dcl ioa_$rsnnl entry options (variable); 209 210 /* INITIALIZE */ 211 if shared.bug_mode 212 then call ioa_ ("art: (blk=^d,^d)", block.blkndx, block.hdr.count); 213 214 vert_sft.mark, hor_sft.mark, hor_vec.mark = DC1; 215 vert_sft.type = type_sly; 216 vert_sft.leng = dclong1_len; 217 vert_sft_ptr = addr (vert_sft); 218 hor_sft.type = type_slx; 219 hor_sft.leng = dclong1_len; 220 hor_vec.type = type_vlx; 221 hor_vec.leng = dclong1_len; 222 oneEN = shared.EN_width; 223 twoEN = 2 * oneEN; 224 225 if comp_dvt.devclass = "diablo" 226 then 227 do; 228 EN6 = oneEN / 6; 229 EN3 = oneEN / 3; 230 end; 231 else EN6, EN3 = 0; 232 233 unspec (ctb), unspec (ptb) = "0"b; 234 235 /* SCAN THE SOURCE, LINE BY LINE */ 236 237 crl = 0; 238 line_loop: 239 do line_area_ptr = block.line_area.first repeat (line_area.next) 240 while (line_area_ptr ^= null); 241 do crla = 1 to line_area.ndx; /* for the given lines */ 242 crl = crl + 1; /**/ 243 /* set local line pointers */ 244 txtlinptr = line_area.linptr (crla); 245 txtstrptr = txtlin.ptr; 246 247 if shared.bug_mode | db_sw /* check line range if debugging */ 248 then 249 do; 250 if (option.line_1 <= txtlin.lineno0 251 & (txtlin.lineno0 <= option.line_2 | option.db_line_end = -1)) 252 then debug_sw = "1"b; 253 else debug_sw = "0"b; 254 255 if crl >= db_line 256 then 257 do; 258 debug_sw = "1"b; 259 if dt_sw 260 then detail_sw = "1"b; 261 else detail_sw = "0"b; 262 end; 263 end; /**/ 264 /* no art in this line? */ 265 if ^txtlin.art & ctb.vopen = 0 | (unspec (txtlin.spcl) ^= "0"b) 266 then goto end_line_loop; 267 268 if detail_sw 269 then 270 do; 271 call ioa_ ("^5xSCAN (lin=^d ^d/^d d^f ld^f w^f g^d mrg^f/^f/^f" 272 || " set=^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]^[L^])^/^-""^a""", crl, 273 block.blkndx, txtlin.lineno, show (txtlin.depth, 12000), 274 show (txtlin.linespace, 12000), show (txtlin.width, 12000), 275 txtlin.cur.gaps, show (txtlin.lmarg, 12000), 276 show (txtlin.rmarg, 12000), show (txtlin.net, 12000), 277 (txtlin.quad = quadi), (txtlin.quad = quado), 278 (txtlin.quad = quadl), (txtlin.quad = quadc), 279 (txtlin.quad = quadr), (txtlin.quad = just), 280 (txtlin.quad = "0"b), comp_util_$display (txtstr, 0, "0"b)); 281 call ioa_ ("^-open-v^d l^d r^d d^d=^d", ctb.vopen, ctb.lopen, 282 ctb.ropen, ctb.dopen, ctb.open); 283 end; 284 285 tmpstr = txtstr; /* copy the line */ 286 unspec (ctb) = "0"b; /* set up current table */ 287 ctb.depth = txtlin.depth; 288 289 ctb.open = ptb.open; /* propagate open counts */ 290 ctb.vopen = ptb.vopen; 291 ctb.lopen = ptb.lopen; 292 ctb.ropen = ptb.ropen; 293 ctb.dopen = ptb.dopen; 294 295 ctb.lmarg = ptb.lmarg; /* propagate margin setting */ 296 if txtlin.lmarg ^= ctb.lmarg & ptb.open = 0 297 then 298 do; 299 if detail_sw 300 then call ioa_ ("^- 0- Left margin shift - ^f to ^f", 301 show (ctb.lmarg, 12000), show (txtlin.lmarg, 12000)); 302 303 ctb.lmarg = txtlin.lmarg; 304 end; 305 306 /* look for a symbol */ 307 crx, crs = 1; /* set up for scan */ 308 cptr = addr (ctb.e (crs)); /* point to table entry */ 309 base, prx, scndx, crs_pos, prs_width, pad_adj, zer_adj = 0; 310 prs_pos = txtlin.lmarg - ctb.lmarg; 311 312 /* if any BSPs, then scan for symbols */ 313 if index (tmpstr, BSP) > 0 314 then 315 do; /* find BSP or DC1 */ 316 find: 317 j = search (substr (tmpstr, crx), BSP || DC1); 318 319 if j = 0 /* nothing interesting? */ 320 then crx = length (tmpstr) + 1; 321 322 else 323 do; 324 if substr (tmpstr, crx + j - 1, 1) = DC1 325 then 326 do; /* step over dev ctl string */ 327 crx = crx + rank (substr (tmpstr, crx + j + 1, 1)) + j + 2; 328 goto find; /* and keep looking */ 329 end; 330 331 crx = crx + j - 2; /* set crx to first artwork char */ 332 333 if crx = 0 /* if BSP starts the line */ 334 then 335 do; 336 crx = 2; /* start again with 2nd line char */ 337 goto find; 338 end; 339 end; 340 341 scan_loop: 342 do while (crx <= length (tmpstr) & ctb.scnt < 100); 343 trans_str = BSP || "'"""; /* initialize translation string */ 344 size_char = NUL; 345 last_symb = "0"b; /**/ 346 /* skip control sequences */ 347 if index (substr (tmpstr, crx), DC1) = 1 348 then 349 do; 350 DCxx_p = addr (substr (tmpstr, crx)); 351 scndx = crx + 3 + dcxx.leng; 352 goto scan_continue; 353 end; /**/ 354 /* ignore underscores */ 355 /* and slashed symbols */ 356 (nostrg): 357 if index (substr (tmpstr, crx), "_") = 1 358 | index (substr (tmpstr, crx), "_") = 3 359 | (substr (tmpstr, crx, 1) = "/" 360 & index ("0Oocsb=", substr (tmpstr, crx + 2, 1)) ^= 0) 361 | (substr (tmpstr, crx + 2, 1) = "/" 362 & index ("0Oocsb=", substr (tmpstr, crx, 1)) ^= 0) 363 then 364 do; 365 scndx = crx + 2; /* step over it */ 366 goto scan_continue; /* and continue */ 367 end; 368 369 overstrike_loop: /* do all BSP chars */ 370 do scndx = crx by 2 371 while (scndx < length (tmpstr) & ^last_symb 372 & substr (tmpstr, scndx + 1, 1) = BSP); 373 374 last_symb_: 375 if substr (tmpstr, scndx, 1) = "1" 376 then size_char = "1"; /* one-highs are special */ 377 378 else 379 do; /* which symbol? */ 380 isym = 381 index (const.art_symbols, substr (tmpstr, scndx, 1)); 382 383 if isym > 0 /* if found, set symbol flag */ 384 then 385 do; 386 symbndx = isym; 387 substr (cflags, symbndx, 1) = "1"b; 388 389 if size_char = NUL 390 /* could it also be a valid size? */ 391 & 392 index ( 393 "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 394 , substr (tmpstr, scndx, 1)) ^= 0 395 then size_char = substr (tmpstr, scndx, 1); 396 end; 397 398 else if isym = 0 /* not in art symbol set */ 399 then 400 do; 401 if size_char = NUL 402 /* could it also be a valid size? */ 403 & 404 index ( 405 "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 406 , substr (tmpstr, scndx, 1)) ^= 0 407 then size_char = substr (tmpstr, scndx, 1); 408 409 else 410 do; 411 call ioa_$rsnnl ("\^3.3b", bad_char, 0, 412 unspec (substr (tmpstr, scndx, 1))); 413 call comp_report_ (2, 0, 414 "Bad overstrike, " || bad_char 415 || ", at character " 416 || ltrim (char (scndx)) || " of input line.", 417 addr (txtlin.info), txtstr); 418 syntax_error = "1"b; 419 if substr (tmpstr, scndx + 1, 1) = BSP 420 then scndx = scndx + 2; 421 /* step over bad pair */ 422 goto scan_continue; 423 end; 424 end; 425 end; 426 end overstrike_loop; 427 428 if ^last_symb /* once more for last symbol */ 429 then 430 do; 431 last_symb = "1"b; 432 goto last_symb_; 433 end; 434 else scndx = scndx - 2; /* back out last scan */ 435 436 if detail_sw /* make debug string */ 437 then symbstr = /* translating BS's to ,'s */ 438 translate (substr (tmpstr, crx, scndx - crx + 1), ",", 439 BSP); /* is symbol multiline math? */ 440 if index (cflags, "1"b) <= last_ml_math 441 then if (substr (cflags, last_ml_math + 1) 442 & "01010001011110000111"b) = "0"b 443 then ctbe.size = rank (size_char); 444 else ; /* set symbol size */ 445 /* is it another 1-high? */ 446 else if index (cflags, "1"b) <= last_math 447 & substr (cflags, last_math + 1) = "0"b 448 then ctbe.size = 49; /* set symbol size */ 449 450 else 451 do; /* all other flags */ 452 i, j = 1; 453 do while (j ^= 0); 454 j = index (substr (cflags, i), "1"b); 455 if j > 0 456 then 457 do; 458 i = i + j; 459 trans_str = 460 trans_str || substr (const.art_symbols, i - 1, 1); 461 end; 462 end; 463 end; 464 /**** any preceding text? scan for 1st non-blank since last symbol */ 465 j = verify (substr (tmpstr, prx + 1, crx - prx - 1), " " || PAD); 466 467 if j > 0 /* found one */ 468 then 469 do; /* move to insert text */ 470 ctb.e (crs + 1) = ctb.e (crs); 471 /* clear vacated entry */ 472 unspec (ctb.e (crs)) = ""b; 473 ctbe.base = base; /* baseline offset */ 474 ctbe.text = "1"b; /* text entry flag */ 475 /* input text start */ 476 prx, ctbe.tstrt = prx + j; 477 ctbe.len, k = crx - prx; 478 /* input length */ 479 prs_pos, ctbe.pos = /* output position */ 480 prs_pos + prs_width 481 + oneEN * (j - 1 + zer_adj - pad_adj); 482 zer_adj, pad_adj, prs_width = 0; 483 484 unspec (meas1) = "0"b; 485 call comp_measure_ (rtrim (substr (tmpstr, prx, k)), 486 addr (txtlin.font), (txtlin.quad = just), "1"b, 487 txtlin.quad, bin (txtlin.quad = just) * txtlin.net, 488 addr (meas1), addr (meas2), addr (txtlin.info)); 489 /* output width */ 490 ctbe.width = meas1.width; 491 ctbe.wsp = meas1.avg; 492 ctbe.len, k = meas1.chrct; 493 prx = prx + k - 1; /* step to end of text */ 494 /* new position */ 495 prs_pos = prs_pos + ctbe.width + ctbe.wsp; 496 497 if detail_sw 498 then 499 do; 500 call ioa_ ("^-^2d- ^f (b^f w^f) ^d ""^a""", crs, 501 show (ctbe.pos, 12000), show (ctbe.base, 12000), 502 show (ctbe.width, 12000), ctbe.len, 503 comp_util_$display ( 504 substr (tmpstr, ctbe.tstrt, ctbe.len), 0, "0"b)); 505 end; 506 507 crs = crs + 1; /* we have a valid text entry */ 508 /* point to symbol just moved */ 509 cptr = addr (ctb.e (crs)); 510 end; 511 512 /* set position */ 513 ctbe.pos = 514 prs_pos + prs_width + oneEN * (crx - prx - 1 + zer_adj); 515 ctbe.base = base; 516 zer_adj = 0; 517 518 /* CHECK SYNTAX OF GIVEN SYMBOLS */ 519 520 /* MATH SYMBOLS */ 521 if ctbe.size ^= 0 522 then 523 do; 524 if ctbe.size = 48 /* normalize symbol size */ 525 then ctbe.size = 10; 526 else if ctbe.size > 96 527 then ctbe.size = ctbe.size - 86; 528 else if ctbe.size > 64 529 then ctbe.size = ctbe.size - 34; 530 else ctbe.size = ctbe.size - 48; 531 532 if substr (cflags, 1, last_ml_math) ^= "0"b 533 then 534 do; 535 if ctbe.size > 56 /* symbol size too big? */ 536 then 537 do; 538 bad_math_size: 539 call comp_report_ (2, 0, 540 "Math symbol size too big at column " 541 || 542 ltrim (char (divide (ctbe.pos, 7200, 17, 0))), 543 addr (txtlin.info), txtstr); 544 syntax_error = "1"b; 545 goto scan_continue; 546 end; 547 end; 548 549 else if substr (cflags, 1, last_math) ^= "0"b 550 then if ctbe.size > 1 551 then goto bad_math_size; 552 /* which symbol */ 553 i = index (cflags, "1"b); 554 /* add to translate string */ 555 trans_str = trans_str || substr (const.art_symbols, i, 1); 556 /* size char, too */ 557 trans_str = trans_str || size_char; 558 /* all ML math are fixed width */ 559 ctbe.width = art_symbol_width; 560 561 if ctbe.size > 1 /* position according */ 562 then /* to symbol size */ 563 do; /* odds move down */ 564 if mod (ctbe.size, 2) ^= 0 565 then ctbe.base = base + 3000; 566 /* evens move up */ 567 else ctbe.base = base - 3000; 568 end; /**/ 569 /* set symbol's line index */ 570 if crl = 1 | ctbe.size = 1 571 then ctbe.lndx = 1; /* first line or one-high */ 572 /* search previous line for this */ 573 else if crl > 1 /* symbol in this position */ 574 then 575 do; 576 do i = 1 to ptb.scnt 577 while ( 578 ^(substr (addr (ptb.e (i)) -> pflags, symbndx, 1) 579 = "1"b & ptb.pos (i) = ctbe.pos 580 & ptb.size (i) = ctbe.size 581 & ptb.lndx (i) ^= ptb.size (i))); 582 end; 583 if i > ptb.scnt /* if not found, then this is a top */ 584 then ctbe.lndx = 1; 585 else 586 do; /* record symbol continuation */ 587 ctbe.lndx = ptb.lndx (i) + 1; 588 end; 589 end; 590 else ctbe.lndx = 1; /* no symbols in previous line */ 591 end; /* math symbol syntax check */ 592 593 /* SUB/SUPERSCRIPTS */ 594 else if ctbe.supscr /* superscript? */ 595 then 596 do; 597 if ctbe.daro /* if subscript */ 598 then 599 do; 600 ctbe.supscr = "0"b; 601 /* change flag */ 602 ctbe.subscr = "1"b; 603 ctbe.daro = "0"b; /* reset daro flag */ 604 base = base + 4500; 605 /* drop baseline by a third */ 606 end; 607 608 else 609 do; 610 ctbe.uparo = "0"b;/* reset uparo flag */ 611 base = base - 4500; 612 /* raise baseline by a third */ 613 end; 614 615 /* zer_adj = 1; /* account for zero width symbol */ 616 end; 617 618 else if ctbe.subscr /* subscript? */ 619 then 620 do; 621 if ctbe.uparo 622 then 623 do; /* if superscript */ 624 ctbe.supscr = "1"b; 625 /* change flag */ 626 ctbe.subscr = "0"b; 627 ctbe.uparo = "0"b;/* reset uparo flag */ 628 base = base - 4500; 629 /* raise baseline by a third */ 630 end; 631 632 else 633 do; 634 ctbe.daro = "0"b; /* reset daro flag */ 635 base = base + 4500; 636 /* drop baseline by a third */ 637 end; 638 639 /* zer_adj = 1; /* account for zero width symbol */ 640 end; 641 642 /* HALF LINES */ 643 else if ctbe.hlup /* up? */ 644 then 645 do; 646 if ctbe.daro /* if hline down */ 647 then 648 do; 649 ctbe.hlup = "0"b; /* change flag */ 650 ctbe.hldn = "1"b; 651 ctbe.daro = "0"b; /* reset daro flag */ 652 base = base + 6000; 653 /* drop baseline by a half */ 654 end; 655 656 else 657 do; 658 ctbe.uparo = "0"b;/* reset uparo flag */ 659 base = base - 6000; 660 /* raise baseline by a half */ 661 end; 662 663 /* zer_adj = 1; /* account for zero width symbol */ 664 end; 665 666 else if ctbe.hldn /* down? */ 667 then 668 do; 669 if ctbe.uparo /* if hline up */ 670 then 671 do; 672 ctbe.hlup = "1"b; /* change flag */ 673 ctbe.hldn = "0"b; 674 ctbe.uparo = "0"b;/* reset uparo flag */ 675 base = base - 6000; 676 /* raise baseline by a half */ 677 end; 678 679 else 680 do; 681 ctbe.daro = "0"b; /* reset daro flag */ 682 base = base + 6000; 683 /* drop baseline by a half */ 684 end; 685 end; 686 687 /* MINIPOSITIONING */ 688 else if index (cflags, "1"b) >= first_mini_pos 689 & index (cflags, "1"b) <= last_mini_pos 690 & substr (cflags, last_mini_pos + 1) = "0"b 691 then 692 do; 693 ctbe.size = rank (size_char) - 48; 694 trans_str = trans_str || size_char; 695 /* bad count? */ 696 if ctbe.size < 0 | ctbe.size > 9 697 then 698 do; 699 call comp_report_ (2, 0, "Invalid miniposition count.", 700 addr (txtlin.info), txtstr); 701 syntax_error = "1"b; 702 goto scan_continue; 703 end; 704 705 if ctbe.uparo 706 then base = base - 1500 * ctbe.size; 707 else if ctbe.daro 708 then base = base + 1500 * ctbe.size; 709 else if ctbe.raro 710 then ctbe.hadj = ctbe.hadj + 1200 * ctbe.size; 711 else if ctbe.laro 712 then ctbe.hadj = ctbe.hadj - 1200 * ctbe.size; 713 /* what direction? */ 714 /* i = index (substr (cflags, first_mini_pos, 4), "1"b); 715* /* add to trans str */ 716 /* trans_str = trans_str || substr (const.art_symbols, i, 1); 717* /* clear flags */ 718 substr (cflags, first_mini_pos, 4) = "0000"b; 719 end; 720 721 /* LINE ART SYNTAX */ 722 723 else 724 do; 725 if ctbe.horiz /* if horiz start */ 726 then 727 do; 728 729 /* starting horizontal rules, boxes, and lozenges */ 730 trans_str = 731 trans_str 732 || substr (const.art_symbols, horiz_ndx, 1); 733 734 if ^ctbe.star /* if NOT also horiz term */ 735 then 736 do; 737 738 /* check all box left parts */ 739 if ctbe.vert /* first, tops & interior Ts */ 740 then 741 do; 742 trans_str = 743 trans_str 744 || substr (const.art_symbols, vert_ndx, 1); 745 746 if crl > 1/* symbol count of previous line */ 747 then prlct = ptb.scnt; 748 else prlct = 0; 749 /* find ptbe having a vertical, a */ 750 /* box part, or a continued */ 751 /* vertical in this col */ 752 do ssym = 1 to prlct 753 while ( 754 ^ 755 ((ptb.vert (ssym) 756 | 757 substr (addr (ptb.e (ssym)) -> pflags, 758 boxtl_ndx, 6) ^= "0"b) & ^ptb.vterm (ssym) 759 & ptb.pos (ssym) = ctbe.pos)); 760 end; 761 762 /* box top left corners */ 763 if ssym > prlct 764 then /* cant be an interior corner, */ 765 do; /* so open a new rule */ 766 ctb.vopen = ctb.vopen + 1; 767 ctb.open = ctb.open + 1; 768 769 if hopen 770 /* if there's already a rule, */ 771 then /* its a top intersection */ 772 ctbe.boxt = "1"b; 773 774 else /* its a top left corner */ 775 ctbe.boxtl = "1"b; 776 777 ctbe.width = oneEN; 778 end; 779 780 /* box interior left corners */ 781 else 782 do; 783 if hopen 784 /* a box + */ 785 then ctbe.boxx = "1"b; 786 /* else a left T */ 787 else ctbe.boxl = "1"b; 788 ctbe.width = oneEN; 789 end; 790 ctbe.vert, ctbe.horiz = "0"b; 791 end; 792 793 /* box bottom left corners */ 794 if ctbe.vterm & ^(ctbe.lslnt | ctbe.rslnt) 795 then 796 do; 797 trans_str = 798 trans_str 799 || substr (const.art_symbols, vterm_ndx, 1); 800 /* get symbol count of previous line */ 801 if crl > 1 802 then prlct = ptb.scnt; 803 else prlct = 0; 804 /* skip ptbe having a vertical, a box */ 805 /* part or a continued vertical */ 806 /* in this col */ 807 do ssym = 1 to prlct 808 while ( 809 ^ 810 ((ptb.vert (ssym) 811 | 812 substr (addr (ptb.e (ssym)) -> pflags, 813 boxtl_ndx, 6) ^= "0"b) & ^ptb.vterm (ssym) 814 & abs (ptb.pos (ssym) - ctbe.pos) 815 < comp_dvt.min_WS)); 816 end; /* oops! an orphan */ 817 if ssym > prlct 818 then call comp_report_$ctlstr (2, 0, 819 addr (txtlin.info), txtstr, 820 "Orphan box corner at column ^d", 821 divide (ctbe.pos, 12000, 17, 0)); 822 823 else /* we have a matching box part */ 824 do; /* close a rule */ 825 ctb.vopen = ctb.vopen - 1; 826 ctb.open = ctb.open - 1; 827 828 if hopen 829 /* if theres already a rule */ 830 then ctbe.boxb = "1"b; 831 /* bottom intersection */ 832 else ctbe.boxbl = "1"b; 833 /* bottom left corner */ 834 ctbe.width = oneEN; 835 836 ctbe.vterm, ctbe.horiz = "0"b; 837 end; 838 end; 839 840 /* upper left lozenge corner? */ 841 if ctbe.rslnt & ^ctbe.vterm 842 then 843 do; 844 trans_str = 845 trans_str 846 || substr (const.art_symbols, rslnt_ndx, 1); 847 ctbe.loztl, loztop = "1"b; 848 ctbe.rslnt, ctbe.horiz = "0"b; 849 ctb.ropen = ctb.ropen + 1; 850 ctb.open = ctb.open + 1; 851 ctbe.width = oneEN; 852 end; 853 854 /* lower left lozenge corner? */ 855 if ctbe.lslnt & ctbe.vterm & ^ctbe.rslnt 856 then 857 do; /* scan previous line for ... */ 858 do ssym = 1 to ptb.scnt 859 /* loz left ... */ 860 while (^(((ptb.lslnt (ssym) 861 /* slant ... */ 862 & ptb.pos (ssym) = ctbe.pos - twoEN) 863 | (ptb.lozl (ssym) 864 /* or left vertex ... */ 865 & ptb.pos (ssym) = ctbe.pos - oneEN)) 866 & ^ptb.lterm (ssym))); 867 /* without a terminator */ 868 end; 869 870 if ssym <= ptb.scnt 871 /* if found, its a lower left */ 872 then 873 do; 874 trans_str = 875 trans_str 876 || 877 substr (const.art_symbols, lslnt_ndx, 1) 878 ; 879 ctbe.lozbl = "1"b; 880 ctbe.lslnt, ctbe.horiz, ctbe.vterm = "0"b; 881 ctb.lopen = ctb.lopen - 1; 882 ctbe.width = oneEN; 883 ctb.open = ctb.open - 1; 884 end; 885 end; 886 887 hopen = "1"b; /* rule is open */ 888 if ctbe.horiz 889 & ^(ctbe.lslnt & ctbe.vterm & ctbe.rslnt) 890 then zer_adj = 1; 891 /* just a plain hrule starter */ 892 end; 893 end; 894 895 if ctbe.star /* if horiz term */ 896 & (hopen | ctbe.horiz) 897 /* and there is a rule */ 898 then 899 do; 900 trans_str = 901 trans_str 902 || substr (const.art_symbols, star_ndx, 1); 903 904 /* check all box right parts */ 905 if ctbe.vert /* first, check tops and interiors */ 906 then 907 do; 908 trans_str = 909 trans_str 910 || substr (const.art_symbols, vert_ndx, 1); 911 912 if crl > 1 /* symbol count of previous line */ 913 then prlct = ptb.scnt; 914 else prlct = 0; 915 /**/ 916 /* skip ptbe having a vertical, */ 917 /* a box part, or a continued */ 918 /* vertical in this col */ 919 do ssym = 1 to prlct 920 while ( 921 ^ 922 ((ptb.vert (ssym) 923 | 924 substr (addr (ptb.e (ssym)) -> pflags, 925 boxtl_ndx, 6) ^= "0"b) & ^ptb.vterm (ssym) 926 & ptb.pos (ssym) = ctbe.pos)); 927 end; 928 929 /* box top right corners */ 930 if ssym > prlct 931 then 932 do; 933 ctb.vopen = ctb.vopen + 1; 934 ctb.open = ctb.open + 1; 935 ctbe.boxtr = "1"b; 936 zer_adj = 1; 937 ctbe.vert, ctbe.horiz, hopen = "0"b; 938 end; 939 940 /* box interior right corners */ 941 else 942 do; 943 ctbe.boxr = "1"b; 944 zer_adj = 1; 945 ctbe.vert, ctbe.star, hopen = "0"b; 946 end; 947 end; 948 949 /* box bottom right corners */ 950 else if ctbe.vterm & ^(ctbe.lslnt | ctbe.rslnt) 951 then 952 do; 953 trans_str = 954 trans_str 955 || substr (const.art_symbols, vterm_ndx, 1); 956 /* symbol count of previous line */ 957 if crl > 1 958 then prlct = ptb.scnt; 959 else prlct = 0; 960 961 do ssym = 1 to prlct 962 while ( 963 ^ 964 ((ptb.vert (ssym) 965 | substr (addr (ptb.e (ssym)) -> 966 /* box part.. */ 967 pflags, boxtl_ndx, 6) ^= "0"b) 968 & ^ptb.vterm (ssym) 969 & abs (ptb.pos (ssym) - ctbe.pos) 970 < comp_dvt.min_WS)); 971 end; /**/ 972 /* oops! an orphan */ 973 if ssym > prlct 974 then call comp_report_$ctlstr (2, 0, 975 addr (txtlin.info), txtstr, 976 "Orphan box corner at column ^d", 977 divide (ctbe.pos, 12000, 17, 0)); 978 /* we have a matching box part */ 979 else 980 do; 981 ctb.vopen = ctb.vopen - 1; 982 ctb.open = ctb.open - 1; 983 ctbe.boxbr = "1"b; 984 zer_adj = 1; 985 ctbe.vterm, ctbe.horiz, hopen = "0"b; 986 end; 987 end; 988 989 /* upper right lozenge corner? */ 990 else if ctbe.lslnt & loztop 991 then 992 do; 993 ctbe.lslnt, ctbe.star, loztop = "0"b; 994 ctbe.loztr = "1"b; 995 zer_adj = 1; 996 ctb.open = ctb.open + 1; 997 ctb.lopen = ctb.lopen + 1; 998 end; 999 1000 /* lower right lozenge corner? */ 1001 else if ctbe.rslnt & ctbe.vterm 1002 then 1003 do; 1004 do ssym = 1 to ptb.scnt while 1005 /* look for ... */ 1006 (^(((ptb.rslnt (ssym) & 1007 /* right slant */ 1008 ptb.pos (ssym) - twoEN = ctbe.pos) 1009 | (ptb.lozr (ssym) & 1010 /* or right vertex */ 1011 ptb.pos (ssym) - oneEN = ctbe.pos)) 1012 & ^ptb.rterm (ssym))); 1013 end; 1014 1015 if ssym <= ptb.scnt 1016 /* if found */ 1017 then 1018 do; /* its a lower right */ 1019 trans_str = 1020 trans_str 1021 || substr (const.art_symbols, rslnt_ndx, 1); 1022 ctbe.lozbr = "1"b; 1023 zer_adj = 1; 1024 ctbe.rslnt, ctbe.star, ctbe.vterm = "0"b; 1025 ctb.ropen = ctb.ropen - 1; 1026 ctb.open = ctb.open - 1; 1027 end; 1028 end; /**/ 1029 /* if none of the above */ 1030 else 1031 do; 1032 if ctbe.star 1033 then if ctbe.raro 1034 then ctbe.width = oneEN; 1035 else zer_adj = 1; 1036 end; /**/ 1037 /* close the rule */ 1038 hopen = "0"b; 1039 end; 1040 1041 /* left slants */ 1042 if ctbe.lslnt 1043 then 1044 do; 1045 if ctbe.pos = 0 1046 then /* cant be in column 1 */ 1047 do; 1048 call comp_report_ (2, 0, 1049 "Left slant line violates left margin.", 1050 addr (txtlin.info), txtstr); 1051 syntax_error = "1"b; 1052 goto scan_continue; 1053 end; 1054 1055 /* lozenge vertices */ 1056 if crl > 1 & ctbe.rslnt & ctbe.vterm 1057 then 1058 do; /**/ 1059 /* first try left vertex */ 1060 do ssym = 1 to ptb.scnt 1061 while ( 1062 ^((ptb.rslnt (ssym) | ptb.loztl (ssym)) 1063 & ptb.pos (ssym) - oneEN = ctbe.pos)); 1064 end; /**/ 1065 /* if found */ 1066 if ssym <= ptb.scnt 1067 then 1068 do; 1069 pptr = addr (ptb.e (ssym)); 1070 /* set adjustment */ 1071 if ptbe.loztl 1072 then ctbe.hadj = ptbe.hadj - EN6; 1073 else ctbe.hadj = ptbe.hadj - EN3; 1074 /* change flags */ 1075 ctbe.lslnt, ctbe.vterm, ctbe.rslnt = "0"b; 1076 ctbe.lozl = "1"b; 1077 ctbe.width = art_symbol_width; 1078 zer_adj = 0; 1079 ctb.ropen = ctb.ropen - 1; 1080 ctb.lopen = ctb.lopen + 1; 1081 /* Note that ALL right slant */ 1082 /* logic is skipped */ 1083 goto end_given_rs; 1084 end; /* try right vertex */ 1085 do ssym = 1 to ptb.scnt 1086 while ( 1087 ^((ptb.lslnt (ssym) | ptb.loztr (ssym)) 1088 & ptb.pos (ssym) + oneEN = ctbe.pos)); 1089 end; /**/ 1090 /* if found */ 1091 if ssym <= ptb.scnt 1092 then 1093 do; /* set adjustment */ 1094 ctbe.hadj = ptb.hadj (ssym) + EN3; 1095 /* change flags */ 1096 ctbe.rslnt, ctbe.lslnt, ctbe.vterm = "0"b; 1097 ctbe.lozr = "1"b; 1098 ctbe.width = oneEN; 1099 /* adjust open slant counts */ 1100 ctb.lopen = ctb.lopen - 1; 1101 ctb.ropen = ctb.ropen + 1; 1102 /* Note that ALL right slant logic */ 1103 /* is skipped */ 1104 goto end_given_rs; 1105 end; 1106 end; 1107 1108 /* lozenge corners */ 1109 1110 else if crl = 1 /* first line? */ 1111 then 1112 do; 1113 ctb.lopen = ctb.lopen + 1; 1114 /* open a left slant rule */ 1115 ctb.open = ctb.open + 1; 1116 goto check_ls_term; 1117 end; /* look for a continued rule */ 1118 do ssym = 1 to ptb.scnt 1119 while ( 1120 ^((ptb.lslnt (ssym) | ptb.lstrt (ssym)) 1121 & ptb.pos (ssym) + oneEN = ctbe.pos)); 1122 end; 1123 1124 if ssym <= ptb.scnt 1125 /* found one? */ 1126 then 1127 do; 1128 ctbe.loz = ptb.loz (ssym); 1129 ctbe.hadj = ptb.hadj (ssym) + EN3; 1130 goto check_ls_term; 1131 end; 1132 1133 ctb.lopen = ctb.lopen + 1; 1134 /* count a new slant rule */ 1135 ctb.open = ctb.open + 1; 1136 1137 check_ls_term: 1138 ctbe.width = oneEN; 1139 1140 if ctb.lopen > 0 & ctbe.vterm 1141 then 1142 do; 1143 ctb.open = ctb.open - 1; 1144 /* if a terminator, adjust rule count */ 1145 ctb.lopen = ctb.lopen - 1; 1146 ctbe.vterm = "0"b; 1147 /* change flag */ 1148 ctbe.lterm = "1"b; 1149 end; 1150 end_given_ls: /* end given left slant syntax */ 1151 end; 1152 1153 /* right slants */ 1154 if ctbe.rslnt 1155 then 1156 do; 1157 1158 if ctbe.pos = 0 /* if in column 1 */ 1159 then 1160 do; 1161 call comp_report_ (2, 0, 1162 "Right slant line violates left margin.", 1163 addr (txtlin.info), txtstr); 1164 syntax_error = "1"b; 1165 goto scan_continue; 1166 end; 1167 1168 if crl = 1 /* if first line of an art block */ 1169 then 1170 do; 1171 ctb.ropen = ctb.ropen + 1; 1172 /* open a right slant rule */ 1173 ctb.open = ctb.open + 1; 1174 goto check_rs_term; 1175 end; 1176 1177 do ssym = 1 to ptb.scnt 1178 /* look for a continued rule */ 1179 while ( 1180 ^((ptb.rslnt (ssym) | ptb.rstrt (ssym)) 1181 & ptb.size (ssym) = 0 1182 & ptb.pos (ssym) - oneEN = ctbe.pos)); 1183 end; 1184 1185 if ssym <= ptb.scnt 1186 /* found one? */ 1187 then 1188 do; 1189 ctbe.loz = ptb.loz (ssym); 1190 ctbe.hadj = ptb.hadj (ssym) - EN3; 1191 goto check_rs_term; 1192 end; 1193 1194 ctb.ropen = ctb.ropen + 1; 1195 /* count a new right slant rule */ 1196 ctb.open = ctb.open + 1; 1197 1198 check_rs_term: 1199 if ctb.ropen > 0 & ctbe.vterm 1200 then 1201 do; 1202 ctb.open = ctb.open - 1; 1203 /* if a terminator, adjust rule count */ 1204 ctb.ropen = ctb.ropen - 1; 1205 ctbe.vterm = "0"b; 1206 /* change flag */ 1207 ctbe.rterm = "1"b; 1208 end; 1209 end_given_rs: /* end given right slant syntax */ 1210 end; 1211 1212 /* vertical rules */ 1213 if ctbe.vert /* if a vertical rule */ 1214 then 1215 do; 1216 trans_str = 1217 trans_str 1218 || substr (const.art_symbols, vert_ndx, 1); 1219 1220 if crl = 1 /* if first line of an art block */ 1221 then 1222 do; /* open a vertical rule */ 1223 ctb.vopen = ctb.vopen + 1; 1224 ctb.open = ctb.open + 1; 1225 end; 1226 1227 else 1228 do; /* check for a redundant symbol */ 1229 do ssym = 1 to ptb.scnt 1230 while ( 1231 ^ 1232 ((ptb.vert (ssym) 1233 | 1234 substr (addr (ptb.e (ssym)) -> pflags, 1235 boxtl_ndx, 6) ^= "0"b) & ^ptb.vterm (ssym) 1236 & ptb.pos (ssym) = ctbe.pos)); 1237 end; /**/ 1238 /* if not redundant */ 1239 if ssym > ptb.scnt 1240 then 1241 do; /* open a new rule */ 1242 ctb.vopen = ctb.vopen + 1; 1243 ctb.open = ctb.open + 1; 1244 end; 1245 end; 1246 1247 ctbe.width = 0; 1248 zer_adj = 1; 1249 1250 if ctbe.daro 1251 then trans_str = 1252 trans_str 1253 || substr (const.art_symbols, daro_ndx, 1); 1254 if ctbe.uparo 1255 then trans_str = 1256 trans_str 1257 || substr (const.art_symbols, uparo_ndx, 1); 1258 end; 1259 1260 if ctbe.vterm & ^ctbe.lslnt & ^ctbe.rslnt 1261 then 1262 do; 1263 trans_str = 1264 trans_str 1265 || substr (const.art_symbols, vterm_ndx, 1); 1266 /* check for an overprint */ 1267 if crl > 1 & ctb.vopen > 0 & ctb.depth = ptb.depth 1268 then 1269 do; 1270 do ssym = 1 to ptb.scnt 1271 while ( 1272 ^ 1273 ((ptb.vert (ssym) 1274 | 1275 substr (addr (ptb.e (ssym)) -> pflags, 1276 boxbl_ndx, 3) = "0"b) & ^ptb.vterm (ssym) 1277 & ptb.pos (ssym) = ctbe.pos)); 1278 end; 1279 if ssym <= ptb.scnt 1280 /* if it overprints */ 1281 then ctbe.blind = "1"b; 1282 /* make this one blind */ 1283 end; 1284 1285 ctb.open = ctb.open - 1; 1286 ctb.vopen = ctb.vopen - 1; 1287 ctbe.width = 0; 1288 zer_adj = 1; 1289 ctbe.vert = "1"b; /* assure vert is set */ 1290 end; 1291 1292 /* circles */ 1293 if (ctbe.lprn | ctbe.rprn) & ctbe.size = 0 1294 /* not a math symbol */ 1295 then 1296 do; 1297 if copen = 0 & ctbe.lprn & ^ctbe.rprn 1298 then copen = copen + 1; 1299 1300 if copen > 0 & ctbe.rprn 1301 then copen = copen - 1; 1302 ctbe.width = oneEN; 1303 if ctbe.lprn 1304 then trans_str = 1305 trans_str 1306 || substr (const.art_symbols, lprn_ndx, 1); 1307 if ctbe.rprn 1308 then trans_str = 1309 trans_str 1310 || substr (const.art_symbols, rprn_ndx, 1); 1311 end; 1312 1313 /* diamonds */ 1314 if ctbe.uparo & ^ctbe.vert 1315 then 1316 do; 1317 if ctbe.pos = 0 /* if column 1 */ 1318 then 1319 do; 1320 call comp_report_ (2, 0, 1321 "Diamond top vertex in column 1", 1322 addr (txtlin.info), txtstr); 1323 syntax_error = "1"b; 1324 end; 1325 1326 else 1327 do; /* open a new diamond */ 1328 ctbe.diam = "1"b; 1329 ctb.open = ctb.open + 1; 1330 ctb.dopen = ctb.dopen + 1; 1331 ctbe.width = oneEN; 1332 end; 1333 end; 1334 1335 if ctb.dopen > 0 /* other diamond parts */ 1336 then 1337 do; 1338 if ctbe.laro /* if a left arrow */ 1339 & ^(ctbe.star | ctbe.horiz 1340 /* and not horiz */ 1341 | ctbe.raro) /* or point-to-point arrows */ 1342 then 1343 do; /* then a diamond left vertex */ 1344 ctbe.diam = "1"b; 1345 1346 if ctb.dopen > 0 1347 /* if any open, */ 1348 & crl > 1/* and this not the first line, */ 1349 then 1350 do; /* scan previous line for a */ 1351 /* diamond right slant */ 1352 do ssym = 1 to ptb.scnt 1353 while ( 1354 ^(ptb.rslnt (ssym) & ptb.diam (ssym) 1355 & ctbe.pos = ptb.pos (ssym) - oneEN)); 1356 end; /**/ 1357 /* if a right slant was found */ 1358 if ssym <= ptb.scnt 1359 then ctbe.hadj = ptb.hadj (ssym) - EN6; 1360 end; 1361 ctbe.width = oneEN; 1362 end; /** 1363* /* if a right arrow */ 1364 if ctbe.raro /* & not horiz */ 1365 & ^ctbe.star & ^ctbe.horiz 1366 then 1367 do; /* its a diamond right vertex */ 1368 ctbe.diam = "1"b; 1369 /* if any diamonds open, and */ 1370 /* this isnt the first line, */ 1371 /* scan previous line for a */ 1372 /* for a diamond left slant */ 1373 if ctb.dopen > 0 & crl > 1 1374 then 1375 do; 1376 do ssym = 1 to ptb.scnt 1377 while ( 1378 ^((ptb.lslnt (ssym)) & ptb.diam (ssym) 1379 & ctbe.pos = ptb.pos (ssym) + oneEN)); 1380 end; /**/ 1381 /* if one was found */ 1382 if ssym <= ptb.scnt 1383 then ctbe.hadj = ptb.hadj (ssym) - EN6; 1384 end; 1385 ctbe.width = oneEN; 1386 end; 1387 1388 if ctb.dopen > 0 & ctbe.daro & ^ctbe.vert 1389 then 1390 do; 1391 ctbe.diam = "1"b; 1392 ctbe.width = oneEN; 1393 ctb.open = ctb.open - 1; 1394 ctb.dopen = ctb.dopen - 1; 1395 end; 1396 end; 1397 end; /* line art syntax check */ 1398 1399 db_pr: /* its a valid symbol */ 1400 prs_pos = ctbe.pos; /* + ctbe.hadj;*/ 1401 prs_width = ctbe.width; /**/ 1402 /* translate art construct to PADs */ 1403 substr (tmpstr, crx, scndx - crx + 1) = 1404 translate (substr (tmpstr, crx, scndx - crx + 1), 1405 high (length (trans_str)), trans_str); 1406 /* is there an overstrike? */ 1407 if substr (tmpstr, crx, scndx - crx + 1) 1408 ^= high (scndx - crx + 1) 1409 then pad_adj = 1; 1410 if verify (substr (tmpstr, crx), PAD) > 0 1411 then prx = crx + verify (substr (tmpstr, crx), PAD) - 2; 1412 1413 if detail_sw 1414 then call ioa_ ("^-^2d- ^f (h^f b^f w^f z^d p^d) ^a", crs, 1415 show (prs_pos, 12000), show (ctbe.hadj, 12000), 1416 show (ctbe.base, 12000), show (ctbe.width, 12000), 1417 zer_adj, pad_adj, symbstr); 1418 ctb.scnt = crs; 1419 crs = crs + 1; /* advance to next entry */ 1420 cptr = addr (ctb.e (crs)); 1421 unspec (ctb.e (crs)) = ""b; 1422 1423 scan_continue: /* find next BSP or DC1 */ 1424 j = search (substr (tmpstr, scndx + 1), BSP || DC1); 1425 1426 if j > 0 /* if there is one */ 1427 then 1428 do; /**/ 1429 /* if its DC1 */ 1430 if substr (tmpstr, scndx + j, 1) = DC1 1431 then 1432 do; /* step over dev ctl string */ 1433 scndx = scndx 1434 + rank (substr (tmpstr, scndx + j + 2, 1)) + j + 2; 1435 goto scan_continue; 1436 end; 1437 1438 scndx, crx = scndx + j - 1; 1439 /* set index to next artwork char */ 1440 end; 1441 1442 else crx = length (tmpstr) + 1; 1443 /* aint no more */ 1444 end scan_loop; 1445 end; 1446 1447 if crx > 1 & crx < length (tmpstr) 1448 /* check symbol count limit */ 1449 then 1450 do; 1451 call comp_report_ (2, 0, 1452 "Implementation restriction. " 1453 || "No more than 100 symbols in a line.", addr (txtlin.info), 1454 txtstr); 1455 syntax_error = "1"b; 1456 goto build; /* go build what we have */ 1457 end; 1458 1459 /* any trailing text? */ 1460 if length (tmpstr) > prx /* anything after the last symbol? */ 1461 then 1462 do; 1463 j = verify (substr (tmpstr, /* scan for 1st non-blank since */ 1464 prx + 1), " " || PAD); /* last symbol */ 1465 1466 if j > 0 1467 then 1468 do; /* add entry for trailing text */ 1469 crs, ctb.scnt = ctb.scnt + 1; 1470 cptr = addr (ctb.e (crs)); 1471 unspec (ctb.e (crs)) = ""b; 1472 /* and clear it */ 1473 ctbe.text = "1"b; /* set text entry flag */ 1474 ctbe.base = base; /* set baseline offset */ 1475 1476 ctbe.tstrt = prx + j; /* input start */ 1477 ctbe.len = length (tmpstr) - prx - j + 1; 1478 1479 if ^(ctb.scnt = 1 & ctbe.text) | ctbe.width = 0 1480 then 1481 do; 1482 unspec (meas1) = "0"b; 1483 call comp_measure_ (substr (tmpstr, ctbe.tstrt), 1484 addr (txtlin.font), (txtlin.quad = just), "1"b, 1485 txtlin.quad, bin (txtlin.quad = just) * txtlin.net, 1486 addr (meas1), addr (meas2), addr (txtlin.info)); 1487 ctbe.width = meas1.width + meas1.avg; 1488 end; 1489 else meas1 = txtlin.cur; 1490 1491 ctbe.width = meas1.width; 1492 /* effective text width */ 1493 ctbe.wsp = meas1.avg; /**/ 1494 /* set output position */ 1495 if txtlin.quad = quadr /* setting right */ 1496 then ctbe.pos = prs_pos + txtlin.net - ctbe.width - ctbe.wsp; 1497 /* setting center */ 1498 else if txtlin.quad = quadc 1499 then ctbe.pos = 1500 prs_pos 1501 + comp_dvt.min_WS 1502 * 1503 round ( 1504 divide (txtlin.net - meas1.width - ctbe.wsp, 1505 2 * comp_dvt.min_WS, 17, 1), 0); 1506 1507 else ctbe.pos = /* setting left or justfifying */ 1508 prs_pos + prs_width 1509 + oneEN * (j - 1 + zer_adj - pad_adj); 1510 1511 if ctb.scnt > 1 | ctb.open > 0 1512 then if txtlin.quad ^= just 1513 then txtlin.quad = quadl; 1514 1515 if detail_sw 1516 then call ioa_ ("^-^2d- ^f (h^f w^f) ^d ""^a""", crs, 1517 show (ctbe.pos, 12000), show (ctbe.hadj, 12000), 1518 show (ctbe.width, 12000), ctbe.len, 1519 comp_util_$display ( 1520 substr (tmpstr, ctbe.tstrt, ctbe.len), 0, "0"b)); 1521 end; 1522 end; 1523 1524 /* FINAL SYNTAX CHECK FOR LINE ART */ 1525 1526 /* horizontals */ 1527 if hopen 1528 then 1529 do; 1530 call comp_report_ (2, 0, "Unterminated horizonal line.", 1531 addr (txtlin.info), txtstr); 1532 ctbe.star = "1"b; /* term it */ 1533 syntax_error = "1"b; 1534 hopen = "0"b; /* close the open line */ 1535 end; 1536 1537 /* circles */ 1538 if copen > 0 1539 then 1540 do; 1541 call comp_report_ (2, 0, "Missing right semi-circle(s).", 1542 addr (txtlin.info), txtstr); 1543 syntax_error = "1"b; 1544 copen = 0; /* close it */ 1545 end; 1546 1547 /* empty line - all lines continued */ 1548 if ctb.scnt = 0 1549 then 1550 do; 1551 cptr = addr (ctb.e (1)); /* clear 1st text entry */ 1552 unspec (ctbe) = "0"b; 1553 1554 if detail_sw 1555 then call ioa_ ("^-1- ^f Blank line", show (ctbe.pos, 12000)); 1556 end; 1557 1558 /* if any open lineart stuff */ 1559 if ctb.open > 0 & crl > 1 1560 then 1561 do; 1562 1563 /* verticals */ 1564 if ctb.vopen > 0 /* if there are still some open */ 1565 then 1566 do ssym = 1 to ptb.scnt; /* scan previous line */ 1567 1568 if (ptb.vert (ssym) 1569 | substr (addr (ptb.e (ssym)) -> pflags, boxtl_ndx, 6) 1570 ^= "0"b) & ^ptb.vterm (ssym) 1571 then 1572 do; /* for each one found, look for a */ 1573 /* matching one in current line */ 1574 do i = 1 to ctb.scnt 1575 while ( 1576 ^ 1577 ((ctb.vert (i) 1578 | substr (addr (ctb.e (i)) -> cflags, boxl_ndx, 6) 1579 ^= "0"b) & ctb.pos (i) = ptb.pos (ssym))); 1580 end; 1581 1582 if i > ctb.scnt /* if no match, add a vertical */ 1583 then 1584 do; 1585 crs, ctb.scnt = i; 1586 cptr = addr (ctb.e (crs)); 1587 unspec (ctb.e (crs)) = ""b; 1588 /* clear an entry */ 1589 ctbe.vert = "1"b; 1590 ctbe.pos = ptb.pos (ssym); 1591 ctbe.base = ptb.base (ssym); 1592 ctbe.blind = /* make it blind if it overprints */ 1593 ctb.depth = ptb.depth; 1594 end; 1595 end; 1596 end; 1597 1598 /* diamonds */ 1599 if ctb.dopen > 0 /* if there are still diamonds open */ 1600 then 1601 do ssym = 1 to ptb.scnt; /* search previous line for */ 1602 if ptb.diam (ssym) /* diamond parts */ 1603 then 1604 do; 1605 1606 /* diamond top vertices */ 1607 if ptb.uparo (ssym) & ^ptb.daro (ssym) 1608 then 1609 do; 1610 if ctb.scnt > 0 /* look for redundant */ 1611 then /* left side symbol */ 1612 do i = 1 to ctb.scnt 1613 while ( 1614 ^((ctb.rslnt (i) | ctb.laro (i)) 1615 & ctb.pos (i) = ptb.pos (ssym) - oneEN) 1616 & 1617 ^(ctb.daro (i) & ctb.pos (i) = ptb.pos (ssym))); 1618 end; 1619 else i = 1; 1620 1621 if i > ctb.scnt /* if a new symbol is needed */ 1622 then 1623 do; 1624 crs, ctb.scnt = i; 1625 cptr = addr (ctb.e (crs)); 1626 unspec (ctbe) = ""b; 1627 1628 if txtlin.linespace = 0 1629 then 1630 do; 1631 ctbe = ptb.e (ssym); 1632 ctbe.blind = "1"b; 1633 end; 1634 1635 else 1636 do; /* upper left side */ 1637 ctbe.rslnt, ctbe.diam = "1"b; 1638 ctbe.pos = ptb.pos (ssym) - oneEN; 1639 ctbe.hadj = ptb.hadj (ssym) - EN6; 1640 end; 1641 end; /**/ 1642 /* look for redundant */ 1643 if ctb.scnt > 0 /* right side symbol */ 1644 then 1645 do i = 1 to ctb.scnt 1646 while ( 1647 ^((ctb.lslnt (i) | ctb.raro (i)) 1648 & ctb.pos (i) = ptb.pos (ssym) + oneEN) 1649 & 1650 ^(ctb.daro (i) & ctb.pos (i) = ptb.pos (ssym))); 1651 end; 1652 else i = 1; 1653 1654 if i > ctb.scnt /* if a new symbol is needed */ 1655 then 1656 do; 1657 crs, ctb.scnt = i; 1658 cptr = addr (ctb.e (crs)); 1659 unspec (ctbe) = ""b; 1660 1661 if txtlin.linespace = 0 1662 then 1663 do; 1664 ctbe = ptb.e (ssym); 1665 ctbe.blind = "1"b; 1666 end; 1667 1668 else 1669 do; /* upper right side */ 1670 ctbe.lslnt, ctbe.diam = "1"b; 1671 ctbe.pos = ptb.pos (ssym) + oneEN; 1672 ctbe.hadj = ptb.hadj (ssym) + EN3; 1673 end; 1674 end; 1675 end; 1676 1677 /* diamond right slants */ 1678 if ptb.rslnt (ssym) 1679 then 1680 do; 1681 if ctb.scnt > 0 1682 then 1683 do i = 1 to ctb.scnt 1684 while ( 1685 ^((ctbe.rslnt | ctb.laro (i) | ctb.daro (i)) 1686 & ctb.pos (i) = ptb.pos (ssym) - oneEN)); 1687 end; 1688 else i = 1; 1689 1690 if i > ctb.scnt /* new symbol */ 1691 then 1692 do; 1693 crs, ctb.scnt = i; 1694 cptr = addr (ctb.e (crs)); 1695 1696 if txtlin.linespace = 0 1697 then 1698 do; 1699 ctbe = ptb.e (ssym); 1700 ctbe.blind = "1"b; 1701 end; 1702 1703 else 1704 do; 1705 unspec (ctb.e (crs)) = ""b; 1706 /* clear an entry */ 1707 if ptb.pos (ssym) = 0 1708 then 1709 do; 1710 call comp_report_ (2, 0, 1711 "Diamond violates left margin.", 1712 addr (txtlin.info), txtstr); 1713 ctb.dopen = ctb.dopen - 1; 1714 ctb.open = ctb.open - 1; 1715 syntax_error = "1"b; 1716 end; 1717 1718 else 1719 do; 1720 ctbe.rslnt, ctbe.diam = "1"b; 1721 ctbe.pos = ptb.pos (ssym) - oneEN; 1722 ctbe.hadj = ptb.hadj (ssym) - EN3; 1723 ctbe.base = ptb.base (ssym); 1724 end; 1725 end; 1726 end; 1727 end; 1728 1729 /* diamond left slants */ 1730 if ptb.lslnt (ssym) 1731 then 1732 do; 1733 1734 if ctb.scnt > 0 1735 then /* look for previous left slant */ 1736 do i = 1 to ctb.scnt 1737 while ( 1738 ^((ctb.lslnt (i) | ctb.raro (i) | ctb.daro (i)) 1739 & ctb.pos (i) = ptb.pos (ssym) + oneEN)); 1740 end; 1741 else i = 1; 1742 1743 if i > ctb.scnt /* new symbol */ 1744 then 1745 do; 1746 crs, ctb.scnt = i; 1747 cptr = addr (ctb.e (crs)); 1748 1749 if txtlin.linespace = 0 1750 then 1751 do; 1752 ctbe = ptb.e (ssym); 1753 ctbe.blind = "1"b; 1754 end; 1755 1756 else 1757 do; 1758 unspec (ctb.e (crs)) = ""b; 1759 /* clear an entry */ 1760 ctbe.lslnt, ctbe.diam = "1"b; 1761 ctbe.pos = ptb.pos (ssym) + oneEN; 1762 ctbe.hadj = ptb.hadj (ssym) + EN3; 1763 ctbe.base = ptb.base (ssym); 1764 end; 1765 end; 1766 end; 1767 1768 /* diamond left vertices */ 1769 if ssym < ptb.scnt 1770 then if ptb.laro (ssym) & ^ptb.horiz (ssym) 1771 & 1772 ^(ptb.raro (ssym + 1) 1773 & ptb.pos (ssym) = ptb.pos (ssym + 1) - oneEN) 1774 then 1775 do; 1776 if ctb.scnt > 0 1777 then /* look for bottom vertex */ 1778 /* in this line */ 1779 do i = 1 to ctb.scnt 1780 while ( 1781 ^(ctb.daro (i) 1782 & ctb.pos (i) = ptb.pos (ssym) + oneEN)); 1783 end; 1784 else i = 1;/**/ 1785 /* no bottom, add a left slant */ 1786 if i > ctb.scnt 1787 then 1788 do; 1789 crs, ctb.scnt = i; 1790 cptr = addr (ctb.e (crs)); 1791 unspec (ctbe) = ""b; 1792 1793 if txtlin.linespace = 0 1794 then 1795 do; 1796 ctbe = ptb.e (ssym); 1797 ctbe.blind = "1"b; 1798 end; 1799 1800 else 1801 do; 1802 ctbe.lslnt, ctbe.diam = "1"b; 1803 ctbe.pos = ptb.pos (ssym) + oneEN; 1804 ctbe.hadj = ptb.hadj (ssym) + EN3; 1805 ctbe.base = ptb.base (ssym); 1806 end; 1807 end; 1808 end; 1809 1810 /* diamond right vertices */ 1811 if ssym > 1 /* must be left vertex on same line */ 1812 then if ptb.raro (ssym) & ^ptb.horiz (ssym) 1813 & 1814 ^(ptb.laro (ssym - 1) 1815 & ptb.pos (ssym) = ptb.pos (ssym - 1) + oneEN) 1816 then 1817 do; /**/ 1818 /* look for bottom vertex */ 1819 /* on this line */ 1820 if ctb.scnt > 0 1821 then 1822 do i = 1 to ctb.scnt 1823 while ( 1824 ^(ctb.daro (i) 1825 & ctb.pos (i) = ptb.pos (ssym) - oneEN)); 1826 end; 1827 else i = 1;/**/ 1828 /* if no bottom add a right slant */ 1829 if i > ctb.scnt 1830 then 1831 do; 1832 crs, ctb.scnt = i; 1833 cptr = addr (ctb.e (crs)); 1834 unspec (ctb.e (crs)) = ""b; 1835 1836 if txtlin.linespace = 0 1837 then 1838 do; 1839 ctbe = ptb.e (ssym); 1840 ctbe.blind = "1"b; 1841 end; 1842 1843 else 1844 do; 1845 ctbe.rslnt, ctbe.diam = "1"b; 1846 ctbe.pos = ptb.pos (ssym) - oneEN; 1847 ctbe.hadj = ptb.hadj (ssym) - EN6; 1848 ctbe.base = ptb.base (ssym); 1849 end; 1850 end; 1851 end; 1852 end; 1853 end; 1854 1855 /* left slants */ 1856 if ctb.lopen > 0 /* if there are still some open */ 1857 then 1858 do ssym = 1 to ptb.scnt; /* scan previous line */ 1859 if (ptb.lslnt (ssym) | ptb.loztr (ssym) | ptb.lozl (ssym)) 1860 & ^ptb.lterm (ssym) & ^ptb.diam (ssym) 1861 then 1862 do; 1863 1864 if ctb.scnt > 0 /* look for a redundant symbol */ 1865 then 1866 do i = 1 to ctb.scnt 1867 while ( 1868 ^ 1869 ((ctb.lslnt (i) | ctb.lozr (i) 1870 | ctb.lozbl (i) & ptb.lozl (ssym)) 1871 & ctb.pos (i) = ptb.pos (ssym) + oneEN 1872 | ctb.lozbl (i) & ptb.lslnt (ssym) 1873 & ctb.pos (i) = ptb.pos (ssym) + 2 * oneEN)); 1874 end; 1875 else i = 1; 1876 1877 if i > ctb.scnt /* need an added symbol */ 1878 then 1879 do; 1880 crs, ctb.scnt = i; 1881 /* count the new symbol */ 1882 cptr = addr (ctb.e (crs)); 1883 1884 if txtlin.linespace = 0 1885 then 1886 do; 1887 ctbe = ptb.e (ssym); 1888 ctbe.blind = "1"b; 1889 end; 1890 1891 else 1892 do; 1893 unspec (ctb.e (crs)) = ""b; 1894 /* clear an entry */ 1895 ctbe.lslnt = "1"b; 1896 /* set flags */ 1897 ctbe.loz = ptb.loz (ssym); 1898 1899 if ptb.lozl (ssym) 1900 /* a lozenge vertex? */ 1901 then 1902 do; 1903 ctbe.pos = ptb.pos (ssym); 1904 /* vertex */ 1905 ctbe.hadj = ptb.hadj (ssym) + EN6; 1906 end; 1907 1908 else 1909 do; 1910 ctbe.pos = ptb.pos (ssym) + oneEN; 1911 ctbe.hadj = ptb.hadj (ssym) + EN3; 1912 end; 1913 ctbe.base = ptb.base (ssym); 1914 /* set baseline */ 1915 end; 1916 end; 1917 end; 1918 end; 1919 1920 /* right slants */ 1921 if ctb.ropen > 0 /* if there are still some open */ 1922 then 1923 do ssym = 1 to ptb.scnt; /* search previous line */ 1924 if (ptb.rslnt (ssym) | ptb.loztl (ssym) | ptb.lozr (ssym)) 1925 & ^(ptb.rterm (ssym) | ptb.diam (ssym)) 1926 then 1927 do; 1928 1929 if ctb.scnt > 0 /* check for redundant symbols */ 1930 then 1931 do i = 1 to ctb.scnt 1932 while ( 1933 ^ 1934 ((ctb.rslnt (i) | ctb.lozbr (i) & ptb.lozr (ssym) 1935 | ctb.lozl (i)) 1936 & ctb.pos (i) = ptb.pos (ssym) - oneEN 1937 | ctb.lozbr (i) & ptb.rslnt (ssym) 1938 & ctb.pos (i) = ptb.pos (ssym) - 2 * oneEN)); 1939 end; 1940 else i = 1; 1941 1942 if i > ctb.scnt /* if a new entry is needed */ 1943 then 1944 do; 1945 if ptb.pos (ssym) <= oneEN 1946 then 1947 do; 1948 call comp_report_ (2, 0, 1949 "Right slant line violates " 1950 || "left margin.", addr (txtlin.info), txtstr) 1951 ; 1952 ctb.ropen = ctb.ropen - 1; 1953 ctb.open = ctb.open - 1; 1954 syntax_error = "1"b; 1955 goto synchk_continue; 1956 end; 1957 1958 crs, ctb.scnt = i; 1959 /* count new symbol */ 1960 cptr = addr (ctb.e (crs)); 1961 1962 if txtlin.linespace = 0 1963 then 1964 do; 1965 ctbe = ptb.e (ssym); 1966 ctbe.blind = "1"b; 1967 end; 1968 1969 else 1970 do; 1971 unspec (ctb.e (crs)) = ""b; 1972 /* clear new entry */ 1973 ctbe.rslnt = "1"b; 1974 /* set flags */ 1975 ctbe.loz = ptb.loz (ssym); 1976 1977 if ptb.lozr (ssym) 1978 /* loz right vertex? */ 1979 then 1980 do; 1981 ctbe.pos = ptb.pos (ssym); 1982 ctbe.hadj = ptb.hadj (ssym) - EN6; 1983 end; 1984 1985 else 1986 do; 1987 ctbe.pos = ptb.pos (ssym) - oneEN; 1988 if ptb.loztl (ssym) 1989 then ctbe.hadj = ptb.hadj (ssym) - EN6; 1990 else ctbe.hadj = ptb.hadj (ssym) - EN3; 1991 end; 1992 ctbe.base = ptb.base (ssym); 1993 end; 1994 end; 1995 end; 1996 end; 1997 synchk_continue: 1998 end; /* vertical stuff */ 1999 2000 /* PREPARE OUTPUT FROM LINES GATHERED */ 2001 2002 build: 2003 if ctb.scnt > 0 /* if there are any symbols */ 2004 then 2005 build_loop: 2006 do; 2007 ctb.line_width = 0; /* preset width */ 2008 2009 /* sort symbols */ 2010 i = 0; 2011 do j = 1 to ctb.scnt; /* go thru all symbols */ 2012 if addr (ctb.e (j)) -> cflags 2013 /* if the entry does */ 2014 then 2015 do; /* something, then keep it */ 2016 i = i + 1; 2017 ctb.e (i) = ctb.e (j); 2018 end; 2019 end; 2020 ctb.scnt = i; /* new symbol count */ 2021 2022 pass: 2023 swaps = 0; 2024 do j = 1 to ctb.scnt - 1; /* linear sort so that order 2025* within a column is not lost */ 2026 if ctb.pos (j) > ctb.pos (j + 1) 2027 then 2028 do; 2029 swaps = swaps + 1; 2030 temp_entry = ctb.e (j); 2031 ctb.e (j) = ctb.e (j + 1); 2032 ctb.e (j + 1) = temp_entry; 2033 end; 2034 end; 2035 if swaps > 0 2036 then goto pass; 2037 2038 if detail_sw 2039 then call ioa_ ("^5xBUILD (lin=^d/^d,#sym=^d)", crl, txtlin.lineno, 2040 ctb.scnt); 2041 2042 text_pos = 0; /* start at left margin */ 2043 base = 0; /* reset baseline offset */ 2044 art_str = ""; /* clear the target line */ 2045 2046 if ctb.scnt = 1 & ctb.e (1).text 2047 then 2048 do; 2049 if detail_sw 2050 then call ioa_ ("^- 1- ^f Text only line", 2051 show (ctbe.pos, 12000)); 2052 goto end_line_loop; 2053 end; 2054 2055 do crs = 1 to ctb.scnt; /* scan line table */ 2056 cptr = addr (ctb.e (crs));/* set entry pointer */ 2057 /* symbol position */ 2058 crs_pos = ctbe.pos + ctbe.hadj; 2059 2060 /* position adjustments */ 2061 if ctbe.base ^= base /* baseline change needed? */ 2062 then call vtab_ (ctbe.base); 2063 2064 /* text */ 2065 if ctbe.text 2066 then 2067 do; 2068 if crs_pos ^= text_pos 2069 then call htab_; 2070 2071 if detail_sw 2072 then call ioa_ ("^-^2d- Text at ^f b^f w^f (^d) ""^a^vx""", 2073 crs, show (crs_pos, 12000), show (base, 12000), 2074 show (ctbe.width, 12000), ctbe.len, 2075 comp_util_$display ( 2076 substr (tmpstr, ctbe.tstrt, ctbe.len), 0, "0"b), 2077 ctbe.len 2078 - 2079 length ( 2080 rtrim (substr (tmpstr, ctbe.tstrt, ctbe.len)))); 2081 2082 if shared.trans.in ^= "" 2083 then art_str = 2084 art_str 2085 || 2086 comp_util_$translate ( 2087 substr (tmpstr, ctbe.tstrt, ctbe.len)); 2088 else art_str = 2089 art_str || substr (tmpstr, ctbe.tstrt, ctbe.len); 2090 2091 if txtlin.quad = just /* a justified line? */ 2092 then 2093 do; 2094 if crs = ctb.scnt /* trailing text? */ 2095 then text_pos = txtlin.rmarg; 2096 2097 else /* embedded text */ 2098 do; 2099 if ctbe.wsp > 0 2100 then text_pos = 2101 min (txtlin.rmarg, ctb.e (crs + 1).pos); 2102 else text_pos = 2103 min (crs_pos + ctbe.width, 2104 ctb.e (crs + 1).pos); 2105 end; 2106 2107 ctb.line_width = ctb.line_width + ctbe.width; 2108 end; 2109 2110 else /* not justified */ 2111 do; 2112 text_pos = crs_pos + ctbe.width + ctbe.wsp; 2113 ctb.line_width = ctb.line_width + ctbe.width + ctbe.wsp; 2114 end; 2115 end; 2116 2117 /* SYMBOLS */ 2118 if ctbe.size > 0 /* reset minipos flags */ 2119 then substr (cflags, first_mini_pos, 4) = "0000"b; 2120 2121 /* math symbols */ 2122 if substr (cflags, 1, last_math) ^= "0"b & ctbe.size > 0 2123 /* with a valid size */ 2124 & ^option.noart_opt 2125 then 2126 do; /* symbol half size */ 2127 half_size = divide (ctbe.size, 2, 17, 0) + 1; 2128 symbndx = index (cflags, "1"b); 2129 /* set symbol index */ 2130 if crs_pos ^= text_pos 2131 then call htab_; 2132 2133 /* tops & one-highs */ 2134 if ctbe.lndx = 1 2135 then 2136 do; 2137 if ctbe.size = 1 2138 then 2139 do; 2140 art_str = art_str || art.one (symbndx); 2141 ctb.line_width = ctb.line_width + ctbe.width; 2142 2143 if detail_sw 2144 then call ioa_ ( 2145 "^-^2d- ^a^i 1-high at ^f b^f w^f ^a", crs, 2146 substr (const.art_symbols, symbndx, 1), 2147 ctbe.size, show (crs_pos, 12000), 2148 show (base, 12000), 2149 show (ctbe.width, 12000), 2150 comp_util_$display ((art.one (symbndx)), 0, 2151 "0"b)); 2152 end; 2153 2154 else 2155 do; 2156 if mod (ctbe.size, 2) = 1 2157 then 2158 do; 2159 art_str = art_str || char (art.top (symbndx)); 2160 2161 if detail_sw 2162 then call ioa_ ( 2163 "^-^2d- ^a^i top at ^f (b^f w^f)", crs, 2164 substr (const.art_symbols, symbndx, 1), 2165 ctbe.size, show (crs_pos, 12000), 2166 show (base, 12000), 2167 show (ctbe.width, 12000)); 2168 end; 2169 2170 else 2171 do; 2172 art_str = 2173 art_str || char (art.half_top (symbndx)); 2174 if detail_sw 2175 then call ioa_ ( 2176 "^-^2d- ^a^i half-top at ^f (^f)", crs, 2177 substr (const.art_symbols, symbndx, 1), 2178 ctbe.size, show (crs_pos, 12000), 2179 show (base, 12000)); 2180 end; 2181 end; 2182 end; 2183 2184 /* middles */ 2185 else if (ctbe.lndx = half_size) 2186 then 2187 do; 2188 if ctbe.lndx = ctbe.size 2189 then /* if two-high */ 2190 do; 2191 art_str = 2192 art_str || char (art.half_bottom (symbndx)) 2193 || char (art.middle (symbndx)); 2194 if detail_sw 2195 then call ioa_ ( 2196 "^-^2d- ^a^d half-bottom & middle at ^f (^f)" 2197 , crs, 2198 substr (const.art_symbols, symbndx, 1), 2199 ctbe.size, show (crs_pos, 12000), 2200 show (base, 12000)); 2201 end; 2202 2203 else 2204 do; 2205 art_str = art_str || char (art.middle (symbndx)); 2206 if detail_sw 2207 then call ioa_ ("^-^2d- ^a^d middle at ^d (^d)", crs, 2208 substr (const.art_symbols, symbndx, 1), 2209 ctbe.size, crs_pos, base); 2210 end; 2211 end; 2212 2213 /* bottoms */ 2214 else if ctbe.lndx = ctbe.size 2215 then 2216 do; 2217 if mod (ctbe.size, 2) = 1 2218 then 2219 do; 2220 art_str = art_str || char (art.bottom (symbndx)); 2221 if detail_sw 2222 then call ioa_ ("^-^2d- ^a bottom at ^d (^d)", crs, 2223 substr (const.art_symbols, symbndx, 1), 2224 crs_pos, base); 2225 end; 2226 2227 else if ctbe.size > 2 2228 then 2229 do; 2230 art_str = 2231 art_str || char (art.half_bottom (symbndx)) 2232 || char (art.other_part (symbndx)); 2233 if detail_sw 2234 then call ioa_ ( 2235 "^-^2d- ^a half-bottom & other part at ^f (^f)" 2236 , crs, 2237 substr (const.art_symbols, symbndx, 1), 2238 show (crs_pos, 12000), show (base, 12000)); 2239 end; 2240 end; 2241 2242 /* other parts */ 2243 else if ctbe.lndx > 1 2244 then 2245 do; 2246 art_str = art_str || char (art.other_part (symbndx)); 2247 if detail_sw 2248 then call ioa_ ("^-^2d- ^a other part at ^d (^d)", crs, 2249 substr (const.art_symbols, symbndx, 1), 2250 crs_pos, base); 2251 end; 2252 else art_str = art_str || EN; 2253 /* all math symbols take one column */ 2254 text_pos = crs_pos + oneEN; 2255 end; 2256 2257 /* Build line art */ 2258 2259 else if ^option.noart_opt 2260 then 2261 do; 2262 2263 /* lozenge tops */ 2264 if ctbe.loztl 2265 then 2266 do; 2267 if crs_pos ^= text_pos 2268 then call htab_; /* search for terminator */ 2269 do i = crs to ctb.scnt while (^ctb.loztr (i)); 2270 end; 2271 hcnt = ctb.e (i).pos - crs_pos; 2272 hor_vec.v1 = hcnt - oneEN; 2273 2274 if detail_sw 2275 then call ioa_ ("^-^2d- lozenge top left corner at ^f" 2276 || "^/^-^4xlozenge top from ^f to ^f ^a" 2277 || "^/^-^2d- lozenge top right corner at ^f", 2278 crs, show (crs_pos, 12000), 2279 show (crs_pos, 12000), 2280 show (crs_pos + hcnt, 12000), 2281 comp_util_$display ((hor_vec_str), 0, "0"b), i, 2282 show (crs_pos + hcnt, 12000)); 2283 2284 art_str = 2285 art_str || art.loz.tl || hor_vec_str || art.loz.tr; 2286 text_pos = crs_pos + hcnt; 2287 /* update text position */ 2288 end; 2289 2290 /* lozenge vertices */ 2291 if ctbe.lozl /* left vertex */ 2292 then 2293 do; 2294 if crs_pos ^= text_pos 2295 then call htab_; 2296 2297 if detail_sw 2298 then call ioa_ ("^-^2d- lozenge left vertex at ^f", crs, 2299 show (crs_pos, 12000)); 2300 2301 art_str = art_str || art.loz.l; 2302 text_pos = crs_pos + ctbe.width; 2303 ctb.line_width = ctb.line_width + ctbe.width; 2304 end; 2305 2306 if ctbe.lozr /* right vertex */ 2307 then 2308 do; 2309 if crs_pos ^= text_pos 2310 then call htab_; 2311 2312 if detail_sw 2313 then call ioa_ ("^-^2d- lozenge right vertex at ^f", crs, 2314 show (crs_pos, 12000)); 2315 2316 art_str = art_str || art.loz.r; 2317 text_pos = crs_pos + ctbe.width; 2318 ctb.line_width = ctb.line_width + ctbe.width; 2319 2320 if ctbe.horiz /* also starting hrule? */ 2321 then goto hrule; 2322 end; 2323 2324 /* lozenge bottoms */ 2325 if ctbe.lozbl 2326 then 2327 do; 2328 if crs_pos ^= text_pos 2329 then call htab_; /* search for terminator */ 2330 do i = crs to ctb.scnt while (^ctb.lozbr (i)); 2331 end; 2332 hcnt = ctb.e (i).pos - crs_pos; 2333 hor_vec.v1 = hcnt - oneEN; 2334 2335 if detail_sw 2336 then call ioa_ ("^-^2d- lozenge bottom left corner at ^f" 2337 || "^/^-^4xlozenge bottom from ^f to ^f ^a" 2338 || 2339 "^/^-^2d- lozenge bottom right corner at ^f", 2340 crs, show (crs_pos, 12000), 2341 show (crs_pos, 12000), 2342 show (crs_pos + hcnt, 12000), 2343 comp_util_$display ((hor_vec_str), 0, "0"b), i, 2344 show (crs_pos + hcnt, 12000)); 2345 2346 art_str = 2347 art_str || art.loz.bl || hor_vec_str || art.loz.br; 2348 text_pos = crs_pos + hcnt; 2349 /* update text position */ 2350 end; 2351 2352 /* verticals */ 2353 if ctbe.vert & ctbe.size = 0 & ^ctbe.blind 2354 then 2355 do; 2356 if crs_pos ^= text_pos 2357 then call htab_; 2358 2359 art_str = art_str || art.vpart; 2360 2361 if detail_sw 2362 then call ioa_ ( 2363 "^-^2d- vertical at ^f (w^f b^f) ""^a""", crs, 2364 show (crs_pos, 12000), 2365 show (ctbe.width, 12000), show (base, 12000), 2366 comp_util_$display ((art.vpart), 0, "0"b)); 2367 end; 2368 2369 /* down arrows */ 2370 if ctbe.daro & ^ctbe.diam & ^ctbe.blind 2371 then 2372 do; 2373 if crs_pos ^= text_pos 2374 then call htab_; 2375 art_str = art_str || char (art.daro); 2376 if detail_sw 2377 then call ioa_ ("^-^2d- down arrow at ^f", crs, 2378 show (crs_pos, 12000)); 2379 end; 2380 2381 /* up arrows */ 2382 if ctbe.uparo & ^ctbe.diam & ^ctbe.blind 2383 then 2384 do; 2385 if crs_pos ^= text_pos 2386 then call htab_; 2387 art_str = art_str || char (art.uparo); 2388 if detail_sw 2389 then call ioa_ ("^-^2d- up arrow at ^d", crs, 2390 show (crs_pos, 12000)); 2391 end; 2392 2393 /* diamond parts */ 2394 if ctbe.diam & ^ctbe.blind 2395 then 2396 do; 2397 if crs_pos ^= text_pos 2398 then call htab_; 2399 2400 /* diamond tops */ 2401 if ctbe.uparo 2402 then 2403 do; 2404 art_str = art_str || art.diam.top; 2405 if detail_sw 2406 then call ioa_ ("^-^2d- diamond top at ^f", crs, 2407 show (crs_pos, 12000)); 2408 text_pos = crs_pos + oneEN; 2409 end; 2410 2411 /* diamond left vertices */ 2412 if ctbe.laro 2413 then 2414 do; 2415 art_str = art_str || art.diam.lvert; 2416 if detail_sw 2417 then call ioa_ ("^-^2d- diamond left vertex at ^f", 2418 crs, show (crs_pos, 12000)); 2419 text_pos = crs_pos + oneEN; 2420 end; 2421 2422 /* diamond right vertices */ 2423 if ctbe.raro 2424 then 2425 do; 2426 art_str = art_str || art.diam.rvert; 2427 if detail_sw 2428 then call ioa_ ("^-^2d- diamond right vertex at ^f", 2429 crs, show (crs_pos, 12000)); 2430 text_pos = crs_pos + oneEN; 2431 end; 2432 2433 /* diamond left slants */ 2434 if ctbe.lslnt 2435 then 2436 do; 2437 art_str = art_str || art.lslnt; 2438 if detail_sw 2439 then call ioa_ ("^-^2d- diamond left slant at ^f", 2440 crs, show (crs_pos, 12000)); 2441 text_pos = crs_pos + oneEN; 2442 end; 2443 2444 /* diamond right slants */ 2445 if ctbe.rslnt 2446 then 2447 do; 2448 art_str = art_str || art.rslnt; 2449 if detail_sw 2450 then call ioa_ ("^-^2d- diamond right slant at ^f", 2451 crs, show (crs_pos, 12000)); 2452 text_pos = crs_pos + oneEN; 2453 end; 2454 2455 /* diamond bottoms */ 2456 if ctbe.daro 2457 then 2458 do; 2459 art_str = art_str || art.diam.bottom; 2460 if detail_sw 2461 then call ioa_ ("^-^2d- diamond bottom at ^f", crs, 2462 show (crs_pos, 12000)); 2463 text_pos = crs_pos + oneEN; 2464 end; 2465 end; 2466 2467 /* left slants */ 2468 if ctbe.lslnt & ^ctbe.diam & ^ctbe.blind 2469 then 2470 do; 2471 if crs_pos ^= text_pos 2472 then call htab_; 2473 art_str = art_str || art.lslnt; 2474 if detail_sw 2475 then call ioa_ ("^-^2d- left slant at ^f", crs, 2476 show (crs_pos, 12000)); 2477 text_pos = crs_pos + oneEN; 2478 end; 2479 2480 /* right slants */ 2481 if ctbe.rslnt & ^ctbe.diam & ctbe.size = 0 & ^ctbe.blind 2482 then 2483 do; 2484 if crs_pos ^= text_pos 2485 then call htab_; 2486 art_str = art_str || art.rslnt; 2487 if detail_sw 2488 then call ioa_ ("^-^2d- right slant at ^f", crs, 2489 show (crs_pos, 12000)); 2490 text_pos = crs_pos + oneEN; 2491 end; 2492 2493 /* left arrows */ 2494 if ctbe.laro & ^ctbe.diam 2495 then 2496 do; 2497 if crs_pos ^= text_pos 2498 then call htab_; 2499 2500 art_str = art_str || art.laro; 2501 2502 if detail_sw 2503 then call ioa_ ("^-^2d- left arrow at ^d", crs, 2504 show (crs_pos, 12000)); 2505 2506 if ctbe.horiz /* also starting hrule? */ 2507 then goto hrule; 2508 end; 2509 2510 /* right arrows */ 2511 if ctbe.raro & ^ctbe.diam 2512 then 2513 do; 2514 if crs_pos ^= text_pos 2515 then call htab_; 2516 art_str = art_str || char (art.raro); 2517 if detail_sw 2518 then call ioa_ ("^-^2d- right arrow at ^f", crs, 2519 show (crs_pos, 12000)); 2520 text_pos = crs_pos + oneEN; 2521 end; 2522 2523 /* circles */ 2524 if ctbe.lprn 2525 then 2526 do; 2527 if crs_pos ^= text_pos 2528 then call htab_; 2529 art_str = art_str || art.lcirc; 2530 if detail_sw 2531 then call ioa_ ("^-^2d- left circle at ^d", crs, crs_pos) 2532 ; 2533 text_pos = crs_pos + oneEN; 2534 end; 2535 2536 if ctbe.rprn 2537 then 2538 do; 2539 if crs_pos ^= text_pos 2540 then call htab_; 2541 art_str = art_str || art.rcirc; 2542 if detail_sw 2543 then call ioa_ ("^-^2d- right circle at ^d", crs, 2544 crs_pos); 2545 text_pos = crs_pos + oneEN; 2546 end; 2547 2548 /* box tops */ 2549 if ctbe.boxtl /* corners */ 2550 then 2551 do; 2552 if crs_pos ^= text_pos 2553 then call htab_; /* search for terminator */ 2554 do i = crs to ctb.scnt 2555 while ( 2556 ^(ctb.boxbr (i) | ctb.boxr (i) | ctb.boxtr (i) 2557 | ctb.star (i))); 2558 end; 2559 hcnt = ctb.e (i).pos + ctb.e (i).hadj - crs_pos; 2560 hor_vec.v1 = hcnt - oneEN; 2561 2562 if detail_sw 2563 then 2564 do; 2565 if ctb.boxtr (i) 2566 then j = 1; 2567 else if ctb.boxr (i) 2568 then j = 2; 2569 else if ctb.boxbr (i) 2570 then j = 3; 2571 else j = 4; 2572 2573 call ioa_ ("^-^2d- box top left corner at ^f ""^a""" 2574 || "^/^-^4xbox top from ^f to ^f ""^a""" 2575 || 2576 "^/^-^2d- ^[box top right corner^;box right T^;" 2577 || 2578 "box bottom right corner^;horiz terminator^] " 2579 || "at ^f ""^[^a^;^s^a^;^2s^a^;^3s^a^]""", crs, 2580 show (crs_pos, 12000), 2581 comp_util_$display ((art.box.tl), 0, "0"b), 2582 show (crs_pos, 12000), 2583 show (crs_pos + hcnt, 12000), 2584 comp_util_$display ((hor_vec_str), 0, "0"b), i, 2585 j, show (crs_pos + hcnt, 12000), j, 2586 comp_util_$display ((art.box.tr), 0, "0"b), 2587 comp_util_$display ((art.box.r), 0, "0"b), 2588 comp_util_$display ((art.box.br), 0, "0"b), 2589 comp_util_$display ((art.horiz.term), 0, "0"b)); 2590 end; 2591 2592 art_str = art_str || art.box.tl || hor_vec_str; 2593 if ctb.boxtr (i) 2594 then art_str = art_str || art.box.tr; 2595 else if ctb.boxr (i) 2596 then art_str = art_str || art.box.r; 2597 else if ctb.boxbr (i) 2598 then art_str = art_str || art.box.br; 2599 else art_str = art_str || art.horiz.term; 2600 2601 text_pos = crs_pos + hcnt; 2602 /* update text position */ 2603 end; 2604 2605 if ctbe.boxt /* top Ts */ 2606 then 2607 do; 2608 if crs_pos ^= text_pos 2609 then call htab_; 2610 2611 if detail_sw 2612 then call ioa_ ("^-^2d- box top T at ^f", crs, 2613 show (crs_pos, 12000)); 2614 2615 art_str = art_str || art.box.t; 2616 text_pos = crs_pos + ctbe.width; 2617 ctb.line_width = ctb.line_width + ctbe.width; 2618 /* update text position */ 2619 end; 2620 2621 /* box left Ts */ 2622 if ctbe.boxl 2623 then 2624 do; 2625 if crs_pos ^= text_pos 2626 then call htab_; /* search for terminator */ 2627 do i = crs to ctb.scnt 2628 while ( 2629 ^(ctb.boxtr (i) | ctb.boxr (i) | ctb.boxbr (i) 2630 | ctb.star (i))); 2631 end; 2632 hcnt = ctb.e (i).pos - crs_pos; 2633 hor_vec.v1 = hcnt - oneEN; 2634 2635 if detail_sw 2636 then 2637 do; 2638 if ctb.boxtr (i) 2639 then j = 1; 2640 else if ctb.boxr (i) 2641 then j = 2; 2642 else if ctb.boxbr (i) 2643 then j = 3; 2644 else j = 4; 2645 2646 call ioa_ ("^-^2d- box left T at ^f" 2647 || "^/^-^4xbox line from ^f to ^f ^a" 2648 || "^/^-^2d- box ^[top right corner^;right T^;" 2649 || 2650 "bottom right corner^;horiz terminator^] at ^f", 2651 crs, show (crs_pos, 12000), 2652 show (crs_pos, 12000), 2653 show (crs_pos + hcnt, 12000), 2654 comp_util_$display ((hor_vec_str), 0, "0"b), i, 2655 j, show (crs_pos + hcnt, 12000)); 2656 end; 2657 2658 art_str = art_str || art.box.l || hor_vec_str; 2659 if ctb.boxtr (i) 2660 then art_str = art_str || art.box.tr; 2661 else if ctb.boxr (i) 2662 then art_str = art_str || art.box.r; 2663 else if ctb.boxbr (i) 2664 then art_str = art_str || art.box.br; 2665 else art_str = art_str || art.horiz.term; 2666 2667 text_pos = crs_pos + hcnt; 2668 /* update text position */ 2669 end; 2670 2671 /* box interior +s */ 2672 if ctbe.boxx 2673 then 2674 do; 2675 if crs_pos ^= text_pos 2676 then call htab_; 2677 2678 if detail_sw 2679 then 2680 do; 2681 call ioa_ ("^-^2d- box interior + at ^f", crs, 2682 show (crs_pos, 12000)); 2683 end; 2684 2685 art_str = art_str || art.box.x; 2686 text_pos = crs_pos + ctbe.width; 2687 ctb.line_width = ctb.line_width + ctbe.width; 2688 end; 2689 2690 /* box bottoms */ 2691 if ctbe.boxbl 2692 then 2693 do; 2694 if crs_pos ^= text_pos 2695 then call htab_; /* search for terminator */ 2696 do i = crs to ctb.scnt 2697 while ( 2698 ^(ctb.boxbr (i) | ctb.boxr (i) | ctb.boxtr (i) 2699 | ctb.star (i))); 2700 end; 2701 hcnt = ctb.e (i).pos - crs_pos; 2702 hor_vec.v1 = hcnt - oneEN; 2703 2704 if detail_sw 2705 then 2706 do; 2707 if ctb.boxtr (i) 2708 then j = 1; 2709 else if ctb.boxr (i) 2710 then j = 2; 2711 else if ctb.boxbr (i) 2712 then j = 3; 2713 else j = 4; 2714 2715 call ioa_ ( 2716 "^-^2d- box bottom left corner at ^f ""^a""" 2717 || "^/^-^4xbox bottom from ^f to ^f ""^a""" 2718 || "^/^-^2d- box ^[top right corner^;right T^;" 2719 || 2720 "bottom right corner^;horiz terminator^] at ^f " 2721 || """^[^a^;^s^a^;^2s^a^;^3s^a^]""", crs, 2722 show (crs_pos, 12000), 2723 comp_util_$display ((art.box.bl), 0, "0"b), 2724 show (crs_pos, 12000), 2725 show (crs_pos + hcnt, 12000), 2726 comp_util_$display ((hor_vec_str), 0, "0"b), i, 2727 j, show (crs_pos + hcnt, 12000), j, 2728 comp_util_$display ((art.box.tr), 0, "0"b), 2729 comp_util_$display ((art.box.r), 0, "0"b), 2730 comp_util_$display ((art.box.br), 0, "0"b), 2731 comp_util_$display ((art.horiz.term), 0, "0"b)); 2732 end; 2733 2734 art_str = art_str || art.box.bl || hor_vec_str; 2735 if ctb.boxtr (i) 2736 then art_str = art_str || art.box.tr; 2737 else if ctb.boxr (i) 2738 then art_str = art_str || art.box.r; 2739 else if ctb.boxbr (i) 2740 then art_str = art_str || art.box.br; 2741 else art_str = art_str || art.horiz.term; 2742 2743 text_pos = crs_pos + hcnt; 2744 /* update text position */ 2745 end; 2746 2747 if ctbe.boxb /* bottom Ts */ 2748 then 2749 do; 2750 if crs_pos ^= text_pos 2751 then call htab_; 2752 2753 art_str = art_str || art.box.b; 2754 /* update text position */ 2755 text_pos = crs_pos + ctbe.width; 2756 ctb.line_width = ctb.line_width + ctbe.width; 2757 2758 if detail_sw 2759 then call ioa_ ("^-^2d- box bottom T^3( ^f^)", crs, 2760 show (crs_pos, 12000), 2761 show (ctbe.width, 12000), 2762 show (text_pos, 12000)); 2763 end; 2764 2765 /* horizontal rules */ 2766 if ctbe.horiz 2767 then 2768 do; 2769 if crs_pos ^= text_pos 2770 then call htab_; 2771 2772 hrule: 2773 art_str = art_str || art.horiz.start; 2774 /* start the rule */ 2775 2776 do i = crs to ctb.scnt while 2777 /* search for terminator */ 2778 ( 2779 ^(ctb.star (i) | (ctb.raro (i) & ^ctb.laro (i)) 2780 | ctb.boxtr (i) | ctb.boxr (i) | ctb.boxbr (i))); 2781 end; 2782 ctb.star (i), ctb.horiz (i) = "0"b; 2783 /* reset flags */ 2784 2785 if i > ctb.scnt /* if no terminator, rule to measure */ 2786 then hterm_pos = block.parms.measure; 2787 /* otherwise, rule to the terminator */ 2788 else hterm_pos = ctb.e (i).pos; 2789 2790 hor_vec.v1 = hterm_pos - text_pos; 2791 art_str = art_str || hor_vec_str; 2792 if ctb.boxtr (i) 2793 then art_str = art_str || art.box.tr; 2794 else if ctb.boxr (i) 2795 then art_str = art_str || art.box.r; 2796 else if ctb.boxbr (i) 2797 then art_str = art_str || art.box.br; 2798 else art_str = art_str || art.horiz.term; 2799 2800 if detail_sw 2801 then 2802 do; 2803 if ctb.boxtr (i) 2804 then j = 1; 2805 else if ctb.boxr (i) 2806 then j = 2; 2807 else if ctb.boxbr (i) 2808 then j = 3; 2809 else j = 4; 2810 2811 call ioa_ ("^-^2d- horizontal from ^f to ^f ^a" 2812 || 2813 "^[^/^-^2d- ^[box top right corner^;box right T^;box " 2814 || 2815 "bottom right corner^] at ^f^;^3s^]^/^2-Hvec^3( ^f^) ^a" 2816 , crs, show (text_pos, 12000), 2817 show (hterm_pos, 12000), 2818 comp_util_$display ((hor_vec_str), 0, "0"b), 2819 (j < 4), i, j, show (hterm_pos, 12000), 2820 show (text_pos, 12000), 2821 show ((hor_vec.v1), 12000), 2822 show (hterm_pos, 12000), 2823 comp_util_$display ((hor_vec_str), 0, "0"b)); 2824 end; /**/ 2825 /* update text position */ 2826 text_pos = hterm_pos; 2827 end; 2828 end; 2829 2830 /* if not at baseline */ 2831 if base ^= 0 & crs = ctb.scnt 2832 then 2833 do; 2834 if detail_sw 2835 then call ioa_ ("^- $- Baseline from ^f to 0 at EOL.", 2836 show (base, 12000)); 2837 call vtab_ (0); 2838 ctbe.base = 0; 2839 end; 2840 end; 2841 2842 txtlin.width = ctb.line_width; 2843 txtlin.white, txtlin.no_trim = "0"b; 2844 txtlin.lmarg = ctb.lmarg; 2845 2846 call comp_util_$replace_text (blkptr, "0"b, txtlinptr, 2847 addr (art_str)); 2848 2849 ptb = ctb; /* copy current to previous */ 2850 end build_loop; 2851 end_line_loop: 2852 end; 2853 end line_loop; 2854 2855 return_: 2856 block.hdr.art = "0"b; /* art in this block is done */ 2857 2858 if shared.bug_mode 2859 then call ioa_ (" (art)"); 2860 return; 2861 2862 htab_: 2863 proc; 2864 2865 dcl move fixed bin (31); /* working value */ 2866 2867 move = crs_pos - text_pos; 2868 2869 hor_sft.v1 = move; 2870 art_str = art_str || hor_sft_str; 2871 text_pos = crs_pos; 2872 /**** if txtlin.quad = just 2873*/**** then ctb.line_width = ctb.line_width + move;*/ 2874 2875 if detail_sw 2876 then call ioa_ ("^2-Hshft^3( ^f^) ^a", show (text_pos, 12000), 2877 show (move, 12000), show (crs_pos, 12000), 2878 comp_util_$display ((hor_sft_str), 0, "0"b)); 2879 2880 end htab_; 2881 2882 vtab_: 2883 proc (new_base); 2884 2885 dcl new_base fixed bin (31); /* new baseline offset */ 2886 2887 if new_base = base /* if no actual movement */ 2888 then return; 2889 2890 vert_sft.v1 = new_base - base; /* set amount in millipoints */ 2891 art_str = art_str || vert_sft_str; 2892 2893 if detail_sw 2894 then call ioa_ ("^2-Vshft (^f ^f ^f) ^a", show (base, 12000), 2895 show ((vert_sft.v1), 12000), show (new_base, 12000), 2896 comp_util_$display ((vert_sft_str), 0, "0"b)); 2897 base = new_base; /* set new baseline */ 2898 end vtab_; 2899 2900 show: 2901 proc (datum, scale) returns (fixed dec (11, 3)); 2902 dcl datum fixed bin (31); 2903 dcl scale fixed bin (31); 2904 2905 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 2906 end show; 2907 2908 /* DEBUGGING STUFF */ 2909 dtn: 2910 entry; 2911 dt_sw = "1"b; 2912 goto db_join; 2913 dtf: 2914 entry; 2915 dt_sw = "0"b; 2916 return; 2917 dcl dt_sw bit (1) static init ("0"b); 2918 2919 dbn: 2920 entry; 2921 db_sw = "1"b; 2922 goto db_join; 2923 dbf: 2924 entry; 2925 db_sw = "0"b; 2926 return; 2927 dcl db_sw bit (1) static init ("0"b); 2928 2929 alln: 2930 entry; 2931 db_sw, dt_sw = "1"b; 2932 db_join: 2933 dcl db_line fixed bin static init (0); 2934 dcl com_err_ entry options (variable); 2935 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 2936 dcl arg char (argl) based (argp); 2937 dcl argl fixed bin; 2938 dcl argp ptr; 2939 dcl ercd fixed bin (35); 2940 dcl error_table_$noarg 2941 fixed bin (35) ext static; 2942 2943 db_line = 0; 2944 call cu_$arg_ptr (1, argp, argl, ercd); 2945 if ercd ^= 0 2946 then 2947 do; 2948 if ercd ^= error_table_$noarg 2949 then call com_err_ (ercd, "&device&._writer_"); 2950 return; 2951 end; 2952 db_line = convert (db_line, arg); 2953 return; 2954 2955 allf: 2956 entry; 2957 db_sw, dt_sw = "0"b; 2958 return; 2959 1 1 /* BEGIN INCLUDE FILE comp_art_parts.incl.pl1 */ 1 2 1 3 /**** format: off */ 1 4 dcl 1 art static options (constant), 1 5 1 6 2 top (8) char (1) unal init 1 7 ("'", "-", "3", "9", "?", "E", "K", "Q"), 1 8 2 half_top (8) char (1) unal init 1 9 ("(", ".", "4", ":", "@", "F", "L", "R"), 1 10 2 middle (8) char (1) unal init 1 11 (")", "/", "5", ";", "A", "G", "M", "S"), 1 12 2 bottom (8) char (1) unal init 1 13 ("*", "0", "6", "<", "B", "H", "N", "T"), 1 14 2 half_bottom (8) char (1) unal init 1 15 ("+", "1", "7", "=", "C", "I", "O", "U"), 1 16 2 other_part (8) char (1) unal init 1 17 (",", "2", "8", ">", "D", "J", "P", "V"), 1 18 2 one (15) char (1) unal init 1 19 ("", """, "", "!", "", "$", "W", "X", 1 20 "Í", /* o = bullet */ 1 21 "Y", /* / = right slash */ 1 22 "", /* X = multiply */ 1 23 "", /* * = delete */ 1 24 "", /* m = modify */ 1 25 "Ã", /* c = copyright */ 1 26 "Ô"), /* t = trademark */ 1 27 1 28 /* artwork codes */ 1 29 2 vpart char (1) unal init ("Z"), 1 30 2 daro char (1) unal init (""), 1 31 2 uparo char (1) unal init ("%"), 1 32 2 horiz, 1 33 3 start char (1) unal init ("["), 1 34 3 line char (1) unal init ("\"), 1 35 3 term char (1) unal init ("]"), 1 36 2 laro char (1) unal init (""), 1 37 2 raro char (1) unal init (" "), 1 38 2 diam, 1 39 3 top char (1) unal init (""), 1 40 3 lvert char (1) unal init (""), 1 41 3 rvert char (1) unal init (""), 1 42 3 bottom char (1) unal init (""), 1 43 2 lslnt char (1) unal init ("^"), 1 44 2 rslnt char (1) unal init ("_"), 1 45 2 lcirc char (1) unal init (""), 1 46 2 rcirc char (1) unal init ("#"), 1 47 2 PI char (1) unal init ("Ð"), 1 48 2 pi char (1) unal init ("ð"), 1 49 2 box, 1 50 3 tl char (1) unal init ("`"), /* top left corner */ 1 51 3 t char (1) unal init ("a"), /* top intersection */ 1 52 3 tr char (1) unal init ("b"), /* top right corner */ 1 53 3 l char (1) unal init ("c"), /* left edge intersection */ 1 54 3 x char (1) unal init ("d"), /* interior insection */ 1 55 3 r char (1) unal init ("e"), /* right edge intersection */ 1 56 3 bl char (1) unal init ("f"), /* bottom left corner */ 1 57 3 b char (1) unal init ("g"), /* bottom intersection */ 1 58 3 br char (1) unal init ("h"), /* bottom right corner */ 1 59 2 loz, 1 60 3 tl char (1) unal init ("i"), /* top left corner */ 1 61 3 tr char (1) unal init ("j"), /* top right corner */ 1 62 3 l char (1) unal init ("k"), /* left vertx */ 1 63 3 r char (1) unal init ("l"), /* right vertex */ 1 64 3 bl char (1) unal init ("m"), /* bottom left corner */ 1 65 3 br char (1) unal init ("n"); /* bottom right corner */ 1 66 1 67 /**** format: on */ 1 68 /* END INCLUDE FILE comp_art_parts.incl.pl1 */ 2960 2 1 /* BEGINE INCLUDE FILE comp_brktypes.incl.pl1 */ 2 2 2 3 /* Written - 4/18 - EJW 2 4* 2 5* Defines constants for all the types of text breaks in compose */ 2 6 2 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 8 2 9 dcl ( 2 10 format_break init (0), 2 11 block_break init (1), 2 12 column_break init (2), 2 13 page_break init (3), 2 14 need_break init (4), 2 15 footnote_break init (5), 2 16 footer_break init (7) 2 17 ) fixed bin static options (constant); 2 18 2 19 /* END INCLUDE FILE comp_brktypes.incl.pl1 */ 2961 3 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 3 2* Modified: ??/81 - EJW - Addded type_wait 3 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 3 4**/ 3 5 3 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 3 7 3 8 dcl DCxx_p ptr; /* for qualification of embedded */ 3 9 /* control strings */ 3 10 /* an embedded control string */ 3 11 dcl 1 dcxx unal based (DCxx_p), 3 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 3 13 2 ctl, 3 14 3 type bit (3) unal, /* 000- device/writer control */ 3 15 /* 001- */ 3 16 /* 010- literal data */ 3 17 /* 011- family/member/size data */ 3 18 /* 100- shift */ 3 19 /* 101- */ 3 20 /* 110- vector */ 3 21 /* 111- zero-offset vector */ 3 22 3 fill1 bit (1) unal, 3 23 3 Xctl bit (2) unal, /* 00- no X value present */ 3 24 /* 01- short X value */ 3 25 /* 10- long X value */ 3 26 3 fill2 bit (1) unal, 3 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 3 28 /* 01- short Y value present */ 3 29 /* 10- long Y value present */ 3 30 2 leng fixed bin (9) unal unsigned, 3 31 /* # of remaining bytes */ 3 32 2 etc; /* the rest of the control bytes */ 3 33 /* device/writer controls */ 3 34 dcl 1 dcctl unal based (DCxx_p), 3 35 2 mark char (1) unal, 3 36 2 type char (1) unal, /* control type */ 3 37 /* leng is always 0 for these */ 3 38 2 leng fixed bin (9) unal unsigned; 3 39 dcl ( 3 40 wait_signal init (""), /* = 021001000 */ 3 41 unstart_signal init (""), /* = 021002000 */ 3 42 unstop_signal init ("") /* = 021003000 */ 3 43 ) char (3) static options (constant); 3 44 /* the "literal" control string */ 3 45 dcl 1 dclit unal based (DCxx_p), 3 46 2 mark char (1) unal, 3 47 2 type char (1) unal, /* control type */ 3 48 2 leng fixed bin (9) unal unsigned, 3 49 /* width in milli-points of literal */ 3 50 2 width fixed bin (31) unal, 3 51 /* actual literal, max length 509 */ 3 52 2 data char (dclit.leng - 4); 3 53 /* long (31 bits) values */ 3 54 dcl 1 dclong_val unal based (DCxx_p), 3 55 2 mark char (1) unal, 3 56 2 type char (1) unal, /* control type */ 3 57 2 leng fixed bin (9) unal unsigned, 3 58 ( 3 59 2 v1 fixed bin (31), /* long value */ 3 60 2 v2 fixed bin (31) /* long value */ 3 61 ) unal; 3 62 dcl ( 3 63 dclong_len init (8), /* 2 long values */ 3 64 dclong1_len init (4) /* 1 long value */ 3 65 ) fixed bin static options (constant); 3 66 /* short (17 bit) values */ 3 67 dcl 1 dcshort_val unal based (DCxx_p), 3 68 2 mark char (1) unal, 3 69 2 type char (1) unal, /* control type */ 3 70 2 leng fixed bin (9) unal unsigned, 3 71 ( 3 72 2 v1 fixed bin, /* short value */ 3 73 2 v2 fixed bin /* short value */ 3 74 ) unal; 3 75 dcl ( 3 76 dcshort_len init (4), /* 2 short values */ 3 77 dcshort1_len init (2) /* 1 short value */ 3 78 ) fixed bin static options (constant); 3 79 /* a font change string */ 3 80 dcl 1 dcfs unal based (DCxx_p), 3 81 2 mark char (1) unal, /* font/size data */ 3 82 2 type char (1) unal, /* control type */ 3 83 2 leng fixed bin (9) unal unsigned, 3 84 /* fnttbldata index */ 3 85 2 f fixed bin (9) unal unsigned, 3 86 /* point size in milli-points */ 3 87 2 p fixed bin (31) unal; 3 88 dcl dcfs_len fixed bin init (5) static options (constant); 3 89 3 90 dcl ( /* symbolic definitions of DC types */ 3 91 type_wait init (""), /* writer wait */ 3 92 type_unstart init (""), /* underscore start */ 3 93 type_unstop init (""), /* underscore stop */ 3 94 type_lit init ("ˆ"), /* literal data */ 3 95 type_font init ("À"), /* family/member/size data */ 3 96 /* SHIFTS - */ 3 97 type_sy init (""), /* -- no x, short y */ 3 98 type_sly init (""), /* -- no x, long y */ 3 99 type_sx init (""), /* -- short x, no y */ 3 100 type_sxy init (" "), /* -- short x, short y */ 3 101 type_slx init (""), /* -- long x, no y */ 3 102 type_slxly init (""), /* -- long x, long y */ 3 103 /* VECTORS */ 3 104 type_vy init (""), /* -- no x, short y */ 3 105 type_vly init ("‚"), /* -- no x, long y */ 3 106 type_vx init ("ˆ"), /* -- short x, no y */ 3 107 type_vxy init ("‰"), /* -- short x, short y */ 3 108 type_vlx init (""), /* -- long x, no y */ 3 109 type_vlxly init ("’"), /* -- long x, long y */ 3 110 /* ZERO-OFFSET VECTORS- */ 3 111 type_v0y init ("Á"), /* -- no x, short y */ 3 112 type_v0ly init ("Â"), /* -- no x, long y */ 3 113 type_v0x init ("È"), /* -- short x, no y */ 3 114 type_v0xy init ("É"), /* -- short x, short y */ 3 115 type_v0lx init ("Ð"), /* -- long x, no y */ 3 116 type_v0lxly init ("Ò") /* -- long x, long y */ 3 117 ) char (1) unal int static options (constant); 3 118 3 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 2962 4 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 4 2 4 3 /* Written: 9/80 - JA Falksen 4 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 4 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 4 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 4 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 4 8* (3) char (*) var. Version 4. */ 4 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 4 10* sequence for comp_dvt.displayproc. - Version 5. 4 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 4 12**/ 4 13 4 14 /* All names which end in "_r"are offset values within the device table */ 4 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 4 16 4 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 4 18 4 19 dcl 1 comp_dvt aligned based (const.devptr), 4 20 2 devclass char (32), /* what general kind of device is */ 4 21 /* this, currently available: */ 4 22 /* "printer" (includes terminals), */ 4 23 /* "braille", "bitmap" */ 4 24 2 outproc entry /* page output processor */ 4 25 (fixed bin, /* function - 0=build */ 4 26 /* 1=init page */ 4 27 /* 2=init file */ 4 28 /* 3=cleanup */ 4 29 fixed bin (35)),/* error code */ 4 30 2 footproc entry /* footnote reference proc */ 4 31 ((3) char (*) var, 4 32 /* reference string (IN/OUT) */ 4 33 ptr), /* comp_dvt_p (IN) */ 4 34 2 artproc entry (), /* artwork proc */ 4 35 /* dont know how to describe yet */ 4 36 2 displayproc 4 37 entry /* string display interpreter */ 4 38 (char (*) var, /* raw input string */ 4 39 fixed bin (24), /* chars used in this call */ 4 40 bit (1)) /* 1= dont show display errors */ 4 41 returns (char (*) var), 4 42 /* interpreted output string */ 4 43 /* following values are in millipoints */ 4 44 2 min_WS fixed bin (31), /* minimum whitespace */ 4 45 2 min_lead fixed bin (31), /* minimun lead */ 4 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 4 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 4 48 2 def_vmt fixed bin (31), /* default .vmt */ 4 49 2 def_vmh fixed bin (31), /* default .vmh */ 4 50 2 def_vmf fixed bin (31), /* default .vmf */ 4 51 2 def_vmb fixed bin (31), /* default .vmb */ 4 52 2 pdw_max fixed bin (31), /* max page width available */ 4 53 2 pdl_max fixed bin (31), /* max page length available, */ 4 54 /* (0 = unlimited) */ 4 55 2 upshift fixed bin (31), /* footnote reference shift */ 4 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 4 57 2 lettersp fixed bin (31), /* max letterspacing */ 4 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 4 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 4 60 2 init_fam fixed bin, /* initial family index */ 4 61 2 init_mem fixed bin, /* initial member index */ 4 62 2 foot_fam fixed bin, /* initial foot family index */ 4 63 2 foot_mem fixed bin, /* initial foot member index */ 4 64 2 init_family 4 65 char (32), /* initial font family to use */ 4 66 2 init_member 4 67 char (32), /* initial font member to use */ 4 68 ( /* the following are offsets */ 4 69 2 atd_r, /* attach desc for on-line output */ 4 70 2 dvc_r, /* device control table relptr */ 4 71 2 comment_r, /* comment string relptr */ 4 72 2 cleanup_r, /* "cleanup" string relptr */ 4 73 2 medsel_table_r /* media select table relptr */ 4 74 ) bit (18) aligned, 4 75 2 foot_family 4 76 char (32), /* family for footnote reference */ 4 77 2 foot_member 4 78 char (32), /* member for footnote reference */ 4 79 /* if one was specified */ 4 80 2 sws unaligned, 4 81 3 interleave /* 0- page block has lines in column */ 4 82 bit (1), /* order left-to-right */ 4 83 /* 1- page block has lines in line */ 4 84 /* order top-to-bottom */ 4 85 3 justifying /* 1- device justifies lines */ 4 86 bit (1), 4 87 3 mbz bit (24), 4 88 3 endpage bit (9), /* EOP char if not "0"b */ 4 89 2 open_mode fixed bin (35), /* when going to a file */ 4 90 2 recleng fixed bin, /* length of tape records */ 4 91 2 family_ct fixed bin, /* # families present */ 4 92 2 family (comp_dvt.family_ct), 4 93 /* families of fonts defined */ 4 94 3 member_r bit (18) aligned, 4 95 /* member table relptr */ 4 96 3 name char (32); /* family name */ 4 97 4 98 4 99 /* The usage formula for units: */ 4 100 /* */ 4 101 /* rel_units * length_in_points */ 4 102 /* ---------------------------- = length_in_units */ 4 103 /* points_per_EM */ 4 104 4 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 2963 5 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl compose_severity_ 5 6 fixed bin (35) ext static; 5 7 dcl comp_ entry; 5 8 dcl comp_art_ entry (ptr, bit (1)); 5 9 dcl comp_block_ctls_ 5 10 entry (fixed bin); 5 11 dcl comp_break_ entry (fixed bin, fixed bin); 5 12 dcl comp_break_ctls_ 5 13 entry (fixed bin); 5 14 dcl comp_ctls_ entry (bit (1) aligned); 5 15 dcl comp_eject_page_ 5 16 entry; 5 17 dcl comp_expr_eval_ 5 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 5 19 fixed bin, bit (1), fixed bin (31), char (*) var, 5 20 bit (9), fixed bin (35)); 5 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 5 22 fixed bin (21), fixed bin (21), ptr) 5 23 returns (char (*) var); 5 24 dcl comp_fill_ entry; 5 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 5 26 dcl comp_format_ctls_ 5 27 entry (fixed bin); 5 28 dcl comp_get_file_$find 5 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 5 30 fixed bin (35)); 5 31 dcl comp_get_file_$open 5 32 entry (ptr, bit (1), fixed bin (35)); 5 33 dcl comp_head_page_ 5 34 entry (fixed bin (31)); 5 35 dcl comp_hft_ctls_ entry (fixed bin); 5 36 dcl comp_hft_ctls_$title 5 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 5 38 dcl comp_init_$one entry; 5 39 dcl comp_init_$two entry; 5 40 dcl comp_init_$three 5 41 entry; 5 42 dcl comp_insert_ctls_ 5 43 entry (fixed bin); 5 44 dcl comp_make_page_ 5 45 entry (fixed bin, bit (1)); 5 46 dcl comp_make_page_$cleanup 5 47 entry; 5 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 5 49 fixed bin (31), ptr, ptr, ptr); 5 50 dcl comp_read_$name 5 51 entry (char (*) var, fixed bin (21), fixed bin (21), 5 52 ptr) returns (char (*) var); 5 53 dcl comp_read_$number 5 54 entry (char (*) var, (*) fixed bin (31), 5 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 5 56 returns (fixed bin (31)); 5 57 dcl comp_read_$line 5 58 entry (ptr, char (*) var, bit (1)); 5 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 5 60 char (*) var); 5 61 dcl comp_report_$ctlstr 5 62 entry options (variable); 5 63 /**** (sev, code, info, line, ctl_str, args... */ 5 64 dcl comp_report_$exact 5 65 entry (char (*), ptr); 5 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 5 67 bit (1)); 5 68 dcl comp_tbl_ctls_ entry (fixed bin); 5 69 dcl comp_title_block_ 5 70 entry (ptr); 5 71 dcl comp_update_symbol_ 5 72 entry (bit (1), bit (1), bit (1), char (32), 5 73 char (*) var); 5 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 5 75 dcl comp_util_$add_text 5 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 5 77 dcl comp_util_$display 5 78 entry (char (*) var, fixed bin, bit (1)) 5 79 returns (char (*) var); 5 80 dcl comp_util_$escape 5 81 entry (char (*) var, ptr); 5 82 dcl comp_util_$getblk 5 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 5 84 dcl comp_util_$num_display 5 85 entry (ptr, fixed bin) returns (char (256) var); 5 86 dcl comp_util_$pageno 5 87 entry (fixed bin, char (*) var); 5 88 dcl comp_util_$pictures /* emit pending pictures */ 5 89 entry /**/ 5 90 (ptr); /* current text block */ 5 91 dcl comp_util_$pop entry (char (32)); 5 92 dcl comp_util_$push 5 93 entry (char (32)); 5 94 dcl comp_util_$relblk 5 95 entry (fixed bin, ptr); 5 96 dcl comp_util_$replace_text 5 97 entry (ptr, bit (1), ptr, ptr); 5 98 dcl comp_util_$search_tree 5 99 entry (char (32), bit (1)); 5 100 dcl comp_util_$set_bin 5 101 entry (fixed bin (31), char (32) var, fixed bin (31), 5 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 5 103 fixed bin (31)); 5 104 dcl comp_util_$set_net_page 5 105 entry (bit (1)); 5 106 dcl comp_util_$translate 5 107 entry (char (*) var) returns (char (*) var); 5 108 dcl comp_write_block_ 5 109 entry (fixed bin); 5 110 dcl comp_write_page_ 5 111 entry; 5 112 5 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 2964 6 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 6 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 6 7 2 bachelor bit (1), /* 1= has no members */ 6 8 2 devfnt fixed bin, /* font in the device */ 6 9 2 fam_name char (32), /* family name */ 6 10 2 famndx fixed bin, /* family index */ 6 11 2 fntptr ptr, /* font table pointer */ 6 12 2 mem_name char (32), /* /member name (or null) */ 6 13 2 memndx fixed bin, /* member index */ 6 14 2 memptr ptr, /* member table pointer */ 6 15 2 name char (65) var, /* font name */ 6 16 2 size fixed bin (31), /* requested point size */ 6 17 2 ps fixed bin (31), /* effective point size */ 6 18 2 fcs_str char (8); /* FCS string */ 6 19 6 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 2965 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 */ 2966 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 <value> 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 2967 9 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl max_image_lines 9 6 fixed static options (constant) init (1000); 9 7 dcl max_cols fixed static options (constant) init (20); 9 8 9 9 dcl page_version fixed bin static options (constant) init (5); 9 10 /* composed page structure */ 9 11 dcl 1 page aligned based (const.page_ptr), 9 12 2 version fixed bin, /* version of this structure */ 9 13 2 parms aligned like page_parms, 9 14 /* page formatting parameters */ 9 15 2 hdr aligned like page_header, 9 16 /* page control stuff */ 9 17 2 image_ptr ptr, /* pointer to the madeup page image */ 9 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 9 19 2 col_image_ptr 9 20 (-2:21) ptr; /* pointers to column images */ 9 21 /* col -1 is for line numbers and */ 9 22 /* left margin change bars; */ 9 23 /* col -2 is for */ 9 24 /* right margin change bars */ 9 25 /* and/or annotation * / 9 26* /* page control stuff */ 9 27 dcl 1 page_header aligned based (const.page_header_ptr), 9 28 2 sws, 9 29 3 art bit (1) unal, /* 1 = header/footer art */ 9 30 3 blankpage 9 31 bit (1) unal, /* 1 = intentional blank page */ 9 32 3 frontpage 9 33 bit (1) unal, /* 1 = odd page number */ 9 34 3 headed bit (1) unal, /* 1 = page header has been written */ 9 35 3 modified bit (1) unal, /* 1 = page has been modified */ 9 36 3 overflow bit (1) unal, /* OBSOLETE */ 9 37 3 MBZ bit (12) unal, 9 38 3 dot_addltr 9 39 char (1) unal, /* dot page add letter, if any */ 9 40 3 pgc_select 9 41 char (1) unal, /* for selecting change pages */ 9 42 2 baldepth fixed bin (31), /* page depth at balance point */ 9 43 2 balusd fixed bin (31), /* space used at balance point */ 9 44 2 col_count fixed bin, /* highest value of col_index for the page */ 9 45 2 col_index fixed bin, /* column index */ 9 46 2 depth fixed bin (31), /* current page depth */ 9 47 2 hdspc fixed bin (31), /* TOP white space */ 9 48 2 lmarg fixed bin (31), /* left margin for this page */ 9 49 2 net fixed bin (31), /* net usable space on the page */ 9 50 2 pageno char (32) var, /* current page number */ 9 51 2 used fixed bin (31); /* space already used on the page */ 9 52 9 53 dcl page_image_version 9 54 fixed bin (35) static options (constant) init (2); 9 55 /* structure passed to writers */ 9 56 dcl 1 page_image aligned based (page.image_ptr), 9 57 2 version fixed bin (35), /* structure version no */ 9 58 2 count fixed bin, /* count of page image lines */ 9 59 2 file_id char (32) var, /* compout identifier */ 9 60 2 func fixed bin, /* function code; 0 = build, 9 61* 1 = intialize, 2 = cleanup */ 9 62 2 text_ptr ptr, /* pointer to the text area */ 9 63 /* the image lines */ 9 64 2 line (max_image_lines), 9 65 3 sws, 9 66 4 quad bit (6) unal, /* text set position flags */ 9 67 4 art bit (1) unal, /* 1 = artwork in the line */ 9 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 9 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 9 70 4 white bit (1) unal, /* line is white */ 9 71 4 MBZ bit (26) unal, 9 72 3 depth fixed bin (31), /* page depth for the text */ 9 73 3 gaps fixed bin, /* number of WS gaps in the line */ 9 74 3 info like text_entry.info, 9 75 /* input file info */ 9 76 3 lead fixed bin (31), /* lead value if trailing WS */ 9 77 3 lfnt fixed bin, /* font at the left margin */ 9 78 3 lmarg fixed bin (31), /* text left margin position */ 9 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 9 80 3 net fixed bin (31), /* net width for filling */ 9 81 3 pos fixed bin (31), /* current horiz position */ 9 82 3 ptr ptr, /* pointer to the text */ 9 83 3 rmarg fixed bin (31), /* text right margin position */ 9 84 3 width fixed bin (31); /* width of the text */ 9 85 /* current page formatting parms */ 9 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 9 87 2 init_page_depth 9 88 fixed bin (31), /* initial page depth */ 9 89 2 length fixed bin (31), /* page length */ 9 90 2 lmarg, /* page left margin */ 9 91 3 even fixed bin (31), 9 92 3 odd fixed bin (31), 9 93 2 margin, /* margin values */ 9 94 3 top fixed bin (31), 9 95 3 header fixed bin (31), 9 96 3 footer fixed bin (31), 9 97 3 bottom fixed bin (31), 9 98 2 measure fixed bin (31), /* line space available for text */ 9 99 2 net, /* net usable space on page */ 9 100 3 even fixed bin (31), /* even pages */ 9 101 3 odd fixed bin (31), /* odd pages */ 9 102 /* arrays at the end */ 9 103 2 cols, /* columns defined for the page */ 9 104 3 bal bit (1) unal, /* column balancing control flag */ 9 105 3 MBZ bit (17) unal, 9 106 3 count fixed bin unal; /* the number of columns */ 9 107 /* default page formatting parms */ 9 108 dcl 1 init_page_parms 9 109 aligned like page_parms 9 110 based (const.init_page_parms_ptr); 9 111 9 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 2968 10 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl shared_version fixed bin (35) static options (constant) init (17); 10 6 10 7 dcl 1 shared aligned based (const.shared_ptr), 10 8 2 version fixed bin (35), /* version of this structure */ 10 9 2 chars, 10 10 ( 3 sym_delim, /* delimiter for symbols */ 10 11 3 ttl_delim, /* delimiter for title parts */ 10 12 3 wrd_brkr /* word break character */ 10 13 ) char (1) unal, 10 14 3 PAD char (1) unal, 10 15 2 cbar_type char (4) var, /* change bar type */ 10 16 2 dot_add_letter /* dot page add letter */ 10 17 char (1) var, 10 18 2 EN_width fixed bin (31), /* width of EN in current font */ 10 19 2 eqn_refct fixed bin, /* equation reference counter */ 10 20 2 footref_fcs /* footnote ref FCS string */ 10 21 char (8) aligned, 10 22 2 ftn_reset char (8) var, /* footnote reset mode */ 10 23 2 ftnrefct fixed bin, /* footnote ref counter */ 10 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 10 25 2 if_nest, /* if/then/else logic control */ 10 26 3 ndx fixed bin, /* depth of logic nest */ 10 27 3 e (25), /* nest entries */ 10 28 /* .if control switch */ 10 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 10 30 4 info aligned like text_entry.info, 10 31 4 line char (256) var, /* the control line */ 10 32 2 indctl, /* indent ctls stack */ 10 33 3 ndx fixed bin, /* current level */ 10 34 /* switch bits */ 10 35 3 stk (0:35) bit (1) unal, 10 36 2 input_dirname 10 37 char (168) var, /* dir containing current input file */ 10 38 2 input_filename 10 39 char (200) var, /* current input file name */ 10 40 2 lead fixed bin (31), /* current linespacing value */ 10 41 2 lit_count fixed bin (35), /* count of literal lines */ 10 42 2 next_pagenmbr 10 43 char (32) var, /* next page number / */ 10 44 2 output_file 10 45 char (32) var, /* output file identifier */ 10 46 2 pagecount fixed bin, /* number of pages produced */ 10 47 2 pagenum, /* page number structure */ 10 48 3 index fixed bin, /* level currently counting */ 10 49 ( 10 50 3 sep char (1) unal, /* separator chars */ 10 51 3 nmbr fixed bin (31), /* the counters */ 10 52 3 mode /* display modes */ 10 53 fixed bin (8) unal 10 54 ) dimension (20), 10 55 2 parameter char (254) var, /* command line parameter */ 10 56 2 param_pres bit (1), /* passed parameter flag */ 10 57 2 pass_counter 10 58 fixed bin, /* pass counter */ 10 59 2 picture, /* picture blocks */ 10 60 3 count fixed bin, /* number of them */ 10 61 3 space fixed bin (31), /* total picture space */ 10 62 3 blk (10), /* picture blocks */ 10 63 4 type char (4), /* type = page/col */ 10 64 4 place char (4), /* place = top/cen/bot */ 10 65 4 ptr ptr, /* pointer to block */ 10 66 4 size fixed bin (31), /* size of the picture */ 10 67 2 ptrs, 10 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 10 69 3 blank_footer_ptr, /* -> blank page footer */ 10 70 3 blank_header_ptr, /* -> blank page header */ 10 71 3 blank_text_ptr, /* -> blank page text */ 10 72 3 blkptr, /* -> active text */ 10 73 3 colptr, /* current column */ 10 74 3 compout_ptr, /* iocb pointer for output */ 10 75 3 compx_ptr, /* iocb pointer for compx file */ 10 76 3 ctb_ptr, /* current line artwork table */ 10 77 3 epftrptr, /* even page footer block */ 10 78 3 ephdrptr, /* even page header block */ 10 79 3 fcb_ptr, /* input file control block pointer */ 10 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 10 81 3 footnote_header_ptr, /* footnote header "title" */ 10 82 3 graphic_page_ptr, /* graphic output page */ 10 83 3 hit_data_ptr, /* hit data pointer */ 10 84 3 htab_ptr, /* horizontal tab tables */ 10 85 3 hwrd_data_ptr, /* local hyphenation table */ 10 86 3 insert_ptr, /* data entry for current input file */ 10 87 3 opftrptr, /* odd page footer block */ 10 88 3 ophdrptr, /* odd page header block */ 10 89 3 ptb_ptr, /* previous line artwork table */ 10 90 3 spcl_blkptr, /* "special" block pointer */ 10 91 3 tbldata_ptr, /* table column data structure */ 10 92 3 tblkdata_ptr, /* text block data array */ 10 93 3 text_header_ptr /* empty text header structure */ 10 94 ) ptr, 10 95 2 scale, /* space conversion scale factors */ 10 96 3 horz fixed bin (31), /* horizontal */ 10 97 3 vert fixed bin (31), /* vertical */ 10 98 2 source_filename 10 99 char (200) var, /* current source file name */ 10 100 2 sws, /* switch bits */ 10 101 ( 3 bug_mode, /* debug mode */ 10 102 3 compout_not_headed, /* compout is not headed */ 10 103 3 end_input, /* EOF for current input file */ 10 104 3 end_output, /* no more output is wanted */ 10 105 3 firstpass, /* first pass over input */ 10 106 3 ftn_mode, /* in footnote mode */ 10 107 3 hyph_mode, /* hyphenating mode */ 10 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 10 109 3 literal_mode, /* literal line mode flag */ 10 110 3 pageblock, /* blocks belong to page */ 10 111 3 picture_mode, /* building a picture */ 10 112 3 print_flag, /* producing output */ 10 113 3 purge_ftns, /* purging footnotes */ 10 114 3 suppress_footref, /* suppress next footnote ref */ 10 115 3 table_mode /* table mode */ 10 116 ) bit (1) unal, 10 117 3 MBZ bit (21) unal, 10 118 2 trans, /* trans table for .tr */ 10 119 3 in char (128) var, /* input chars */ 10 120 3 out char (128) var, /* output chars */ 10 121 2 widow_size fixed bin (31), /* widow size */ 10 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 10 123 /* to save shared data between files/passes */ 10 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 10 125 10 126 dcl dot_addltr_symb_index 10 127 fixed bin static options (constant) init (12); 10 128 dcl max_text_lines fixed bin static options (constant) init (1000); 10 129 dcl mode_string char (16) static options (constant) 10 130 init ("arbihxocalaurlru"); 10 131 /* value overlays */ 10 132 dcl flag_value bit (1) based; 10 133 dcl num_value fixed bin (31) based; 10 134 10 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 2969 11 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl 1 tblkdata /* data for allocated text blocks */ 11 6 aligned based (shared.tblkdata_ptr), 11 7 2 block, /* block pool */ 11 8 3 count fixed bin, 11 9 3 ptr (500) ptr, /* block pointers */ 11 10 /* block state flags */ 11 11 3 free (500) bit (1) unal, 11 12 2 line_area, /* line area pool */ 11 13 3 count fixed bin, 11 14 3 ptr (500) ptr, /* area pointers */ 11 15 /* area state flags */ 11 16 3 free (500) bit (1) unal, 11 17 2 text_area, /* text area pool */ 11 18 3 count fixed bin, 11 19 3 ptr (500) ptr, /* area pointers */ 11 20 /* area state flags */ 11 21 3 free (500) bit (1) unal, 11 22 3 string_area_count 11 23 fixed bin; /* line areas */ 11 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 11 25 dcl line_area_ptr ptr init (null); 11 26 dcl 1 line_area aligned based (line_area_ptr), 11 27 2 next ptr, /* forward thread */ 11 28 2 prev ptr, /* backward thread */ 11 29 2 count fixed bin, /* number of lines allocated */ 11 30 2 ndx fixed bin, /* index of current line */ 11 31 2 pndx fixed bin, /* area pool index */ 11 32 2 linptr (LINE_AREA_SIZE) ptr; 11 33 /* text areas */ 11 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 11 35 dcl text_area_ptr ptr init (null); 11 36 dcl 1 text_area aligned based (text_area_ptr), 11 37 2 next ptr, /* forward thread */ 11 38 2 count fixed bin, /* number of areas allocated */ 11 39 2 ndx fixed bin, /* index of current strarea */ 11 40 2 pndx fixed bin, /* area pool index */ 11 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 11 42 /* text string area */ 11 43 dcl string_area (256) fixed bin based; 11 44 dcl txtstrptr ptr; /* current text string */ 11 45 dcl txtstr char (1020) var based (txtstrptr); 11 46 11 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 11 48 /* general text block */ 11 49 dcl 1 text aligned based (shared.blkptr), 11 50 2 version fixed bin, /* version of structure */ 11 51 2 blkndx fixed bin, /* block data index */ 11 52 2 blktype char (2), /* block type code */ 11 53 /* dynamic block control stuff */ 11 54 2 hdr aligned like text_header, 11 55 /* text read from input file */ 11 56 2 input aligned like text_entry, 11 57 2 input_line char (1020) var,/* input buffer */ 11 58 2 line_area, 11 59 3 first ptr, /* head of line area thread */ 11 60 3 cur ptr, /* current line area */ 11 61 2 next_text ptr, /* next text string */ 11 62 /* text formatting parameters */ 11 63 2 parms aligned like default_parms, 11 64 2 text_area, 11 65 3 first ptr, /* head of text area thread */ 11 66 3 cur ptr; /* current text area */ 11 67 /* an empty text block line */ 11 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 11 69 2 sws, /* unaligned switches, etc. */ 11 70 3 art bit (1) unal, /* line has artwork */ 11 71 3 cbar, /* change bar flags */ 11 72 4 add bit (1) unal, /* text addition flag */ 11 73 4 del bit (1) unal, /* text deletion flag */ 11 74 4 mod bit (1) unal, /* text modification flag */ 11 75 3 default bit (1) unal, /* 1 = default case as needed */ 11 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 11 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 11 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 11 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 11 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 11 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 11 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 11 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 11 84 3 oflo bit (1) unal, /* line causes overflow */ 11 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 11 86 3 quad bit (6) unal, /* text alignment flags */ 11 87 3 space_added /* 1= line has added space */ 11 88 bit (1) unal, 11 89 3 spcl, /* special entry - not output text */ 11 90 4 file bit (1) unal, /* 1= output to special file */ 11 91 4 blk_splt /* 1= action at block split time */ 11 92 bit (1) unal, 11 93 4 page_mkup /* 1= action at page makeup time */ 11 94 bit (1) unal, 11 95 3 table bit (1) unal, /* 1= line is a table entry */ 11 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 11 97 3 title bit (1) unal, /* 1= line is a <title> */ 11 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 11 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 11 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 11 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 11 102 3 white bit (1) unal, /* 1= line is white space */ 11 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 11 104 3 MBZ bit (4) unal, 11 105 2 art_start fixed bin unal, /* start of art string in line */ 11 106 2 art_len fixed bin unal, /* length of art string in line */ 11 107 2 cbar_level /* change level for cbars */ 11 108 char (1) aligned, 11 109 2 cur, /* current scanning data for line */ 11 110 3 chrct fixed bin, /* count of chars scanned */ 11 111 3 gaps fixed bin, /* gap count */ 11 112 3 width fixed bin (31), /* width of font chars */ 11 113 3 min fixed bin (31), /* width of min spbnds */ 11 114 3 avg fixed bin (31), /* width of avg spbnds */ 11 115 3 max fixed bin (31), /* width of max spbnds */ 11 116 3 font like fntstk_entry, 11 117 2 depth fixed bin (31), /* page depth for line */ 11 118 /* font at start of line */ 11 119 2 font like fntstk_entry, 11 120 2 index fixed bin (21), /* char index for line scanning */ 11 121 2 info, /* stuff created during line input */ 11 122 3 fileno fixed bin, /* input file index */ 11 123 3 lineno fixed bin, /* input file line number */ 11 124 3 lineno0 fixed bin, /* call_box0 line number */ 11 125 2 linespace fixed bin (31), /* linespace value for the line */ 11 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 11 127 2 mod_len fixed bin, /* length of modified text */ 11 128 2 mod_start fixed bin, /* index for start of modified text */ 11 129 2 net fixed bin (31), /* net line width for filling */ 11 130 2 ptr ptr, /* pointer to the actual text */ 11 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 11 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 11 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 11 134 2 tblcol fixed bin, /* column for table entries */ 11 135 2 title_delim 11 136 char (1) unal, /* title delimiter if a <title> */ 11 137 2 title_index 11 138 fixed bin, /* <title> block index for line */ 11 139 2 width fixed bin (31), /* width of text */ 11 140 2 ftn, /* footnote info for line */ 11 141 3 ct fixed bin, /* number of footnote refs */ 11 142 3 used fixed bin (31), /* space used */ 11 143 3 e (40), /* limit is arbitrary */ 11 144 4 blkndx fixed bin unal, /* block index of footnote - if this 11 145* value is 0, then .frf was used */ 11 146 4 refno fixed bin unal; /* reference number */ 11 147 11 148 dcl ( 11 149 quadi init ("40"b3), /* set to the inside margin */ 11 150 quado init ("20"b3), /* set to the outside margin */ 11 151 quadl init ("10"b3), /* set left */ 11 152 quadc init ("04"b3), /* set centered */ 11 153 quadr init ("02"b3), /* set right */ 11 154 just init ("01"b3) /* justified */ 11 155 ) bit (6) static options (constant); 11 156 /* control line structure */ 11 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 11 158 dcl ctl_line char (1020) var based (ctl.ptr); 11 159 11 160 dcl txtlinptr ptr; /* the current text line */ 11 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 11 162 /* empty text header structure */ 11 163 dcl 1 text_header aligned based (const.text_header_ptr), 11 164 2 sws, /* control switches */ 11 165 3 art bit (1) unal, /* block has artwork */ 11 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 11 167 3 modified bit (1) unal, /* block contains modified lines */ 11 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 11 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 11 170 3 tblblk bit (1) unal, /* a table block */ 11 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 11 172 3 white bit (1) unal, /* block is a white space block */ 11 173 3 picture bit (1) unal, /* picture block */ 11 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 11 175 3 MBZ bit (26) unal, 11 176 2 art_count fixed bin unal, /* to count input art lines */ 11 177 2 blkptr ptr, /* pointer to suspended block */ 11 178 2 cap_size fixed bin unal, /* line count of text caption */ 11 179 2 cap_used fixed bin (31), /* size of text caption */ 11 180 2 colno fixed bin unal, /* column owning the block */ 11 181 2 count fixed bin unal, /* line count for block */ 11 182 2 eqn_line_count 11 183 fixed bin unal, /* counter for equation lines */ 11 184 2 first_text fixed bin unal, /* OBSOLETE */ 11 185 2 ftn, /* footnotes */ 11 186 3 ct fixed bin, /* count */ 11 187 3 usd fixed bin (31), /* space used */ 11 188 3 blkndx (40) fixed bin, /* footnote block index values */ 11 189 2 head_size fixed bin, /* line count of text header */ 11 190 2 head_used fixed bin (31), /* size of text header */ 11 191 2 index fixed bin unal, /* block index of next output line */ 11 192 2 keep_count fixed bin unal, /* to count input keep lines */ 11 193 2 last_line fixed bin, /* last text line in column */ 11 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 11 195 2 name char (32) var, /* block name, if any */ 11 196 2 nofill_count /* to count nofill lines */ 11 197 fixed bin, 11 198 2 parms_ptr ptr, /* parms for suspended block */ 11 199 2 refer fixed bin, /* inter-block reference */ 11 200 2 refer_index /* OBSOLETE */ 11 201 fixed bin, /* a reference */ 11 202 2 split fixed bin, /* split point for balancing */ 11 203 2 trl_ws fixed bin (31), /* trailing WS */ 11 204 2 used fixed bin (31); /* page space used by a column/block */ 11 205 /* text formatting parameters */ 11 206 dcl 1 text_parms aligned like default_parms 11 207 based (const.text_parms_ptr); 11 208 11 209 dcl 1 current_parms 11 210 aligned like default_parms 11 211 based (const.current_parms_ptr); 11 212 11 213 dcl 1 default_parms 11 214 aligned based (const.default_parms_ptr), 11 215 2 sws, /* control switches */ 11 216 3 quad bit (6) unal, /* text alignment mode */ 11 217 3 art bit (1) unal, /* 1 = block countains artwork */ 11 218 3 cbar, /* change bar flags */ 11 219 4 add bit (1) unal, /* text addition flag */ 11 220 4 del bit (1) unal, /* text deletion flag for next line */ 11 221 4 mod bit (1) unal, /* text modification flag */ 11 222 3 fill_mode 11 223 bit (1) unal, /* 1 = fill mode ON */ 11 224 3 footnote bit (1) unal, /* block is a footnote */ 11 225 3 hfc bit (1) unal, /* OBSOLETE */ 11 226 3 htab_mode 11 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 11 228 3 keep bit (1) unal, /* keep mode */ 11 229 3 page bit (1) unal, /* block belongs to page, not text */ 11 230 3 title_mode 11 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 11 232 3 MBZ bit (19) unal, 11 233 2 ftrptr ptr, /* text caption block */ 11 234 2 cbar_level /* change level for cbars */ 11 235 char (1) aligned, 11 236 2 hdrptr ptr, /* text header block */ 11 237 2 left, /* left margin data */ 11 238 3 indent fixed bin (31), 11 239 3 undent fixed bin (31), 11 240 2 linespace fixed bin (31), /* line spacing value */ 11 241 2 measure fixed bin (31), /* line space for text */ 11 242 /* right margin data */ 11 243 2 right like default_parms.left, 11 244 2 fntstk, /* stack of last 20 font changes */ 11 245 3 index fixed bin, /* which one in use */ 11 246 /* entry(0) is the default */ 11 247 3 entry (0:19) like fntstk_entry; 11 248 11 249 dcl hfcblk_ptr ptr; 11 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 11 251 11 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 2970 12 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 12 2* 12 3* This storage is converted from external (as declared) to internal by the 12 4* binder and contains items that must be accessible to both the bound and 12 5* unbound program. */ 12 6 12 7 /* Written: ??/??/7? - EJW 12 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 12 9* and removed the codes array; version 6. 12 10**/ 12 11 12 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 13 12 14 dcl 1 compstat$compconst 12 15 aligned like const ext static; 12 16 12 17 dcl const_version fixed bin (35) static options (constant) init (6); 12 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 12 19 fixed bin static options (constant) init (80); 12 20 dcl MAX_TREE_AREAS /* number of tree areas */ 12 21 fixed bin static options (constant) init (20); 12 22 12 23 dcl 1 const aligned based (compstat$compconst.ptr), 12 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 12 25 2 version fixed bin (35), /* structure version */ 12 26 2 art_symbols /* string of art symbols */ 12 27 char (28) aligned, 12 28 2 builtin_count /* count of builtin variables */ 12 29 fixed bin, 12 30 2 comp_dir char (200), /* dir in which compose lives */ 12 31 2 comp_version 12 32 char (8) var, /* compose version id */ 12 33 2 date_value char (8) var, /* current date */ 12 34 2 dsm_name char (32), /* device support module name */ 12 35 2 dvt_name char (32), /* device table name */ 12 36 2 max_seg_chars 12 37 fixed bin (35), /* char count in a max seg */ 12 38 2 null_str char (1) var, /* an empty string */ 12 39 2 ptrs, 12 40 ( 3 call_stk_ptr, /* -> insert call stack */ 12 41 3 colhdrptr, /* empty column header structure */ 12 42 3 ctl_ptr, /* input line structure */ 12 43 3 current_parms_ptr, /* current formatting parms */ 12 44 3 default_parms_ptr, /* default initial text parms */ 12 45 3 devptr, /* -> comp_dvt structure */ 12 46 3 dvidptr, /* -> comp_dvid structure */ 12 47 3 errblk_ptr, /* error message block pointer */ 12 48 3 footnote_parms_ptr, /* footnote formatting parms */ 12 49 3 fnttbldata_ptr, /* -> font table data */ 12 50 3 global_area_ptr, /* per invocation storage */ 12 51 3 init_page_parms_ptr, /* default initial page parms */ 12 52 3 insert_data_ptr, /* insert file data block */ 12 53 3 local_area_ptr, /* per file storage */ 12 54 3 loctbl_ptr, /* for font copying */ 12 55 3 option_ptr, /* program options block */ 12 56 3 outproc_ptr, /* device writer for cleanup */ 12 57 3 page_ptr, /* active page structure */ 12 58 3 page_header_ptr, /* empty page header structure */ 12 59 3 page_parms_ptr, /* page formatting parameter block */ 12 60 3 save_shared_ptr, /* saved shared data */ 12 61 3 shared_ptr, /* shared data structure */ 12 62 3 text_entry_ptr, /* empty text entry structure */ 12 63 3 text_header_ptr, /* empty text header structure */ 12 64 3 text_parms_ptr, /* main body formatting parms */ 12 65 3 tree_ptr /* symbol tree structure */ 12 66 ) ptr, 12 67 2 time_value char (6) var; /* time at start */ 12 68 12 69 /* Other external */ 12 70 dcl ( 12 71 ioa_, 12 72 ioa_$nnl 12 73 ) entry options (variable); 12 74 dcl iox_$error_output 12 75 ptr ext static, /* iocb pointer for error_output */ 12 76 iox_$user_input 12 77 ptr ext static, /* iocb pointer for user_input */ 12 78 iox_$user_output 12 79 ptr ext static; /* iocb pointer for user_output */ 12 80 dcl sys_info$max_seg_size 12 81 fixed bin (18) ext static; 12 82 12 83 /* END INCLUDE FILE compstat.incl.pl1 */ 2971 2972 2973 end comp_art_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0908.6 comp_art_.pl1 >spec>online>comp>comp_art_.pl1 2960 1 03/01/85 1411.8 comp_art_parts.incl.pl1 >ldd>include>comp_art_parts.incl.pl1 2961 2 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 2962 3 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 2963 4 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 2964 5 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 2965 6 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 2966 7 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 2967 8 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 2968 9 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 2969 10 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 2970 11 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 2971 12 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. BSP 030000 constant char(1) initial unaligned dcl 7-6 ref 313 316 343 369 419 436 1423 DC1 027777 constant char(1) initial unaligned dcl 7-6 ref 214 316 324 347 1423 1430 DCxx_p 005700 automatic pointer dcl 3-8 set ref 350* 351 EN 027776 constant char(1) initial unaligned dcl 7-6 ref 2252 EN3 000515 automatic fixed bin(31,0) dcl 45 set ref 229* 231* 1073 1094 1129 1190 1672 1722 1762 1804 1911 1990 EN6 000516 automatic fixed bin(31,0) dcl 46 set ref 228* 231* 1071 1358 1382 1639 1847 1905 1982 1988 EN_width 6 based fixed bin(31,0) level 2 dcl 10-7 ref 222 NUL constant char(1) initial unaligned dcl 7-6 ref 344 389 401 PAD constant char(1) initial unaligned dcl 7-6 ref 465 1410 1410 1463 addr builtin function dcl 204 ref 217 308 350 413 413 485 485 485 485 485 485 485 485 509 538 538 576 699 699 752 807 817 817 919 961 973 973 1048 1048 1069 1161 1161 1229 1270 1320 1320 1420 1451 1451 1470 1483 1483 1483 1483 1483 1483 1483 1483 1530 1530 1541 1541 1551 1568 1574 1586 1625 1658 1694 1710 1710 1747 1790 1833 1882 1948 1948 1960 2012 2056 2274 2284 2335 2346 2573 2592 2646 2658 2715 2734 2791 2811 2811 2846 2846 2870 2875 arg based char unaligned dcl 2936 ref 2952 argl 005673 automatic fixed bin(17,0) dcl 2937 set ref 2944* 2952 argp 005674 automatic pointer dcl 2938 set ref 2944* 2952 art 4 based bit(1) level 4 in structure "block" packed unaligned dcl 119 in procedure "comp_art_" set ref 2855* art based bit(1) level 3 in structure "txtlin" packed unaligned dcl 11-161 in procedure "comp_art_" ref 265 art 000000 constant structure level 1 packed unaligned dcl 1-4 in procedure "comp_art_" art_str 000100 automatic varying char(1020) dcl 24 set ref 2044* 2082* 2082 2088* 2088 2140* 2140 2159* 2159 2172* 2172 2191* 2191 2205* 2205 2220* 2220 2230* 2230 2246* 2246 2252* 2252 2284* 2284 2301* 2301 2316* 2316 2346* 2346 2359* 2359 2375* 2375 2387* 2387 2404* 2404 2415* 2415 2426* 2426 2437* 2437 2448* 2448 2459* 2459 2473* 2473 2486* 2486 2500* 2500 2516* 2516 2529* 2529 2541* 2541 2592* 2592 2593* 2593 2595* 2595 2597* 2597 2599* 2599 2615* 2615 2658* 2658 2659* 2659 2661* 2661 2663* 2663 2665* 2665 2685* 2685 2734* 2734 2735* 2735 2737* 2737 2739* 2739 2741* 2741 2753* 2753 2772* 2772 2791* 2791 2792* 2792 2794* 2794 2796* 2796 2798* 2798 2846 2846 2870* 2870 2891* 2891 art_symbol_width constant fixed bin(31,0) initial dcl 25 ref 559 1077 art_symbols 3 based char(28) level 2 dcl 12-23 ref 380 459 555 730 742 797 844 874 900 908 953 1019 1216 1250 1254 1263 1303 1307 2143 2143 2161 2161 2174 2174 2194 2194 2206 2206 2221 2221 2233 2233 2247 2247 avg 4 000540 automatic fixed bin(31,0) level 2 dcl 63 set ref 491 1487 1493 b 26 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2753 bad_char 000500 automatic char(4) unaligned dcl 27 set ref 411* 413 base 2 based fixed bin(31,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 473* 500* 500* 515* 564* 567* 1413* 1413* 1474* 1591* 1723* 1763* 1805* 1848* 1913* 1992* 2061 2061* 2838* base 000501 automatic fixed bin(31,0) dcl 29 in procedure "comp_art_" set ref 309* 473 515 564 567 604* 604 611* 611 628* 628 635* 635 652* 652 659* 659 675* 675 682* 682 705* 705 707* 707 1474 2043* 2061 2071* 2071* 2143* 2143* 2161* 2161* 2174* 2174* 2194* 2194* 2206* 2221* 2233* 2233* 2247* 2361* 2361* 2831 2834* 2834* 2887 2890 2893* 2893* 2897* base 13 003146 automatic fixed bin(31,0) array level 3 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 1591 1723 1763 1805 1848 1913 1992 bl 25(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2715 2734 bl 27(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2346 blind 1 based bit(1) level 2 packed unaligned dcl 196 set ref 1279* 1592* 1632* 1665* 1700* 1753* 1797* 1840* 1888* 1966* 2353 2370 2382 2394 2468 2481 blkndx 1 based fixed bin(17,0) level 2 dcl 119 set ref 211* 271* blkptr parameter pointer dcl 19 set ref 14 211 211 238 271 2785 2846* 2855 block based structure level 1 dcl 119 bottom 22(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2459 bottom 6 000000 constant char(1) initial array level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2220 box 24(09) 000000 constant structure level 2 packed unaligned dcl 1-4 boxb 1(08) based bit(1) level 2 packed unaligned dcl 196 set ref 828* 2747 boxbl 1(07) based bit(1) level 2 packed unaligned dcl 196 set ref 832* 2691 boxbl_ndx constant fixed bin(17,0) initial dcl 96 ref 1270 boxbr 12(09) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2554 2569 2597 2627 2642 2663 2696 2711 2739 2776 2796 2807 boxbr 1(09) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 983* boxl 1(04) based bit(1) level 2 packed unaligned dcl 196 set ref 787* 2622 boxl_ndx constant fixed bin(17,0) initial dcl 96 ref 1574 boxr 1(06) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 943* boxr 12(06) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2554 2567 2595 2627 2640 2661 2696 2709 2737 2776 2794 2805 boxt 1(02) based bit(1) level 2 packed unaligned dcl 196 set ref 769* 2605 boxtl 1(01) based bit(1) level 2 packed unaligned dcl 196 set ref 774* 2549 boxtl_ndx constant fixed bin(17,0) initial dcl 96 ref 752 807 919 961 1229 1568 boxtr 1(03) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 935* boxtr 12(03) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2554 2565 2593 2627 2638 2659 2696 2707 2735 2776 2792 2803 boxx 1(05) based bit(1) level 2 packed unaligned dcl 196 set ref 783* 2672 br 27(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2346 br 26(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2573 2597 2663 2715 2739 2796 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 10-7 ref 211 247 2858 cflags based bit(72) unaligned dcl 30 set ref 387* 440 440 446 446 454 532 549 553 688 688 688 718* 1574 2012 2118* 2122 2128 char builtin function dcl 204 ref 413 538 2159 2172 2191 2191 2205 2220 2230 2230 2246 2375 2387 2516 chrct 000540 automatic fixed bin(17,0) level 2 dcl 63 set ref 492 com_err_ 000016 constant entry external dcl 2934 ref 2948 comp_dvt based structure level 1 dcl 4-19 comp_measure_ 000024 constant entry external dcl 5-48 ref 485 1483 comp_report_ 000026 constant entry external dcl 5-59 ref 413 538 699 1048 1161 1320 1451 1530 1541 1710 1948 comp_report_$ctlstr 000030 constant entry external dcl 5-61 ref 817 973 comp_util_$display 000032 constant entry external dcl 5-77 ref 271 500 1515 2071 2143 2274 2335 2361 2573 2573 2573 2573 2573 2573 2646 2715 2715 2715 2715 2715 2715 2811 2811 2875 2893 comp_util_$replace_text 000034 constant entry external dcl 5-96 ref 2846 comp_util_$translate 000036 constant entry external dcl 5-106 ref 2082 compstat$compconst 000040 external static structure level 1 dcl 12-14 const based structure level 1 dcl 12-23 copen 000502 automatic fixed bin(17,0) initial dcl 32 set ref 32* 1297 1297* 1297 1300 1300* 1300 1538 1544* count 12(18) based fixed bin(17,0) level 3 packed unaligned dcl 119 set ref 211* cptr 000504 automatic pointer initial dcl 34 set ref 34* 308* 387 440 440 440 446 446 446 454 473 474 476 477 479 490 491 492 495 495 500 500 500 500 500 500 500 500 500 500 500 509* 513 515 521 524 524 526 526 526 528 528 528 530 530 532 535 538 549 549 553 559 561 564 564 567 570 570 576 576 583 587 590 594 597 600 602 603 610 618 621 624 626 627 634 643 646 649 650 651 658 666 669 672 673 674 681 688 688 688 693 696 696 705 705 707 707 709 709 709 709 711 711 711 711 718 725 734 739 752 769 774 777 783 787 788 790 790 794 794 794 807 817 817 828 832 834 836 836 841 841 847 848 848 851 855 855 855 858 858 879 880 880 880 882 888 888 888 888 895 895 905 919 935 937 937 943 945 945 950 950 950 961 973 973 983 985 985 990 993 993 994 1001 1001 1004 1004 1022 1024 1024 1024 1032 1032 1032 1042 1045 1056 1056 1060 1071 1073 1075 1075 1075 1076 1077 1085 1094 1096 1096 1096 1097 1098 1118 1128 1129 1137 1140 1146 1148 1154 1158 1177 1189 1190 1198 1205 1207 1213 1229 1247 1250 1254 1260 1260 1260 1270 1279 1287 1289 1293 1293 1293 1297 1297 1300 1302 1303 1307 1314 1314 1317 1328 1331 1338 1338 1338 1338 1344 1352 1358 1361 1364 1364 1364 1368 1376 1382 1385 1388 1388 1391 1392 1399 1401 1413 1413 1413 1413 1413 1413 1420* 1470* 1473 1474 1476 1477 1479 1479 1483 1483 1487 1491 1493 1495 1495 1495 1498 1498 1507 1515 1515 1515 1515 1515 1515 1515 1515 1515 1515 1515 1532 1551* 1552 1554 1554 1586* 1589 1590 1591 1592 1625* 1626 1631 1632 1637 1637 1638 1639 1658* 1659 1664 1665 1670 1670 1671 1672 1681 1694* 1699 1700 1720 1720 1721 1722 1723 1747* 1752 1753 1760 1760 1761 1762 1763 1790* 1791 1796 1797 1802 1802 1803 1804 1805 1833* 1839 1840 1845 1845 1846 1847 1848 1882* 1887 1888 1895 1897 1903 1905 1910 1911 1913 1960* 1965 1966 1973 1975 1981 1982 1987 1988 1990 1992 2049 2049 2056* 2058 2058 2061 2061 2065 2071 2071 2071 2071 2071 2071 2071 2071 2071 2071 2082 2082 2082 2082 2088 2088 2099 2102 2107 2112 2112 2113 2113 2118 2118 2122 2122 2127 2128 2134 2137 2141 2143 2143 2143 2156 2161 2161 2161 2174 2185 2188 2188 2194 2206 2214 2214 2217 2227 2243 2264 2291 2302 2303 2306 2317 2318 2320 2325 2353 2353 2353 2361 2361 2370 2370 2370 2382 2382 2382 2394 2394 2401 2412 2423 2434 2445 2456 2468 2468 2468 2481 2481 2481 2481 2494 2494 2506 2511 2511 2524 2536 2549 2605 2616 2617 2622 2672 2686 2687 2691 2747 2755 2756 2758 2758 2766 2838 crl 000506 automatic fixed bin(17,0) dcl 36 set ref 237* 242* 242 255 271* 570 573 746 801 912 957 1056 1110 1168 1220 1267 1346 1373 1559 2038* crla 000507 automatic fixed bin(17,0) dcl 37 set ref 241* 244* crs 000510 automatic fixed bin(17,0) dcl 38 set ref 307* 308 470 470 472 500* 507* 507 509 1413* 1418 1419* 1419 1420 1421 1469* 1470 1471 1515* 1585* 1586 1587 1624* 1625 1657* 1658 1693* 1694 1705 1746* 1747 1758 1789* 1790 1832* 1833 1834 1880* 1882 1893 1958* 1960 1971 2055* 2056 2071* 2094 2099 2102 2143* 2161* 2174* 2194* 2206* 2221* 2233* 2247* 2269 2274* 2297* 2312* 2330 2335* 2361* 2376* 2388* 2405* 2416* 2427* 2438* 2449* 2460* 2474* 2487* 2502* 2517* 2530* 2542* 2554 2573* 2611* 2627 2646* 2681* 2696 2715* 2758* 2776 2811* 2831* crs_pos 000511 automatic fixed bin(31,0) dcl 39 set ref 309* 2058* 2068 2071* 2071* 2102 2112 2130 2143* 2143* 2161* 2161* 2174* 2174* 2194* 2194* 2206* 2221* 2233* 2233* 2247* 2254 2267 2271 2274* 2274* 2274* 2274* 2274 2274 2274 2274 2286 2294 2297* 2297* 2302 2309 2312* 2312* 2317 2328 2332 2335* 2335* 2335* 2335* 2335 2335 2335 2335 2348 2356 2361* 2361* 2373 2376* 2376* 2385 2388* 2388* 2397 2405* 2405* 2408 2416* 2416* 2419 2427* 2427* 2430 2438* 2438* 2441 2449* 2449* 2452 2460* 2460* 2463 2471 2474* 2474* 2477 2484 2487* 2487* 2490 2497 2502* 2502* 2514 2517* 2517* 2520 2527 2530* 2533 2539 2542* 2545 2552 2559 2573* 2573* 2573* 2573* 2573 2573 2573 2573 2601 2608 2611* 2611* 2616 2625 2632 2646* 2646* 2646* 2646* 2646 2646 2646 2646 2667 2675 2681* 2681* 2686 2694 2701 2715* 2715* 2715* 2715* 2715 2715 2715 2715 2743 2750 2755 2758* 2758* 2769 2867 2871 2875* 2875* crx 000512 automatic fixed bin(17,0) dcl 40 set ref 307* 316 319* 324 327* 327 327 331* 331 333 336* 341 347 350 351 356 356 356 356 356 356 365 369 436 436 465 477 513 1403 1403 1403 1403 1407 1407 1407 1410 1410 1410 1438* 1442* 1447 1447 ctb 001021 automatic structure level 1 dcl 122 set ref 233* 286* 2849 ctbe based structure level 1 unaligned dcl 196 set ref 1552* 1626* 1631* 1659* 1664* 1699* 1752* 1791* 1796* 1839* 1887* 1965* cu_$arg_ptr 000020 constant entry external dcl 2935 ref 2944 cur 126 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_art_" cur 10 based structure level 2 in structure "text_entry" dcl 11-68 in procedure "comp_art_" cur 126 based structure level 3 in structure "block" dcl 119 in procedure "comp_art_" cur 126 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_art_" cur 10 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_art_" cur 10 based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" set ref 1489 daro 11(16) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1607 daro 11(16) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1610 1643 1681 1734 1776 1820 daro 0(16) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 597 603* 634* 646 651* 681* 707 1250 1388 2370 2456 daro 20 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2375 daro_ndx constant fixed bin(17,0) initial dcl 96 ref 1250 datum parameter fixed bin(31,0) dcl 2902 ref 2900 2905 db_line 000012 internal static fixed bin(17,0) initial dcl 2932 set ref 255 2943* 2952* 2952 db_line_end 202 based fixed bin(35,0) level 2 dcl 8-5 ref 250 db_sw 000011 internal static bit(1) initial unaligned dcl 2927 set ref 247 2921* 2925* 2931* 2957* dclong1_len constant fixed bin(17,0) initial dcl 3-62 ref 216 219 221 2274 2284 2335 2346 2573 2592 2646 2658 2715 2734 2791 2811 2811 2870 2875 2891 2893 dclong_val based structure level 1 packed unaligned dcl 3-54 dcxx based structure level 1 packed unaligned dcl 3-11 debug_sw 000513 automatic bit(1) initial unaligned dcl 41 set ref 41* 250* 253* 258* dec builtin function dcl 204 ref 2905 default_parms based structure level 1 dcl 11-213 depth 76 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" set ref 271* 271* 287 depth 001021 automatic fixed bin(31,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 287* 1267 1592 depth 003146 automatic fixed bin(31,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 1267 1592 detail_sw 000514 automatic bit(1) initial unaligned dcl 43 set ref 43* 259* 261* 268 299 436 497 1413 1515 1554 2038 2049 2071 2143 2161 2174 2194 2206 2221 2233 2247 2274 2297 2312 2335 2361 2376 2388 2405 2416 2427 2438 2449 2460 2474 2487 2502 2517 2530 2542 2562 2611 2635 2678 2704 2758 2800 2834 2875 2893 devclass based char(32) level 2 dcl 4-19 ref 225 devptr 140 based pointer level 3 dcl 12-23 ref 225 807 961 1498 1498 diam 21(27) 000000 constant structure level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" diam 0(28) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1328* 1344* 1368* 1391* 1637* 1670* 1720* 1760* 1802* 1845* 2370 2382 2394 2468 2481 2494 2511 diam 11(28) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1352 1376 1602 1859 1924 divide builtin function dcl 204 ref 538 817 817 973 973 1498 2127 2905 dopen 1 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 281* 293* 1330* 1330 1335 1346 1373 1388 1394* 1394 1599 1713* 1713 dopen 1 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 293 dt_sw 000010 internal static bit(1) initial unaligned dcl 2917 set ref 259 2911* 2915* 2931* 2957* e 11 003146 automatic structure array level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 576 752 807 919 961 1069 1229 1270 1568 1631 1664 1699 1752 1796 1839 1887 1965 e 11 001021 automatic structure array level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 308 470* 470 472* 509 1420 1421* 1470 1471* 1551 1574 1586 1587* 1625 1658 1694 1705* 1747 1758* 1790 1833 1834* 1882 1893* 1960 1971* 2012 2017* 2017 2030 2031* 2031 2032* 2056 ercd 005676 automatic fixed bin(35,0) dcl 2939 set ref 2944* 2945 2948 2948* error_table_$noarg 000022 external static fixed bin(35,0) dcl 2940 ref 2948 first 776 based pointer level 3 dcl 119 ref 238 first_mini_pos constant fixed bin(17,0) initial dcl 96 ref 688 718 2118 fntstk_entry based structure level 1 dcl 6-6 font 100 based structure level 2 dcl 11-161 set ref 485 485 1483 1483 gaps 11 based fixed bin(17,0) level 3 dcl 11-161 set ref 271* hadj 3 based fixed bin(31,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 709* 709 711* 711 1071* 1073* 1094* 1129* 1190* 1358* 1382* 1413* 1413* 1515* 1515* 1639* 1672* 1722* 1762* 1804* 1847* 1905* 1911* 1982* 1988* 1990* 2058 hadj 14 001021 automatic fixed bin(31,0) array level 3 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 2559 hadj 14 003146 automatic fixed bin(31,0) array level 3 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 1094 1129 1190 1358 1382 1639 1672 1722 1762 1804 1847 1905 1911 1982 1988 1990 hadj 3 based fixed bin(31,0) level 2 in structure "ptbe" dcl 200 in procedure "comp_art_" ref 1071 1073 half_bottom 10 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2191 2230 half_size 000517 automatic fixed bin(17,0) dcl 47 set ref 2127* 2185 half_top 2 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2172 hcnt 000520 automatic fixed bin(31,0) dcl 48 set ref 2271* 2272 2274 2274 2274 2274 2286 2332* 2333 2335 2335 2335 2335 2348 2559* 2560 2573 2573 2573 2573 2601 2632* 2633 2646 2646 2646 2646 2667 2701* 2702 2715 2715 2715 2715 2743 hdr 4 based structure level 2 dcl 119 hldn 0(22) based bit(1) level 2 packed unaligned dcl 196 set ref 650* 666 673* hlup 0(21) based bit(1) level 2 packed unaligned dcl 196 set ref 643 649* 672* hopen 000521 automatic bit(1) initial unaligned dcl 49 set ref 49* 769 783 828 887* 895 937* 945* 985* 1038* 1527 1534* hor_sft 000523 automatic structure level 1 packed unaligned dcl 52 set ref 2870 2875 hor_sft_str based char unaligned dcl 53 ref 2870 2875 hor_vec 000526 automatic structure level 1 packed unaligned dcl 54 set ref 2274 2284 2335 2346 2573 2592 2646 2658 2715 2734 2791 2811 2811 hor_vec_str based char unaligned dcl 55 ref 2274 2284 2335 2346 2573 2592 2646 2658 2715 2734 2791 2811 2811 horiz 11(20) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1769 1811 horiz 20(18) 000000 constant structure level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" horiz 11(20) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2782* horiz 0(20) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 725 790* 836* 848* 880* 888 895 937* 985* 1338 1364 2320 2506 2766 horiz_ndx constant fixed bin(17,0) initial dcl 96 ref 730 hterm_pos 000522 automatic fixed bin(31,0) dcl 51 set ref 2785* 2788* 2790 2811* 2811* 2811* 2811* 2811* 2811* 2826 i 000531 automatic fixed bin(17,0) dcl 56 set ref 452* 454 458* 458 459 553* 555 576* 576 576 576 576 576* 583 587 1574* 1574 1574 1574* 1582 1585 1610* 1610 1610 1610 1610 1610* 1619* 1621 1624 1643* 1643 1643 1643 1643 1643* 1652* 1654 1657 1681* 1681 1681 1681* 1688* 1690 1693 1734* 1734 1734 1734 1734* 1741* 1743 1746 1776* 1776 1776* 1784* 1786 1789 1820* 1820 1820* 1827* 1829 1832 1864* 1864 1864 1864 1864 1864 1864* 1875* 1877 1880 1929* 1929 1929 1929 1929 1929 1929* 1940* 1942 1958 2010* 2016* 2016 2017 2020 2269* 2269* 2271 2274* 2330* 2330* 2332 2335* 2554* 2554 2554 2554 2554* 2559 2559 2565 2567 2569 2573* 2593 2595 2597 2627* 2627 2627 2627 2627* 2632 2638 2640 2642 2646* 2659 2661 2663 2696* 2696 2696 2696 2696* 2701 2707 2709 2711 2715* 2735 2737 2739 2776* 2776 2776 2776 2776 2776 2776* 2782 2782 2785 2788 2792 2794 2796 2803 2805 2807 2811* in 4114 based varying char(128) level 3 dcl 10-7 ref 2082 index builtin function dcl 204 ref 313 347 356 356 356 356 380 389 401 440 446 454 553 688 688 2128 info 277 based structure level 3 in structure "block" dcl 119 in procedure "comp_art_" info 277 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_art_" info 277 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_art_" info 161 based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" set ref 413 413 485 485 538 538 699 699 817 817 973 973 1048 1048 1161 1161 1320 1320 1451 1451 1483 1483 1530 1530 1541 1541 1710 1710 1948 1948 info 161 based structure level 2 in structure "text_entry" dcl 11-68 in procedure "comp_art_" info 161 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_art_" ioa_ 000042 constant entry external dcl 12-70 ref 211 271 281 299 500 1413 1515 1554 2038 2049 2071 2143 2161 2174 2194 2206 2221 2233 2247 2274 2297 2312 2335 2361 2376 2388 2405 2416 2427 2438 2449 2460 2474 2487 2502 2517 2530 2542 2573 2611 2646 2681 2715 2758 2811 2834 2858 2875 2893 ioa_$rsnnl 000014 constant entry external dcl 208 ref 411 isym 000533 automatic fixed bin(17,0) dcl 57 set ref 380* 383 386 398 j 000534 automatic fixed bin(21,0) dcl 58 set ref 316* 319 324 327 327 331 452* 453 454* 455 458 465* 467 476 479 1423* 1426 1430 1433 1433 1438 1463* 1466 1476 1477 1507 2011* 2012 2017* 2024* 2026 2026 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2030 2031 2031 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032 2032* 2565* 2567* 2569* 2571* 2573* 2573* 2638* 2640* 2642* 2644* 2646* 2707* 2709* 2711* 2713* 2715* 2715* 2803* 2805* 2807* 2809* 2811 2811* just constant bit(6) initial unaligned dcl 11-148 ref 271 485 485 1483 1483 1511 2091 k 000532 automatic fixed bin(17,0) dcl 56 set ref 477* 485 485 492* 493 l 27 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2301 l 25 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2658 laro 11(17) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1769 1811 laro 11(17) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1610 1681 2776 laro 0(17) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 711 1338 2412 2494 laro 21(09) 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2500 last_math constant fixed bin(17,0) initial dcl 96 ref 446 446 549 2122 last_mini_pos constant fixed bin(17,0) initial dcl 96 ref 688 688 last_ml_math constant fixed bin(17,0) initial dcl 96 ref 440 440 532 last_symb 000535 automatic bit(1) unaligned dcl 59 set ref 345* 369 428 431* lcirc 23(09) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2529 left 12 based structure level 2 in structure "text_parms" dcl 11-206 in procedure "comp_art_" left 12 based structure level 2 in structure "default_parms" dcl 11-213 in procedure "comp_art_" left 1016 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_art_" left 1016 based structure level 3 in structure "block" dcl 119 in procedure "comp_art_" left 12 based structure level 2 in structure "current_parms" dcl 11-209 in procedure "comp_art_" left 1016 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_art_" len 4 based fixed bin(21,0) level 2 dcl 196 set ref 477* 492* 500* 500 500 1477* 1515* 1515 1515 2071* 2071 2071 2071 2071 2082 2082 2088 leng 0(18) 000526 automatic fixed bin(9,0) level 2 in structure "hor_vec" packed unsigned unaligned dcl 54 in procedure "comp_art_" set ref 221* leng 0(18) based fixed bin(9,0) level 2 in structure "dcxx" packed unsigned unaligned dcl 3-11 in procedure "comp_art_" ref 351 leng 0(18) 001013 automatic fixed bin(9,0) level 2 in structure "vert_sft" packed unsigned unaligned dcl 90 in procedure "comp_art_" set ref 216* leng 0(18) 000523 automatic fixed bin(9,0) level 2 in structure "hor_sft" packed unsigned unaligned dcl 52 in procedure "comp_art_" set ref 219* length builtin function dcl 204 ref 319 341 369 1403 1442 1447 1460 1477 2071 line_1 217 based fixed bin(35,0) level 2 dcl 8-5 ref 250 line_2 220 based fixed bin(35,0) level 2 dcl 8-5 ref 250 line_area 776 based structure level 2 in structure "block" dcl 119 in procedure "comp_art_" line_area based structure level 1 dcl 11-26 in procedure "comp_art_" line_area_ptr 005702 automatic pointer initial dcl 11-25 set ref 238* 238* 241 244* 2853 11-25* line_width 4 001021 automatic fixed bin(31,0) level 2 dcl 122 set ref 2007* 2107* 2107 2113* 2113 2141* 2141 2303* 2303 2318* 2318 2617* 2617 2687* 2687 2756* 2756 2842 lineno 162 based fixed bin(17,0) level 3 dcl 11-161 set ref 271* 2038* lineno0 163 based fixed bin(17,0) level 3 dcl 11-161 set ref 250 250 linespace 164 based fixed bin(31,0) level 2 dcl 11-161 set ref 271* 271* 1628 1661 1696 1749 1793 1836 1884 1962 linptr 10 based pointer array level 2 dcl 11-26 ref 244 lmarg 2 001021 automatic fixed bin(31,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 295* 296 299* 299* 303* 310 2844 lmarg 2 003146 automatic fixed bin(31,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 295 lmarg 165 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" set ref 271* 271* 296 299* 299* 303 310 2844* lndx 16 003146 automatic fixed bin(17,0) array level 3 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 576 587 lndx 5 based fixed bin(17,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 570* 583* 587* 590* 2134 2185 2188 2214 2243 lopen 3 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 281* 291* 881* 881 997* 997 1080* 1080 1100* 1100 1113* 1113 1133* 1133 1140 1145* 1145 1856 lopen 3 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 291 loz 26(18) 000000 constant structure level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" loz 11(35) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1128 1189 1897 1975 loz 0(35) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1128* 1189* 1897* 1975* lozbl 1(14) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 879* 2325 lozbl 12(14) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1864 1864 lozbr 1(15) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1022* lozbr 12(15) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1929 1929 2330 lozl 1(12) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1076* 2291 lozl 12(12) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1929 lozl 12(12) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 858 1859 1864 1899 lozr 12(13) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1004 1924 1929 1977 lozr 12(13) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1864 lozr 1(13) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1097* 2306 loztl 12(10) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1060 1924 1988 loztl 1(10) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 847* 2264 loztl 1(10) based bit(1) level 2 in structure "ptbe" packed unaligned dcl 200 in procedure "comp_art_" ref 1071 loztop 000536 automatic bit(1) initial unaligned dcl 61 set ref 61* 847* 990 993* loztr 12(11) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2269 loztr 1(11) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 994* loztr 12(11) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1085 1859 lprn 0(04) based bit(1) level 2 packed unaligned dcl 196 set ref 1293 1297 1303 2524 lprn_ndx constant fixed bin(17,0) initial dcl 96 ref 1303 lslnt 11(19) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 858 1085 1118 1376 1730 1859 1864 lslnt 11(19) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1643 1734 1864 lslnt 22(27) 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2437 2473 lslnt 0(19) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 794 855 880* 888 950 990 993* 1042 1075* 1096* 1260 1670* 1760* 1802* 1895* 2434 2468 lslnt_ndx constant fixed bin(17,0) initial dcl 96 ref 874 lstrt 11(30) 003146 automatic bit(1) array level 3 packed unaligned dcl 199 set ref 1118 lterm 0(32) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1148* lterm 11(32) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 858 1859 ltrim builtin function dcl 204 ref 413 538 lvert 22 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2415 mark 000526 automatic char(1) level 2 in structure "hor_vec" packed unaligned dcl 54 in procedure "comp_art_" set ref 214* mark 000523 automatic char(1) level 2 in structure "hor_sft" packed unaligned dcl 52 in procedure "comp_art_" set ref 214* mark 001013 automatic char(1) level 2 in structure "vert_sft" packed unaligned dcl 90 in procedure "comp_art_" set ref 214* meas1 000540 automatic structure level 1 dcl 63 set ref 484* 485 485 1482* 1483 1483 1489* meas2 000626 automatic structure level 1 dcl 64 set ref 485 485 1483 1483 measure 1021 based fixed bin(31,0) level 3 dcl 119 ref 2785 middle 4 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2191 2205 min builtin function dcl 204 ref 2099 2102 min_WS 30 based fixed bin(31,0) level 2 dcl 4-19 ref 807 961 1498 1498 mod builtin function dcl 204 ref 564 2156 2217 move 005766 automatic fixed bin(31,0) dcl 2865 set ref 2867* 2869 2875* 2875* ndx 5 based fixed bin(17,0) level 2 dcl 11-26 ref 241 net 170 based fixed bin(31,0) level 2 dcl 11-161 set ref 271* 271* 485 1483 1495 1498 new_base parameter fixed bin(31,0) dcl 2885 set ref 2882 2887 2890 2893* 2893* 2897 next based pointer level 2 dcl 11-26 ref 2853 no_trim 2(08) based bit(1) level 3 packed unaligned dcl 11-161 set ref 2843* noart_opt 1(26) based bit(1) level 2 packed unaligned dcl 8-5 ref 2122 2259 null builtin function dcl 204 ref 34 70 238 11-25 11-35 one 14 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2140 2143 oneEN 000714 automatic fixed bin(31,0) dcl 66 set ref 222* 223 228 229 479 513 777 788 834 851 858 882 1004 1032 1060 1085 1098 1118 1137 1177 1302 1331 1352 1361 1376 1385 1392 1507 1610 1638 1643 1671 1681 1721 1734 1761 1769 1776 1803 1811 1820 1846 1864 1864 1910 1929 1929 1945 1987 2254 2272 2333 2408 2419 2430 2441 2452 2463 2477 2490 2520 2533 2545 2560 2633 2702 open 5 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 281* 289* 767* 767 826* 826 850* 850 883* 883 934* 934 982* 982 996* 996 1026* 1026 1115* 1115 1135* 1135 1143* 1143 1173* 1173 1196* 1196 1202* 1202 1224* 1224 1243* 1243 1285* 1285 1329* 1329 1393* 1393 1511 1559 1714* 1714 1953* 1953 open 5 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 289 296 option based structure level 1 dcl 8-5 option_ptr 164 based pointer level 3 dcl 12-23 ref 250 250 250 2122 2259 other_part 12 000000 constant char(1) initial array level 2 packed unaligned dcl 1-4 ref 2230 2246 pad_adj 000715 automatic fixed bin(17,0) dcl 67 set ref 309* 479 482* 1407* 1413* 1507 page_art parameter bit(1) unaligned dcl 20 ref 14 page_header based structure level 1 dcl 9-27 page_parms based structure level 1 dcl 9-86 parms 1004 based structure level 2 dcl 119 pflags based bit(72) unaligned dcl 68 ref 576 752 807 919 961 1229 1270 1568 pos 17 001021 automatic fixed bin(31,0) array level 3 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 1574 1610 1610 1643 1643 1681 1734 1776 1820 1864 1864 1929 1929 2026 2026 2099 2102 2271 2332 2559 2632 2701 2788 pos 17 003146 automatic fixed bin(31,0) array level 3 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 576 752 807 858 858 919 961 1004 1004 1060 1085 1118 1177 1229 1270 1352 1376 1574 1590 1610 1610 1638 1643 1643 1671 1681 1707 1721 1734 1761 1769 1769 1776 1803 1811 1811 1820 1846 1864 1864 1903 1910 1929 1929 1945 1981 1987 pos 6 based fixed bin(31,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 479* 500* 500* 513* 538 576 752 807 817 817 858 858 919 961 973 973 1004 1004 1045 1060 1085 1118 1158 1177 1229 1270 1317 1352 1376 1399 1495* 1498* 1507* 1515* 1515* 1554* 1554* 1590* 1638* 1671* 1721* 1761* 1803* 1846* 1903* 1910* 1981* 1987* 2049* 2049* 2058 pptr 000716 automatic pointer initial dcl 70 set ref 70* 1069* 1071 1071 1073 prlct 000720 automatic fixed bin(17,0) dcl 72 set ref 746* 748* 752 763 801* 803* 807 817 912* 914* 919 930 957* 959* 961 973 prs_pos 000721 automatic fixed bin(31,0) dcl 73 set ref 310* 479 479* 495* 495 513 1399* 1413* 1413* 1495 1498 1507 prs_width 000722 automatic fixed bin(31,0) dcl 74 set ref 309* 479 482* 513 1401* 1507 prx 000723 automatic fixed bin(17,0) dcl 75 set ref 309* 465 465 476 476* 477 485 485 493* 493 513 1410* 1460 1463 1476 1477 ptb 003146 automatic structure level 1 dcl 199 set ref 233* 2849* ptbe based structure level 1 unaligned dcl 200 ptr 000040 external static pointer level 2 in structure "compstat$compconst" dcl 12-14 in procedure "comp_art_" ref 211 222 225 247 250 250 250 380 459 555 730 742 797 807 844 874 900 908 953 961 1019 1216 1250 1254 1263 1303 1307 1498 1498 2082 2122 2143 2143 2161 2161 2174 2174 2194 2194 2206 2206 2221 2221 2233 2233 2247 2247 2259 2858 ptr 172 based pointer level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" ref 245 ptrs 126 based structure level 2 dcl 12-23 quad 2(11) based bit(6) level 3 packed unaligned dcl 11-161 set ref 271 271 271 271 271 271 271 485 485* 485 1483 1483* 1483 1495 1498 1511 1511* 2091 quadc constant bit(6) initial unaligned dcl 11-148 ref 271 1498 quadi constant bit(6) initial unaligned dcl 11-148 ref 271 quadl constant bit(6) initial unaligned dcl 11-148 ref 271 1511 quado constant bit(6) initial unaligned dcl 11-148 ref 271 quadr constant bit(6) initial unaligned dcl 11-148 ref 271 1495 r 25(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2573 2595 2661 2715 2737 2794 r 27(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2316 raro 11(18) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1643 1734 2776 raro 21(18) 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2516 raro 0(18) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 709 1032 1338 1364 2423 2511 raro 11(18) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1769 1811 rcirc 23(18) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2541 rmarg 174 based fixed bin(31,0) level 2 dcl 11-161 set ref 271* 271* 2094 2099 ropen 6 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 281* 292* 849* 849 1025* 1025 1079* 1079 1101* 1101 1171* 1171 1194* 1194 1198 1204* 1204 1921 1952* 1952 ropen 6 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 292 rprn 0(05) based bit(1) level 2 packed unaligned dcl 196 set ref 1293 1297 1300 1307 2536 rprn_ndx constant fixed bin(17,0) initial dcl 96 ref 1307 rslnt 11(09) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1004 1060 1177 1352 1678 1924 1929 rslnt 0(09) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 794 841 848* 855 888 950 1001 1024* 1056 1075* 1096* 1154 1260 1637* 1681 1720* 1845* 1973* 2445 2481 rslnt 23 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2448 2486 rslnt 11(09) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1610 1929 rslnt_ndx constant fixed bin(17,0) initial dcl 96 ref 844 1019 rstrt 11(31) 003146 automatic bit(1) array level 3 packed unaligned dcl 199 set ref 1177 rterm 11(33) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1004 1924 rterm 0(33) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 1207* rvert 22(09) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2426 scale parameter fixed bin(31,0) dcl 2903 ref 2900 2905 scndx 000724 automatic fixed bin(17,0) dcl 76 set ref 309* 351* 365* 369* 369 369* 374 380 389 389 401 401 411 411 413 419 419* 419* 434* 434 436 1403 1403 1407 1407 1423 1430 1433* 1433 1433 1438 1438* scnt 7 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 341 1418* 1469 1469* 1479 1511 1548 1574 1582 1585* 1610 1610 1621 1624* 1643 1643 1654 1657* 1681 1681 1690 1693* 1734 1734 1743 1746* 1776 1776 1786 1789* 1820 1820 1829 1832* 1864 1864 1877 1880* 1929 1929 1942 1958* 2002 2011 2020* 2024 2038* 2046 2055 2094 2269 2330 2554 2627 2696 2776 2785 2831 scnt 7 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 576 583 746 801 858 870 912 957 1004 1015 1060 1066 1085 1091 1118 1124 1177 1185 1229 1239 1270 1279 1352 1358 1376 1382 1564 1599 1769 1856 1921 search builtin function dcl 204 ref 316 1423 shared based structure level 1 dcl 10-7 shared_ptr 200 based pointer level 3 dcl 12-23 ref 211 222 247 2082 2858 size 7 based fixed bin(31,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 440* 446* 521 524 524* 526 526* 526 528 528* 528 530* 530 535 549 561 564 570 576 693* 696 696 705 707 709 711 1293 2118 2122 2127 2137 2143* 2156 2161* 2174* 2188 2194* 2206* 2214 2217 2227 2353 2481 size 20 003146 automatic fixed bin(31,0) array level 3 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 576 576 1177 size_char 000725 automatic char(1) unaligned dcl 77 set ref 344* 374* 389 389* 401 401* 440 557 693 694 spcl 3 based structure level 3 dcl 11-161 ref 265 ssym 000726 automatic fixed bin(17,0) dcl 78 set ref 752* 752 752 752 752* 763 807* 807 807 807 807* 817 858* 858 858 858 858 858* 870 919* 919 919 919 919* 930 961* 961 961 961 961* 973 1004* 1004 1004 1004 1004 1004* 1015 1060* 1060 1060 1060* 1066 1069 1085* 1085 1085 1085* 1091 1094 1118* 1118 1118 1118* 1124 1128 1129 1177* 1177 1177 1177 1177* 1185 1189 1190 1229* 1229 1229 1229 1229* 1239 1270* 1270 1270 1270 1270* 1279 1352* 1352 1352 1352* 1358 1358 1376* 1376 1376 1376* 1382 1382 1564* 1568 1568 1568 1574 1590 1591* 1599* 1602 1607 1607 1610 1610 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1631 1638 1639 1643 1643 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1664 1671 1672 1678 1681 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1699 1707 1721 1722 1723 1730 1734 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1752 1761 1762 1763 1769 1769 1769 1769 1769 1769 1776 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1796 1803 1804 1805 1811 1811 1811 1811 1811 1811 1820 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1839 1846 1847 1848* 1856* 1859 1859 1859 1859 1859 1864 1864 1864 1864 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1887 1897 1899 1903 1905 1910 1911 1913* 1921* 1924 1924 1924 1924 1924 1929 1929 1929 1929 1945 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1965 1975 1977 1981 1982 1987 1988 1988 1990 1992* star 11(11) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2554 2627 2696 2776 2782* star 0(11) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 734 895 945* 993* 1024* 1032 1338 1364 1532* star_ndx constant fixed bin(17,0) initial dcl 96 ref 900 start 20(18) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2772 subscr 0(24) based bit(1) level 2 packed unaligned dcl 196 set ref 602* 618 626* substr builtin function dcl 204 set ref 316 324 327 347 350 356 356 356 356 356 356 369 374 380 387* 389 389 401 401 411 411 419 436 440 446 454 459 465 485 485 500 500 532 549 555 576 688 718* 730 742 752 797 807 844 874 900 908 919 953 961 1019 1216 1229 1250 1254 1263 1270 1303 1307 1403* 1403 1407 1410 1410 1423 1430 1433 1463 1483 1483 1515 1515 1568 1574 2071 2071 2071 2082 2082 2088 2118* 2122 2143 2143 2161 2161 2174 2174 2194 2194 2206 2206 2221 2221 2233 2233 2247 2247 supscr 0(23) based bit(1) level 2 packed unaligned dcl 196 set ref 594 600* 624* swaps 000727 automatic fixed bin(17,0) dcl 79 set ref 2022* 2029* 2029 2035 sws based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" sws 4113 based structure level 2 in structure "shared" dcl 10-7 in procedure "comp_art_" sws 4 based structure level 3 in structure "block" dcl 119 in procedure "comp_art_" symbndx 000730 automatic fixed bin(17,0) dcl 80 set ref 386* 387 576 2128* 2140 2143 2143 2143 2159 2161 2161 2172 2174 2174 2191 2191 2194 2194 2205 2206 2206 2220 2221 2221 2230 2230 2233 2233 2246 2247 2247 symbstr 000731 automatic varying char(100) dcl 81 set ref 436* 1413* syntax_error 000763 automatic bit(1) initial unaligned dcl 83 set ref 83* 418* 544* 701* 1051* 1164* 1323* 1455* 1533* 1543* 1715* 1954* t 24(18) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2615 temp_entry 000764 automatic structure level 1 unaligned dcl 85 set ref 2030* 2032 term 21 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2573 2599 2665 2715 2741 2798 text based structure level 1 dcl 11-49 in procedure "comp_art_" text 11(29) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 2046 text 0(29) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 474* 1473* 1479 2065 text_area_ptr 005704 automatic pointer initial dcl 11-35 set ref 11-35* text_entry based structure level 1 dcl 11-68 text_header based structure level 1 dcl 11-163 text_pos 000777 automatic fixed bin(31,0) initial dcl 86 set ref 86* 2042* 2068 2094* 2099* 2102* 2112* 2130 2254* 2267 2286* 2294 2302* 2309 2317* 2328 2348* 2356 2373 2385 2397 2408* 2419* 2430* 2441* 2452* 2463* 2471 2477* 2484 2490* 2497 2514 2520* 2527 2533* 2539 2545* 2552 2601* 2608 2616* 2625 2667* 2675 2686* 2694 2743* 2750 2755* 2758* 2758* 2769 2790 2811* 2811* 2811* 2811* 2826* 2867 2871* 2875* 2875* tl 24(09) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2573 2592 tl 26(18) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2284 tmpstr 005273 automatic varying char(1020) dcl 202 set ref 285* 313 316 319 324 327 341 347 350 356 356 356 356 356 356 369 369 374 380 389 389 401 401 411 411 419 436 465 485 485 500 500 1403* 1403 1407 1410 1410 1423 1430 1433 1442 1447 1460 1463 1477 1483 1483 1515 1515 2071 2071 2071 2082 2082 2088 top 21(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2404 top 000000 constant char(1) initial array level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2159 tr 26(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2284 tr 24(27) 000000 constant char(1) initial level 3 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2573 2593 2659 2715 2735 2792 trans 4114 based structure level 2 dcl 10-7 trans_str 001000 automatic varying char(36) dcl 88 set ref 343* 459* 459 555* 555 557* 557 694* 694 730* 730 742* 742 797* 797 844* 844 874* 874 900* 900 908* 908 953* 953 1019* 1019 1216* 1216 1250* 1250 1254* 1254 1263* 1263 1303* 1303 1307* 1307 1403 1403 translate builtin function dcl 204 ref 436 1403 tstrt 10 based fixed bin(21,0) level 2 dcl 196 set ref 476* 500 500 1476* 1483 1483 1515 1515 2071 2071 2071 2082 2082 2088 twoEN 001012 automatic fixed bin(31,0) dcl 89 set ref 223* 858 1004 txtlin based structure level 1 dcl 11-161 txtlinptr 005710 automatic pointer dcl 11-160 set ref 244* 245 250 250 265 265 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 271 287 296 299 299 303 310 413 413 485 485 485 485 485 485 485 485 538 538 699 699 817 817 973 973 1048 1048 1161 1161 1320 1320 1451 1451 1483 1483 1483 1483 1483 1483 1483 1483 1489 1495 1495 1498 1498 1511 1511 1530 1530 1541 1541 1628 1661 1696 1710 1710 1749 1793 1836 1884 1948 1948 1962 2038 2091 2094 2099 2842 2843 2843 2844 2846* txtstr based varying char(1020) dcl 11-45 set ref 271* 285 413* 538* 699* 817* 973* 1048* 1161* 1320* 1451* 1530* 1541* 1710* 1948* txtstrptr 005706 automatic pointer dcl 11-44 set ref 245* 271 285 413 538 699 817 973 1048 1161 1320 1451 1530 1541 1710 1948 type 0(09) 001013 automatic char(1) level 2 in structure "vert_sft" packed unaligned dcl 90 in procedure "comp_art_" set ref 215* type 0(09) 000523 automatic char(1) level 2 in structure "hor_sft" packed unaligned dcl 52 in procedure "comp_art_" set ref 218* type 0(09) 000526 automatic char(1) level 2 in structure "hor_vec" packed unaligned dcl 54 in procedure "comp_art_" set ref 220* type_slx constant char(1) initial unaligned dcl 3-90 ref 218 type_sly constant char(1) initial unaligned dcl 3-90 ref 215 type_vlx constant char(1) initial unaligned dcl 3-90 ref 220 unspec builtin function dcl 204 set ref 233* 233* 265 286* 411 411 472* 484* 1421* 1471* 1482* 1552* 1587* 1626* 1659* 1705* 1758* 1791* 1834* 1893* 1971* uparo 11(15) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 1607 uparo 20(09) 000000 constant char(1) initial level 2 in structure "art" packed unaligned dcl 1-4 in procedure "comp_art_" ref 2387 uparo 0(15) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 610* 621 627* 658* 669 674* 705 1254 1314 2382 2401 uparo_ndx constant fixed bin(17,0) initial dcl 96 ref 1254 v1 0(27) 000523 automatic fixed bin(31,0) level 2 in structure "hor_sft" packed unaligned dcl 52 in procedure "comp_art_" set ref 2869* v1 0(27) 000526 automatic fixed bin(31,0) level 2 in structure "hor_vec" packed unaligned dcl 54 in procedure "comp_art_" set ref 2272* 2333* 2560* 2633* 2702* 2790* 2811 2811 v1 0(27) 001013 automatic fixed bin(31,0) level 2 in structure "vert_sft" packed unaligned dcl 90 in procedure "comp_art_" set ref 2890* 2893 2893 verify builtin function dcl 204 ref 465 1410 1410 1463 vert 11(06) 001021 automatic bit(1) array level 3 in structure "ctb" packed unaligned dcl 122 in procedure "comp_art_" set ref 1574 vert 0(06) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 739 790* 905 937* 945* 1213 1289* 1314 1388 1589* 2353 vert 11(06) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 752 807 919 961 1229 1270 1568 vert_ndx constant fixed bin(17,0) initial dcl 96 ref 742 908 1216 vert_sft 001013 automatic structure level 1 packed unaligned dcl 90 set ref 217 vert_sft_ptr 001016 automatic pointer dcl 91 set ref 217* 2891 2893 vert_sft_str based char unaligned dcl 92 ref 2891 2893 vopen 10 001021 automatic fixed bin(17,0) level 2 in structure "ctb" dcl 122 in procedure "comp_art_" set ref 265 281* 290* 766* 766 825* 825 933* 933 981* 981 1223* 1223 1242* 1242 1267 1286* 1286 1564 vopen 10 003146 automatic fixed bin(17,0) level 2 in structure "ptb" dcl 199 in procedure "comp_art_" set ref 290 vpart 17(27) 000000 constant char(1) initial level 2 packed unaligned dcl 1-4 ref 2359 2361 vterm 11(25) 003146 automatic bit(1) array level 3 in structure "ptb" packed unaligned dcl 199 in procedure "comp_art_" set ref 752 807 919 961 1229 1270 1568 vterm 0(25) based bit(1) level 2 in structure "ctbe" packed unaligned dcl 196 in procedure "comp_art_" set ref 794 836* 841 855 880* 888 950 985* 1001 1024* 1056 1075* 1096* 1140 1146* 1198 1205* 1260 vterm_ndx constant fixed bin(17,0) initial dcl 96 ref 797 953 1263 white 4(07) based bit(1) level 3 packed unaligned dcl 11-161 set ref 2843* width 204 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_art_" set ref 271* 271* 2842* width 2 000540 automatic fixed bin(31,0) level 2 in structure "meas1" dcl 63 in procedure "comp_art_" set ref 490 1487 1491 1498 width 11 based fixed bin(31,0) level 2 in structure "ctbe" dcl 196 in procedure "comp_art_" set ref 490* 495 500* 500* 559* 777* 788* 834* 851* 882* 1032* 1077* 1098* 1137* 1247* 1287* 1302* 1331* 1361* 1385* 1392* 1401 1413* 1413* 1479 1487* 1491* 1495 1515* 1515* 2071* 2071* 2102 2107 2112 2113 2141 2143* 2143* 2161* 2161* 2302 2303 2317 2318 2361* 2361* 2616 2617 2686 2687 2755 2756 2758* 2758* wsp 12 based fixed bin(31,0) level 2 dcl 196 set ref 491* 495 1493* 1495 1498 2099 2112 2113 x 25(09) 000000 constant char(1) initial level 3 packed unaligned dcl 1-4 ref 2685 zer_adj 001020 automatic fixed bin(17,0) dcl 93 set ref 309* 479 482* 513 516* 888* 936* 944* 984* 995* 1023* 1035* 1078* 1248* 1288* 1413* 1507 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 EM_ internal static char(1) initial unaligned dcl 7-6 EMdash 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 ENd 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 FF 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 HT 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 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 12-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 12-18 MEDIUM internal static char(1) initial unaligned dcl 7-6 NAK internal static char(1) initial unaligned dcl 7-6 NL 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_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 11-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 block_break internal static fixed bin(17,0) initial dcl 2-9 bullet internal static char(1) initial unaligned dcl 7-6 column_break internal static fixed bin(17,0) initial dcl 2-9 comp_ 000000 constant entry external dcl 5-7 comp_art_ 000000 constant entry external dcl 5-8 comp_block_ctls_ 000000 constant entry external dcl 5-9 comp_break_ 000000 constant entry external dcl 5-11 comp_break_ctls_ 000000 constant entry external dcl 5-12 comp_ctls_ 000000 constant entry external dcl 5-14 comp_eject_page_ 000000 constant entry external dcl 5-15 comp_expr_eval_ 000000 constant entry external dcl 5-17 comp_extr_str_ 000000 constant entry external dcl 5-21 comp_fill_ 000000 constant entry external dcl 5-24 comp_font_ 000000 constant entry external dcl 5-25 comp_format_ctls_ 000000 constant entry external dcl 5-26 comp_get_file_$find 000000 constant entry external dcl 5-28 comp_get_file_$open 000000 constant entry external dcl 5-31 comp_head_page_ 000000 constant entry external dcl 5-33 comp_hft_ctls_ 000000 constant entry external dcl 5-35 comp_hft_ctls_$title 000000 constant entry external dcl 5-36 comp_init_$one 000000 constant entry external dcl 5-38 comp_init_$three 000000 constant entry external dcl 5-40 comp_init_$two 000000 constant entry external dcl 5-39 comp_insert_ctls_ 000000 constant entry external dcl 5-42 comp_make_page_ 000000 constant entry external dcl 5-44 comp_make_page_$cleanup 000000 constant entry external dcl 5-46 comp_read_$line 000000 constant entry external dcl 5-57 comp_read_$name 000000 constant entry external dcl 5-50 comp_read_$number 000000 constant entry external dcl 5-53 comp_report_$exact 000000 constant entry external dcl 5-64 comp_space_ 000000 constant entry external dcl 5-66 comp_tbl_ctls_ 000000 constant entry external dcl 5-68 comp_title_block_ 000000 constant entry external dcl 5-69 comp_update_symbol_ 000000 constant entry external dcl 5-71 comp_use_ref_ 000000 constant entry external dcl 5-74 comp_util_$add_text 000000 constant entry external dcl 5-75 comp_util_$escape 000000 constant entry external dcl 5-80 comp_util_$getblk 000000 constant entry external dcl 5-82 comp_util_$num_display 000000 constant entry external dcl 5-84 comp_util_$pageno 000000 constant entry external dcl 5-86 comp_util_$pictures 000000 constant entry external dcl 5-88 comp_util_$pop 000000 constant entry external dcl 5-91 comp_util_$push 000000 constant entry external dcl 5-92 comp_util_$relblk 000000 constant entry external dcl 5-94 comp_util_$search_tree 000000 constant entry external dcl 5-98 comp_util_$set_bin 000000 constant entry external dcl 5-100 comp_util_$set_net_page 000000 constant entry external dcl 5-104 comp_write_block_ 000000 constant entry external dcl 5-108 comp_write_page_ 000000 constant entry external dcl 5-110 compose_severity_ external static fixed bin(35,0) dcl 5-5 const_version internal static fixed bin(35,0) initial dcl 12-17 cright internal static char(1) initial unaligned dcl 7-6 ctl based structure level 1 dcl 11-157 ctl_line based varying char(1020) dcl 11-158 current_parms based structure level 1 dcl 11-209 dagger internal static char(1) initial unaligned dcl 7-6 dbldag internal static char(1) initial unaligned dcl 7-6 dcctl based structure level 1 packed unaligned dcl 3-34 dcfs based structure level 1 packed unaligned dcl 3-80 dcfs_len internal static fixed bin(17,0) initial dcl 3-88 dclit based structure level 1 packed unaligned dcl 3-45 dclong_len internal static fixed bin(17,0) initial dcl 3-62 dcshort1_len internal static fixed bin(17,0) initial dcl 3-75 dcshort_len internal static fixed bin(17,0) initial dcl 3-75 dcshort_val based structure level 1 packed unaligned dcl 3-67 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 10-126 flag_value based bit(1) unaligned dcl 10-132 fntstk_eptr automatic pointer dcl 6-5 footer_break internal static fixed bin(17,0) initial dcl 2-9 footnote_break internal static fixed bin(17,0) initial dcl 2-9 format_break internal static fixed bin(17,0) initial dcl 2-9 hfcblk based structure level 1 dcl 11-250 hfcblk_ptr automatic pointer dcl 11-249 infin internal static char(1) initial unaligned dcl 7-6 init_page_parms based structure level 1 dcl 9-108 ioa_$nnl 000000 constant entry external dcl 12-70 iox_$error_output external static pointer dcl 12-74 iox_$user_input external static pointer dcl 12-74 iox_$user_output external static pointer dcl 12-74 last_graphic internal static fixed bin(17,0) initial dcl 96 lquote internal static char(1) initial unaligned dcl 7-6 lslnt internal static char(1) initial unaligned dcl 7-6 max builtin function dcl 204 max_cols internal static fixed bin(17,0) initial dcl 9-7 max_image_lines internal static fixed bin(17,0) initial dcl 9-5 max_text_lines internal static fixed bin(17,0) initial dcl 10-128 mini_size automatic fixed bin(17,0) dcl 65 mode_string internal static char(16) initial unaligned dcl 10-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 need_break internal static fixed bin(17,0) initial dcl 2-9 not_eq internal static char(1) initial unaligned dcl 7-6 num_value based fixed bin(31,0) dcl 10-133 oct031 internal static char(1) initial unaligned dcl 7-6 option_version internal static fixed bin(35,0) initial dcl 8-3 overbar internal static char(1) initial unaligned dcl 7-6 page based structure level 1 dcl 9-11 page_break internal static fixed bin(17,0) initial dcl 2-9 page_image based structure level 1 dcl 9-56 page_image_version internal static fixed bin(35,0) initial dcl 9-53 page_version internal static fixed bin(17,0) initial dcl 9-9 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 rquote internal static char(1) initial unaligned dcl 7-6 save_shared based structure level 1 dcl 10-124 shared_version internal static fixed bin(35,0) initial dcl 10-5 slash internal static char(1) initial unaligned dcl 7-6 square internal static char(1) initial unaligned dcl 7-6 string_area based fixed bin(17,0) array dcl 11-43 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 12-80 tblkdata based structure level 1 dcl 11-5 text_area based structure level 1 dcl 11-36 text_parms based structure level 1 dcl 11-206 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_font internal static char(1) initial unaligned dcl 3-90 type_lit internal static char(1) initial unaligned dcl 3-90 type_slxly internal static char(1) initial unaligned dcl 3-90 type_sx internal static char(1) initial unaligned dcl 3-90 type_sxy internal static char(1) initial unaligned dcl 3-90 type_sy internal static char(1) initial unaligned dcl 3-90 type_unstart internal static char(1) initial unaligned dcl 3-90 type_unstop internal static char(1) initial unaligned dcl 3-90 type_v0lx internal static char(1) initial unaligned dcl 3-90 type_v0lxly internal static char(1) initial unaligned dcl 3-90 type_v0ly internal static char(1) initial unaligned dcl 3-90 type_v0x internal static char(1) initial unaligned dcl 3-90 type_v0xy internal static char(1) initial unaligned dcl 3-90 type_v0y internal static char(1) initial unaligned dcl 3-90 type_vlxly internal static char(1) initial unaligned dcl 3-90 type_vly internal static char(1) initial unaligned dcl 3-90 type_vx internal static char(1) initial unaligned dcl 3-90 type_vxy internal static char(1) initial unaligned dcl 3-90 type_vy internal static char(1) initial unaligned dcl 3-90 type_wait internal static char(1) initial unaligned dcl 3-90 unstart_signal internal static char(3) initial unaligned dcl 3-39 unstop_signal internal static char(3) initial unaligned dcl 3-39 vrule internal static char(1) initial unaligned dcl 7-6 wait_signal internal static char(3) initial unaligned dcl 3-39 NAMES DECLARED BY EXPLICIT CONTEXT. allf 027056 constant entry external dcl 2955 alln 026762 constant entry external dcl 2929 bad_math_size 003733 constant label dcl 538 ref 549 build 015632 constant label dcl 2002 ref 1456 build_loop 015634 constant label dcl 2002 check_ls_term 006210 constant label dcl 1137 ref 1116 1130 check_rs_term 006357 constant label dcl 1198 ref 1174 1191 comp_art_ 001423 constant entry external dcl 14 db_join 026774 constant label dcl 2932 ref 2912 2922 db_pr 007154 constant label dcl 1399 dbf 026750 constant entry external dcl 2923 dbn 026735 constant entry external dcl 2919 dtf 026723 constant entry external dcl 2913 dtn 026710 constant entry external dcl 2909 end_given_ls 006230 constant label dcl 1150 end_given_rs 006374 constant label dcl 1209 ref 1083 1104 end_line_loop 026650 constant label dcl 2851 ref 265 2052 find 002412 constant label dcl 316 ref 328 337 hrule 026024 constant label dcl 2772 ref 2320 2506 htab_ 027070 constant entry internal dcl 2862 ref 2068 2130 2267 2294 2309 2328 2356 2373 2385 2397 2471 2484 2497 2514 2527 2539 2552 2608 2625 2675 2694 2750 2769 last_symb_ 002643 constant label dcl 374 ref 432 line_loop 001562 constant label dcl 238 overstrike_loop 002626 constant label dcl 369 pass 015670 constant label dcl 2022 ref 2035 return_ 026656 constant label dcl 2855 scan_continue 007425 constant label dcl 1423 ref 352 366 422 545 702 1052 1165 1435 scan_loop 002466 constant label dcl 341 show 027471 constant entry internal dcl 2900 ref 271 271 271 271 271 271 271 271 271 271 271 271 299 299 299 299 500 500 500 500 500 500 1413 1413 1413 1413 1413 1413 1413 1413 1515 1515 1515 1515 1515 1515 1554 1554 2049 2049 2071 2071 2071 2071 2071 2071 2143 2143 2143 2143 2143 2143 2161 2161 2161 2161 2161 2161 2174 2174 2174 2174 2194 2194 2194 2194 2233 2233 2233 2233 2274 2274 2274 2274 2274 2274 2274 2274 2297 2297 2312 2312 2335 2335 2335 2335 2335 2335 2335 2335 2361 2361 2361 2361 2361 2361 2376 2376 2388 2388 2405 2405 2416 2416 2427 2427 2438 2438 2449 2449 2460 2460 2474 2474 2487 2487 2502 2502 2517 2517 2573 2573 2573 2573 2573 2573 2573 2573 2611 2611 2646 2646 2646 2646 2646 2646 2646 2646 2681 2681 2715 2715 2715 2715 2715 2715 2715 2715 2758 2758 2758 2758 2758 2758 2811 2811 2811 2811 2811 2811 2811 2811 2811 2811 2811 2811 2834 2834 2875 2875 2875 2875 2875 2875 2893 2893 2893 2893 2893 2893 synchk_continue 015632 constant label dcl 1997 ref 1955 vtab_ 027261 constant entry internal dcl 2882 ref 2061 2837 NAMES DECLARED BY CONTEXT OR IMPLICATION. abs builtin function ref 807 961 bin builtin function ref 485 1483 convert builtin function ref 2952 high builtin function ref 1403 1407 rank builtin function ref 327 440 693 1433 round builtin function ref 1498 2905 2905 rtrim builtin function ref 485 485 2071 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 30212 30256 30006 30222 Length 31022 30006 44 527 203 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_art_ 3714 external procedure is an external procedure. htab_ internal procedure shares stack frame of external procedure comp_art_. vtab_ internal procedure shares stack frame of external procedure comp_art_. show 96 internal procedure is called during a stack extension. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dt_sw comp_art_ 000011 db_sw comp_art_ 000012 db_line comp_art_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_art_ 000100 art_str comp_art_ 000500 bad_char comp_art_ 000501 base comp_art_ 000502 copen comp_art_ 000504 cptr comp_art_ 000506 crl comp_art_ 000507 crla comp_art_ 000510 crs comp_art_ 000511 crs_pos comp_art_ 000512 crx comp_art_ 000513 debug_sw comp_art_ 000514 detail_sw comp_art_ 000515 EN3 comp_art_ 000516 EN6 comp_art_ 000517 half_size comp_art_ 000520 hcnt comp_art_ 000521 hopen comp_art_ 000522 hterm_pos comp_art_ 000523 hor_sft comp_art_ 000526 hor_vec comp_art_ 000531 i comp_art_ 000532 k comp_art_ 000533 isym comp_art_ 000534 j comp_art_ 000535 last_symb comp_art_ 000536 loztop comp_art_ 000540 meas1 comp_art_ 000626 meas2 comp_art_ 000714 oneEN comp_art_ 000715 pad_adj comp_art_ 000716 pptr comp_art_ 000720 prlct comp_art_ 000721 prs_pos comp_art_ 000722 prs_width comp_art_ 000723 prx comp_art_ 000724 scndx comp_art_ 000725 size_char comp_art_ 000726 ssym comp_art_ 000727 swaps comp_art_ 000730 symbndx comp_art_ 000731 symbstr comp_art_ 000763 syntax_error comp_art_ 000764 temp_entry comp_art_ 000777 text_pos comp_art_ 001000 trans_str comp_art_ 001012 twoEN comp_art_ 001013 vert_sft comp_art_ 001016 vert_sft_ptr comp_art_ 001020 zer_adj comp_art_ 001021 ctb comp_art_ 003146 ptb comp_art_ 005273 tmpstr comp_art_ 005673 argl comp_art_ 005674 argp comp_art_ 005676 ercd comp_art_ 005700 DCxx_p comp_art_ 005702 line_area_ptr comp_art_ 005704 text_area_ptr comp_art_ 005706 txtstrptr comp_art_ 005710 txtlinptr comp_art_ 005766 move htab_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_e_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this return mpfx2 mod_fx1 shorten_stack ext_entry int_entry trunc_fx2 round_fx1 set_cs_eis index_bs_1_eis verify_eis search_eis real_to_real_tr any_to_any_tr divide_fx1 divide_fx2 translate_3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ comp_measure_ comp_report_ comp_report_$ctlstr comp_util_$display comp_util_$replace_text comp_util_$translate cu_$arg_ptr ioa_ ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 32 001401 34 001402 41 001404 43 001405 49 001406 61 001407 70 001410 83 001411 86 001412 11 25 001413 11 35 001414 14 001417 211 001431 214 001473 215 001477 216 001501 217 001503 218 001505 219 001507 220 001511 221 001513 222 001515 223 001523 225 001525 228 001532 229 001541 230 001547 231 001550 233 001552 237 001561 238 001562 241 001574 242 001605 244 001606 245 001612 247 001614 250 001625 253 001642 255 001643 258 001646 259 001650 261 001655 265 001656 268 001665 271 001667 281 002204 285 002241 286 002247 287 002253 289 002256 290 002260 291 002262 292 002264 293 002266 295 002270 296 002272 299 002276 303 002354 307 002357 308 002362 309 002365 310 002374 313 002400 316 002412 319 002432 324 002437 327 002445 328 002455 331 002456 333 002462 336 002463 337 002465 341 002466 343 002474 344 002502 345 002504 347 002505 350 002526 351 002532 352 002544 356 002545 365 002622 366 002625 369 002626 374 002643 380 002655 383 002671 386 002672 387 002673 389 002677 396 002715 398 002716 401 002717 411 002736 413 002773 418 003113 419 003116 422 003125 426 003126 428 003131 431 003133 432 003135 434 003136 436 003140 440 003162 444 003205 446 003206 452 003222 453 003226 454 003230 455 003245 458 003246 459 003247 462 003262 465 003263 467 003300 470 003301 472 003310 473 003314 474 003317 476 003321 477 003325 479 003331 482 003344 484 003347 485 003352 490 003461 491 003464 492 003466 493 003471 495 003474 497 003500 500 003502 505 003654 507 003655 509 003656 513 003662 515 003675 516 003677 521 003700 524 003702 526 003707 528 003714 530 003721 532 003723 535 003730 538 003733 544 004035 545 004040 547 004041 549 004042 553 004052 555 004057 557 004072 559 004101 561 004104 564 004107 567 004116 570 004121 573 004132 576 004135 582 004167 583 004171 587 004200 589 004205 590 004206 591 004210 594 004211 597 004214 600 004217 602 004221 603 004223 604 004225 606 004227 610 004230 611 004232 616 004234 618 004235 621 004240 624 004243 626 004245 627 004247 628 004251 630 004253 634 004254 635 004256 640 004260 643 004261 646 004264 649 004267 650 004271 651 004273 652 004275 654 004277 658 004300 659 004302 664 004304 666 004305 669 004310 672 004313 673 004315 674 004317 675 004321 677 004323 681 004324 682 004326 685 004330 688 004331 693 004350 694 004354 696 004363 699 004367 701 004432 702 004434 705 004435 707 004445 709 004454 711 004463 718 004472 719 004476 725 004477 730 004502 734 004515 739 004520 742 004523 746 004533 748 004541 752 004542 760 004573 763 004575 766 004600 767 004601 769 004602 774 004610 777 004613 778 004615 783 004616 787 004624 788 004627 790 004631 794 004635 797 004643 801 004656 803 004664 807 004665 816 004727 817 004731 825 005007 826 005011 828 005013 832 005021 834 005024 836 005026 841 005032 844 005040 847 005053 848 005060 849 005064 850 005065 851 005066 855 005070 858 005077 868 005136 870 005140 874 005143 879 005156 880 005161 881 005167 882 005171 883 005173 887 005175 888 005177 895 005210 900 005222 905 005235 908 005240 912 005250 914 005256 919 005257 927 005311 930 005313 933 005316 934 005317 935 005320 936 005323 937 005325 938 005332 943 005333 944 005336 945 005340 947 005345 950 005346 953 005370 957 005400 959 005406 961 005407 971 005451 973 005453 981 005531 982 005533 983 005535 984 005540 985 005542 987 005547 990 005550 993 005554 994 005561 995 005564 996 005566 997 005567 998 005570 1001 005571 1004 005575 1013 005634 1015 005636 1019 005641 1022 005654 1023 005657 1024 005661 1025 005667 1026 005671 1028 005673 1032 005674 1035 005705 1038 005707 1042 005710 1045 005713 1048 005716 1051 005761 1052 005763 1056 005764 1060 005773 1064 006020 1066 006022 1069 006025 1071 006030 1073 006040 1075 006044 1076 006052 1077 006054 1078 006056 1079 006057 1080 006061 1083 006062 1085 006063 1089 006110 1091 006112 1094 006115 1096 006122 1097 006130 1098 006132 1100 006134 1101 006136 1104 006137 1106 006140 1110 006141 1113 006143 1115 006144 1116 006145 1118 006146 1122 006167 1124 006171 1128 006174 1129 006201 1130 006205 1133 006206 1135 006207 1137 006210 1140 006213 1143 006220 1145 006222 1146 006224 1148 006226 1154 006230 1158 006233 1161 006236 1164 006301 1165 006303 1168 006304 1171 006307 1173 006310 1174 006311 1177 006312 1183 006336 1185 006340 1189 006343 1190 006350 1191 006354 1194 006355 1196 006356 1198 006357 1202 006364 1204 006366 1205 006370 1207 006372 1213 006374 1216 006377 1220 006412 1223 006415 1224 006416 1225 006417 1229 006420 1237 006451 1239 006453 1242 006456 1243 006457 1247 006460 1248 006462 1250 006464 1254 006502 1260 006520 1263 006526 1267 006541 1270 006551 1278 006603 1279 006605 1285 006613 1286 006615 1287 006617 1288 006621 1289 006623 1293 006625 1297 006643 1300 006652 1302 006660 1303 006662 1307 006677 1314 006714 1317 006722 1320 006725 1323 006770 1324 006772 1328 006773 1329 006775 1330 006776 1331 006777 1335 007001 1338 007003 1344 007011 1346 007013 1352 007020 1356 007042 1358 007044 1361 007054 1364 007057 1368 007065 1373 007067 1376 007074 1380 007116 1382 007120 1385 007130 1388 007133 1391 007143 1392 007145 1393 007150 1394 007152 1399 007154 1401 007157 1403 007161 1407 007214 1410 007232 1413 007256 1418 007412 1419 007414 1420 007415 1421 007421 1423 007425 1426 007441 1430 007442 1433 007450 1435 007460 1438 007461 1440 007466 1442 007467 1444 007472 1447 007473 1451 007500 1455 007543 1456 007545 1460 007546 1463 007551 1466 007564 1469 007565 1470 007571 1471 007574 1473 007600 1474 007602 1476 007604 1477 007607 1479 007614 1482 007623 1483 007626 1487 007731 1488 007735 1489 007736 1491 007742 1493 007744 1495 007746 1498 007763 1507 010010 1511 010022 1515 010036 1521 010212 1527 010213 1530 010215 1532 010260 1533 010262 1534 010264 1538 010265 1541 010267 1543 010332 1544 010334 1548 010335 1551 010337 1552 010341 1554 010344 1559 010402 1564 010407 1568 010421 1574 010437 1580 010471 1582 010473 1585 010476 1586 010500 1587 010503 1589 010507 1590 010511 1591 010516 1592 010520 1596 010526 1599 010530 1602 010541 1607 010545 1610 010553 1618 010612 1619 010615 1621 010617 1624 010622 1625 010624 1626 010627 1628 010632 1631 010635 1632 011202 1633 011204 1637 011205 1638 011211 1639 011217 1643 011222 1651 011262 1652 011265 1654 011267 1657 011272 1658 011274 1659 011277 1661 011302 1664 011305 1665 011652 1666 011654 1670 011655 1671 011661 1672 011667 1678 011672 1681 011677 1687 011726 1688 011731 1690 011733 1693 011736 1694 011740 1696 011743 1699 011747 1700 012314 1701 012316 1705 012317 1707 012324 1710 012331 1713 012373 1714 012375 1715 012377 1716 012401 1720 012402 1721 012406 1722 012410 1723 012414 1730 012416 1734 012423 1740 012447 1741 012452 1743 012454 1746 012457 1747 012461 1749 012464 1752 012470 1753 013035 1754 013037 1758 013040 1760 013045 1761 013051 1762 013057 1763 013062 1769 013064 1776 013112 1783 013137 1784 013142 1786 013144 1789 013147 1790 013151 1791 013154 1793 013157 1796 013162 1797 013527 1798 013531 1802 013532 1803 013536 1804 013544 1805 013547 1811 013551 1820 013577 1826 013623 1827 013626 1829 013630 1832 013633 1833 013635 1834 013640 1836 013644 1839 013647 1840 014214 1841 014216 1845 014217 1846 014223 1847 014231 1848 014234 1853 014236 1856 014240 1859 014251 1864 014264 1874 014347 1875 014352 1877 014354 1880 014357 1882 014361 1884 014364 1887 014370 1888 014735 1889 014737 1893 014740 1895 014745 1897 014747 1899 014755 1903 014761 1905 014763 1906 014767 1910 014770 1911 014773 1913 014777 1918 015001 1921 015003 1924 015015 1929 015030 1939 015114 1940 015117 1942 015121 1945 015124 1948 015132 1952 015175 1953 015177 1954 015201 1955 015203 1958 015204 1960 015207 1962 015212 1965 015216 1966 015561 1967 015563 1971 015564 1973 015571 1975 015573 1977 015600 1981 015603 1982 015605 1983 015610 1987 015611 1988 015614 1990 015623 1992 015626 1996 015630 2002 015632 2007 015634 2010 015635 2011 015636 2012 015645 2016 015653 2017 015654 2019 015664 2020 015666 2022 015670 2024 015671 2026 015701 2029 015707 2030 015710 2031 016252 2032 016257 2034 016624 2035 016626 2038 016630 2042 016661 2043 016662 2044 016663 2046 016664 2049 016672 2052 016734 2055 016735 2056 016743 2058 016746 2061 016751 2065 016762 2068 016765 2071 016771 2082 017167 2088 017242 2091 017257 2094 017265 2099 017273 2102 017307 2107 017320 2108 017323 2112 017324 2113 017331 2118 017335 2122 017344 2127 017365 2128 017370 2130 017375 2134 017401 2137 017405 2140 017410 2141 017420 2143 017422 2152 017605 2156 017607 2159 017613 2161 017623 2168 017744 2172 017745 2174 017755 2182 020056 2185 020057 2188 020061 2191 020063 2194 020117 2201 020221 2205 020222 2206 020232 2211 020300 2214 020301 2217 020303 2220 020310 2221 020320 2225 020363 2227 020364 2230 020367 2233 020423 2240 020520 2243 020521 2246 020523 2247 020533 2251 020576 2252 020577 2254 020606 2255 020611 2259 020612 2264 020614 2267 020617 2269 020623 2270 020637 2271 020641 2272 020646 2274 020654 2284 021050 2286 021117 2291 021123 2294 021127 2297 021133 2301 021175 2302 021204 2303 021210 2306 021212 2309 021215 2312 021221 2316 021263 2317 021272 2318 021276 2320 021300 2325 021303 2328 021306 2330 021312 2331 021325 2332 021327 2333 021334 2335 021342 2346 021536 2348 021605 2353 021611 2356 021622 2359 021626 2361 021635 2367 021777 2370 022000 2373 022012 2375 022016 2376 022025 2382 022072 2385 022104 2387 022110 2388 022117 2394 022164 2397 022173 2401 022177 2404 022202 2405 022211 2408 022256 2412 022261 2415 022264 2416 022273 2419 022335 2423 022340 2426 022343 2427 022352 2430 022414 2434 022417 2437 022422 2438 022431 2441 022473 2445 022476 2448 022501 2449 022510 2452 022552 2456 022555 2459 022560 2460 022567 2463 022631 2468 022634 2471 022646 2473 022652 2474 022661 2477 022726 2481 022731 2484 022745 2486 022751 2487 022760 2490 023025 2494 023030 2497 023036 2500 023042 2502 023051 2506 023116 2511 023121 2514 023127 2516 023133 2517 023142 2520 023207 2524 023212 2527 023215 2529 023221 2530 023230 2533 023261 2536 023264 2539 023267 2541 023273 2542 023302 2545 023330 2549 023333 2552 023337 2554 023343 2558 023362 2559 023364 2560 023373 2562 023401 2565 023403 2567 023412 2569 023420 2571 023426 2573 023430 2590 024101 2592 024102 2593 024140 2595 024157 2597 024172 2599 024205 2601 024214 2605 024217 2608 024223 2611 024227 2615 024274 2616 024303 2617 024307 2622 024311 2625 024314 2627 024320 2631 024336 2632 024340 2633 024346 2635 024354 2638 024356 2640 024365 2642 024373 2644 024401 2646 024403 2656 024601 2658 024602 2659 024640 2661 024657 2663 024672 2665 024705 2667 024714 2672 024717 2675 024723 2678 024727 2681 024731 2685 024771 2686 025000 2687 025004 2691 025006 2694 025011 2696 025015 2700 025034 2701 025036 2702 025044 2704 025052 2707 025054 2709 025063 2711 025071 2713 025077 2715 025101 2732 025551 2734 025552 2735 025610 2737 025627 2739 025642 2741 025655 2743 025664 2747 025667 2750 025673 2753 025677 2755 025706 2756 025712 2758 025714 2766 026015 2769 026020 2772 026024 2776 026033 2781 026061 2782 026063 2785 026071 2788 026103 2790 026106 2791 026114 2792 026130 2794 026146 2796 026161 2798 026174 2800 026203 2803 026205 2805 026212 2807 026220 2809 026226 2811 026230 2824 026534 2826 026535 2831 026537 2834 026544 2837 026602 2838 026605 2840 026607 2842 026611 2843 026614 2844 026620 2846 026622 2849 026644 2851 026650 2853 026652 2855 026656 2858 026663 2860 026706 2909 026707 2911 026716 2912 026721 2913 026722 2915 026731 2916 026733 2919 026734 2921 026743 2922 026746 2923 026747 2925 026756 2926 026760 2929 026761 2931 026770 2943 026774 2944 026775 2945 027013 2948 027015 2950 027042 2952 027043 2953 027054 2955 027055 2957 027064 2958 027067 2862 027070 2867 027071 2869 027074 2870 027102 2871 027116 2875 027120 2880 027257 2882 027261 2887 027263 2890 027267 2891 027276 2893 027313 2897 027463 2898 027467 2900 027470 2905 027476