COMPILATION LISTING OF SEGMENT comp_ctls_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 0949.4 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 routine to process text controls */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_ctls_: 15 proc (text_added); 16 17 /* PARAMETERS */ 18 19 dcl text_added bit (1) aligned; /* flag to show text was generated */ 20 21 /* LOCAL STORAGE */ 22 23 dcl again bit (1); /* 1 = process line as control line */ 24 dcl atd char (300); /* attach description for input */ 25 dcl aux_wrt_buf char (1020) var; /* buffer for aux file data */ 26 dcl aux_file_index fixed; /* table index for aux write file */ 27 dcl blnkct fixed bin (31); /* blank line count */ 28 dcl break_type fixed bin; /* break type for space ctls */ 29 dcl callers_nest fixed bin; /* callers if nest level */ 30 /* heading line for compx file */ 31 dcl chars_head char (19) aligned static options (constant) 32 init (" Page Line Text 33 "); /**/ 34 /* command line for .exc */ 35 dcl command_line char (1020) aligned; 36 dcl compx_buffer char (128) var; /* compx line buffer */ 37 dcl cond_name char (32) var; /* condition name */ 38 /* legal condition names */ 39 dcl cond_names (1) char (32) var static options (constant) 40 init ("block_split"); 41 /* control tokens */ 42 /**** format: off */ 43 dcl controls (374) char (32) init ( 44 "alb ", "align-both ", 45 "alc ", "align-center ", 46 "ali ", "align-inside ", 47 "all ", "align-left ", 48 "alo ", "align_outside ", 49 "alr ", "align-right ", 50 "bb ", "block-begin ", /* OBSOLETE */ 51 "bart ", "begin-artwork ", 52 "bba ", "block-begin-art ", /* OBSOLETE */ 53 "bblk ", "begin-block ", /* 10 */ 54 "bbc ", "block-begin-column ", /* OBSOLETE */ 55 "bbe ", "block-begin-equation ", /* OBSOLETE */ 56 "bbf ", "block-begin-footnote ", /* OBSOLETE */ 57 "bbi ", "block-begin-inline ", /* OBSOLETE */ 58 "bbk ", "block-begin-keep ", /* OBSOLETE */ 59 "bbl ", "block-begin-literal ", /* OBSOLETE */ 60 "bbn ", "block-begin-named ", /* OBSOLETE */ 61 "bbp ", "block-begin-picture ", /* OBSOLETE */ 62 "bbt ", "block-begin-title ", /* OBSOLETE */ 63 "bcf ", "begin-column-footer ", /* 20 */ 64 "bch ", "begin-column-header ", 65 "be ", "block-end ", /* OBSOLETE */ 66 "bea ", "block-end-art ", /* OBSOLETE */ 67 "bec ", "block-end-column ", /* OBSOLETE */ 68 "bee ", "block-end ", /* OBSOLETE */ 69 "bef ", "block-end-footnote ", /* OBSOLETE */ 70 "bek ", "block-end-keep ", /* OBSOLETE */ 71 "bel ", "block-end-literal ", /* OBSOLETE */ 72 "ben ", "block-end-named ", /* OBSOLETE */ 73 "bep ", "block-end-picture ", /* 30 OBSOLETE */ 74 "bet ", "block-end-title ", /* OBSOLETE */ 75 "bpf ", "begin-page-footer ", 76 "bph ", "begin-page-header ", 77 "br ", "break ", 78 "brb ", "break-block ", 79 "brc ", "break-column ", 80 "brf ", "break-format ", 81 "brn ", "break-need ", 82 "brp ", "break-page ", 83 "brs ", "break-skip ", /* 40 */ 84 "brw ", "break-word ", 85 "btc ", "begin-text-caption ", 86 "btt ", "begin-text-title ", 87 "cba ", "change-bars-addition ", 88 "cbd ", "change-bars-deletion ", 89 "cbf ", "change-bars-off ", 90 "cbm ", "change-bars-modification ", 91 "cbn ", "changes-bars-on ", 92 "cfl ", "column-footer-line ", 93 "chl ", "column-header-line ", /* 50 */ 94 "csd ", "change-symbol-delimiter ", 95 "ctd ", "change-title-delimiter ", 96 "dfu ", "defer-until ", 97 "dmp ", "dump ", 98 "do ", "do ", 99 "dvc ", "device-control ", 100 "eart ", "end-artwork ", 101 "ecf ", "end-column-footer ", 102 "ech ", "end-column-header ", 103 "else ", "else ", /* 60 */ 104 "elseif", "elseif ", 105 "enddo ", "enddo ", 106 "endif ", "endif ", 107 "epf ", "end-page-footer ", 108 "eph ", "end-page-header ", 109 "eqc ", "equation-count ", 110 "err ", "error ", 111 "etc ", "end-text-caption ", 112 "ett ", "end-text-title ", 113 "exc ", "execute ", /* 70 */ 114 "fb ", "footer-block ", 115 "fbb ", "footer-block-begin ", /* OBSOLETE */ 116 "fbe ", "footer-block-end ", /* OBSOLETE */ 117 "fi ", "fill-default ", 118 "fif ", "fill-off ", 119 "fin ", "fill-on ", 120 "fl ", "footer-line ", 121 "fla ", "footer-line-all ", 122 "fle ", "footer-line-even ", 123 "flo ", "footer-line-odd ", /* 80 */ 124 "fnt ", "font ", 125 "frf ", "footnote-reference ", 126 "fth ", "footnotes-held ", 127 "ftp ", "footnotes-paged ", 128 "ftr ", "footnotes-running ", 129 "ftu ", "footnotes-unreferenced ", 130 "galley", "galley-mode ", 131 "gl ", "galley-mode ", 132 "go ", "go-to ", 133 "hb ", "header-block ", /* 90 */ 134 "hbb ", "header-block-begin ", 135 "hbe ", "header-block-end ", 136 "hif ", "hit-file ", 137 "hit ", "hit ", 138 "hl ", "header-line ", 139 "hla ", "header-line-all ", 140 "hle ", "header-line-even ", 141 "hlf ", "header-line-footnote ", 142 "hlo ", "header-line-odd ", 143 "hrul ", "horizontal-rule ", /* 100 */ 144 "htd ", "horizontal-tabs-define ", 145 "htf ", "horizontal-tabs-off ", 146 "htn ", "horizontal-tabs-on ", 147 "hy ", "hyphenate-default ", 148 "hyf ", "hyphenate-off ", 149 "hyn ", "hyphenate-on ", 150 "hyw ", "hyphenate-word ", 151 "ibl ", "insert-block ", 152 "if ", "if ", 153 "ifi ", "insert-file ", /* 110 */ 154 "ift ", "insert-footnotes ", 155 "igr ", "insert-graphic ", 156 "in ", "indent ", 157 "inb ", "indent-both ", 158 "inl ", "indent-left ", 159 "inr ", "indent-right ", 160 "indctl", "indent-controls ", 161 "indx ", "insert-index ", 162 "la ", "label ", 163 "ls ", "linespace ", /* 120 */ 164 "pd ", "page-define ", 165 "pdc ", "page-define-columns ", 166 "pdl ", "page-define-length ", 167 "pdw ", "page-define-width ", 168 "pfl ", "page-footer-line ", 169 "phl ", "page-header-line ", 170 "pml ", "page-margin-left ", 171 "ps ", "page-space ", 172 "rac ", "runaround-centered ", 173 "ral ", "runaround-left ", /* 130 */ 174 "rar ", "runaround-right ", 175 "rd ", "read ", 176 "rt ", "return ", 177 "sp ", "space ", 178 "spb ", "space-break ", 179 "spd ", "space-to-depth ", 180 "spf ", "space-format ", 181 "spt ", "space-total ", 182 "sr ", "set-reference ", 183 "src ", "set-reference-counter ", /* 140 */ 184 "srm ", "set-reference-mode ", 185 "srv ", "set-reference-variable ", 186 "stl ", "split-title-line ", 187 "tab ", "table-define ", 188 "tac ", "table-column ", 189 "taf ", "table-off ", 190 "tan ", "table-on ", 191 "tb ", "title-block ", 192 "tbb ", "title-block-begin ", 193 "tbe ", "title-block-end ", /* 150 */ 194 "tcl ", "text-caption-line ", 195 "then ", "then ", 196 "thl ", "text-header-line ", 197 "tlc ", "title-line-caption ", 198 "tlh ", "title-line-header ", 199 "tre ", "translate-exceptions ", 200 "trf ", "translate-formatted ", 201 "trn ", "translate ", 202 "ttl ", "text-title-line", 203 "ts ", "test ", /* 160 */ 204 "ty ", "type ", 205 "un ", "undent ", 206 "unb ", "undent-both", 207 "unh ", "undent-hanging ", 208 "unl ", "undent-left ", 209 "unn ", "undent-nobreak ", 210 "unr ", "undent-right ", 211 "unson ", "underscore-on ", 212 "unsoff", "underscore-off ", 213 "ur ", "use-reference ", /* 170 */ 214 "vab ", "vertical-align-bottom ", 215 "vac ", "vertical-align-center ", 216 "vaj ", "vertical-align-justified ", 217 "vat ", "vertical-align-top ", 218 "vm ", "vertical-margin-all ", 219 "vmb ", "vertical-margin-top ", 220 "vmf ", "vertical-margin-footer ", 221 "vmh ", "vertical-margin-header ", 222 "vmt ", "vertical-margin-top ", 223 "vrul ", "vertical-rule ", /* 180 */ 224 "wi ", "widow ", 225 "wif ", "widow-footnote ", 226 "wit ", "widow-text ", 227 "wrf ", "write-formatted ", 228 "wro ", "write-order ", 229 "wrt ", "write-text ", 230 "wt ", "wait ", 231 (0) (32)"") /* 187 */ 232 static options (constant); 233 /**** format: on */ 234 dcl CREATE bit (1) static options (constant) init ("1"b); 235 /* ctl line index for translation */ 236 dcl 1 ctl_char based (addr (ctl_line)), 237 2 len fixed (35), 238 2 index (1020) fixed (8) unaligned; 239 dcl ctl_index fixed bin; /* control token index value */ 240 /* ctl string for search */ 241 dcl ctl_list char (32 * hbound (controls, 1)) based (ctls_ptr); 242 dcl ctls_ptr ptr; /**/ 243 dcl ctl_token char (32); /* control token from input line */ 244 dcl ctl_token_len fixed bin; /* string length of control token */ 245 dcl dirl fixed (35); 246 dcl dirname char (168); /* dir for insert & aux files */ 247 dcl ELSE fixed bin static options (constant) init (-1); 248 dcl endchar char (1); 249 dcl end_flag bit (1) static init ("0"b); 250 /* for label searching */ 251 dcl ercd fixed (35); /* error code */ 252 dcl exit_str char (128) var; /* debug message */ 253 dcl fcs_str char (8) aligned; 254 dcl footref_array (3) char (48) var; 255 dcl footrefstr char (256) var; 256 dcl found_clause bit (1); 257 dcl ftnblkptr ptr; /* a footnote block */ 258 dcl 1 ftnblk aligned like text based (ftnblkptr); 259 dcl ftndx fixed bin; /* blkndx value for footnotes */ 260 dcl ftnreflin fixed bin; /* ref line index for ftn thread */ 261 dcl given_symbol char (32); /* symbol name for .sr/.srv/.src */ 262 dcl head_used fixed bin (31); /* space used by page header */ 263 dcl hit_text char (1020) var; 264 dcl hitfilendx fixed bin; /* local hit file index */ 265 dcl hitcharndx fixed bin; 266 dcl hittypechar char (1); /* hit type desired */ 267 dcl hittypecodes char (8) static options (constant) init ("ULIANS*K"); 268 dcl hittypendx fixed bin; /* index for hit type */ 269 dcl hscales (7) fixed bin (31) static options (constant) 270 init (7200, 6000, 72000, 2834.65, 12000, 1000, 0); 271 dcl (i, j, k, l) fixed bin; /* working index */ 272 dcl itsptr ptr; /* local ITS pointer */ 273 dcl label_value_str /* string of label values for search */ 274 char (3200) based; 275 dcl lineno_pic pic "zzzzz9"; /* picture of lineno for compx */ 276 dcl LOG fixed bin static options (constant) init (1); 277 dcl mode_key char (2) var; /* display mode keyword */ 278 dcl modendx fixed bin; /* for display mode keyword */ 279 dcl namel fixed (35); 280 dcl oflo bit (1); 281 dcl pgs_path char (200); /* path of PGS for graphic insertion */ 282 dcl rdct fixed bin (35); /* chars read for .rd */ 283 dcl save_ctl_index fixed (35); /* to save ctl.index around calls */ 284 dcl save_line char (1020) var; /* to hold .go line */ 285 dcl save_posn fixed (35); /* to hold position of .go control */ 286 dcl scale (1) fixed bin (31) static options (constant) 287 init (1000); 288 dcl search_label char (32); /* label value for search */ 289 dcl slog bit (1); 290 dcl THEN fixed bin static options (constant) init (1); 291 dcl this_nest fixed bin; /* for if nest searching */ 292 /* WS trim control flag */ 293 dcl trim_flag bit (1); 294 dcl ty_buf char (200); 295 dcl unscaled (1) fixed bin (31) static options (constant) init (1); 296 dcl vscales (7) fixed bin (31) static options (constant) 297 init (12000, 9000, 72000, 2834.65, 12000, 1000, 0); 298 dcl wdir char (168); 299 dcl wdirl fixed; 300 dcl wrd_buffer char (128) var; /* break word buffer */ 301 302 dcl comp_error_table_$syntax_error 303 ext fixed bin (35); 304 dcl comp_error_table_$unknown_keyword 305 ext fixed bin (35); 306 dcl comp_error_table_$usage_error 307 ext fixed bin (35); 308 309 dcl (addr, before, char, collate, divide, fixed, hbound, index, length, 310 ltrim, max, min, null, reverse, rtrim, search, size, substr, unspec, 311 verify) builtin; 312 313 dcl (cleanup, comp_abort) 314 condition; 315 316 dcl adjust_bit_count_ 317 entry (char (168), char (32), bit (1), fixed, 318 fixed (35)); 319 dcl com_err_ entry options (variable); 320 dcl cu_$cp entry (ptr, fixed (35), fixed (35)); 321 dcl expand_pathname_ 322 entry (char (*), char (*), char (*), fixed (35)); 323 dcl get_wdir_ entry returns (char (168)); 324 dcl ioa_$rsnnl entry options (variable); 325 dcl iox_$attach_name 326 entry (char (*), ptr, char (*), ptr, fixed (35)); 327 dcl iox_$detach_iocb 328 entry (ptr, fixed bin (35)); 329 dcl iox_$get_line entry (ptr, ptr, fixed bin (35), fixed bin (35), 330 fixed bin (35)); 331 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 332 dcl iox_$put_chars entry (ptr, ptr, fixed bin, fixed bin (35)); 333 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 334 335 if shared.bug_mode 336 then call ioa_ ("ctls: ^a", comp_util_$display (ltrim (ctl_line), 0, "0"b)) 337 ; 338 339 exit_str = ""; /* clear debug info string */ 340 ctls_ptr = addr (controls); /* point to control array */ 341 /* current input file */ 342 call_box_ptr = call_stack.ptr (call_stack.index); 343 344 callers_nest = shared.if_nest.ndx; /* if nest level at entry */ 345 trim_flag, text_added = "0"b; /* clear the text flag */ 346 again = "1"b; /* set flag to process control line */ 347 348 ctl_loop: 349 do while (again); /* as long as the flag stays up */ 350 again = "0"b; /* reset process control line flag */ 351 352 (nosubrg): /* if we are indenting */ 353 if shared.indctl.stk (shared.indctl.ndx) 354 then 355 (nostrg): 356 (nostrz): 357 ctl_line = ltrim (ctl_line); 358 359 /* accept only .bel and .be in literal mode */ 360 if shared.literal_mode & shared.lit_count ^= 0 361 then 362 do; 363 if ctl_line = ".bel" 364 then 365 do; 366 call comp_block_ctls_ (bel_ctl_index); 367 goto end_ctl_loop; 368 end; 369 370 else if ctl_line = ".be" 371 then 372 do; 373 call comp_block_ctls_ (be_ctl_index); 374 goto end_ctl_loop; 375 end; 376 377 else 378 do; 379 text_added = "1"b; 380 goto return_; 381 end; 382 end; 383 384 /* ".*", ".~" = comment */ 385 if index (ctl_line, ".*") = 1 | index (ctl_line, ".~") = 1 386 then goto end_ctl_loop; 387 388 /* ".." = short form of ".ifi" */ 389 if index (ctl_line, "..") = 1 390 then 391 do; 392 ctl.index = 3; 393 call comp_insert_ctls_ (ifi_ctl_index); 394 goto end_ctl_loop; 395 end; /**/ 396 /* extract control token */ 397 ctl_token_len = index (ctl_line, " ") - 2; 398 if ctl_token_len < 0 /* if no SP, take the whole thing */ 399 then ctl_token_len = length (ctl_line) - 1; 400 401 if ctl_token_len > 32 /* cant be more than 32 chars */ 402 then goto unk_ctl; /**/ 403 /* accept the control token */ 404 (nostrg): 405 ctl_token = substr (ctl_line, 2, ctl_token_len); 406 ctl.index = ctl_token_len + 2; /* and step over it */ 407 /* set start of variable field */ 408 if ctl.index < length (rtrim (ctl_line)) 409 then 410 (nostrg): 411 ctl.index = ctl.index - 1 + verify (substr (ctl_line, ctl.index), " "); 412 else ctl.index = length (ctl_line) + 1; 413 /* look for the control */ 414 ctl_index = index (ctl_list, ctl_token); 415 416 if ctl_index = 0 /* if no control was found */ 417 then 418 do; 419 unk_ctl: 420 text_added = "1"b; 421 if shared.table_mode 422 then if index ("0123456789", substr (ctl_token, 2, 1)) ^= 0 423 then goto return_; 424 425 call comp_report_ (2, 0, "Unknown control request.", addr (ctl.info), 426 ltrim (ctl_line)); 427 goto end_ctl_loop; 428 end; /**/ 429 /* true index */ 430 ctl_index = divide (ctl_index + 63, 64, 17); 431 432 goto ctl_ (ctl_index); /* transfer to control processor */ 433 434 /* TEXT ALIGNMENT CONTROLS */ 435 ctl_ (1): /* ".alb" = align-both */ 436 ctl_ (2): /* ".alc" = align-center */ 437 ctl_ (3): /* ".ali" = align-inside */ 438 ctl_ (4): /* ".all" = align-left */ 439 ctl_ (5): /* ".alo" = align-outside */ 440 ctl_ (6): /* ".alr" = align-right */ 441 call comp_format_ctls_ (ctl_index); 442 goto end_ctl_loop; 443 444 /* BEGIN-BLOCK CONTROLS */ 445 ctl_ (7): /* ".bb" = begin-block OBSOELTE */ 446 ctl_ (8): /* ".bart" = begin-artwork */ 447 ctl_ (9): /* ".bba" = block-begin-art OBSOLETE */ 448 ctl_ (10): /* ".bblk" = begin-block */ 449 call comp_block_ctls_ (ctl_index); 450 goto end_ctl_loop; 451 452 ctl_ (11): /* ".bbc" = block-begin-column OBSOLETE */ 453 ctl_index = tac_ctl_index; 454 goto tac_ctl; 455 456 ctl_ (12): /* ".bbe" = block-begin-equation OBSOLETE */ 457 ctl_ (13): /* ".bbf" = block-begin-footnote OBSOLETE */ 458 ctl_ (14): /* ".bbi" = block-begin-inline OBSOLETE */ 459 ctl_ (15): /* ".bbk" = block-begin-keep OBSOLETE */ 460 ctl_ (16): /* ".bbl" = block-begin-literal OBSOLETE */ 461 ctl_ (17): /* ".bbn" = block-begin-named OBSOLETE */ 462 ctl_ (18): /* ".bbp" = block-begin-picture OBSOLETE */ 463 ctl_ (19): /* ".bbt" = block-begin-title OBSOLETE */ 464 call comp_block_ctls_ (ctl_index); 465 goto end_ctl_loop; 466 467 ctl_ (20): /* ".bcf" = begin-column-footer */ 468 ctl_ (21): /* ".bch" = begin-column-header */ 469 call comp_hft_ctls_ (ctl_index); 470 goto end_ctl_loop; 471 472 /* BLOCK-END CONTROLS */ 473 ctl_ (22): /* ".be" = block-end (be_ctl_index) */ 474 ctl_ (23): /* ".bea" = block-end-art */ 475 call comp_block_ctls_ (ctl_index); 476 goto end_ctl_loop; 477 478 ctl_ (24): /* ".bec" = block-end-column OBSOLETE */ 479 ctl_index = tac_ctl_index; 480 goto tac_ctl; 481 482 ctl_ (25): /* ".bee" = block-end-equation */ 483 ctl_ (26): /* ".bef" = block-end-footnote (bef_ctl_index) */ 484 ctl_ (27): /* ".bek" = block-end-keep */ 485 ctl_ (28): /* ".bel" = block-end-literal (bel_ctl_index) */ 486 ctl_ (29): /* ".ben" = block-end-named */ 487 ctl_ (30): /* ".bep" = block-end-picture (bep_ctl_index) */ 488 ctl_ (31): /* ".bet" = block-end-title */ 489 call comp_block_ctls_ (ctl_index); 490 goto end_ctl_loop; 491 492 ctl_ (32): /* ".bpf" = begin-page-footer */ 493 ctl_ (33): /* ".bph" = begin-page-header */ 494 call comp_hft_ctls_ (ctl_index); 495 goto end_ctl_loop; 496 497 /* BREAK CONTROLS */ 498 ctl_ (34): /* ".br" = break */ 499 ctl_ (35): /* ".brb" = break-block */ 500 ctl_ (36): /* ".brc" = break-column */ 501 ctl_ (37): /* ".brf" = break-format */ 502 ctl_ (38): /* ".brn" = break-need */ 503 ctl_ (39): /* ".brp" = break-page */ 504 ctl_ (40): /* ".brs" = break-skip */ 505 call comp_break_ctls_ (ctl_index); 506 goto end_ctl_loop; 507 508 ctl_ (41): /* ".brw" = break-word */ 509 if ctl.index = length (ctl_line) /* take all single chars */ 510 then shared.wrd_brkr = substr (ctl_line, ctl.index, 1); 511 512 else if ctl.index < length (ctl_line) 513 then 514 do; 515 wrd_buffer = ltrim (substr (ctl_line, ctl.index), "¿"); 516 517 if index (wrd_buffer, "*") = 1/* is it escaped? */ 518 then 519 do; 520 call comp_util_$escape (wrd_buffer, addr (ctl.info)); 521 wrd_buffer = ltrim (wrd_buffer, "¿"); 522 523 if length (wrd_buffer) = 1 524 then shared.wrd_brkr = wrd_buffer; 525 526 else 527 do; 528 call comp_report_$ctlstr (2, comp_error_table_$syntax_error, 529 addr (ctl.info), ctl_line, 530 "Only a single character may be given."); 531 goto end_ctl_loop; 532 end; 533 end; 534 535 else 536 do; 537 call comp_report_$ctlstr (2, comp_error_table_$syntax_error, 538 addr (ctl.info), ctl_line, 539 "Only a single character may be given."); 540 goto end_ctl_loop; 541 end; 542 end; 543 544 else shared.wrd_brkr = " "; /* default is wordspace */ 545 546 if shared.bug_mode 547 then call ioa_$rsnnl ("wrdbrkr=^a", exit_str, 0, 548 comp_util_$display ((shared.wrd_brkr), 0, "0"b)); 549 550 goto end_ctl_loop; 551 552 ctl_ (42): /* ".btc" = begin-text-caption */ 553 ctl_ (43): /* ".btt" = begin-text-title */ 554 call comp_hft_ctls_ (ctl_index); 555 goto end_ctl_loop; 556 557 /* CHANGE-BAR CONTROLS */ 558 ctl_ (44): /* ".cba" = change-bar-addition */ 559 if ^option.cbar_opt /* if change bars are not active */ 560 then goto end_ctl_loop; /* forget it! */ 561 /* if a change level is given */ 562 if ctl.index <= length (ctl_line) 563 then 564 do; /* less than level selected? */ 565 if substr (ctl_line, ctl.index, 1) < option.cbar.level 566 then goto end_ctl_loop; 567 page.hdr.pgc_select = 568 byte ( 569 max (32, rank (page.hdr.pgc_select), 570 rank (substr (ctl_line, ctl.index, 1)))); 571 end; /**/ 572 /* set shared flags */ 573 current_parms.cbar.add = "1"b; 574 if shared.blkptr ^= null () /* and active flag */ 575 then text.parms.cbar.add, text.input.cbar.add = "1"b; 576 shared.cbar_type = "add"; 577 goto end_ctl_loop; 578 579 ctl_ (45): /* ".cbd" = change-bar-delete */ 580 if ^option.cbar_opt /* if change bars are not active */ 581 then goto end_ctl_loop; /* forget it! */ 582 /* if a change level is given */ 583 if ctl.index <= length (ctl_line) 584 then 585 do; /* less than level selected? */ 586 if substr (ctl_line, ctl.index, 1) < option.cbar.level 587 then goto end_ctl_loop; 588 page.hdr.pgc_select = 589 byte ( 590 max (32, rank (page.hdr.pgc_select), 591 rank (substr (ctl_line, ctl.index, 1)))); 592 end; /**/ 593 /* set shared flags */ 594 current_parms.cbar.del = "1"b; 595 if shared.blkptr ^= null () /* and active flags */ 596 then text.parms.cbar.del, text.input.cbar.del = "1"b; 597 598 shared.cbar_type = "del"; 599 goto end_ctl_loop; 600 601 ctl_ (46): /* ".cbf" = change-bars-off */ 602 if ^option.cbar_opt /* if change bars are not active */ 603 then goto end_ctl_loop; /* forget it! */ 604 605 if ctl.index <= length (ctl_line) /* if a change level is given */ 606 then if 607 /**** option.cbar.level = "" | /* and all levels were selected */ 608 /* or its less than the active level */ 609 substr (ctl_line, ctl.index, 1) < option.cbar.level 610 then goto end_ctl_loop; /**/ 611 /* reset shared flags */ 612 current_parms.cbar.add, current_parms.cbar.mod = "0"b; 613 if shared.blkptr ^= null () /* and the active flags */ 614 then text.parms.cbar.add, text.parms.cbar.mod = "0"b; 615 616 shared.cbar_type = ""; 617 goto end_ctl_loop; 618 619 ctl_ (47): /* ".cbm" = change-bars-modified */ 620 ctl_ (48): /* ".cbn" = change-bars-on */ 621 if ^option.cbar_opt /* if change bars are not active */ 622 then goto end_ctl_loop; /* forget it! */ 623 624 if ctl.index <= length (ctl_line) /* if a change level is given */ 625 then 626 do; /* less than the active level? */ 627 if substr (ctl_line, ctl.index, 1) < option.cbar.level 628 then goto end_ctl_loop; 629 630 page.hdr.pgc_select = 631 byte ( 632 max (32, rank (page.hdr.pgc_select), 633 rank (substr (ctl_line, ctl.index, 1)))); 634 end; 635 636 current_parms.cbar.mod = "1"b; /* set shared flag */ 637 if shared.blkptr ^= null () /* set active flags */ 638 then text.parms.cbar.mod, text.input.cbar.mod = "1"b; 639 640 if shared.table_mode /* set table flag */ 641 then tbldata.ptr (tbldata.ndx) -> tblcol.parms.cbar.mod = "1"b; 642 shared.cbar_type = "mod"; 643 644 goto end_ctl_loop; 645 646 ctl_ (49): /* ".cfl" = column-footer-line */ 647 ctl_ (50): /* ".chl" = column-header-line */ 648 call comp_hft_ctls_ (ctl_index); 649 goto end_ctl_loop; 650 651 ctl_ (51): /* ".csd" = change-symbol-delimiter */ 652 if ctl.index = 8 653 then shared.sym_delim = "%"; 654 else shared.sym_delim = substr (ctl_line, ctl.index, 1); 655 656 goto end_ctl_loop; 657 658 ctl_ (52): /* ".ctd" = change-title-delimiter */ 659 if ctl.index > length (ctl_line) 660 then shared.ttl_delim = "|"; 661 else shared.ttl_delim = substr (ctl_line, ctl.index, 1); 662 goto end_ctl_loop; 663 664 ctl_ (53): /* ".dfu" = defer-until */ 665 if ctl.index > length (ctl_line) 666 then goto end_ctl_loop; /* if nothing given */ 667 668 cond_name = 669 comp_read_$name (ctl_line, ctl.index, ctl.index, addr (ctl.info)); 670 671 do i = 1 to hbound (cond_names, 1) while (cond_name ^= cond_names (i)); 672 end; 673 674 if i > hbound (cond_names, 1) 675 then 676 do; 677 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 678 "Unknown condition ^a", cond_name); 679 goto end_ctl_loop; 680 end; 681 682 ctl_line = ltrim (after (ctl_line, cond_name)); 683 684 if shared.blkptr = null 685 then call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 686 addr (current_parms), "0"b); 687 688 ctl.linespace = 0; /* no lead for special lines */ 689 call comp_util_$add_text (shared.blkptr, "0"b, "0"b, "0"b, "0"b, 690 addr (ctl)); 691 692 line_area_ptr = text.line_area.cur; 693 txtlinptr = line_area.linptr (line_area.ndx); 694 txtlin.blk_splt = "1"b; 695 ctl.linespace = text.parms.linespace; 696 697 goto end_ctl_loop; 698 699 ctl_ (54): /* ".dmp" = dump - NOT IMPLEMENTED */ 700 goto end_ctl_loop; 701 702 ctl_ (55): /* ".do" = do - NOT IMPLEMENTED */ 703 goto end_ctl_loop; 704 705 ctl_ (56): /* ".dvc" = device-command - NOT IMPLEMENTED */ 706 goto end_ctl_loop; 707 708 ctl_ (57): /* ".eart" = end-artwork - NOT IMPLEMENTED */ 709 goto end_ctl_loop; 710 711 ctl_ (58): /* ".ecf" = end-column-footer */ 712 ctl_ (59): /* ".ech" = end-column-header */ 713 call comp_hft_ctls_ (ctl_index); 714 goto end_ctl_loop; 715 716 ctl_ (60): /* ".else" = conditional-else */ 717 if shared.if_nest.ndx = 0 /* if no active nest */ 718 then 719 do; 720 call comp_report_$ctlstr (2, comp_error_table_$usage_error, 721 addr (ctl.info), ctl_line, 722 "Not in an active conditional execution group."); 723 goto end_ctl_loop; 724 end; 725 726 found_clause = "1"b; /**/ 727 /* execute the else? */ 728 if shared.if_nest (shared.if_nest.ndx).sw = ELSE 729 then 730 do; 731 if shared.indctl.stk (shared.indctl.ndx) 732 then ctl_line = ltrim (after (ctl_line, ".else ")); 733 else ctl_line = after (ctl_line, ".else "); 734 735 if index (ctl_line, ".") = 1 736 then again = "1"b; 737 else if ctl_line ^= "" 738 then text_added = "1"b; 739 end; 740 741 else /* no - search for if/endif */ 742 do; /* until found or end_input */ 743 this_nest = shared.if_nest.ndx; 744 745 ctl_line = after (ctl_line, "else "); 746 goto check_if; 747 748 do while (^shared.end_input); /* read next line */ 749 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 750 ctl.info = call_box.info; 751 752 check_if: 753 if index (ltrim (ctl_line), ".if ") = 1 754 then 755 do; 756 shared.if_nest.ndx = shared.if_nest.ndx + 1; 757 shared.if_nest (shared.if_nest.ndx).info = ctl.info; 758 shared.if_nest (shared.if_nest.ndx).line = ctl_line; 759 shared.if_nest (shared.if_nest.ndx).sw = 0; 760 761 /* again = "1"b; 762*/* 763*/* if shared.bug_mode 764*/* then call 765*/* ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 766*/* ctl.lineno, ctl_line); 767*/* 768*/* call comp_ctls_ ("0"b); */ 769 end; 770 771 else if index (ltrim (ctl_line), ".endif") = 1 772 then 773 do; 774 if shared.bug_mode 775 then call ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 776 ctl.lineno, ctl_line); 777 778 if shared.if_nest.ndx > this_nest 779 then shared.if_nest.ndx = shared.if_nest.ndx - 1; 780 781 else 782 do; 783 again = "1"b; /* set the control flag */ 784 goto end_ctl_loop; 785 end; 786 end; 787 end; 788 end; 789 goto end_ctl_loop; 790 791 ctl_ (61): /* ".elseif" - conditional-elseif */ 792 if shared.if_nest.ndx = 0 /* if no active nest */ 793 then 794 do; 795 call comp_report_$ctlstr (2, comp_error_table_$usage_error, 796 addr (ctl.info), ctl_line, 797 "Not in an active conditional execution group."); 798 goto end_ctl_loop; 799 end; /**/ 800 /* execute the else? */ 801 if shared.if_nest (shared.if_nest.ndx).sw = ELSE 802 then 803 do; /* fool the nest counter */ 804 shared.if_nest.ndx = shared.if_nest.ndx - 1; 805 goto if_ctl; 806 end; /**/ 807 /* search for elseif, else, or endif */ 808 else /* until found or end_input */ 809 do while (^shared.end_input); /* read next line */ 810 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 811 ctl.info = call_box.info; /**/ 812 /* if a nested .if */ 813 if index (ltrim (ctl_line), ".if ") = 1 814 then 815 do; /* count the nest */ 816 shared.if_nest.ndx = shared.if_nest.ndx + 1; 817 818 /* shared.if_nest (shared.if_nest.ndx).info = ctl.info; 819*/* shared.if_nest (shared.if_nest.ndx).line = ctl_line; 820*/* shared.if_nest (shared.if_nest.ndx).sw = 0; */ 821 822 if shared.bug_mode 823 then call ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 824 ctl.lineno, ctl_line); 825 end; 826 827 else if index (ltrim (ctl_line), ".else") = 1 828 then 829 do; 830 if shared.bug_mode 831 then call ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 832 ctl.lineno, ctl_line); 833 834 again = "1"b; /* set the control flag */ 835 goto end_ctl_loop; 836 end; 837 838 if index (ltrim (ctl_line), ".endif") = 1 839 then goto endif_ctl; 840 841 end; 842 goto end_ctl_loop; 843 844 ctl_ (62): /* ".enddo" = end-do */ 845 goto end_ctl_loop; 846 847 ctl_ (63): /* ".endif" = conditional-end */ 848 endif_ctl: 849 if shared.if_nest.ndx = 0 /* if no active nest */ 850 then 851 do; 852 call comp_report_$ctlstr (2, comp_error_table_$usage_error, 853 addr (ctl.info), ctl_line, 854 "Not in an active conditional execution group."); 855 goto end_ctl_loop; 856 end; 857 858 if ^found_clause /* if no clause found */ 859 then call comp_report_$ctlstr (2, comp_error_table_$usage_error, 860 addr (ctl.info), ctl_line, 861 "No executable clause for a conditional execution group."); 862 863 shared.if_nest.ndx = shared.if_nest.ndx - 1; 864 865 if shared.bug_mode 866 then 867 do; 868 call ioa_$rsnnl ("ifnest=^d", exit_str, 0, shared.if_nest.ndx); 869 if shared.if_nest.ndx > 0 870 then call ioa_$rsnnl ("^a if_sw=^d", exit_str, 0, exit_str, 871 shared.if_nest (shared.if_nest.ndx).sw); 872 end; 873 874 goto end_ctl_loop; 875 876 ctl_ (64): /* ".epf" = end-page-footer */ 877 ctl_ (65): /* ".eph" = end-page-header */ 878 call comp_hft_ctls_ (ctl_index); 879 goto end_ctl_loop; 880 881 ctl_ (66): /* ".eqc" = equation-count */ 882 if ctl.index > length (ctl_line) /* if no value, then step counter */ 883 then shared.eqn_refct = shared.eqn_refct + 1; 884 else shared.eqn_refct = 885 comp_read_$number (ctl_line, unscaled, ctl.index, ctl.index, 886 addr (ctl.info), 0); 887 goto end_ctl_loop; 888 889 ctl_ (67): /* ".err" = error */ 890 call comp_report_$exact (substr (ctl_line, ctl.index), addr (ctl.info)); 891 goto end_ctl_loop; 892 893 ctl_ (68): /* ".etc" = end-text-caption */ 894 ctl_ (69): /* ".ett" = end-text-title */ 895 call comp_hft_ctls_ (ctl_index); 896 goto end_ctl_loop; 897 898 ctl_ (70): /* ".exc" = execute-command */ 899 if ctl.index <= length (ctl_line) 900 then 901 do; 902 command_line = substr (ctl_line, ctl.index); 903 call cu_$cp (addr (command_line), length (ctl_line) - ctl.index + 1, 904 ercd); 905 end; 906 goto end_ctl_loop; 907 908 /* FOOTER-BLOCK CONTROLS */ 909 ctl_ (71): /* ".fb" = footer-block */ 910 ctl_ (72): /* ".fbb" = footer-block-begin */ 911 ctl_ (73): /* ".fbe" = footer-block-end */ 912 call comp_hft_ctls_ (ctl_index); 913 goto end_ctl_loop; 914 915 /* FILL MODE CONTROLS */ 916 ctl_ (74): /* ".fi" = fill DEFAULT */ 917 ctl_ (75): /* ".fif" = fill-off */ 918 ctl_ (76): /* ".fin" = fill-on (fin_ctl_index) */ 919 call comp_format_ctls_ (ctl_index); 920 goto end_ctl_loop; 921 922 /* FOOTER-LINE CONTROLS */ 923 ctl_ (77): /* ".fl" = footer-line */ 924 ctl_ (78): /* ".fla" = footer-line-all */ 925 ctl_ (79): /* ".fle" = footer-line-even */ 926 ctl_ (80): /* ".flo" = footer-line-odd */ 927 call comp_hft_ctls_ (ctl_index); 928 goto end_ctl_loop; 929 930 ctl_ (81): /* ".fnt" = font */ 931 if substr (ctl_line, ctl.index) = "-rs" 932 | substr (ctl_line, ctl.index) = "-reset" 933 then 934 do; 935 call comp_font_ ("1"b, "", ""); 936 ctl_line = ""; 937 end; 938 939 else 940 do; 941 call comp_font_ ("0"b, substr (ctl_line, ctl.index), fcs_str); 942 ctl_line = fcs_str; 943 end; /**/ 944 /* if changing in mid-stream */ 945 if shared.blkptr ^= null () 946 then if ctl_line ^= "" & text.input_line ^= "" 947 then text_added, ctl.fnt_chng = "1"b; 948 else ctl.font = text.parms.fntstk.entry (text.parms.fntstk.index); 949 else ctl.font = current_parms.fntstk.entry (current_parms.fntstk.index); 950 951 ctl.cur.font = current_parms.fntstk.entry (current_parms.fntstk.index); 952 953 goto end_ctl_loop; 954 955 ctl_ (82): /* ".frf" = footnote-reference */ 956 /* which note? */ 957 if ctl.index <= length (ctl_line) 958 then i = comp_read_$number (ctl_line, unscaled, ctl.index, ctl.index, 959 addr (ctl.info), 0); 960 else i = 1; 961 962 if shared.ftnrefct - i <= 0 963 then 964 do; 965 call comp_report_ (2, 0, "Referenced footnote does not exist.", 966 addr (ctl.info), ltrim (ctl_line)); 967 goto end_ctl_loop; 968 end; 969 970 footref_array (2) = ltrim (char (shared.ftnrefct - i)); 971 call comp_dvt.footproc (footref_array, addr (comp_dvt)); 972 973 footrefstr = footref_array (1) || footref_array (2) || footref_array (3); 974 975 if text.parms.fill_mode /* insert reference into filled text */ 976 then 977 do; 978 ctl_line = ""; 979 call append_footref (addr (ctl)); 980 981 call comp_fill_; /* to be sure it fits */ 982 if shared.ftn_reset ^= "hold" 983 then 984 do; 985 text.input.ftn.ct = text.input.ftn.ct + 1; 986 text.input.ftn.refno (text.input.ftn.ct) = shared.ftnrefct - i; 987 end; 988 end; 989 990 else /* append reference to end of */ 991 do; /* last unfilled output line */ 992 line_area_ptr = text.line_area.cur; 993 txtlinptr = line_area.linptr (line_area.ndx); 994 995 /* if shared.table_mode /* back up to last */ 996 /* then /* line for this table column */ 997 /* do; 998*/* tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 999*/* do j = text.hdr.count to 1 by -1 1000*/* while (text.linptr (j) -> txtlin.tblcol ^= tblfmt.ccol); 1001*/* end; 1002*/* end;*/ 1003 1004 call append_footref (txtlinptr); 1005 call comp_util_$replace_text (shared.blkptr, "0"b, txtlinptr, 1006 addr (ctl_line)); /**/ 1007 /* if notes arent held */ 1008 if shared.ftn_reset ^= "hold" 1009 then 1010 do; 1011 txtlin.ftn.ct = txtlin.ftn.ct + 1; 1012 txtlin.ftn.refno (txtlin.ftn.ct) = shared.ftnrefct - i; 1013 end; 1014 text.hdr.ftn.ct = text.hdr.ftn.ct + 1; 1015 col.hdr.ftn.ct = col.hdr.ftn.ct + 1; 1016 end; 1017 1018 append_footref: /* append footref string onto text */ 1019 proc (reflineptr); 1020 1021 dcl reflineptr ptr; /* line to be appended */ 1022 dcl 1 refline aligned like text_entry based (reflineptr); 1023 1024 txtstrptr = refline.ptr; 1025 1026 if refline.sws.footref /* does line already have a footref? */ 1027 then 1028 do; 1029 ctl_line = /* trim FCS and suffix */ 1030 substr (txtstr, 1, 1031 length (txtstr) - 8 - length (footref_array (3))); 1032 ctl_line = /* add sep, ref, suffix, and FCS */ 1033 ctl_line || refline.cur.font.fntptr -> font.footsep 1034 || footref_array (2) || footref_array (3) 1035 || refline.cur.font.fcs_str; 1036 end; 1037 1038 else /* no, add the whole ref string */ 1039 do; /* be sure footref is in right font */ 1040 footrefstr = 1041 footnote_parms.fntstk.entry (footnote_parms.fntstk.index).fcs_str 1042 || footrefstr; 1043 ctl_line = txtstr || footrefstr || refline.cur.font.fcs_str; 1044 end; 1045 1046 refline.sws.footref = "1"b; /* set footref flag */ 1047 1048 end append_footref; 1049 1050 goto end_ctl_loop; 1051 1052 ctl_ (83): /* ".fth" = footnote-hold */ 1053 shared.suppress_footref = "0"b; 1054 shared.ftn_reset = "hold"; 1055 goto end_ctl_loop; 1056 1057 ctl_ (84): /* ".ftp" = footnote-paged */ 1058 shared.suppress_footref = "0"b; 1059 shared.ftn_reset = "paged"; 1060 goto end_ctl_loop; 1061 1062 ctl_ (85): /* ".ftr" = footnote-running */ 1063 shared.suppress_footref = "0"b; 1064 shared.ftn_reset = "running"; 1065 goto end_ctl_loop; 1066 1067 ctl_ (86): /* ".ftu" = footnote-unreferenced */ 1068 shared.suppress_footref = "1"b; /* set footnote ref suppress flag */ 1069 goto end_ctl_loop; 1070 1071 ctl_ (87): /* ".galley" = galley-mode */ 1072 ctl_ (88): /* ".gl" = galley-mode */ 1073 if ctl.fileno + ctl.lineno ^= 1 1074 then call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1075 "galley control must be first, it will be ignored."); 1076 1077 else option.galley_opt = "1"b; 1078 1079 goto end_ctl_loop; 1080 1081 ctl_ (89): /* ".go" = goto */ 1082 if ctl.index > length (ctl_line) 1083 then 1084 do; 1085 call comp_report_ (2, 0, "No target label given.", addr (ctl.info), 1086 ltrim (ctl_line)); 1087 goto end_ctl_loop; 1088 end; 1089 1090 search_label = substr (ctl_line, ctl.index); 1091 1092 if insert.label.count > 0 /* see if we've been here already */ 1093 then 1094 do; 1095 i = index ( 1096 substr (addr (insert.label.value (1)) -> label_value_str, 1, 1097 32 * insert.label.count), search_label); 1098 1099 if i > 0 1100 then 1101 do; 1102 i = divide (i, 32, 17) + 1; 1103 call_box.lineno = insert.label.line (i); 1104 call_box.posn = insert.label.position (i); 1105 if shared.bug_mode 1106 then call ioa_ ("^5x(label: line=^d ^d ^a)", ctl.info.fileno, 1107 call_box.lineno, rtrim (search_label)); 1108 goto end_ctl_loop; 1109 end; 1110 end; 1111 1112 save_line = ctl_line; /* save ctl line stuff */ 1113 save_info = ctl.info; 1114 save_posn = insert.posn; /* save .go position */ 1115 end_flag = "0"b; /* clear static flag */ 1116 1117 do while (^shared.end_input); /* until found or end_input */ 1118 /* read next line */ 1119 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 1120 ctl.info = call_box.info; 1121 1122 if ^shared.end_input 1123 then 1124 do; /**/ 1125 /* a label control? */ 1126 if index (ltrim (ctl_line), ".la") = 1 1127 then 1128 do; /* preset scan index to 1st nonblank */ 1129 ctl.index = verify (ctl_line, " "); 1130 /* set scan index */ 1131 if length (ctl_line) > ctl.index + 3 1132 then ctl.index = 1133 ctl.index 1134 + index (substr (ctl_line, ctl.index), " "); 1135 else ctl.index = length (ctl_line) + 1; 1136 1137 call set_label; /* record the label value */ 1138 if insert.label.value (insert.label.count) = search_label 1139 then 1140 do; /* if it matches */ 1141 if shared.bug_mode 1142 then call ioa_ ("^5x(label: line=^d ^d ^a)", 1143 ctl.info.fileno, ctl.info.lineno, 1144 rtrim (search_label)); 1145 goto end_ctl_loop; 1146 end; 1147 end; 1148 1149 if index (ltrim (ctl_line), ".endif") = 1 1150 then shared.if_nest.ndx = 1151 max (shared.if_nest.ndx - 1, callers_nest); 1152 end; 1153 1154 else 1155 do; /* no such label */ 1156 call comp_report_ (2, 0, 1157 "Label not defined. """ || before (search_label, " ") || """", 1158 addr (save_info), ltrim (save_line)); 1159 insert.posn = save_posn; /* restore .go control position */ 1160 goto end_ctl_loop; 1161 end; 1162 end; 1163 1164 /* HEADER-BLOCK CONTROLS */ 1165 ctl_ (90): /* ".hb" = header-block */ 1166 ctl_ (91): /* ".hbb" = header-block-begin */ 1167 ctl_ (92): /* ".hbe" = header-block-end */ 1168 call comp_hft_ctls_ (ctl_index); 1169 goto end_ctl_loop; 1170 1171 ctl_ (93): /* ".hif" = hit-file - NOT COMPLETE */ 1172 /* LOCAL STORAGE */ 1173 dcl 1 hit_data aligned based (shared.hit_data_ptr), 1174 2 file_name (0:9) char (32) var, 1175 /* entryname of data file */ 1176 2 iocb_ptr (0:9) ptr, /* iocb pointer */ 1177 2 last_caller 1178 (0:9) char (32) var; 1179 /* last caller for each */ 1180 1181 if ^option.nohit_opt & shared.hit_data_ptr = null () 1182 then 1183 do; 1184 shared.hit_data_ptr = 1185 allocate (const.local_area_ptr, size (hit_data)); 1186 hit_data.file_name (*) = ""; 1187 hit_data.iocb_ptr (*) = null (); 1188 hit_data.last_caller (*) = ""; 1189 end; 1190 goto end_ctl_loop; 1191 1192 ctl_ (94): /* ".hit" = hit */ 1193 /* if no data */ 1194 if ctl.index > length (ctl_line) 1195 then goto end_ctl_loop; 1196 1197 if ^option.nohit_opt 1198 then 1199 do; 1200 endchar = ";"; 1201 hitcharndx = 0; 1202 1203 if shared.hit_data_ptr = null () 1204 then /* need the hit file data? */ 1205 do; 1206 shared.hit_data_ptr = 1207 allocate (const.local_area_ptr, size (hit_data)); 1208 hit_data.file_name (*) = ""; 1209 hit_data.iocb_ptr (*) = null (); 1210 hit_data.last_caller (*) = ""; 1211 end; /**/ 1212 /* check for a hit file index */ 1213 if index ("0123456789", substr (ctl_line, ctl.index, 1)) ^= 0 1214 then hitfilendx = 1215 comp_read_$number (ctl_line, unscaled, ctl.index, 1216 ctl.index, addr (ctl.info), 0); 1217 else hitfilendx = 0; /**/ 1218 /* construct hit file name */ 1219 if hit_data.file_name (hitfilendx) = "" 1220 then call ioa_$rsnnl ("^a.^d.cndx", hit_data.file_name (hitfilendx), 1221 0, before (call_box0.entryname, ".compin"), hitfilendx); 1222 /* attach/open hit file, write_page_ */ 1223 /* will write the data, but we have */ 1224 /* to give him the iocb ptr and */ 1225 /* attach the file */ 1226 call aux_file (hit_data.file_name (hitfilendx), 1, ercd); 1227 if ercd ^= 0 1228 then goto end_ctl_loop; 1229 1230 hit_data.iocb_ptr (hitfilendx) = 1231 aux_file_data.entry (aux_file_index).iocb_ptr; 1232 /* set up hit line */ 1233 hit_line = text_entry; 1234 hit_line.info = ctl.info; 1235 hit_line.font = ctl.font; 1236 hit_line.ptr = addr (hit_text); 1237 hit_line.linespace = 0; 1238 hit_line.spcl.file = "1"b; 1239 hit_line.spcl_iocbp = hit_data.iocb_ptr (hitfilendx); 1240 hit_line.default = "1"b; /* default means hit line */ 1241 1242 if ^page.hdr.headed /* head page if needed */ 1243 then call comp_head_page_ (head_used); 1244 /* need a text block? */ 1245 if shared.blkptr = null () 1246 then call comp_util_$getblk (page.hdr.col_index, shared.blkptr, "tx", 1247 addr (current_parms), "0"b); 1248 1249 if shared.input_filename ^= hit_data.last_caller (hitfilendx) 1250 then 1251 do; 1252 hit_text = shared.input_filename || NL; 1253 call comp_util_$add_text (shared.blkptr, "0"b, "0"b, "0"b, oflo, 1254 addr (hit_line)); 1255 hit_data.last_caller (hitfilendx) = shared.input_filename; 1256 1257 if oflo & ^text.parms.keep & text.hdr.colno >= 0 1258 then call comp_break_ (need_break, -2); 1259 end; /**/ 1260 /* check for delimiter change */ 1261 if substr (ctl_line, ctl.index, 1) = "=" 1262 then 1263 do; 1264 hitcharndx = 4; 1265 endchar = substr (ctl_line, ctl.index + 3, 1); 1266 end; 1267 1268 call ioa_$rsnnl ("^d^-.~ HIT ^a^a", hit_text, 0, ctl.lineno, 1269 substr (ctl_line, ctl.index), endchar); 1270 1271 hittypechar = substr (ctl_line, ctl.index + hitcharndx, 1); 1272 hittypendx = 1273 index (hittypecodes, 1274 translate (hittypechar, "ULIANSK", "uliansk")); 1275 goto hittype (hittypendx); 1276 1277 hittype (0): 1278 call comp_report_$ctlstr (2, comp_error_table_$unknown_keyword, 1279 addr (ctl.info), ctl_line, "The hit type key ^a is unknown.", 1280 hittypechar); 1281 hittype (1): /* U = UPPER case permute */ 1282 hittype (2): /* L = lower case permute */ 1283 hittype (3): /* I = initial cap permute */ 1284 hittype (4): /* A = as-is permute */ 1285 hittype (5): /* N = no-reference, explicitly omitted reference */ 1286 hittype (6): /* S = "see" reference */ 1287 hittype (7): /* * = like K with flagged reference */ 1288 hittype (8): /* K = keys supplied */ 1289 call comp_util_$add_text (shared.blkptr, "0"b, "0"b, "0"b, oflo, 1290 addr (hit_line)); 1291 1292 if oflo & ^text.parms.keep & text.hdr.colno >= 0 1293 then call comp_break_ (need_break, -2); 1294 end; 1295 1296 goto end_ctl_loop; 1297 1298 /* HEADER-LINE CONTROLS */ 1299 ctl_ (95): /* ".hl" = header-line */ 1300 ctl_ (96): /* ".hla" = header-line-all */ 1301 ctl_ (97): /* ".hle" = header-line-even */ 1302 ctl_ (98): /* ".hlf" = header-line-footnote */ 1303 ctl_ (99): /* ".hlo" = header-line-odd */ 1304 call comp_hft_ctls_ (ctl_index); 1305 goto end_ctl_loop; 1306 1307 ctl_ (100): /* ".hrul" - horizontal-rule */ 1308 goto end_ctl_loop; 1309 1310 /* HORIZONTAL TAB CONTROLS */ 1311 ctl_ (101): /* ".htd" = htab-define */ 1312 ctl_ (102): /* ".htf" = htab-off */ 1313 ctl_ (103): /* ".htn" = htab-on */ 1314 call comp_format_ctls_ (ctl_index); 1315 goto end_ctl_loop; 1316 1317 ctl_ (104): /* ".hy" = default hyphenation mode */ 1318 shared.hyph_mode = option.hyph_opt; 1319 shared.hyph_size = option.hyph_size; 1320 goto end_ctl_loop; 1321 1322 ctl_ (105): /* ".hyf" = hyphenate-off */ 1323 shared.hyph_mode = "0"b; 1324 goto end_ctl_loop; 1325 1326 ctl_ (106): /* ".hyn" = hyphenate-on */ 1327 shared.hyph_mode = "1"b; 1328 call comp_util_$set_bin (shared.hyph_size, "hyphenation size", 1329 option.hyph_size, 0, -1, unscaled, 1); 1330 goto end_ctl_loop; 1331 1332 ctl_ (107): /* ".hyw" = hyphenate-word */ 1333 dcl hwrd char (256) var;/* need the hwrd data? */ 1334 if shared.hwrd_data_ptr = null 1335 then 1336 do; 1337 shared.hwrd_data_ptr = 1338 allocate (const.local_area_ptr, size (hwrd_data)); 1339 hwrd_data.count = 0; 1340 hwrd_data.word (1) = ""; 1341 end; /**/ 1342 /* delete all words? */ 1343 if ctl.index > length (ctl_line) 1344 then 1345 do; 1346 hwrd_data.count = 0; 1347 goto end_ctl_loop; 1348 end; 1349 1350 do while (ctl.index <= length (ctl_line)); 1351 hwrd = before (substr (ctl_line, ctl.index), " "); 1352 j = verify (substr (ctl_line, ctl.index + length (hwrd)), " "); 1353 if j > 0 1354 then ctl.index = ctl.index + length (hwrd) - 1 + j; 1355 else ctl.index = length (ctl_line) + 1; 1356 1357 if hwrd ^= "" 1358 then call process_hwrd; 1359 end; 1360 1361 goto end_ctl_loop; 1362 1363 /* INSERTION CONTROLS */ 1364 ctl_ (108): /* ".ibl" = insert-block */ 1365 goto end_ctl_loop; 1366 1367 ctl_ (109): /* ".if" = conditional-if *** */ 1368 if_ctl: /* if_ctl_index */ 1369 found_clause = "0"b; /**/ 1370 /* advance the nest */ 1371 shared.if_nest.ndx = shared.if_nest.ndx + 1; 1372 1373 if ctl.index > length (ctl_line) /* if no varfld, assume true */ 1374 then shared.if_nest (shared.if_nest.ndx).sw = THEN; 1375 1376 else /* process the varfld */ 1377 do; 1378 do while (index (ctl_line, shared.sym_delim) ^= 0); 1379 call comp_use_ref_ (ctl_line, current_parms.art, "0"b, 1380 addr (ctl.info)); 1381 end; /**/ 1382 /* must be logical */ 1383 call comp_expr_eval_ (ctl_line, ctl.index, addr (ctl.info), LOG, 0, 1384 slog, 0, "", ""b, ercd); 1385 1386 if ercd ^= 0 /* true if there was an error */ 1387 then shared.if_nest (shared.if_nest.ndx).sw = THEN; 1388 1389 else if slog /* THEN if TRUE, otherwise ELSE */ 1390 then shared.if_nest (shared.if_nest.ndx).sw = THEN; 1391 else shared.if_nest (shared.if_nest.ndx).sw = ELSE; 1392 end; 1393 1394 if shared.bug_mode 1395 then call ioa_$rsnnl ("ifnest=^d if_sw=^[ELSE^;OFF^;THEN^]", exit_str, 0, 1396 shared.if_nest.ndx, shared.if_nest (shared.if_nest.ndx).sw + 2) 1397 ; 1398 1399 goto end_ctl_loop; 1400 1401 /* INSERTION CONTROLS (CONT) */ 1402 ctl_ (110): /* ".ifi" = insert-file */ 1403 /* ifi_ctl_index */ 1404 call comp_insert_ctls_ (ctl_index); 1405 goto end_ctl_loop; 1406 1407 ctl_ (111): /* ".ift" = insert-footnotes */ 1408 /* ift_ctl_index */ 1409 if shared.ftn_reset ^= "hold" /* not holding notes? */ 1410 then goto end_ctl_loop; /* forget it */ 1411 1412 if shared.blkptr ^= null () /* clean up current block */ 1413 then call comp_break_ (block_break, 0); 1414 1415 if ^page.hdr.headed /* head page if needed */ 1416 then call comp_head_page_ (head_used); 1417 /* hang notes on last block */ 1418 shared.colptr = page.column_ptr (page.hdr.col_count); 1419 shared.blkptr = col.blkptr (col.hdr.blkct); 1420 line_area_ptr = text.line_area.cur; 1421 txtlinptr = line_area.linptr (line_area.ndx); 1422 1423 ctl.default = "1"b; /* use this switch to force notes */ 1424 /* pick up all remaining notes */ 1425 do ftndx = 1 to ftnblk_data.highndx; 1426 ftnblkptr = ftnblk_data.blkptr (ftndx); 1427 1428 if ftnblkptr ^= null 1429 then 1430 do; /* mark note as unreffed */ 1431 ftnblk.hdr.unref = "1"b; 1432 ftnblk.hdr.refer = 0; 1433 col0.hdr.ftn.ct = col0.hdr.ftn.ct + 1; 1434 /* if first footnote, */ 1435 if col0.hdr.ftn.ct = 1 /* count space for the header */ 1436 then col0.hdr.ftn.usd = ftnhdr.hdr.used + 12000; 1437 col0.hdr.ftn.usd = /* extra space for separator */ 1438 col0.hdr.ftn.usd + ftnblk.hdr.used + 12000; 1439 col0.hdr.ftn.blkndx (col0.hdr.ftn.ct) = ftndx; 1440 /* count it in the page header */ 1441 text.hdr.ftn.ct = text.hdr.ftn.ct + 1; 1442 text.hdr.ftn.usd = text.hdr.ftn.usd + ftnblk.hdr.used + 12000; 1443 text.hdr.ftn.blkndx (text.hdr.ftn.ct) = ftndx; 1444 /* and in the first line */ 1445 txtlin.ftn.ct = txtlin.ftn.ct + 1; 1446 txtlin.ftn.used = txtlin.ftn.used + ftnblk.hdr.used + 12000; 1447 end; 1448 end; 1449 1450 call comp_break_ (page_break, 0); 1451 1452 if shared.end_output 1453 then goto end_ctl_loop; 1454 1455 ctl.default = "0"b; /* reset the switch */ 1456 goto end_ctl_loop; 1457 1458 ctl_ (112): /* ".igr" = insert-graphic */ 1459 call comp_insert_ctls_ (ctl_index); 1460 goto end_ctl_loop; 1461 1462 /* INDENTATION CONTROLS */ 1463 ctl_ (113): /* ".in" = insert-left */ 1464 ctl_ (114): /* ".inb" = indent-both */ 1465 ctl_ (115): /* ".inl" = indent-left */ 1466 ctl_ (116): /* ".inr" = indent-right */ 1467 call comp_format_ctls_ (ctl_index); 1468 goto end_ctl_loop; 1469 1470 ctl_ (117): /* ".indctl" = indent-controls */ 1471 if ctl.index <= length (ctl_line) 1472 then 1473 do; 1474 if shared.indctl.ndx = 35 1475 then i, shared.indctl.ndx = 0; 1476 else i, shared.indctl.ndx = shared.indctl.ndx + 1; 1477 1478 if substr (ctl_line, ctl.index) = "on" 1479 then shared.indctl.stk (i) = "1"b; 1480 else shared.indctl.stk (i) = "0"b; 1481 end; 1482 1483 else shared.indctl.ndx = shared.indctl.ndx - 1; 1484 if shared.indctl.ndx < 0 1485 then shared.indctl.ndx = 35; 1486 1487 goto end_ctl_loop; 1488 1489 ctl_ (118): /* ".indx" = insert_index */ 1490 call comp_insert_ctls_ (ctl_index); 1491 goto end_ctl_loop; 1492 1493 ctl_ (119): /* ".la" = line label */ 1494 call set_label; 1495 goto end_ctl_loop; 1496 1497 ctl_ (120): /* ".ls" = line-space */ 1498 call comp_format_ctls_ (ctl_index); 1499 goto end_ctl_loop; 1500 1501 /* PAGE DEFINITION CONTROLS */ 1502 ctl_ (121): /* ".pd" = page-define-all */ 1503 ctl_ (122): /* ".pdc" = page-define-column */ 1504 ctl_ (123): /* ".pdl" = page-define-length */ 1505 ctl_ (124): /* ".pdw" = page-define-width */ 1506 call comp_format_ctls_ (ctl_index); 1507 goto end_ctl_loop; 1508 1509 ctl_ (125): /* ".pfl" = page-footer-line */ 1510 ctl_ (126): /* ".phl" = page-header-line */ 1511 call comp_hft_ctls_ (ctl_index); 1512 goto end_ctl_loop; 1513 1514 ctl_ (127): /* ".pml" = page-margin-left */ 1515 if ctl.index > length (ctl_line) 1516 then 1517 do; 1518 call comp_util_$set_bin (page_parms.lmarg.odd, 1519 "page left margin odd", 0, 0, page_parms.measure, hscales, 1520 comp_dvt.min_WS); 1521 call comp_util_$set_bin (page_parms.lmarg.even, 1522 "page left margin even", 0, 0, page_parms.measure, hscales, 1523 comp_dvt.min_WS); 1524 end; 1525 1526 else 1527 do; 1528 if index (substr (ctl_line, ctl.index), ",") ^= 1 1529 then call comp_util_$set_bin (page_parms.lmarg.odd, 1530 "page left margin odd", 1531 comp_read_$number (ctl_line, hscales, ctl.index, ctl.index, 1532 addr (ctl.info), 0), 0, page_parms.measure, hscales, 1533 comp_dvt.min_WS); 1534 1535 if index (substr (ctl_line, ctl.index), ",") = 1 1536 then ctl.index = ctl.index + 1; 1537 1538 if ctl.index <= length (ctl_line) 1539 then call comp_util_$set_bin (page_parms.lmarg.even, 1540 "page left margin even", 1541 comp_read_$number (ctl_line, hscales, ctl.index, ctl.index, 1542 addr (ctl.info), 0), 0, page_parms.measure, hscales, 1543 comp_dvt.min_WS); 1544 end; 1545 goto end_ctl_loop; 1546 1547 ctl_ (128): /* OBSOLETE */ 1548 ctl_ (129): /* ".rac" = runaround-centered */ 1549 goto end_ctl_loop; /* NOT DOCUMENTED OR IMPLEMENTED */ 1550 1551 ctl_ (130): /* ".ral" = runaround-left */ 1552 goto end_ctl_loop; /* NOT DOCUMENTED OR IMPLEMENTED */ 1553 1554 ctl_ (131): /* ".rar" = runaround-right */ 1555 goto end_ctl_loop; /* NOT DOCUMENTED OR IMPLEMENTED */ 1556 1557 ctl_ (132): /* ".rd" = read from terminal */ 1558 call iox_$get_line (iox_$user_input, addr (ty_buf), 200, rdct, ercd); 1559 1560 if ercd ^= 0 1561 then 1562 do; 1563 call comp_report_ (4, ercd, "Attempting .rd control", 1564 addr (ctl.info), ctl_line); 1565 signal comp_abort; 1566 end; 1567 1568 ctl_line = substr (ty_buf, 1, rdct - 1); 1569 1570 if length (ctl_line) = 0 /* treat as .spb */ 1571 then 1572 do; 1573 ctl.index = 1; 1574 goto spb_ctl; 1575 end; 1576 1577 if substr (ctl_line, 1, 1) = "." 1578 then again = "1"b; /* set reprocess input line flag */ 1579 else text_added = "1"b; /* or text flag */ 1580 goto end_ctl_loop; 1581 1582 ctl_ (133): /* ".rt" = return */ 1583 ctl_line = ""; 1584 shared.end_input = "1"b; 1585 return; 1586 1587 ctl_ (134): /* ".sp" = space */ 1588 ctl_ (135): /* ".spb" = space-break */ 1589 spb_ctl: 1590 if shared.blkptr ^= null /* if there is an active block */ 1591 then 1592 do; 1593 if text.input_line ^= "" /* clean up leftovers */ 1594 then call comp_break_ (format_break, 0); 1595 /* insert pending header */ 1596 /**** if text.parms.hdrptr ^= null () & ^shared.inserting_hfc 1597*/**** then call comp_title_block_ (text.parms.hdrptr);*/ 1598 /* insert pending caption */ 1599 if text.parms.ftrptr ^= null () & ^shared.inserting_hfc 1600 then call comp_title_block_ (text.parms.ftrptr); 1601 1602 if ^(text.parms.keep /* if not... a keep */ 1603 | text.parms.art /* or art */ 1604 | text.parms.title_mode /* or a */ 1605 | text.hdr.picture /* or a picture */ 1606 | shared.ftn_mode /* or a footnote */ 1607 | shared.table_mode) /* or table mode */ 1608 then /* then a block break */ 1609 break_type = block_break;/**/ 1610 /* otherwise, a format break */ 1611 else break_type = format_break; 1612 end; 1613 1614 else break_type = block_break; /* otherwise, a block break */ 1615 1616 goto join_sp; 1617 1618 ctl_ (136): /* ".spd" = space-to-depth */ 1619 break_type = block_break; 1620 head_used = 0; 1621 1622 if shared.blkptr ^= null /* space in a loose block? */ 1623 then if text.hdr.colno < 0 1624 then break_type = format_break; 1625 else ; 1626 1627 else if ^option.galley_opt /* head the page? */ 1628 then if ^page.hdr.headed 1629 then call comp_head_page_ (head_used); 1630 else head_used = col0.blkptr (1) -> text.hdr.used; 1631 1632 trim_flag = "1"b; /* space is not trimable */ 1633 1634 if ctl.index > length (ctl_line) /* default is +1 */ 1635 then 1636 do; 1637 call comp_space_ (12000, shared.blkptr, "1"b, "1"b, "1"b, "0"b); 1638 call comp_break_ (break_type, -1); 1639 end; /**/ 1640 /* cant back up */ 1641 else if index (substr (ctl_line, ctl.index), "-") = 1 1642 then 1643 do; 1644 call comp_report_ (2, 0, "Negative page depth increment.", 1645 addr (ctl.info), ctl_line); 1646 goto end_ctl_loop; 1647 end; /**/ 1648 /* addon value? */ 1649 else if index (substr (ctl_line, ctl.index), "+") = 1 1650 then goto join_sp_1; 1651 1652 else 1653 do; 1654 blnkct = 1655 -page.parms.init_page_depth - 12000 - head_used 1656 + 1657 comp_read_$number (ctl_line, vscales, ctl.index, ctl.index, 1658 addr (ctl.info), 0); 1659 1660 if shared.blkptr ^= null () 1661 then if shared.blkptr = shared.ophdrptr 1662 | shared.blkptr = shared.ephdrptr 1663 | shared.blkptr = shared.blank_header_ptr 1664 then blnkct = blnkct - text.hdr.used - page.parms.margin.top; 1665 else blnkct = blnkct - max (col0.hdr.used, page.hdr.used); 1666 else blnkct = blnkct - max (col0.hdr.used, page.hdr.used); 1667 1668 if blnkct = 0 /* if we're already there */ 1669 then goto end_ctl_loop; 1670 1671 if blnkct < 0 /* cant back up */ 1672 then 1673 do; 1674 call comp_report_ (2, 0, "Given depth less than current depth.", 1675 addr (ctl.info), ctl_line); 1676 goto end_ctl_loop; 1677 end; 1678 1679 goto join_sp_2; /* go do it */ 1680 end; 1681 1682 goto end_ctl_loop; 1683 1684 ctl_ (137): /* ".spf" = space-format */ 1685 break_type = format_break; /* otherwise, format break */ 1686 1687 join_sp: 1688 if shared.blkptr ^= null () /* if there is a block */ 1689 then 1690 do; 1691 if text.input_line ^= "" /* clean up leftovers */ 1692 then call comp_break_ (format_break, 0); 1693 trim_flag = text.hdr.picture | trim_flag; 1694 end; 1695 else trim_flag = "0"b; /* set trim flag */ 1696 trim_flag = current_parms.cbar.del | trim_flag; 1697 1698 if ctl.index > length (ctl_line) 1699 then blnkct = 12000; /* default is one */ 1700 else 1701 join_sp_1: 1702 blnkct = 1703 comp_read_$number (ctl_line, vscales, ctl.index, ctl.index, 1704 addr (ctl.info), 0); 1705 1706 join_sp_2: 1707 if blnkct ^= 0 /* put in any needed space */ 1708 then 1709 do; 1710 call comp_space_ (blnkct, shared.blkptr, "1"b, trim_flag, "1"b, "0"b) 1711 ; 1712 if break_type = block_break 1713 then 1714 do; 1715 if text.input.oflo 1716 then call comp_break_ (need_break, -2); 1717 call comp_break_ (block_break, 0); 1718 end; 1719 end; 1720 1721 goto end_ctl_loop; 1722 1723 ctl_ (138): /* ".spt" = space-total */ 1724 /* head the page? */ 1725 if ^(option.galley_opt | page.hdr.headed) 1726 then call comp_head_page_ (0); 1727 1728 trim_flag = "0"b; /* space is trimable */ 1729 1730 if ctl.index <= length (ctl_line) 1731 then if substr (ctl_line, ctl.index, 1) = "-" 1732 then /* cant back up */ 1733 do; 1734 call comp_report_ (2, 0, "Negative total space not allowed.", 1735 addr (ctl.info), ctl_line); 1736 goto end_ctl_loop; 1737 end; 1738 1739 if shared.blkptr ^= null 1740 then if text.input_line ^= "" 1741 then call comp_break_ (format_break, 0); 1742 /**** else /* insert pending header */ 1743 /**** if text.parms.hdrptr ^= null () & ^shared.inserting_hfc 1744*/**** then call comp_title_block_ (text.parms.hdrptr);*/ 1745 /* additional space needed */ 1746 if ctl.index > length (ctl_line) /* default is 1 */ 1747 then blnkct = 12000; 1748 1749 else blnkct = 1750 comp_read_$number (ctl_line, vscales, ctl.index, ctl.index, 1751 addr (ctl.info), 0); 1752 1753 if shared.blkptr ^= null 1754 then 1755 do; 1756 if text.parms.hdrptr ^= null 1757 then 1758 do; 1759 if shared.bug_mode 1760 then call ioa_ ("^5x(need=^f have=^f)", show (blnkct, 12000), 1761 show (text.parms.hdrptr -> text.hdr.trl_ws, 12000)); 1762 1763 blnkct = blnkct - text.parms.hdrptr -> text.hdr.trl_ws; 1764 end; 1765 1766 else 1767 do; 1768 if shared.bug_mode 1769 then call ioa_ ("^5x(need=^f have=^f)", show (blnkct, 12000), 1770 show (text.hdr.trl_ws, 12000)); 1771 1772 blnkct = blnkct - text.hdr.trl_ws; 1773 end; 1774 end; 1775 1776 else 1777 do; 1778 if shared.bug_mode 1779 then call ioa_ ("^5x(need=^f have=^f)", show (blnkct, 12000), 1780 show (col.hdr.pspc, 12000)); 1781 1782 blnkct = blnkct - col.hdr.pspc; 1783 end; 1784 1785 if blnkct <= 0 /* if we're already there */ 1786 then goto end_ctl_loop; 1787 1788 if shared.blkptr ^= null /* check header addition */ 1789 then 1790 do; 1791 if text.parms.hdrptr ^= null 1792 then 1793 do; 1794 call comp_space_ (blnkct, text.parms.hdrptr, "1"b, "1"b, "1"b, 1795 "0"b); 1796 goto end_ctl_loop; 1797 end; 1798 1799 if shared.blkptr ^= null () /* finish block */ 1800 then if text.input_line ^= "" 1801 then call comp_break_ (format_break, 0); 1802 1803 if (text.parms.title_mode | text.parms.keep | text.parms.art) 1804 then break_type = format_break; 1805 else break_type = block_break; 1806 end; 1807 1808 else break_type = block_break; 1809 goto join_sp_2; /* go do it */ 1810 1811 ctl_ (139): /* ".sr" = set-reference */ 1812 ctl_ (140): /* ".src" = set-reference-counter */ 1813 src_ctl: 1814 if ctl.index > length (ctl_line) /* if nothing there */ 1815 then 1816 do; 1817 call comp_report_ (2, 0, "Missing variable name.", addr (ctl.info), 1818 ctl_line); 1819 goto end_ctl_loop; 1820 end; 1821 1822 given_symbol = /* read the given symbol */ 1823 comp_read_$name (ctl_line, ctl.index, ctl.index, addr (ctl.info)); 1824 1825 if given_symbol = "" /* invalid name? */ 1826 then goto end_ctl_loop; /**/ 1827 /* reserved name? */ 1828 if index (given_symbol, "Arg") = 1 & given_symbol ^= "ArgCount" 1829 then if verify (rtrim (substr (given_symbol, 4)), "0123456789") = 0 1830 then 1831 do; 1832 resrvd_nm: 1833 call comp_report_$ctlstr (2, 0, addr (ctl.info), ctl_line, 1834 "^a is a reserved name.", given_symbol); 1835 goto end_ctl_loop; 1836 end; 1837 1838 if given_symbol = "ArgCount" /* this one, too */ 1839 then goto resrvd_nm; /**/ 1840 /* is a value given? */ 1841 if ctl.index <= length (ctl_line) 1842 then 1843 do; /* substitution needed? */ 1844 if index (ctl_line, shared.sym_delim) ^= 0 1845 then call comp_use_ref_ (ctl_line, "0"b, "0"b, addr (ctl.info)); 1846 1847 call comp_update_symbol_ ("0"b, "0"b, "0"b, given_symbol, 1848 substr (ctl_line, ctl.index)); 1849 end; /**/ 1850 /* if no value, use "" to define it */ 1851 else call comp_update_symbol_ ("0"b, "0"b, "1"b, given_symbol, ""); 1852 1853 goto end_ctl_loop; 1854 1855 ctl_ (141): /* ".srm" = set-reference-mode */ 1856 if ctl.index > length (ctl_line) 1857 then /* no variables */ 1858 do; 1859 call comp_report_ (2, 0, "No display mode keyword given.", 1860 addr (ctl.info), ctl_line); 1861 goto end_ctl_loop; 1862 end; 1863 1864 mode_key = /* read the keyword */ 1865 comp_read_$name (ctl_line, ctl.index, ctl.index, addr (ctl.info)); 1866 /* and set index value */ 1867 modendx = index (mode_string, mode_key); 1868 1869 if modendx = 0 /* key not found */ 1870 then 1871 do; 1872 call comp_report_ (2, 0, "Unknown display mode keyword.", 1873 addr (ctl.info), ctl_line); 1874 goto end_ctl_loop; 1875 end; 1876 1877 modendx = divide (modendx, 2, 17);/* compute true index value */ 1878 1879 if ctl.index > length (ctl_line) /* if nothing follows */ 1880 then 1881 do; 1882 call comp_report_ (2, 0, "No variable list given.", addr (ctl.info), 1883 ctl_line); 1884 goto end_ctl_loop; 1885 end; 1886 1887 else 1888 do /* scan the given variable list */ 1889 while (ctl.index <= length (ctl_line)); 1890 given_symbol = /* read a name */ 1891 comp_read_$name (ctl_line, ctl.index, ctl.index, 1892 addr (ctl.info)); 1893 1894 if given_symbol = "PageNo" /* PageNo not allowed */ 1895 then 1896 do; 1897 call comp_report_ (2, 0, 1898 "Page number display mode may not be changed " 1899 || "with this control.", addr (ctl.info), ctl_line); 1900 end; 1901 1902 else 1903 do; 1904 call comp_util_$search_tree (given_symbol, CREATE); 1905 tree_var_ptr = tree.var_ptr (tree.areandx); 1906 tree_var.mode (tree.entryndx) = modendx; 1907 end; 1908 end; 1909 1910 goto end_ctl_loop; 1911 1912 ctl_ (142): /* ".srv" = set-reference-variable */ 1913 goto src_ctl; 1914 1915 ctl_ (143): /* ".stl" = split_title_line */ 1916 call comp_hft_ctls_ (ctl_index); 1917 goto end_ctl_loop; 1918 1919 /* TABLE CONTROLS */ 1920 ctl_ (144): /* ".tab" = table-define */ 1921 ctl_ (145): /* ".tac" = table-column */ 1922 ctl_ (146): /* ".taf" = table-off */ 1923 ctl_ (147): /* ".tan" = table-on */ 1924 /* tac_ctl_index, taf_ctl_index */ 1925 tac_ctl: 1926 call comp_tbl_ctls_ (ctl_index); 1927 goto end_ctl_loop; 1928 1929 /* TITLE-BLOCK CONTROLS */ 1930 ctl_ (148): /* ".tb" = title-block */ 1931 ctl_ (149): /* ".tbb" = title-block-begin */ 1932 ctl_ (150): /* ".tbe" = title-block-end */ 1933 call comp_hft_ctls_ (ctl_index); 1934 goto end_ctl_loop; 1935 1936 ctl_ (151): /* ".tcl" = text-caption-line */ 1937 call comp_hft_ctls_ (ctl_index); 1938 goto end_ctl_loop; 1939 1940 ctl_ (152): /* ".then" = conditional-then */ 1941 if shared.if_nest.ndx = 0 /* if no active nest */ 1942 then 1943 do; 1944 call comp_report_$ctlstr (2, comp_error_table_$usage_error, 1945 addr (ctl.info), ctl_line, 1946 "Not in an active conditional execution group."); 1947 goto end_ctl_loop; 1948 end; 1949 1950 found_clause = "1"b; /**/ 1951 /* execute the then? */ 1952 if shared.if_nest (shared.if_nest.ndx).sw = THEN 1953 then 1954 do; 1955 if shared.indctl.stk (shared.indctl.ndx) 1956 then ctl_line = ltrim (after (ctl_line, ".then")); 1957 else ctl_line = after (ctl_line, ".then "); 1958 1959 if index (ctl_line, ".") = 1 1960 then again = "1"b; 1961 else if ctl_line ^= "" 1962 then text_added = "1"b; 1963 end; 1964 1965 else /* search for if/else/elseif/endif */ 1966 do; /* until found or end_input */ 1967 this_nest = shared.if_nest.ndx; 1968 if index (ltrim (after (ctl_line, "then")), ".if ") = 1 1969 then 1970 do; /* count another nest */ 1971 shared.if_nest.ndx = shared.if_nest.ndx + 1; 1972 if shared.bug_mode 1973 then call ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 1974 ctl.lineno, ctl_line); 1975 end; 1976 1977 do while (^shared.end_input); /**/ 1978 /* read next line */ 1979 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 1980 ctl.info = call_box.info; 1981 1982 if index (ltrim (ctl_line), ".if ") = 1 1983 then 1984 do; /* count another nest */ 1985 shared.if_nest.ndx = shared.if_nest.ndx + 1; 1986 if shared.bug_mode 1987 then call ioa_$rsnnl ("ifnest=^d if_sw=^d", exit_str, 0, 1988 shared.if_nest.ndx, 1989 shared.if_nest (shared.if_nest.ndx).sw); 1990 end; 1991 1992 else if index (ltrim (ctl_line), ".else") = 1 1993 | index (ltrim (ctl_line), ".endif") = 1 1994 then 1995 do; 1996 if shared.bug_mode 1997 then call ioa_ ("^5xifnest=^d (^d ""^a"")", shared.if_nest.ndx, 1998 ctl.lineno, ctl_line); 1999 2000 if index (ltrim (ctl_line), ".endif") = 1 2001 then 2002 do; 2003 if shared.if_nest.ndx > this_nest 2004 then shared.if_nest.ndx = shared.if_nest.ndx - 1; 2005 2006 else 2007 do; 2008 again = "1"b; /* set the control flag */ 2009 goto end_ctl_loop; 2010 end; 2011 end; 2012 2013 else if index (ltrim (ctl_line), ".else") = 1 2014 then if shared.if_nest.ndx = this_nest 2015 then 2016 do; 2017 again = "1"b; /* set the control flag */ 2018 goto end_ctl_loop; 2019 end; 2020 end; 2021 end; 2022 end; 2023 goto end_ctl_loop; 2024 2025 ctl_ (153): /* ".thl" = text-header-line */ 2026 thl_ctl: 2027 call comp_hft_ctls_ (ctl_index); 2028 goto end_ctl_loop; 2029 2030 /* TITLE-LINE CONTROLS */ 2031 ctl_ (154): /* ".tlc" = title-line-caption */ 2032 ctl_ (155): /* ".tlh" = title-line-header */ 2033 if shared.blkptr ^= null () 2034 then if text.blktype = "th" | text.blktype = "tf" 2035 then 2036 do; 2037 call comp_report_ (2, 0, 2038 "Already processing a text header or caption.", 2039 addr (ctl.info), ctl_line); 2040 goto end_ctl_loop; 2041 end; 2042 2043 call comp_hft_ctls_ (ctl_index); 2044 2045 goto end_ctl_loop; 2046 2047 ctl_ (156): /* ".tre" = translate-exceptions */ 2048 goto end_ctl_loop; 2049 2050 ctl_ (157): /* ".trf" = translate-formatted */ 2051 ctl_ (158): /* ".trn" = translate */ 2052 dcl tr_in char (1); /* input char */ 2053 dcl tr_out char (1); /* output char */ 2054 2055 if ctl.index > length (ctl_line) /* resetting all? */ 2056 then 2057 do; 2058 shared.trans.in, shared.trans.out = " "; 2059 goto end_ctl_loop; 2060 end; 2061 2062 do ctl.index = ctl.index to length (ctl_line) by 2; 2063 tr_in = substr (ctl_line, ctl.index, 1); 2064 /* cant trf the sym delim */ 2065 if tr_in = shared.sym_delim 2066 then call comp_report_ (2, 0, "Cannot translate symbol-delimiter.", 2067 addr (ctl.info), ctl_line); 2068 /* or the ttl delim */ 2069 else if tr_in = shared.ttl_delim 2070 then call comp_report_ (2, 0, "Cannot translate title-delimiter.", 2071 addr (ctl.info), ctl_line); 2072 2073 else 2074 do; 2075 if ctl.index < length (ctl_line) 2076 then if substr (ctl_line, ctl.index + 1, 1) ^= " " 2077 then tr_out = substr (ctl_line, ctl.index + 1, 1); 2078 else tr_out = EN; 2079 else tr_out = EN; 2080 2081 i = index (shared.trans.in, tr_in); 2082 /* look for it */ 2083 2084 if i > 0 /* resetting or changing */ 2085 then 2086 do; 2087 if tr_in = tr_out /* resetting */ 2088 then 2089 do; 2090 shared.trans.in = 2091 substr (shared.trans.in, 1, i - 1) 2092 || substr (shared.trans.in, i + 1); 2093 shared.trans.out = 2094 substr (shared.trans.out, 1, i - 1) 2095 || substr (shared.trans.out, i + 1); 2096 end; /* changing */ 2097 else substr (shared.trans.out, i, 1) = tr_out; 2098 end; 2099 2100 else 2101 do; /* adding */ 2102 shared.trans.in = shared.trans.in || tr_in; 2103 shared.trans.out = shared.trans.out || tr_out; 2104 end; 2105 end; 2106 end; 2107 2108 goto end_ctl_loop; 2109 2110 ctl_ (159): /* ".ttl" = text-title-line */ 2111 goto thl_ctl; 2112 2113 ctl_ (160): /* ".ts" = test */ 2114 if ctl.index <= length (ctl_line) /* process symbol refs */ 2115 then if index (ctl_line, shared.sym_delim) ^= 0 2116 then call comp_use_ref_ (ctl_line, current_parms.art, "0"b, 2117 addr (ctl.info)); 2118 2119 slog = "0"b; 2120 if ctl.index <= length (ctl_line) 2121 then 2122 do; 2123 call comp_expr_eval_ (ctl_line, ctl.index, addr (ctl.info), LOG, 0, 2124 slog, 0, "", ""b, ercd); 2125 if ercd ^= 0 /* was there an error? */ 2126 then goto end_ctl_loop; /* same as true */ 2127 2128 else if ^slog /* skip next line if FALSE */ 2129 then 2130 do; 2131 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 2132 ctl.info = call_box.info; 2133 end; 2134 end; /**/ 2135 /* skip next line */ 2136 else 2137 do; 2138 call comp_read_$line (call_box_ptr, ctl_line, "1"b); 2139 ctl.info = call_box.info; 2140 end; 2141 2142 if shared.bug_mode 2143 then call ioa_$rsnnl ("^[T^;F^]", exit_str, 0, slog); 2144 2145 goto end_ctl_loop; 2146 2147 ctl_ (161): /* ".ty" = write on error_output */ 2148 if ctl.index > length (ctl_line) 2149 then call iox_$put_chars (iox_$error_output, addr (NL), 1, ercd); 2150 2151 else 2152 do; 2153 call comp_use_ref_ (ctl_line, "0"b, "0"b, addr (ctl.info)); 2154 ty_buf = translate (substr (ctl_line, 5), PAD, "¿") || NL; 2155 call iox_$put_chars (iox_$error_output, addr (ty_buf), 2156 length (ctl_line) - 3, ercd); 2157 if ercd ^= 0 2158 then 2159 do; 2160 call com_err_ (ercd, "compose", 2161 ".ty attempting to write to error_output."); 2162 signal comp_abort; 2163 return; 2164 end; 2165 end; 2166 goto end_ctl_loop; 2167 2168 ctl_ (162): /* ".un" = undent */ 2169 ctl_ (163): /* ".unb" = undent-both */ 2170 ctl_ (164): /* ".unh" = undent-hanging */ 2171 ctl_ (165): /* ".unl" = undent-left */ 2172 ctl_ (166): /* ".unn" = undent-nobreak - OBSOLETED BY .unh */ 2173 ctl_ (167): /* ".unr" = undent-right */ 2174 call comp_format_ctls_ (ctl_index); 2175 goto end_ctl_loop; 2176 2177 ctl_ (168): /* ".unson" = underscore-on */ 2178 ctl_line = unstart_signal; 2179 ctl.unstrt, text_added, ctl.DVctl = "1"b; 2180 2181 goto end_ctl_loop; 2182 2183 ctl_ (169): /* ".unsoff" = underscore-off */ 2184 ctl_line = unstop_signal; 2185 ctl.unstop, text_added, ctl.DVctl = "1"b; 2186 2187 goto end_ctl_loop; 2188 2189 ctl_ (170): /* ".ur" = use reference */ 2190 if ctl.index > length (ctl_line) /* if nothing there */ 2191 then goto return_; 2192 2193 call comp_use_ref_ (ctl_line, current_parms.art, "0"b, addr (ctl.info)); 2194 ctl_line = after (ctl_line, ".ur "); 2195 ctl.index = 1; 2196 2197 if ctl_line = "" /* convert null lines */ 2198 then ctl_line = ".spb"; 2199 2200 if shared.table_mode /* table mode? */ 2201 then 2202 do; 2203 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 2204 if tblfmt.context /* context mode? */ 2205 & index (ctl_line, ".") = 1 2206 & search (substr (ctl_line, 2), "0123456789") = 1 2207 then 2208 do; 2209 if index (ctl_line, "*") ^= 0 & page.hdr.col_index >= 0 2210 then call comp_util_$escape (ctl_line, addr (ctl.info)); 2211 text_added = "1"b; 2212 goto end_ctl_loop; 2213 end; 2214 end; 2215 2216 if index (ctl_line, ".") = 1 /* if nested controls */ 2217 & ctl_line ^= "." & index (ctl_line, "...") ^= 1 2218 then again = "1"b; /* set flag to reprocess line */ 2219 else 2220 do; 2221 text_added = "1"b; 2222 if index (ctl_line, "*") ^= 0 & page.hdr.col_index >= 0 2223 then call comp_util_$escape (ctl_line, addr (ctl.info)); 2224 end; 2225 2226 goto end_ctl_loop; 2227 2228 ctl_ (171): /* ".vab" = vertical-align-bottom - NOT IMPLEMENTED */ 2229 goto end_ctl_loop; 2230 2231 ctl_ (172): /* ".vac" = vertical-align-center - NOT IMPLEMENTED */ 2232 goto end_ctl_loop; 2233 2234 ctl_ (173): /* ".vaj" = vertical-align-justify - NOT IMPLEMENTED */ 2235 goto end_ctl_loop; 2236 2237 ctl_ (174): /* ".vat" = vertical-align-top - NOT IMPLEMENTED */ 2238 goto end_ctl_loop; 2239 2240 ctl_ (175): /* ".vm" = vertical-margin-all */ 2241 goto vmt_ctl; 2242 2243 ctl_ (176): /* ".vmb" = vertical-margin-bottom */ 2244 vmb_ctl: 2245 call comp_util_$set_bin (page_parms.margin.bottom, "bottom margin", 2246 48000, comp_dvt.vmb_min, 2247 page_parms.length - page_parms.margin.top 2248 - page_parms.margin.header - page_parms.margin.footer, vscales, 2249 comp_dvt.min_lead); 2250 page.parms.margin.bottom = page_parms.margin.bottom; 2251 2252 if ^option.galley_opt 2253 then call comp_util_$set_net_page ("1"b); 2254 2255 goto end_ctl_loop; 2256 2257 ctl_ (177): /* ".vmf" = vertical-margin-footer */ 2258 vmf_ctl: 2259 call comp_util_$set_bin (page_parms.margin.footer, "footer margin", 2260 24000, 0, 2261 page_parms.length - page_parms.margin.top 2262 - page_parms.margin.header - page_parms.margin.bottom, vscales, 2263 comp_dvt.min_lead); 2264 page.parms.margin.footer = page_parms.margin.footer; 2265 2266 if index (ctl_line, ".vmf") ^= 1 2267 then goto vmb_ctl; 2268 2269 if ^option.galley_opt 2270 then call comp_util_$set_net_page ("1"b); 2271 goto end_ctl_loop; 2272 2273 ctl_ (178): /* ".vmh" = vertical-margin-header */ 2274 vmh_ctl: 2275 call comp_util_$set_bin (page_parms.margin.header, "header margin", 2276 24000, 0, 2277 page_parms.length - page_parms.margin.top 2278 - page_parms.margin.footer - page_parms.margin.bottom, vscales, 2279 comp_dvt.min_lead); 2280 page.parms.margin.header = page_parms.margin.header; 2281 2282 if ^(page.hdr.headed | option.galley_opt) 2283 then 2284 do; 2285 page.hdr.hdspc = page.parms.margin.top; 2286 /* preset space to top margin */ 2287 2288 if page.hdr.frontpage /* if a headed odd page */ 2289 then if shared.ophdrptr ^= null () 2290 then if shared.ophdrptr -> hfcblk.hdr.count ^= 0 2291 then page.hdr.hdspc = 0; 2292 else ; 2293 else ; /**/ 2294 /* or a headed even page */ 2295 else if shared.ephdrptr ^= null () 2296 then if shared.ephdrptr -> hfcblk.hdr.count ^= 0 2297 then page.hdr.hdspc = 0; 2298 page.hdr.hdspc = page.hdr.hdspc + page.parms.margin.header; 2299 end; 2300 if index (ctl_line, ".vmh") ^= 1 2301 then goto vmf_ctl; 2302 2303 if ^option.galley_opt 2304 then call comp_util_$set_net_page ("1"b); 2305 goto end_ctl_loop; 2306 2307 ctl_ (179): /* ".vmt" = vertical-margin-top */ 2308 vmt_ctl: 2309 call comp_util_$set_bin (page_parms.margin.top, "top margin", 48000, 2310 comp_dvt.vmt_min, 2311 page_parms.length - page_parms.margin.header 2312 - page_parms.margin.footer - page_parms.margin.bottom, vscales, 2313 comp_dvt.min_lead); 2314 page.parms.margin.top = page_parms.margin.top; 2315 2316 if ^(page.hdr.headed | option.galley_opt) 2317 then 2318 do; 2319 page.hdr.hdspc = page_parms.margin.top; 2320 2321 if page.hdr.frontpage /* if a headed odd page */ 2322 then if shared.ophdrptr ^= null () 2323 then if shared.ophdrptr -> hfcblk.hdr.count ^= 0 2324 then page.hdr.hdspc = 0; 2325 else ; 2326 else ; /**/ 2327 /* or a headed even page */ 2328 else if shared.ephdrptr ^= null () 2329 then if shared.ephdrptr -> hfcblk.hdr.count ^= 0 2330 then page.hdr.hdspc = 0; 2331 2332 page.hdr.hdspc = page.hdr.hdspc + page.parms.margin.header; 2333 end; 2334 2335 if index (ctl_line, ".vmt") ^= 1 2336 then goto vmh_ctl; 2337 2338 if ^option.galley_opt 2339 then call comp_util_$set_net_page ("1"b); 2340 goto end_ctl_loop; 2341 2342 ctl_ (180): /* ".vrul" = vertical-rule */ 2343 goto end_ctl_loop; 2344 2345 ctl_ (181): /* ".wi" = widow */ 2346 goto wit_ctl; 2347 2348 ctl_ (182): /* ".wif" = widow-footnotes */ 2349 call comp_util_$set_bin (shared.widow_foot, "footnote widow", 1, 0, -1, 2350 unscaled, 1); 2351 goto end_ctl_loop; 2352 2353 ctl_ (183): /* ".wit" = widow-text */ 2354 wit_ctl: 2355 call comp_util_$set_bin (shared.widow_size, "text widow", 2, 0, -1, 2356 unscaled, 1); 2357 goto end_ctl_loop; 2358 2359 ctl_ (184): /* ".wrf" = write-formatted - NOT IMPLEMENTED */ 2360 goto end_ctl_loop; 2361 2362 ctl_ (185): /* ".wro" = write-order - NOT IMPLEMENTED */ 2363 goto end_ctl_loop; 2364 2365 ctl_ (186): /* ".wrt" = write-text */ 2366 dcl bits fixed; /* bitcount of aux write file */ 2367 2368 if ctl.index > length (ctl_line) 2369 then 2370 do; 2371 call comp_report_ (2, 0, "Path must be given.", addr (ctl.info), 2372 ctl_line); 2373 goto end_ctl_loop; 2374 end; 2375 2376 call aux_file (ctl_line, ctl.index, ercd); 2377 if ercd ^= 0 2378 then goto end_ctl_loop; 2379 2380 if ctl.index > length (ctl_line) 2381 then call iox_$put_chars (aux_file_data.entry (aux_file_index).iocb_ptr, 2382 addr (NL), 1, ercd); 2383 2384 else 2385 do; 2386 aux_wrt_buf = substr (ctl_line, ctl.index); 2387 2388 if (substr (aux_wrt_buf, 1, 1) ^= "." 2389 | substr (aux_wrt_buf, 1, 3) = "...") 2390 & index (aux_wrt_buf, "*") ^= 0 2391 then call comp_util_$escape (aux_wrt_buf, addr (ctl.info)); 2392 2393 if shared.trans.in ^= " " 2394 then aux_wrt_buf = comp_util_$translate (aux_wrt_buf); 2395 aux_wrt_buf = aux_wrt_buf || NL; 2396 call iox_$put_chars (aux_file_data.entry (aux_file_index).iocb_ptr, 2397 addrel (addr (aux_wrt_buf), 1), length (aux_wrt_buf), ercd); 2398 end; 2399 2400 if ercd ^= 0 2401 then call comp_report_ (2, ercd, "Writing to auxiliary write file.", 2402 addr (ctl.info), ctl_line); 2403 2404 call adjust_bit_count_ ((aux_file_data.entry (aux_file_index).dir), 2405 (aux_file_data.entry (aux_file_index).name), "1"b, bits, ercd); 2406 2407 if ercd ^= 0 2408 then call comp_report_ (2, ercd, 2409 "Adjusting bitcount of auxiliary" || " write file.", 2410 addr (ctl.info), ctl_line); 2411 goto end_ctl_loop; 2412 2413 ctl_ (187): /* ".wt" = wait */ 2414 if shared.blkptr = null 2415 then 2416 do; 2417 ctl_line = wait_signal; 2418 text_added, ctl.DVctl = "1"b; 2419 ctl.linespace = 0; 2420 end; 2421 2422 else 2423 do; 2424 if text.input_line ^= "" 2425 then 2426 do; 2427 ctl_line = wait_signal; 2428 text_added, ctl.DVctl = "1"b; 2429 ctl.linespace = 0; 2430 end; 2431 else 2432 do; 2433 line_area_ptr = text.line_area.cur; 2434 txtstrptr = line_area.linptr (line_area.ndx) -> txtlin.ptr; 2435 txtstr = txtstr || wait_signal; 2436 end; 2437 end; 2438 2439 end_ctl_loop: 2440 end ctl_loop; 2441 2442 return_: 2443 if shared.bug_mode 2444 then call ioa_ (" (ctls:^[ ^a^;^s^]^[ text added=^d^])", 2445 (exit_str ^= ""), exit_str, text_added, length (ctl_line)); 2446 return; 2447 2448 /* RECORD/CHECK STATUS/OPEN AUXILIARY FILES */ 2449 aux_file: 2450 proc (buffer, start, code); 2451 2452 /* PARAMETERS */ 2453 2454 dcl buffer char (*) var; /* buffer containing file name */ 2455 dcl start fixed bin (21); /* buffer position index */ 2456 dcl code fixed bin (35); /* error code */ 2457 2458 /* LOCAL STORAGE */ 2459 2460 dcl aux_name char (32); /* name of auxiliary write file */ 2461 dcl aux_path char (200); /* path of auxiliary write file */ 2462 dcl pic_i pic "99"; /* pictured aux_file_file index */ 2463 /* opening mode, stream-input-output */ 2464 dcl sio fixed bin static options (constant) init (3); 2465 2466 /* for future extensible files 2467*/* dcl safety_switch bit (1) aligned; 2468*/* dcl hcs_$get_safety_sw entry (char (*)aligned, char (*)aligned, bit (1)aligned, fixed bin (35)); 2469*/* call hcs_$get_safety_sw (dn, en, safety_switch, code); */ 2470 2471 code = 0; /**/ 2472 /* need file data structure? */ 2473 if shared.aux_file_data_ptr = null () 2474 then 2475 do; 2476 shared.aux_file_data_ptr = 2477 allocate (const.local_area_ptr, size (aux_file_data)); 2478 aux_file_data.count = 0; 2479 aux_file_data.iocb_ptr = null; 2480 aux_file_data.name = ""; 2481 aux_file_data.dir = ""; 2482 aux_file_data.path = ""; 2483 end; /**/ 2484 /* extract file name */ 2485 namel = index (substr (buffer, start), " ") - 1; 2486 if namel > 0 /* if data follows the name */ 2487 then 2488 do; 2489 aux_path, aux_name = substr (buffer, start, namel); 2490 start = start + namel + 1; 2491 end; 2492 else /* only a name */ 2493 do; 2494 aux_path, aux_name = substr (buffer, start); 2495 start = length (buffer) + 1; 2496 end; 2497 2498 dirname = ""; /* clean up possible garbage */ 2499 if search (aux_path, "<>") ^= 0 /* if a path is given, expand it */ 2500 then 2501 do; 2502 call expand_pathname_ (aux_path, dirname, aux_name, ercd); 2503 2504 if ercd ^= 0 2505 then 2506 do; 2507 call comp_report_ (2, ercd, 2508 "Expanding given auxiliary write file pathname.", 2509 addr (ctl.info), (buffer)); 2510 code = 1; 2511 return; 2512 end; 2513 end; /**/ 2514 /* search table for this file */ 2515 if aux_file_data.count > 0 2516 then 2517 do aux_file_index = 1 to aux_file_data.count 2518 while (aux_file_data.entry (aux_file_index).name ^= aux_name); 2519 end; 2520 else aux_file_index = 1; /**/ 2521 /* if this is a new one */ 2522 if aux_file_index > aux_file_data.count 2523 then 2524 do; /* check file count */ 2525 if aux_file_data.count = hbound (aux_file_data.entry, 1) 2526 then 2527 do; 2528 call comp_report_$ctlstr (2, 0, addr (ctl.info), buffer, 2529 "More that ^d auxiliary write files.", 2530 hbound (aux_file_data.entry, 1)); 2531 code = 1; 2532 return; 2533 end; /**/ 2534 /* set the name */ 2535 aux_file_data.entry (aux_file_index).name = aux_name; 2536 2537 if dirname ^= "" /* if a path was given */ 2538 then aux_file_data.entry (aux_file_index).dir = dirname; 2539 else aux_file_data.entry (aux_file_index).dir = get_wdir_ (); 2540 2541 aux_file_data.entry (aux_file_index).path = 2542 pathname_ ((aux_file_data.entry (aux_file_index).dir), 2543 (aux_file_data.entry (aux_file_index).name)); 2544 2545 pic_i = aux_file_index; 2546 call iox_$attach_name ("comp_aux_file_" || pic_i, 2547 aux_file_data.entry (aux_file_index).iocb_ptr, 2548 "vfile_ " || aux_file_data.entry (aux_file_index).path, null (), 2549 ercd); 2550 if ercd ^= 0 2551 then 2552 do; 2553 call comp_report_ (2, ercd, "Attaching auxiliary write file.", 2554 addr (ctl.info), (buffer)); 2555 code = 1; 2556 return; 2557 end; 2558 2559 call iox_$open (aux_file_data.entry (aux_file_index).iocb_ptr, sio, 2560 "0"b, ercd); 2561 if ercd ^= 0 2562 then 2563 do; 2564 call comp_report_ (2, ercd, "Opening auxiliary write file.", 2565 addr (ctl.info), (buffer)); 2566 call iox_$detach_iocb (aux_file_data.entry (aux_file_index) 2567 .iocb_ptr, ercd); 2568 code = 1; 2569 return; 2570 end; 2571 2572 aux_file_data.count = aux_file_index; 2573 /* now we know one more */ 2574 end; 2575 end aux_file; 2576 2577 process_hwrd: 2578 proc; 2579 2580 /* This procedure adds the current word to the internal hwrd list. It 2581* first parses the word for hyphenation and/or break points. If the word 2582* already exists in the list, it is replaced with the current data unless 2583* the first character is "^". It that case, it is simply removed. 2584**/ 2585 2586 dcl brkpoints bit (288); /* word break points */ 2587 dcl delete bit (1); /* 1= delete word */ 2588 dcl hpoints bit (288); /* hyphenation points */ 2589 dcl keywrd char (256) varying; 2590 dcl next_char char (1); 2591 dcl trigger char (1); 2592 2593 if hwrd = "^" 2594 then 2595 do; 2596 call comp_report_$ctlstr (2, comp_error_table_$syntax_error, 2597 addr (ctl.info), ctl_line, 2598 "Null special hyphenation word. ""^a""", hwrd); 2599 return; 2600 end; 2601 2602 keywrd = ""; 2603 brkpoints, hpoints = "0"b; 2604 2605 if index (hwrd, "^") = 1 /* check for delete only */ 2606 then 2607 do; 2608 delete = "1"b; 2609 hwrd = after (hwrd, "^"); 2610 end; 2611 else delete = "0"b; /**/ 2612 /* parse the word */ 2613 do j = 1 by 1 while (j <= length (hwrd)); 2614 /* look for a trigger */ 2615 i = search (substr (hwrd, j), "-^") - 1; 2616 if i = -1 2617 then i = length (hwrd) - j + 1; /**/ 2618 /* add chars to key */ 2619 keywrd = keywrd || substr (hwrd, j, i); 2620 j = j + i; /* step over them */ 2621 2622 if j <= length (hwrd) /* something left */ 2623 then 2624 do; 2625 trigger = substr (hwrd, j, 1);/* get the trigger */ 2626 2627 if j < length (hwrd) /* get the next character */ 2628 then next_char = substr (hwrd, j + 1, 1); 2629 else next_char = " "; 2630 2631 if trigger = "^" /* a word break point? */ 2632 then 2633 do; /* does it follow a literal hyphen? */ 2634 if substr (keywrd, length (keywrd), 1) = "-" 2635 then ; /* then ignore it */ 2636 2637 else 2638 do; 2639 substr (brkpoints, length (keywrd), 1) = "1"b; 2640 /* treat a following hyphen as a literal */ 2641 if next_char = "-" 2642 then j = j + 1; 2643 end; 2644 end; 2645 2646 else /* hyphenation point */ 2647 do; 2648 if next_char ^= "=" /* must be a hyphenation point */ 2649 then 2650 do; 2651 if length (keywrd) = 0 2652 then 2653 do; 2654 call comp_report_$ctlstr (2, 0, addr (ctl.info), 2655 ctl_line, 2656 "Hyphenation point precedes word. " 2657 || "Word ignored. ""^a""", hwrd); 2658 return; 2659 end; 2660 2661 if substr (keywrd, length (keywrd), 1) = "-" 2662 then 2663 do; 2664 call comp_report_$ctlstr (2, 0, addr (ctl.info), 2665 ctl_line, 2666 "Hyphenation point immediately follows " 2667 || "hyphen. Word ignored. ^a", hwrd); 2668 return; 2669 end; /**/ 2670 /* indicate hyphenation point */ 2671 substr (hpoints, length (keywrd), 1) = "1"b; 2672 end; /**/ 2673 /* must be a literal hyphen */ 2674 if next_char = "=" | next_char = "-" 2675 then 2676 do; /* indicate literal hyphen */ 2677 keywrd = keywrd || "-"; 2678 j = j + 1; /* to skip over two character sequence */ 2679 end; 2680 end; 2681 end; 2682 end; /**/ 2683 /* look for the word */ 2684 do i = 1 to hwrd_data.count while (hwrd_data.word (i) ^= keywrd); 2685 end; 2686 2687 hwrd_data.word (i) = ""; /* erase it */ 2688 2689 if delete /* delete only? */ 2690 then return; /**/ 2691 /* add the word to the list */ 2692 hwrd_data.word (i) = keywrd; 2693 hwrd_data.hpts (i) = hpoints; 2694 hwrd_data.brkpts (i) = brkpoints; 2695 2696 if i > hwrd_data.count 2697 then hwrd_data.count = i; 2698 2699 end process_hwrd; 2700 2701 set_label: 2702 proc; /* RECORD LABEL CONTROL DATA */ 2703 2704 /* LOCAL STORAGE */ 2705 2706 dcl this_label char (32); /* label from control */ 2707 /* check label count */ 2708 if insert.label.count = hbound (insert.label.value, 1) 2709 then 2710 do; 2711 call comp_report_ (2, 0, "Too many labels.", addr (ctl.info), ctl_line) 2712 ; 2713 return; 2714 end; /* extract the given label */ 2715 this_label = ltrim (substr (ctl_line, ctl.index)); 2716 2717 if this_label = "" | this_label = " " 2718 /* if null or blank */ 2719 then 2720 do; 2721 call comp_report_ (2, 0, "Missing label name.", addr (ctl.info), 2722 ctl_line); 2723 return; 2724 end; 2725 2726 if insert.label.count > 0 /* if any labels are recorded ... */ 2727 then 2728 do; 2729 j = index ( 2730 substr (addr (insert.label.value (1)) -> label_value_str, 1, 2731 32 * insert.label.count), this_label); 2732 if j > 0 2733 then return; /* we already have this one */ 2734 end; 2735 2736 j, insert.label.count = insert.label.count + 1; 2737 /* a new label */ 2738 2739 insert.label.value (j) = this_label; 2740 insert.label.line (j) = ctl.info.lineno; 2741 insert.label.position (j) = 2742 call_stack.ptr (call_stack.index) -> call_box.posn; 2743 2744 end set_label; 2745 2746 show: 2747 proc (datum, scale) returns (fixed dec (11, 3)); 2748 dcl datum fixed bin (31); 2749 dcl scale fixed bin (31); 2750 2751 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 2752 end show; 2753 1 1 /* BEGIN INCLUDE FILE comp_aux_file.incl.pl1 */ 1 2 1 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 4 1 5 dcl 1 aux_file_data 1 6 aligned based (shared.aux_file_data_ptr), 1 7 /* data block for auxiliary write files */ 1 8 2 count fixed, /* count of known files */ 1 9 2 entry (25), /* for each known file */ 1 10 3 iocb_ptr ptr, /* iocb pointer */ 1 11 3 name char (32), /* entryname */ 1 12 3 dir char (168), /* containing directory */ 1 13 3 path char (200) varying; 1 14 /* absolute pathname */ 1 15 1 16 /* END INCLUDE FILE comp_aux_file.incl.pl1 */ 2754 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 */ 2755 3 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 3 2 3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 4 3 5 dcl 1 col /* the text column */ 3 6 aligned based (shared.colptr), 3 7 2 blkptr (100) ptr, /* pointers to text blocks */ 3 8 2 depth_adj fixed bin (31), /* for variable start depth */ 3 9 2 ftrptr ptr, /* -> column footer */ 3 10 2 ftrusd fixed bin (31), /* column footer space used */ 3 11 2 gutter fixed bin (31), /* column separation */ 3 12 2 hdr like colhdr, /* column control stuff */ 3 13 2 hdrptr ptr, /* -> column header */ 3 14 2 hdrusd fixed bin (31), /* column header space used */ 3 15 2 margin, /* margin settings for column */ 3 16 3 left fixed bin (31), 3 17 3 right fixed bin (31), 3 18 2 parms, /* text parms for the column */ 3 19 3 measure fixed bin (31); /* column width */ 3 20 3 21 dcl 1 colhdr aligned based (const.colhdrptr), 3 22 /* an empty column header */ 3 23 2 balblk fixed bin, /* block to begin column balancing */ 3 24 2 baldepth fixed bin (31), /* page depth at balance point */ 3 25 2 balftn, /* footnotes at balance point */ 3 26 3 ct fixed bin, /* count */ 3 27 3 usd fixed bin (31), /* space used */ 3 28 3 blkndx (40) fixed bin, /* block index values */ 3 29 2 balusd fixed bin (31), /* space used up to balance point */ 3 30 2 blkct fixed bin, /* text block count */ 3 31 2 depth fixed bin (31), /* current page depth in the column */ 3 32 2 ftn like balftn, /* footnotes */ 3 33 2 pspc fixed bin (31), /* current white space */ 3 34 2 net fixed bin (31), /* net usable space in the column */ 3 35 2 used fixed bin (31); /* space used in this column */ 3 36 /* for quick reference */ 3 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 3 38 3 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 2756 4 1 /* BEGIN INCLUDE FILE comp_ctl_index.incl.pl1 */ 4 2 4 3 /* Written: 3/82 - EJW */ 4 4 4 5 /* Vector index values for controls that must be globally known. */ 4 6 4 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 8 4 9 dcl ( 4 10 be_ctl_index init (22), /* block-end */ 4 11 bef_ctl_index init (26), /* block-end-footnote */ 4 12 bel_ctl_index init (28), /* block-end-literal */ 4 13 bep_ctl_index init (30), /* block-end-picture */ 4 14 fin_ctl_index init (76), /* fill-on */ 4 15 ifi_ctl_index init (110), /* insert-file */ 4 16 ift_ctl_index init (111), /* insert-footnotes */ 4 17 tac_ctl_index init (145), /* table-column */ 4 18 taf_ctl_index init (146) /* table-off */ 4 19 ) fixed bin static options (constant); 4 20 4 21 /* END INCLUDE FILE comp_ctl_index.incl.pl1 */ 2757 5 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 5 2* Modified: ??/81 - EJW - Addded type_wait 5 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 5 4**/ 5 5 5 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 5 7 5 8 dcl DCxx_p ptr; /* for qualification of embedded */ 5 9 /* control strings */ 5 10 /* an embedded control string */ 5 11 dcl 1 dcxx unal based (DCxx_p), 5 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 5 13 2 ctl, 5 14 3 type bit (3) unal, /* 000- device/writer control */ 5 15 /* 001- */ 5 16 /* 010- literal data */ 5 17 /* 011- family/member/size data */ 5 18 /* 100- shift */ 5 19 /* 101- */ 5 20 /* 110- vector */ 5 21 /* 111- zero-offset vector */ 5 22 3 fill1 bit (1) unal, 5 23 3 Xctl bit (2) unal, /* 00- no X value present */ 5 24 /* 01- short X value */ 5 25 /* 10- long X value */ 5 26 3 fill2 bit (1) unal, 5 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 5 28 /* 01- short Y value present */ 5 29 /* 10- long Y value present */ 5 30 2 leng fixed bin (9) unal unsigned, 5 31 /* # of remaining bytes */ 5 32 2 etc; /* the rest of the control bytes */ 5 33 /* device/writer controls */ 5 34 dcl 1 dcctl unal based (DCxx_p), 5 35 2 mark char (1) unal, 5 36 2 type char (1) unal, /* control type */ 5 37 /* leng is always 0 for these */ 5 38 2 leng fixed bin (9) unal unsigned; 5 39 dcl ( 5 40 wait_signal init ("�"), /* = 021001000 */ 5 41 unstart_signal init ("�"), /* = 021002000 */ 5 42 unstop_signal init ("�") /* = 021003000 */ 5 43 ) char (3) static options (constant); 5 44 /* the "literal" control string */ 5 45 dcl 1 dclit unal based (DCxx_p), 5 46 2 mark char (1) unal, 5 47 2 type char (1) unal, /* control type */ 5 48 2 leng fixed bin (9) unal unsigned, 5 49 /* width in milli-points of literal */ 5 50 2 width fixed bin (31) unal, 5 51 /* actual literal, max length 509 */ 5 52 2 data char (dclit.leng - 4); 5 53 /* long (31 bits) values */ 5 54 dcl 1 dclong_val unal based (DCxx_p), 5 55 2 mark char (1) unal, 5 56 2 type char (1) unal, /* control type */ 5 57 2 leng fixed bin (9) unal unsigned, 5 58 ( 5 59 2 v1 fixed bin (31), /* long value */ 5 60 2 v2 fixed bin (31) /* long value */ 5 61 ) unal; 5 62 dcl ( 5 63 dclong_len init (8), /* 2 long values */ 5 64 dclong1_len init (4) /* 1 long value */ 5 65 ) fixed bin static options (constant); 5 66 /* short (17 bit) values */ 5 67 dcl 1 dcshort_val unal based (DCxx_p), 5 68 2 mark char (1) unal, 5 69 2 type char (1) unal, /* control type */ 5 70 2 leng fixed bin (9) unal unsigned, 5 71 ( 5 72 2 v1 fixed bin, /* short value */ 5 73 2 v2 fixed bin /* short value */ 5 74 ) unal; 5 75 dcl ( 5 76 dcshort_len init (4), /* 2 short values */ 5 77 dcshort1_len init (2) /* 1 short value */ 5 78 ) fixed bin static options (constant); 5 79 /* a font change string */ 5 80 dcl 1 dcfs unal based (DCxx_p), 5 81 2 mark char (1) unal, /* font/size data */ 5 82 2 type char (1) unal, /* control type */ 5 83 2 leng fixed bin (9) unal unsigned, 5 84 /* fnttbldata index */ 5 85 2 f fixed bin (9) unal unsigned, 5 86 /* point size in milli-points */ 5 87 2 p fixed bin (31) unal; 5 88 dcl dcfs_len fixed bin init (5) static options (constant); 5 89 5 90 dcl ( /* symbolic definitions of DC types */ 5 91 type_wait init (""), /* writer wait */ 5 92 type_unstart init (""), /* underscore start */ 5 93 type_unstop init (""), /* underscore stop */ 5 94 type_lit init ("ˆ"), /* literal data */ 5 95 type_font init ("À"), /* family/member/size data */ 5 96 /* SHIFTS - */ 5 97 type_sy init (""), /* -- no x, short y */ 5 98 type_sly init (""), /* -- no x, long y */ 5 99 type_sx init (""), /* -- short x, no y */ 5 100 type_sxy init (" "), /* -- short x, short y */ 5 101 type_slx init (""), /* -- long x, no y */ 5 102 type_slxly init (""), /* -- long x, long y */ 5 103 /* VECTORS */ 5 104 type_vy init (""), /* -- no x, short y */ 5 105 type_vly init ("‚"), /* -- no x, long y */ 5 106 type_vx init ("ˆ"), /* -- short x, no y */ 5 107 type_vxy init ("‰"), /* -- short x, short y */ 5 108 type_vlx init (""), /* -- long x, no y */ 5 109 type_vlxly init ("’"), /* -- long x, long y */ 5 110 /* ZERO-OFFSET VECTORS- */ 5 111 type_v0y init ("Á"), /* -- no x, short y */ 5 112 type_v0ly init ("Â"), /* -- no x, long y */ 5 113 type_v0x init ("È"), /* -- short x, no y */ 5 114 type_v0xy init ("É"), /* -- short x, short y */ 5 115 type_v0lx init ("Ð"), /* -- long x, no y */ 5 116 type_v0lxly init ("Ò") /* -- long x, long y */ 5 117 ) char (1) unal int static options (constant); 5 118 5 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 2758 6 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl compose_severity_ 6 6 fixed bin (35) ext static; 6 7 dcl comp_ entry; 6 8 dcl comp_art_ entry (ptr, bit (1)); 6 9 dcl comp_block_ctls_ 6 10 entry (fixed bin); 6 11 dcl comp_break_ entry (fixed bin, fixed bin); 6 12 dcl comp_break_ctls_ 6 13 entry (fixed bin); 6 14 dcl comp_ctls_ entry (bit (1) aligned); 6 15 dcl comp_eject_page_ 6 16 entry; 6 17 dcl comp_expr_eval_ 6 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 6 19 fixed bin, bit (1), fixed bin (31), char (*) var, 6 20 bit (9), fixed bin (35)); 6 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 6 22 fixed bin (21), fixed bin (21), ptr) 6 23 returns (char (*) var); 6 24 dcl comp_fill_ entry; 6 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 6 26 dcl comp_format_ctls_ 6 27 entry (fixed bin); 6 28 dcl comp_get_file_$find 6 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 6 30 fixed bin (35)); 6 31 dcl comp_get_file_$open 6 32 entry (ptr, bit (1), fixed bin (35)); 6 33 dcl comp_head_page_ 6 34 entry (fixed bin (31)); 6 35 dcl comp_hft_ctls_ entry (fixed bin); 6 36 dcl comp_hft_ctls_$title 6 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 6 38 dcl comp_init_$one entry; 6 39 dcl comp_init_$two entry; 6 40 dcl comp_init_$three 6 41 entry; 6 42 dcl comp_insert_ctls_ 6 43 entry (fixed bin); 6 44 dcl comp_make_page_ 6 45 entry (fixed bin, bit (1)); 6 46 dcl comp_make_page_$cleanup 6 47 entry; 6 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 6 49 fixed bin (31), ptr, ptr, ptr); 6 50 dcl comp_read_$name 6 51 entry (char (*) var, fixed bin (21), fixed bin (21), 6 52 ptr) returns (char (*) var); 6 53 dcl comp_read_$number 6 54 entry (char (*) var, (*) fixed bin (31), 6 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 6 56 returns (fixed bin (31)); 6 57 dcl comp_read_$line 6 58 entry (ptr, char (*) var, bit (1)); 6 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 6 60 char (*) var); 6 61 dcl comp_report_$ctlstr 6 62 entry options (variable); 6 63 /**** (sev, code, info, line, ctl_str, args... */ 6 64 dcl comp_report_$exact 6 65 entry (char (*), ptr); 6 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 6 67 bit (1)); 6 68 dcl comp_tbl_ctls_ entry (fixed bin); 6 69 dcl comp_title_block_ 6 70 entry (ptr); 6 71 dcl comp_update_symbol_ 6 72 entry (bit (1), bit (1), bit (1), char (32), 6 73 char (*) var); 6 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 6 75 dcl comp_util_$add_text 6 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 6 77 dcl comp_util_$display 6 78 entry (char (*) var, fixed bin, bit (1)) 6 79 returns (char (*) var); 6 80 dcl comp_util_$escape 6 81 entry (char (*) var, ptr); 6 82 dcl comp_util_$getblk 6 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 6 84 dcl comp_util_$num_display 6 85 entry (ptr, fixed bin) returns (char (256) var); 6 86 dcl comp_util_$pageno 6 87 entry (fixed bin, char (*) var); 6 88 dcl comp_util_$pictures /* emit pending pictures */ 6 89 entry /**/ 6 90 (ptr); /* current text block */ 6 91 dcl comp_util_$pop entry (char (32)); 6 92 dcl comp_util_$push 6 93 entry (char (32)); 6 94 dcl comp_util_$relblk 6 95 entry (fixed bin, ptr); 6 96 dcl comp_util_$replace_text 6 97 entry (ptr, bit (1), ptr, ptr); 6 98 dcl comp_util_$search_tree 6 99 entry (char (32), bit (1)); 6 100 dcl comp_util_$set_bin 6 101 entry (fixed bin (31), char (32) var, fixed bin (31), 6 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 6 103 fixed bin (31)); 6 104 dcl comp_util_$set_net_page 6 105 entry (bit (1)); 6 106 dcl comp_util_$translate 6 107 entry (char (*) var) returns (char (*) var); 6 108 dcl comp_write_block_ 6 109 entry (fixed bin); 6 110 dcl comp_write_page_ 6 111 entry; 6 112 6 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 2759 7 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 4 7 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 7 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 7 7 2 bachelor bit (1), /* 1= has no members */ 7 8 2 devfnt fixed bin, /* font in the device */ 7 9 2 fam_name char (32), /* family name */ 7 10 2 famndx fixed bin, /* family index */ 7 11 2 fntptr ptr, /* font table pointer */ 7 12 2 mem_name char (32), /* /member name (or null) */ 7 13 2 memndx fixed bin, /* member index */ 7 14 2 memptr ptr, /* member table pointer */ 7 15 2 name char (65) var, /* font name */ 7 16 2 size fixed bin (31), /* requested point size */ 7 17 2 ps fixed bin (31), /* effective point size */ 7 18 2 fcs_str char (8); /* FCS string */ 7 19 7 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 2760 8 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 8 2 8 3 /* Fonts already loaded into the compose (pdir) database */ 8 4 8 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 6 8 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 8 8 2 count fixed bin, /* number of fonts loaded */ 8 9 2 ndx fixed bin, /* index of current font */ 8 10 2 medsel_ptr ptr, /* -> media select table */ 8 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 8 12 8 13 dcl fnttbl_ptr ptr init (null); 8 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 8 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 8 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 8 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 8 18 2 rel_units fixed bin, /* stroke value for this font */ 8 19 2 siztbl_ptr ptr, /* -> loaded size table */ 8 20 2 entry /* stack entry for this font */ 8 21 like fntstk_entry, 8 22 ( /* for each font character */ 8 23 2 devfnt fixed bin, /* font in the device */ 8 24 2 replptr ptr, /* replacement string ptrs */ 8 25 2 units fixed bin, /* width in strokes */ 8 26 2 white bit (1) unal /* white space flags */ 8 27 ) dimension (0:511); 8 28 8 29 dcl repl_str_ptr ptr; /* replacement strings */ 8 30 dcl 1 repl_str based (repl_str_ptr), 8 31 2 len fixed bin (35), 8 32 2 str char (256); 8 33 dcl replstr char (256) var based (repl_str_ptr); 8 34 /* media select strings */ 8 35 /* (indexed on fnttbldata.ndx) */ 8 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 8 37 8 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 8 39 2 ct fixed bin, /* number of sizes */ 8 40 2 size (siztbl.ct) fixed bin (31); 8 41 8 42 /* This is the storage referred by family.member_r in comp_dvt 8 43* 8 44* If member.count is 1 and member.name(1) is null, then the font is a 8 45* 'bachelor'. 8 46* 8 47* The font stack will hold the family/member names which were used to 8 48* originally get to the font. When a bachelor is accessed, the member name 8 49* will remain but the bachelor flag will be set to tell any displayers not 8 50* to include it. 8 51* 8 52* %FontName% will contain either "family" or "family/member" depending on 8 53* the setting of the bachelor switch. */ 8 54 8 55 dcl member_ptr ptr; 8 56 dcl 1 member based (member_ptr), 8 57 2 count fixed bin, /* # members present */ 8 58 2 e (member.count), /* members defined for this device */ 8 59 3 font_r bit (18) unal, /* font character table relptr */ 8 60 3 size_r bit (18) aligned, 8 61 /* point size list relptr */ 8 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 8 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 8 64 3 name char (32); /* member name */ 8 65 8 66 /* Storage referred by member.font_r */ 8 67 dcl font_ptr ptr; 8 68 dcl 1 font based (font_ptr), 8 69 ( 2 oput_r, /* offset of output data array */ 8 70 2 units_r /* offset of width array */ 8 71 ) bit (18) aligned, 8 72 2 rel_units fixed bin, /* stroke value for this table */ 8 73 2 footsep char (1), /* footref separator */ 8 74 2 fill char (3), 8 75 2 min_wsp fixed bin, /* min wordspace */ 8 76 2 avg_wsp fixed bin, /* nominal wordspace */ 8 77 2 max_wsp fixed bin; /* max wordspace */ 8 78 8 79 /* storage referred by font.units_r */ 8 80 dcl units_ptr ptr; /* width in strokes */ 8 81 dcl units (0:511) fixed bin based (units_ptr); 8 82 8 83 /* media select table in the device table */ 8 84 dcl medsel_table_ptr 8 85 ptr; 8 86 dcl 1 medsel_table based (medsel_table_ptr), 8 87 2 count fixed bin, 8 88 2 ref_r (medsel_table.count) bit (18) aligned; 8 89 8 90 /* storage referred by font.oput_r */ 8 91 dcl oput_p ptr; 8 92 dcl 1 oput based (oput_p), 8 93 2 data_ct fixed bin, /* highest char defined */ 8 94 2 e (0:oput.data_ct), 8 95 3 which /* index into view array */ 8 96 fixed bin (17) unal, 8 97 3 what_r /* output string */ 8 98 bit (18) unal; 8 99 8 100 /* storage referred by member.size_r */ 8 101 8 102 dcl sizel_p ptr; 8 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 8 104 2 val_ct fixed bin, 8 105 2 val (sizel.val_ct) fixed bin (31); 8 106 8 107 /* storage referred by oput.what_r */ 8 108 8 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 8 110 dcl 1 medchar_sel based (medchar_sel_p), 8 111 2 str_l fixed bin, 8 112 2 str char (medchar_sel.str_l); 8 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 8 114 8 115 dcl med_sel_p ptr; /* media select string */ 8 116 dcl 1 med_sel based (med_sel_p), 8 117 2 str_l fixed bin, 8 118 2 str char (med_sel.str_l); 8 119 8 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 2761 9 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr), 9 6 /* data for footnote blocks */ 9 7 2 highndx fixed (35), /* highest active footnote index */ 9 8 2 blkptr (250) ptr; /* block pointers */ 9 9 /* footnote header data block */ 9 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr); 9 11 /* formatting parms for footnotes */ 9 12 dcl 1 footnote_parms 9 13 aligned like default_parms 9 14 based (const.footnote_parms_ptr); 9 15 9 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */ 2762 10 1 /* BEGIN INCLUDE FILE comp_hwrd_data.incl.pl1 */ 10 2 10 3 dcl 1 hwrd_data aligned based (shared.hwrd_data_ptr), 10 4 2 count fixed bin, /* number of words */ 10 5 2 e (100), /* list entries */ 10 6 3 hpts bit (288), /* hyphenation points */ 10 7 3 brkpts bit (288), /* word break points */ 10 8 3 word char (256); /* the word */ 10 9 10 10 /* END INCLUDE FILE comp_hwrd_data.incl.pl1 */ 2763 11 1 /* BEGIN INSERT FILE ... comp_insert.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl 1 insert_data aligned based (const.insert_data_ptr), 11 6 2 count fixed bin, /* count of allocated data blocks */ 11 7 2 index fixed bin, /* the current block */ 11 8 2 ptr (1000) ptr, /* insert file data block pointers */ 11 9 2 ref_area, /* ref name string area data */ 11 10 3 count fixed bin, /* count of allocated areas */ 11 11 3 ptr (100) ptr; /* area pointers */ 11 12 /* insert call stack */ 11 13 dcl 1 call_stack aligned based (const.call_stk_ptr), 11 14 2 count fixed bin, /* count of allocated boxes */ 11 15 2 index fixed bin, /* current stack index */ 11 16 2 ptr (0:50) ptr; /* stack entry ptrs */ 11 17 dcl call_box_ptr ptr; 11 18 dcl 1 call_box aligned like insert.file based (call_box_ptr); 11 19 dcl 1 call_box0 aligned like insert.file based (call_stack.ptr (0)); 11 20 11 21 dcl 1 insert_refs aligned based, /* ref names structure */ 11 22 2 count fixed bin, /* count of names in area */ 11 23 2 index (60) fixed bin, /* insert_data index values */ 11 24 2 name (60) char (32) unal; 11 25 /* the ref names */ 11 26 11 27 dcl refname_str char (refstr_len) based (refstr_ptr); 11 28 /* for searching */ 11 29 dcl refstr_len fixed bin; /* length of refname search string */ 11 30 dcl refstr_ptr ptr; /* refname string pointer */ 11 31 /* data for an insert file */ 11 32 dcl 1 insert aligned based (shared.insert_ptr), 11 33 2 file, /* also used for source files */ 11 34 3 charcount 11 35 fixed bin (21), /* segment character count */ 11 36 3 comp_no fixed bin, /* msf component number */ 11 37 3 dir char (168), /* containing dir */ 11 38 3 entryname 11 39 char (32), /* primary entryname */ 11 40 3 exit_lineno 11 41 fixed bin (35), /* line number of .ifi */ 11 42 3 fcb_ptr ptr, /* FCB pointer for msf manager */ 11 43 3 info like text_entry.info, 11 44 3 insert_ptr /* self pointer - needed when */ 11 45 ptr, /* struc is in the call stack */ 11 46 /* 3 ntext fixed bin (21), /* character count of text line */ 11 47 3 path char (200) var, /* complete pathname */ 11 48 3 pointer ptr, /* segment pointer */ 11 49 3 posn fixed bin (21), /* input character position */ 11 50 3 refname char (200) var, /* for source files only */ 11 51 2 callers_name 11 52 char (100), /* refname of calling file */ 11 53 2 dtcm bit (36), /* fs date-time-modified */ 11 54 2 refndx fixed bin, /* CURRENT refname index for file */ 11 55 2 thrb fixed bin unsigned, 11 56 /* backward thread index in insert stack */ 11 57 2 label, /* label data per insert level */ 11 58 3 count fixed bin, 11 59 3 line (250) fixed bin unsigned, 11 60 3 position (250) fixed bin (21), 11 61 3 value (250) char (32); 11 62 11 63 /* empty file data structure */ 11 64 dcl 1 init_file_data 11 65 static options (constant), 11 66 2 charcount fixed bin (21) init (0), 11 67 /* segment character count */ 11 68 2 comp_no fixed bin init (0), 11 69 /* msf component number */ 11 70 2 dir char (168) init (""), 11 71 /* containing dir */ 11 72 2 entryname char (32) init (""), 11 73 /* primary entryname */ 11 74 2 exit_lineno 11 75 fixed bin (35) init (0), 11 76 /* line number of .ifi */ 11 77 2 fcb_ptr ptr init (null),/* FCB pointer for msf manager */ 11 78 2 info, /* stuff created during line input */ 11 79 3 fileno /* input file index */ 11 80 fixed bin init (0), 11 81 3 lineno /* input file line number */ 11 82 fixed bin init (0), 11 83 3 lineno0 /* call_box0 line number */ 11 84 fixed bin init (0), 11 85 2 insert_ptr ptr init (null),/* self pointer - needed when */ 11 86 /* struc is in the call stack */ 11 87 /* 2 ntext fixed bin (21) init (0), 11 88*/* /* character count of text line */ 11 89 2 path char (200) var init (""), 11 90 /* complete pathname */ 11 91 2 pointer ptr init (null),/* segment pointer */ 11 92 2 posn fixed bin (21) init (1), 11 93 /* input character position */ 11 94 2 refname char (200) var init (""); 11 95 /* for source files only */ 11 96 11 97 /* END INSERT FILE ... comp_insert.incl.pl1 */ 2764 12 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 12 2 12 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 12 4 12 5 /* ASCII control characters */ 12 6 dcl ( 12 7 NUL init ("�"), /* 000 */ 12 8 SOH init (""), /* 001 */ 12 9 STX init (""), /* 002 */ 12 10 ETX init (""), /* 003 */ 12 11 EOT init (""), /* 004 */ 12 12 ENQ init (""), /* 005 */ 12 13 ACK init (""), /* 006 */ 12 14 BEL init (""), /* 007 */ 12 15 BSP init (""), /* 010 */ 12 16 HT init (" "), 12 17 /* 011 */ 12 18 (NL, LF) init (" 12 19 "), /* 012 */ 12 20 VT init (" "), /* 013 */ 12 21 FF init (" "), /* 014 */ 12 22 CR init (" "), /* 015 */ 12 23 (RRS, SO) init (""), /* 016 */ 12 24 (BRS, SI) init (""), /* 017 */ 12 25 DLE init (""), /* 020 */ 12 26 DC1 init (""), /* 021 */ 12 27 (DC2, HLF, HUGE) init (""), /* 022 */ 12 28 DC3 init (""), /* 023 */ 12 29 (DC4, HLR, THICK) init (""), /* 024 */ 12 30 (NAK, MEDIUM) init (""), /* 025 */ 12 31 SYN init (""), /* 026 */ 12 32 (ETB, HAIR) init (""), /* 027 */ 12 33 (CAN, STROKE) init (""), /* 030 */ 12 34 oct031 init (""), /* 031 */ 12 35 SUB init (""), /* 032 */ 12 36 ESC init (""), /* 033 */ 12 37 FS init (""), /* 034 */ 12 38 GS init (""), /* 035 */ 12 39 RS init (""), /* 036 */ 12 40 US init (""), /* 037 */ 12 41 (DEL, PAD) init (""), /* 177 */ 12 42 /* compose meta-characters */ 12 43 multiply init ("ª"), /* 252 - multiply symbol */ 12 44 pl_mi init ("«"), /* 253 - plus/minus sign */ 12 45 nabla init ("¬"), /* 254 */ 12 46 EMdash init ("­"), /* 255 - EM dash */ 12 47 slash init ("¯"), /* 256 */ 12 48 dagger init ("±"), /* 261 */ 12 49 perpen init ("»"), /* 273 - perpendicular mark */ 12 50 not_eq init ("½"), /* 275 - not-equal mark */ 12 51 dbldag init ("Á"), /* 301 - double daggar */ 12 52 cright init ("Ã"), /* 303 - copyright mark */ 12 53 delta init ("Ä"), /* 304 */ 12 54 bullet init ("Í"), /* 315 */ 12 55 prll init ("Î"), /* 316 - parallel mark */ 12 56 PI init ("Ð"), /* 320 - uppercase Greek pi */ 12 57 tmark init ("Ô"), /* 324 - trademark */ 12 58 tfore init ("Ö"), /* 326 - therefore mark */ 12 59 approx init ("Ú"), /* 332 - approximately-equal mark */ 12 60 infin init ("ß"), /* 337 - infinity */ 12 61 theta init ("ê"), /* 352 */ 12 62 pi init ("ð"), /* 360 - lowercase Greek pi */ 12 63 square init ("ý"), /* 375 */ 12 64 overbar init ("þ"), /* 376 */ 12 65 PS init ("ÿ"), /* 377 - punctuation space */ 12 66 sup0 init ("�"), /* 400 - superior digit 0 */ 12 67 sup1 init (""), /* 401 - superior digit 1 */ 12 68 sup2 init (""), /* 402 - superior digit 2 */ 12 69 sup3 init (""), /* 403 - superior digit 3 */ 12 70 sup4 init (""), /* 404 - superior digit 4 */ 12 71 sup5 init (""), /* 405 - superior digit 5 */ 12 72 sup6 init (""), /* 406 - superior digit 6 */ 12 73 sup7 init (""), /* 407 - superior digit 7 */ 12 74 sup8 init (""), /* 410 - superior digit 8 */ 12 75 sup9 init (" "), /* 411 - superior digit 9 */ 12 76 EM init (" "), /* 412 - EM space */ 12 77 EM_ init (" "), /* 413 - EM aligned dash */ 12 78 EN init (" "), /* 414 - EN space */ 12 79 EN_ init (" "), /* 415 - EN aligned dash */ 12 80 ENd init (""), /* 416 - EN dash */ 12 81 THIN init (""), /* 417 - thinspace */ 12 82 DEVIT init (""), /* 420 - device unit */ 12 83 lquote init (""), /* 421 - left double quote */ 12 84 rquote init (""), /* 422 - right double quote */ 12 85 modmark init (""), /* 424 - text modification/addition mark */ 12 86 delmark init (""), /* 430 - deletion mark */ 12 87 vrule init ("Z"), /* 532 - vertical rule */ 12 88 lslnt init ("^") /* 536 - left slant */ 12 89 ) char (1) unaligned static options (constant); 12 90 12 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 2765 13 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 13 2 13 3 dcl option_version fixed bin (35) static options (constant) init (2); 13 4 13 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 13 6 2 version fixed bin (35), 13 7 /* Options with parameters */ 13 8 (2 argument_opt, /* -argument option flag */ 13 9 2 cbar_opt, /* -change_bars option flag */ 13 10 2 cbar_art_opt, /* -change_bars_art option flag */ 13 11 2 debug_opt, /* -debug option flag */ 13 12 2 db_all_opt, /* -debug_all option flag */ 13 13 2 db_file_opt, /* -debug_file option flag */ 13 14 2 device_opt, /* -device option flag */ 13 15 2 execute_opt, /* -execute option flag */ 13 16 2 from_opt, /* -from option flag */ 13 17 2 galley_opt, /* -galley option flag */ 13 18 2 hyph_opt, /* -hyphenation option flag */ 13 19 2 indent_opt, /* -indent option flag */ 13 20 2 input_file_opt, /* -input_file option flag */ 13 21 2 linespace_opt, /* -linespace option flag */ 13 22 2 output_file_opt, /* -output_file option flag */ 13 23 2 pages_opt, /* -pages option flag */ 13 24 2 page_chng_opt, /* -pages_changed option flag */ 13 25 2 parameter_opt, /* -parameter option flag */ 13 26 2 passes_opt, /* -passes option flag */ 13 27 2 tdir_opt, /* -temp_dir option flag */ 13 28 2 to_opt, /* -to option flag */ 13 29 /* Options without parameters */ 13 30 2 annot_opt, /* -annotate */ 13 31 2 brief_opt, /* -brief option flag */ 13 32 2 check_opt, /* -check option flag */ 13 33 2 cws_opt, /* -cws option flag */ 13 34 2 db_pause_opt, /* -debug_pause option flag */ 13 35 2 noart_opt, /* -noart option flag */ 13 36 2 nobell_opt, /* -no_bell option flag */ 13 37 2 nofill_opt, /* -nofill option flag */ 13 38 2 nohit_opt, /* -nohit option flag */ 13 39 2 number_opt, /* -number option flag */ 13 40 2 number_append_opt, /* -number_append option flag */ 13 41 2 number_brief_opt, /* -number_brief option flag */ 13 42 2 stop_opt, /* -stop option flag */ 13 43 2 wait_opt) unal bit (1), /* -wait option flag */ 13 44 2 MBZ bit (2) unal, 13 45 /* Optional parameters */ 13 46 2 arg_count fixed bin, /* count of -ag values */ 13 47 2 cbar, /* change bar data */ 13 48 3 level char (1), /* change level character (ASCII NUL) */ 13 49 3 place char (1), /* placement character */ 13 50 3 space fixed bin (31), /* extra left margin space needed */ 13 51 3 left, /* left margin mark data */ 13 52 4 sep fixed bin (31), /* separation */ 13 53 4 width fixed bin (31), /* mark width */ 13 54 4 mark char (80) varying, /* the left margin mark */ 13 55 3 right, /* right margin mark data */ 13 56 4 sep fixed bin (31), /* separation */ 13 57 4 width fixed bin (31), /* mark width */ 13 58 4 mark char (80) varying, /* the right margin mark */ 13 59 3 del, /* deletion mark data */ 13 60 4 sep fixed bin (31), /* separation */ 13 61 4 width fixed bin (31), /* mark width */ 13 62 4 mark char (80) varying, /* the deletion mark */ 13 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 13 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 13 65 2 db_file char (200) var, /* file pathanme for debug */ 13 66 2 db_file_after fixed bin (35), /* debug file starting line */ 13 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 13 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 13 69 2 device char (32) varying, /* output device */ 13 70 2 extra_indent fixed bin (31), /* extra indent value */ 13 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 13 72 2 line_1 fixed bin (35), /* initial line for output */ 13 73 2 line_2 fixed bin (35), /* final line for output */ 13 74 2 linespace fixed bin (31), /* line spacing value */ 13 75 2 pglstct fixed bin (35), /* number of page list entries */ 13 76 2 pglstndx fixed bin (35), /* index for -pages list */ 13 77 2 pglst (0:49), /* list of requested pages */ 13 78 3 from char (32) var, 13 79 3 to char (32) var, 13 80 2 parameter char (80) varying, /* parameter <value> from command line */ 13 81 2 passes fixed bin, /* passes remaining */ 13 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 13 83 13 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 13 85 2766 14 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 14 2 14 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 14 4 14 5 dcl max_image_lines 14 6 fixed static options (constant) init (1000); 14 7 dcl max_cols fixed static options (constant) init (20); 14 8 14 9 dcl page_version fixed bin static options (constant) init (5); 14 10 /* composed page structure */ 14 11 dcl 1 page aligned based (const.page_ptr), 14 12 2 version fixed bin, /* version of this structure */ 14 13 2 parms aligned like page_parms, 14 14 /* page formatting parameters */ 14 15 2 hdr aligned like page_header, 14 16 /* page control stuff */ 14 17 2 image_ptr ptr, /* pointer to the madeup page image */ 14 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 14 19 2 col_image_ptr 14 20 (-2:21) ptr; /* pointers to column images */ 14 21 /* col -1 is for line numbers and */ 14 22 /* left margin change bars; */ 14 23 /* col -2 is for */ 14 24 /* right margin change bars */ 14 25 /* and/or annotation * / 14 26* /* page control stuff */ 14 27 dcl 1 page_header aligned based (const.page_header_ptr), 14 28 2 sws, 14 29 3 art bit (1) unal, /* 1 = header/footer art */ 14 30 3 blankpage 14 31 bit (1) unal, /* 1 = intentional blank page */ 14 32 3 frontpage 14 33 bit (1) unal, /* 1 = odd page number */ 14 34 3 headed bit (1) unal, /* 1 = page header has been written */ 14 35 3 modified bit (1) unal, /* 1 = page has been modified */ 14 36 3 overflow bit (1) unal, /* OBSOLETE */ 14 37 3 MBZ bit (12) unal, 14 38 3 dot_addltr 14 39 char (1) unal, /* dot page add letter, if any */ 14 40 3 pgc_select 14 41 char (1) unal, /* for selecting change pages */ 14 42 2 baldepth fixed bin (31), /* page depth at balance point */ 14 43 2 balusd fixed bin (31), /* space used at balance point */ 14 44 2 col_count fixed bin, /* highest value of col_index for the page */ 14 45 2 col_index fixed bin, /* column index */ 14 46 2 depth fixed bin (31), /* current page depth */ 14 47 2 hdspc fixed bin (31), /* TOP white space */ 14 48 2 lmarg fixed bin (31), /* left margin for this page */ 14 49 2 net fixed bin (31), /* net usable space on the page */ 14 50 2 pageno char (32) var, /* current page number */ 14 51 2 used fixed bin (31); /* space already used on the page */ 14 52 14 53 dcl page_image_version 14 54 fixed bin (35) static options (constant) init (2); 14 55 /* structure passed to writers */ 14 56 dcl 1 page_image aligned based (page.image_ptr), 14 57 2 version fixed bin (35), /* structure version no */ 14 58 2 count fixed bin, /* count of page image lines */ 14 59 2 file_id char (32) var, /* compout identifier */ 14 60 2 func fixed bin, /* function code; 0 = build, 14 61* 1 = intialize, 2 = cleanup */ 14 62 2 text_ptr ptr, /* pointer to the text area */ 14 63 /* the image lines */ 14 64 2 line (max_image_lines), 14 65 3 sws, 14 66 4 quad bit (6) unal, /* text set position flags */ 14 67 4 art bit (1) unal, /* 1 = artwork in the line */ 14 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 14 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 14 70 4 white bit (1) unal, /* line is white */ 14 71 4 MBZ bit (26) unal, 14 72 3 depth fixed bin (31), /* page depth for the text */ 14 73 3 gaps fixed bin, /* number of WS gaps in the line */ 14 74 3 info like text_entry.info, 14 75 /* input file info */ 14 76 3 lead fixed bin (31), /* lead value if trailing WS */ 14 77 3 lfnt fixed bin, /* font at the left margin */ 14 78 3 lmarg fixed bin (31), /* text left margin position */ 14 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 14 80 3 net fixed bin (31), /* net width for filling */ 14 81 3 pos fixed bin (31), /* current horiz position */ 14 82 3 ptr ptr, /* pointer to the text */ 14 83 3 rmarg fixed bin (31), /* text right margin position */ 14 84 3 width fixed bin (31); /* width of the text */ 14 85 /* current page formatting parms */ 14 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 14 87 2 init_page_depth 14 88 fixed bin (31), /* initial page depth */ 14 89 2 length fixed bin (31), /* page length */ 14 90 2 lmarg, /* page left margin */ 14 91 3 even fixed bin (31), 14 92 3 odd fixed bin (31), 14 93 2 margin, /* margin values */ 14 94 3 top fixed bin (31), 14 95 3 header fixed bin (31), 14 96 3 footer fixed bin (31), 14 97 3 bottom fixed bin (31), 14 98 2 measure fixed bin (31), /* line space available for text */ 14 99 2 net, /* net usable space on page */ 14 100 3 even fixed bin (31), /* even pages */ 14 101 3 odd fixed bin (31), /* odd pages */ 14 102 /* arrays at the end */ 14 103 2 cols, /* columns defined for the page */ 14 104 3 bal bit (1) unal, /* column balancing control flag */ 14 105 3 MBZ bit (17) unal, 14 106 3 count fixed bin unal; /* the number of columns */ 14 107 /* default page formatting parms */ 14 108 dcl 1 init_page_parms 14 109 aligned like page_parms 14 110 based (const.init_page_parms_ptr); 14 111 14 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 2767 15 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 15 2 15 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 15 4 15 5 dcl shared_version fixed bin (35) static options (constant) init (17); 15 6 15 7 dcl 1 shared aligned based (const.shared_ptr), 15 8 2 version fixed bin (35), /* version of this structure */ 15 9 2 chars, 15 10 ( 3 sym_delim, /* delimiter for symbols */ 15 11 3 ttl_delim, /* delimiter for title parts */ 15 12 3 wrd_brkr /* word break character */ 15 13 ) char (1) unal, 15 14 3 PAD char (1) unal, 15 15 2 cbar_type char (4) var, /* change bar type */ 15 16 2 dot_add_letter /* dot page add letter */ 15 17 char (1) var, 15 18 2 EN_width fixed bin (31), /* width of EN in current font */ 15 19 2 eqn_refct fixed bin, /* equation reference counter */ 15 20 2 footref_fcs /* footnote ref FCS string */ 15 21 char (8) aligned, 15 22 2 ftn_reset char (8) var, /* footnote reset mode */ 15 23 2 ftnrefct fixed bin, /* footnote ref counter */ 15 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 15 25 2 if_nest, /* if/then/else logic control */ 15 26 3 ndx fixed bin, /* depth of logic nest */ 15 27 3 e (25), /* nest entries */ 15 28 /* .if control switch */ 15 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 15 30 4 info aligned like text_entry.info, 15 31 4 line char (256) var, /* the control line */ 15 32 2 indctl, /* indent ctls stack */ 15 33 3 ndx fixed bin, /* current level */ 15 34 /* switch bits */ 15 35 3 stk (0:35) bit (1) unal, 15 36 2 input_dirname 15 37 char (168) var, /* dir containing current input file */ 15 38 2 input_filename 15 39 char (200) var, /* current input file name */ 15 40 2 lead fixed bin (31), /* current linespacing value */ 15 41 2 lit_count fixed bin (35), /* count of literal lines */ 15 42 2 next_pagenmbr 15 43 char (32) var, /* next page number / */ 15 44 2 output_file 15 45 char (32) var, /* output file identifier */ 15 46 2 pagecount fixed bin, /* number of pages produced */ 15 47 2 pagenum, /* page number structure */ 15 48 3 index fixed bin, /* level currently counting */ 15 49 ( 15 50 3 sep char (1) unal, /* separator chars */ 15 51 3 nmbr fixed bin (31), /* the counters */ 15 52 3 mode /* display modes */ 15 53 fixed bin (8) unal 15 54 ) dimension (20), 15 55 2 parameter char (254) var, /* command line parameter */ 15 56 2 param_pres bit (1), /* passed parameter flag */ 15 57 2 pass_counter 15 58 fixed bin, /* pass counter */ 15 59 2 picture, /* picture blocks */ 15 60 3 count fixed bin, /* number of them */ 15 61 3 space fixed bin (31), /* total picture space */ 15 62 3 blk (10), /* picture blocks */ 15 63 4 type char (4), /* type = page/col */ 15 64 4 place char (4), /* place = top/cen/bot */ 15 65 4 ptr ptr, /* pointer to block */ 15 66 4 size fixed bin (31), /* size of the picture */ 15 67 2 ptrs, 15 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 15 69 3 blank_footer_ptr, /* -> blank page footer */ 15 70 3 blank_header_ptr, /* -> blank page header */ 15 71 3 blank_text_ptr, /* -> blank page text */ 15 72 3 blkptr, /* -> active text */ 15 73 3 colptr, /* current column */ 15 74 3 compout_ptr, /* iocb pointer for output */ 15 75 3 compx_ptr, /* iocb pointer for compx file */ 15 76 3 ctb_ptr, /* current line artwork table */ 15 77 3 epftrptr, /* even page footer block */ 15 78 3 ephdrptr, /* even page header block */ 15 79 3 fcb_ptr, /* input file control block pointer */ 15 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 15 81 3 footnote_header_ptr, /* footnote header "title" */ 15 82 3 graphic_page_ptr, /* graphic output page */ 15 83 3 hit_data_ptr, /* hit data pointer */ 15 84 3 htab_ptr, /* horizontal tab tables */ 15 85 3 hwrd_data_ptr, /* local hyphenation table */ 15 86 3 insert_ptr, /* data entry for current input file */ 15 87 3 opftrptr, /* odd page footer block */ 15 88 3 ophdrptr, /* odd page header block */ 15 89 3 ptb_ptr, /* previous line artwork table */ 15 90 3 spcl_blkptr, /* "special" block pointer */ 15 91 3 tbldata_ptr, /* table column data structure */ 15 92 3 tblkdata_ptr, /* text block data array */ 15 93 3 text_header_ptr /* empty text header structure */ 15 94 ) ptr, 15 95 2 scale, /* space conversion scale factors */ 15 96 3 horz fixed bin (31), /* horizontal */ 15 97 3 vert fixed bin (31), /* vertical */ 15 98 2 source_filename 15 99 char (200) var, /* current source file name */ 15 100 2 sws, /* switch bits */ 15 101 ( 3 bug_mode, /* debug mode */ 15 102 3 compout_not_headed, /* compout is not headed */ 15 103 3 end_input, /* EOF for current input file */ 15 104 3 end_output, /* no more output is wanted */ 15 105 3 firstpass, /* first pass over input */ 15 106 3 ftn_mode, /* in footnote mode */ 15 107 3 hyph_mode, /* hyphenating mode */ 15 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 15 109 3 literal_mode, /* literal line mode flag */ 15 110 3 pageblock, /* blocks belong to page */ 15 111 3 picture_mode, /* building a picture */ 15 112 3 print_flag, /* producing output */ 15 113 3 purge_ftns, /* purging footnotes */ 15 114 3 suppress_footref, /* suppress next footnote ref */ 15 115 3 table_mode /* table mode */ 15 116 ) bit (1) unal, 15 117 3 MBZ bit (21) unal, 15 118 2 trans, /* trans table for .tr */ 15 119 3 in char (128) var, /* input chars */ 15 120 3 out char (128) var, /* output chars */ 15 121 2 widow_size fixed bin (31), /* widow size */ 15 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 15 123 /* to save shared data between files/passes */ 15 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 15 125 15 126 dcl dot_addltr_symb_index 15 127 fixed bin static options (constant) init (12); 15 128 dcl max_text_lines fixed bin static options (constant) init (1000); 15 129 dcl mode_string char (16) static options (constant) 15 130 init ("arbihxocalaurlru"); 15 131 /* value overlays */ 15 132 dcl flag_value bit (1) based; 15 133 dcl num_value fixed bin (31) based; 15 134 15 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 2768 16 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 16 2 16 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 16 4 16 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 16 6 2 ct fixed bin, /* number of active table formats */ 16 7 2 ndx fixed bin, /* index of current active format */ 16 8 2 fmt (20), /* the format */ 16 9 3 name char (32) var, /* name of the format */ 16 10 3 ptr ptr; /* pointer to the format data */ 16 11 16 12 dcl tblfmtndx fixed bin; /* current table format index */ 16 13 dcl tblfmtptr ptr; /* -> current table format */ 16 14 /* table format data */ 16 15 dcl 1 tblfmt aligned based (tblfmtptr), 16 16 2 context bit (1), /* =1 if context mode */ 16 17 2 ccol fixed bin, /* the current table column */ 16 18 2 maxdepth fixed bin (31), /* max depth in table */ 16 19 2 ncols fixed bin, /* number of columns in this format */ 16 20 2 colptr (0:20) ptr; /* pointers to the columns */ 16 21 16 22 dcl tblcolndx fixed bin; /* current table column index */ 16 23 /* -> current table column */ 16 24 dcl tblcolptr ptr init (null ()); 16 25 /* table column data */ 16 26 dcl 1 tblcol aligned based (tblcolptr), 16 27 2 align, /* column alignment mode */ 16 28 3 posn fixed bin (31), 16 29 3 str char (32) var, 16 30 2 depth fixed bin (31), /* current depth for column */ 16 31 2 gutter fixed bin (31), 16 32 2 leader char (16) var, /* leadering string */ 16 33 2 margin, 16 34 3 left fixed bin (31), 16 35 3 right fixed bin (31), 16 36 2 valign bit (4) unal, /* vertical alignment flags */ 16 37 2 MBZ bit (29) unal, 16 38 2 parms /* parms for columns */ 16 39 aligned like default_parms; 16 40 16 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 16 42 /* -> previous table column */ 16 43 dcl prvtblcolptr ptr init (null ()); 16 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 16 45 16 46 dcl vtop bit (4) static options (constant) init ("1000"b); 16 47 dcl vcen bit (4) static options (constant) init ("0100"b); 16 48 dcl vbot bit (4) static options (constant) init ("0010"b); 16 49 dcl vjust bit (4) static options (constant) init ("0001"b); 16 50 16 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 2769 2770 dcl 1 save_info like text_entry.info; 2771 /* to hold info of .go line */ 2772 dcl 1 hit_line aligned like text_entry; 2773 /* the hit line entry */ 17 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 17 2 17 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 17 4 17 5 dcl 1 tblkdata /* data for allocated text blocks */ 17 6 aligned based (shared.tblkdata_ptr), 17 7 2 block, /* block pool */ 17 8 3 count fixed bin, 17 9 3 ptr (500) ptr, /* block pointers */ 17 10 /* block state flags */ 17 11 3 free (500) bit (1) unal, 17 12 2 line_area, /* line area pool */ 17 13 3 count fixed bin, 17 14 3 ptr (500) ptr, /* area pointers */ 17 15 /* area state flags */ 17 16 3 free (500) bit (1) unal, 17 17 2 text_area, /* text area pool */ 17 18 3 count fixed bin, 17 19 3 ptr (500) ptr, /* area pointers */ 17 20 /* area state flags */ 17 21 3 free (500) bit (1) unal, 17 22 3 string_area_count 17 23 fixed bin; /* line areas */ 17 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 17 25 dcl line_area_ptr ptr init (null); 17 26 dcl 1 line_area aligned based (line_area_ptr), 17 27 2 next ptr, /* forward thread */ 17 28 2 prev ptr, /* backward thread */ 17 29 2 count fixed bin, /* number of lines allocated */ 17 30 2 ndx fixed bin, /* index of current line */ 17 31 2 pndx fixed bin, /* area pool index */ 17 32 2 linptr (LINE_AREA_SIZE) ptr; 17 33 /* text areas */ 17 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 17 35 dcl text_area_ptr ptr init (null); 17 36 dcl 1 text_area aligned based (text_area_ptr), 17 37 2 next ptr, /* forward thread */ 17 38 2 count fixed bin, /* number of areas allocated */ 17 39 2 ndx fixed bin, /* index of current strarea */ 17 40 2 pndx fixed bin, /* area pool index */ 17 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 17 42 /* text string area */ 17 43 dcl string_area (256) fixed bin based; 17 44 dcl txtstrptr ptr; /* current text string */ 17 45 dcl txtstr char (1020) var based (txtstrptr); 17 46 17 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 17 48 /* general text block */ 17 49 dcl 1 text aligned based (shared.blkptr), 17 50 2 version fixed bin, /* version of structure */ 17 51 2 blkndx fixed bin, /* block data index */ 17 52 2 blktype char (2), /* block type code */ 17 53 /* dynamic block control stuff */ 17 54 2 hdr aligned like text_header, 17 55 /* text read from input file */ 17 56 2 input aligned like text_entry, 17 57 2 input_line char (1020) var,/* input buffer */ 17 58 2 line_area, 17 59 3 first ptr, /* head of line area thread */ 17 60 3 cur ptr, /* current line area */ 17 61 2 next_text ptr, /* next text string */ 17 62 /* text formatting parameters */ 17 63 2 parms aligned like default_parms, 17 64 2 text_area, 17 65 3 first ptr, /* head of text area thread */ 17 66 3 cur ptr; /* current text area */ 17 67 /* an empty text block line */ 17 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 17 69 2 sws, /* unaligned switches, etc. */ 17 70 3 art bit (1) unal, /* line has artwork */ 17 71 3 cbar, /* change bar flags */ 17 72 4 add bit (1) unal, /* text addition flag */ 17 73 4 del bit (1) unal, /* text deletion flag */ 17 74 4 mod bit (1) unal, /* text modification flag */ 17 75 3 default bit (1) unal, /* 1 = default case as needed */ 17 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 17 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 17 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 17 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 17 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 17 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 17 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 17 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 17 84 3 oflo bit (1) unal, /* line causes overflow */ 17 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 17 86 3 quad bit (6) unal, /* text alignment flags */ 17 87 3 space_added /* 1= line has added space */ 17 88 bit (1) unal, 17 89 3 spcl, /* special entry - not output text */ 17 90 4 file bit (1) unal, /* 1= output to special file */ 17 91 4 blk_splt /* 1= action at block split time */ 17 92 bit (1) unal, 17 93 4 page_mkup /* 1= action at page makeup time */ 17 94 bit (1) unal, 17 95 3 table bit (1) unal, /* 1= line is a table entry */ 17 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 17 97 3 title bit (1) unal, /* 1= line is a <title> */ 17 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 17 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 17 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 17 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 17 102 3 white bit (1) unal, /* 1= line is white space */ 17 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 17 104 3 MBZ bit (4) unal, 17 105 2 art_start fixed bin unal, /* start of art string in line */ 17 106 2 art_len fixed bin unal, /* length of art string in line */ 17 107 2 cbar_level /* change level for cbars */ 17 108 char (1) aligned, 17 109 2 cur, /* current scanning data for line */ 17 110 3 chrct fixed bin, /* count of chars scanned */ 17 111 3 gaps fixed bin, /* gap count */ 17 112 3 width fixed bin (31), /* width of font chars */ 17 113 3 min fixed bin (31), /* width of min spbnds */ 17 114 3 avg fixed bin (31), /* width of avg spbnds */ 17 115 3 max fixed bin (31), /* width of max spbnds */ 17 116 3 font like fntstk_entry, 17 117 2 depth fixed bin (31), /* page depth for line */ 17 118 /* font at start of line */ 17 119 2 font like fntstk_entry, 17 120 2 index fixed bin (21), /* char index for line scanning */ 17 121 2 info, /* stuff created during line input */ 17 122 3 fileno fixed bin, /* input file index */ 17 123 3 lineno fixed bin, /* input file line number */ 17 124 3 lineno0 fixed bin, /* call_box0 line number */ 17 125 2 linespace fixed bin (31), /* linespace value for the line */ 17 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 17 127 2 mod_len fixed bin, /* length of modified text */ 17 128 2 mod_start fixed bin, /* index for start of modified text */ 17 129 2 net fixed bin (31), /* net line width for filling */ 17 130 2 ptr ptr, /* pointer to the actual text */ 17 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 17 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 17 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 17 134 2 tblcol fixed bin, /* column for table entries */ 17 135 2 title_delim 17 136 char (1) unal, /* title delimiter if a <title> */ 17 137 2 title_index 17 138 fixed bin, /* <title> block index for line */ 17 139 2 width fixed bin (31), /* width of text */ 17 140 2 ftn, /* footnote info for line */ 17 141 3 ct fixed bin, /* number of footnote refs */ 17 142 3 used fixed bin (31), /* space used */ 17 143 3 e (40), /* limit is arbitrary */ 17 144 4 blkndx fixed bin unal, /* block index of footnote - if this 17 145* value is 0, then .frf was used */ 17 146 4 refno fixed bin unal; /* reference number */ 17 147 17 148 dcl ( 17 149 quadi init ("40"b3), /* set to the inside margin */ 17 150 quado init ("20"b3), /* set to the outside margin */ 17 151 quadl init ("10"b3), /* set left */ 17 152 quadc init ("04"b3), /* set centered */ 17 153 quadr init ("02"b3), /* set right */ 17 154 just init ("01"b3) /* justified */ 17 155 ) bit (6) static options (constant); 17 156 /* control line structure */ 17 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 17 158 dcl ctl_line char (1020) var based (ctl.ptr); 17 159 17 160 dcl txtlinptr ptr; /* the current text line */ 17 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 17 162 /* empty text header structure */ 17 163 dcl 1 text_header aligned based (const.text_header_ptr), 17 164 2 sws, /* control switches */ 17 165 3 art bit (1) unal, /* block has artwork */ 17 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 17 167 3 modified bit (1) unal, /* block contains modified lines */ 17 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 17 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 17 170 3 tblblk bit (1) unal, /* a table block */ 17 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 17 172 3 white bit (1) unal, /* block is a white space block */ 17 173 3 picture bit (1) unal, /* picture block */ 17 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 17 175 3 MBZ bit (26) unal, 17 176 2 art_count fixed bin unal, /* to count input art lines */ 17 177 2 blkptr ptr, /* pointer to suspended block */ 17 178 2 cap_size fixed bin unal, /* line count of text caption */ 17 179 2 cap_used fixed bin (31), /* size of text caption */ 17 180 2 colno fixed bin unal, /* column owning the block */ 17 181 2 count fixed bin unal, /* line count for block */ 17 182 2 eqn_line_count 17 183 fixed bin unal, /* counter for equation lines */ 17 184 2 first_text fixed bin unal, /* OBSOLETE */ 17 185 2 ftn, /* footnotes */ 17 186 3 ct fixed bin, /* count */ 17 187 3 usd fixed bin (31), /* space used */ 17 188 3 blkndx (40) fixed bin, /* footnote block index values */ 17 189 2 head_size fixed bin, /* line count of text header */ 17 190 2 head_used fixed bin (31), /* size of text header */ 17 191 2 index fixed bin unal, /* block index of next output line */ 17 192 2 keep_count fixed bin unal, /* to count input keep lines */ 17 193 2 last_line fixed bin, /* last text line in column */ 17 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 17 195 2 name char (32) var, /* block name, if any */ 17 196 2 nofill_count /* to count nofill lines */ 17 197 fixed bin, 17 198 2 parms_ptr ptr, /* parms for suspended block */ 17 199 2 refer fixed bin, /* inter-block reference */ 17 200 2 refer_index /* OBSOLETE */ 17 201 fixed bin, /* a reference */ 17 202 2 split fixed bin, /* split point for balancing */ 17 203 2 trl_ws fixed bin (31), /* trailing WS */ 17 204 2 used fixed bin (31); /* page space used by a column/block */ 17 205 /* text formatting parameters */ 17 206 dcl 1 text_parms aligned like default_parms 17 207 based (const.text_parms_ptr); 17 208 17 209 dcl 1 current_parms 17 210 aligned like default_parms 17 211 based (const.current_parms_ptr); 17 212 17 213 dcl 1 default_parms 17 214 aligned based (const.default_parms_ptr), 17 215 2 sws, /* control switches */ 17 216 3 quad bit (6) unal, /* text alignment mode */ 17 217 3 art bit (1) unal, /* 1 = block countains artwork */ 17 218 3 cbar, /* change bar flags */ 17 219 4 add bit (1) unal, /* text addition flag */ 17 220 4 del bit (1) unal, /* text deletion flag for next line */ 17 221 4 mod bit (1) unal, /* text modification flag */ 17 222 3 fill_mode 17 223 bit (1) unal, /* 1 = fill mode ON */ 17 224 3 footnote bit (1) unal, /* block is a footnote */ 17 225 3 hfc bit (1) unal, /* OBSOLETE */ 17 226 3 htab_mode 17 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 17 228 3 keep bit (1) unal, /* keep mode */ 17 229 3 page bit (1) unal, /* block belongs to page, not text */ 17 230 3 title_mode 17 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 17 232 3 MBZ bit (19) unal, 17 233 2 ftrptr ptr, /* text caption block */ 17 234 2 cbar_level /* change level for cbars */ 17 235 char (1) aligned, 17 236 2 hdrptr ptr, /* text header block */ 17 237 2 left, /* left margin data */ 17 238 3 indent fixed bin (31), 17 239 3 undent fixed bin (31), 17 240 2 linespace fixed bin (31), /* line spacing value */ 17 241 2 measure fixed bin (31), /* line space for text */ 17 242 /* right margin data */ 17 243 2 right like default_parms.left, 17 244 2 fntstk, /* stack of last 20 font changes */ 17 245 3 index fixed bin, /* which one in use */ 17 246 /* entry(0) is the default */ 17 247 3 entry (0:19) like fntstk_entry; 17 248 17 249 dcl hfcblk_ptr ptr; 17 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 17 251 17 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 2774 18 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 18 2 18 3 /* Written: 9/80 - JA Falksen 18 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 18 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 18 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 18 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 18 8* (3) char (*) var. Version 4. */ 18 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 18 10* sequence for comp_dvt.displayproc. - Version 5. 18 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 18 12**/ 18 13 18 14 /* All names which end in "_r"are offset values within the device table */ 18 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 18 16 18 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 18 18 18 19 dcl 1 comp_dvt aligned based (const.devptr), 18 20 2 devclass char (32), /* what general kind of device is */ 18 21 /* this, currently available: */ 18 22 /* "printer" (includes terminals), */ 18 23 /* "braille", "bitmap" */ 18 24 2 outproc entry /* page output processor */ 18 25 (fixed bin, /* function - 0=build */ 18 26 /* 1=init page */ 18 27 /* 2=init file */ 18 28 /* 3=cleanup */ 18 29 fixed bin (35)),/* error code */ 18 30 2 footproc entry /* footnote reference proc */ 18 31 ((3) char (*) var, 18 32 /* reference string (IN/OUT) */ 18 33 ptr), /* comp_dvt_p (IN) */ 18 34 2 artproc entry (), /* artwork proc */ 18 35 /* dont know how to describe yet */ 18 36 2 displayproc 18 37 entry /* string display interpreter */ 18 38 (char (*) var, /* raw input string */ 18 39 fixed bin (24), /* chars used in this call */ 18 40 bit (1)) /* 1= dont show display errors */ 18 41 returns (char (*) var), 18 42 /* interpreted output string */ 18 43 /* following values are in millipoints */ 18 44 2 min_WS fixed bin (31), /* minimum whitespace */ 18 45 2 min_lead fixed bin (31), /* minimun lead */ 18 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 18 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 18 48 2 def_vmt fixed bin (31), /* default .vmt */ 18 49 2 def_vmh fixed bin (31), /* default .vmh */ 18 50 2 def_vmf fixed bin (31), /* default .vmf */ 18 51 2 def_vmb fixed bin (31), /* default .vmb */ 18 52 2 pdw_max fixed bin (31), /* max page width available */ 18 53 2 pdl_max fixed bin (31), /* max page length available, */ 18 54 /* (0 = unlimited) */ 18 55 2 upshift fixed bin (31), /* footnote reference shift */ 18 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 18 57 2 lettersp fixed bin (31), /* max letterspacing */ 18 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 18 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 18 60 2 init_fam fixed bin, /* initial family index */ 18 61 2 init_mem fixed bin, /* initial member index */ 18 62 2 foot_fam fixed bin, /* initial foot family index */ 18 63 2 foot_mem fixed bin, /* initial foot member index */ 18 64 2 init_family 18 65 char (32), /* initial font family to use */ 18 66 2 init_member 18 67 char (32), /* initial font member to use */ 18 68 ( /* the following are offsets */ 18 69 2 atd_r, /* attach desc for on-line output */ 18 70 2 dvc_r, /* device control table relptr */ 18 71 2 comment_r, /* comment string relptr */ 18 72 2 cleanup_r, /* "cleanup" string relptr */ 18 73 2 medsel_table_r /* media select table relptr */ 18 74 ) bit (18) aligned, 18 75 2 foot_family 18 76 char (32), /* family for footnote reference */ 18 77 2 foot_member 18 78 char (32), /* member for footnote reference */ 18 79 /* if one was specified */ 18 80 2 sws unaligned, 18 81 3 interleave /* 0- page block has lines in column */ 18 82 bit (1), /* order left-to-right */ 18 83 /* 1- page block has lines in line */ 18 84 /* order top-to-bottom */ 18 85 3 justifying /* 1- device justifies lines */ 18 86 bit (1), 18 87 3 mbz bit (24), 18 88 3 endpage bit (9), /* EOP char if not "0"b */ 18 89 2 open_mode fixed bin (35), /* when going to a file */ 18 90 2 recleng fixed bin, /* length of tape records */ 18 91 2 family_ct fixed bin, /* # families present */ 18 92 2 family (comp_dvt.family_ct), 18 93 /* families of fonts defined */ 18 94 3 member_r bit (18) aligned, 18 95 /* member table relptr */ 18 96 3 name char (32); /* family name */ 18 97 18 98 18 99 /* The usage formula for units: */ 18 100 /* */ 18 101 /* rel_units * length_in_points */ 18 102 /* ---------------------------- = length_in_units */ 18 103 /* points_per_EM */ 18 104 18 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 2775 2776 /* DISORDER DUE TO SYMBOL TABLE SIZE LIMIT */ 19 1 /* BEGIN INCLUDE FILE comp_tree.incl.pl1 */ 19 2 19 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 19 4 19 5 dcl 1 tree /* symbol tree structure */ 19 6 based (const.tree_ptr) aligned, 19 7 ( 2 align_mode, /* current text alignment mode */ 19 8 2 art_mode, /* artwork mode */ 19 9 2 block_index, /* current block index */ 19 10 2 block_name, /* name of current block */ 19 11 2 bottom_margin, /* page bottom margin */ 19 12 2 calling_file_name, /* caller of inserted file */ 19 13 2 callers_lineno, /* lineno of .ifi in calling file */ 19 14 2 devclass, /* DeviceClass */ 19 15 2 devname, /* DeviceName */ 19 16 2 dot_addltr, /* add letter of dot page */ 19 17 2 equation_mode, /* equation mode */ 19 18 2 fill_mode, /* text filling mode */ 19 19 2 fontname, /* fontname function */ 19 20 2 footer_margin, /* page footer margin function */ 19 21 2 frontpage, /* front page flag function */ 19 22 2 head_space, /* head space function */ 19 23 2 header_margin, /* page header margin function */ 19 24 2 keep_mode, /* block splitting mode */ 19 25 2 left_indent, /* left margin indention */ 19 26 2 left_undent, /* left margin adjustment */ 19 27 2 line_input, /* line input function */ 19 28 2 linesleft, /* lines left function */ 19 29 2 linespace, /* linespace function */ 19 30 2 measure_bif, /* measure function */ 19 31 2 next_pageno, /* next page number */ 19 32 2 pagecount, /* total page count function */ 19 33 2 pagelines, /* line number on page function */ 19 34 2 page_length, /* current page length function */ 19 35 2 pageno, /* page number function */ 19 36 2 pointsize, /* pointsize function */ 19 37 2 right_indent, /* right margin indention */ 19 38 2 right_undent, /* right margin adjustment */ 19 39 2 symbol_delimiter, /* symbol delimiter function */ 19 40 2 text_depth, /* text depth function */ 19 41 2 text_lineno, /* input file line number for output_line */ 19 42 2 text_width, /* text width function */ 19 43 2 title_delimiter, /* title delimiter function */ 19 44 2 top_margin, /* page top margin function */ 19 45 2 trans, /* translation table for .trf */ 19 46 2 userinput /* terminal insert function */ 19 47 ) label, /**/ 19 48 /* VARIABLE TABLES */ 19 49 2 count fixed bin, /* variable areas allocated */ 19 50 2 areandx fixed bin, /* current area */ 19 51 /* entry count per area */ 19 52 2 entry_ct (MAX_TREE_AREAS) fixed bin, 19 53 2 entryndx fixed bin, /* current entry in area */ 19 54 ( /* storage area pointers */ 19 55 2 flag_ptr, /* flags */ 19 56 2 name_ptr, /* names */ 19 57 2 num_ptr, /* number values */ 19 58 2 incr_ptr, /* counter increments */ 19 59 2 var_ptr /* variable structures */ 19 60 ) ptr dimension (MAX_TREE_AREAS); 19 61 /* flag values */ 19 62 dcl tree_flags (MAX_TREE_AREA_CT) bit (1) aligned 19 63 based (tree.flag_ptr (tree.areandx)); 19 64 /* counter increment values */ 19 65 dcl tree_incrs (MAX_TREE_AREA_CT) fixed bin (31) 19 66 based (tree.incr_ptr (tree.areandx)); 19 67 /* variable names */ 19 68 dcl tree_names_ptr ptr init (null); 19 69 dcl tree_names (MAX_TREE_AREA_CT) char (32) unal 19 70 based (tree_names_ptr); 19 71 /* numeric values */ 19 72 dcl tree_nums (MAX_TREE_AREA_CT) fixed bin (31) 19 73 based (tree.num_ptr (tree.areandx)); 19 74 19 75 dcl tree_var_ptr ptr init (null);/* variable entry structures */ 19 76 dcl 1 tree_var (MAX_TREE_AREA_CT) aligned based (tree_var_ptr), 19 77 2 flags bit (9) aligned,/* type flags */ 19 78 2 mode fixed bin, /* numeric display mode */ 19 79 2 flag_loc ptr, /* flag value pointer */ 19 80 2 num_loc ptr, /* num value pointer */ 19 81 2 incr_loc ptr, /* num increment pointer */ 19 82 2 str_loc ptr; /* str value pointer */ 19 83 19 84 /* END INCLUDE FILE comp_tree.incl.pl1 */ 2777 20 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 20 2* 20 3* This storage is converted from external (as declared) to internal by the 20 4* binder and contains items that must be accessible to both the bound and 20 5* unbound program. */ 20 6 20 7 /* Written: ??/??/7? - EJW 20 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 20 9* and removed the codes array; version 6. 20 10**/ 20 11 20 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 20 13 20 14 dcl 1 compstat$compconst 20 15 aligned like const ext static; 20 16 20 17 dcl const_version fixed bin (35) static options (constant) init (6); 20 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 20 19 fixed bin static options (constant) init (80); 20 20 dcl MAX_TREE_AREAS /* number of tree areas */ 20 21 fixed bin static options (constant) init (20); 20 22 20 23 dcl 1 const aligned based (compstat$compconst.ptr), 20 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 20 25 2 version fixed bin (35), /* structure version */ 20 26 2 art_symbols /* string of art symbols */ 20 27 char (28) aligned, 20 28 2 builtin_count /* count of builtin variables */ 20 29 fixed bin, 20 30 2 comp_dir char (200), /* dir in which compose lives */ 20 31 2 comp_version 20 32 char (8) var, /* compose version id */ 20 33 2 date_value char (8) var, /* current date */ 20 34 2 dsm_name char (32), /* device support module name */ 20 35 2 dvt_name char (32), /* device table name */ 20 36 2 max_seg_chars 20 37 fixed bin (35), /* char count in a max seg */ 20 38 2 null_str char (1) var, /* an empty string */ 20 39 2 ptrs, 20 40 ( 3 call_stk_ptr, /* -> insert call stack */ 20 41 3 colhdrptr, /* empty column header structure */ 20 42 3 ctl_ptr, /* input line structure */ 20 43 3 current_parms_ptr, /* current formatting parms */ 20 44 3 default_parms_ptr, /* default initial text parms */ 20 45 3 devptr, /* -> comp_dvt structure */ 20 46 3 dvidptr, /* -> comp_dvid structure */ 20 47 3 errblk_ptr, /* error message block pointer */ 20 48 3 footnote_parms_ptr, /* footnote formatting parms */ 20 49 3 fnttbldata_ptr, /* -> font table data */ 20 50 3 global_area_ptr, /* per invocation storage */ 20 51 3 init_page_parms_ptr, /* default initial page parms */ 20 52 3 insert_data_ptr, /* insert file data block */ 20 53 3 local_area_ptr, /* per file storage */ 20 54 3 loctbl_ptr, /* for font copying */ 20 55 3 option_ptr, /* program options block */ 20 56 3 outproc_ptr, /* device writer for cleanup */ 20 57 3 page_ptr, /* active page structure */ 20 58 3 page_header_ptr, /* empty page header structure */ 20 59 3 page_parms_ptr, /* page formatting parameter block */ 20 60 3 save_shared_ptr, /* saved shared data */ 20 61 3 shared_ptr, /* shared data structure */ 20 62 3 text_entry_ptr, /* empty text entry structure */ 20 63 3 text_header_ptr, /* empty text header structure */ 20 64 3 text_parms_ptr, /* main body formatting parms */ 20 65 3 tree_ptr /* symbol tree structure */ 20 66 ) ptr, 20 67 2 time_value char (6) var; /* time at start */ 20 68 20 69 /* Other external */ 20 70 dcl ( 20 71 ioa_, 20 72 ioa_$nnl 20 73 ) entry options (variable); 20 74 dcl iox_$error_output 20 75 ptr ext static, /* iocb pointer for error_output */ 20 76 iox_$user_input 20 77 ptr ext static, /* iocb pointer for user_input */ 20 78 iox_$user_output 20 79 ptr ext static; /* iocb pointer for user_output */ 20 80 dcl sys_info$max_seg_size 20 81 fixed bin (18) ext static; 20 82 20 83 /* END INCLUDE FILE compstat.incl.pl1 */ 2778 21 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 21 6 /* */ 21 7 /* This include segment allocates space in a translator's temporary segment. It */ 21 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 21 9 /* internal procedure in the program which includes this include segment. The temporary */ 21 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 21 11 /* */ 21 12 /* S__t_a_t_u_s */ 21 13 /* */ 21 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 21 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 21 16 /* */ 21 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 18 21 19 21 20 21 21 allocate: procedure (Parea, ANwords) returns (ptr); 21 22 21 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 21 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 21 25 21 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 21 27 /* to a 0 mod 2 quantity. */ 21 28 P ptr, /* a temporary pointer. */ 21 29 code fixed bin(35), /* a status code. */ 21 30 (mod, null, ptr) builtin; 21 31 21 32 dcl 1 area based (Parea), 21 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 21 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 21 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 21 36 21 37 dcl translator_temp_$get_next_segment 21 38 entry (ptr, ptr, fixed bin(35)); 21 39 21 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 21 41 if Nwords > Lfree then do; /* handle area overflow. */ 21 42 call translator_temp_$get_next_segment (Parea, P, code); 21 43 if P = null then return (null); 21 44 Parea = P; 21 45 if Nwords > area.Lfree then return (null); 21 46 end; 21 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 21 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 21 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 21 50 return (P); 21 51 21 52 end allocate; 21 53 21 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 2779 2780 2781 end comp_ctls_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0909.0 comp_ctls_.pl1 >spec>online>comp>comp_ctls_.pl1 2754 1 03/01/85 1411.8 comp_aux_file.incl.pl1 >ldd>include>comp_aux_file.incl.pl1 2755 2 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 2756 3 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 2757 4 03/01/85 1411.8 comp_ctl_index.incl.pl1 >ldd>include>comp_ctl_index.incl.pl1 2758 5 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 2759 6 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 2760 7 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 2761 8 04/23/85 0912.3 comp_font.incl.pl1 >spec>online>comp>comp_font.incl.pl1 2762 9 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1 2763 10 03/01/85 1412.0 comp_hwrd_data.incl.pl1 >ldd>include>comp_hwrd_data.incl.pl1 2764 11 03/01/85 1412.0 comp_insert.incl.pl1 >ldd>include>comp_insert.incl.pl1 2765 12 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 2766 13 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 2767 14 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 2768 15 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 2769 16 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 2774 17 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 2775 18 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 2777 19 03/01/85 1412.0 comp_tree.incl.pl1 >ldd>include>comp_tree.incl.pl1 2778 20 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 2779 21 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 21-23 ref 21-21 21-40 21-40 CREATE 006330 constant bit(1) initial unaligned dcl 234 set ref 1904* DVctl 2(01) based bit(1) level 3 packed unaligned dcl 17-157 set ref 2179* 2185* 2418* 2428* ELSE 032405 constant fixed bin(17,0) initial dcl 247 ref 728 801 1391 EN constant char(1) initial unaligned dcl 12-6 ref 2078 2079 LOG 006344 constant fixed bin(17,0) initial dcl 276 set ref 1383* 2123* Lfree 2 based fixed bin(35,0) level 2 dcl 21-32 set ref 21-41 21-45 21-49* 21-49 MAX_TREE_AREAS constant fixed bin(17,0) initial dcl 20-20 ref 1905 1905 1905 1905 1905 1906 NL 000310 constant char(1) initial unaligned dcl 12-6 set ref 1252 2147 2147 2154 2380 2380 2395 Nwords 003544 automatic fixed bin(17,0) dcl 21-26 set ref 21-40* 21-41 21-45 21-48 21-49 Ofree 1 based fixed bin(35,0) level 2 dcl 21-32 set ref 21-47 21-48* 21-48 P 003546 automatic pointer dcl 21-26 set ref 21-42* 21-43 21-44 21-47* 21-50 PAD constant char(1) initial unaligned dcl 12-6 ref 2154 Parea parameter pointer dcl 21-23 set ref 21-21 21-41 21-42* 21-44* 21-45 21-47 21-47 21-48 21-48 21-49 21-49 THEN constant fixed bin(17,0) initial dcl 290 ref 1373 1386 1389 1952 add 1 based bit(1) level 4 in structure "current_parms" packed unaligned dcl 17-209 in procedure "comp_ctls_" set ref 573* 612* add 1005 based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 574* 613* add 117 based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 574* addr builtin function dcl 309 ref 340 425 425 520 520 528 528 537 537 668 668 677 677 684 684 689 689 720 720 795 795 852 852 858 858 884 884 889 889 903 903 955 955 965 965 971 971 979 979 1005 1005 1071 1071 1085 1085 1095 1156 1156 1213 1213 1236 1245 1245 1253 1253 1277 1277 1281 1281 1379 1379 1383 1383 1528 1528 1528 1528 1538 1538 1538 1538 1557 1557 1563 1563 1644 1644 1654 1654 1674 1674 1700 1700 1734 1734 1749 1749 1817 1817 1822 1822 1832 1832 1844 1844 1859 1859 1864 1864 1872 1872 1882 1882 1890 1890 1897 1897 1944 1944 2037 2037 2065 2065 2069 2069 2113 2113 2123 2123 2147 2147 2153 2153 2155 2155 2193 2193 2209 2209 2222 2222 2371 2371 2380 2380 2388 2388 2396 2396 2400 2400 2407 2407 2507 2507 2528 2528 2553 2553 2564 2564 2596 2596 2654 2654 2664 2664 2711 2711 2721 2721 2729 adjust_bit_count_ 000020 constant entry external dcl 316 ref 2404 again 000100 automatic bit(1) unaligned dcl 23 set ref 346* 348 350* 735* 783* 834* 1577* 1959* 2008* 2017* 2216* area based structure level 1 unaligned dcl 21-32 areandx 241 based fixed bin(17,0) level 2 dcl 19-5 ref 1905 art 0(06) based bit(1) level 3 in structure "current_parms" packed unaligned dcl 17-209 in procedure "comp_ctls_" set ref 1379* 2113* 2193* art 1004(06) based bit(1) level 4 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" ref 1602 1803 aux_file_data based structure level 1 dcl 1-5 set ref 2476 2476 aux_file_data_ptr 3742 based pointer level 3 dcl 15-7 set ref 1230 2380 2396 2404 2404 2473 2476* 2476 2476 2478 2479 2480 2481 2482 2515 2515 2515 2522 2525 2525 2528 2528 2535 2537 2539 2541 2541 2541 2546 2546 2559 2566 2572 aux_file_index 000501 automatic fixed bin(17,0) dcl 26 set ref 1230 2380 2396 2404 2404 2515* 2515* 2520* 2522 2535 2537 2539 2541 2541 2541 2545 2546 2546 2559 2566 2572 aux_name 003260 automatic char(32) unaligned dcl 2460 set ref 2489* 2494* 2502* 2515 2535 aux_path 003270 automatic char(200) unaligned dcl 2461 set ref 2489* 2494* 2499 2502* aux_wrt_buf 000101 automatic varying char(1020) dcl 25 set ref 2386* 2388 2388 2388 2388* 2393* 2393* 2395* 2395 2396 2396 2396 2396 balftn 320 based structure level 3 in structure "col" dcl 3-5 in procedure "comp_ctls_" balftn 2 based structure level 2 in structure "colhdr" dcl 3-21 in procedure "comp_ctls_" balftn 320 based structure level 3 in structure "col0" dcl 3-37 in procedure "comp_ctls_" be_ctl_index 000312 constant fixed bin(17,0) initial dcl 4-9 set ref 373* before builtin function dcl 309 ref 1156 1219 1219 1351 bel_ctl_index 000311 constant fixed bin(17,0) initial dcl 4-9 set ref 366* bits 002723 automatic fixed bin(17,0) dcl 2365 set ref 2404* blank_header_ptr 3746 based pointer level 3 dcl 15-7 ref 1660 blk_splt 3(01) based bit(1) level 4 packed unaligned dcl 17-161 set ref 694* blkct 373 based fixed bin(17,0) level 3 dcl 3-5 ref 1419 blkndx 377 based fixed bin(17,0) array level 4 in structure "col0" dcl 3-37 in procedure "comp_ctls_" set ref 1439* blkndx 16 based fixed bin(17,0) array level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" set ref 1443* blkptr based pointer array level 2 in structure "col0" dcl 3-37 in procedure "comp_ctls_" ref 1630 blkptr 2 based pointer array level 2 in structure "ftnblk_data" dcl 9-5 in procedure "comp_ctls_" ref 1426 blkptr based pointer array level 2 in structure "col" dcl 3-5 in procedure "comp_ctls_" ref 1419 blkptr 3752 based pointer level 3 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 574 574 574 595 595 595 613 613 613 637 637 637 684 684* 689* 692 695 945 945 948 948 975 985 985 986 986 992 1005* 1014 1014 1245 1245* 1253* 1257 1257 1281* 1292 1292 1412 1419* 1420 1441 1441 1442 1442 1443 1443 1587 1593 1599 1599 1602 1602 1602 1602 1622 1622 1637* 1660 1660 1660 1660 1660 1687 1691 1693 1710* 1715 1739 1739 1753 1756 1759 1759 1763 1768 1768 1772 1788 1791 1794 1799 1799 1803 1803 1803 2031 2031 2031 2413 2424 2433 blktype 2 based char(2) level 2 dcl 17-49 ref 2031 2031 blnkct 000502 automatic fixed bin(31,0) dcl 27 set ref 1654* 1660* 1660 1665* 1665 1666* 1666 1668 1671 1698* 1700* 1706 1710* 1746* 1749* 1759* 1759* 1763* 1763 1768* 1768* 1772* 1772 1778* 1778* 1782* 1782 1785 1794* block_break 006344 constant fixed bin(17,0) initial dcl 2-9 set ref 1412* 1602 1614 1618 1712 1717* 1805 1808 bottom 7 based fixed bin(31,0) level 3 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" set ref 2243* 2250 2257 2273 2307 bottom 10 based fixed bin(31,0) level 4 in structure "page" dcl 14-11 in procedure "comp_ctls_" set ref 2250* break_type 000503 automatic fixed bin(17,0) dcl 28 set ref 1602* 1611* 1614* 1618* 1622* 1638* 1684* 1712 1803* 1805* 1808* brkpoints 003364 automatic bit(288) unaligned dcl 2586 set ref 2603* 2639* 2694 brkpts 11 based bit(288) array level 3 dcl 10-3 set ref 2694* buffer parameter varying char dcl 2454 set ref 2449 2485 2489 2494 2495 2507 2528* 2553 2564 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 15-7 ref 335 546 774 822 830 865 1105 1141 1394 1759 1768 1778 1972 1986 1996 2142 2442 call_box based structure level 1 dcl 11-18 call_box0 based structure level 1 dcl 11-19 call_box_ptr 002726 automatic pointer dcl 11-17 set ref 342* 749* 750 810* 811 1103 1104 1105 1119* 1120 1979* 1980 2131* 2132 2138* 2139 call_stack based structure level 1 dcl 11-13 call_stk_ptr 126 based pointer level 3 dcl 20-23 ref 342 342 1219 1219 2741 2741 callers_nest 000504 automatic fixed bin(17,0) dcl 29 set ref 344* 1149 cbar 1005 based structure level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" cbar 117 based structure level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" cbar 4 based structure level 2 in structure "option" dcl 13-5 in procedure "comp_ctls_" cbar 25 based structure level 4 in structure "tblcol" dcl 16-26 in procedure "comp_ctls_" cbar 1 based structure level 3 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" cbar_opt 1(01) based bit(1) level 2 packed unaligned dcl 13-5 ref 558 579 601 619 cbar_type 2 based varying char(4) level 2 dcl 15-7 set ref 576* 598* 616* 642* char builtin function dcl 309 ref 970 chars 1 based structure level 2 dcl 15-7 code 003550 automatic fixed bin(35,0) dcl 21-26 in procedure "allocate" set ref 21-42* code parameter fixed bin(35,0) dcl 2456 in procedure "aux_file" set ref 2449 2471* 2510* 2531* 2555* 2568* col based structure level 1 dcl 3-5 col0 based structure level 1 dcl 3-37 col_count 20 based fixed bin(17,0) level 3 dcl 14-11 ref 1418 col_index 21 based fixed bin(17,0) level 3 dcl 14-11 set ref 684* 1245* 2209 2222 colhdr based structure level 1 dcl 3-21 colno 12 based fixed bin(17,0) level 3 packed unaligned dcl 17-49 ref 1257 1292 1622 colptr 3754 based pointer level 3 dcl 15-7 set ref 1015 1015 1418* 1419 1419 1778 1778 1782 column_ptr 42 based pointer array level 2 dcl 14-11 ref 1418 1433 1433 1435 1435 1437 1437 1439 1439 1630 1665 1666 com_err_ 000022 constant entry external dcl 319 ref 2160 command_line 000505 automatic char(1020) dcl 35 set ref 902* 903 903 comp_abort 002612 stack reference condition dcl 313 ref 1565 2162 comp_block_ctls_ 000050 constant entry external dcl 6-9 ref 366 373 445 456 473 482 comp_break_ 000052 constant entry external dcl 6-11 ref 1257 1292 1412 1450 1593 1638 1691 1715 1717 1739 1799 comp_break_ctls_ 000054 constant entry external dcl 6-12 ref 498 comp_dvt based structure level 1 dcl 18-19 set ref 971 971 comp_error_table_$syntax_error 000012 external static fixed bin(35,0) dcl 302 set ref 528* 537* 2596* comp_error_table_$unknown_keyword 000014 external static fixed bin(35,0) dcl 304 set ref 1277* comp_error_table_$usage_error 000016 external static fixed bin(35,0) dcl 306 set ref 720* 795* 852* 858* 1944* comp_expr_eval_ 000056 constant entry external dcl 6-17 ref 1383 2123 comp_fill_ 000060 constant entry external dcl 6-24 ref 981 comp_font_ 000062 constant entry external dcl 6-25 ref 935 941 comp_format_ctls_ 000064 constant entry external dcl 6-26 ref 435 916 1311 1463 1497 1502 2168 comp_head_page_ 000066 constant entry external dcl 6-33 ref 1242 1415 1627 1723 comp_hft_ctls_ 000070 constant entry external dcl 6-35 ref 467 492 552 646 711 876 893 909 923 1165 1299 1509 1915 1930 1936 2025 2043 comp_insert_ctls_ 000072 constant entry external dcl 6-42 ref 393 1402 1458 1489 comp_read_$line 000100 constant entry external dcl 6-57 ref 749 810 1119 1979 2131 2138 comp_read_$name 000074 constant entry external dcl 6-50 ref 668 1822 1864 1890 comp_read_$number 000076 constant entry external dcl 6-53 ref 884 955 1213 1528 1528 1538 1538 1654 1700 1749 comp_report_ 000102 constant entry external dcl 6-59 ref 425 965 1085 1156 1563 1644 1674 1734 1817 1859 1872 1882 1897 2037 2065 2069 2371 2400 2407 2507 2553 2564 2711 2721 comp_report_$ctlstr 000104 constant entry external dcl 6-61 ref 528 537 677 720 795 852 858 1071 1277 1832 1944 2528 2596 2654 2664 comp_report_$exact 000106 constant entry external dcl 6-64 ref 889 comp_space_ 000110 constant entry external dcl 6-66 ref 1637 1710 1794 comp_tbl_ctls_ 000112 constant entry external dcl 6-68 ref 1920 comp_title_block_ 000114 constant entry external dcl 6-69 ref 1599 comp_update_symbol_ 000116 constant entry external dcl 6-71 ref 1847 1851 comp_use_ref_ 000120 constant entry external dcl 6-74 ref 1379 1844 2113 2153 2193 comp_util_$add_text 000122 constant entry external dcl 6-75 ref 689 1253 1281 comp_util_$display 000124 constant entry external dcl 6-77 ref 335 546 comp_util_$escape 000126 constant entry external dcl 6-80 ref 520 2209 2222 2388 comp_util_$getblk 000130 constant entry external dcl 6-82 ref 684 1245 comp_util_$replace_text 000132 constant entry external dcl 6-96 ref 1005 comp_util_$search_tree 000134 constant entry external dcl 6-98 ref 1904 comp_util_$set_bin 000136 constant entry external dcl 6-100 ref 1328 1518 1521 1528 1538 2243 2257 2273 2307 2348 2353 comp_util_$set_net_page 000140 constant entry external dcl 6-104 ref 2252 2269 2303 2338 comp_util_$translate 000142 constant entry external dcl 6-106 ref 2393 compstat$compconst 000144 external static structure level 1 dcl 20-14 cond_name 001104 automatic varying char(32) dcl 37 set ref 668* 671 677* 682 cond_names 006214 constant varying char(32) initial array dcl 39 ref 671 671 674 const based structure level 1 dcl 20-23 context based bit(1) level 2 dcl 16-15 ref 2204 controls 000334 constant char(32) initial array unaligned dcl 43 set ref 340 414 count 304 based fixed bin(17,0) level 3 in structure "insert" dcl 11-32 in procedure "comp_ctls_" set ref 1092 1095 1138 2708 2726 2729 2736 2736* count 12(18) based fixed bin(17,0) level 3 in structure "hfcblk" packed unaligned dcl 17-250 in procedure "comp_ctls_" ref 2288 2295 2321 2328 count based fixed bin(17,0) level 2 in structure "aux_file_data" dcl 1-5 in procedure "comp_ctls_" set ref 2478* 2515 2515 2522 2525 2572* count based fixed bin(17,0) level 2 in structure "hwrd_data" dcl 10-3 in procedure "comp_ctls_" set ref 1339* 1346* 2684 2696 2696* ct 14 based fixed bin(17,0) level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" set ref 1014* 1014 1441* 1441 1443 ct 375 based fixed bin(17,0) level 4 in structure "col" dcl 3-5 in procedure "comp_ctls_" set ref 1015* 1015 ct 375 based fixed bin(17,0) level 4 in structure "col0" dcl 3-37 in procedure "comp_ctls_" set ref 1433* 1433 1435 1439 ct 205 based fixed bin(17,0) level 3 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" set ref 1011* 1011 1012 1445* 1445 ct 323 based fixed bin(17,0) level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" set ref 985* 985 986 ctl based structure level 1 dcl 17-157 set ref 689 689 979 979 ctl_index 001115 automatic fixed bin(17,0) dcl 239 set ref 414* 416 430* 430 432 435* 445* 452* 456* 467* 473* 478* 482* 492* 498* 552* 646* 711* 876* 893* 909* 916* 923* 1165* 1299* 1311* 1402* 1458* 1463* 1489* 1497* 1502* 1509* 1915* 1920* 1930* 1936* 2025* 2043* 2168* ctl_line based varying char(1020) dcl 17-158 set ref 335 335 352* 352 363 370 385 385 389 397 398 404 408 408 412 425 425 508 508 512 515 528* 537* 562 565 567 583 586 588 605 605 624 627 630 654 658 661 664 668* 677* 682* 682 720* 731* 731 733* 733 735 737 745* 745 749* 752 758 771 774* 795* 810* 813 822* 827 830* 838 852* 858* 881 884* 889 889 898 902 903 930 930 936* 941 941 942* 945 955 955* 965 965 978* 1005 1005 1029* 1032* 1032 1043* 1071* 1081 1085 1085 1090 1112 1119* 1126 1129 1131 1131 1135 1149 1192 1213 1213* 1261 1265 1268 1268 1271 1277* 1343 1350 1351 1352 1355 1373 1378 1379* 1383* 1470 1478 1514 1528 1528* 1528* 1535 1538 1538* 1538* 1563* 1568* 1570 1577 1582* 1634 1641 1644* 1649 1654* 1674* 1698 1700* 1730 1730 1734* 1746 1749* 1811 1817* 1822* 1832* 1841 1844 1844* 1847 1847 1855 1859* 1864* 1872* 1879 1882* 1887 1890* 1897* 1944* 1955* 1955 1957* 1957 1959 1961 1968 1972* 1979* 1982 1992 1992 1996* 2000 2013 2037* 2055 2062 2063 2065* 2069* 2075 2075 2075 2113 2113 2113* 2120 2123* 2131* 2138* 2147 2153* 2154 2155 2177* 2183* 2189 2193* 2194* 2194 2197 2197* 2204 2204 2209 2209* 2216 2216 2216 2222 2222* 2266 2300 2335 2368 2371* 2376* 2380 2386 2400* 2407* 2417* 2427* 2442 2442 2596* 2654* 2664* 2711* 2715 2721* ctl_list based char unaligned dcl 241 ref 414 ctl_ptr 132 based pointer level 3 dcl 20-23 ref 335 335 352 352 363 370 385 385 389 392 397 398 404 406 408 408 408 408 408 408 412 412 425 425 425 425 508 508 508 508 512 512 515 515 520 520 528 528 528 537 537 537 562 562 565 565 567 567 583 583 586 586 588 588 605 605 605 605 624 624 627 627 630 630 651 654 654 658 658 661 661 664 664 668 668 668 668 668 677 677 677 682 682 688 689 689 695 720 720 720 731 731 733 733 735 737 745 745 749 750 752 757 758 771 774 774 795 795 795 810 811 813 822 822 827 830 830 838 852 852 852 858 858 858 881 881 884 884 884 884 884 889 889 889 889 889 889 898 898 902 902 903 903 930 930 930 930 936 941 941 941 941 942 945 945 948 949 951 955 955 955 955 955 955 955 965 965 965 965 978 979 979 1005 1005 1029 1032 1032 1043 1071 1071 1071 1071 1071 1081 1081 1085 1085 1085 1085 1090 1090 1105 1112 1113 1119 1120 1126 1129 1129 1131 1131 1131 1131 1131 1131 1135 1135 1141 1141 1149 1192 1192 1213 1213 1213 1213 1213 1213 1213 1234 1235 1261 1261 1265 1265 1268 1268 1268 1268 1268 1271 1271 1277 1277 1277 1343 1343 1350 1350 1351 1351 1352 1352 1353 1353 1355 1355 1373 1373 1378 1379 1379 1379 1383 1383 1383 1383 1423 1455 1470 1470 1478 1478 1514 1514 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1535 1535 1535 1535 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1563 1563 1563 1568 1570 1573 1577 1582 1634 1634 1641 1641 1644 1644 1644 1649 1649 1654 1654 1654 1654 1654 1674 1674 1674 1698 1698 1700 1700 1700 1700 1700 1730 1730 1730 1730 1734 1734 1734 1746 1746 1749 1749 1749 1749 1749 1811 1811 1817 1817 1817 1822 1822 1822 1822 1822 1832 1832 1832 1841 1841 1844 1844 1844 1844 1847 1847 1847 1847 1855 1855 1859 1859 1859 1864 1864 1864 1864 1864 1872 1872 1872 1879 1879 1882 1882 1882 1887 1887 1890 1890 1890 1890 1890 1897 1897 1897 1944 1944 1944 1955 1955 1957 1957 1959 1961 1968 1972 1972 1979 1980 1982 1992 1992 1996 1996 2000 2013 2037 2037 2037 2055 2055 2062 2062 2062 2063 2063 2065 2065 2065 2069 2069 2069 2075 2075 2075 2075 2075 2075 2113 2113 2113 2113 2113 2113 2120 2120 2123 2123 2123 2123 2131 2132 2138 2139 2147 2147 2153 2153 2153 2154 2155 2177 2179 2179 2183 2185 2185 2189 2189 2193 2193 2193 2194 2194 2195 2197 2197 2204 2204 2209 2209 2209 2209 2216 2216 2216 2222 2222 2222 2222 2266 2300 2335 2368 2368 2371 2371 2371 2376 2376 2380 2380 2386 2386 2388 2388 2400 2400 2400 2407 2407 2407 2417 2418 2419 2427 2428 2429 2442 2442 2507 2507 2528 2528 2553 2553 2564 2564 2596 2596 2596 2654 2654 2654 2664 2664 2664 2711 2711 2711 2715 2715 2721 2721 2721 2740 ctl_token 001120 automatic char(32) unaligned dcl 243 set ref 404* 414 421 ctl_token_len 001130 automatic fixed bin(17,0) dcl 244 set ref 397* 398 398* 401 404 406 ctls_ptr 001116 automatic pointer dcl 242 set ref 340* 414 cu_$cp 000024 constant entry external dcl 320 ref 903 cur 10 based structure level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" cur 10 based structure level 2 in structure "refline" dcl 1022 in procedure "append_footref" cur 1000 based pointer level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" ref 692 992 1420 2433 current_parms based structure level 1 dcl 17-209 set ref 684 684 1245 1245 current_parms_ptr 134 based pointer level 3 dcl 20-23 ref 573 594 612 612 636 684 684 949 949 951 951 1245 1245 1379 1696 2113 2193 datum parameter fixed bin(31,0) dcl 2748 ref 2746 2751 default 2 based bit(1) level 3 in structure "ctl" packed unaligned dcl 17-157 in procedure "comp_ctls_" set ref 1423* 1455* default 2 002742 automatic bit(1) level 3 in structure "hit_line" packed unaligned dcl 2772 in procedure "comp_ctls_" set ref 1240* default_parms based structure level 1 dcl 17-213 del 1(01) based bit(1) level 4 in structure "current_parms" packed unaligned dcl 17-209 in procedure "comp_ctls_" set ref 594* 1696 del 117(01) based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 595* del 1005(01) based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 595* delete 003374 automatic bit(1) unaligned dcl 2587 set ref 2608* 2611* 2689 devptr 140 based pointer level 3 dcl 20-23 ref 971 971 971 1518 1521 1528 1538 2243 2243 2257 2273 2307 2307 dir 14 based char(168) array level 3 dcl 1-5 set ref 2404 2481* 2537* 2539* 2541 dirname 001131 automatic char(168) unaligned dcl 246 set ref 2498* 2502* 2537 2537 divide builtin function dcl 309 ref 430 1102 1877 2751 e 1 based structure array level 2 in structure "hwrd_data" dcl 10-3 in procedure "comp_ctls_" e 325 based structure array level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" e 207 based structure array level 3 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" e 20 based structure array level 3 in structure "shared" dcl 15-7 in procedure "comp_ctls_" end_flag 000010 internal static bit(1) initial unaligned dcl 249 set ref 1115* end_input 4113(02) based bit(1) level 3 packed unaligned dcl 15-7 set ref 748 808 1117 1122 1584* 1977 end_output 4113(03) based bit(1) level 3 packed unaligned dcl 15-7 ref 1452 endchar 001203 automatic char(1) unaligned dcl 248 set ref 1200* 1265* 1268* entry 22 based structure array level 3 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" set ref 949 951 entry 22 based structure array level 3 in structure "footnote_parms" dcl 9-12 in procedure "comp_ctls_" entry 1026 based structure array level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" ref 948 entry 2 based structure array level 2 in structure "aux_file_data" dcl 1-5 in procedure "comp_ctls_" set ref 2525 2528 2528 entryname 54 based char(32) level 2 dcl 11-19 ref 1219 1219 entryndx based fixed bin(17,0) level 2 dcl 19-5 ref 1906 ephdrptr 3766 based pointer level 3 dcl 15-7 ref 1660 2295 2295 2328 2328 eqn_refct 7 based fixed bin(17,0) level 2 dcl 15-7 set ref 881* 881 884* ercd 001204 automatic fixed bin(35,0) dcl 251 set ref 903* 1226* 1227 1383* 1386 1557* 1560 1563* 2123* 2125 2147* 2155* 2157 2160* 2376* 2377 2380* 2396* 2400 2400* 2404* 2407 2407* 2502* 2504 2507* 2546* 2550 2553* 2559* 2561 2564* 2566* even 2 based fixed bin(31,0) level 3 dcl 14-86 set ref 1521* 1538* exit_str 001205 automatic varying char(128) dcl 252 set ref 339* 546* 868* 869* 869* 1394* 1986* 2142* 2442 2442* expand_pathname_ 000026 constant entry external dcl 321 ref 2502 fcs_str 74 based char(8) level 4 in structure "refline" dcl 1022 in procedure "append_footref" ref 1032 1043 fcs_str 100 based char(8) array level 4 in structure "footnote_parms" dcl 9-12 in procedure "comp_ctls_" ref 1040 fcs_str 001246 automatic char(8) dcl 253 in procedure "comp_ctls_" set ref 941* 942 file based structure level 2 in structure "insert" dcl 11-32 in procedure "comp_ctls_" file 3 002742 automatic bit(1) level 4 in structure "hit_line" packed unaligned dcl 2772 in procedure "comp_ctls_" set ref 1238* file_name based varying char(32) array level 2 dcl 1171 set ref 1186* 1208* 1219 1219* 1226* fileno 161 based fixed bin(17,0) level 3 dcl 17-157 set ref 1071 1105* 1141* fill_mode 1006 based bit(1) level 4 packed unaligned dcl 17-49 ref 975 fmt 2 based structure array level 2 dcl 16-5 fnt_chng 2(04) based bit(1) level 3 packed unaligned dcl 17-157 set ref 945* fntptr 32 based pointer level 4 dcl 1022 ref 1032 fntstk 20 based structure level 2 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" fntstk 20 based structure level 2 in structure "footnote_parms" dcl 9-12 in procedure "comp_ctls_" fntstk 1024 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" fntstk_entry based structure level 1 dcl 7-6 fnttbl_ptr 002724 automatic pointer initial dcl 8-13 set ref 8-13* font 16 based structure level 3 in structure "refline" dcl 1022 in procedure "append_footref" font 100 based structure level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 948* 949* 1235 font 16 based structure level 3 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 951* font 100 002742 automatic structure level 2 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" set ref 1235* font based structure level 1 unaligned dcl 8-68 in procedure "comp_ctls_" footer 7 based fixed bin(31,0) level 4 in structure "page" dcl 14-11 in procedure "comp_ctls_" set ref 2264* footer 6 based fixed bin(31,0) level 3 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" set ref 2243 2257* 2264 2273 2307 footnote_header_ptr 3774 based pointer level 3 dcl 15-7 ref 1435 footnote_parms based structure level 1 dcl 9-12 footnote_parms_ptr 146 based pointer level 3 dcl 20-23 ref 1040 1040 footproc 14 based entry variable level 2 dcl 18-19 set ref 971 footref 2(05) based bit(1) level 3 packed unaligned dcl 1022 set ref 1026 1046* footref_array 001250 automatic varying char(48) array dcl 254 set ref 970* 971* 973 973 973 1029 1032 1032 footrefstr 001317 automatic varying char(256) dcl 255 set ref 973* 1040* 1040 1043 footsep 3 based char(1) level 2 packed unaligned dcl 8-68 ref 1032 format_break 006332 constant fixed bin(17,0) initial dcl 2-9 set ref 1593* 1611 1622 1684 1691* 1739* 1799* 1803 found_clause 001420 automatic bit(1) unaligned dcl 256 set ref 726* 858 1367* 1950* frontpage 15(02) based bit(1) level 4 packed unaligned dcl 14-11 ref 2288 2321 ftn 375 based structure level 3 in structure "col" dcl 3-5 in procedure "comp_ctls_" ftn 205 based structure level 2 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" ftn 14 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" ftn 323 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" ftn 375 based structure level 3 in structure "col0" dcl 3-37 in procedure "comp_ctls_" ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 15-7 ref 1602 ftn_reset 12 based varying char(8) level 2 dcl 15-7 set ref 982 1008 1054* 1059* 1064* 1407 ftnblk based structure level 1 dcl 258 ftnblk_data based structure level 1 dcl 9-5 ftnblk_data_ptr 3772 based pointer level 3 dcl 15-7 ref 1425 1426 ftnblkptr 001422 automatic pointer dcl 257 set ref 1426* 1428 1431 1432 1437 1442 1446 ftndx 001424 automatic fixed bin(17,0) dcl 259 set ref 1425* 1426 1439 1443* ftnhdr based structure level 1 dcl 9-10 ftnrefct 15 based fixed bin(17,0) level 2 dcl 15-7 ref 962 970 986 1012 ftrptr 1010 based pointer level 3 dcl 17-49 set ref 1599 1599* galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 13-5 set ref 1077* 1627 1723 2252 2269 2282 2303 2316 2338 get_wdir_ 000030 constant entry external dcl 323 ref 2539 given_symbol 001425 automatic char(32) unaligned dcl 261 set ref 1822* 1825 1828 1828 1828 1832* 1838 1847* 1851* 1890* 1894 1904* hbound builtin function dcl 309 ref 414 671 674 2525 2528 2528 2708 hdr 15 based structure level 2 in structure "page" dcl 14-11 in procedure "comp_ctls_" hdr 4 based structure level 2 in structure "ftnblk" dcl 258 in procedure "comp_ctls_" hdr 4 based structure level 2 in structure "hfcblk" dcl 17-250 in procedure "comp_ctls_" hdr 316 based structure level 2 in structure "col0" dcl 3-37 in procedure "comp_ctls_" hdr 4 based structure level 2 in structure "ftnhdr" dcl 9-10 in procedure "comp_ctls_" hdr 4 based structure level 2 in structure "text" dcl 17-49 in procedure "comp_ctls_" hdr 316 based structure level 2 in structure "col" dcl 3-5 in procedure "comp_ctls_" hdrptr 1014 based pointer level 3 dcl 17-49 set ref 1756 1759 1759 1763 1791 1794* hdspc 23 based fixed bin(31,0) level 3 dcl 14-11 set ref 2285* 2288* 2295* 2298* 2298 2319* 2321* 2328* 2332* 2332 head_used 001435 automatic fixed bin(31,0) dcl 262 set ref 1242* 1415* 1620* 1627* 1630* 1654 headed 15(03) based bit(1) level 4 packed unaligned dcl 14-11 ref 1242 1415 1627 1723 2282 2316 header 5 based fixed bin(31,0) level 3 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" set ref 2243 2257 2273* 2280 2307 header 6 based fixed bin(31,0) level 4 in structure "page" dcl 14-11 in procedure "comp_ctls_" set ref 2280* 2298 2332 hfcblk based structure level 1 dcl 17-250 highndx based fixed bin(35,0) level 2 dcl 9-5 ref 1425 hit_data based structure level 1 dcl 1171 set ref 1184 1184 1206 1206 hit_data_ptr 4000 based pointer level 3 dcl 15-7 set ref 1181 1184* 1184 1184 1186 1187 1188 1203 1206* 1206 1206 1208 1209 1210 1219 1219 1226 1230 1239 1249 1255 hit_line 002742 automatic structure level 1 dcl 2772 set ref 1233* 1253 1253 1281 1281 hit_text 001436 automatic varying char(1020) dcl 263 set ref 1236 1252* 1268* hitcharndx 002037 automatic fixed bin(17,0) dcl 265 set ref 1201* 1264* 1271 hitfilendx 002036 automatic fixed bin(17,0) dcl 264 set ref 1213* 1217* 1219 1219 1219* 1226 1230 1239 1249 1255 hittypechar 002040 automatic char(1) unaligned dcl 266 set ref 1271* 1272 1277* hittypecodes 000332 constant char(8) initial unaligned dcl 267 ref 1272 hittypendx 002041 automatic fixed bin(17,0) dcl 268 set ref 1272* 1275 hpoints 003375 automatic bit(288) unaligned dcl 2588 set ref 2603* 2671* 2693 hpts 1 based bit(288) array level 3 dcl 10-3 set ref 2693* hscales 000322 constant fixed bin(31,0) initial array dcl 269 set ref 1518* 1521* 1528* 1528* 1528* 1538* 1538* 1538* hwrd 002620 automatic varying char(256) dcl 1332 set ref 1351* 1352 1353 1357 2593 2596* 2605 2609* 2609 2613 2615 2616 2619 2622 2625 2627 2627 2654* 2664* hwrd_data based structure level 1 dcl 10-3 set ref 1337 1337 hwrd_data_ptr 4004 based pointer level 3 dcl 15-7 set ref 1334 1337* 1337 1337 1339 1340 1346 2684 2684 2687 2692 2693 2694 2696 2696 hyph_mode 4113(06) based bit(1) level 3 packed unaligned dcl 15-7 set ref 1317* 1322* 1326* hyph_opt 1(10) based bit(1) level 2 packed unaligned dcl 13-5 ref 1317 hyph_size 216 based fixed bin(31,0) level 2 in structure "option" dcl 13-5 in procedure "comp_ctls_" set ref 1319 1328* hyph_size 16 based fixed bin(31,0) level 2 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 1319* 1328* i 002042 automatic fixed bin(17,0) dcl 271 set ref 671* 671* 674 955* 960* 962 970 986 1012 1095* 1099 1102* 1102 1103 1104 1474* 1476* 1478 1480 2081* 2084 2090 2090 2093 2093 2097 2615* 2616 2616* 2619 2620 2684* 2684* 2687 2692 2693 2694 2696 2696 if_nest 17 based structure level 2 dcl 15-7 ifi_ctl_index 006272 constant fixed bin(17,0) initial dcl 4-9 set ref 393* in 4114 based varying char(128) level 3 dcl 15-7 set ref 2058* 2081 2090* 2090 2090 2102* 2102 2393 indctl 3315 based structure level 2 dcl 15-7 index 1024 based fixed bin(17,0) level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" ref 948 index 160 based fixed bin(21,0) level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 392* 406* 408 408* 408 408 412* 508 508 512 515 562 565 567 583 586 588 605 605 624 627 630 651 654 658 661 664 668* 668* 881 884* 884* 889 889 898 902 903 930 930 941 941 955 955* 955* 1081 1090 1129* 1131 1131* 1131 1131 1135* 1192 1213 1213* 1213* 1261 1265 1268 1268 1271 1343 1350 1351 1352 1353* 1353 1355* 1373 1383* 1470 1478 1514 1528 1528* 1528* 1528* 1528* 1535 1535* 1535 1538 1538* 1538* 1538* 1538* 1573* 1634 1641 1649 1654* 1654* 1698 1700* 1700* 1730 1730 1746 1749* 1749* 1811 1822* 1822* 1841 1847 1847 1855 1864* 1864* 1879 1887 1890* 1890* 2055 2062* 2062* 2063 2075 2075 2075* 2113 2120 2123* 2147 2189 2195* 2368 2376* 2380 2386 2715 index 20 based fixed bin(17,0) level 3 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" set ref 949 951 index 1 based fixed bin(17,0) level 2 in structure "call_stack" dcl 11-13 in procedure "comp_ctls_" ref 342 2741 index 20 based fixed bin(17,0) level 3 in structure "footnote_parms" dcl 9-12 in procedure "comp_ctls_" ref 1040 index builtin function dcl 309 in procedure "comp_ctls_" ref 385 385 389 397 414 421 517 735 752 771 813 827 838 1095 1126 1131 1149 1213 1272 1378 1528 1535 1641 1649 1828 1844 1867 1959 1968 1982 1992 1992 2000 2013 2081 2113 2204 2209 2216 2216 2222 2266 2300 2335 2388 2485 2605 2729 info 277 based structure level 3 in structure "hfcblk" dcl 17-250 in procedure "comp_ctls_" info 161 based structure level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 425 425 520 520 528 528 537 537 668 668 677 677 720 720 750* 757 795 795 811* 852 852 858 858 884 884 889 889 955 955 965 965 1071 1071 1085 1085 1113 1120* 1213 1213 1234 1277 1277 1379 1379 1383 1383 1528 1528 1528 1528 1538 1538 1538 1538 1563 1563 1644 1644 1654 1654 1674 1674 1700 1700 1734 1734 1749 1749 1817 1817 1822 1822 1832 1832 1844 1844 1859 1859 1864 1864 1872 1872 1882 1882 1890 1890 1897 1897 1944 1944 1980* 2037 2037 2065 2065 2069 2069 2113 2113 2123 2123 2132* 2139* 2153 2153 2193 2193 2209 2209 2222 2222 2371 2371 2388 2388 2400 2400 2407 2407 2507 2507 2528 2528 2553 2553 2564 2564 2596 2596 2654 2654 2664 2664 2711 2711 2721 2721 info 277 based structure level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp_ctls_" info 21 based structure array level 4 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 757* info 161 based structure level 2 in structure "refline" dcl 1022 in procedure "append_footref" info 277 based structure level 3 in structure "ftnblk" dcl 258 in procedure "comp_ctls_" info 70 based structure level 2 in structure "call_box" dcl 11-18 in procedure "comp_ctls_" set ref 750 811 1120 1980 2132 2139 info 277 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" info 161 based structure level 2 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" info 161 002742 automatic structure level 2 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" set ref 1234* info 161 based structure level 2 in structure "text_entry" dcl 17-68 in procedure "comp_ctls_" init_page_depth 1 based fixed bin(31,0) level 3 dcl 14-11 ref 1654 input 116 based structure level 2 dcl 17-49 input_filename 3372 based varying char(200) level 2 dcl 15-7 ref 1249 1252 1255 input_line 375 based varying char(1020) level 2 dcl 17-49 ref 945 1593 1691 1739 1799 2424 insert based structure level 1 dcl 11-32 insert_ptr 4006 based pointer level 3 dcl 15-7 ref 1092 1095 1095 1103 1104 1114 1138 1138 1159 2708 2708 2726 2729 2729 2736 2736 2739 2740 2741 inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 15-7 ref 1599 ioa_ 000146 constant entry external dcl 20-70 ref 335 774 822 830 1105 1141 1759 1768 1778 1972 1996 2442 ioa_$rsnnl 000032 constant entry external dcl 324 ref 546 868 869 1219 1268 1394 1986 2142 iocb_ptr 132 based pointer array level 2 in structure "hit_data" dcl 1171 in procedure "comp_ctls_" set ref 1187* 1209* 1230* 1239 iocb_ptr 2 based pointer array level 3 in structure "aux_file_data" dcl 1-5 in procedure "comp_ctls_" set ref 1230 2380* 2396* 2479* 2546* 2559* 2566* iox_$attach_name 000034 constant entry external dcl 325 ref 2546 iox_$detach_iocb 000036 constant entry external dcl 327 ref 2566 iox_$error_output 000150 external static pointer dcl 20-74 set ref 2147* 2155* iox_$get_line 000040 constant entry external dcl 329 ref 1557 iox_$open 000042 constant entry external dcl 331 ref 2559 iox_$put_chars 000044 constant entry external dcl 332 ref 2147 2155 2380 2396 iox_$user_input 000152 external static pointer dcl 20-74 set ref 1557* j 002043 automatic fixed bin(17,0) dcl 271 set ref 1352* 1353 1353 2613* 2613* 2615 2616 2619 2620* 2620 2622 2625 2627 2627 2641* 2641 2678* 2678* 2729* 2732 2736* 2739 2740 2741 keep 1006(04) based bit(1) level 4 packed unaligned dcl 17-49 ref 1257 1292 1602 1803 keywrd 003405 automatic varying char(256) dcl 2589 set ref 2602* 2619* 2619 2634 2634 2639 2651 2661 2661 2671 2677* 2677 2684 2692 label 304 based structure level 2 dcl 11-32 label_value_str based char(3200) unaligned dcl 273 ref 1095 2729 last_caller 156 based varying char(32) array level 2 dcl 1171 set ref 1188* 1210* 1249 1255* left 1016 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" left 1016 based structure level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp_ctls_" left 36 based structure level 3 in structure "tblcol" dcl 16-26 in procedure "comp_ctls_" left 1016 based structure level 3 in structure "ftnblk" dcl 258 in procedure "comp_ctls_" left 36 based structure level 3 in structure "prvtblcol" dcl 16-44 in procedure "comp_ctls_" left 12 based structure level 2 in structure "default_parms" dcl 17-213 in procedure "comp_ctls_" left 12 based structure level 2 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" left 12 based structure level 2 in structure "text_parms" dcl 17-206 in procedure "comp_ctls_" left 36 based structure level 3 in structure "tblcol0" dcl 16-41 in procedure "comp_ctls_" left 1016 based structure level 3 in structure "hfcblk" dcl 17-250 in procedure "comp_ctls_" left 12 based structure level 2 in structure "footnote_parms" dcl 9-12 in procedure "comp_ctls_" length builtin function dcl 309 in procedure "comp_ctls_" ref 398 408 412 508 512 523 562 583 605 624 658 664 881 898 903 955 1029 1029 1081 1131 1135 1192 1343 1350 1352 1353 1355 1373 1470 1514 1538 1570 1634 1698 1730 1746 1811 1841 1855 1879 1887 2055 2062 2075 2113 2120 2147 2155 2189 2368 2380 2396 2396 2442 2442 2495 2613 2616 2622 2627 2634 2639 2651 2661 2671 length 1 based fixed bin(31,0) level 2 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" ref 2243 2257 2273 2307 level 4 based char(1) level 3 dcl 13-5 ref 565 586 605 627 line 305 based fixed bin(17,0) array level 3 in structure "insert" unsigned dcl 11-32 in procedure "comp_ctls_" set ref 1103 2740* line 24 based varying char(256) array level 4 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 758* line_area 776 based structure level 2 in structure "text" dcl 17-49 in procedure "comp_ctls_" line_area based structure level 1 dcl 17-26 in procedure "comp_ctls_" line_area_ptr 003222 automatic pointer initial dcl 17-25 set ref 692* 693 693 992* 993 993 1420* 1421 1421 2433* 2434 2434 17-25* lineno 71 based fixed bin(17,0) level 3 in structure "call_box" dcl 11-18 in procedure "comp_ctls_" set ref 1103* 1105* lineno 162 based fixed bin(17,0) level 3 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 774* 822* 830* 1071 1141* 1268* 1972* 1996* 2740 linespace 164 based fixed bin(31,0) level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 688* 695* 2419* 2429* linespace 164 002742 automatic fixed bin(31,0) level 2 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" set ref 1237* linespace 1020 based fixed bin(31,0) level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" ref 695 linptr 10 based pointer array level 2 dcl 17-26 ref 693 993 1421 2434 lit_count 3456 based fixed bin(35,0) level 2 dcl 15-7 ref 360 literal_mode 4113(08) based bit(1) level 3 packed unaligned dcl 15-7 ref 360 lmarg 2 based structure level 2 dcl 14-86 local_area_ptr 160 based pointer level 3 dcl 20-23 set ref 1184* 1206* 1337* 2476* ltrim builtin function dcl 309 ref 335 335 352 425 425 515 521 682 731 752 771 813 827 838 965 965 970 1085 1085 1126 1149 1156 1156 1955 1968 1982 1992 1992 2000 2013 2715 margin 5 based structure level 3 in structure "page" dcl 14-11 in procedure "comp_ctls_" margin 4 based structure level 2 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" max builtin function dcl 309 ref 567 588 630 1149 1665 1666 measure 10 based fixed bin(31,0) level 2 dcl 14-86 set ref 1518* 1521* 1528* 1538* min_WS 30 based fixed bin(31,0) level 2 dcl 18-19 set ref 1518* 1521* 1528* 1538* min_lead 31 based fixed bin(31,0) level 2 dcl 18-19 set ref 2243* 2257* 2273* 2307* mod 25(02) based bit(1) level 5 in structure "tblcol" packed unaligned dcl 16-26 in procedure "comp_ctls_" set ref 640* mod builtin function dcl 21-26 in procedure "allocate" ref 21-40 mod 1005(02) based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 613* 637* mod 1(02) based bit(1) level 4 in structure "current_parms" packed unaligned dcl 17-209 in procedure "comp_ctls_" set ref 612* 636* mod 117(02) based bit(1) level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 637* mode 1 based fixed bin(17,0) array level 2 dcl 19-76 set ref 1906* mode_key 002044 automatic varying char(2) dcl 277 set ref 1864* 1867 mode_string 000304 constant char(16) initial unaligned dcl 15-129 ref 1867 modendx 002046 automatic fixed bin(17,0) dcl 278 set ref 1867* 1869 1877* 1877 1906 name 4 based char(32) array level 3 dcl 1-5 set ref 2404 2480* 2515 2535* 2541 namel 002047 automatic fixed bin(35,0) dcl 279 set ref 2485* 2486 2489 2490 ndx 17 based fixed bin(17,0) level 3 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 344 716 728 743 756* 756 757 758 759 774* 778 778* 778 791 801 804* 804 816* 816 822* 830* 847 863* 863 868* 869 869 1149* 1149 1371* 1371 1373 1386 1389 1391 1394* 1394 1940 1952 1967 1971* 1971 1972* 1985* 1985 1986* 1986 1996* 2003 2003* 2003 2013 ndx 1 based fixed bin(17,0) level 2 in structure "tbldata" dcl 16-5 in procedure "comp_ctls_" ref 640 2203 ndx 3315 based fixed bin(17,0) level 3 in structure "shared" dcl 15-7 in procedure "comp_ctls_" set ref 352 731 1474 1474* 1476 1476* 1483* 1483 1484 1484* 1955 ndx 5 based fixed bin(17,0) level 2 in structure "line_area" dcl 17-26 in procedure "comp_ctls_" ref 693 993 1421 2434 need_break 006336 constant fixed bin(17,0) initial dcl 2-9 set ref 1257* 1292* 1715* next_char 003506 automatic char(1) unaligned dcl 2590 set ref 2627* 2629* 2641 2648 2674 2674 nohit_opt 1(29) based bit(1) level 2 packed unaligned dcl 13-5 ref 1181 1197 null builtin function dcl 21-26 in procedure "allocate" ref 21-43 21-43 21-45 null builtin function dcl 309 in procedure "comp_ctls_" ref 574 595 613 637 684 945 1181 1187 1203 1209 1245 1334 1412 1428 1587 1599 1622 1660 1687 1739 1753 1756 1788 1791 1799 2031 2288 2295 2321 2328 2413 8-13 16-24 16-43 17-25 17-35 19-68 19-75 2473 2479 2546 2546 odd 3 based fixed bin(31,0) level 3 dcl 14-86 set ref 1518* 1528* oflo 120(09) based bit(1) level 4 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" ref 1715 oflo 002050 automatic bit(1) unaligned dcl 280 in procedure "comp_ctls_" set ref 1253* 1257 1281* 1292 ophdrptr 4012 based pointer level 3 dcl 15-7 ref 1660 2288 2288 2321 2321 option based structure level 1 dcl 13-5 option_ptr 164 based pointer level 3 dcl 20-23 ref 558 565 579 586 601 605 619 627 1077 1181 1197 1317 1319 1328 1627 1723 2252 2269 2282 2303 2316 2338 out 4155 based varying char(128) level 3 dcl 15-7 set ref 2058* 2093* 2093 2093 2097* 2103* 2103 page based structure level 1 dcl 14-11 page_break 006337 constant fixed bin(17,0) initial dcl 2-9 set ref 1450* page_header based structure level 1 dcl 14-27 page_parms based structure level 1 dcl 14-86 page_parms_ptr 174 based pointer level 3 dcl 20-23 ref 1518 1518 1521 1521 1528 1528 1538 1538 2243 2243 2243 2243 2243 2250 2257 2257 2257 2257 2257 2264 2273 2273 2273 2273 2273 2280 2307 2307 2307 2307 2307 2314 2319 page_ptr 170 based pointer level 3 dcl 20-23 ref 567 567 588 588 630 630 684 1242 1245 1415 1418 1418 1433 1433 1435 1435 1437 1437 1439 1439 1627 1630 1654 1660 1665 1665 1666 1666 1723 2209 2222 2250 2264 2280 2282 2285 2285 2288 2288 2295 2298 2298 2298 2314 2316 2319 2321 2321 2328 2332 2332 2332 parms 1004 based structure level 2 in structure "text" dcl 17-49 in procedure "comp_ctls_" parms 1 based structure level 2 in structure "page" dcl 14-11 in procedure "comp_ctls_" parms 24 based structure level 2 in structure "tblcol" dcl 16-26 in procedure "comp_ctls_" path 66 based varying char(200) array level 3 dcl 1-5 set ref 2482* 2541* 2546 pathname_ 000046 constant entry external dcl 333 ref 2541 pgc_select 15(27) based char(1) level 4 packed unaligned dcl 14-11 set ref 567* 567 588* 588 630* 630 pic_i 003352 automatic picture(2) unaligned dcl 2462 set ref 2545* 2546 picture 4(08) based bit(1) level 4 packed unaligned dcl 17-49 ref 1602 1693 position 677 based fixed bin(21,0) array level 3 dcl 11-32 set ref 1104 2741* posn 164 based fixed bin(21,0) level 2 in structure "call_box" dcl 11-18 in procedure "comp_ctls_" set ref 1104* 2741 posn 164 based fixed bin(21,0) level 3 in structure "insert" dcl 11-32 in procedure "comp_ctls_" set ref 1114 1159* prvtblcolptr 002734 automatic pointer initial dcl 16-43 set ref 16-43* pspc 447 based fixed bin(31,0) level 3 dcl 3-5 set ref 1778* 1778* 1782 ptr 172 based pointer level 2 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" ref 2434 ptr 2 based pointer array level 2 in structure "call_stack" dcl 11-13 in procedure "comp_ctls_" ref 342 1219 1219 2741 ptr 000144 external static pointer level 2 in structure "compstat$compconst" dcl 20-14 in procedure "comp_ctls_" ref (more) 528 528 537 537 537 544 546 546 558 562 562 565 565 565 567 567 567 567 573 574 574 574 576 579 583 583 586 586 586 588 588 588 588 594 595 595 595 598 601 605 605 605 605 605 612 612 613 613 613 616 619 624 624 627 627 627 630 630 630 630 636 637 637 637 640 640 640 642 651 651 654 654 654 658 658 658 661 661 661 664 664 668 668 668 668 668 677 677 677 682 682 684 684 684 684 684 688 689 689 689 692 695 695 716 720 720 720 728 728 731 731 731 731 733 733 735 737 743 745 745 748 749 750 752 756 756 757 757 757 758 758 758 759 759 771 774 774 774 774 778 778 778 791 795 795 795 801 801 804 804 808 810 811 813 816 816 822 822 822 822 827 830 830 830 830 838 847 852 852 852 858 858 858 863 863 865 868 869 869 869 881 881 881 881 884 884 884 884 884 884 889 889 889 889 889 889 898 898 902 902 903 903 930 930 930 930 936 941 941 941 941 942 945 945 945 945 948 948 948 949 949 949 951 951 951 955 955 955 955 955 955 955 962 965 965 965 965 970 971 971 971 975 978 979 979 982 985 985 986 986 986 992 1005 1005 1005 1008 1012 1014 1014 1015 1015 1029 1032 1032 1040 1040 1043 1052 1054 1057 1059 1062 1064 1067 1071 1071 1071 1071 1071 1077 1081 1081 1085 1085 1085 1085 1090 1090 1092 1095 1095 1103 1104 1105 1105 1112 1113 1114 1117 1119 1120 1122 1126 1129 1129 1131 1131 1131 1131 1131 1131 1135 1135 1138 1138 1141 1141 1141 1149 1149 1149 1159 1181 1181 1184 1184 1184 1184 1186 1187 1188 1192 1192 1197 1203 1206 1206 1206 1206 1208 1209 1210 1213 1213 1213 1213 1213 1213 1213 1219 1219 1219 1219 1226 1230 1230 1233 1234 1235 1239 1242 1245 1245 1245 1245 1245 1249 1249 1252 1253 1255 1255 1257 1257 1261 1261 1265 1265 1268 1268 1268 1268 1268 1271 1271 1277 1277 1277 1281 1292 1292 1317 1317 1319 1319 1322 1326 1328 1328 1334 1337 1337 1337 1337 1339 1340 1343 1343 1346 1350 1350 1351 1351 1352 1352 1353 1353 1355 1355 1371 1371 1373 1373 1373 1373 1378 1378 1379 1379 1379 1379 1383 1383 1383 1383 1386 1386 1389 1389 1391 1391 1394 1394 1394 1394 1407 1412 1415 1418 1418 1418 1419 1419 1419 1420 1423 1425 1426 1433 1433 1435 1435 1435 1437 1437 1439 1439 1441 1441 1442 1442 1443 1443 1452 1455 1470 1470 1474 1474 1476 1476 1478 1478 1478 1480 1483 1483 1484 1484 1514 1514 1518 1518 1518 1521 1521 1521 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1528 1535 1535 1535 1535 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1538 1563 1563 1563 1568 1570 1573 1577 1582 1584 1587 1593 1599 1599 1599 1602 1602 1602 1602 1602 1602 1622 1622 1627 1627 1630 1634 1634 1637 1641 1641 1644 1644 1644 1649 1649 1654 1654 1654 1654 1654 1654 1660 1660 1660 1660 1660 1660 1660 1660 1660 1665 1665 1666 1666 1674 1674 1674 1687 1691 1693 1696 1698 1698 1700 1700 1700 1700 1700 1710 1715 1723 1723 1730 1730 1730 1730 1734 1734 1734 1739 1739 1746 1746 1749 1749 1749 1749 1749 1753 1756 1759 1759 1759 1763 1768 1768 1768 1772 1778 1778 1778 1782 1788 1791 1794 1799 1799 1803 1803 1803 1811 1811 1817 1817 1817 1822 1822 1822 1822 1822 1832 1832 1832 1841 1841 1844 1844 1844 1844 1844 1847 1847 1847 1847 1855 1855 1859 1859 1859 1864 1864 1864 1864 1864 1872 1872 1872 1879 1879 1882 1882 1882 1887 1887 1890 1890 1890 1890 1890 1897 1897 1897 1905 1905 1906 1940 1944 1944 1944 1952 1952 1955 1955 1955 1955 1957 1957 1959 1961 1967 1968 1971 1971 1972 1972 1972 1972 1977 1979 1980 1982 1985 1985 1986 1986 1986 1986 1992 1992 1996 1996 1996 1996 2000 2003 2003 2003 2013 2013 2031 2031 2031 2037 2037 2037 2055 2055 2058 2058 2062 2062 2062 2063 2063 2065 2065 2065 2065 2069 2069 2069 2069 2075 2075 2075 2075 2075 2075 2081 2090 2090 2090 2093 2093 2093 2097 2102 2102 2103 2103 2113 2113 2113 2113 2113 2113 2113 2113 2120 2120 2123 2123 2123 2123 2131 2132 2138 2139 2142 2147 2147 2153 2153 2153 2154 2155 2177 2179 2179 2183 2185 2185 2189 2189 2193 2193 2193 2193 2194 2194 2195 2197 2197 2200 2203 2203 2204 2204 2209 2209 2209 2209 2209 2216 2216 2216 2222 2222 2222 2222 2222 2243 2243 2243 2243 2243 2243 2243 2250 2250 2252 2257 2257 2257 2257 2257 2257 2264 2264 2266 2269 2273 2273 2273 2273 2273 2273 2280 2280 2282 2282 2285 2285 2288 2288 2288 2288 2295 2295 2295 2298 2298 2298 2300 2303 2307 2307 2307 2307 2307 2307 2307 2314 2314 2316 2316 2319 2319 2321 2321 2321 2321 2328 2328 2328 2332 2332 2332 2335 2338 2348 2353 2368 2368 2371 2371 2371 2376 2376 2380 2380 2380 2386 2386 2388 2388 2393 2396 2400 2400 2400 2404 2404 2407 2407 2407 2413 2417 2418 2419 2424 2427 2428 2429 2433 2442 2442 2442 2473 2476 2476 2476 2476 2478 2479 2480 2481 2482 2507 2507 2515 2515 2515 2522 2525 2525 2528 2528 2528 2528 2535 2537 2539 2541 2541 2541 2546 2546 2553 2553 2559 2564 2564 2566 2572 2596 2596 2596 2654 2654 2654 2664 2664 2664 2684 2684 2687 2692 2693 2694 2696 2696 2708 2708 2711 2711 2711 2715 2715 2721 2721 2721 2726 2729 2729 2736 2736 2739 2740 2740 2741 2741 2741 ptr 14 based pointer array level 3 in structure "tbldata" dcl 16-5 in procedure "comp_ctls_" ref 640 2203 ptr 172 based pointer level 2 in structure "refline" dcl 1022 in procedure "append_footref" ref 1024 ptr builtin function dcl 21-26 in procedure "allocate" ref 21-47 ptr 172 002742 automatic pointer level 2 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" set ref 1236* ptr 172 based pointer level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" set ref 335 335 352 352 363 370 385 385 389 397 398 404 408 408 412 425 425 508 508 512 515 528 537 562 565 567 583 586 588 605 605 624 627 630 654 658 661 664 668 677 682 682 720 731 731 733 733 735 737 745 745 749 752 758 771 774 795 810 813 822 827 830 838 852 858 881 884 889 889 898 902 903 930 930 936 941 941 942 945 955 955 965 965 978 1005 1005 1029 1032 1032 1043 1071 1081 1085 1085 1090 1112 1119 1126 1129 1131 1131 1135 1149 1192 1213 1213 1261 1265 1268 1268 1271 1277 1343 1350 1351 1352 1355 1373 1378 1379 1383 1470 1478 1514 1528 1528 1528 1535 1538 1538 1538 1563 1568 1570 1577 1582 1634 1641 1644 1649 1654 1674 1698 1700 1730 1730 1734 1746 1749 1811 1817 1822 1832 1841 1844 1844 1847 1847 1855 1859 1864 1872 1879 1882 1887 1890 1897 1944 1955 1955 1957 1957 1959 1961 1968 1972 1979 1982 1992 1992 1996 2000 2013 2037 2055 2062 2063 2065 2069 2075 2075 2075 2113 2113 2113 2120 2123 2131 2138 2147 2153 2154 2155 2177 2183 2189 2193 2194 2194 2197 2197 2204 2204 2209 2209 2216 2216 2216 2222 2222 2266 2300 2335 2368 2371 2376 2380 2386 2400 2407 2417 2427 2442 2442 2596 2654 2664 2711 2715 2721 ptrs 3742 based structure level 2 in structure "shared" dcl 15-7 in procedure "comp_ctls_" ptrs 126 based structure level 2 in structure "const" dcl 20-23 in procedure "comp_ctls_" rdct 002051 automatic fixed bin(35,0) dcl 282 set ref 1557* 1568 refer 110 based fixed bin(17,0) level 3 dcl 258 set ref 1432* refline based structure level 1 dcl 1022 reflineptr parameter pointer dcl 1021 ref 1018 1024 1026 1032 1032 1043 1046 refno 325(18) based fixed bin(17,0) array level 5 in structure "text" packed unaligned dcl 17-49 in procedure "comp_ctls_" set ref 986* refno 207(18) based fixed bin(17,0) array level 4 in structure "txtlin" packed unaligned dcl 17-161 in procedure "comp_ctls_" set ref 1012* rtrim builtin function dcl 309 ref 408 1105 1105 1141 1141 1828 save_info 002736 automatic structure level 1 unaligned dcl 2770 set ref 1113* 1156 1156 save_line 002052 automatic varying char(1020) dcl 284 set ref 1112* 1156 1156 save_posn 002452 automatic fixed bin(35,0) dcl 285 set ref 1114* 1159 scale parameter fixed bin(31,0) dcl 2749 ref 2746 2751 search builtin function dcl 309 ref 2204 2499 2615 search_label 002453 automatic char(32) unaligned dcl 288 set ref 1090* 1095 1105 1105 1138 1141 1141 1156 shared based structure level 1 dcl 15-7 shared_ptr 200 based pointer level 3 dcl 20-23 ref 335 344 352 352 360 360 421 508 523 544 546 546 574 574 574 576 595 595 595 598 613 613 613 616 637 637 637 640 640 640 642 651 654 658 661 684 684 689 692 695 716 728 728 731 731 743 748 756 756 757 757 758 758 759 759 774 774 778 778 778 791 801 801 804 804 808 816 816 822 822 830 830 847 863 863 865 868 869 869 869 881 881 884 945 945 948 948 962 970 975 982 985 985 986 986 986 992 1005 1008 1012 1014 1014 1015 1015 1052 1054 1057 1059 1062 1064 1067 1092 1095 1095 1103 1104 1105 1114 1117 1122 1138 1138 1141 1149 1149 1159 1181 1184 1184 1184 1186 1187 1188 1203 1206 1206 1206 1208 1209 1210 1219 1219 1226 1230 1230 1239 1245 1245 1249 1249 1252 1253 1255 1255 1257 1257 1281 1292 1292 1317 1319 1322 1326 1328 1334 1337 1337 1337 1339 1340 1346 1371 1371 1373 1373 1378 1386 1386 1389 1389 1391 1391 1394 1394 1394 1394 1407 1412 1418 1419 1419 1419 1420 1425 1426 1435 1441 1441 1442 1442 1443 1443 1452 1474 1474 1476 1476 1478 1480 1483 1483 1484 1484 1584 1587 1593 1599 1599 1599 1602 1602 1602 1602 1602 1602 1622 1622 1637 1660 1660 1660 1660 1660 1660 1660 1660 1687 1691 1693 1710 1715 1739 1739 1753 1756 1759 1759 1759 1763 1768 1768 1768 1772 1778 1778 1778 1782 1788 1791 1794 1799 1799 1803 1803 1803 1844 1940 1952 1952 1955 1955 1967 1971 1971 1972 1972 1977 1985 1985 1986 1986 1986 1986 1996 1996 2003 2003 2003 2013 2031 2031 2031 2058 2058 2065 2069 2081 2090 2090 2090 2093 2093 2093 2097 2102 2102 2103 2103 2113 2142 2200 2203 2203 2288 2288 2295 2295 2321 2321 2328 2328 2348 2353 2380 2393 2396 2404 2404 2413 2424 2433 2442 2473 2476 2476 2476 2478 2479 2480 2481 2482 2515 2515 2515 2522 2525 2525 2528 2528 2535 2537 2539 2541 2541 2541 2546 2546 2559 2566 2572 2684 2684 2687 2692 2693 2694 2696 2696 2708 2708 2726 2729 2729 2736 2736 2739 2740 2741 sio 006337 constant fixed bin(17,0) initial dcl 2464 set ref 2559* size builtin function dcl 309 ref 1184 1184 1206 1206 1337 1337 2476 2476 slog 002463 automatic bit(1) unaligned dcl 289 set ref 1383* 1389 2119* 2123* 2128 2142* spcl 3 based structure level 3 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" spcl 3 002742 automatic structure level 3 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" spcl_iocbp 176 002742 automatic pointer level 2 dcl 2772 set ref 1239* start parameter fixed bin(21,0) dcl 2455 set ref 2449 2485 2489 2490* 2490 2494 2495* stk 3316 based bit(1) array level 3 packed unaligned dcl 15-7 set ref 352 731 1478* 1480* 1955 substr builtin function dcl 309 set ref 404 408 421 508 515 565 567 586 588 605 627 630 654 661 889 889 902 930 930 941 941 1029 1090 1095 1131 1213 1261 1265 1268 1268 1271 1351 1352 1478 1528 1535 1568 1577 1641 1649 1730 1828 1847 1847 2063 2075 2075 2090 2090 2093 2093 2097* 2154 2204 2386 2388 2388 2485 2489 2494 2615 2619 2625 2627 2634 2639* 2661 2671* 2715 2729 suppress_footref 4113(13) based bit(1) level 3 packed unaligned dcl 15-7 set ref 1052* 1057* 1062* 1067* sw 20 based fixed bin(17,0) array level 4 dcl 15-7 set ref 728 759* 801 869* 1373* 1386* 1389* 1391* 1394 1952 1986* sws 24 based structure level 3 in structure "tblcol" dcl 16-26 in procedure "comp_ctls_" sws 15 based structure level 3 in structure "page" dcl 14-11 in procedure "comp_ctls_" sws based structure level 2 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" sws 1004 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" sws based structure level 2 in structure "current_parms" dcl 17-209 in procedure "comp_ctls_" sws based structure level 2 in structure "refline" dcl 1022 in procedure "append_footref" sws based structure level 2 in structure "ctl" dcl 17-157 in procedure "comp_ctls_" sws 002742 automatic structure level 2 in structure "hit_line" dcl 2772 in procedure "comp_ctls_" sws 4 based structure level 3 in structure "ftnblk" dcl 258 in procedure "comp_ctls_" sws 116 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" sws 4 based structure level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" sws 4113 based structure level 2 in structure "shared" dcl 15-7 in procedure "comp_ctls_" sym_delim 1 based char(1) level 3 packed unaligned dcl 15-7 set ref 651* 654* 1378 1844 2065 2113 table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 15-7 ref 421 640 1602 2200 tac_ctl_index constant fixed bin(17,0) initial dcl 4-9 ref 452 478 tblcol based structure level 1 dcl 16-26 tblcolptr 002732 automatic pointer initial dcl 16-24 set ref 16-24* tbldata based structure level 1 dcl 16-5 tbldata_ptr 4020 based pointer level 3 dcl 15-7 ref 640 640 2203 2203 tblfmt based structure level 1 dcl 16-15 tblfmtptr 002730 automatic pointer dcl 16-13 set ref 2203* 2204 text based structure level 1 dcl 17-49 text_added parameter bit(1) dcl 19 set ref 14 345* 379* 419* 737* 945* 1579* 1961* 2179* 2185* 2211* 2221* 2418* 2428* 2442* text_area_ptr 003224 automatic pointer initial dcl 17-35 set ref 17-35* text_entry based structure level 1 dcl 17-68 ref 1233 text_entry_ptr 202 based pointer level 3 dcl 20-23 ref 1233 text_header based structure level 1 dcl 17-163 this_label 003520 automatic char(32) unaligned dcl 2706 set ref 2715* 2717 2717 2729 2739 this_nest 002464 automatic fixed bin(17,0) dcl 291 set ref 743* 778 1967* 2003 2013 title_mode 1006(06) based bit(1) level 4 packed unaligned dcl 17-49 ref 1602 1803 top 4 based fixed bin(31,0) level 3 in structure "page_parms" dcl 14-86 in procedure "comp_ctls_" set ref 2243 2257 2273 2307* 2314 2319 top 5 based fixed bin(31,0) level 4 in structure "page" dcl 14-11 in procedure "comp_ctls_" set ref 1660 2285 2314* tr_in 002721 automatic char(1) unaligned dcl 2050 set ref 2063* 2065 2069 2081 2087 2102 tr_out 002722 automatic char(1) unaligned dcl 2053 set ref 2075* 2078* 2079* 2087 2097 2103 trans 4114 based structure level 2 dcl 15-7 translator_temp_$get_next_segment 000154 constant entry external dcl 21-37 ref 21-42 tree based structure level 1 dcl 19-5 tree_names_ptr 003232 automatic pointer initial dcl 19-68 set ref 19-68* tree_ptr 210 based pointer level 3 dcl 20-23 ref 1905 1905 1906 tree_var based structure array level 1 dcl 19-76 tree_var_ptr 003234 automatic pointer initial dcl 19-75 set ref 1905* 1906 19-75* trigger 003507 automatic char(1) unaligned dcl 2591 set ref 2625* 2631 trim_flag 002465 automatic bit(1) unaligned dcl 293 set ref 345* 1632* 1693* 1693 1695* 1696* 1696 1710* 1728* trl_ws 113 based fixed bin(31,0) level 3 dcl 17-49 set ref 1759* 1759* 1763 1768* 1768* 1772 ttl_delim 1(09) based char(1) level 3 packed unaligned dcl 15-7 set ref 658* 661* 2069 txtlin based structure level 1 dcl 17-161 txtlinptr 003230 automatic pointer dcl 17-160 set ref 693* 694 993* 1004* 1005* 1011 1011 1012 1012 1421* 1445 1445 1446 1446 txtstr based varying char(1020) dcl 17-45 set ref 1029 1029 1043 2435* 2435 txtstrptr 003226 automatic pointer dcl 17-44 set ref 1024* 1029 1029 1043 2434* 2435 2435 ty_buf 002466 automatic char(200) unaligned dcl 294 set ref 1557 1557 1568 2154* 2155 2155 unref 4(06) based bit(1) level 4 packed unaligned dcl 258 set ref 1431* unscaled 006344 constant fixed bin(31,0) initial array dcl 295 set ref 884* 955* 1213* 1328* 2348* 2353* unstart_signal constant char(3) initial unaligned dcl 5-39 ref 2177 unstop 4(04) based bit(1) level 3 packed unaligned dcl 17-157 set ref 2185* unstop_signal constant char(3) initial unaligned dcl 5-39 ref 2183 unstrt 4(05) based bit(1) level 3 packed unaligned dcl 17-157 set ref 2179* usd 15 based fixed bin(31,0) level 4 in structure "text" dcl 17-49 in procedure "comp_ctls_" set ref 1442* 1442 usd 376 based fixed bin(31,0) level 4 in structure "col0" dcl 3-37 in procedure "comp_ctls_" set ref 1435* 1437* 1437 used 114 based fixed bin(31,0) level 3 in structure "ftnblk" dcl 258 in procedure "comp_ctls_" ref 1437 1442 1446 used 451 based fixed bin(31,0) level 3 in structure "col0" dcl 3-37 in procedure "comp_ctls_" ref 1665 1666 used 114 based fixed bin(31,0) level 3 in structure "text" dcl 17-49 in procedure "comp_ctls_" ref 1630 1660 used 37 based fixed bin(31,0) level 3 in structure "page" dcl 14-11 in procedure "comp_ctls_" ref 1665 1666 used 114 based fixed bin(31,0) level 3 in structure "ftnhdr" dcl 9-10 in procedure "comp_ctls_" ref 1435 used 206 based fixed bin(31,0) level 3 in structure "txtlin" dcl 17-161 in procedure "comp_ctls_" set ref 1446* 1446 value 1271 based char(32) array level 3 dcl 11-32 set ref 1095 1138 2708 2729 2739* var_ptr based pointer array level 2 dcl 19-5 ref 1905 verify builtin function dcl 309 ref 408 1129 1352 1828 vmb_min 33 based fixed bin(31,0) level 2 dcl 18-19 set ref 2243* vmt_min 32 based fixed bin(31,0) level 2 dcl 18-19 set ref 2307* vscales 000313 constant fixed bin(31,0) initial array dcl 296 set ref 1654* 1700* 1749* 2243* 2257* 2273* 2307* wait_signal 032404 constant char(3) initial unaligned dcl 5-39 ref 2417 2427 2435 widow_foot 4217 based fixed bin(31,0) level 2 dcl 15-7 set ref 2348* widow_size 4216 based fixed bin(31,0) level 2 dcl 15-7 set ref 2353* word 21 based char(256) array level 3 dcl 10-3 set ref 1340* 2684 2687* 2692* wrd_brkr 1(18) based char(1) level 3 packed unaligned dcl 15-7 set ref 508* 523* 544* 546 wrd_buffer 002550 automatic varying char(128) dcl 300 set ref 515* 517 520* 521* 521 523 523 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 12-6 BEL internal static char(1) initial unaligned dcl 12-6 BRS internal static char(1) initial unaligned dcl 12-6 BSP internal static char(1) initial unaligned dcl 12-6 CAN internal static char(1) initial unaligned dcl 12-6 CR internal static char(1) initial unaligned dcl 12-6 DC1 internal static char(1) initial unaligned dcl 12-6 DC2 internal static char(1) initial unaligned dcl 12-6 DC3 internal static char(1) initial unaligned dcl 12-6 DC4 internal static char(1) initial unaligned dcl 12-6 DCxx_p automatic pointer dcl 5-8 DEL internal static char(1) initial unaligned dcl 12-6 DEVIT internal static char(1) initial unaligned dcl 12-6 DLE internal static char(1) initial unaligned dcl 12-6 EM internal static char(1) initial unaligned dcl 12-6 EM_ internal static char(1) initial unaligned dcl 12-6 EMdash internal static char(1) initial unaligned dcl 12-6 ENQ internal static char(1) initial unaligned dcl 12-6 EN_ internal static char(1) initial unaligned dcl 12-6 ENd internal static char(1) initial unaligned dcl 12-6 EOT internal static char(1) initial unaligned dcl 12-6 ESC internal static char(1) initial unaligned dcl 12-6 ETB internal static char(1) initial unaligned dcl 12-6 ETX internal static char(1) initial unaligned dcl 12-6 FF internal static char(1) initial unaligned dcl 12-6 FS internal static char(1) initial unaligned dcl 12-6 GS internal static char(1) initial unaligned dcl 12-6 HAIR internal static char(1) initial unaligned dcl 12-6 HLF internal static char(1) initial unaligned dcl 12-6 HLR internal static char(1) initial unaligned dcl 12-6 HT internal static char(1) initial unaligned dcl 12-6 HUGE internal static char(1) initial unaligned dcl 12-6 LF internal static char(1) initial unaligned dcl 12-6 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 17-24 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 20-18 MEDIUM internal static char(1) initial unaligned dcl 12-6 NAK internal static char(1) initial unaligned dcl 12-6 NUL internal static char(1) initial unaligned dcl 12-6 PI internal static char(1) initial unaligned dcl 12-6 PS internal static char(1) initial unaligned dcl 12-6 RRS internal static char(1) initial unaligned dcl 12-6 RS internal static char(1) initial unaligned dcl 12-6 SI internal static char(1) initial unaligned dcl 12-6 SO internal static char(1) initial unaligned dcl 12-6 SOH internal static char(1) initial unaligned dcl 12-6 STROKE internal static char(1) initial unaligned dcl 12-6 STX internal static char(1) initial unaligned dcl 12-6 SUB internal static char(1) initial unaligned dcl 12-6 SYN internal static char(1) initial unaligned dcl 12-6 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 17-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 17-47 THICK internal static char(1) initial unaligned dcl 12-6 THIN internal static char(1) initial unaligned dcl 12-6 US internal static char(1) initial unaligned dcl 12-6 VT internal static char(1) initial unaligned dcl 12-6 approx internal static char(1) initial unaligned dcl 12-6 atd automatic char(300) unaligned dcl 24 bef_ctl_index internal static fixed bin(17,0) initial dcl 4-9 bep_ctl_index internal static fixed bin(17,0) initial dcl 4-9 bullet internal static char(1) initial unaligned dcl 12-6 chars_head internal static char(19) initial dcl 31 cleanup 000000 stack reference condition dcl 313 collate builtin function dcl 309 column_break internal static fixed bin(17,0) initial dcl 2-9 comp_ 000000 constant entry external dcl 6-7 comp_art_ 000000 constant entry external dcl 6-8 comp_ctls_ 000000 constant entry external dcl 6-14 comp_eject_page_ 000000 constant entry external dcl 6-15 comp_extr_str_ 000000 constant entry external dcl 6-21 comp_get_file_$find 000000 constant entry external dcl 6-28 comp_get_file_$open 000000 constant entry external dcl 6-31 comp_hft_ctls_$title 000000 constant entry external dcl 6-36 comp_init_$one 000000 constant entry external dcl 6-38 comp_init_$three 000000 constant entry external dcl 6-40 comp_init_$two 000000 constant entry external dcl 6-39 comp_make_page_ 000000 constant entry external dcl 6-44 comp_make_page_$cleanup 000000 constant entry external dcl 6-46 comp_measure_ 000000 constant entry external dcl 6-48 comp_util_$num_display 000000 constant entry external dcl 6-84 comp_util_$pageno 000000 constant entry external dcl 6-86 comp_util_$pictures 000000 constant entry external dcl 6-88 comp_util_$pop 000000 constant entry external dcl 6-91 comp_util_$push 000000 constant entry external dcl 6-92 comp_util_$relblk 000000 constant entry external dcl 6-94 comp_write_block_ 000000 constant entry external dcl 6-108 comp_write_page_ 000000 constant entry external dcl 6-110 compose_severity_ external static fixed bin(35,0) dcl 6-5 compx_buffer automatic varying char(128) dcl 36 const_version internal static fixed bin(35,0) initial dcl 20-17 cright internal static char(1) initial unaligned dcl 12-6 ctl_char based structure level 1 unaligned dcl 236 dagger internal static char(1) initial unaligned dcl 12-6 dbldag internal static char(1) initial unaligned dcl 12-6 dcctl based structure level 1 packed unaligned dcl 5-34 dcfs based structure level 1 packed unaligned dcl 5-80 dcfs_len internal static fixed bin(17,0) initial dcl 5-88 dclit based structure level 1 packed unaligned dcl 5-45 dclong1_len internal static fixed bin(17,0) initial dcl 5-62 dclong_len internal static fixed bin(17,0) initial dcl 5-62 dclong_val based structure level 1 packed unaligned dcl 5-54 dcshort1_len internal static fixed bin(17,0) initial dcl 5-75 dcshort_len internal static fixed bin(17,0) initial dcl 5-75 dcshort_val based structure level 1 packed unaligned dcl 5-67 dcxx based structure level 1 packed unaligned dcl 5-11 delmark internal static char(1) initial unaligned dcl 12-6 delta internal static char(1) initial unaligned dcl 12-6 dirl automatic fixed bin(35,0) dcl 245 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 15-126 fin_ctl_index internal static fixed bin(17,0) initial dcl 4-9 fixed builtin function dcl 309 flag_value based bit(1) unaligned dcl 15-132 fntstk_eptr automatic pointer dcl 7-5 fnttbl based structure level 1 dcl 8-14 fnttbldata based structure level 1 dcl 8-7 font_ptr automatic pointer dcl 8-67 footer_break internal static fixed bin(17,0) initial dcl 2-9 footnote_break internal static fixed bin(17,0) initial dcl 2-9 ftnreflin automatic fixed bin(17,0) dcl 260 hfcblk_ptr automatic pointer dcl 17-249 ift_ctl_index internal static fixed bin(17,0) initial dcl 4-9 infin internal static char(1) initial unaligned dcl 12-6 init_file_data internal static structure level 1 unaligned dcl 11-64 init_page_parms based structure level 1 dcl 14-108 insert_data based structure level 1 dcl 11-5 insert_refs based structure level 1 dcl 11-21 ioa_$nnl 000000 constant entry external dcl 20-70 iox_$user_output external static pointer dcl 20-74 itsptr automatic pointer dcl 272 just internal static bit(6) initial unaligned dcl 17-148 k automatic fixed bin(17,0) dcl 271 l automatic fixed bin(17,0) dcl 271 lineno_pic automatic picture(6) unaligned dcl 275 lquote internal static char(1) initial unaligned dcl 12-6 lslnt internal static char(1) initial unaligned dcl 12-6 max_cols internal static fixed bin(17,0) initial dcl 14-7 max_image_lines internal static fixed bin(17,0) initial dcl 14-5 max_text_lines internal static fixed bin(17,0) initial dcl 15-128 med_sel based structure level 1 unaligned dcl 8-116 med_sel_p automatic pointer dcl 8-115 medchar based varying char dcl 8-113 medchar_sel based structure level 1 unaligned dcl 8-110 medchar_sel_p automatic pointer dcl 8-109 medsel based char(12) array unaligned dcl 8-36 medsel_table based structure level 1 unaligned dcl 8-86 medsel_table_ptr automatic pointer dcl 8-84 member based structure level 1 unaligned dcl 8-56 member_ptr automatic pointer dcl 8-55 min builtin function dcl 309 modmark internal static char(1) initial unaligned dcl 12-6 multiply internal static char(1) initial unaligned dcl 12-6 nabla internal static char(1) initial unaligned dcl 12-6 not_eq internal static char(1) initial unaligned dcl 12-6 num_value based fixed bin(31,0) dcl 15-133 oct031 internal static char(1) initial unaligned dcl 12-6 option_version internal static fixed bin(35,0) initial dcl 13-3 oput based structure level 1 unaligned dcl 8-92 oput_p automatic pointer dcl 8-91 overbar internal static char(1) initial unaligned dcl 12-6 page_image based structure level 1 dcl 14-56 page_image_version internal static fixed bin(35,0) initial dcl 14-53 page_version internal static fixed bin(17,0) initial dcl 14-9 perpen internal static char(1) initial unaligned dcl 12-6 pgs_path automatic char(200) unaligned dcl 281 pi internal static char(1) initial unaligned dcl 12-6 pl_mi internal static char(1) initial unaligned dcl 12-6 prll internal static char(1) initial unaligned dcl 12-6 prvtblcol based structure level 1 dcl 16-44 quadc internal static bit(6) initial unaligned dcl 17-148 quadi internal static bit(6) initial unaligned dcl 17-148 quadl internal static bit(6) initial unaligned dcl 17-148 quado internal static bit(6) initial unaligned dcl 17-148 quadr internal static bit(6) initial unaligned dcl 17-148 refname_str based char unaligned dcl 11-27 refstr_len automatic fixed bin(17,0) dcl 11-29 refstr_ptr automatic pointer dcl 11-30 repl_str based structure level 1 unaligned dcl 8-30 repl_str_ptr automatic pointer dcl 8-29 replstr based varying char(256) dcl 8-33 reverse builtin function dcl 309 rquote internal static char(1) initial unaligned dcl 12-6 save_ctl_index automatic fixed bin(35,0) dcl 283 save_shared based structure level 1 dcl 15-124 scale internal static fixed bin(31,0) initial array dcl 286 shared_version internal static fixed bin(35,0) initial dcl 15-5 sizel based structure level 1 unaligned dcl 8-103 sizel_p automatic pointer dcl 8-102 siztbl based structure level 1 unaligned dcl 8-38 slash internal static char(1) initial unaligned dcl 12-6 square internal static char(1) initial unaligned dcl 12-6 string_area based fixed bin(17,0) array dcl 17-43 sup0 internal static char(1) initial unaligned dcl 12-6 sup1 internal static char(1) initial unaligned dcl 12-6 sup2 internal static char(1) initial unaligned dcl 12-6 sup3 internal static char(1) initial unaligned dcl 12-6 sup4 internal static char(1) initial unaligned dcl 12-6 sup5 internal static char(1) initial unaligned dcl 12-6 sup6 internal static char(1) initial unaligned dcl 12-6 sup7 internal static char(1) initial unaligned dcl 12-6 sup8 internal static char(1) initial unaligned dcl 12-6 sup9 internal static char(1) initial unaligned dcl 12-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 20-80 taf_ctl_index internal static fixed bin(17,0) initial dcl 4-9 tblcol0 based structure level 1 dcl 16-41 tblcolndx automatic fixed bin(17,0) dcl 16-22 tblfmtndx automatic fixed bin(17,0) dcl 16-12 tblkdata based structure level 1 dcl 17-5 text_area based structure level 1 dcl 17-36 text_parms based structure level 1 dcl 17-206 tfore internal static char(1) initial unaligned dcl 12-6 theta internal static char(1) initial unaligned dcl 12-6 tmark internal static char(1) initial unaligned dcl 12-6 tree_flags based bit(1) array dcl 19-62 tree_incrs based fixed bin(31,0) array dcl 19-65 tree_names based char(32) array unaligned dcl 19-69 tree_nums based fixed bin(31,0) array dcl 19-72 type_font internal static char(1) initial unaligned dcl 5-90 type_lit internal static char(1) initial unaligned dcl 5-90 type_slx internal static char(1) initial unaligned dcl 5-90 type_slxly internal static char(1) initial unaligned dcl 5-90 type_sly internal static char(1) initial unaligned dcl 5-90 type_sx internal static char(1) initial unaligned dcl 5-90 type_sxy internal static char(1) initial unaligned dcl 5-90 type_sy internal static char(1) initial unaligned dcl 5-90 type_unstart internal static char(1) initial unaligned dcl 5-90 type_unstop internal static char(1) initial unaligned dcl 5-90 type_v0lx internal static char(1) initial unaligned dcl 5-90 type_v0lxly internal static char(1) initial unaligned dcl 5-90 type_v0ly internal static char(1) initial unaligned dcl 5-90 type_v0x internal static char(1) initial unaligned dcl 5-90 type_v0xy internal static char(1) initial unaligned dcl 5-90 type_v0y internal static char(1) initial unaligned dcl 5-90 type_vlx internal static char(1) initial unaligned dcl 5-90 type_vlxly internal static char(1) initial unaligned dcl 5-90 type_vly internal static char(1) initial unaligned dcl 5-90 type_vx internal static char(1) initial unaligned dcl 5-90 type_vxy internal static char(1) initial unaligned dcl 5-90 type_vy internal static char(1) initial unaligned dcl 5-90 type_wait internal static char(1) initial unaligned dcl 5-90 units based fixed bin(17,0) array dcl 8-81 units_ptr automatic pointer dcl 8-80 unspec builtin function dcl 309 vbot internal static bit(4) initial unaligned dcl 16-48 vcen internal static bit(4) initial unaligned dcl 16-47 vjust internal static bit(4) initial unaligned dcl 16-49 vrule internal static char(1) initial unaligned dcl 12-6 vtop internal static bit(4) initial unaligned dcl 16-46 wdir automatic char(168) unaligned dcl 298 wdirl automatic fixed bin(17,0) dcl 299 NAMES DECLARED BY EXPLICIT CONTEXT. allocate 030655 constant entry internal dcl 21-21 ref 1184 1206 1337 2476 append_footref 026342 constant entry internal dcl 1018 ref 979 1004 aux_file 026547 constant entry internal dcl 2449 ref 1226 2376 check_if 011657 constant label dcl 752 ref 746 comp_ctls_ 007306 constant entry external dcl 14 ctl_ 000000 constant label array(187) dcl 435 ref 432 ctl_loop 007447 constant label dcl 348 end_ctl_loop 026267 constant label dcl 2439 ref 367 374 385 394 427 442 450 465 470 476 490 495 506 531 540 550 555 558 565 577 579 586 599 601 605 617 619 627 644 649 656 662 664 679 697 699 702 705 708 714 723 784 789 798 835 842 844 855 874 879 887 891 896 906 913 920 928 953 967 1050 1055 1060 1065 1069 1079 1087 1108 1145 1160 1169 1190 1192 1227 1296 1305 1307 1315 1320 1324 1330 1347 1361 1364 1399 1405 1407 1452 1456 1460 1468 1487 1491 1495 1499 1507 1512 1545 1547 1551 1554 1580 1646 1668 1676 1682 1721 1736 1785 1796 1819 1825 1835 1853 1861 1874 1884 1910 1917 1927 1934 1938 1947 2009 2018 2023 2028 2040 2045 2047 2059 2108 2125 2145 2166 2175 2181 2187 2212 2226 2228 2231 2234 2237 2255 2271 2305 2340 2342 2351 2357 2359 2362 2373 2377 2411 endif_ctl 012320 constant label dcl 847 ref 838 hittype 000273 constant label array(0:8) dcl 1277 ref 1275 if_ctl 016143 constant label dcl 1367 ref 805 join_sp 020272 constant label dcl 1687 ref 1616 join_sp_1 020346 constant label dcl 1700 ref 1649 join_sp_2 020412 constant label dcl 1706 ref 1679 1809 process_hwrd 027672 constant entry internal dcl 2577 ref 1357 resrvd_nm 021442 constant label dcl 1832 ref 1838 return_ 026270 constant label dcl 2442 ref 380 421 2189 set_label 030376 constant entry internal dcl 2701 ref 1137 1493 show 030620 constant entry internal dcl 2746 ref 1759 1759 1759 1759 1768 1768 1768 1768 1778 1778 1778 1778 spb_ctl 017551 constant label dcl 1587 ref 1574 src_ctl 021266 constant label dcl 1811 ref 1912 tac_ctl 022343 constant label dcl 1920 ref 454 480 thl_ctl 023157 constant label dcl 2025 set ref 2110 unk_ctl 007730 constant label dcl 419 ref 401 vmb_ctl 024625 constant label dcl 2243 ref 2266 vmf_ctl 024726 constant label dcl 2257 ref 2300 vmh_ctl 025042 constant label dcl 2273 ref 2335 vmt_ctl 025223 constant label dcl 2307 ref 2240 wit_ctl 025455 constant label dcl 2353 ref 2345 NAMES DECLARED BY CONTEXT OR IMPLICATION. addrel builtin function ref 2396 2396 after builtin function ref 682 731 733 745 1955 1957 1968 2194 2609 byte builtin function ref 567 588 630 dec builtin function ref 2751 rank builtin function ref 567 567 588 588 630 630 round builtin function ref 2751 2751 translate builtin function ref 1272 2154 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 33164 33342 32416 33174 Length 34510 32416 156 1132 545 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_ctls_ 2384 external procedure is an external procedure. append_footref internal procedure shares stack frame of external procedure comp_ctls_. aux_file internal procedure shares stack frame of external procedure comp_ctls_. process_hwrd internal procedure shares stack frame of external procedure comp_ctls_. set_label internal procedure shares stack frame of external procedure comp_ctls_. show internal procedure shares stack frame of external procedure comp_ctls_. allocate internal procedure shares stack frame of external procedure comp_ctls_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 end_flag comp_ctls_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_ctls_ 000100 again comp_ctls_ 000101 aux_wrt_buf comp_ctls_ 000501 aux_file_index comp_ctls_ 000502 blnkct comp_ctls_ 000503 break_type comp_ctls_ 000504 callers_nest comp_ctls_ 000505 command_line comp_ctls_ 001104 cond_name comp_ctls_ 001115 ctl_index comp_ctls_ 001116 ctls_ptr comp_ctls_ 001120 ctl_token comp_ctls_ 001130 ctl_token_len comp_ctls_ 001131 dirname comp_ctls_ 001203 endchar comp_ctls_ 001204 ercd comp_ctls_ 001205 exit_str comp_ctls_ 001246 fcs_str comp_ctls_ 001250 footref_array comp_ctls_ 001317 footrefstr comp_ctls_ 001420 found_clause comp_ctls_ 001422 ftnblkptr comp_ctls_ 001424 ftndx comp_ctls_ 001425 given_symbol comp_ctls_ 001435 head_used comp_ctls_ 001436 hit_text comp_ctls_ 002036 hitfilendx comp_ctls_ 002037 hitcharndx comp_ctls_ 002040 hittypechar comp_ctls_ 002041 hittypendx comp_ctls_ 002042 i comp_ctls_ 002043 j comp_ctls_ 002044 mode_key comp_ctls_ 002046 modendx comp_ctls_ 002047 namel comp_ctls_ 002050 oflo comp_ctls_ 002051 rdct comp_ctls_ 002052 save_line comp_ctls_ 002452 save_posn comp_ctls_ 002453 search_label comp_ctls_ 002463 slog comp_ctls_ 002464 this_nest comp_ctls_ 002465 trim_flag comp_ctls_ 002466 ty_buf comp_ctls_ 002550 wrd_buffer comp_ctls_ 002620 hwrd comp_ctls_ 002721 tr_in comp_ctls_ 002722 tr_out comp_ctls_ 002723 bits comp_ctls_ 002724 fnttbl_ptr comp_ctls_ 002726 call_box_ptr comp_ctls_ 002730 tblfmtptr comp_ctls_ 002732 tblcolptr comp_ctls_ 002734 prvtblcolptr comp_ctls_ 002736 save_info comp_ctls_ 002742 hit_line comp_ctls_ 003222 line_area_ptr comp_ctls_ 003224 text_area_ptr comp_ctls_ 003226 txtstrptr comp_ctls_ 003230 txtlinptr comp_ctls_ 003232 tree_names_ptr comp_ctls_ 003234 tree_var_ptr comp_ctls_ 003260 aux_name aux_file 003270 aux_path aux_file 003352 pic_i aux_file 003364 brkpoints process_hwrd 003374 delete process_hwrd 003375 hpoints process_hwrd 003405 keywrd process_hwrd 003506 next_char process_hwrd 003507 trigger process_hwrd 003520 this_label set_label 003544 Nwords allocate 003546 P allocate 003550 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out return mod_fx1 signal shorten_stack ext_entry round_fx1 set_cs_eis index_cs_eis real_to_real_tr divide_fx1 index_before_cs index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ comp_block_ctls_ comp_break_ comp_break_ctls_ comp_expr_eval_ comp_fill_ comp_font_ comp_format_ctls_ comp_head_page_ comp_hft_ctls_ comp_insert_ctls_ comp_read_$line comp_read_$name comp_read_$number comp_report_ comp_report_$ctlstr comp_report_$exact comp_space_ comp_tbl_ctls_ comp_title_block_ comp_update_symbol_ comp_use_ref_ comp_util_$add_text comp_util_$display comp_util_$escape comp_util_$getblk comp_util_$replace_text comp_util_$search_tree comp_util_$set_bin comp_util_$set_net_page comp_util_$translate cu_$cp expand_pathname_ get_wdir_ ioa_ ioa_$rsnnl iox_$attach_name iox_$detach_iocb iox_$get_line iox_$open iox_$put_chars pathname_ translator_temp_$get_next_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. comp_error_table_$syntax_error comp_error_table_$unknown_keyword comp_error_table_$usage_error compstat$compconst iox_$error_output iox_$user_input LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 007303 8 13 007313 16 24 007315 16 43 007316 17 25 007317 17 35 007320 19 68 007321 19 75 007322 335 007323 339 007423 340 007425 342 007427 344 007437 345 007442 346 007445 348 007447 350 007452 352 007453 360 007511 363 007516 366 007525 367 007533 370 007534 373 007541 374 007547 379 007550 380 007553 385 007554 389 007604 392 007617 393 007621 394 007627 397 007630 398 007642 401 007646 404 007650 406 007653 408 007655 412 007715 414 007720 416 007727 419 007730 421 007733 425 007747 427 010031 430 010033 432 010036 435 010037 442 010045 445 010046 450 010054 452 010055 454 010057 456 010060 465 010066 467 010067 470 010075 473 010076 476 010104 478 010105 480 010107 482 010110 490 010116 492 010117 495 010125 498 010126 506 010134 508 010135 512 010144 515 010145 517 010201 520 010214 521 010232 523 010254 528 010270 531 010334 533 010335 537 010336 540 010375 542 010376 544 010377 546 010401 550 010500 552 010502 555 010510 558 010511 562 010515 565 010520 567 010524 573 010550 574 010555 576 010566 577 010572 579 010573 583 010577 586 010602 588 010606 594 010632 595 010637 598 010650 599 010654 601 010655 605 010661 612 010670 613 010677 616 010710 617 010711 619 010712 624 010716 627 010721 630 010725 636 010751 637 010756 640 010767 642 011000 644 011004 646 011005 649 011013 651 011014 654 011022 656 011025 658 011026 661 011034 662 011037 664 011040 668 011043 671 011106 672 011125 674 011127 677 011132 679 011205 682 011206 684 011254 688 011306 689 011313 692 011343 693 011352 694 011356 695 011360 697 011365 699 011366 702 011367 705 011370 708 011371 711 011372 714 011400 716 011401 720 011403 723 011442 726 011443 728 011445 731 011451 733 011515 735 011536 737 011554 739 011564 743 011565 745 011567 746 011610 748 011611 749 011621 750 011645 752 011657 756 011705 757 011707 758 011720 759 011731 769 011732 771 011733 774 011745 778 011777 783 012011 784 012013 787 012014 789 012015 791 012016 795 012020 798 012057 801 012060 804 012064 805 012066 808 012067 810 012077 811 012123 813 012135 816 012162 822 012164 825 012215 827 012216 830 012230 834 012262 835 012264 838 012265 841 012315 842 012316 844 012317 847 012320 852 012323 855 012364 858 012365 863 012430 865 012436 868 012441 869 012472 874 012537 876 012540 879 012546 881 012547 884 012554 887 012624 889 012625 891 012660 893 012662 896 012670 898 012671 902 012674 903 012704 906 012724 909 012725 913 012733 916 012734 920 012742 923 012743 928 012751 930 012752 935 012771 936 013016 937 013023 941 013024 942 013055 945 013070 948 013120 949 013130 951 013140 953 013152 955 013153 960 013223 962 013225 965 013235 967 013321 970 013323 971 013353 973 013372 975 013427 978 013440 979 013442 981 013446 982 013453 985 013464 986 013466 988 013473 992 013474 993 013476 1004 013502 1005 013504 1008 013533 1011 013544 1012 013546 1014 013553 1015 013555 1050 013557 1052 013560 1054 013562 1055 013566 1057 013567 1059 013571 1060 013576 1062 013577 1064 013601 1065 013606 1067 013607 1069 013611 1071 013612 1077 013656 1079 013661 1081 013662 1085 013665 1087 013747 1090 013751 1092 013761 1095 013764 1099 013773 1102 013774 1103 013777 1104 014002 1105 014007 1108 014060 1112 014062 1113 014067 1114 014075 1115 014077 1117 014100 1119 014107 1120 014133 1122 014145 1126 014151 1129 014175 1131 014210 1135 014233 1137 014236 1138 014237 1141 014253 1145 014325 1149 014327 1152 014363 1156 014364 1159 014475 1160 014505 1162 014506 1165 014507 1169 014515 1181 014516 1184 014526 1186 014544 1187 014562 1188 014602 1190 014620 1192 014621 1197 014624 1200 014630 1201 014632 1203 014633 1206 014637 1208 014655 1209 014674 1210 014714 1213 014732 1217 015015 1219 015016 1226 015110 1227 015143 1230 015145 1233 015162 1234 015170 1235 015201 1236 015204 1237 015206 1238 015207 1239 015211 1240 015217 1242 015221 1245 015235 1249 015272 1252 015311 1253 015333 1255 015362 1257 015401 1261 015425 1264 015437 1265 015441 1268 015444 1271 015522 1272 015536 1275 015554 1277 015555 1281 015620 1292 015652 1296 015702 1299 015703 1305 015711 1307 015712 1311 015713 1315 015721 1317 015722 1319 015730 1320 015732 1322 015733 1324 015735 1326 015736 1328 015740 1330 016007 1334 016010 1337 016014 1339 016030 1340 016035 1343 016041 1346 016045 1347 016047 1350 016050 1351 016057 1352 016101 1353 016123 1355 016127 1357 016132 1359 016140 1361 016141 1364 016142 1367 016143 1371 016144 1373 016145 1378 016156 1379 016176 1381 016230 1383 016231 1386 016313 1389 016327 1391 016344 1394 016355 1399 016422 1402 016423 1405 016431 1407 016432 1412 016437 1415 016454 1418 016471 1419 016502 1420 016512 1421 016520 1423 016524 1425 016527 1426 016537 1428 016547 1431 016553 1432 016555 1433 016556 1435 016561 1437 016570 1439 016575 1441 016600 1442 016602 1443 016606 1445 016611 1446 016613 1448 016617 1450 016621 1452 016633 1455 016642 1456 016645 1458 016646 1460 016654 1463 016655 1468 016663 1470 016664 1474 016667 1476 016675 1478 016700 1480 016717 1481 016723 1483 016724 1484 016726 1487 016732 1489 016733 1491 016741 1493 016742 1495 016743 1497 016744 1499 016752 1502 016753 1507 016761 1509 016762 1512 016770 1514 016771 1518 016774 1521 017043 1524 017113 1528 017114 1535 017245 1538 017273 1545 017410 1547 017411 1551 017412 1554 017413 1557 017414 1560 017436 1563 017440 1565 017504 1568 017507 1570 017525 1573 017527 1574 017531 1577 017532 1579 017541 1580 017544 1582 017545 1584 017546 1585 017550 1587 017551 1593 017556 1599 017575 1602 017617 1611 017646 1612 017650 1614 017651 1616 017653 1618 017654 1620 017656 1622 017657 1625 017671 1627 017672 1630 017713 1632 017717 1634 017721 1637 017730 1638 017761 1639 017774 1641 017775 1644 020016 1646 020056 1649 020057 1654 020072 1660 020145 1665 020175 1666 020207 1668 020220 1671 020222 1674 020223 1676 020265 1679 020266 1682 020267 1684 020270 1687 020272 1691 020277 1693 020316 1694 020327 1695 020330 1696 020332 1698 020337 1700 020346 1706 020412 1710 020414 1712 020445 1715 020450 1717 020472 1721 020504 1723 020505 1728 020526 1730 020530 1734 020544 1736 020604 1739 020605 1746 020631 1749 020643 1753 020706 1756 020716 1759 020723 1763 020777 1764 021007 1768 021010 1772 021063 1774 021072 1778 021073 1782 021146 1785 021155 1788 021157 1791 021164 1794 021171 1796 021217 1799 021220 1803 021242 1805 021260 1806 021262 1808 021263 1809 021265 1811 021266 1817 021275 1819 021336 1822 021337 1825 021376 1828 021403 1832 021442 1835 021512 1838 021513 1841 021517 1844 021526 1847 021572 1849 021646 1851 021650 1853 021704 1855 021705 1859 021710 1861 021750 1864 021751 1867 022014 1869 022024 1872 022025 1874 022072 1877 022073 1879 022075 1882 022104 1884 022145 1887 022146 1890 022155 1894 022214 1897 022221 1900 022266 1904 022267 1905 022300 1906 022323 1908 022331 1910 022332 1912 022333 1915 022334 1917 022342 1920 022343 1927 022351 1930 022352 1934 022360 1936 022361 1938 022367 1940 022370 1944 022372 1947 022431 1950 022432 1952 022434 1955 022440 1957 022504 1959 022525 1961 022543 1963 022553 1967 022554 1968 022556 1971 022620 1972 022621 1977 022652 1979 022661 1980 022705 1982 022717 1985 022744 1986 022746 1990 023011 1992 023012 1996 023036 2000 023070 2003 023121 2008 023130 2009 023132 2011 023133 2013 023134 2017 023152 2018 023154 2021 023155 2023 023156 2025 023157 2028 023166 2031 023167 2037 023201 2040 023241 2043 023242 2045 023250 2047 023251 2055 023252 2058 023255 2059 023263 2062 023264 2063 023276 2065 023310 2069 023356 2075 023424 2078 023437 2079 023442 2081 023444 2084 023456 2087 023457 2090 023461 2093 023510 2096 023535 2097 023537 2098 023542 2102 023543 2103 023552 2106 023561 2108 023565 2110 023566 2113 023567 2119 023640 2120 023642 2123 023651 2125 023734 2128 023736 2131 023741 2132 023770 2134 024002 2138 024003 2139 024026 2142 024040 2145 024076 2147 024077 2153 024123 2154 024153 2155 024202 2157 024224 2160 024226 2162 024254 2163 024257 2166 024260 2168 024261 2175 024267 2177 024270 2179 024274 2181 024303 2183 024304 2185 024310 2187 024317 2189 024320 2193 024323 2194 024357 2195 024405 2197 024407 2200 024420 2203 024424 2204 024431 2209 024463 2211 024520 2212 024523 2216 024524 2221 024557 2222 024562 2226 024617 2228 024620 2231 024621 2234 024622 2237 024623 2240 024624 2243 024625 2250 024702 2252 024711 2255 024725 2257 024726 2264 025004 2266 025013 2269 025025 2271 025041 2273 025042 2280 025120 2282 025127 2285 025140 2288 025142 2293 025160 2295 025161 2298 025174 2300 025176 2303 025210 2305 025222 2307 025223 2314 025277 2316 025306 2319 025317 2321 025321 2326 025337 2328 025340 2332 025353 2335 025355 2338 025367 2340 025401 2342 025402 2345 025403 2348 025404 2351 025454 2353 025455 2357 025525 2359 025526 2362 025527 2368 025530 2371 025533 2373 025573 2376 025574 2377 025614 2380 025616 2386 025653 2388 025670 2393 025730 2395 025767 2396 025777 2400 026032 2404 026100 2407 026137 2411 026205 2413 026206 2417 026212 2418 026216 2419 026223 2420 026224 2424 026225 2427 026233 2428 026237 2429 026244 2430 026245 2433 026246 2434 026250 2435 026255 2439 026267 2442 026270 2446 026341 1018 026342 1024 026344 1026 026350 1029 026353 1032 026372 1036 026450 1040 026452 1043 026503 1044 026543 1046 026544 1048 026546 2449 026547 2471 026560 2473 026562 2476 026572 2478 026606 2479 026613 2480 026634 2481 026655 2482 026677 2485 026716 2486 026737 2489 026740 2490 026753 2491 026761 2494 026762 2495 026776 2498 027002 2499 027005 2502 027017 2504 027043 2507 027045 2510 027122 2511 027126 2515 027127 2519 027156 2520 027161 2522 027163 2525 027172 2528 027175 2531 027245 2532 027250 2535 027251 2537 027260 2539 027272 2541 027312 2545 027363 2546 027373 2550 027450 2553 027453 2555 027530 2556 027534 2559 027535 2561 027561 2564 027563 2566 027640 2568 027657 2569 027662 2572 027663 2575 027671 2577 027672 2593 027673 2596 027700 2599 027750 2602 027751 2603 027752 2605 027760 2608 027773 2609 027775 2610 030020 2611 030021 2613 030022 2615 030027 2616 030045 2619 030053 2620 030065 2622 030067 2625 030072 2627 030076 2629 030104 2631 030106 2634 030111 2639 030117 2641 030122 2644 030126 2648 030127 2651 030132 2654 030134 2658 030204 2661 030205 2664 030211 2668 030261 2671 030262 2674 030265 2677 030271 2678 030300 2682 030301 2684 030303 2685 030333 2687 030335 2689 030350 2692 030354 2693 030361 2694 030365 2696 030371 2699 030375 2701 030376 2708 030377 2711 030407 2713 030452 2715 030453 2717 030504 2721 030514 2723 030557 2726 030560 2729 030562 2732 030571 2736 030573 2739 030577 2740 030604 2741 030607 2744 030617 2746 030620 2751 030622 21 21 030655 21 40 030657 21 41 030665 21 42 030671 21 43 030704 21 44 030714 21 45 030717 21 47 030727 21 48 030736 21 49 030742 21 50 030750 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved