COMPILATION LISTING OF SEGMENT comp_write_page_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1012.2 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* compose subroutine to write out a page */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_write_page_: 15 proc; 16 17 /* LOCAL STORAGE */ 18 19 dcl BELHT char (2) static options (constant) init (" "); 20 dcl blkct fixed bin; /* local block counter */ 21 /* selected block */ 22 dcl 1 block aligned like text based (blkptr); 23 dcl blkptr ptr; /* working block pointer */ 24 dcl BUILD fixed bin static options (constant) init (0); 25 dcl changed_front bit (1); 26 dcl changed_page bit (1) init ("0"b); 27 dcl col0blk fixed bin; /* ftn/ftr block in col 0 */ 28 dcl colblkcnt fixed bin; /* local block count */ 29 dcl colstrt fixed bin; /* column # to start column merge */ 30 dcl debug_sw bit (1); /* effective debug switch */ 31 dcl ercd fixed bin (35); /* error code */ 32 dcl flin_sw bit (1); /* 1= first line of block */ 33 dcl FN_pic pic "zzz"; /* pictured insert file index */ 34 dcl (i, j, k) fixed bin init (0); 35 dcl iblk fixed bin; /* block counter */ 36 dcl icol fixed bin; /* column counter */ 37 dcl ilin fixed bin; /* line counter */ 38 dcl INIT fixed bin static options (constant) init (1); 39 /* last font for annotating */ 40 dcl last_font fixed bin init (-1); 41 /* last size for annotating */ 42 dcl last_size fixed bin (31) init (-1); 43 /* left margin text image lines */ 44 dcl lcol_text (max_image_lines) char (10) varying 45 based (lcolimage.text_ptr); 46 dcl left_margin_note_space /* space for linenos & cbars */ 47 fixed bin (31); 48 dcl LN_pic pic "zzzzzz"; /* for line numbers option */ 49 dcl LNdw fixed bin (31); /* line number digit width */ 50 /* selected column */ 51 dcl 1 locol aligned like col based (locolptr); 52 dcl locolptr ptr; /* working column pointer */ 53 dcl n_read fixed bin (35); /* chars read into user_discard */ 54 dcl next_depth fixed bin (31); /* next page depth */ 55 dcl next_rec bit (36); /* for output record control */ 56 dcl obverse_opt bit (1) static /* dummy until something */ 57 init ("0"b); /* shown in option */ 58 dcl PADHT char (2) static options (constant) init (" "); 59 /* the current preface */ 60 dcl print_sw bit (1); /* local print switch */ 61 dcl rawo_mode bit (1) static /* 1 = actually in RAWO */ 62 init ("0"b); /**/ 63 /* right margin text */ 64 dcl rcol_text (max_image_lines) char (128) var 65 based (rcolimage.text_ptr); 66 dcl recleng fixed bin (24); /* length of record in words */ 67 dcl sequential_output 68 fixed bin static options (constant) init (5); 69 dcl size_str char (16) var; /* for annotating */ 70 /* for special output lines */ 71 dcl spcl_line char (1020) var; 72 dcl stop_signal char (5); /* 2 ({BEL}||HT)||CR */ 73 dcl type_font_chars 74 char (2) static options (constant) init (""); 75 dcl user_discard char (80); /* string to support -stop option */ 76 dcl wt_mark char (8) static options (constant) init ("<<.wt>> 77 "); 78 79 dcl str_p ptr; 80 dcl 1 bstr based (str_p), 81 2 str_l fixed bin, 82 2 str char (bstr.str_l); 83 84 /* EXTERNAL STORAGE */ 85 86 dcl (addr, addrel, copy, fixed, index, length, max, null, pointer, rel, 87 size, substr) builtin; 88 89 dcl (comp_abort, quit) 90 condition; 91 92 dcl error_table_$long_record 93 fixed (35) ext static; 94 95 dcl com_err_ entry options (variable); 96 dcl continue_to_signal_ 97 entry (fixed bin (35)); 98 dcl get_temp_segment_ 99 entry (char (*), ptr, fixed bin (35)); 100 dcl ioa_$rsnnl entry options (variable); 101 dcl iox_$control entry (ptr, char (*), ptr, fixed (35)); 102 dcl iox_$get_line entry (ptr, ptr, fixed (35), fixed (35), fixed (35)); 103 dcl iox_$modes entry (ptr, char (*), char (*), fixed (35)); 104 dcl iox_$put_chars entry (ptr, ptr, fixed (24), fixed (35)); 105 dcl iox_$write_record 106 entry (ptr, ptr, fixed bin (24), fixed bin (35)); 107 108 debug_sw = shared.bug_mode | db_sw; 109 110 if debug_sw 111 then call ioa_ ("write_page: (page=^a^[ MOD^] cols=^d dev=^a)", 112 page.hdr.pageno, page.hdr.modified, page.hdr.col_count, 113 option.device); 114 115 if option.nobell_opt 116 then stop_signal = PADHT || PADHT || CR; 117 else stop_signal = BELHT || BELHT || CR; 118 119 LNdw = comp_dvt.init_ps; /* must tackle the problem of what */ 120 /* font and size do line numbers */ 121 /* get set in. I think they */ 122 /* should use the superscript */ 123 /* digits as are present on the */ 124 /* CSR font. Perhaps compdv needs */ 125 /* a control which specifies this */ 126 /* kind of information. */ 127 128 if (shared.print_flag /* set local print switch */ 129 | (option.page_chng_opt & shared.pass_counter <= 1 130 & (page.hdr.modified & page.hdr.pgc_select = option.cbar.level 131 | page.hdr.dot_addltr = option.pgc_select))) & ^option.check_opt 132 then print_sw = "1"b; 133 else print_sw = "0"b; 134 135 if print_sw /* is this page to be printed? */ 136 then 137 do; 138 if page.image_ptr = null /* allocate page image structure */ 139 then 140 do; 141 page.image_ptr = 142 allocate (const.local_area_ptr, size (page_image)); 143 /* use a temp seg for the actual text 144* /* since we may need a whole segment */ 145 call get_temp_segment_ ("compose", page_image.text_ptr, ercd); 146 if ercd ^= 0 147 then 148 do; 149 call com_err_ (ercd, "compose", 150 "Getting a temp segment for the output page image."); 151 signal comp_abort; 152 goto return_; 153 end; 154 end; /**/ 155 /* initialize writer for this page */ 156 call comp_dvt.outproc (INIT, ercd); 157 if ercd ^= 0 158 then 159 do; /* WHAT ABOUT IT ??!! */ 160 end; 161 162 page_image.count = 0; /* clear page image */ 163 /* set file id */ 164 page_image.file_id = shared.output_file; 165 page_image.func = BUILD; /* set function to build */ 166 record_ptr = page_image.text_ptr; 167 168 if option.number_opt /* line numbers or change bars? */ 169 | option.cbar_opt & ^option.galley_opt & option.cbar.place ^= "r" 170 | page.hdr.col_count > 1 171 then 172 do; 173 if page.col_image_ptr (-1) = null () 174 then 175 do; /* allocate left margin column */ 176 page.col_image_ptr (-1) = 177 allocate (const.local_area_ptr, size (lcolimage)); 178 unspec (lcolimage) = "0"b; 179 lcolimage.text_ptr = 180 allocate (const.local_area_ptr, size (lcol_text)); 181 end; 182 183 lcolimage.count = 0; /* clear the image */ 184 /* so 1st line gets a lineno */ 185 lcolimage.line (1).depth = -1; 186 end; /**/ 187 /* change bars or annotating? */ 188 if option.cbar_opt | option.annot_opt | annot_sw 189 then 190 do; 191 if page.col_image_ptr (-2) = null () 192 then 193 do; /* allocate right margin column */ 194 page.col_image_ptr (-2) = 195 allocate (const.local_area_ptr, size (rcolimage)); 196 unspec (rcolimage) = "0"b; 197 rcolimage.text_ptr = 198 allocate (const.local_area_ptr, size (rcol_text)); 199 end; 200 201 rcolimage.count = 0; /* clear it */ 202 /* so 1st line gets a mark */ 203 rcolimage.line (1).depth = -1; 204 end; 205 206 left_margin_note_space = 207 10 * LNdw * fixed (option.number_opt) 208 * (bin (^option.galley_opt) * page.hdr.col_count + 1) 209 + page.hdr.lmarg + option.extra_indent; 210 211 if option.cbar_opt & ^option.galley_opt & option.cbar.place ^= "r" 212 then 213 do; 214 if page.parms.cols.count = 0 215 then left_margin_note_space = 216 left_margin_note_space + option.cbar.space; 217 else if option.cbar.space > col1.margin.left 218 then left_margin_note_space = 219 left_margin_note_space + option.cbar.space 220 - col0.margin.left; 221 end; 222 end; /**/ 223 /* have to go thru the motions here */ 224 /* for possible hit and toc lines in */ 225 /* the image */ 226 col_loop: /* build image for each column */ 227 do icol = 0 to page.hdr.col_count; 228 locolptr = page.column_ptr (icol); 229 230 if print_sw 231 then 232 do; 233 if page.col_image_ptr (icol) = null () 234 then page.col_image_ptr (icol) = 235 allocate (const.local_area_ptr, size (colimage)); 236 colimage_ptr = page.col_image_ptr (icol); 237 colimage.count = 0; /* clear column image */ 238 239 if debug_sw 240 then call ioa_ ("^5x(col=^d b=^d u=^f mrg=^f/^f lmrg=^f)" 241 || "^[^/bk ct fn/ln ch gp lmarg rmarg width " 242 || "depth lead set^]", icol, locol.hdr.blkct, 243 show (locol.hdr.used, 12000), 244 show (locol.margin.left, 12000), 245 show (locol.margin.right, 12000), 246 show (left_margin_note_space, 12000), 247 (locol.hdr.blkct > 0)); 248 end; 249 250 colblkcnt = locol.hdr.blkct; 251 252 do iblk = 1 to colblkcnt; /* for each block in the column */ 253 blkptr = locol.blkptr (iblk); 254 flin_sw = "1"b; /* set first line on */ 255 256 if blkptr ^= null 257 then call build_block_image (max (0, bin (^option.galley_opt) * icol)); 258 end; 259 end col_loop; /* end of first column loop */ 260 261 if print_sw /* now gather all the column images */ 262 then /* and merge them into the page image */ 263 do; 264 if option.number_opt | /* set starting column for merge */ 265 option.cbar_opt & ^option.galley_opt & option.cbar.place ^= "r" 266 | page.hdr.col_count > 1 267 then colstrt = -1; 268 else colstrt = 0; 269 270 do icol = colstrt to page.hdr.col_count; 271 colimage_ptr = page.col_image_ptr (icol); 272 /* add column image to page image */ 273 addr (page_image.line (page_image.count + 1)) -> image_lines = 274 addr (colimage.line (1)) -> image_lines; 275 page_image.count = page_image.count + colimage.count; 276 end; /**/ 277 /* next, add the right margin column */ 278 if option.cbar_opt | option.annot_opt | annot_sw 279 then 280 do; 281 colimage_ptr = page.col_image_ptr (-2); 282 addr (page_image.line (page_image.count + 1)) -> image_lines = 283 addr (colimage.line (1)) -> image_lines; 284 page_image.count = page_image.count + colimage.count; 285 end; 286 287 if (option.number_opt /* if line numbers are active */ 288 | option.cbar_opt /* or change bars are active */ 289 | page.hdr.art /* or theres page artwork */ 290 | option.annot_opt | annot_sw 291 /* or annotating */ 292 | page.hdr.col_count > 0) /* or a multi-column page */ 293 & comp_dvt.interleave /* and device needs interleaving */ 294 then colimage_ptr = page.image_ptr; 295 296 if ^option.page_chng_opt /* printing everything? */ 297 then goto do_processing; /* ...then do it */ 298 299 changed_front = record.changed & record.front; 300 /* remember status of prev page */ 301 302 if ^obverse_opt /* not concerned with obverse pages? */ 303 then 304 do; 305 if changed_page /* then print only if changed */ 306 then goto do_processing; 307 goto skip_page; 308 end; 309 310 if page.hdr.frontpage 311 then 312 do; 313 if record.pending 314 then ; /* error: 2 fronts in a row! */ 315 goto do_processing; 316 end; 317 318 if changed_front 319 then 320 do; 321 goto do_processing; 322 end; 323 324 if ^record.pending 325 then 326 do; /* error: 2 backs in a row */ 327 end; 328 329 do_processing: 330 if option.wait_opt & ^option.output_file_opt 331 then 332 do; 333 if wait_ () = "" 334 then ; 335 option.wait_opt = "0"b; /* reset -wait after one time */ 336 end; 337 338 record.MBZ = "0"b; 339 record.changed = changed_page; 340 341 if option.galley_opt 342 then 343 do; 344 record.pageid = "-1"; 345 record.front = "1"b; 346 end; 347 348 else 349 do; 350 record.pageid = page.hdr.pageno; 351 record.front = page.hdr.frontpage; 352 record.blank = page.hdr.blankpage; 353 end; 354 355 if page_image.count > 0 /* build the page image */ 356 then 357 do; 358 call comp_dvt.outproc (BUILD, ercd); 359 if ercd ^= 0 360 then call comp_report_ (2, ercd, "While in output writer.", 361 addr (ctl.info), ""); 362 363 if option.page_chng_opt 364 then if ^(changed_page | changed_front) 365 then goto return_; 366 367 call print_page; /* write the current page image */ 368 end; 369 end; 370 371 skip_page: 372 if ^option.galley_opt 373 then 374 do; 375 do i = 0 to page.hdr.col_count; /* return all blocks printed */ 376 locolptr = page.column_ptr (i); 377 blkct = locol.hdr.blkct; 378 do j = 1 to blkct; 379 if shared.blkptr = locol.blkptr (j) 380 then shared.blkptr = null (); 381 if locol.blkptr (j) ^= null 382 then call comp_util_$relblk (i, locol.blkptr (j)); 383 end; 384 end; 385 end; 386 387 return_: 388 if debug_sw 389 then call ioa_ (" (write_page page=^a)", page.hdr.pageno); 390 return; 391 392 build_block_image: 393 proc (jcol); 394 395 dcl jcol fixed bin; 396 dcl jlin fixed bin; 397 398 jlin = 0; 399 do line_area_ptr = block.line_area.first repeat (line_area.next) 400 while (line_area_ptr ^= null & jlin < block.hdr.count); 401 do ilin = 1 to line_area.ndx; 402 txtlinptr = line_area.linptr (ilin); 403 txtstrptr = txtlin.ptr; 404 jlin = jlin + 1; /**/ 405 /* if not a null line */ 406 if ^(txtstr = "" & txtlin.linespace = 0) 407 then 408 do; 409 if debug_sw & print_sw 410 then call ioa_$nnl ("^[^2i^3i^;^5x^]", flin_sw, block.blkndx, 411 block.hdr.count); 412 flin_sw = "0"b; 413 414 if txtlin.spcl.file /* special output line? */ 415 then 416 do; 417 if debug_sw & print_sw 418 then call ioa_ ("^3i/^d^12tspecial line", ilin, txtlin.lineno); 419 420 if txtlin.spcl_iocbp = null () 421 then 422 do; 423 call comp_report_ (4, 0, 424 "Program error. No IOCB pointer for special line.", 425 addr (txtlin.info), txtstr); 426 signal comp_abort; 427 return; 428 end; 429 430 if txtlin.default /* a hit line? */ 431 then call ioa_$rsnnl ("^a ^a^/", spcl_line, 0, txtstr, 432 page.hdr.pageno); 433 else spcl_line = txtstr; 434 435 call iox_$put_chars (txtlin.spcl_iocbp, 436 addrel (addr (spcl_line), 1), length (spcl_line), ercd); 437 if ercd ^= 0 438 then 439 do; 440 call comp_report_ (4, ercd, "Writing special output line.", 441 addr (txtlin.info), txtstr); 442 signal comp_abort; 443 return; 444 end; 445 end; 446 447 else if print_sw 448 then 449 do; 450 if colimage.count = 0 /* set column depth */ 451 then next_depth = txtlin.depth; 452 453 else if txtlin.depth > next_depth 454 then next_depth = txtlin.depth; 455 456 j, colimage.count = colimage.count + 1; 457 /* if line numbers are wanted */ 458 if option.number_opt /* and not white space */ 459 then if txtlin.ptr -> txtstr ^= "" 460 /* and there isnt one at this depth */ 461 /* for this column */ 462 & lcolimage.line (max (lcolimage.count, 1)).depth 463 ^= txtlin.depth 464 | (lcolimage.line (max (lcolimage.count, 1)).depth 465 = txtlin.depth 466 & lcolimage.line (max (lcolimage.count, 1)).lmarg 467 ^= LNdw * 10 * jcol) 468 then 469 do; /* form line number */ 470 FN_pic = txtlin.info.fileno; 471 LN_pic = txtlin.info.lineno; 472 473 i, lcolimage.count = lcolimage.count + 1; 474 lcolimage.line (i).ptr = addr (lcol_text (i)); 475 lcolimage.line (i).lfnt = 2; 476 lcolimage.line (i).lsize = LNdw; 477 lcolimage.line (i).depth = txtlin.depth; 478 lcolimage.line (i).width = LNdw * 10; 479 lcolimage.line (i).lmarg = LNdw * 10 * jcol; 480 lcolimage.line (i).rmarg = LNdw * 10 * (jcol + 1); 481 lcolimage.line (i).lead = 0; 482 lcolimage.line (i).mrgtxt = "1"b; 483 lcolimage.line (i).info = txtlin.info; 484 485 if jcol < page.hdr.col_count & ^option.galley_opt 486 then lcol_text (i) = FN_pic || LN_pic || "|"; 487 else lcol_text (i) = FN_pic || LN_pic || " "; 488 end; 489 490 if option.cbar_opt /* if change bars are active */ 491 & unspec (txtlin.cbar) ^= "0"b 492 then call add_cbars; 493 494 colimage.line (j).ptr = txtlin.ptr; 495 colimage.line (j).depth = txtlin.depth; 496 colimage.line (j).lmarg = 497 locol.margin.left + left_margin_note_space + txtlin.lmarg; 498 colimage.line (j).rmarg = 499 locol.margin.left + left_margin_note_space + txtlin.rmarg; 500 colimage.line (j).net = txtlin.net; 501 colimage.line (j).width = txtlin.width; 502 colimage.line (j).lfnt = txtlin.font.devfnt; 503 colimage.line (j).lsize = txtlin.font.size; 504 colimage.line (j).quad = txtlin.quad; 505 colimage.line (j).white = txtlin.white; 506 colimage.line (j).gaps = txtlin.cur.gaps; 507 colimage.line (j).lead = txtlin.linespace; 508 colimage.line (j).info = txtlin.info; 509 510 if txtlin.quad = quado 511 then if page.hdr.frontpage 512 then colimage.line (j).quad = quadr; 513 else colimage.line (j).quad = quadl; 514 515 if txtlin.quad = quadi 516 then if ^page.hdr.frontpage 517 then colimage.line (j).quad = quadr; 518 else colimage.line (j).quad = quadl; 519 520 if debug_sw & print_sw 521 then call ioa_ ("^3d/^d^8t^3i^3i^5(^8f^) ^[I^]^[O^]" 522 || "^[L^]^[C^]^[R^]^[J^]^[|^]^[*^]", txtlin.fileno, 523 txtlin.lineno, length (txtstr), txtlin.cur.gaps, 524 show (colimage.line (j).lmarg, 12000), 525 show (colimage.line (j).rmarg, 12000), 526 show (txtlin.width, 12000), 527 show (txtlin.depth, 12000), 528 show (txtlin.linespace, 12000), txtlin.quad & quadi, 529 txtlin.quad & quado, 530 (txtlin.quad & quadl | txtlin.quad = "0"b), 531 txtlin.quad & quadc, txtlin.quad & quadr, 532 txtlin.quad & just, 533 (txtlin.cbar.mod | txtlin.cbar.add), txtlin.cbar.del) 534 ; /* annotation wanted? */ 535 if (option.annot_opt | annot_sw) & txtstr ^= "" 536 /* dont annotate WS */ 537 then 538 do; 539 i = rcolimage.count;/* current rcol line index */ 540 /* new font for this line? */ 541 if last_font ^= txtlin.font.devfnt 542 | last_size ^= txtlin.font.size 543 then 544 do; 545 last_font = txtlin.font.devfnt; 546 /* record it */ 547 last_size = txtlin.font.size; 548 549 call ioa_$rsnnl ("^f", size_str, 0, 550 show (last_size, 1000)); 551 552 if i > 0 /* adding one? */ 553 & rcolimage.line (i).depth = txtlin.depth 554 then rcol_text (i) = 555 rcol_text (i) || " - " 556 || fnttbldata.ptr (last_font) 557 -> fnttbl.entry.name || " " || size_str; 558 559 else 560 do; /* first for this line */ 561 i, rcolimage.count = rcolimage.count + 1; 562 rcol_text (i) = 563 " - " 564 || fnttbldata.ptr (last_font) 565 -> fnttbl.entry.name || " " || size_str; 566 rcolimage.line (i).ptr = addr (rcol_text (i)); 567 rcolimage.line (i).lfnt = 2; 568 rcolimage.line (i).lsize = LNdw; 569 rcolimage.line (i).depth = txtlin.depth; 570 rcolimage.line (i).lmarg = 571 col0.margin.right + left_margin_note_space 572 + 21600 * bin (option.cbar_opt); 573 rcolimage.line (i).rmarg = 950400; 574 rcolimage.line (i).net = 575 rcolimage.line (i).rmarg 576 - rcolimage.line (i).lmarg; 577 rcolimage.line (i).width = 0; 578 rcolimage.line (i).mrgtxt = "1"b; 579 rcolimage.line (i).lead = block.parms.linespace; 580 rcolimage.line (i).info = txtlin.info; 581 end; 582 end; /* look for embedded changes */ 583 if index (txtstr, type_font_chars) ^= 0 584 then 585 do; 586 if i > 0 & rcolimage.line (i).depth = txtlin.depth 587 then ; 588 589 else 590 do; 591 i, rcolimage.count = rcolimage.count + 1; 592 call ioa_$rsnnl ("^f", size_str, 0, 593 show (txtlin.font.size, 1000)); 594 rcol_text (i) = 595 " - " || rtrim (txtlin.font.fam_name) 596 || rtrim (txtlin.font.mem_name) || " " 597 || size_str; 598 rcolimage.line (i).ptr = addr (rcol_text (i)); 599 rcolimage.line (i).lfnt = 2; 600 rcolimage.line (i).lsize = LNdw; 601 rcolimage.line (i).depth = txtlin.depth; 602 rcolimage.line (i).lmarg = 603 col0.margin.right + left_margin_note_space 604 + 21600 * bin (option.cbar_opt); 605 rcolimage.line (i).rmarg = 606 rcolimage.line (i).lmarg + 921600; 607 rcolimage.line (i).net = 608 rcolimage.line (i).rmarg 609 - rcolimage.line (i).lmarg; 610 rcolimage.line (i).width = 0; 611 rcolimage.line (i).lead = block.parms.linespace; 612 rcolimage.line (i).info = txtlin.info; 613 end; 614 615 j, k = 1; 616 do while (k ^= 0 & j < length (txtstr)); 617 k = index (substr (txtstr, j), type_font_chars); 618 619 if k > 0 620 then 621 do; 622 DCxx_p = addr (substr (txtstr, j + k - 1, 1)); 623 624 last_size = dcfs.p; 625 last_font = dcfs.f; 626 627 call ioa_$rsnnl ("^f", size_str, 0, 628 show (last_size, 1000)); 629 rcol_text (i) = 630 rcol_text (i) || " - " 631 || fnttbldata.ptr (last_font) 632 -> fnttbl.entry.name || " " || size_str; 633 j = j + k + dcfs_len + 3; 634 end; 635 end; 636 end; 637 end; 638 639 changed_page = 640 changed_page | txtlin.cbar.mod | txtlin.cbar.add 641 | txtlin.cbar.del; /* next depth in column */ 642 next_depth = next_depth + txtlin.linespace; 643 end; 644 end; 645 end; 646 end; 647 end build_block_image; 648 649 add_cbars: 650 proc; /* add change bars to line */ 651 652 if page.hdr.col_count <= 1 /* one-up */ 653 | icol = 0 | option.galley_opt /* or column 0 of multicolumn */ 654 then 655 do; 656 if (option.cbar.place = "l" | /* marking the left margin? */ 657 option.cbar.place = "o" & ^page.hdr.frontpage 658 | option.cbar.place = "i" & page.hdr.frontpage) 659 & ^option.galley_opt 660 then 661 do; 662 i = max (lcolimage.count, 1); 663 /* if there isnt one at this depth */ 664 if (lcolimage.line (i).depth ^= txtlin.depth 665 | lcolimage.line (i).rmarg 666 > lcolimage.line (i).lmarg + option.cbar.space) 667 then 668 do; 669 i, lcolimage.count = lcolimage.count + 1; 670 lcolimage.line (i).ptr = addr (lcol_text (i)); 671 lcolimage.line (i).lfnt = 2; 672 lcolimage.line (i).lsize = 14000; 673 lcolimage.line (i).quad = quadl; 674 lcolimage.line (i).depth = txtlin.depth; 675 lcolimage.line (i).lmarg = 676 left_margin_note_space - option.cbar.space; 677 if page.parms.cols.count > 0 678 then lcolimage.line (i).lmarg = 679 lcolimage.line (i).lmarg + col1.margin.left; 680 lcolimage.line (i).rmarg = 681 lcolimage.line (i).lmarg + option.cbar.space; 682 lcolimage.line (i).width = 0; 683 lcolimage.line (i).lead = 0; 684 lcolimage.line (i).art = option.cbar_art_opt; 685 lcolimage.line (i).cbar = "1"b; 686 lcolimage.line (i).info = txtlin.info; 687 /* need a mod mark */ 688 if (txtlin.cbar.mod | txtlin.cbar.add) 689 then lcol_text (i) = option.cbar.left.mark; 690 /* need a del mark */ 691 else if txtlin.cbar.del 692 then lcol_text (i) = option.cbar.del.mark; 693 end; 694 end; 695 696 if (option.cbar.place = "r" /* marking the right margin */ 697 | page.hdr.col_count > 1 698 | option.cbar.place = "i" & ^page.hdr.frontpage 699 | option.cbar.place = "o" & page.hdr.frontpage 700 | option.galley_opt) /* and there isnt one at this depth */ 701 & rcolimage.line (max (rcolimage.count, 1)).depth ^= txtlin.depth 702 then 703 do; 704 i, rcolimage.count = rcolimage.count + 1; 705 rcolimage.line (i).ptr = addr (rcol_text (i)); 706 rcolimage.line (i).lfnt = 2; 707 rcolimage.line (i).lsize = 14000; 708 rcolimage.line (i).quad = quadr; 709 rcolimage.line (i).depth = txtlin.depth; 710 rcolimage.line (i).lmarg = 711 left_margin_note_space 712 + page.column_ptr (icol) -> col.margin.right; 713 rcolimage.line (i).rmarg = 714 rcolimage.line (i).lmarg + option.cbar.right.sep 715 + option.cbar.right.width; 716 rcolimage.line (i).net = 717 rcolimage.line (i).rmarg - rcolimage.line (i).lmarg; 718 rcolimage.line (i).lead = block.parms.linespace; 719 rcolimage.line (i).art = option.cbar_art_opt; 720 rcolimage.line (i).cbar = "1"b; 721 rcolimage.line (i).info = txtlin.info; 722 /* need a mod mark? */ 723 if (txtlin.cbar.mod | txtlin.cbar.add) 724 then 725 do; 726 rcol_text (i) = option.cbar.right.mark; 727 rcolimage.line (i).width = option.cbar.right.width; 728 end; 729 730 else if txtlin.cbar.del /* need a del mark? */ 731 then 732 do; 733 rcol_text (i) = option.cbar.del.mark; 734 rcolimage.line (i).width = option.cbar.del.width; 735 end; 736 end; 737 end; 738 739 else if page.hdr.col_count = 2 /* 2-up change bars */ 740 then 741 do; 742 if icol = 1 /* left margin for column 1 */ 743 & (txtlin.cbar.mod | txtlin.cbar.add | txtlin.cbar.del) 744 then 745 do; 746 i = max (lcolimage.count, 1); 747 /* if there isnt one at this depth */ 748 if (lcolimage.line (i).depth ^= txtlin.depth 749 | lcolimage.line (i).rmarg 750 > lcolimage.line (i).lmarg + option.cbar.space) 751 then 752 do; 753 i, lcolimage.count = lcolimage.count + 1; 754 lcolimage.line (i).ptr = addr (lcol_text (i)); 755 lcolimage.line (i).lfnt = 2; 756 lcolimage.line (i).lsize = 14000; 757 lcolimage.line (i).quad = quadl; 758 lcolimage.line (i).depth = txtlin.depth; 759 lcolimage.line (i).lmarg = 760 page.hdr.lmarg 761 + LNdw * 10 * fixed (option.number_opt) 762 * (page.hdr.col_count + 1) + option.extra_indent; 763 lcolimage.line (i).rmarg = 764 lcolimage.line (i).lmarg + option.cbar.space; 765 lcolimage.line (i).width = 0; 766 lcolimage.line (i).lead = 0; 767 lcolimage.line (i).art = option.cbar_art_opt; 768 lcolimage.line (i).info = txtlin.info; 769 770 if (txtlin.cbar.mod | txtlin.cbar.add) 771 /* need a mod mark */ 772 then lcol_text (i) = option.cbar.left.mark; 773 774 else if txtlin.cbar.del /* need a del mark */ 775 then lcol_text (i) = option.cbar.del.mark; 776 end; 777 end; 778 779 else if (txtlin.cbar.mod | txtlin.cbar.add | txtlin.cbar.del) 780 /* and there isnt one at this depth */ 781 & rcolimage.line (max (rcolimage.count, 1)).depth ^= txtlin.depth 782 then 783 do; /* right margin for column 2 */ 784 i, rcolimage.count = rcolimage.count + 1; 785 rcolimage.line (i).ptr = addr (rcol_text (i)); 786 rcolimage.line (i).lfnt = 2; 787 rcolimage.line (i).lsize = 14000; 788 rcolimage.line (i).quad = quadr; 789 rcolimage.line (i).depth = txtlin.depth; 790 rcolimage.line (i).lmarg = 791 left_margin_note_space 792 + page.column_ptr (2) -> col.margin.right; 793 rcolimage.line (i).rmarg = 794 rcolimage.line (i).lmarg + option.cbar.right.sep 795 + option.cbar.right.width; 796 rcolimage.line (i).net = 797 rcolimage.line (i).rmarg - rcolimage.line (i).lmarg; 798 rcolimage.line (i).lead = block.parms.linespace; 799 rcolimage.line (i).art = option.cbar_art_opt; 800 rcolimage.line (i).cbar = "1"b; 801 rcolimage.line (i).info = txtlin.info; 802 803 if (txtlin.cbar.mod | txtlin.cbar.add) 804 /* need a mod mark */ 805 then rcol_text (i) = option.cbar.right.mark; 806 807 else if txtlin.cbar.del /* need a del mark */ 808 then rcol_text (i) = option.cbar.del.mark; 809 end; 810 end; 811 812 else 813 do; /* multicolumn change bars ???? */ 814 end; 815 end add_cbars; 816 817 print_page: 818 proc; 819 820 dcl change_signal char (128); 821 dcl first_sw bit (1) init ("1"b); 822 dcl mounted_wheel fixed bin static init (1); 823 dcl 1 preface aligned like page_record based (page_record_ptr); 824 dcl PREFACE char (500) varying static; 825 826 record.pending = "0"b; /**/ 827 /* if outputting to a file */ 828 if option.output_file_opt /* and its a sequential file */ 829 & comp_dvt.open_mode = sequential_output 830 then 831 do; 832 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 833 834 if shared.compout_not_headed /* write file header */ 835 then 836 do; /* set length of cleanup string */ 837 if comp_dvt.cleanup_r = "0"b 838 then l_cleanup = 0; 839 else 840 do; 841 str_p = pointer (const.devptr, comp_dvt.cleanup_r); 842 l_cleanup = 4 * divide (bstr.str_l + 3, 4, 17, 0); 843 end; /**/ 844 /* set length of comment string */ 845 if comp_dvt.comment_r = "0"b 846 then l_comment = 0; 847 else 848 do; 849 str_p = pointer (const.devptr, comp_dvt.comment_r); 850 l_comment = 4 * divide (bstr.str_l + 3, 4, 17, 0); 851 end; 852 853 begin; 854 dcl 1 file_header aligned like fileheader; 855 file_header.version = filedata_version_4; 856 file_header.device_class = comp_dvt.devclass; 857 file_header.device_name = comp_dvid.devname; 858 file_header.device = option.device; 859 file_header.recleng = comp_dvt.recleng; 860 file_header.max_pages = comp_dvt.max_pages; 861 file_header.max_files = comp_dvt.max_files; 862 file_header.page_len = page.parms.length; 863 864 file_header.cleanup_leng = l_cleanup; 865 if l_cleanup > 0 866 then 867 do; 868 str_p = pointer (const.devptr, comp_dvt.cleanup_r); 869 file_header.cleanup = bstr.str; 870 end; 871 872 file_header.comment_leng = l_comment; 873 if l_comment > 0 874 then 875 do; 876 str_p = pointer (const.devptr, comp_dvt.comment_r); 877 file_header.comment = bstr.str; 878 end; 879 880 call iox_$write_record ((shared.compout_ptr), addr (file_header), 881 4 * size (file_header), ercd); 882 if ercd ^= 0 883 then goto ioerr; 884 shared.compout_not_headed = "0"b; 885 end; 886 end; 887 888 next_rec = "1"b; 889 do page_record_ptr = page_record_ptr 890 repeat (addr (page_record.nextref)) while (next_rec ^= "0"b); 891 recleng = 892 bin (rel (addr (page_record.nextref))) 893 - bin (rel (page_image.text_ptr)); 894 next_rec = page_record.nextref; 895 end; 896 897 call iox_$write_record ((shared.compout_ptr), 898 /* write page image */ 899 (page_image.text_ptr), 4 * recleng, ercd); 900 if ercd ^= 0 901 then goto ioerr; 902 end; 903 904 else 905 do; /* stream output - file or terminal */ 906 reprint: 907 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 908 next_rec = "1"b; 909 910 do page_record_ptr = page_record_ptr 911 repeat (addr (page_record.nextref)) while (next_rec ^= "0"b); 912 913 if first_sw & page_record.preface 914 /* if this is the first preface */ 915 then 916 do; 917 PREFACE = page_record.text; 918 first_sw = "0"b; 919 end; 920 921 if ^page_record.preface /* if this isnt a preface */ 922 | page_record.text ^= PREFACE 923 /* or is a different preface */ 924 then /* we need to print it */ 925 do; /* if not writing through vfile_ */ 926 if ^option.output_file_opt/* and not file_output */ 927 & iox_$user_output -> iocb.syn_father -> iocb.name 928 = "user_i/o" 929 then 930 do; 931 if page_record.rawo /* does the device want RAWO? */ 932 then 933 do; 934 call iox_$modes (iox_$user_output, "rawo", "", ercd); 935 if ercd ^= 0 936 then 937 do; 938 call comp_report_ (2, ercd, "Setting RAWO mode.", 939 addr (ctl.info), ""); 940 return; 941 end; 942 rawo_mode = "1"b; /* note that we are now in RAWO */ 943 944 on quit /* handler goes away at block exit */ 945 begin; 946 call iox_$control (iox_$user_output, "resetwrite", 947 null (), ercd); 948 call clean_; 949 call continue_to_signal_ (ercd); 950 end; /**/ 951 /* handler goes away at block exit */ 952 on cleanup call clean_; 953 end; /**/ 954 /* need a print wheel change? */ 955 if preface.pwheel > 0 & preface.pwheel ^= mounted_wheel 956 then 957 do; 958 if option.nobell_opt 959 then change_signal = copy (PADHT, preface.pwheel); 960 else change_signal = copy (BELHT, preface.pwheel); 961 962 call iox_$control (iox_$user_input, "resetread", null (), 963 ercd); 964 call iox_$put_chars (iox_$user_output, 965 addr (change_signal), 2 * preface.pwheel, ercd); 966 call iox_$get_line (iox_$user_input, addr (user_discard), 967 80, n_read, ercd); 968 call iox_$put_chars (iox_$user_output, 969 addr (stop_signal), 5, ercd); 970 call iox_$get_line (iox_$user_input, addr (user_discard), 971 80, n_read, ercd); 972 end; /**/ 973 974 call iox_$put_chars (shared.compout_ptr, 975 addr (substr (page_record.text, 1)), page_record.leng, 976 ercd); 977 if ercd ^= 0 978 then goto ioerr; 979 980 if page_record.halt4 /* mid-page wait */ 981 then 982 do; 983 call iox_$control (iox_$user_input, "resetread", null (), 984 ercd); 985 if option.nobell_opt 986 then call ioa_$nnl (""); 987 /* null string */ 988 else call ioa_$nnl (""); 989 /* BELL */ 990 call iox_$modes (iox_$user_output, "rawo", "", ercd); 991 if ercd ^= 0 992 then 993 do; 994 call comp_report_ (2, ercd, "Setting RAWO mode.", 995 addr (ctl.info), ""); 996 return; 997 end; 998 call iox_$get_line (iox_$user_input, addr (user_discard), 999 80, n_read, ercd); 1000 call iox_$modes (iox_$user_output, "^rawo", "", ercd); 1001 /* leave RAWO mode */ 1002 page_record.halt4 = "0"b; 1003 end; 1004 end; 1005 1006 else 1007 do; /* write image to compout file */ 1008 call iox_$put_chars ((shared.compout_ptr), 1009 addr (page_record.text), page_record.leng, ercd); 1010 if ercd ^= 0 1011 then 1012 do; 1013 ioerr: 1014 call comp_report_ (2, ercd, 1015 "Writing compout for page " || page.hdr.pageno, 1016 addr (ctl.info), ""); 1017 signal cleanup; 1018 return; 1019 end; 1020 1021 if page_record.halt4 /* mid-page wait */ 1022 then call iox_$put_chars ((shared.compout_ptr), 1023 addr (wt_mark), length (wt_mark), ercd); 1024 end; 1025 end; 1026 if page_record.preface /* if this is a preface, */ 1027 then PREFACE = page_record.text; 1028 /* remember it for future reference */ 1029 next_rec = page_record.nextref; 1030 end; 1031 1032 if rawo_mode 1033 then call clean_; 1034 1035 if option.stop_opt & ^option.output_file_opt 1036 /* stop wanted? */ 1037 & ^option.galley_opt /* and not galley */ 1038 then if wait_ () = "r" 1039 then goto reprint; 1040 end; 1041 end print_page; 1042 1043 wait_: 1044 proc returns (char (1)); 1045 1046 if ^option.wait_opt /* if the wait flag is not set */ 1047 then call iox_$control (iox_$user_input, "resetread", null (), ercd); 1048 /* set RAWO mode */ 1049 call iox_$modes (iox_$user_output, "rawo", "", ercd); 1050 /* emit the stop signal */ 1051 call iox_$put_chars (iox_$user_output, addr (stop_signal), 5, ercd); 1052 /* leave RAWO mode */ 1053 call iox_$modes (iox_$user_output, "^rawo", "", ercd); 1054 1055 call iox_$get_line (iox_$user_input, addr (user_discard), 80, n_read, ercd) 1056 ; 1057 if ercd ^= 0 & ercd ^= error_table_$long_record 1058 then 1059 do; 1060 call comp_report_ (2, ercd, "Attempting stop/wait option.", 1061 addr (ctl.info), ""); 1062 goto quit_; 1063 end; 1064 1065 if n_read > 1 1066 then 1067 do; /* quit? */ 1068 if substr (user_discard, 1, 1) = "q" 1069 | substr (user_discard, 1, 1) = "Q" 1070 then 1071 do; 1072 quit_: 1073 signal comp_abort; 1074 return (""); 1075 end; 1076 1077 if substr (user_discard, 1, 1) = "r" 1078 /* reprint? */ 1079 | substr (user_discard, 1, 1) = "R" 1080 then return ("r"); 1081 end; 1082 1083 return (""); 1084 end wait_; 1085 1086 clean_: 1087 proc; 1088 1089 dcl clean_strp ptr; 1090 1091 if rawo_mode /* do only if we are really in RAWO */ 1092 then 1093 do; /* if device has a cleanup string */ 1094 if comp_dvt.cleanup_r ^= "0"b 1095 then 1096 do; 1097 clean_strp = pointer (const.devptr, comp_dvt.cleanup_r); 1098 call iox_$put_chars (iox_$user_output, 1099 addrel (addr (clean_strp -> txtstr), 1), 1100 length (clean_strp -> txtstr), ercd); 1101 if ercd ^= 0 1102 then call comp_report_ (2, ercd, "Attempting device cleanup.", 1103 addr (ctl.info), ""); 1104 end; 1105 1106 call iox_$put_chars (iox_$user_output, addr (CR), 1, ercd); 1107 1108 call iox_$modes (iox_$user_output, "^rawo", "", ercd); 1109 /* leave RAWO mode */ 1110 if ercd ^= 0 & ^debug_sw 1111 then call comp_report_ (2, ercd, "Resetting RAWO mode.", 1112 addr (ctl.info), ""); 1113 rawo_mode = "0"b; /* reset flag so clean_ wont try again */ 1114 end; 1115 1116 end clean_; 1117 1118 show: 1119 proc (datum, scale) returns (fixed dec (11, 3)); 1120 dcl datum fixed bin (31); 1121 dcl scale fixed bin (31); 1122 1123 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 1124 end show; 1125 1126 dcl alloc_sw bit (1) static init ("0"b); 1127 dcl get_pdir_ entry returns (char (168)); 1128 dcl list entry options (variable); 1129 dcl annot_sw bit (1) static init ("0"b); 1130 ann: 1131 entry; 1132 annot_sw = "1"b; 1133 return; 1134 anf: 1135 entry; 1136 annot_sw = "0"b; 1137 return; 1138 dcl db_sw bit (1) static init ("0"b); 1139 dbn: 1140 entry; 1141 db_sw = "1"b; 1142 return; 1143 dbf: 1144 entry; 1145 db_sw = "0"b; 1146 return; 1147 1 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 1 2 1 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 4 1 5 dcl 1 col /* the text column */ 1 6 aligned based (shared.colptr), 1 7 2 blkptr (100) ptr, /* pointers to text blocks */ 1 8 2 depth_adj fixed bin (31), /* for variable start depth */ 1 9 2 ftrptr ptr, /* -> column footer */ 1 10 2 ftrusd fixed bin (31), /* column footer space used */ 1 11 2 gutter fixed bin (31), /* column separation */ 1 12 2 hdr like colhdr, /* column control stuff */ 1 13 2 hdrptr ptr, /* -> column header */ 1 14 2 hdrusd fixed bin (31), /* column header space used */ 1 15 2 margin, /* margin settings for column */ 1 16 3 left fixed bin (31), 1 17 3 right fixed bin (31), 1 18 2 parms, /* text parms for the column */ 1 19 3 measure fixed bin (31); /* column width */ 1 20 1 21 dcl 1 colhdr aligned based (const.colhdrptr), 1 22 /* an empty column header */ 1 23 2 balblk fixed bin, /* block to begin column balancing */ 1 24 2 baldepth fixed bin (31), /* page depth at balance point */ 1 25 2 balftn, /* footnotes at balance point */ 1 26 3 ct fixed bin, /* count */ 1 27 3 usd fixed bin (31), /* space used */ 1 28 3 blkndx (40) fixed bin, /* block index values */ 1 29 2 balusd fixed bin (31), /* space used up to balance point */ 1 30 2 blkct fixed bin, /* text block count */ 1 31 2 depth fixed bin (31), /* current page depth in the column */ 1 32 2 ftn like balftn, /* footnotes */ 1 33 2 pspc fixed bin (31), /* current white space */ 1 34 2 net fixed bin (31), /* net usable space in the column */ 1 35 2 used fixed bin (31); /* space used in this column */ 1 36 /* for quick reference */ 1 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 1 38 1 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 1148 1149 dcl 1 col1 aligned like col based (page.column_ptr (1)); 2 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 2 2* Modified: ??/81 - EJW - Addded type_wait 2 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 2 4**/ 2 5 2 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 2 7 2 8 dcl DCxx_p ptr; /* for qualification of embedded */ 2 9 /* control strings */ 2 10 /* an embedded control string */ 2 11 dcl 1 dcxx unal based (DCxx_p), 2 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 2 13 2 ctl, 2 14 3 type bit (3) unal, /* 000- device/writer control */ 2 15 /* 001- */ 2 16 /* 010- literal data */ 2 17 /* 011- family/member/size data */ 2 18 /* 100- shift */ 2 19 /* 101- */ 2 20 /* 110- vector */ 2 21 /* 111- zero-offset vector */ 2 22 3 fill1 bit (1) unal, 2 23 3 Xctl bit (2) unal, /* 00- no X value present */ 2 24 /* 01- short X value */ 2 25 /* 10- long X value */ 2 26 3 fill2 bit (1) unal, 2 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 2 28 /* 01- short Y value present */ 2 29 /* 10- long Y value present */ 2 30 2 leng fixed bin (9) unal unsigned, 2 31 /* # of remaining bytes */ 2 32 2 etc; /* the rest of the control bytes */ 2 33 /* device/writer controls */ 2 34 dcl 1 dcctl unal based (DCxx_p), 2 35 2 mark char (1) unal, 2 36 2 type char (1) unal, /* control type */ 2 37 /* leng is always 0 for these */ 2 38 2 leng fixed bin (9) unal unsigned; 2 39 dcl ( 2 40 wait_signal init (""), /* = 021001000 */ 2 41 unstart_signal init (""), /* = 021002000 */ 2 42 unstop_signal init ("") /* = 021003000 */ 2 43 ) char (3) static options (constant); 2 44 /* the "literal" control string */ 2 45 dcl 1 dclit unal based (DCxx_p), 2 46 2 mark char (1) unal, 2 47 2 type char (1) unal, /* control type */ 2 48 2 leng fixed bin (9) unal unsigned, 2 49 /* width in milli-points of literal */ 2 50 2 width fixed bin (31) unal, 2 51 /* actual literal, max length 509 */ 2 52 2 data char (dclit.leng - 4); 2 53 /* long (31 bits) values */ 2 54 dcl 1 dclong_val unal based (DCxx_p), 2 55 2 mark char (1) unal, 2 56 2 type char (1) unal, /* control type */ 2 57 2 leng fixed bin (9) unal unsigned, 2 58 ( 2 59 2 v1 fixed bin (31), /* long value */ 2 60 2 v2 fixed bin (31) /* long value */ 2 61 ) unal; 2 62 dcl ( 2 63 dclong_len init (8), /* 2 long values */ 2 64 dclong1_len init (4) /* 1 long value */ 2 65 ) fixed bin static options (constant); 2 66 /* short (17 bit) values */ 2 67 dcl 1 dcshort_val unal based (DCxx_p), 2 68 2 mark char (1) unal, 2 69 2 type char (1) unal, /* control type */ 2 70 2 leng fixed bin (9) unal unsigned, 2 71 ( 2 72 2 v1 fixed bin, /* short value */ 2 73 2 v2 fixed bin /* short value */ 2 74 ) unal; 2 75 dcl ( 2 76 dcshort_len init (4), /* 2 short values */ 2 77 dcshort1_len init (2) /* 1 short value */ 2 78 ) fixed bin static options (constant); 2 79 /* a font change string */ 2 80 dcl 1 dcfs unal based (DCxx_p), 2 81 2 mark char (1) unal, /* font/size data */ 2 82 2 type char (1) unal, /* control type */ 2 83 2 leng fixed bin (9) unal unsigned, 2 84 /* fnttbldata index */ 2 85 2 f fixed bin (9) unal unsigned, 2 86 /* point size in milli-points */ 2 87 2 p fixed bin (31) unal; 2 88 dcl dcfs_len fixed bin init (5) static options (constant); 2 89 2 90 dcl ( /* symbolic definitions of DC types */ 2 91 type_wait init (""), /* writer wait */ 2 92 type_unstart init (""), /* underscore start */ 2 93 type_unstop init (""), /* underscore stop */ 2 94 type_lit init (""), /* literal data */ 2 95 type_font init (""), /* family/member/size data */ 2 96 /* SHIFTS - */ 2 97 type_sy init (""), /* -- no x, short y */ 2 98 type_sly init (""), /* -- no x, long y */ 2 99 type_sx init (""), /* -- short x, no y */ 2 100 type_sxy init (" "), /* -- short x, short y */ 2 101 type_slx init (""), /* -- long x, no y */ 2 102 type_slxly init (""), /* -- long x, long y */ 2 103 /* VECTORS */ 2 104 type_vy init (""), /* -- no x, short y */ 2 105 type_vly init (""), /* -- no x, long y */ 2 106 type_vx init (""), /* -- short x, no y */ 2 107 type_vxy init (""), /* -- short x, short y */ 2 108 type_vlx init (""), /* -- long x, no y */ 2 109 type_vlxly init (""), /* -- long x, long y */ 2 110 /* ZERO-OFFSET VECTORS- */ 2 111 type_v0y init (""), /* -- no x, short y */ 2 112 type_v0ly init (""), /* -- no x, long y */ 2 113 type_v0x init (""), /* -- short x, no y */ 2 114 type_v0xy init (""), /* -- short x, short y */ 2 115 type_v0lx init (""), /* -- long x, no y */ 2 116 type_v0lxly init ("") /* -- long x, long y */ 2 117 ) char (1) unal int static options (constant); 2 118 2 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 1150 3 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 3 2 3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 4 3 5 dcl compose_severity_ 3 6 fixed bin (35) ext static; 3 7 dcl comp_ entry; 3 8 dcl comp_art_ entry (ptr, bit (1)); 3 9 dcl comp_block_ctls_ 3 10 entry (fixed bin); 3 11 dcl comp_break_ entry (fixed bin, fixed bin); 3 12 dcl comp_break_ctls_ 3 13 entry (fixed bin); 3 14 dcl comp_ctls_ entry (bit (1) aligned); 3 15 dcl comp_eject_page_ 3 16 entry; 3 17 dcl comp_expr_eval_ 3 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 3 19 fixed bin, bit (1), fixed bin (31), char (*) var, 3 20 bit (9), fixed bin (35)); 3 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 3 22 fixed bin (21), fixed bin (21), ptr) 3 23 returns (char (*) var); 3 24 dcl comp_fill_ entry; 3 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 3 26 dcl comp_format_ctls_ 3 27 entry (fixed bin); 3 28 dcl comp_get_file_$find 3 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 3 30 fixed bin (35)); 3 31 dcl comp_get_file_$open 3 32 entry (ptr, bit (1), fixed bin (35)); 3 33 dcl comp_head_page_ 3 34 entry (fixed bin (31)); 3 35 dcl comp_hft_ctls_ entry (fixed bin); 3 36 dcl comp_hft_ctls_$title 3 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 3 38 dcl comp_init_$one entry; 3 39 dcl comp_init_$two entry; 3 40 dcl comp_init_$three 3 41 entry; 3 42 dcl comp_insert_ctls_ 3 43 entry (fixed bin); 3 44 dcl comp_make_page_ 3 45 entry (fixed bin, bit (1)); 3 46 dcl comp_make_page_$cleanup 3 47 entry; 3 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 3 49 fixed bin (31), ptr, ptr, ptr); 3 50 dcl comp_read_$name 3 51 entry (char (*) var, fixed bin (21), fixed bin (21), 3 52 ptr) returns (char (*) var); 3 53 dcl comp_read_$number 3 54 entry (char (*) var, (*) fixed bin (31), 3 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 3 56 returns (fixed bin (31)); 3 57 dcl comp_read_$line 3 58 entry (ptr, char (*) var, bit (1)); 3 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 3 60 char (*) var); 3 61 dcl comp_report_$ctlstr 3 62 entry options (variable); 3 63 /**** (sev, code, info, line, ctl_str, args... */ 3 64 dcl comp_report_$exact 3 65 entry (char (*), ptr); 3 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 3 67 bit (1)); 3 68 dcl comp_tbl_ctls_ entry (fixed bin); 3 69 dcl comp_title_block_ 3 70 entry (ptr); 3 71 dcl comp_update_symbol_ 3 72 entry (bit (1), bit (1), bit (1), char (32), 3 73 char (*) var); 3 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 3 75 dcl comp_util_$add_text 3 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 3 77 dcl comp_util_$display 3 78 entry (char (*) var, fixed bin, bit (1)) 3 79 returns (char (*) var); 3 80 dcl comp_util_$escape 3 81 entry (char (*) var, ptr); 3 82 dcl comp_util_$getblk 3 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 3 84 dcl comp_util_$num_display 3 85 entry (ptr, fixed bin) returns (char (256) var); 3 86 dcl comp_util_$pageno 3 87 entry (fixed bin, char (*) var); 3 88 dcl comp_util_$pictures /* emit pending pictures */ 3 89 entry /**/ 3 90 (ptr); /* current text block */ 3 91 dcl comp_util_$pop entry (char (32)); 3 92 dcl comp_util_$push 3 93 entry (char (32)); 3 94 dcl comp_util_$relblk 3 95 entry (fixed bin, ptr); 3 96 dcl comp_util_$replace_text 3 97 entry (ptr, bit (1), ptr, ptr); 3 98 dcl comp_util_$search_tree 3 99 entry (char (32), bit (1)); 3 100 dcl comp_util_$set_bin 3 101 entry (fixed bin (31), char (32) var, fixed bin (31), 3 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 3 103 fixed bin (31)); 3 104 dcl comp_util_$set_net_page 3 105 entry (bit (1)); 3 106 dcl comp_util_$translate 3 107 entry (char (*) var) returns (char (*) var); 3 108 dcl comp_write_block_ 3 109 entry (fixed bin); 3 110 dcl comp_write_page_ 3 111 entry; 3 112 3 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 1151 4 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 4 4 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 4 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 4 7 2 bachelor bit (1), /* 1= has no members */ 4 8 2 devfnt fixed bin, /* font in the device */ 4 9 2 fam_name char (32), /* family name */ 4 10 2 famndx fixed bin, /* family index */ 4 11 2 fntptr ptr, /* font table pointer */ 4 12 2 mem_name char (32), /* /member name (or null) */ 4 13 2 memndx fixed bin, /* member index */ 4 14 2 memptr ptr, /* member table pointer */ 4 15 2 name char (65) var, /* font name */ 4 16 2 size fixed bin (31), /* requested point size */ 4 17 2 ps fixed bin (31), /* effective point size */ 4 18 2 fcs_str char (8); /* FCS string */ 4 19 4 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 1152 5 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 5 2 5 3 /* Fonts already loaded into the compose (pdir) database */ 5 4 5 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 6 5 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 5 8 2 count fixed bin, /* number of fonts loaded */ 5 9 2 ndx fixed bin, /* index of current font */ 5 10 2 medsel_ptr ptr, /* -> media select table */ 5 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 5 12 5 13 dcl fnttbl_ptr ptr init (null); 5 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 5 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 5 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 5 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 5 18 2 rel_units fixed bin, /* stroke value for this font */ 5 19 2 siztbl_ptr ptr, /* -> loaded size table */ 5 20 2 entry /* stack entry for this font */ 5 21 like fntstk_entry, 5 22 ( /* for each font character */ 5 23 2 devfnt fixed bin, /* font in the device */ 5 24 2 replptr ptr, /* replacement string ptrs */ 5 25 2 units fixed bin, /* width in strokes */ 5 26 2 white bit (1) unal /* white space flags */ 5 27 ) dimension (0:511); 5 28 5 29 dcl repl_str_ptr ptr; /* replacement strings */ 5 30 dcl 1 repl_str based (repl_str_ptr), 5 31 2 len fixed bin (35), 5 32 2 str char (256); 5 33 dcl replstr char (256) var based (repl_str_ptr); 5 34 /* media select strings */ 5 35 /* (indexed on fnttbldata.ndx) */ 5 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 5 37 5 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 5 39 2 ct fixed bin, /* number of sizes */ 5 40 2 size (siztbl.ct) fixed bin (31); 5 41 5 42 /* This is the storage referred by family.member_r in comp_dvt 5 43* 5 44* If member.count is 1 and member.name(1) is null, then the font is a 5 45* 'bachelor'. 5 46* 5 47* The font stack will hold the family/member names which were used to 5 48* originally get to the font. When a bachelor is accessed, the member name 5 49* will remain but the bachelor flag will be set to tell any displayers not 5 50* to include it. 5 51* 5 52* %FontName% will contain either "family" or "family/member" depending on 5 53* the setting of the bachelor switch. */ 5 54 5 55 dcl member_ptr ptr; 5 56 dcl 1 member based (member_ptr), 5 57 2 count fixed bin, /* # members present */ 5 58 2 e (member.count), /* members defined for this device */ 5 59 3 font_r bit (18) unal, /* font character table relptr */ 5 60 3 size_r bit (18) aligned, 5 61 /* point size list relptr */ 5 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 5 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 5 64 3 name char (32); /* member name */ 5 65 5 66 /* Storage referred by member.font_r */ 5 67 dcl font_ptr ptr; 5 68 dcl 1 font based (font_ptr), 5 69 ( 2 oput_r, /* offset of output data array */ 5 70 2 units_r /* offset of width array */ 5 71 ) bit (18) aligned, 5 72 2 rel_units fixed bin, /* stroke value for this table */ 5 73 2 footsep char (1), /* footref separator */ 5 74 2 fill char (3), 5 75 2 min_wsp fixed bin, /* min wordspace */ 5 76 2 avg_wsp fixed bin, /* nominal wordspace */ 5 77 2 max_wsp fixed bin; /* max wordspace */ 5 78 5 79 /* storage referred by font.units_r */ 5 80 dcl units_ptr ptr; /* width in strokes */ 5 81 dcl units (0:511) fixed bin based (units_ptr); 5 82 5 83 /* media select table in the device table */ 5 84 dcl medsel_table_ptr 5 85 ptr; 5 86 dcl 1 medsel_table based (medsel_table_ptr), 5 87 2 count fixed bin, 5 88 2 ref_r (medsel_table.count) bit (18) aligned; 5 89 5 90 /* storage referred by font.oput_r */ 5 91 dcl oput_p ptr; 5 92 dcl 1 oput based (oput_p), 5 93 2 data_ct fixed bin, /* highest char defined */ 5 94 2 e (0:oput.data_ct), 5 95 3 which /* index into view array */ 5 96 fixed bin (17) unal, 5 97 3 what_r /* output string */ 5 98 bit (18) unal; 5 99 5 100 /* storage referred by member.size_r */ 5 101 5 102 dcl sizel_p ptr; 5 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 5 104 2 val_ct fixed bin, 5 105 2 val (sizel.val_ct) fixed bin (31); 5 106 5 107 /* storage referred by oput.what_r */ 5 108 5 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 5 110 dcl 1 medchar_sel based (medchar_sel_p), 5 111 2 str_l fixed bin, 5 112 2 str char (medchar_sel.str_l); 5 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 5 114 5 115 dcl med_sel_p ptr; /* media select string */ 5 116 dcl 1 med_sel based (med_sel_p), 5 117 2 str_l fixed bin, 5 118 2 str char (med_sel.str_l); 5 119 5 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 1153 6 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 6 4 6 5 /* ASCII control characters */ 6 6 dcl ( 6 7 NUL init (""), /* 000 */ 6 8 SOH init (""), /* 001 */ 6 9 STX init (""), /* 002 */ 6 10 ETX init (""), /* 003 */ 6 11 EOT init (""), /* 004 */ 6 12 ENQ init (""), /* 005 */ 6 13 ACK init (""), /* 006 */ 6 14 BEL init (""), /* 007 */ 6 15 BSP init (""), /* 010 */ 6 16 HT init (" "), 6 17 /* 011 */ 6 18 (NL, LF) init (" 6 19 "), /* 012 */ 6 20 VT init (" "), /* 013 */ 6 21 FF init (" "), /* 014 */ 6 22 CR init (" "), /* 015 */ 6 23 (RRS, SO) init (""), /* 016 */ 6 24 (BRS, SI) init (""), /* 017 */ 6 25 DLE init (""), /* 020 */ 6 26 DC1 init (""), /* 021 */ 6 27 (DC2, HLF, HUGE) init (""), /* 022 */ 6 28 DC3 init (""), /* 023 */ 6 29 (DC4, HLR, THICK) init (""), /* 024 */ 6 30 (NAK, MEDIUM) init (""), /* 025 */ 6 31 SYN init (""), /* 026 */ 6 32 (ETB, HAIR) init (""), /* 027 */ 6 33 (CAN, STROKE) init (""), /* 030 */ 6 34 oct031 init (""), /* 031 */ 6 35 SUB init (""), /* 032 */ 6 36 ESC init (""), /* 033 */ 6 37 FS init (""), /* 034 */ 6 38 GS init (""), /* 035 */ 6 39 RS init (""), /* 036 */ 6 40 US init (""), /* 037 */ 6 41 (DEL, PAD) init (""), /* 177 */ 6 42 /* compose meta-characters */ 6 43 multiply init (""), /* 252 - multiply symbol */ 6 44 pl_mi init (""), /* 253 - plus/minus sign */ 6 45 nabla init (""), /* 254 */ 6 46 EMdash init (""), /* 255 - EM dash */ 6 47 slash init (""), /* 256 */ 6 48 dagger init (""), /* 261 */ 6 49 perpen init (""), /* 273 - perpendicular mark */ 6 50 not_eq init (""), /* 275 - not-equal mark */ 6 51 dbldag init (""), /* 301 - double daggar */ 6 52 cright init (""), /* 303 - copyright mark */ 6 53 delta init (""), /* 304 */ 6 54 bullet init (""), /* 315 */ 6 55 prll init (""), /* 316 - parallel mark */ 6 56 PI init (""), /* 320 - uppercase Greek pi */ 6 57 tmark init (""), /* 324 - trademark */ 6 58 tfore init (""), /* 326 - therefore mark */ 6 59 approx init (""), /* 332 - approximately-equal mark */ 6 60 infin init (""), /* 337 - infinity */ 6 61 theta init (""), /* 352 */ 6 62 pi init (""), /* 360 - lowercase Greek pi */ 6 63 square init (""), /* 375 */ 6 64 overbar init (""), /* 376 */ 6 65 PS init (""), /* 377 - punctuation space */ 6 66 sup0 init (""), /* 400 - superior digit 0 */ 6 67 sup1 init (""), /* 401 - superior digit 1 */ 6 68 sup2 init (""), /* 402 - superior digit 2 */ 6 69 sup3 init (""), /* 403 - superior digit 3 */ 6 70 sup4 init (""), /* 404 - superior digit 4 */ 6 71 sup5 init (""), /* 405 - superior digit 5 */ 6 72 sup6 init (""), /* 406 - superior digit 6 */ 6 73 sup7 init (""), /* 407 - superior digit 7 */ 6 74 sup8 init (""), /* 410 - superior digit 8 */ 6 75 sup9 init (" "), /* 411 - superior digit 9 */ 6 76 EM init (" "), /* 412 - EM space */ 6 77 EM_ init (" "), /* 413 - EM aligned dash */ 6 78 EN init (" "), /* 414 - EN space */ 6 79 EN_ init (" "), /* 415 - EN aligned dash */ 6 80 ENd init (""), /* 416 - EN dash */ 6 81 THIN init (""), /* 417 - thinspace */ 6 82 DEVIT init (""), /* 420 - device unit */ 6 83 lquote init (""), /* 421 - left double quote */ 6 84 rquote init (""), /* 422 - right double quote */ 6 85 modmark init (""), /* 424 - text modification/addition mark */ 6 86 delmark init (""), /* 430 - deletion mark */ 6 87 vrule init ("Z"), /* 532 - vertical rule */ 6 88 lslnt init ("^") /* 536 - left slant */ 6 89 ) char (1) unaligned static options (constant); 6 90 6 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 1154 7 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 7 2 7 3 dcl option_version fixed bin (35) static options (constant) init (2); 7 4 7 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 7 6 2 version fixed bin (35), 7 7 /* Options with parameters */ 7 8 (2 argument_opt, /* -argument option flag */ 7 9 2 cbar_opt, /* -change_bars option flag */ 7 10 2 cbar_art_opt, /* -change_bars_art option flag */ 7 11 2 debug_opt, /* -debug option flag */ 7 12 2 db_all_opt, /* -debug_all option flag */ 7 13 2 db_file_opt, /* -debug_file option flag */ 7 14 2 device_opt, /* -device option flag */ 7 15 2 execute_opt, /* -execute option flag */ 7 16 2 from_opt, /* -from option flag */ 7 17 2 galley_opt, /* -galley option flag */ 7 18 2 hyph_opt, /* -hyphenation option flag */ 7 19 2 indent_opt, /* -indent option flag */ 7 20 2 input_file_opt, /* -input_file option flag */ 7 21 2 linespace_opt, /* -linespace option flag */ 7 22 2 output_file_opt, /* -output_file option flag */ 7 23 2 pages_opt, /* -pages option flag */ 7 24 2 page_chng_opt, /* -pages_changed option flag */ 7 25 2 parameter_opt, /* -parameter option flag */ 7 26 2 passes_opt, /* -passes option flag */ 7 27 2 tdir_opt, /* -temp_dir option flag */ 7 28 2 to_opt, /* -to option flag */ 7 29 /* Options without parameters */ 7 30 2 annot_opt, /* -annotate */ 7 31 2 brief_opt, /* -brief option flag */ 7 32 2 check_opt, /* -check option flag */ 7 33 2 cws_opt, /* -cws option flag */ 7 34 2 db_pause_opt, /* -debug_pause option flag */ 7 35 2 noart_opt, /* -noart option flag */ 7 36 2 nobell_opt, /* -no_bell option flag */ 7 37 2 nofill_opt, /* -nofill option flag */ 7 38 2 nohit_opt, /* -nohit option flag */ 7 39 2 number_opt, /* -number option flag */ 7 40 2 number_append_opt, /* -number_append option flag */ 7 41 2 number_brief_opt, /* -number_brief option flag */ 7 42 2 stop_opt, /* -stop option flag */ 7 43 2 wait_opt) unal bit (1), /* -wait option flag */ 7 44 2 MBZ bit (2) unal, 7 45 /* Optional parameters */ 7 46 2 arg_count fixed bin, /* count of -ag values */ 7 47 2 cbar, /* change bar data */ 7 48 3 level char (1), /* change level character (ASCII NUL) */ 7 49 3 place char (1), /* placement character */ 7 50 3 space fixed bin (31), /* extra left margin space needed */ 7 51 3 left, /* left margin mark data */ 7 52 4 sep fixed bin (31), /* separation */ 7 53 4 width fixed bin (31), /* mark width */ 7 54 4 mark char (80) varying, /* the left margin mark */ 7 55 3 right, /* right margin mark data */ 7 56 4 sep fixed bin (31), /* separation */ 7 57 4 width fixed bin (31), /* mark width */ 7 58 4 mark char (80) varying, /* the right margin mark */ 7 59 3 del, /* deletion mark data */ 7 60 4 sep fixed bin (31), /* separation */ 7 61 4 width fixed bin (31), /* mark width */ 7 62 4 mark char (80) varying, /* the deletion mark */ 7 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 7 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 7 65 2 db_file char (200) var, /* file pathanme for debug */ 7 66 2 db_file_after fixed bin (35), /* debug file starting line */ 7 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 7 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 7 69 2 device char (32) varying, /* output device */ 7 70 2 extra_indent fixed bin (31), /* extra indent value */ 7 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 7 72 2 line_1 fixed bin (35), /* initial line for output */ 7 73 2 line_2 fixed bin (35), /* final line for output */ 7 74 2 linespace fixed bin (31), /* line spacing value */ 7 75 2 pglstct fixed bin (35), /* number of page list entries */ 7 76 2 pglstndx fixed bin (35), /* index for -pages list */ 7 77 2 pglst (0:49), /* list of requested pages */ 7 78 3 from char (32) var, 7 79 3 to char (32) var, 7 80 2 parameter char (80) varying, /* parameter from command line */ 7 81 2 passes fixed bin, /* passes remaining */ 7 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 7 83 7 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 7 85 1155 8 1 /* BEGIN INCLUDE FILE ..... comp_output.incl.pl1 ..... 08/29/78 J Falksen */ 8 2 8 3 /* This include file describes the format of compout files. "Ordinary" compout 8 4* files, i.e. printer or ascii, will be written to stream files. All others 8 5* are not dprint-able and are written to sequential files. 8 6* 8 7* The first record is a file header which contains information necessary for 8 8* processing by process_compout. 8 9* 8 10* Each record thereafter contains one page image of data */ 8 11 8 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 13 8 14 dcl filedata_version_2 8 15 fixed bin static options (constant) init (2); 8 16 dcl filedata_version_3 8 17 fixed bin static options (constant) init (3); 8 18 dcl filedata_version_4 8 19 fixed bin static options (constant) init (4); 8 20 8 21 dcl fileheader_ptr ptr init (null); 8 22 dcl 1 fileheader aligned based (fileheader_ptr), 8 23 2 version fixed bin, /* version of this file */ 8 24 2 device_class 8 25 char (32), 8 26 2 device_name /* generic device name */ 8 27 char (32), 8 28 2 device char (32), /* logical device name */ 8 29 2 recleng fixed bin, /* mag tape record length */ 8 30 2 max_pages fixed bin, /* max pages/record, -1=unlimited */ 8 31 /* max_files not defined version 2 */ 8 32 2 max_files fixed bin, /* max files/tape, -1=unlimited */ 8 33 /* page_len not defined in version 3 */ 8 34 2 page_len fixed bin (21), /* page length */ 8 35 2 cleanup_leng /* device cleanup string */ 8 36 fixed bin, 8 37 2 cleanup char (l_cleanup), 8 38 2 comment_leng /* comment string - info for pco */ 8 39 fixed bin, 8 40 2 comment char (l_comment); 8 41 8 42 dcl l_comment fixed bin; /* comment length */ 8 43 dcl l_cleanup fixed bin; /* cleanup length */ 8 44 /* data record */ 8 45 dcl record_ptr ptr init (null); 8 46 dcl 1 record aligned based (record_ptr), 8 47 2 header, 8 48 3 pageid char (32), /* page identification 8 49* ("-1" means a galley block) */ 8 50 3 changed bit (1) unal, /* 1- this is a changed page */ 8 51 3 front bit (1) unal, /* 1- this is a front page */ 8 52 3 pending bit (1) unal, /* 1- page has been processed 8 53* but not printed */ 8 54 3 blank bit (1) unal, /* 1- intentional blank page */ 8 55 3 MBZ bit (32) unal, /* pad to word boundary */ 8 56 2 page_record 8 57 bit (36); /* base location of output structure */ 8 58 8 59 /* The output writer returns a catenated set of text strings. Each string has 8 60* a control preface. The last string in the list has output.nextref = "0"b */ 8 61 8 62 dcl page_record_ptr 8 63 ptr init (null); 8 64 dcl 1 page_record aligned based (page_record_ptr), 8 65 2 sws, 8 66 3 in_use bit (1) unal, /* 1- in use (so nextref ^= "0"b ) */ 8 67 3 rawo bit (1) unal, /* 1- text needs raw mode */ 8 68 3 halt bit (1) unal, /* 1- halt to change wheels */ 8 69 3 halt2 bit (1) unal, /* 1- halt AFTER changing wheels */ 8 70 3 halt3 bit (1) unal, /* reserved for future use */ 8 71 3 halt4 bit (1) unal, /* 1- mid-page wait */ 8 72 3 preface bit (1) unal, /* 1- control preface, this text */ 8 73 /* must be processed whenever it */ 8 74 /* is different than the */ 8 75 /* previous one. */ 8 76 3 id_preface /* 1- identification preface, this */ 8 77 bit (1) unal, /* to be included only at the */ 8 78 /* beginning of an output file. */ 8 79 /* In general, they will never */ 8 80 /* match each other (unless page */ 8 81 /* ids are duplicated). */ 8 82 3 pad bit (22) unal, /* pad to last byte */ 8 83 3 pwheel fixed bin (6) unal uns, 8 84 2 leng fixed bin (24), /* actual output text */ 8 85 2 text char (16384 refer (page_record.leng)), 8 86 2 nextref bit (36); /* location of next if any */ 8 87 8 88 /* END INCLUDE FILE ..... comp_output.incl.pl1 ..... */ 1156 1157 /* madeup column image */ 1158 dcl 1 colimage aligned like page_image based (colimage_ptr); 1159 dcl colimage_ptr ptr; /* current col image block pointer */ 1160 /* main body text image lines */ 1161 dcl 1 image_lines (colimage.count) like page_image.line based; 1162 /* left margin column image - this 1163* column holds line numbers and left 1164* margin change bars */ 1165 dcl 1 lcolimage aligned like page_image based (page.col_image_ptr (-1)); 1166 /* right margin column image */ 1167 dcl 1 rcolimage aligned like page_image based (page.col_image_ptr (-2)); 9 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl max_image_lines 9 6 fixed static options (constant) init (1000); 9 7 dcl max_cols fixed static options (constant) init (20); 9 8 9 9 dcl page_version fixed bin static options (constant) init (5); 9 10 /* composed page structure */ 9 11 dcl 1 page aligned based (const.page_ptr), 9 12 2 version fixed bin, /* version of this structure */ 9 13 2 parms aligned like page_parms, 9 14 /* page formatting parameters */ 9 15 2 hdr aligned like page_header, 9 16 /* page control stuff */ 9 17 2 image_ptr ptr, /* pointer to the madeup page image */ 9 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 9 19 2 col_image_ptr 9 20 (-2:21) ptr; /* pointers to column images */ 9 21 /* col -1 is for line numbers and */ 9 22 /* left margin change bars; */ 9 23 /* col -2 is for */ 9 24 /* right margin change bars */ 9 25 /* and/or annotation * / 9 26* /* page control stuff */ 9 27 dcl 1 page_header aligned based (const.page_header_ptr), 9 28 2 sws, 9 29 3 art bit (1) unal, /* 1 = header/footer art */ 9 30 3 blankpage 9 31 bit (1) unal, /* 1 = intentional blank page */ 9 32 3 frontpage 9 33 bit (1) unal, /* 1 = odd page number */ 9 34 3 headed bit (1) unal, /* 1 = page header has been written */ 9 35 3 modified bit (1) unal, /* 1 = page has been modified */ 9 36 3 overflow bit (1) unal, /* OBSOLETE */ 9 37 3 MBZ bit (12) unal, 9 38 3 dot_addltr 9 39 char (1) unal, /* dot page add letter, if any */ 9 40 3 pgc_select 9 41 char (1) unal, /* for selecting change pages */ 9 42 2 baldepth fixed bin (31), /* page depth at balance point */ 9 43 2 balusd fixed bin (31), /* space used at balance point */ 9 44 2 col_count fixed bin, /* highest value of col_index for the page */ 9 45 2 col_index fixed bin, /* column index */ 9 46 2 depth fixed bin (31), /* current page depth */ 9 47 2 hdspc fixed bin (31), /* TOP white space */ 9 48 2 lmarg fixed bin (31), /* left margin for this page */ 9 49 2 net fixed bin (31), /* net usable space on the page */ 9 50 2 pageno char (32) var, /* current page number */ 9 51 2 used fixed bin (31); /* space already used on the page */ 9 52 9 53 dcl page_image_version 9 54 fixed bin (35) static options (constant) init (2); 9 55 /* structure passed to writers */ 9 56 dcl 1 page_image aligned based (page.image_ptr), 9 57 2 version fixed bin (35), /* structure version no */ 9 58 2 count fixed bin, /* count of page image lines */ 9 59 2 file_id char (32) var, /* compout identifier */ 9 60 2 func fixed bin, /* function code; 0 = build, 9 61* 1 = intialize, 2 = cleanup */ 9 62 2 text_ptr ptr, /* pointer to the text area */ 9 63 /* the image lines */ 9 64 2 line (max_image_lines), 9 65 3 sws, 9 66 4 quad bit (6) unal, /* text set position flags */ 9 67 4 art bit (1) unal, /* 1 = artwork in the line */ 9 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 9 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 9 70 4 white bit (1) unal, /* line is white */ 9 71 4 MBZ bit (26) unal, 9 72 3 depth fixed bin (31), /* page depth for the text */ 9 73 3 gaps fixed bin, /* number of WS gaps in the line */ 9 74 3 info like text_entry.info, 9 75 /* input file info */ 9 76 3 lead fixed bin (31), /* lead value if trailing WS */ 9 77 3 lfnt fixed bin, /* font at the left margin */ 9 78 3 lmarg fixed bin (31), /* text left margin position */ 9 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 9 80 3 net fixed bin (31), /* net width for filling */ 9 81 3 pos fixed bin (31), /* current horiz position */ 9 82 3 ptr ptr, /* pointer to the text */ 9 83 3 rmarg fixed bin (31), /* text right margin position */ 9 84 3 width fixed bin (31); /* width of the text */ 9 85 /* current page formatting parms */ 9 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 9 87 2 init_page_depth 9 88 fixed bin (31), /* initial page depth */ 9 89 2 length fixed bin (31), /* page length */ 9 90 2 lmarg, /* page left margin */ 9 91 3 even fixed bin (31), 9 92 3 odd fixed bin (31), 9 93 2 margin, /* margin values */ 9 94 3 top fixed bin (31), 9 95 3 header fixed bin (31), 9 96 3 footer fixed bin (31), 9 97 3 bottom fixed bin (31), 9 98 2 measure fixed bin (31), /* line space available for text */ 9 99 2 net, /* net usable space on page */ 9 100 3 even fixed bin (31), /* even pages */ 9 101 3 odd fixed bin (31), /* odd pages */ 9 102 /* arrays at the end */ 9 103 2 cols, /* columns defined for the page */ 9 104 3 bal bit (1) unal, /* column balancing control flag */ 9 105 3 MBZ bit (17) unal, 9 106 3 count fixed bin unal; /* the number of columns */ 9 107 /* default page formatting parms */ 9 108 dcl 1 init_page_parms 9 109 aligned like page_parms 9 110 based (const.init_page_parms_ptr); 9 111 9 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 1168 10 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl shared_version fixed bin (35) static options (constant) init (17); 10 6 10 7 dcl 1 shared aligned based (const.shared_ptr), 10 8 2 version fixed bin (35), /* version of this structure */ 10 9 2 chars, 10 10 ( 3 sym_delim, /* delimiter for symbols */ 10 11 3 ttl_delim, /* delimiter for title parts */ 10 12 3 wrd_brkr /* word break character */ 10 13 ) char (1) unal, 10 14 3 PAD char (1) unal, 10 15 2 cbar_type char (4) var, /* change bar type */ 10 16 2 dot_add_letter /* dot page add letter */ 10 17 char (1) var, 10 18 2 EN_width fixed bin (31), /* width of EN in current font */ 10 19 2 eqn_refct fixed bin, /* equation reference counter */ 10 20 2 footref_fcs /* footnote ref FCS string */ 10 21 char (8) aligned, 10 22 2 ftn_reset char (8) var, /* footnote reset mode */ 10 23 2 ftnrefct fixed bin, /* footnote ref counter */ 10 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 10 25 2 if_nest, /* if/then/else logic control */ 10 26 3 ndx fixed bin, /* depth of logic nest */ 10 27 3 e (25), /* nest entries */ 10 28 /* .if control switch */ 10 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 10 30 4 info aligned like text_entry.info, 10 31 4 line char (256) var, /* the control line */ 10 32 2 indctl, /* indent ctls stack */ 10 33 3 ndx fixed bin, /* current level */ 10 34 /* switch bits */ 10 35 3 stk (0:35) bit (1) unal, 10 36 2 input_dirname 10 37 char (168) var, /* dir containing current input file */ 10 38 2 input_filename 10 39 char (200) var, /* current input file name */ 10 40 2 lead fixed bin (31), /* current linespacing value */ 10 41 2 lit_count fixed bin (35), /* count of literal lines */ 10 42 2 next_pagenmbr 10 43 char (32) var, /* next page number / */ 10 44 2 output_file 10 45 char (32) var, /* output file identifier */ 10 46 2 pagecount fixed bin, /* number of pages produced */ 10 47 2 pagenum, /* page number structure */ 10 48 3 index fixed bin, /* level currently counting */ 10 49 ( 10 50 3 sep char (1) unal, /* separator chars */ 10 51 3 nmbr fixed bin (31), /* the counters */ 10 52 3 mode /* display modes */ 10 53 fixed bin (8) unal 10 54 ) dimension (20), 10 55 2 parameter char (254) var, /* command line parameter */ 10 56 2 param_pres bit (1), /* passed parameter flag */ 10 57 2 pass_counter 10 58 fixed bin, /* pass counter */ 10 59 2 picture, /* picture blocks */ 10 60 3 count fixed bin, /* number of them */ 10 61 3 space fixed bin (31), /* total picture space */ 10 62 3 blk (10), /* picture blocks */ 10 63 4 type char (4), /* type = page/col */ 10 64 4 place char (4), /* place = top/cen/bot */ 10 65 4 ptr ptr, /* pointer to block */ 10 66 4 size fixed bin (31), /* size of the picture */ 10 67 2 ptrs, 10 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 10 69 3 blank_footer_ptr, /* -> blank page footer */ 10 70 3 blank_header_ptr, /* -> blank page header */ 10 71 3 blank_text_ptr, /* -> blank page text */ 10 72 3 blkptr, /* -> active text */ 10 73 3 colptr, /* current column */ 10 74 3 compout_ptr, /* iocb pointer for output */ 10 75 3 compx_ptr, /* iocb pointer for compx file */ 10 76 3 ctb_ptr, /* current line artwork table */ 10 77 3 epftrptr, /* even page footer block */ 10 78 3 ephdrptr, /* even page header block */ 10 79 3 fcb_ptr, /* input file control block pointer */ 10 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 10 81 3 footnote_header_ptr, /* footnote header "title" */ 10 82 3 graphic_page_ptr, /* graphic output page */ 10 83 3 hit_data_ptr, /* hit data pointer */ 10 84 3 htab_ptr, /* horizontal tab tables */ 10 85 3 hwrd_data_ptr, /* local hyphenation table */ 10 86 3 insert_ptr, /* data entry for current input file */ 10 87 3 opftrptr, /* odd page footer block */ 10 88 3 ophdrptr, /* odd page header block */ 10 89 3 ptb_ptr, /* previous line artwork table */ 10 90 3 spcl_blkptr, /* "special" block pointer */ 10 91 3 tbldata_ptr, /* table column data structure */ 10 92 3 tblkdata_ptr, /* text block data array */ 10 93 3 text_header_ptr /* empty text header structure */ 10 94 ) ptr, 10 95 2 scale, /* space conversion scale factors */ 10 96 3 horz fixed bin (31), /* horizontal */ 10 97 3 vert fixed bin (31), /* vertical */ 10 98 2 source_filename 10 99 char (200) var, /* current source file name */ 10 100 2 sws, /* switch bits */ 10 101 ( 3 bug_mode, /* debug mode */ 10 102 3 compout_not_headed, /* compout is not headed */ 10 103 3 end_input, /* EOF for current input file */ 10 104 3 end_output, /* no more output is wanted */ 10 105 3 firstpass, /* first pass over input */ 10 106 3 ftn_mode, /* in footnote mode */ 10 107 3 hyph_mode, /* hyphenating mode */ 10 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 10 109 3 literal_mode, /* literal line mode flag */ 10 110 3 pageblock, /* blocks belong to page */ 10 111 3 picture_mode, /* building a picture */ 10 112 3 print_flag, /* producing output */ 10 113 3 purge_ftns, /* purging footnotes */ 10 114 3 suppress_footref, /* suppress next footnote ref */ 10 115 3 table_mode /* table mode */ 10 116 ) bit (1) unal, 10 117 3 MBZ bit (21) unal, 10 118 2 trans, /* trans table for .tr */ 10 119 3 in char (128) var, /* input chars */ 10 120 3 out char (128) var, /* output chars */ 10 121 2 widow_size fixed bin (31), /* widow size */ 10 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 10 123 /* to save shared data between files/passes */ 10 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 10 125 10 126 dcl dot_addltr_symb_index 10 127 fixed bin static options (constant) init (12); 10 128 dcl max_text_lines fixed bin static options (constant) init (1000); 10 129 dcl mode_string char (16) static options (constant) 10 130 init ("arbihxocalaurlru"); 10 131 /* value overlays */ 10 132 dcl flag_value bit (1) based; 10 133 dcl num_value fixed bin (31) based; 10 134 10 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 1169 11 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl 1 tblkdata /* data for allocated text blocks */ 11 6 aligned based (shared.tblkdata_ptr), 11 7 2 block, /* block pool */ 11 8 3 count fixed bin, 11 9 3 ptr (500) ptr, /* block pointers */ 11 10 /* block state flags */ 11 11 3 free (500) bit (1) unal, 11 12 2 line_area, /* line area pool */ 11 13 3 count fixed bin, 11 14 3 ptr (500) ptr, /* area pointers */ 11 15 /* area state flags */ 11 16 3 free (500) bit (1) unal, 11 17 2 text_area, /* text area pool */ 11 18 3 count fixed bin, 11 19 3 ptr (500) ptr, /* area pointers */ 11 20 /* area state flags */ 11 21 3 free (500) bit (1) unal, 11 22 3 string_area_count 11 23 fixed bin; /* line areas */ 11 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 11 25 dcl line_area_ptr ptr init (null); 11 26 dcl 1 line_area aligned based (line_area_ptr), 11 27 2 next ptr, /* forward thread */ 11 28 2 prev ptr, /* backward thread */ 11 29 2 count fixed bin, /* number of lines allocated */ 11 30 2 ndx fixed bin, /* index of current line */ 11 31 2 pndx fixed bin, /* area pool index */ 11 32 2 linptr (LINE_AREA_SIZE) ptr; 11 33 /* text areas */ 11 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 11 35 dcl text_area_ptr ptr init (null); 11 36 dcl 1 text_area aligned based (text_area_ptr), 11 37 2 next ptr, /* forward thread */ 11 38 2 count fixed bin, /* number of areas allocated */ 11 39 2 ndx fixed bin, /* index of current strarea */ 11 40 2 pndx fixed bin, /* area pool index */ 11 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 11 42 /* text string area */ 11 43 dcl string_area (256) fixed bin based; 11 44 dcl txtstrptr ptr; /* current text string */ 11 45 dcl txtstr char (1020) var based (txtstrptr); 11 46 11 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 11 48 /* general text block */ 11 49 dcl 1 text aligned based (shared.blkptr), 11 50 2 version fixed bin, /* version of structure */ 11 51 2 blkndx fixed bin, /* block data index */ 11 52 2 blktype char (2), /* block type code */ 11 53 /* dynamic block control stuff */ 11 54 2 hdr aligned like text_header, 11 55 /* text read from input file */ 11 56 2 input aligned like text_entry, 11 57 2 input_line char (1020) var,/* input buffer */ 11 58 2 line_area, 11 59 3 first ptr, /* head of line area thread */ 11 60 3 cur ptr, /* current line area */ 11 61 2 next_text ptr, /* next text string */ 11 62 /* text formatting parameters */ 11 63 2 parms aligned like default_parms, 11 64 2 text_area, 11 65 3 first ptr, /* head of text area thread */ 11 66 3 cur ptr; /* current text area */ 11 67 /* an empty text block line */ 11 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 11 69 2 sws, /* unaligned switches, etc. */ 11 70 3 art bit (1) unal, /* line has artwork */ 11 71 3 cbar, /* change bar flags */ 11 72 4 add bit (1) unal, /* text addition flag */ 11 73 4 del bit (1) unal, /* text deletion flag */ 11 74 4 mod bit (1) unal, /* text modification flag */ 11 75 3 default bit (1) unal, /* 1 = default case as needed */ 11 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 11 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 11 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 11 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 11 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 11 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 11 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 11 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 11 84 3 oflo bit (1) unal, /* line causes overflow */ 11 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 11 86 3 quad bit (6) unal, /* text alignment flags */ 11 87 3 space_added /* 1= line has added space */ 11 88 bit (1) unal, 11 89 3 spcl, /* special entry - not output text */ 11 90 4 file bit (1) unal, /* 1= output to special file */ 11 91 4 blk_splt /* 1= action at block split time */ 11 92 bit (1) unal, 11 93 4 page_mkup /* 1= action at page makeup time */ 11 94 bit (1) unal, 11 95 3 table bit (1) unal, /* 1= line is a table entry */ 11 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 11 97 3 title bit (1) unal, /* 1= line is a */ 11 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 11 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 11 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 11 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 11 102 3 white bit (1) unal, /* 1= line is white space */ 11 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 11 104 3 MBZ bit (4) unal, 11 105 2 art_start fixed bin unal, /* start of art string in line */ 11 106 2 art_len fixed bin unal, /* length of art string in line */ 11 107 2 cbar_level /* change level for cbars */ 11 108 char (1) aligned, 11 109 2 cur, /* current scanning data for line */ 11 110 3 chrct fixed bin, /* count of chars scanned */ 11 111 3 gaps fixed bin, /* gap count */ 11 112 3 width fixed bin (31), /* width of font chars */ 11 113 3 min fixed bin (31), /* width of min spbnds */ 11 114 3 avg fixed bin (31), /* width of avg spbnds */ 11 115 3 max fixed bin (31), /* width of max spbnds */ 11 116 3 font like fntstk_entry, 11 117 2 depth fixed bin (31), /* page depth for line */ 11 118 /* font at start of line */ 11 119 2 font like fntstk_entry, 11 120 2 index fixed bin (21), /* char index for line scanning */ 11 121 2 info, /* stuff created during line input */ 11 122 3 fileno fixed bin, /* input file index */ 11 123 3 lineno fixed bin, /* input file line number */ 11 124 3 lineno0 fixed bin, /* call_box0 line number */ 11 125 2 linespace fixed bin (31), /* linespace value for the line */ 11 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 11 127 2 mod_len fixed bin, /* length of modified text */ 11 128 2 mod_start fixed bin, /* index for start of modified text */ 11 129 2 net fixed bin (31), /* net line width for filling */ 11 130 2 ptr ptr, /* pointer to the actual text */ 11 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 11 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 11 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 11 134 2 tblcol fixed bin, /* column for table entries */ 11 135 2 title_delim 11 136 char (1) unal, /* title delimiter if a <title> */ 11 137 2 title_index 11 138 fixed bin, /* <title> block index for line */ 11 139 2 width fixed bin (31), /* width of text */ 11 140 2 ftn, /* footnote info for line */ 11 141 3 ct fixed bin, /* number of footnote refs */ 11 142 3 used fixed bin (31), /* space used */ 11 143 3 e (40), /* limit is arbitrary */ 11 144 4 blkndx fixed bin unal, /* block index of footnote - if this 11 145* value is 0, then .frf was used */ 11 146 4 refno fixed bin unal; /* reference number */ 11 147 11 148 dcl ( 11 149 quadi init ("40"b3), /* set to the inside margin */ 11 150 quado init ("20"b3), /* set to the outside margin */ 11 151 quadl init ("10"b3), /* set left */ 11 152 quadc init ("04"b3), /* set centered */ 11 153 quadr init ("02"b3), /* set right */ 11 154 just init ("01"b3) /* justified */ 11 155 ) bit (6) static options (constant); 11 156 /* control line structure */ 11 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 11 158 dcl ctl_line char (1020) var based (ctl.ptr); 11 159 11 160 dcl txtlinptr ptr; /* the current text line */ 11 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 11 162 /* empty text header structure */ 11 163 dcl 1 text_header aligned based (const.text_header_ptr), 11 164 2 sws, /* control switches */ 11 165 3 art bit (1) unal, /* block has artwork */ 11 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 11 167 3 modified bit (1) unal, /* block contains modified lines */ 11 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 11 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 11 170 3 tblblk bit (1) unal, /* a table block */ 11 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 11 172 3 white bit (1) unal, /* block is a white space block */ 11 173 3 picture bit (1) unal, /* picture block */ 11 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 11 175 3 MBZ bit (26) unal, 11 176 2 art_count fixed bin unal, /* to count input art lines */ 11 177 2 blkptr ptr, /* pointer to suspended block */ 11 178 2 cap_size fixed bin unal, /* line count of text caption */ 11 179 2 cap_used fixed bin (31), /* size of text caption */ 11 180 2 colno fixed bin unal, /* column owning the block */ 11 181 2 count fixed bin unal, /* line count for block */ 11 182 2 eqn_line_count 11 183 fixed bin unal, /* counter for equation lines */ 11 184 2 first_text fixed bin unal, /* OBSOLETE */ 11 185 2 ftn, /* footnotes */ 11 186 3 ct fixed bin, /* count */ 11 187 3 usd fixed bin (31), /* space used */ 11 188 3 blkndx (40) fixed bin, /* footnote block index values */ 11 189 2 head_size fixed bin, /* line count of text header */ 11 190 2 head_used fixed bin (31), /* size of text header */ 11 191 2 index fixed bin unal, /* block index of next output line */ 11 192 2 keep_count fixed bin unal, /* to count input keep lines */ 11 193 2 last_line fixed bin, /* last text line in column */ 11 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 11 195 2 name char (32) var, /* block name, if any */ 11 196 2 nofill_count /* to count nofill lines */ 11 197 fixed bin, 11 198 2 parms_ptr ptr, /* parms for suspended block */ 11 199 2 refer fixed bin, /* inter-block reference */ 11 200 2 refer_index /* OBSOLETE */ 11 201 fixed bin, /* a reference */ 11 202 2 split fixed bin, /* split point for balancing */ 11 203 2 trl_ws fixed bin (31), /* trailing WS */ 11 204 2 used fixed bin (31); /* page space used by a column/block */ 11 205 /* text formatting parameters */ 11 206 dcl 1 text_parms aligned like default_parms 11 207 based (const.text_parms_ptr); 11 208 11 209 dcl 1 current_parms 11 210 aligned like default_parms 11 211 based (const.current_parms_ptr); 11 212 11 213 dcl 1 default_parms 11 214 aligned based (const.default_parms_ptr), 11 215 2 sws, /* control switches */ 11 216 3 quad bit (6) unal, /* text alignment mode */ 11 217 3 art bit (1) unal, /* 1 = block countains artwork */ 11 218 3 cbar, /* change bar flags */ 11 219 4 add bit (1) unal, /* text addition flag */ 11 220 4 del bit (1) unal, /* text deletion flag for next line */ 11 221 4 mod bit (1) unal, /* text modification flag */ 11 222 3 fill_mode 11 223 bit (1) unal, /* 1 = fill mode ON */ 11 224 3 footnote bit (1) unal, /* block is a footnote */ 11 225 3 hfc bit (1) unal, /* OBSOLETE */ 11 226 3 htab_mode 11 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 11 228 3 keep bit (1) unal, /* keep mode */ 11 229 3 page bit (1) unal, /* block belongs to page, not text */ 11 230 3 title_mode 11 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 11 232 3 MBZ bit (19) unal, 11 233 2 ftrptr ptr, /* text caption block */ 11 234 2 cbar_level /* change level for cbars */ 11 235 char (1) aligned, 11 236 2 hdrptr ptr, /* text header block */ 11 237 2 left, /* left margin data */ 11 238 3 indent fixed bin (31), 11 239 3 undent fixed bin (31), 11 240 2 linespace fixed bin (31), /* line spacing value */ 11 241 2 measure fixed bin (31), /* line space for text */ 11 242 /* right margin data */ 11 243 2 right like default_parms.left, 11 244 2 fntstk, /* stack of last 20 font changes */ 11 245 3 index fixed bin, /* which one in use */ 11 246 /* entry(0) is the default */ 11 247 3 entry (0:19) like fntstk_entry; 11 248 11 249 dcl hfcblk_ptr ptr; 11 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 11 251 11 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 1170 12 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 12 2 12 3 /* Written: JA Falksen - 6/81 12 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 12 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 12 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 12 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 12 8* (3) char (*) var. Version 4. */ 12 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 12 10* sequence for comp_dvt.displayproc. - Version 5. */ 12 11 12 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 13 12 14 dcl comp_dvid_version 12 15 fixed bin static options (constant) init (5); 12 16 12 17 dcl 1 comp_dvid aligned based (const.dvidptr), 12 18 2 version fixed bin, /* version of this structure and */ 12 19 /* of comp_dvt */ 12 20 2 devname char (32), /* name of device */ 12 21 2 dvt_r bit (18); /* device table offset */ 12 22 12 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 1171 13 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 13 2 13 3 /* Written: 9/80 - JA Falksen 13 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 13 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 13 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 13 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 13 8* (3) char (*) var. Version 4. */ 13 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 13 10* sequence for comp_dvt.displayproc. - Version 5. 13 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 13 12**/ 13 13 13 14 /* All names which end in "_r"are offset values within the device table */ 13 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 13 16 13 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 13 18 13 19 dcl 1 comp_dvt aligned based (const.devptr), 13 20 2 devclass char (32), /* what general kind of device is */ 13 21 /* this, currently available: */ 13 22 /* "printer" (includes terminals), */ 13 23 /* "braille", "bitmap" */ 13 24 2 outproc entry /* page output processor */ 13 25 (fixed bin, /* function - 0=build */ 13 26 /* 1=init page */ 13 27 /* 2=init file */ 13 28 /* 3=cleanup */ 13 29 fixed bin (35)),/* error code */ 13 30 2 footproc entry /* footnote reference proc */ 13 31 ((3) char (*) var, 13 32 /* reference string (IN/OUT) */ 13 33 ptr), /* comp_dvt_p (IN) */ 13 34 2 artproc entry (), /* artwork proc */ 13 35 /* dont know how to describe yet */ 13 36 2 displayproc 13 37 entry /* string display interpreter */ 13 38 (char (*) var, /* raw input string */ 13 39 fixed bin (24), /* chars used in this call */ 13 40 bit (1)) /* 1= dont show display errors */ 13 41 returns (char (*) var), 13 42 /* interpreted output string */ 13 43 /* following values are in millipoints */ 13 44 2 min_WS fixed bin (31), /* minimum whitespace */ 13 45 2 min_lead fixed bin (31), /* minimun lead */ 13 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 13 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 13 48 2 def_vmt fixed bin (31), /* default .vmt */ 13 49 2 def_vmh fixed bin (31), /* default .vmh */ 13 50 2 def_vmf fixed bin (31), /* default .vmf */ 13 51 2 def_vmb fixed bin (31), /* default .vmb */ 13 52 2 pdw_max fixed bin (31), /* max page width available */ 13 53 2 pdl_max fixed bin (31), /* max page length available, */ 13 54 /* (0 = unlimited) */ 13 55 2 upshift fixed bin (31), /* footnote reference shift */ 13 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 13 57 2 lettersp fixed bin (31), /* max letterspacing */ 13 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 13 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 13 60 2 init_fam fixed bin, /* initial family index */ 13 61 2 init_mem fixed bin, /* initial member index */ 13 62 2 foot_fam fixed bin, /* initial foot family index */ 13 63 2 foot_mem fixed bin, /* initial foot member index */ 13 64 2 init_family 13 65 char (32), /* initial font family to use */ 13 66 2 init_member 13 67 char (32), /* initial font member to use */ 13 68 ( /* the following are offsets */ 13 69 2 atd_r, /* attach desc for on-line output */ 13 70 2 dvc_r, /* device control table relptr */ 13 71 2 comment_r, /* comment string relptr */ 13 72 2 cleanup_r, /* "cleanup" string relptr */ 13 73 2 medsel_table_r /* media select table relptr */ 13 74 ) bit (18) aligned, 13 75 2 foot_family 13 76 char (32), /* family for footnote reference */ 13 77 2 foot_member 13 78 char (32), /* member for footnote reference */ 13 79 /* if one was specified */ 13 80 2 sws unaligned, 13 81 3 interleave /* 0- page block has lines in column */ 13 82 bit (1), /* order left-to-right */ 13 83 /* 1- page block has lines in line */ 13 84 /* order top-to-bottom */ 13 85 3 justifying /* 1- device justifies lines */ 13 86 bit (1), 13 87 3 mbz bit (24), 13 88 3 endpage bit (9), /* EOP char if not "0"b */ 13 89 2 open_mode fixed bin (35), /* when going to a file */ 13 90 2 recleng fixed bin, /* length of tape records */ 13 91 2 family_ct fixed bin, /* # families present */ 13 92 2 family (comp_dvt.family_ct), 13 93 /* families of fonts defined */ 13 94 3 member_r bit (18) aligned, 13 95 /* member table relptr */ 13 96 3 name char (32); /* family name */ 13 97 13 98 13 99 /* The usage formula for units: */ 13 100 /* */ 13 101 /* rel_units * length_in_points */ 13 102 /* ---------------------------- = length_in_units */ 13 103 /* points_per_EM */ 13 104 13 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 1172 14 1 /* BEGIN INCLUDE FILE comp_tree.incl.pl1 */ 14 2 14 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 14 4 14 5 dcl 1 tree /* symbol tree structure */ 14 6 based (const.tree_ptr) aligned, 14 7 ( 2 align_mode, /* current text alignment mode */ 14 8 2 art_mode, /* artwork mode */ 14 9 2 block_index, /* current block index */ 14 10 2 block_name, /* name of current block */ 14 11 2 bottom_margin, /* page bottom margin */ 14 12 2 calling_file_name, /* caller of inserted file */ 14 13 2 callers_lineno, /* lineno of .ifi in calling file */ 14 14 2 devclass, /* DeviceClass */ 14 15 2 devname, /* DeviceName */ 14 16 2 dot_addltr, /* add letter of dot page */ 14 17 2 equation_mode, /* equation mode */ 14 18 2 fill_mode, /* text filling mode */ 14 19 2 fontname, /* fontname function */ 14 20 2 footer_margin, /* page footer margin function */ 14 21 2 frontpage, /* front page flag function */ 14 22 2 head_space, /* head space function */ 14 23 2 header_margin, /* page header margin function */ 14 24 2 keep_mode, /* block splitting mode */ 14 25 2 left_indent, /* left margin indention */ 14 26 2 left_undent, /* left margin adjustment */ 14 27 2 line_input, /* line input function */ 14 28 2 linesleft, /* lines left function */ 14 29 2 linespace, /* linespace function */ 14 30 2 measure_bif, /* measure function */ 14 31 2 next_pageno, /* next page number */ 14 32 2 pagecount, /* total page count function */ 14 33 2 pagelines, /* line number on page function */ 14 34 2 page_length, /* current page length function */ 14 35 2 pageno, /* page number function */ 14 36 2 pointsize, /* pointsize function */ 14 37 2 right_indent, /* right margin indention */ 14 38 2 right_undent, /* right margin adjustment */ 14 39 2 symbol_delimiter, /* symbol delimiter function */ 14 40 2 text_depth, /* text depth function */ 14 41 2 text_lineno, /* input file line number for output_line */ 14 42 2 text_width, /* text width function */ 14 43 2 title_delimiter, /* title delimiter function */ 14 44 2 top_margin, /* page top margin function */ 14 45 2 trans, /* translation table for .trf */ 14 46 2 userinput /* terminal insert function */ 14 47 ) label, /**/ 14 48 /* VARIABLE TABLES */ 14 49 2 count fixed bin, /* variable areas allocated */ 14 50 2 areandx fixed bin, /* current area */ 14 51 /* entry count per area */ 14 52 2 entry_ct (MAX_TREE_AREAS) fixed bin, 14 53 2 entryndx fixed bin, /* current entry in area */ 14 54 ( /* storage area pointers */ 14 55 2 flag_ptr, /* flags */ 14 56 2 name_ptr, /* names */ 14 57 2 num_ptr, /* number values */ 14 58 2 incr_ptr, /* counter increments */ 14 59 2 var_ptr /* variable structures */ 14 60 ) ptr dimension (MAX_TREE_AREAS); 14 61 /* flag values */ 14 62 dcl tree_flags (MAX_TREE_AREA_CT) bit (1) aligned 14 63 based (tree.flag_ptr (tree.areandx)); 14 64 /* counter increment values */ 14 65 dcl tree_incrs (MAX_TREE_AREA_CT) fixed bin (31) 14 66 based (tree.incr_ptr (tree.areandx)); 14 67 /* variable names */ 14 68 dcl tree_names_ptr ptr init (null); 14 69 dcl tree_names (MAX_TREE_AREA_CT) char (32) unal 14 70 based (tree_names_ptr); 14 71 /* numeric values */ 14 72 dcl tree_nums (MAX_TREE_AREA_CT) fixed bin (31) 14 73 based (tree.num_ptr (tree.areandx)); 14 74 14 75 dcl tree_var_ptr ptr init (null);/* variable entry structures */ 14 76 dcl 1 tree_var (MAX_TREE_AREA_CT) aligned based (tree_var_ptr), 14 77 2 flags bit (9) aligned,/* type flags */ 14 78 2 mode fixed bin, /* numeric display mode */ 14 79 2 flag_loc ptr, /* flag value pointer */ 14 80 2 num_loc ptr, /* num value pointer */ 14 81 2 incr_loc ptr, /* num increment pointer */ 14 82 2 str_loc ptr; /* str value pointer */ 14 83 14 84 /* END INCLUDE FILE comp_tree.incl.pl1 */ 1173 15 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 15 2* 15 3* This storage is converted from external (as declared) to internal by the 15 4* binder and contains items that must be accessible to both the bound and 15 5* unbound program. */ 15 6 15 7 /* Written: ??/??/7? - EJW 15 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 15 9* and removed the codes array; version 6. 15 10**/ 15 11 15 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 15 13 15 14 dcl 1 compstat$compconst 15 15 aligned like const ext static; 15 16 15 17 dcl const_version fixed bin (35) static options (constant) init (6); 15 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 15 19 fixed bin static options (constant) init (80); 15 20 dcl MAX_TREE_AREAS /* number of tree areas */ 15 21 fixed bin static options (constant) init (20); 15 22 15 23 dcl 1 const aligned based (compstat$compconst.ptr), 15 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 15 25 2 version fixed bin (35), /* structure version */ 15 26 2 art_symbols /* string of art symbols */ 15 27 char (28) aligned, 15 28 2 builtin_count /* count of builtin variables */ 15 29 fixed bin, 15 30 2 comp_dir char (200), /* dir in which compose lives */ 15 31 2 comp_version 15 32 char (8) var, /* compose version id */ 15 33 2 date_value char (8) var, /* current date */ 15 34 2 dsm_name char (32), /* device support module name */ 15 35 2 dvt_name char (32), /* device table name */ 15 36 2 max_seg_chars 15 37 fixed bin (35), /* char count in a max seg */ 15 38 2 null_str char (1) var, /* an empty string */ 15 39 2 ptrs, 15 40 ( 3 call_stk_ptr, /* -> insert call stack */ 15 41 3 colhdrptr, /* empty column header structure */ 15 42 3 ctl_ptr, /* input line structure */ 15 43 3 current_parms_ptr, /* current formatting parms */ 15 44 3 default_parms_ptr, /* default initial text parms */ 15 45 3 devptr, /* -> comp_dvt structure */ 15 46 3 dvidptr, /* -> comp_dvid structure */ 15 47 3 errblk_ptr, /* error message block pointer */ 15 48 3 footnote_parms_ptr, /* footnote formatting parms */ 15 49 3 fnttbldata_ptr, /* -> font table data */ 15 50 3 global_area_ptr, /* per invocation storage */ 15 51 3 init_page_parms_ptr, /* default initial page parms */ 15 52 3 insert_data_ptr, /* insert file data block */ 15 53 3 local_area_ptr, /* per file storage */ 15 54 3 loctbl_ptr, /* for font copying */ 15 55 3 option_ptr, /* program options block */ 15 56 3 outproc_ptr, /* device writer for cleanup */ 15 57 3 page_ptr, /* active page structure */ 15 58 3 page_header_ptr, /* empty page header structure */ 15 59 3 page_parms_ptr, /* page formatting parameter block */ 15 60 3 save_shared_ptr, /* saved shared data */ 15 61 3 shared_ptr, /* shared data structure */ 15 62 3 text_entry_ptr, /* empty text entry structure */ 15 63 3 text_header_ptr, /* empty text header structure */ 15 64 3 text_parms_ptr, /* main body formatting parms */ 15 65 3 tree_ptr /* symbol tree structure */ 15 66 ) ptr, 15 67 2 time_value char (6) var; /* time at start */ 15 68 15 69 /* Other external */ 15 70 dcl ( 15 71 ioa_, 15 72 ioa_$nnl 15 73 ) entry options (variable); 15 74 dcl iox_$error_output 15 75 ptr ext static, /* iocb pointer for error_output */ 15 76 iox_$user_input 15 77 ptr ext static, /* iocb pointer for user_input */ 15 78 iox_$user_output 15 79 ptr ext static; /* iocb pointer for user_output */ 15 80 dcl sys_info$max_seg_size 15 81 fixed bin (18) ext static; 15 82 15 83 /* END INCLUDE FILE compstat.incl.pl1 */ 1174 16 1 /* BEGIN INCLUDE FILE iocbx.incl.pl1 */ 16 2 /* written 27 Dec 1973, M. G. Smith */ 16 3 /* returns attributes removed, hashing support BIM Spring 1981 */ 16 4 /* version made character string June 1981 BIM */ 16 5 /* Modified 11/29/82 by S. Krupp to add new entries and to change 16 6* version number to IOX2. */ 16 7 /* format: style2 */ 16 8 16 9 dcl 1 iocb aligned based, /* I/O control block. */ 16 10 2 version character (4) aligned, /* IOX2 */ 16 11 2 name char (32), /* I/O name of this block. */ 16 12 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 16 13 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 16 14 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 16 15 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 16 16 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 16 17 2 event_channel bit (72), /* Event channel for asynchronous I/O. */ 16 18 2 detach_iocb entry (ptr, fixed bin (35)), 16 19 /* detach_iocb(p) */ 16 20 2 open entry (ptr, fixed, bit (1) aligned, fixed bin (35)), 16 21 /* open(p,mode,not_used) */ 16 22 2 close entry (ptr, fixed bin (35)), 16 23 /* close(p) */ 16 24 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 16 25 /* get_line(p,bufptr,buflen,actlen) */ 16 26 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 16 27 /* get_chars(p,bufptr,buflen,actlen) */ 16 28 2 put_chars entry (ptr, ptr, fixed (21), fixed bin (35)), 16 29 /* put_chars(p,bufptr,buflen) */ 16 30 2 modes entry (ptr, char (*), char (*), fixed bin (35)), 16 31 /* modes(p,newmode,oldmode) */ 16 32 2 position entry (ptr, fixed, fixed (21), fixed bin (35)), 16 33 /* position(p,u1,u2) */ 16 34 2 control entry (ptr, char (*), ptr, fixed bin (35)), 16 35 /* control(p,order,infptr) */ 16 36 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed bin (35)), 16 37 /* read_record(p,bufptr,buflen,actlen) */ 16 38 2 write_record entry (ptr, ptr, fixed (21), fixed bin (35)), 16 39 /* write_record(p,bufptr,buflen) */ 16 40 2 rewrite_record entry (ptr, ptr, fixed (21), fixed bin (35)), 16 41 /* rewrite_record(p,bufptr,buflen) */ 16 42 2 delete_record entry (ptr, fixed bin (35)), 16 43 /* delete_record(p) */ 16 44 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed bin (35)), 16 45 /* seek_key(p,key,len) */ 16 46 2 read_key entry (ptr, char (256) varying, fixed (21), fixed bin (35)), 16 47 /* read_key(p,key,len) */ 16 48 2 read_length entry (ptr, fixed (21), fixed bin (35)), 16 49 /* read_length(p,len) */ 16 50 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 16 51 /* open_file(p,mode,desc,not_used,s) */ 16 52 2 close_file entry (ptr, char (*), fixed bin (35)), 16 53 /* close_file(p,desc,s) */ 16 54 2 detach entry (ptr, char (*), fixed bin (35)), 16 55 /* detach(p,desc,s) */ 16 56 /* Hidden information, to support SYN attachments. */ 16 57 2 ios_compatibility ptr, /* Ptr to old DIM's IOS transfer vector. */ 16 58 2 syn_inhibits bit (36), /* Operations inhibited by SYN. */ 16 59 2 syn_father ptr, /* IOCB immediately SYNed to. */ 16 60 2 syn_brother ptr, /* Next IOCB SYNed as this one is. */ 16 61 2 syn_son ptr, /* First IOCB SYNed to this one. */ 16 62 2 hash_chain_ptr ptr; /* Next IOCB in hash bucket */ 16 63 16 64 declare iox_$iocb_version_sentinel 16 65 character (4) aligned external static; 16 66 16 67 /* END INCLUDE FILE iocbx.incl.pl1 */ 1175 17 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 17 2 17 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 4 /* */ 17 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 17 6 /* */ 17 7 /* This include segment allocates space in a translator's temporary segment. It */ 17 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 17 9 /* internal procedure in the program which includes this include segment. The temporary */ 17 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 17 11 /* */ 17 12 /* S__t_a_t_u_s */ 17 13 /* */ 17 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 17 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 17 16 /* */ 17 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 18 17 19 17 20 17 21 allocate: procedure (Parea, ANwords) returns (ptr); 17 22 17 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 17 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 17 25 17 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 17 27 /* to a 0 mod 2 quantity. */ 17 28 P ptr, /* a temporary pointer. */ 17 29 code fixed bin(35), /* a status code. */ 17 30 (mod, null, ptr) builtin; 17 31 17 32 dcl 1 area based (Parea), 17 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 17 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 17 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 17 36 17 37 dcl translator_temp_$get_next_segment 17 38 entry (ptr, ptr, fixed bin(35)); 17 39 17 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 17 41 if Nwords > Lfree then do; /* handle area overflow. */ 17 42 call translator_temp_$get_next_segment (Parea, P, code); 17 43 if P = null then return (null); 17 44 Parea = P; 17 45 if Nwords > area.Lfree then return (null); 17 46 end; 17 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 17 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 17 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 17 50 return (P); 17 51 17 52 end allocate; 17 53 17 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 1176 1177 1178 end comp_write_page_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0910.9 comp_write_page_.pl1 >spec>online>comp>comp_write_page_.pl1 1148 1 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 1150 2 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 1151 3 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 1152 4 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 1153 5 04/23/85 0912.3 comp_font.incl.pl1 >spec>online>comp>comp_font.incl.pl1 1154 6 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 1155 7 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 1156 8 03/01/85 1412.0 comp_output.incl.pl1 >ldd>include>comp_output.incl.pl1 1168 9 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 1169 10 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 1170 11 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 1171 12 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 1172 13 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 1173 14 03/01/85 1412.0 comp_tree.incl.pl1 >ldd>include>comp_tree.incl.pl1 1174 15 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 1175 16 06/03/83 1008.5 iocbx.incl.pl1 >ldd>include>iocbx.incl.pl1 1176 17 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 17-23 ref 17-21 17-40 17-40 BELHT 010434 constant char(2) initial unaligned dcl 19 ref 117 117 960 BUILD 000045 constant fixed bin(17,0) initial dcl 24 set ref 165 358* CR 000000 constant char(1) initial unaligned dcl 6-6 set ref 115 117 1106 1106 DCxx_p 000604 automatic pointer dcl 2-8 set ref 622* 624 625 FN_pic 000113 automatic picture(3) unaligned dcl 33 set ref 470* 485 487 INIT 000061 constant fixed bin(17,0) initial dcl 38 set ref 156* LN_pic 000126 automatic picture(6) unaligned dcl 48 set ref 471* 485 487 LNdw 000130 automatic fixed bin(31,0) dcl 49 set ref 119* 206 458 476 478 479 480 568 600 759 Lfree 2 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-41 17-45 17-49* 17-49 MBZ 10(04) based bit(32) level 3 packed unaligned dcl 8-46 set ref 338* Nwords 000706 automatic fixed bin(17,0) dcl 17-26 set ref 17-40* 17-41 17-45 17-48 17-49 Ofree 1 based fixed bin(35,0) level 2 dcl 17-32 set ref 17-47 17-48* 17-48 P 000710 automatic pointer dcl 17-26 set ref 17-42* 17-43 17-44 17-47* 17-50 PADHT 010433 constant char(2) initial unaligned dcl 58 ref 115 115 958 PREFACE 000013 internal static varying char(500) dcl 824 set ref 917* 921 1026* Parea parameter pointer dcl 17-23 set ref 17-21 17-41 17-42* 17-44* 17-45 17-47 17-47 17-48 17-48 17-49 17-49 add 1 based bit(1) level 4 packed unaligned dcl 11-161 ref 520 639 688 723 742 770 779 803 addr builtin function dcl 86 ref 273 273 282 282 359 359 423 423 435 435 440 440 474 566 598 622 670 705 754 785 832 880 880 891 895 906 938 938 964 964 966 966 968 968 970 970 974 974 994 994 998 998 1008 1008 1013 1013 1021 1021 1030 1051 1051 1055 1055 1060 1060 1098 1098 1101 1101 1106 1106 1110 1110 addrel builtin function dcl 86 ref 435 435 1098 1098 annot_opt 1(21) based bit(1) level 2 packed unaligned dcl 7-5 ref 188 278 287 535 annot_sw 000011 internal static bit(1) initial unaligned dcl 1129 set ref 188 278 287 535 1132* 1136* area based structure level 1 unaligned dcl 17-32 art 16(06) based bit(1) array level 4 in structure "lcolimage" packed unaligned dcl 1165 in procedure "comp_write_page_" set ref 684* 767* art 16(06) based bit(1) array level 4 in structure "rcolimage" packed unaligned dcl 1167 in procedure "comp_write_page_" set ref 719* 799* art 15 based bit(1) level 4 in structure "page" packed unaligned dcl 9-11 in procedure "comp_write_page_" ref 287 balftn 2 based structure level 2 in structure "colhdr" dcl 1-21 in procedure "comp_write_page_" balftn 320 based structure level 3 in structure "col" dcl 1-5 in procedure "comp_write_page_" balftn 320 based structure level 3 in structure "col1" dcl 1149 in procedure "comp_write_page_" balftn 320 based structure level 3 in structure "col0" dcl 1-37 in procedure "comp_write_page_" balftn 320 based structure level 3 in structure "locol" dcl 51 in procedure "comp_write_page_" blank 10(03) based bit(1) level 3 packed unaligned dcl 8-46 set ref 352* blankpage 15(01) based bit(1) level 4 packed unaligned dcl 9-11 ref 352 blkct 373 based fixed bin(17,0) level 3 in structure "locol" dcl 51 in procedure "comp_write_page_" set ref 239* 239 250 377 blkct 000100 automatic fixed bin(17,0) dcl 20 in procedure "comp_write_page_" set ref 377* 378 blkndx 1 based fixed bin(17,0) level 2 dcl 22 set ref 409* blkptr 3752 based pointer level 3 in structure "shared" dcl 10-7 in procedure "comp_write_page_" set ref 379 379* blkptr 000102 automatic pointer dcl 23 in procedure "comp_write_page_" set ref 253* 256 399 399 409 409 579 611 718 798 blkptr based pointer array level 2 in structure "locol" dcl 51 in procedure "comp_write_page_" set ref 253 379 381 381* block based structure level 1 dcl 22 bstr based structure level 1 unaligned dcl 80 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 10-7 ref 108 cbar 16(07) based bit(1) array level 4 in structure "rcolimage" packed unaligned dcl 1167 in procedure "comp_write_page_" set ref 720* 800* cbar 16(07) based bit(1) array level 4 in structure "lcolimage" packed unaligned dcl 1165 in procedure "comp_write_page_" set ref 685* cbar 1 based structure level 3 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 490 cbar 4 based structure level 2 in structure "option" dcl 7-5 in procedure "comp_write_page_" cbar_art_opt 1(02) based bit(1) level 2 packed unaligned dcl 7-5 ref 684 719 767 799 cbar_opt 1(01) based bit(1) level 2 packed unaligned dcl 7-5 ref 168 188 211 264 278 287 490 570 602 change_signal 000100 automatic char(128) unaligned dcl 820 set ref 958* 960* 964 964 changed 10 based bit(1) level 3 packed unaligned dcl 8-46 set ref 299 339* changed_front 000104 automatic bit(1) unaligned dcl 25 set ref 299* 318 363 changed_page 000105 automatic bit(1) initial unaligned dcl 26 set ref 26* 305 339 363 639* 639 check_opt 1(23) based bit(1) level 2 packed unaligned dcl 7-5 ref 128 clean_strp 000100 automatic pointer dcl 1089 set ref 1097* 1098 1098 1098 1098 cleanup 36 000100 automatic char level 2 in structure "file_header" dcl 854 in begin block on line 853 set ref 869* cleanup 36 based char level 2 in structure "fileheader" dcl 8-22 in procedure "comp_write_page_" ref 952 1017 cleanup_leng 35 000100 automatic fixed bin(17,0) level 2 dcl 854 set ref 864* cleanup_r 76 based bit(18) level 2 dcl 13-19 ref 837 841 868 1094 1097 code 000712 automatic fixed bin(35,0) dcl 17-26 set ref 17-42* col based structure level 1 dcl 1-5 col0 based structure level 1 dcl 1-37 col1 based structure level 1 dcl 1149 col_count 20 based fixed bin(17,0) level 3 dcl 9-11 set ref 110* 168 206 226 264 270 287 375 485 652 696 739 759 col_image_ptr 114 based pointer array level 2 dcl 9-11 set ref 173 176* 176 176 178 179 179 179 183 185 191 194* 194 194 196 197 197 197 201 203 233 233* 236 271 281 458 458 458 458 458 458 473 473 474 474 475 476 477 478 479 480 481 482 483 485 487 539 552 552 552 561 561 562 566 566 567 568 569 570 573 574 574 574 577 578 579 580 586 591 591 594 598 598 599 600 601 602 605 605 607 607 607 610 611 612 629 629 662 664 664 664 669 669 670 670 671 672 673 674 675 677 677 680 680 682 683 684 685 686 688 691 696 696 704 704 705 705 706 707 708 709 710 713 713 716 716 716 718 719 720 721 726 727 733 734 746 748 748 748 753 753 754 754 755 756 757 758 759 763 763 765 766 767 768 770 774 779 779 784 784 785 785 786 787 788 789 790 793 793 796 796 796 798 799 800 801 803 807 colblkcnt 000106 automatic fixed bin(17,0) dcl 28 set ref 250* 252 colhdr based structure level 1 dcl 1-21 colimage based structure level 1 dcl 1158 set ref 233 233 colimage_ptr 000620 automatic pointer dcl 1159 set ref 233 233 236* 237 271* 273 273 275 281* 282 282 284 287* 450 456 456 494 495 496 498 500 501 502 503 504 505 506 507 508 510 513 515 518 520 520 520 520 cols 14 based structure level 3 dcl 9-11 colstrt 000107 automatic fixed bin(17,0) dcl 29 set ref 264* 268* 270 column_ptr 42 based pointer array level 2 dcl 9-11 ref 217 217 228 376 570 602 677 710 790 com_err_ 000214 constant entry external dcl 95 ref 149 comment 000100 automatic char level 2 dcl 854 set ref 877* comment_leng 000100 automatic fixed bin(17,0) level 2 dcl 854 set ref 872* comment_r 75 based bit(18) level 2 dcl 13-19 ref 845 849 876 comp_abort 000576 stack reference condition dcl 89 ref 151 426 442 1072 comp_dvid based structure level 1 dcl 12-17 comp_dvt based structure level 1 dcl 13-19 comp_report_ 000236 constant entry external dcl 3-59 ref 359 423 440 938 994 1013 1060 1101 1110 comp_util_$relblk 000240 constant entry external dcl 3-94 ref 381 compout_not_headed 4113(01) based bit(1) level 3 packed unaligned dcl 10-7 set ref 834 884* compout_ptr 3756 based pointer level 3 dcl 10-7 set ref 880 897 974* 1008 1021 compstat$compconst 000242 external static structure level 1 dcl 15-14 const based structure level 1 dcl 15-23 continue_to_signal_ 000216 constant entry external dcl 96 ref 949 copy builtin function dcl 86 ref 958 960 count 1 based fixed bin(17,0) level 2 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 201* 539 561 561* 591 591* 696 704 704* 779 784 784* count 1 based fixed bin(17,0) level 2 in structure "page_image" dcl 9-56 in procedure "comp_write_page_" set ref 162* 273 275* 275 282 284* 284 355 count 1 based fixed bin(17,0) level 2 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 183* 458 458 458 473 473* 662 669 669* 746 753 753* count 1 based fixed bin(17,0) level 2 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 237* 273 275 282 284 450 456 456* count 12(18) based fixed bin(17,0) level 3 in structure "block" packed unaligned dcl 22 in procedure "comp_write_page_" set ref 399 409* count 14(18) based fixed bin(17,0) level 4 in structure "page" packed unaligned dcl 9-11 in procedure "comp_write_page_" ref 214 677 ctl based structure level 1 dcl 11-157 ctl_ptr 132 based pointer level 3 dcl 15-23 ref 359 359 938 938 994 994 1013 1013 1060 1060 1101 1101 1110 1110 cur 10 based structure level 2 dcl 11-161 datum parameter fixed bin(31,0) dcl 1120 ref 1118 1123 db_sw 000012 internal static bit(1) initial unaligned dcl 1138 set ref 108 1141* 1145* dcfs based structure level 1 packed unaligned dcl 2-80 dcfs_len constant fixed bin(17,0) initial dcl 2-88 ref 633 debug_sw 000110 automatic bit(1) unaligned dcl 30 set ref 108* 110 239 387 409 417 520 1110 default 2 based bit(1) level 3 packed unaligned dcl 11-161 ref 430 default_parms based structure level 1 dcl 11-213 del 1(01) based bit(1) level 4 in structure "txtlin" packed unaligned dcl 11-161 in procedure "comp_write_page_" set ref 520* 639 691 730 742 774 779 807 del 65 based structure level 3 in structure "option" dcl 7-5 in procedure "comp_write_page_" depth 17 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 203* 552 569* 586 601* 696 709* 779 789* depth 76 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 450 453 453 458 458 477 495 520* 520* 552 569 586 601 664 674 696 709 748 758 779 789 depth 17 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 185* 458 458 477* 664 674* 748 758* depth 17 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 495* devclass based char(32) level 2 dcl 13-19 ref 856 devfnt 101 based fixed bin(17,0) level 3 dcl 11-161 ref 502 541 545 device 21 000100 automatic char(32) level 2 in structure "file_header" dcl 854 in begin block on line 853 set ref 858* device 204 based varying char(32) level 2 in structure "option" dcl 7-5 in procedure "comp_write_page_" set ref 110* 858 device_class 1 000100 automatic char(32) level 2 dcl 854 set ref 856* device_name 11 000100 automatic char(32) level 2 dcl 854 set ref 857* devname 1 based char(32) level 2 dcl 12-17 ref 857 devptr 140 based pointer level 3 dcl 15-23 ref 119 156 287 358 828 837 841 841 845 849 849 856 859 860 861 868 868 876 876 1094 1097 1097 dot_addltr 15(18) based char(1) level 4 packed unaligned dcl 9-11 ref 128 dvidptr 142 based pointer level 3 dcl 15-23 ref 857 entry 6 based structure level 2 dcl 5-14 ercd 000111 automatic fixed bin(35,0) dcl 31 set ref 145* 146 149* 156* 157 358* 359 359* 435* 437 440* 880* 882 897* 900 934* 935 938* 946* 949* 962* 964* 966* 968* 970* 974* 977 983* 990* 991 994* 998* 1000* 1008* 1010 1013* 1021* 1046* 1049* 1051* 1053* 1055* 1057 1057 1060* 1098* 1101 1101* 1106* 1108* 1110 1110* error_table_$long_record 000212 external static fixed bin(35,0) dcl 92 ref 1057 extra_indent 215 based fixed bin(31,0) level 2 dcl 7-5 ref 206 759 f 0(27) based fixed bin(9,0) level 2 packed unsigned unaligned dcl 2-80 ref 625 fam_name 102 based char(32) level 3 dcl 11-161 ref 594 file 3 based bit(1) level 4 packed unaligned dcl 11-161 ref 414 file_header 000100 automatic structure level 1 dcl 854 set ref 880 880 880 file_id 2 based varying char(32) level 2 dcl 9-56 set ref 164* filedata_version_4 constant fixed bin(17,0) initial dcl 8-18 ref 855 fileheader based structure level 1 dcl 8-22 fileheader_ptr 000610 automatic pointer initial dcl 8-21 set ref 8-21* fileno 161 based fixed bin(17,0) level 3 dcl 11-161 set ref 470 520* first 776 based pointer level 3 dcl 22 ref 399 first_sw 000140 automatic bit(1) initial unaligned dcl 821 set ref 821* 913 918* fixed builtin function dcl 86 ref 206 759 flin_sw 000112 automatic bit(1) unaligned dcl 32 set ref 254* 409* 412* fntstk_entry based structure level 1 dcl 4-6 fnttbl based structure level 1 dcl 5-14 fnttbl_ptr 000606 automatic pointer initial dcl 5-13 set ref 5-13* fnttbldata based structure level 1 dcl 5-7 fnttbldata_ptr 150 based pointer level 3 dcl 15-23 ref 552 562 629 font 100 based structure level 2 dcl 11-161 front 10(01) based bit(1) level 3 packed unaligned dcl 8-46 set ref 299 345* 351* frontpage 15(02) based bit(1) level 4 packed unaligned dcl 9-11 ref 310 351 510 515 656 656 696 696 func 13 based fixed bin(17,0) level 2 dcl 9-56 set ref 165* galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 7-5 ref 168 206 211 256 256 264 341 371 485 652 656 696 1035 gaps 20 based fixed bin(17,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 506* gaps 11 based fixed bin(17,0) level 3 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 506 520* get_temp_segment_ 000220 constant entry external dcl 98 ref 145 halt4 0(05) based bit(1) level 3 packed unaligned dcl 8-64 set ref 980 1002* 1021 hdr 4 based structure level 2 in structure "block" dcl 22 in procedure "comp_write_page_" hdr 15 based structure level 2 in structure "page" dcl 9-11 in procedure "comp_write_page_" hdr 316 based structure level 2 in structure "locol" dcl 51 in procedure "comp_write_page_" header based structure level 2 dcl 8-46 i 000114 automatic fixed bin(17,0) initial dcl 34 set ref 34* 375* 376 381* 473* 474 474 475 476 477 478 479 480 481 482 483 485 487 539* 552 552 552 552 561* 562 566 566 567 568 569 570 573 574 574 574 577 578 579 580 586 586 591* 594 598 598 599 600 601 602 605 605 607 607 607 610 611 612 629 629 662* 664 664 664 669* 670 670 671 672 673 674 675 677 677 680 680 682 683 684 685 686 688 691 704* 705 705 706 707 708 709 710 713 713 716 716 716 718 719 720 721 726 727 733 734 746* 748 748 748 753* 754 754 755 756 757 758 759 763 763 765 766 767 768 770 774 784* 785 785 786 787 788 789 790 793 793 796 796 796 798 799 800 801 803 807 iblk 000117 automatic fixed bin(17,0) dcl 35 set ref 252* 253* icol 000120 automatic fixed bin(17,0) dcl 36 set ref 226* 228 233 233 236 239* 256 256* 270* 271* 652 710 742 ilin 000121 automatic fixed bin(17,0) dcl 37 set ref 401* 402 417* image_lines based structure array level 1 unaligned dcl 1161 set ref 273* 273 282* 282 image_ptr 40 based pointer level 2 dcl 9-11 set ref 138 141* 141 141 145 162 164 165 166 273 273 275 275 282 282 284 284 287 355 832 891 897 906 index builtin function dcl 86 ref 583 617 info 21 based structure array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 483* 686* 768* info 161 based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 423 423 440 440 483 508 580 612 686 721 768 801 info 161 based structure level 2 in structure "ctl" dcl 11-157 in procedure "comp_write_page_" set ref 359 359 938 938 994 994 1013 1013 1060 1060 1101 1101 1110 1110 info 161 based structure level 2 in structure "text_entry" dcl 11-68 in procedure "comp_write_page_" info 277 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_write_page_" info 277 based structure level 3 in structure "block" dcl 22 in procedure "comp_write_page_" info 21 based structure array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 508* info 277 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_write_page_" info 21 based structure array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 580* 612* 721* 801* init_ps 43 based fixed bin(31,0) level 2 dcl 13-19 ref 119 interleave 120 based bit(1) level 3 packed unaligned dcl 13-19 ref 287 ioa_ 000244 constant entry external dcl 15-70 ref 110 239 387 417 520 ioa_$nnl 000246 constant entry external dcl 15-70 ref 409 985 988 ioa_$rsnnl 000222 constant entry external dcl 100 ref 430 549 592 627 iocb based structure level 1 dcl 16-9 iox_$control 000224 constant entry external dcl 101 ref 946 962 983 1046 iox_$get_line 000226 constant entry external dcl 102 ref 966 970 998 1055 iox_$modes 000230 constant entry external dcl 103 ref 934 990 1000 1049 1053 1108 iox_$put_chars 000232 constant entry external dcl 104 ref 435 964 968 974 1008 1021 1051 1098 1106 iox_$user_input 000250 external static pointer dcl 15-74 set ref 962* 966* 970* 983* 998* 1046* 1055* iox_$user_output 000252 external static pointer dcl 15-74 set ref 926 934* 946* 964* 968* 990* 1000* 1049* 1051* 1053* 1098* 1106* 1108* iox_$write_record 000234 constant entry external dcl 105 ref 880 897 j 000115 automatic fixed bin(17,0) initial dcl 34 set ref 34* 378* 379 381 381* 456* 494 495 496 498 500 501 502 503 504 505 506 507 508 510 513 515 518 520 520 520 520 615* 616 617 622 633* 633 jcol parameter fixed bin(17,0) dcl 395 ref 392 458 479 480 485 jlin 000652 automatic fixed bin(17,0) dcl 396 set ref 398* 399 404* 404 just constant bit(6) initial unaligned dcl 11-148 ref 520 k 000116 automatic fixed bin(17,0) initial dcl 34 set ref 34* 615* 616 617* 619 622 633 l_cleanup 000613 automatic fixed bin(17,0) dcl 8-43 set ref 837* 842* 854 864 865 869 872 877 880 l_comment 000612 automatic fixed bin(17,0) dcl 8-42 set ref 845* 850* 854 872 873 877 880 last_font 000122 automatic fixed bin(17,0) initial dcl 40 set ref 40* 541 545* 552 562 625* 629 last_size 000123 automatic fixed bin(31,0) initial dcl 42 set ref 42* 541 547* 549* 549* 624* 627* 627* lcol_text based varying char(10) array dcl 44 set ref 179 179 474 485* 487* 670 688* 691* 754 770* 774* lcolimage based structure level 1 dcl 1165 set ref 176 176 178* lead 24 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 507* lead 24 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 481* 683* 766* lead 24 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 579* 611* 718* 798* left 1016 based structure level 3 in structure "hfcblk" dcl 11-250 in procedure "comp_write_page_" left 12 based structure level 2 in structure "default_parms" dcl 11-213 in procedure "comp_write_page_" left 12 based structure level 2 in structure "current_parms" dcl 11-209 in procedure "comp_write_page_" left 455 based fixed bin(31,0) level 3 in structure "col1" dcl 1149 in procedure "comp_write_page_" ref 217 677 left 12 based structure level 2 in structure "text_parms" dcl 11-206 in procedure "comp_write_page_" left 1016 based structure level 3 in structure "text" dcl 11-49 in procedure "comp_write_page_" left 7 based structure level 3 in structure "option" dcl 7-5 in procedure "comp_write_page_" left 455 based fixed bin(31,0) level 3 in structure "locol" dcl 51 in procedure "comp_write_page_" set ref 239* 239* 496 498 left 455 based fixed bin(31,0) level 3 in structure "col0" dcl 1-37 in procedure "comp_write_page_" ref 217 left 1016 based structure level 3 in structure "block" dcl 22 in procedure "comp_write_page_" left_margin_note_space 000124 automatic fixed bin(31,0) dcl 46 set ref 206* 214* 214 217* 217 239* 239* 496 498 570 602 675 710 790 leng 1 based fixed bin(24,0) level 2 dcl 8-64 set ref 891 894 895 917 921 974 974 974* 1008 1008 1008* 1026 1029 1030 length 2 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_write_page_" ref 862 length builtin function dcl 86 in procedure "comp_write_page_" ref 435 435 520 520 616 1021 1021 1098 1098 level 4 based char(1) level 3 dcl 7-5 ref 128 lfnt 25 based fixed bin(17,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 475* 671* 755* lfnt 25 based fixed bin(17,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 567* 599* 706* 786* lfnt 25 based fixed bin(17,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 502* line 16 based structure array level 2 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" line 16 based structure array level 2 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" line 16 based structure array level 2 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 273 282 line 16 based structure array level 2 in structure "page_image" dcl 9-56 in procedure "comp_write_page_" set ref 273 282 line_area based structure level 1 dcl 11-26 in procedure "comp_write_page_" line_area 776 based structure level 2 in structure "block" dcl 22 in procedure "comp_write_page_" line_area_ptr 000622 automatic pointer initial dcl 11-25 set ref 11-25* 399* 399* 401 402* 646 lineno 162 based fixed bin(17,0) level 3 dcl 11-161 set ref 417* 471 520* linespace 1020 based fixed bin(31,0) level 3 in structure "block" dcl 22 in procedure "comp_write_page_" ref 579 611 718 798 linespace 164 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 406 507 520* 520* 642 linptr 10 based pointer array level 2 dcl 11-26 ref 402 lmarg 24 based fixed bin(31,0) level 3 in structure "page" dcl 9-11 in procedure "comp_write_page_" ref 206 759 lmarg 26 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 570* 574 602* 605 607 710* 713 716 790* 793 796 lmarg 165 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" ref 496 lmarg 26 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 458 479* 664 675* 677* 677 680 748 759* 763 lmarg 26 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 496* 520* 520* local_area_ptr 160 based pointer level 3 dcl 15-23 set ref 141* 176* 179* 194* 197* 233* locol based structure level 1 dcl 51 locolptr 000132 automatic pointer dcl 52 set ref 228* 239 239 239 239 239 239 239 239 250 253 376* 377 379 381 381 496 498 lsize 27 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 476* 672* 756* lsize 27 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 503* lsize 27 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 568* 600* 707* 787* margin 455 based structure level 2 in structure "col1" dcl 1149 in procedure "comp_write_page_" margin 455 based structure level 2 in structure "col" dcl 1-5 in procedure "comp_write_page_" margin 455 based structure level 2 in structure "locol" dcl 51 in procedure "comp_write_page_" margin 455 based structure level 2 in structure "col0" dcl 1-37 in procedure "comp_write_page_" mark 67 based varying char(80) level 4 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 691 733 774 807 mark 40 based varying char(80) level 4 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 726 803 mark 11 based varying char(80) level 4 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 688 770 max builtin function dcl 86 ref 256 256 458 458 458 662 696 746 779 max_files 46 based fixed bin(17,0) level 2 in structure "comp_dvt" dcl 13-19 in procedure "comp_write_page_" ref 861 max_files 33 000100 automatic fixed bin(17,0) level 2 in structure "file_header" dcl 854 in begin block on line 853 set ref 861* max_image_lines constant fixed bin(17,0) initial dcl 9-5 ref 141 141 176 176 178 179 179 194 194 196 197 197 233 233 max_pages 45 based fixed bin(17,0) level 2 in structure "comp_dvt" dcl 13-19 in procedure "comp_write_page_" ref 860 max_pages 32 000100 automatic fixed bin(17,0) level 2 in structure "file_header" dcl 854 in begin block on line 853 set ref 860* mem_name 116 based char(32) level 3 dcl 11-161 ref 594 mod builtin function dcl 17-26 in procedure "allocate" ref 17-40 mod 1(02) based bit(1) level 4 in structure "txtlin" packed unaligned dcl 11-161 in procedure "comp_write_page_" ref 520 639 688 723 742 770 779 803 modified 15(04) based bit(1) level 4 packed unaligned dcl 9-11 set ref 110* 128 mounted_wheel constant fixed bin(17,0) initial dcl 822 ref 955 mrgtxt 16(08) based bit(1) array level 4 in structure "lcolimage" packed unaligned dcl 1165 in procedure "comp_write_page_" set ref 482* mrgtxt 16(08) based bit(1) array level 4 in structure "rcolimage" packed unaligned dcl 1167 in procedure "comp_write_page_" set ref 578* n_read 000134 automatic fixed bin(35,0) dcl 53 set ref 966* 970* 998* 1055* 1065 name 1 based char(32) level 2 in structure "iocb" dcl 16-9 in procedure "comp_write_page_" ref 926 name 40 based varying char(65) level 3 in structure "fnttbl" dcl 5-14 in procedure "comp_write_page_" ref 552 562 629 ndx 5 based fixed bin(17,0) level 2 dcl 11-26 ref 401 net 170 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" ref 500 net 30 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 574* 607* 716* 796* net 30 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 500* next based pointer level 2 dcl 11-26 ref 646 next_depth 000135 automatic fixed bin(31,0) dcl 54 set ref 450* 453 453* 642* 642 next_rec 000136 automatic bit(36) unaligned dcl 55 set ref 888* 889 894* 908* 910 1029* nextref based bit(36) level 2 dcl 8-64 set ref 891 894 895 1029 1030 nobell_opt 1(27) based bit(1) level 2 packed unaligned dcl 7-5 ref 115 958 985 null builtin function dcl 17-26 in procedure "allocate" ref 17-43 17-43 17-45 null builtin function dcl 86 in procedure "comp_write_page_" ref 138 173 191 233 256 379 381 5-13 8-21 8-45 8-62 11-25 11-35 14-68 14-75 399 420 946 946 962 962 983 983 1046 1046 number_opt 1(30) based bit(1) level 2 packed unaligned dcl 7-5 ref 168 206 264 287 458 759 obverse_opt constant bit(1) initial unaligned dcl 56 ref 302 open_mode 121 based fixed bin(35,0) level 2 dcl 13-19 ref 828 option based structure level 1 dcl 7-5 option_ptr 164 based pointer level 3 dcl 15-23 ref 110 115 128 128 128 128 168 168 168 168 188 188 206 206 206 211 211 211 214 217 217 256 256 264 264 264 264 278 278 287 287 287 296 329 329 335 341 363 371 458 485 490 535 570 602 652 656 656 656 656 664 675 680 684 688 691 696 696 696 696 713 713 719 726 727 733 734 748 759 759 763 767 770 774 793 793 799 803 807 828 858 926 958 985 1035 1035 1035 1046 outproc 10 based entry variable level 2 dcl 13-19 ref 156 358 output_file 3470 based varying char(32) level 2 dcl 10-7 ref 164 output_file_opt 1(14) based bit(1) level 2 packed unaligned dcl 7-5 ref 329 828 926 1035 p 1 based fixed bin(31,0) level 2 packed unaligned dcl 2-80 ref 624 page based structure level 1 dcl 9-11 page_chng_opt 1(16) based bit(1) level 2 packed unaligned dcl 7-5 ref 128 296 363 page_header based structure level 1 dcl 9-27 page_image based structure level 1 dcl 9-56 set ref 141 141 page_len 34 000100 automatic fixed bin(21,0) level 2 dcl 854 set ref 862* page_parms based structure level 1 dcl 9-86 page_ptr 170 based pointer level 3 dcl 15-23 ref 110 110 110 128 128 128 138 141 141 141 145 162 164 165 166 168 173 176 176 176 178 179 179 179 183 185 191 194 194 194 196 197 197 197 201 203 206 206 214 217 217 226 228 233 233 236 264 270 271 273 273 275 275 281 282 282 284 284 287 287 287 310 350 351 352 355 375 376 387 430 458 458 458 458 458 458 473 473 474 474 475 476 477 478 479 480 481 482 483 485 485 487 510 515 539 552 552 552 561 561 562 566 566 567 568 569 570 570 573 574 574 574 577 578 579 580 586 591 591 594 598 598 599 600 601 602 602 605 605 607 607 607 610 611 612 629 629 652 656 656 662 664 664 664 669 669 670 670 671 672 673 674 675 677 677 677 677 680 680 682 683 684 685 686 688 691 696 696 696 696 696 704 704 705 705 706 707 708 709 710 710 713 713 716 716 716 718 719 720 721 726 727 733 734 739 746 748 748 748 753 753 754 754 755 756 757 758 759 759 759 763 763 765 766 767 768 770 774 779 779 784 784 785 785 786 787 788 789 790 790 793 793 796 796 796 798 799 800 801 803 807 832 862 891 897 906 1013 page_record 11 based bit(36) level 2 in structure "record" dcl 8-46 in procedure "comp_write_page_" set ref 832 906 page_record based structure level 1 dcl 8-64 in procedure "comp_write_page_" page_record_ptr 000616 automatic pointer initial dcl 8-62 set ref 8-62* 832* 889* 889 891 894* 895* 906* 910* 910 913 917 921 921 931 955 955 958 960 964 974 974 974 980 1002 1008 1008 1008 1021 1026 1026 1029* 1030* pageid based char(32) level 3 dcl 8-46 set ref 344* 350* pageno 26 based varying char(32) level 3 dcl 9-11 set ref 110* 350 387* 430* 1013 parms 1004 based structure level 2 in structure "block" dcl 22 in procedure "comp_write_page_" parms 1 based structure level 2 in structure "page" dcl 9-11 in procedure "comp_write_page_" pass_counter 3643 based fixed bin(17,0) level 2 dcl 10-7 ref 128 pending 10(02) based bit(1) level 3 packed unaligned dcl 8-46 set ref 313 324 826* pgc_select 15(27) based char(1) level 4 in structure "page" packed unaligned dcl 9-11 in procedure "comp_write_page_" ref 128 pgc_select 2056 based char(1) level 2 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 128 place 5 based char(1) level 3 dcl 7-5 ref 168 211 264 656 656 656 696 696 696 pointer builtin function dcl 86 ref 841 849 868 876 1097 preface based structure level 1 dcl 823 in procedure "print_page" preface 0(06) based bit(1) level 3 in structure "page_record" packed unaligned dcl 8-64 in procedure "comp_write_page_" ref 913 921 1026 print_flag 4113(11) based bit(1) level 3 packed unaligned dcl 10-7 ref 128 print_sw 000137 automatic bit(1) unaligned dcl 60 set ref 128* 133* 135 230 261 409 417 447 520 ptr builtin function dcl 17-26 in procedure "allocate" ref 17-47 ptr 32 based pointer array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 566* 598* 705* 785* ptr 172 based pointer level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" ref 403 458 494 ptr 4 based pointer array level 2 in structure "fnttbldata" dcl 5-7 in procedure "comp_write_page_" ref 552 562 629 ptr 32 based pointer array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 494* ptr 000242 external static pointer level 2 in structure "compstat$compconst" dcl 15-14 in procedure "comp_write_page_" ref 108 110 110 110 110 115 119 128 128 128 128 128 128 128 128 128 138 141 141 141 141 145 156 162 164 164 165 166 168 168 168 168 168 173 176 176 176 176 178 179 179 179 179 183 185 188 188 191 194 194 194 194 196 197 197 197 197 201 203 206 206 206 206 206 211 211 211 214 214 217 217 217 217 226 228 233 233 233 236 256 256 264 264 264 264 264 270 271 273 273 275 275 278 278 281 282 282 284 284 287 287 287 287 287 287 287 296 310 329 329 335 341 350 351 352 355 358 359 359 363 371 375 376 379 379 387 430 458 458 458 458 458 458 458 473 473 474 474 475 476 477 478 479 480 481 482 483 485 485 485 487 490 510 515 535 539 552 552 552 552 561 561 562 562 566 566 567 568 569 570 570 570 573 574 574 574 577 578 579 580 586 591 591 594 598 598 599 600 601 602 602 602 605 605 607 607 607 610 611 612 629 629 629 652 652 656 656 656 656 656 656 662 664 664 664 664 669 669 670 670 671 672 673 674 675 675 677 677 677 677 680 680 680 682 683 684 684 685 686 688 688 691 691 696 696 696 696 696 696 696 696 696 704 704 705 705 706 707 708 709 710 710 713 713 713 713 716 716 716 718 719 719 720 721 726 726 727 727 733 733 734 734 739 746 748 748 748 748 753 753 754 754 755 756 757 758 759 759 759 759 759 763 763 763 765 766 767 767 768 770 770 774 774 779 779 784 784 785 785 786 787 788 789 790 790 793 793 793 793 796 796 796 798 799 799 800 801 803 803 807 807 828 828 832 834 837 841 841 845 849 849 856 857 858 859 860 861 862 868 868 876 876 880 884 891 897 897 906 926 938 938 958 974 985 994 994 1008 1013 1013 1013 1021 1035 1035 1035 1046 1060 1060 1094 1097 1097 1101 1101 1110 1110 ptr 32 based pointer array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 474* 670* 754* ptrs 126 based structure level 2 in structure "const" dcl 15-23 in procedure "comp_write_page_" ptrs 3742 based structure level 2 in structure "shared" dcl 10-7 in procedure "comp_write_page_" pwheel 0(30) based fixed bin(6,0) level 3 packed unsigned unaligned dcl 823 ref 955 955 958 960 964 quad 16 based bit(6) array level 4 in structure "lcolimage" packed unaligned dcl 1165 in procedure "comp_write_page_" set ref 673* 757* quad 16 based bit(6) array level 4 in structure "rcolimage" packed unaligned dcl 1167 in procedure "comp_write_page_" set ref 708* 788* quad 2(11) based bit(6) level 3 in structure "txtlin" packed unaligned dcl 11-161 in procedure "comp_write_page_" ref 504 510 515 520 520 520 520 520 520 520 quad 16 based bit(6) array level 4 in structure "colimage" packed unaligned dcl 1158 in procedure "comp_write_page_" set ref 504* 510* 513* 515* 518* quadc constant bit(6) initial unaligned dcl 11-148 ref 520 quadi constant bit(6) initial unaligned dcl 11-148 ref 515 520 quadl constant bit(6) initial unaligned dcl 11-148 ref 513 518 520 673 757 quado constant bit(6) initial unaligned dcl 11-148 ref 510 520 quadr constant bit(6) initial unaligned dcl 11-148 ref 510 515 520 708 788 quit 000000 stack reference condition dcl 89 ref 944 rawo 0(01) based bit(1) level 3 packed unaligned dcl 8-64 ref 931 rawo_mode 000010 internal static bit(1) initial unaligned dcl 61 set ref 942* 1032 1091 1113* rcol_text based varying char(128) array dcl 64 set ref 197 197 552* 552 562* 566 594* 598 629* 629 705 726* 733* 785 803* 807* rcolimage based structure level 1 dcl 1167 set ref 194 194 196* recleng 122 based fixed bin(17,0) level 2 in structure "comp_dvt" dcl 13-19 in procedure "comp_write_page_" ref 859 recleng 000140 automatic fixed bin(24,0) dcl 66 in procedure "comp_write_page_" set ref 891* 897 recleng 31 000100 automatic fixed bin(17,0) level 2 in structure "file_header" dcl 854 in begin block on line 853 set ref 859* record based structure level 1 dcl 8-46 record_ptr 000614 automatic pointer initial dcl 8-45 set ref 166* 299 299 313 324 338 339 344 345 350 351 352 8-45* 826 rel builtin function dcl 86 ref 891 891 right 36 based structure level 3 in structure "option" dcl 7-5 in procedure "comp_write_page_" right 456 based fixed bin(31,0) level 3 in structure "locol" dcl 51 in procedure "comp_write_page_" set ref 239* 239* right 456 based fixed bin(31,0) level 3 in structure "col0" dcl 1-37 in procedure "comp_write_page_" ref 570 602 right 456 based fixed bin(31,0) level 3 in structure "col" dcl 1-5 in procedure "comp_write_page_" ref 710 790 rmarg 34 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 498* 520* 520* rmarg 174 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" ref 498 rmarg 34 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 480* 664 680* 748 763* rmarg 34 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 573* 574 605* 607 713* 716 793* 796 scale parameter fixed bin(31,0) dcl 1121 ref 1118 1123 sep 36 based fixed bin(31,0) level 4 dcl 7-5 ref 713 793 sequential_output constant fixed bin(17,0) initial dcl 67 ref 828 shared based structure level 1 dcl 10-7 shared_ptr 200 based pointer level 3 dcl 15-23 ref 108 128 128 164 379 379 834 880 884 897 974 1008 1021 size 154 based fixed bin(31,0) level 3 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 503 541 547 592* 592* size builtin function dcl 86 in procedure "comp_write_page_" ref 141 141 176 176 179 179 194 194 197 197 233 233 880 size_str 000141 automatic varying char(16) dcl 69 set ref 549* 552 562 592* 594 627* 629 space 6 based fixed bin(31,0) level 3 dcl 7-5 ref 214 217 217 664 675 680 748 763 spcl 3 based structure level 3 dcl 11-161 spcl_iocbp 176 based pointer level 2 dcl 11-161 set ref 420 435* spcl_line 000146 automatic varying char(1020) dcl 71 set ref 430* 433* 435 435 435 435 stop_opt 1(33) based bit(1) level 2 packed unaligned dcl 7-5 ref 1035 stop_signal 000546 automatic char(5) unaligned dcl 72 set ref 115* 117* 968 968 1051 1051 str 1 based char level 2 packed unaligned dcl 80 ref 869 877 str_l based fixed bin(17,0) level 2 dcl 80 ref 842 850 869 877 str_p 000574 automatic pointer dcl 79 set ref 841* 842 849* 850 868* 869 869 876* 877 877 substr builtin function dcl 86 ref 617 622 974 974 1068 1068 1077 1077 sws 16 based structure array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" sws 4113 based structure level 2 in structure "shared" dcl 10-7 in procedure "comp_write_page_" sws based structure level 2 in structure "preface" dcl 823 in procedure "print_page" sws based structure level 2 in structure "page_record" dcl 8-64 in procedure "comp_write_page_" sws 16 based structure array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" sws based structure level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" sws 15 based structure level 3 in structure "page" dcl 9-11 in procedure "comp_write_page_" sws 16 based structure array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" sws 120 based structure level 2 in structure "comp_dvt" packed unaligned dcl 13-19 in procedure "comp_write_page_" syn_father 146 based pointer level 2 dcl 16-9 ref 926 text 2 based char level 2 in structure "page_record" dcl 8-64 in procedure "comp_write_page_" set ref 917 921 974 974 1008 1008 1026 text based structure level 1 dcl 11-49 in procedure "comp_write_page_" text_area_ptr 000624 automatic pointer initial dcl 11-35 set ref 11-35* text_entry based structure level 1 dcl 11-68 text_header based structure level 1 dcl 11-163 text_ptr 14 based pointer level 2 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 197* 197 197 552 552 562 566 594 598 629 629 705 726 733 785 803 807 text_ptr 14 based pointer level 2 in structure "page_image" dcl 9-56 in procedure "comp_write_page_" set ref 145* 166 832 891 897 906 text_ptr 14 based pointer level 2 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 179* 179 179 474 485 487 670 688 691 754 770 774 translator_temp_$get_next_segment 000254 constant entry external dcl 17-37 ref 17-42 tree_names_ptr 000632 automatic pointer initial dcl 14-68 set ref 14-68* tree_var_ptr 000634 automatic pointer initial dcl 14-75 set ref 14-75* txtlin based structure level 1 dcl 11-161 txtlinptr 000630 automatic pointer dcl 11-160 set ref 402* 403 406 414 417 420 423 423 430 435 440 440 450 453 453 458 458 458 470 471 477 483 490 494 495 496 498 500 501 502 503 504 505 506 507 508 510 515 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 520 541 541 545 547 552 569 580 586 592 592 594 594 601 612 639 639 639 642 664 674 686 688 688 691 696 709 721 723 723 730 742 742 742 748 758 768 770 770 774 779 779 779 779 789 801 803 803 807 txtstr based varying char(1020) dcl 11-45 set ref 406 423* 430* 433 440* 458 520 520 535 583 616 617 622 1098 1098 1098 1098 txtstrptr 000626 automatic pointer dcl 11-44 set ref 403* 406 423 430 433 440 520 520 535 583 616 617 622 type_font_chars constant char(2) initial unaligned dcl 73 ref 583 617 used 451 based fixed bin(31,0) level 3 dcl 51 set ref 239* 239* user_discard 000550 automatic char(80) unaligned dcl 75 set ref 966 966 970 970 998 998 1055 1055 1068 1068 1077 1077 version 000100 automatic fixed bin(17,0) level 2 dcl 854 set ref 855* wait_opt 1(34) based bit(1) level 2 packed unaligned dcl 7-5 set ref 329 335* 1046 white 16(09) based bit(1) array level 4 in structure "colimage" packed unaligned dcl 1158 in procedure "comp_write_page_" set ref 505* white 4(07) based bit(1) level 3 in structure "txtlin" packed unaligned dcl 11-161 in procedure "comp_write_page_" ref 505 width 66 based fixed bin(31,0) level 4 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 734 width 37 based fixed bin(31,0) level 4 in structure "option" dcl 7-5 in procedure "comp_write_page_" ref 713 727 793 width 35 based fixed bin(31,0) array level 3 in structure "colimage" dcl 1158 in procedure "comp_write_page_" set ref 501* width 35 based fixed bin(31,0) array level 3 in structure "rcolimage" dcl 1167 in procedure "comp_write_page_" set ref 577* 610* 727* 734* width 204 based fixed bin(31,0) level 2 in structure "txtlin" dcl 11-161 in procedure "comp_write_page_" set ref 501 520* 520* width 35 based fixed bin(31,0) array level 3 in structure "lcolimage" dcl 1165 in procedure "comp_write_page_" set ref 478* 682* 765* wt_mark 000002 constant char(8) initial unaligned dcl 76 set ref 1021 1021 1021 1021 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 6-6 BEL internal static char(1) initial unaligned dcl 6-6 BRS internal static char(1) initial unaligned dcl 6-6 BSP internal static char(1) initial unaligned dcl 6-6 CAN internal static char(1) initial unaligned dcl 6-6 DC1 internal static char(1) initial unaligned dcl 6-6 DC2 internal static char(1) initial unaligned dcl 6-6 DC3 internal static char(1) initial unaligned dcl 6-6 DC4 internal static char(1) initial unaligned dcl 6-6 DEL internal static char(1) initial unaligned dcl 6-6 DEVIT internal static char(1) initial unaligned dcl 6-6 DLE internal static char(1) initial unaligned dcl 6-6 EM internal static char(1) initial unaligned dcl 6-6 EM_ internal static char(1) initial unaligned dcl 6-6 EMdash internal static char(1) initial unaligned dcl 6-6 EN internal static char(1) initial unaligned dcl 6-6 ENQ internal static char(1) initial unaligned dcl 6-6 EN_ internal static char(1) initial unaligned dcl 6-6 ENd internal static char(1) initial unaligned dcl 6-6 EOT internal static char(1) initial unaligned dcl 6-6 ESC internal static char(1) initial unaligned dcl 6-6 ETB internal static char(1) initial unaligned dcl 6-6 ETX internal static char(1) initial unaligned dcl 6-6 FF internal static char(1) initial unaligned dcl 6-6 FS internal static char(1) initial unaligned dcl 6-6 GS internal static char(1) initial unaligned dcl 6-6 HAIR internal static char(1) initial unaligned dcl 6-6 HLF internal static char(1) initial unaligned dcl 6-6 HLR internal static char(1) initial unaligned dcl 6-6 HT internal static char(1) initial unaligned dcl 6-6 HUGE internal static char(1) initial unaligned dcl 6-6 LF internal static char(1) initial unaligned dcl 6-6 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 15-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 15-18 MEDIUM internal static char(1) initial unaligned dcl 6-6 NAK internal static char(1) initial unaligned dcl 6-6 NL internal static char(1) initial unaligned dcl 6-6 NUL internal static char(1) initial unaligned dcl 6-6 PAD internal static char(1) initial unaligned dcl 6-6 PI internal static char(1) initial unaligned dcl 6-6 PS internal static char(1) initial unaligned dcl 6-6 RRS internal static char(1) initial unaligned dcl 6-6 RS internal static char(1) initial unaligned dcl 6-6 SI internal static char(1) initial unaligned dcl 6-6 SO internal static char(1) initial unaligned dcl 6-6 SOH internal static char(1) initial unaligned dcl 6-6 STROKE internal static char(1) initial unaligned dcl 6-6 STX internal static char(1) initial unaligned dcl 6-6 SUB internal static char(1) initial unaligned dcl 6-6 SYN internal static char(1) initial unaligned dcl 6-6 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 11-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 11-47 THICK internal static char(1) initial unaligned dcl 6-6 THIN internal static char(1) initial unaligned dcl 6-6 US internal static char(1) initial unaligned dcl 6-6 VT internal static char(1) initial unaligned dcl 6-6 alloc_sw internal static bit(1) initial unaligned dcl 1126 approx internal static char(1) initial unaligned dcl 6-6 bullet internal static char(1) initial unaligned dcl 6-6 col0blk automatic fixed bin(17,0) dcl 27 comp_ 000000 constant entry external dcl 3-7 comp_art_ 000000 constant entry external dcl 3-8 comp_block_ctls_ 000000 constant entry external dcl 3-9 comp_break_ 000000 constant entry external dcl 3-11 comp_break_ctls_ 000000 constant entry external dcl 3-12 comp_ctls_ 000000 constant entry external dcl 3-14 comp_dvid_version internal static fixed bin(17,0) initial dcl 12-14 comp_eject_page_ 000000 constant entry external dcl 3-15 comp_expr_eval_ 000000 constant entry external dcl 3-17 comp_extr_str_ 000000 constant entry external dcl 3-21 comp_fill_ 000000 constant entry external dcl 3-24 comp_font_ 000000 constant entry external dcl 3-25 comp_format_ctls_ 000000 constant entry external dcl 3-26 comp_get_file_$find 000000 constant entry external dcl 3-28 comp_get_file_$open 000000 constant entry external dcl 3-31 comp_head_page_ 000000 constant entry external dcl 3-33 comp_hft_ctls_ 000000 constant entry external dcl 3-35 comp_hft_ctls_$title 000000 constant entry external dcl 3-36 comp_init_$one 000000 constant entry external dcl 3-38 comp_init_$three 000000 constant entry external dcl 3-40 comp_init_$two 000000 constant entry external dcl 3-39 comp_insert_ctls_ 000000 constant entry external dcl 3-42 comp_make_page_ 000000 constant entry external dcl 3-44 comp_make_page_$cleanup 000000 constant entry external dcl 3-46 comp_measure_ 000000 constant entry external dcl 3-48 comp_read_$line 000000 constant entry external dcl 3-57 comp_read_$name 000000 constant entry external dcl 3-50 comp_read_$number 000000 constant entry external dcl 3-53 comp_report_$ctlstr 000000 constant entry external dcl 3-61 comp_report_$exact 000000 constant entry external dcl 3-64 comp_space_ 000000 constant entry external dcl 3-66 comp_tbl_ctls_ 000000 constant entry external dcl 3-68 comp_title_block_ 000000 constant entry external dcl 3-69 comp_update_symbol_ 000000 constant entry external dcl 3-71 comp_use_ref_ 000000 constant entry external dcl 3-74 comp_util_$add_text 000000 constant entry external dcl 3-75 comp_util_$display 000000 constant entry external dcl 3-77 comp_util_$escape 000000 constant entry external dcl 3-80 comp_util_$getblk 000000 constant entry external dcl 3-82 comp_util_$num_display 000000 constant entry external dcl 3-84 comp_util_$pageno 000000 constant entry external dcl 3-86 comp_util_$pictures 000000 constant entry external dcl 3-88 comp_util_$pop 000000 constant entry external dcl 3-91 comp_util_$push 000000 constant entry external dcl 3-92 comp_util_$replace_text 000000 constant entry external dcl 3-96 comp_util_$search_tree 000000 constant entry external dcl 3-98 comp_util_$set_bin 000000 constant entry external dcl 3-100 comp_util_$set_net_page 000000 constant entry external dcl 3-104 comp_util_$translate 000000 constant entry external dcl 3-106 comp_write_block_ 000000 constant entry external dcl 3-108 comp_write_page_ 000000 constant entry external dcl 3-110 compose_severity_ external static fixed bin(35,0) dcl 3-5 const_version internal static fixed bin(35,0) initial dcl 15-17 cright internal static char(1) initial unaligned dcl 6-6 ctl_line based varying char(1020) dcl 11-158 current_parms based structure level 1 dcl 11-209 dagger internal static char(1) initial unaligned dcl 6-6 dbldag internal static char(1) initial unaligned dcl 6-6 dcctl based structure level 1 packed unaligned dcl 2-34 dclit based structure level 1 packed unaligned dcl 2-45 dclong1_len internal static fixed bin(17,0) initial dcl 2-62 dclong_len internal static fixed bin(17,0) initial dcl 2-62 dclong_val based structure level 1 packed unaligned dcl 2-54 dcshort1_len internal static fixed bin(17,0) initial dcl 2-75 dcshort_len internal static fixed bin(17,0) initial dcl 2-75 dcshort_val based structure level 1 packed unaligned dcl 2-67 dcxx based structure level 1 packed unaligned dcl 2-11 delmark internal static char(1) initial unaligned dcl 6-6 delta internal static char(1) initial unaligned dcl 6-6 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 10-126 filedata_version_2 internal static fixed bin(17,0) initial dcl 8-14 filedata_version_3 internal static fixed bin(17,0) initial dcl 8-16 flag_value based bit(1) unaligned dcl 10-132 fntstk_eptr automatic pointer dcl 4-5 font based structure level 1 unaligned dcl 5-68 font_ptr automatic pointer dcl 5-67 get_pdir_ 000000 constant entry external dcl 1127 hfcblk based structure level 1 dcl 11-250 hfcblk_ptr automatic pointer dcl 11-249 infin internal static char(1) initial unaligned dcl 6-6 init_page_parms based structure level 1 dcl 9-108 iox_$error_output external static pointer dcl 15-74 iox_$iocb_version_sentinel external static char(4) dcl 16-64 list 000000 constant entry external dcl 1128 lquote internal static char(1) initial unaligned dcl 6-6 lslnt internal static char(1) initial unaligned dcl 6-6 max_cols internal static fixed bin(17,0) initial dcl 9-7 max_text_lines internal static fixed bin(17,0) initial dcl 10-128 med_sel based structure level 1 unaligned dcl 5-116 med_sel_p automatic pointer dcl 5-115 medchar based varying char dcl 5-113 medchar_sel based structure level 1 unaligned dcl 5-110 medchar_sel_p automatic pointer dcl 5-109 medsel based char(12) array unaligned dcl 5-36 medsel_table based structure level 1 unaligned dcl 5-86 medsel_table_ptr automatic pointer dcl 5-84 member based structure level 1 unaligned dcl 5-56 member_ptr automatic pointer dcl 5-55 mode_string internal static char(16) initial unaligned dcl 10-129 modmark internal static char(1) initial unaligned dcl 6-6 multiply internal static char(1) initial unaligned dcl 6-6 nabla internal static char(1) initial unaligned dcl 6-6 not_eq internal static char(1) initial unaligned dcl 6-6 num_value based fixed bin(31,0) dcl 10-133 oct031 internal static char(1) initial unaligned dcl 6-6 option_version internal static fixed bin(35,0) initial dcl 7-3 oput based structure level 1 unaligned dcl 5-92 oput_p automatic pointer dcl 5-91 overbar internal static char(1) initial unaligned dcl 6-6 page_image_version internal static fixed bin(35,0) initial dcl 9-53 page_version internal static fixed bin(17,0) initial dcl 9-9 perpen internal static char(1) initial unaligned dcl 6-6 pi internal static char(1) initial unaligned dcl 6-6 pl_mi internal static char(1) initial unaligned dcl 6-6 prll internal static char(1) initial unaligned dcl 6-6 repl_str based structure level 1 unaligned dcl 5-30 repl_str_ptr automatic pointer dcl 5-29 replstr based varying char(256) dcl 5-33 rquote internal static char(1) initial unaligned dcl 6-6 save_shared based structure level 1 dcl 10-124 shared_version internal static fixed bin(35,0) initial dcl 10-5 sizel based structure level 1 unaligned dcl 5-103 sizel_p automatic pointer dcl 5-102 siztbl based structure level 1 unaligned dcl 5-38 slash internal static char(1) initial unaligned dcl 6-6 square internal static char(1) initial unaligned dcl 6-6 string_area based fixed bin(17,0) array dcl 11-43 sup0 internal static char(1) initial unaligned dcl 6-6 sup1 internal static char(1) initial unaligned dcl 6-6 sup2 internal static char(1) initial unaligned dcl 6-6 sup3 internal static char(1) initial unaligned dcl 6-6 sup4 internal static char(1) initial unaligned dcl 6-6 sup5 internal static char(1) initial unaligned dcl 6-6 sup6 internal static char(1) initial unaligned dcl 6-6 sup7 internal static char(1) initial unaligned dcl 6-6 sup8 internal static char(1) initial unaligned dcl 6-6 sup9 internal static char(1) initial unaligned dcl 6-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 15-80 tblkdata based structure level 1 dcl 11-5 text_area based structure level 1 dcl 11-36 text_parms based structure level 1 dcl 11-206 tfore internal static char(1) initial unaligned dcl 6-6 theta internal static char(1) initial unaligned dcl 6-6 tmark internal static char(1) initial unaligned dcl 6-6 tree based structure level 1 dcl 14-5 tree_flags based bit(1) array dcl 14-62 tree_incrs based fixed bin(31,0) array dcl 14-65 tree_names based char(32) array unaligned dcl 14-69 tree_nums based fixed bin(31,0) array dcl 14-72 tree_var based structure array level 1 dcl 14-76 type_font internal static char(1) initial unaligned dcl 2-90 type_lit internal static char(1) initial unaligned dcl 2-90 type_slx internal static char(1) initial unaligned dcl 2-90 type_slxly internal static char(1) initial unaligned dcl 2-90 type_sly internal static char(1) initial unaligned dcl 2-90 type_sx internal static char(1) initial unaligned dcl 2-90 type_sxy internal static char(1) initial unaligned dcl 2-90 type_sy internal static char(1) initial unaligned dcl 2-90 type_unstart internal static char(1) initial unaligned dcl 2-90 type_unstop internal static char(1) initial unaligned dcl 2-90 type_v0lx internal static char(1) initial unaligned dcl 2-90 type_v0lxly internal static char(1) initial unaligned dcl 2-90 type_v0ly internal static char(1) initial unaligned dcl 2-90 type_v0x internal static char(1) initial unaligned dcl 2-90 type_v0xy internal static char(1) initial unaligned dcl 2-90 type_v0y internal static char(1) initial unaligned dcl 2-90 type_vlx internal static char(1) initial unaligned dcl 2-90 type_vlxly internal static char(1) initial unaligned dcl 2-90 type_vly internal static char(1) initial unaligned dcl 2-90 type_vx internal static char(1) initial unaligned dcl 2-90 type_vxy internal static char(1) initial unaligned dcl 2-90 type_vy internal static char(1) initial unaligned dcl 2-90 type_wait internal static char(1) initial unaligned dcl 2-90 units based fixed bin(17,0) array dcl 5-81 units_ptr automatic pointer dcl 5-80 unstart_signal internal static char(3) initial unaligned dcl 2-39 unstop_signal internal static char(3) initial unaligned dcl 2-39 vrule internal static char(1) initial unaligned dcl 6-6 wait_signal internal static char(3) initial unaligned dcl 2-39 NAMES DECLARED BY EXPLICIT CONTEXT. add_cbars 004636 constant entry internal dcl 649 ref 490 allocate 010266 constant entry internal dcl 17-21 ref 141 176 179 194 197 233 anf 002161 constant entry external dcl 1134 ann 002146 constant entry external dcl 1130 build_block_image 002217 constant entry internal dcl 392 ref 256 clean_ 007774 constant entry internal dcl 1086 ref 948 952 1032 col_loop 001130 constant label dcl 226 comp_write_page_ 000351 constant entry external dcl 14 dbf 002206 constant entry external dcl 1143 dbn 002173 constant entry external dcl 1139 do_processing 001627 constant label dcl 329 ref 296 305 315 321 ioerr 007254 constant label dcl 1013 ref 882 900 977 print_page 005635 constant entry internal dcl 817 ref 367 quit_ 007742 constant label dcl 1072 ref 1062 reprint 006173 constant label dcl 906 ref 1035 return_ 002117 constant label dcl 387 ref 152 363 show 010231 constant entry internal dcl 1118 ref 239 239 239 239 239 239 239 239 520 520 520 520 520 520 520 520 520 520 549 549 592 592 627 627 skip_page 002023 constant label dcl 371 ref 307 wait_ 007460 constant entry internal dcl 1043 ref 333 1035 NAMES DECLARED BY CONTEXT OR IMPLICATION. bin builtin function ref 206 256 256 570 602 891 891 dec builtin function ref 1123 divide builtin function ref 842 850 1123 round builtin function ref 1123 1123 rtrim builtin function ref 594 594 unspec builtin function set ref 178 196* 490 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10740 11216 10441 10750 Length 12102 10441 256 650 277 202 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_write_page_ 806 external procedure is an external procedure. build_block_image internal procedure shares stack frame of external procedure comp_write_page_. add_cbars internal procedure shares stack frame of external procedure comp_write_page_. print_page 170 internal procedure enables or reverts conditions. begin block on line 853 82 begin block uses auto adjustable storage. on unit on line 944 88 on unit on unit on line 952 64 on unit wait_ 118 internal procedure is called by several nonquick procedures. clean_ 104 internal procedure is called by several nonquick procedures. show internal procedure shares stack frame of external procedure comp_write_page_. allocate internal procedure shares stack frame of external procedure comp_write_page_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 rawo_mode comp_write_page_ 000011 annot_sw comp_write_page_ 000012 db_sw comp_write_page_ 000013 PREFACE print_page STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 853 000100 file_header begin block on line 853 clean_ 000100 clean_strp clean_ comp_write_page_ 000100 blkct comp_write_page_ 000102 blkptr comp_write_page_ 000104 changed_front comp_write_page_ 000105 changed_page comp_write_page_ 000106 colblkcnt comp_write_page_ 000107 colstrt comp_write_page_ 000110 debug_sw comp_write_page_ 000111 ercd comp_write_page_ 000112 flin_sw comp_write_page_ 000113 FN_pic comp_write_page_ 000114 i comp_write_page_ 000115 j comp_write_page_ 000116 k comp_write_page_ 000117 iblk comp_write_page_ 000120 icol comp_write_page_ 000121 ilin comp_write_page_ 000122 last_font comp_write_page_ 000123 last_size comp_write_page_ 000124 left_margin_note_space comp_write_page_ 000126 LN_pic comp_write_page_ 000130 LNdw comp_write_page_ 000132 locolptr comp_write_page_ 000134 n_read comp_write_page_ 000135 next_depth comp_write_page_ 000136 next_rec comp_write_page_ 000137 print_sw comp_write_page_ 000140 recleng comp_write_page_ 000141 size_str comp_write_page_ 000146 spcl_line comp_write_page_ 000546 stop_signal comp_write_page_ 000550 user_discard comp_write_page_ 000574 str_p comp_write_page_ 000604 DCxx_p comp_write_page_ 000606 fnttbl_ptr comp_write_page_ 000610 fileheader_ptr comp_write_page_ 000612 l_comment comp_write_page_ 000613 l_cleanup comp_write_page_ 000614 record_ptr comp_write_page_ 000616 page_record_ptr comp_write_page_ 000620 colimage_ptr comp_write_page_ 000622 line_area_ptr comp_write_page_ 000624 text_area_ptr comp_write_page_ 000626 txtstrptr comp_write_page_ 000630 txtlinptr comp_write_page_ 000632 tree_names_ptr comp_write_page_ 000634 tree_var_ptr comp_write_page_ 000652 jlin build_block_image 000706 Nwords allocate 000710 P allocate 000712 code allocate print_page 000100 change_signal print_page 000140 first_sw print_page THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as alloc_cs cat_realloc_cs enter_begin leave_begin call_var call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext alloc_auto_adj mpfx2 mpfx3 mod_fx1 signal enable shorten_stack ext_entry int_entry round_fx1 repeat set_cs_eis real_to_real_tr divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ comp_report_ comp_util_$relblk continue_to_signal_ get_temp_segment_ ioa_ ioa_$nnl ioa_$rsnnl iox_$control iox_$get_line iox_$modes iox_$put_chars iox_$write_record translator_temp_$get_next_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst error_table_$long_record iox_$user_input iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000325 34 000326 40 000331 42 000333 5 13 000335 8 21 000337 8 45 000340 8 62 000341 11 25 000342 11 35 000343 14 68 000344 14 75 000345 14 000350 108 000357 110 000367 115 000426 117 000442 119 000446 128 000451 133 000506 135 000507 138 000511 141 000516 145 000532 146 000561 149 000563 151 000611 152 000614 156 000615 157 000631 162 000633 164 000641 165 000647 166 000651 168 000653 173 000673 176 000677 178 000713 179 000727 183 000745 185 000753 188 000755 191 000763 194 000770 196 001004 197 001020 201 001036 203 001044 206 001046 211 001101 214 001111 217 001120 226 001130 228 001137 230 001146 233 001150 236 001172 237 001201 239 001202 250 001327 252 001332 253 001341 254 001345 256 001347 258 001401 259 001403 261 001405 264 001407 268 001436 270 001437 271 001447 273 001456 275 001470 276 001472 278 001474 281 001515 282 001520 284 001533 285 001535 287 001536 296 001570 299 001573 302 001604 305 001606 307 001610 310 001611 313 001615 315 001620 318 001621 321 001623 324 001624 329 001627 333 001635 335 001653 338 001661 339 001664 341 001670 344 001674 345 001677 346 001701 350 001702 351 001707 352 001714 355 001721 358 001725 359 001736 363 002004 367 002017 371 002023 375 002032 376 002041 377 002050 378 002052 379 002061 381 002077 383 002113 384 002115 387 002117 390 002144 1130 002145 1132 002154 1133 002157 1134 002160 1136 002167 1137 002171 1139 002172 1141 002201 1142 002204 1143 002205 1145 002214 1146 002216 392 002217 398 002221 399 002222 401 002240 402 002251 403 002255 404 002257 406 002260 409 002267 412 002331 414 002333 417 002337 420 002366 423 002373 426 002435 427 002440 430 002441 433 002504 435 002512 437 002535 440 002537 442 002601 443 002604 445 002605 447 002606 450 002610 453 002616 456 002622 458 002626 470 002677 471 002707 473 002717 474 002723 475 002733 476 002741 477 002746 478 002751 479 002753 480 002760 481 002764 482 002765 483 002767 485 002775 487 003036 488 003066 490 003067 494 003102 495 003110 496 003114 498 003121 500 003125 501 003127 502 003131 503 003133 504 003135 505 003141 506 003146 507 003150 508 003152 510 003160 513 003201 515 003204 518 003224 520 003227 535 003507 539 003526 541 003532 545 003541 547 003543 549 003545 552 003601 559 003711 561 003712 562 003723 566 004001 567 004007 568 004016 569 004023 570 004026 573 004046 574 004050 577 004052 578 004053 579 004055 580 004060 583 004067 586 004102 591 004116 592 004126 594 004173 598 004306 599 004314 600 004323 601 004330 602 004333 605 004353 607 004355 610 004357 611 004360 612 004363 615 004372 616 004375 617 004403 619 004422 622 004423 624 004430 625 004436 627 004444 629 004500 633 004600 635 004605 639 004606 642 004625 645 004627 646 004631 647 004635 649 004636 652 004637 656 004656 662 004701 664 004707 669 004722 670 004726 671 004736 672 004744 673 004751 674 004754 675 004757 677 004765 680 004775 682 005000 683 005001 684 005002 685 005007 686 005011 688 005020 691 005041 696 005061 704 005125 705 005131 706 005141 707 005147 708 005154 709 005157 710 005162 713 005171 716 005177 718 005201 719 005204 720 005211 721 005213 723 005222 726 005226 727 005240 728 005242 730 005243 733 005246 734 005260 737 005262 739 005263 742 005266 746 005310 748 005316 753 005330 754 005334 755 005344 756 005352 757 005357 758 005362 759 005365 763 005410 765 005412 766 005413 767 005414 768 005421 770 005430 774 005451 777 005471 779 005472 784 005505 785 005511 786 005521 787 005527 788 005534 789 005537 790 005542 793 005546 796 005554 798 005556 799 005561 800 005566 801 005570 803 005577 807 005615 810 005632 815 005633 817 005634 821 005642 826 005644 828 005650 832 005662 834 005670 837 005676 841 005702 842 005705 845 005712 849 005716 850 005720 853 005725 854 005730 855 005747 856 005751 857 005760 858 005764 859 005771 860 005773 861 005775 862 005777 864 006002 865 006004 868 006005 869 006011 872 006015 873 006020 876 006022 877 006025 880 006032 882 006056 884 006065 885 006073 888 006074 889 006077 891 006105 894 006127 895 006131 897 006134 900 006167 902 006172 906 006173 908 006204 910 006206 913 006213 917 006222 918 006234 921 006235 926 006247 931 006265 934 006270 935 006316 938 006321 940 006370 942 006371 944 006374 946 006410 948 006443 949 006450 950 006461 952 006462 955 006504 958 006512 960 006535 962 006550 964 006603 966 006627 968 006654 970 006677 974 006724 977 006751 980 006754 983 006757 985 007012 988 007032 990 007044 991 007074 994 007077 996 007146 998 007147 1000 007172 1002 007222 1004 007225 1008 007226 1010 007251 1013 007254 1017 007334 1018 007340 1021 007341 1026 007372 1029 007410 1030 007416 1032 007421 1035 007431 1041 007456 1043 007457 1046 007465 1049 007526 1051 007556 1053 007601 1055 007631 1057 007656 1060 007664 1062 007727 1065 007730 1068 007733 1072 007742 1074 007745 1077 007753 1083 007765 1086 007773 1091 010001 1094 010003 1097 010010 1098 010012 1101 010034 1106 010103 1108 010125 1110 010155 1113 010226 1116 010230 1118 010231 1123 010233 17 21 010266 17 40 010270 17 41 010276 17 42 010302 17 43 010315 17 44 010325 17 45 010330 17 47 010340 17 48 010347 17 49 010353 17 50 010361 ----------------------------------------------------------- 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