COMPILATION LISTING OF SEGMENT x9700_writer_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1123.0 mst Tue Options: optimize map 1 /* compose support routine to write output to x9700 (Xerox 9700) (class bitmap) */ 2 3 /* PREFACE 4*/* This program handles length and distance values in "picture elements" 5*/* (pixels). These are the native units in the machine and, sooner or later, 6*/* all internal length and distance values have to be converted to pixels to 7*/* actually get device output. In some cases the vertical and horizontal 8*/* pixels are not of the same size, i.e. a Diablo-type typewriter has 9*/* 60/inch horizontally and 48/inch vertically. 10* 11*/* All values which are fixed bin (31) are in millipoints. 12* 13*/* Debugging tools--- 14*/* There are several switches that control debugging output from a writer-- 15*/* shared.bug_mode db_sw dt_sw lg_sw 16*/* debug_sw detail_sw long_sw 17*/* shared.bug_mode is set via the family of -db arguments. It means that all 18*/* of compose is being debugged. 19*/* db_sw, dt_sw, lg_sw (static) are set by the entries dbn, dtn, and lgn */ 20 /* respectively. They are reset by the entries dbf, dtf, and lgf. */ 21 22 /* These switches interact with each other. In order to reduce the amount of */ 23 /* code executed when not debugging, these interactions are distilled into */ 24 /* automatic switches, debug_sw, detail_sw, and long_sw with this logic. */ 25 /* debug_sw = (shared.bug_mode | db_sw); */ 26 /* detail_sw = debug_sw & dt_sw; */ 27 /* long_sw = debug_sw & lg_sw; */ 28 /* debug_sw controls these outputs-- */ 29 /* -- entry and exit notification */ 30 /* -- an interpretation of each line of the input structure before it is */ 31 /* acted upon. */ 32 /* -- gap count error notification */ 33 /* detail_sw controls these outputs-- */ 34 /* -- justification calculations */ 35 /* -- device control (DCxx) display */ 36 /* -- plot trace */ 37 /* -- put_ trace */ 38 /* -- set_font trace */ 39 /* -- set_media trace */ 40 /* long_sw controls these outputs-- */ 41 /* -- shows the justified text line */ 42 /* -- shows detailed Multics/device translation (simple) */ 43 44 /* This writer emits text in quarter-line increments. */ 45 46 47 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 48 49 x9700_writer_: 50 proc (func, code); 51 52 /* PARAMETERS */ 53 54 dcl func fixed bin; /* function code */ 55 /* 0 = build a page */ 56 /* 1 = initialize a page */ 57 /* 2 = initialize a file */ 58 /* 3 = clean up */ 59 /* 4 = prepare epilogue */ 60 dcl code fixed bin (35); /* error code */ 61 62 /* LOCAL STORAGE */ 63 64 dcl auto_lead fixed bin (31); /* automatic baseline advance */ 65 dcl BAD_CHAR char (1) static options (constant) init ("ÿ"); 66 /* list of bad font chars */ 67 dcl bad_chrs char (128) var static; 68 dcl char_ndx fixed bin; /* index into font table */ 69 dcl col_width fixed bin (31); /* calculated column width */ 70 dcl debug_str char (1020) var; 71 dcl debug_sw bit (1); 72 dcl detail_sw bit (1); 73 dcl dev_stat_ptr ptr static init (null ()); 74 dcl EM_width fixed bin (31); /* width of EM */ 75 dcl EN_width fixed bin (31); /* width of EN */ 76 dcl fcdevfnt fixed bin; /* device font needed by a char */ 77 dcl fcwidth fixed bin (31); /* font char width */ 78 dcl first_line bit (1) static; 79 dcl first_page bit (1) aligned static init ("0"b); 80 dcl font_in fixed bin; /* current font */ 81 dcl font_size fixed bin (31); /* point size in current font */ 82 dcl fonts_done bit (36); /* which fonts have been processed */ 83 dcl fonts_needed bit (36); /* which fonts have been requested */ 84 dcl (i, j, jj, k, ll) 85 fixed bin; 86 dcl ichr fixed bin; /* index to current text character */ 87 dcl ilin fixed bin static;/* page image line counter */ 88 dcl just_line char (1020) var; /* the justified line */ 89 dcl lineinfoptr ptr; /* -> info structure for image line */ 90 dcl line_window_size /* # of window lines per output line */ 91 fixed bin; 92 dcl Lmarg fixed bin (31); /* left margin */ 93 dcl loctxt char (1020) var; /* max rev leading allowed */ 94 dcl long_sw bit (1); 95 dcl max_level fixed bin; 96 dcl max_revlead fixed bin (31) static; 97 dcl font_media (36) fixed bin; /* media needed by the fonts */ 98 dcl media_size fixed bin (31); /* point size in media */ 99 dcl medselstr char (32) var; /* emitted medsel string */ 100 dcl need_font fixed bin; /* needed font */ 101 dcl need_devfnt fixed bin; /* device font for needed font */ 102 dcl need_size fixed bin (31); /* needed size */ 103 dcl NULs char (4) var static options (constant) init (""); 104 dcl pref_sw bit (1); /* effective preface switch */ 105 dcl quad bit (6); /* alignment flags */ 106 dcl runout fixed bin; /* # NLs for page runout */ 107 dcl SHIFT_OP bit (1) static options (constant) init ("0"b); 108 /* device status info */ 109 dcl stat_blk (100) fixed bin (35) static init ((100) 0); 110 /* The developer of a device writer */ 111 /* may use this block (by defining a */ 112 /* based overlay) to hold any */ 113 /* necessary device status info. */ 114 /* Note that the first word is */ 115 /* initialized to -1 for each page, */ 116 /* thus any overlay should keep it */ 117 /* fixed bin (35) and assure that */ 118 /* all special device modes are */ 119 /* reset at the end of each page. */ 120 dcl text_sw bit (1); 121 dcl text_width fixed bin (31); /* local text width */ 122 dcl tchr char (1); /* local text char */ 123 dcl THIN_width fixed bin (31); /* width of THIN */ 124 dcl tstr_ptr ptr; /* text string */ 125 dcl 1 tstr aligned based (tstr_ptr), 126 2 open bit (1) unal, /* line has something */ 127 2 white bit (1) unal, /* line is white */ 128 2 MBZ bit (16) unal, 129 2 devfnt fixed bin unal, /* starting device font for line */ 130 2 last_cr fixed bin unal, /* position of last CR or NL */ 131 2 font fixed bin unal, /* font being processed */ 132 2 xpos fixed bin (31), /* X position */ 133 2 ypos fixed bin (31), /* Y position */ 134 2 w fixed bin (31), /* width of str */ 135 2 str_ptr ptr; 136 dcl tstr_line char (2048) var based (tstr.str_ptr); 137 dcl txtlen fixed bin; /* length of txtstr */ 138 dcl unstart fixed bin (31); /* start of underscore */ 139 dcl unstring bit (1) static; /* underscoring is active */ 140 dcl VECTOR_OP bit (1) static options (constant) init ("1"b); 141 dcl window_area_ptr /* points to current window area seg */ 142 ptr static init (null); 143 dcl window_bottom fixed bin static init (0); 144 dcl window_level fixed bin; 145 dcl window_ptr ptr static init (null); 146 dcl 1 window (window_top:window_bottom) aligned like tstr 147 based (window_ptr); 148 dcl window_top fixed bin static init (0); 149 dcl word char (4090) var; /* word accumulator */ 150 dcl wrdwidth fixed bin (31); /* word width in MPTS */ 151 dcl Xmov fixed bin (31); /* horizontal CTL movement */ 152 dcl Xmptstrk fixed bin (31); /* horizontal mpt -> stroke conv */ 153 dcl Xpixel fixed bin (31); /* horizontal pixel size */ 154 dcl Xpos fixed bin (31); /* current horizontal position */ 155 dcl Xspc fixed bin (31); /* horizontal movement */ 156 dcl Xmpts fixed bin (31); /* temp horiz value */ 157 dcl Yinit fixed bin (31); /* initial page depth */ 158 dcl Ymov fixed bin (31); /* vertical CTL movement */ 159 dcl Ypixel fixed bin (31); /* vertical pixel size */ 160 dcl Ypos fixed bin (31); /* current vertical position */ 161 dcl Yspc fixed bin (31); /* vertical movement */ 162 dcl Ympts fixed bin (31); /* temp vert value */ 163 164 dcl (addr, bin, divide, fixed, index, length, max, min, mod, null, pointer, 165 size, string, substr, unspec) 166 builtin; 167 dcl (cleanup, comp_abort, null_font_char, overlength_line, zero_font_index) 168 condition; 169 170 dcl error_table_$fatal_error 171 fixed bin (35) ext static; 172 dcl error_table_$unimplemented_version 173 fixed bin (35) ext static; 174 dcl comp_error_table_$limitation 175 fixed bin (35) ext static; 176 dcl comp_error_table_$program_error 177 fixed bin (35) ext static; 178 179 dcl ioa_$rs entry options (variable); 180 dcl ioa_$rsnnl entry options (variable); 181 dcl translator_temp_$get_segment 182 entry (char (*) aligned, ptr, fixed bin (35)); 183 dcl translator_temp_$release_all_segments 184 entry (ptr, fixed bin (35)); 185 /**** &dcls FOR x9700 */ 186 dcl comment_ptr ptr; /* the DJDE string */ 187 dcl 1 comment aligned based (comment_ptr), 188 2 len fixed bin (21), 189 2 str char (0 refer (comment.len)) unaligned; 190 dcl FNL char (2) /* full newline */ 191 static options (constant) initial ("1 192 "); 193 dcl hot_chars char (9) static options (constant) 194 init (""); 195 dcl inf_media bit (36); /* inferior fonts */ 196 dcl MAX_STR fixed bin static options (constant) init (130); 197 dcl PENDOWN char (1) static options (constant) init ("_"); 198 dcl PENUP char (1) static options (constant) init (""); 199 dcl QNL char (2) /* quarter newline */ 200 static options (constant) initial ("2 201 "); 202 dcl sup_media bit (36); /* superior fonts */ 203 /**** END x9700 */ 204 205 code = 0; /* clear error code */ 206 207 if func = 3 /* clean up */ 208 then 209 do; 210 /**** &cleanup FOR x9700 */ 211 /**** NO CODE *//**** END x9700 */ 212 return; 213 end; 214 215 if func = 1 /* new page */ 216 then 217 do; 218 init: 219 entry; /* called by pco */ 220 stat_blk (*) = 0; 221 stat_blk (1) = -1; 222 dev_stat_ptr = addr (stat_blk); 223 return; 224 end; 225 226 if func = 2 /* new input file */ 227 then 228 do; 229 myself: /* check structure versions */ 230 const.outproc_ptr = codeptr (myself); 231 if shared.version ^= shared_version 232 | option.version ^= option_version | page.version ^= page_version 233 | comp_dvid.version ^= comp_dvid_version 234 then 235 do; 236 code = error_table_$unimplemented_version; 237 if db_sw 238 then 239 do; 240 call ioa_ (" shared.version=^i", shared.version); 241 call ioa_ (" shared_version=^i", shared_version); 242 call ioa_ (" option.version=^i", option.version); 243 call ioa_ (" option_version=^i", option_version); 244 call ioa_ (" page.version=^i", page.version); 245 call ioa_ (" page_version=^i", page_version); 246 call ioa_ (" dvid.version=^i", comp_dvid.version); 247 call ioa_ (" dvid_version=^i", comp_dvid_version); 248 end; 249 return; 250 end; 251 252 bad_chrs = ""; 253 unstring = "0"b; 254 first_page = "1"b; 255 /**** &file_init FOR x9700 */ 256 max_revlead = -12000; /* back up only 1 line */ 257 /**** END x9700 */ 258 return; 259 end; /**/ 260 /* set debug switches */ 261 debug_sw, detail_sw, long_sw, pref_sw, text_sw = "0"b; 262 debug_sw = (shared.bug_mode | db_sw); 263 detail_sw = debug_sw & dt_sw; 264 long_sw = debug_sw & lg_sw; 265 text_sw = debug_sw & tx_sw; 266 pref_sw = debug_sw & pf_sw; 267 268 if func = 4 /* prepare epilogue */ 269 then 270 do; 271 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 272 unspec (page_record) = "0"b; 273 /**** &epilogue FOR x9700 */ 274 /**** NO CODE *//**** END x9700 */ 275 return; 276 end; 277 278 /* func = 0 build page */ 279 line_window_size = divide (12000, comp_dvt.min_lead, 17, 0); 280 window_top = -line_window_size; 281 window_bottom = divide (page.parms.length, comp_dvt.min_lead, 17, 0); 282 283 if debug_sw 284 then call 285 ioa_ ("x9700_writer_(^a): (pag=^a lct=^d lvl=^d:^d)", 286 option.device, page.hdr.pageno, page_image.count, window_top, 287 window_bottom); 288 289 if page_image.count = 0 290 then 291 do; 292 call 293 comp_report_ (4, 0, "No output lines on page " || page.hdr.pageno, 294 addr (ctl.info), ""); 295 return; 296 end; 297 298 on cleanup call release_window; /**/ 299 /* preset local stuff */ 300 auto_lead, font_in, need_devfnt, media_size, font_size, Xpos, Ypos, Yinit, 301 font_media (*) = 0; 302 Xpixel = comp_dvt.min_WS; 303 Ypixel = comp_dvt.min_lead; 304 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 305 /**** &page_init FOR x9700 */ 306 /**** NO CODE *//**** END DEVICE x9700 */ 307 rescan_page: /* (re)starting page */ 308 /* get storage for output image */ 309 call translator_temp_$get_segment ("compose", window_area_ptr, ercd); 310 if ercd ^= 0 311 then 312 do; 313 call com_err_ (ercd, "compose", "Defining an output window area."); 314 signal cleanup; 315 return; 316 end; 317 318 Xspc, Yspc = 0; 319 320 window_ptr = allocate (window_area_ptr, 321 (window_bottom - window_top + 1) * size (tstr)); 322 unspec (window) = "0"b; 323 window.str_ptr = null; 324 unspec (page_record) = "0"b; 325 first_line = "1"b; 326 window_level, max_level = 0; 327 tstr_ptr = addr (window (0)); 328 if tstr.str_ptr = null 329 then tstr.str_ptr = allocate (window_area_ptr, 1024); 330 tstr_line = ""; 331 tstr.devfnt = 0; 332 333 /**** &image_init FOR x9700 */ 334 if first_page 335 then 336 do; /* emit DJDE */ 337 window_level, max_level = 0; 338 tstr_ptr = addr (window (0)); 339 tstr.str_ptr = allocate (window_area_ptr, 1024); 340 medselstr = ""; 341 comment_ptr = pointer (const.devptr, comp_dvt.comment_r); 342 call put_str ((comment.str), 0); 343 call put_; 344 tstr_line = ""; /* clean up */ 345 tstr.open = "0"b; 346 first_page = "0"b; 347 end; 348 349 if comp_dvt.pdl_max > 792000 /* Center 11" frob on longer page */ 350 then if page.length <= comp_dvt.pdl_max 351 then /* This is an idiosyncracy in the */ 352 do; /* way that the 9700 handles */ 353 /* vertical space; it thinks that a */ 354 /* page is 825 pts long when its */ 355 /* actually only 792 pts. Thus, we */ 356 /* try to center when the real page */ 357 if page.length > 792000 /* length is between 792 and 825 */ 358 then Yinit = 359 -round (divide (comp_dvt.pdl_max - page.length, 2 * Ypixel, 31, 1), 0); 360 else Yinit = -round (divide (comp_dvt.pdl_max - 792000, 2 * Ypixel, 31, 1), 0); 361 end; 362 363 /**** END x9700 */ 364 if debug_sw 365 then call 366 ioa_ (":iln fn/ln ch/gp lmarg rmarg width depth" 367 || " lead s med fnt sz"); 368 369 image_loop: 370 do ilin = 1 to page_image.count; /* for all given image lines */ 371 debug_sw, detail_sw, long_sw, text_sw = "0"b; 372 fonts_done, fonts_needed ="0"b; 373 Lmarg, col_width, text_width = 0; 374 375 if (shared.bug_mode | db_sw) 376 then if ilin >= db_line 377 then 378 do; 379 debug_sw = "1"b; 380 if dt_sw 381 then detail_sw = "1"b; 382 else detail_sw = "0"b; 383 if lg_sw 384 then long_sw = "1"b; 385 else long_sw = "0"b; 386 if tx_sw 387 then text_sw = "1"b; 388 else text_sw = "0"b; 389 end; /**/ 390 /* set text pointer */ 391 txtstrptr = page_image.line (ilin).ptr; 392 loctxt = txtstr; /* copy txtstr */ 393 txtlen = length (txtstr); /* and record length */ 394 395 trim_font: /* trim trailing font change */ 396 if txtlen > 7 397 then if substr (loctxt, txtlen - 7, 2) = "À" 398 then 399 do; 400 txtlen = txtlen - 8; 401 goto trim_font; 402 end; 403 404 lineinfoptr = addr (page_image.line (ilin).info); 405 quad = page_image.line (ilin).quad; 406 407 if debug_sw 408 then call blat; 409 410 Yspc = divide (page_image.line (ilin).depth, Ypixel, 31, 0) - Ypos - Yinit; 411 if ilin > 1 412 then Yspc = Yspc - auto_lead; /* account for the "free" amount */ 413 414 need_font = page_image.line (ilin).lfnt; 415 need_size = page_image.line (ilin).lsize; 416 417 if txtlen > 0 418 then 419 do; 420 421 if font_in ^= need_font 422 then call set_font (need_font, need_size); 423 424 if page_image.line (ilin).lmarg > 0 425 then Lmarg = divide (page_image.line (ilin).lmarg, Xmptstrk, 31, 0); 426 if page_image.line (ilin).net > 0 427 then col_width = divide (page_image.line (ilin).net, Xmptstrk, 31, 0); 428 if page_image.line (ilin).width > 0 429 then text_width = divide (page_image.line (ilin).width, Xmptstrk, 31, 0); 430 /**** &line_init FOR x9700 */ 431 sup_media, inf_media = "0"b;/* clear font control bits */ 432 /**** END x9700 */ 433 if quad = quadr | quad = quadc 434 then /* if setting right */ 435 do; /* or center */ 436 Xspc = col_width - text_width; 437 if quad = quadc /* if centering, take half */ 438 then Xspc = round (divide (max (Xspc, 0), 2, 31, 1), 0); 439 Lmarg = Lmarg + Xspc; 440 end; /**/ 441 /* if justifying and device doesnt */ 442 if quad = just & ^comp_dvt.justifying 443 /* and there are some gaps */ 444 & page_image.line (ilin).gaps > 0 445 then call pad_block; 446 447 rescan_line: 448 if detail_sw 449 then call 450 ioa_ ("^5x(rescan_line: Lmarg=^f lvl=^d)", 451 show (Lmarg * Xmptstrk, 12000), window_level); 452 453 word = ""; /* clear word accumulator */ 454 wrdwidth = 0; 455 456 if Yspc ^= 0 457 then call plot (SHIFT_OP, 0, Ypos + Yspc); 458 Yspc = 0; /* initial movement */ 459 Xspc = Lmarg - Xpos; 460 461 if font_in ^= page_image.line (ilin).lfnt 462 | font_size ^= page_image.line (ilin).lsize 463 then call set_font (page_image.line (ilin).lfnt, 464 page_image.line (ilin).lsize); 465 466 char_loop: /* process each character */ 467 do ichr = 1 to txtlen; 468 tchr = substr (loctxt, ichr, 1); 469 470 if tchr ^= DC1 /* do any font chars */ 471 then 472 font_char: 473 do; 474 char_ndx = rank (tchr); /* fnttbl index for text char */ 475 /* -> replacement */ 476 repl_str_ptr = fnttbl.replptr (char_ndx); 477 /* if there's no replacement */ 478 if repl_str_ptr = null () 479 then 480 do; /* if not already reported */ 481 if index (bad_chrs, tchr) = 0 482 then 483 do; /* add to bad chars and report */ 484 bad_chrs = bad_chrs || tchr; 485 call 486 comp_report_$ctlstr (2, 487 comp_error_table_$program_error, lineinfoptr, loctxt, 488 "Font ^a, no replacement for ""^a"" (\^.3b)", 489 fnttbl.entry.name, tchr, unspec (tchr)); 490 491 if abrt_sw /* abort if desired */ 492 then signal null_font_char; 493 end; 494 goto end_chars; /* skip rest of line */ 495 end; /**/ 496 /* copy fnttbl data */ 497 fcdevfnt = fnttbl.devfnt (char_ndx); 498 /* white space? */ 499 if fnttbl.white (char_ndx) 500 then 501 do; 502 if word ^= "" /* flush current word */ 503 then 504 do; 505 call put_str (word, wrdwidth); 506 wrdwidth = 0; 507 tstr.white = "0"b; 508 end; 509 510 fcwidth = fnttbl.units (char_ndx); 511 Xspc = Xspc + fcwidth; 512 513 if text_sw & ^pref_sw 514 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^1a"" WS)", 515 fcdevfnt, fcwidth, 516 show (fcwidth * Xmptstrk, 12000), 517 show ((Xpos + Xspc) * Xmptstrk, 12000), 518 comp_util_$display ((tchr), 0, "0"b)); 519 end; /**/ 520 /* if cant put char */ 521 else if fcdevfnt ^= tstr.devfnt & tstr.devfnt ^= 0 522 then 523 do; 524 if word ^= "" /* flush current word */ 525 then 526 do; 527 call put_str (word, wrdwidth); 528 wrdwidth = 0; 529 tstr.white = "0"b; 530 end; /**/ 531 /* ..treat like whitespace */ 532 fcwidth = fnttbl.units (char_ndx); 533 Xspc = Xspc + fcwidth; 534 535 if text_sw & ^pref_sw 536 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^a"" ^^font)", 537 fcdevfnt, fcwidth, 538 show (fcwidth * Xmptstrk, 12000), 539 show ((Xpos + Xspc + wrdwidth) * Xmptstrk, 540 12000), comp_util_$display ((tchr), 0, "0"b)); 541 end; 542 543 else /* not white space */ 544 do; /* emit any accumulated motion */ 545 if Yspc ^= 0 | (Xspc ^= 0 & txtlen ^= 0) 546 then call plot (SHIFT_OP, Xpos + Xspc, Ypos + Yspc); 547 Xspc, Yspc = 0; 548 if tstr.devfnt = 0 549 then call set_media (font_in, fcdevfnt); 550 /**** &process_text FOR x9700 */ 551 if tstr_line = "" 552 then call put_str ((medselstr), 0); 553 554 /**** END x9700 */ 555 word = word || replstr; 556 fcwidth = fnttbl.units (char_ndx); 557 wrdwidth = wrdwidth + fcwidth; 558 559 if text_sw & ^pref_sw 560 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^a"" -> ""^a^va"")", 561 fcdevfnt, fcwidth, 562 show (fcwidth * Xmptstrk, 12000), 563 show ((Xpos + Xspc + wrdwidth) * Xmptstrk, 564 12000), comp_util_$display ((tchr), 0, "0"b), 565 comp_util_$display (replstr, 0, "0"b), 566 repl_str.len - length (rtrim (replstr)), 567 " "); 568 end; 569 end font_char; 570 571 else 572 ctl_char: 573 do; /* its a DC1 control string */ 574 if word ^= "" /* flush current word */ 575 then 576 do; 577 call put_str (word, wrdwidth); 578 wrdwidth = 0; 579 tstr.white = "0"b; 580 end; 581 582 DCxx_p = /* set control string overlay ptr */ 583 addr (substr (loctxt, ichr, 1)); 584 /* for device/writer controls */ 585 if dcxx.ctl.type = "000"b 586 then 587 do; 588 (nostrg): if long_sw 589 then call 590 ioa_ ("^5x(CTL: ^[wait^]^[unstrt^]^[unstop^]" 591 || " ^a^[ Xpos=^f^;^s^])", (dcfs.type = type_wait), 592 (dcfs.type = type_unstart), 593 (dcfs.type = type_unstop), 594 comp_util_$display 595 ((substr (loctxt, ichr, dcxx.leng + 3)), 0, "0"b), 596 (dcfs.type = type_unstart) 597 | (dcfs.type = type_unstop), 598 show ((Xpos + Xspc) * Xmptstrk, 12000)); 599 /* start underscore? */ 600 if dcfs.type = type_unstart 601 then 602 do; 603 unstart = max (Xpos + Xspc, Lmarg); 604 unstring = "1"b; 605 end; /**/ 606 /* stop underscore? */ 607 if dcfs.type = type_unstop 608 then 609 do; /* underscoring active? */ 610 if unstring & tstr_line ^= "" 611 & 612 ^(page_image.line (ilin).cbar 613 | page_image.line (ilin).mrgtxt) 614 then 615 do; 616 call put_uns; 617 unstring = "0"b; 618 end; 619 end; 620 end; /**/ 621 /* a font change? */ 622 else if dcfs.type = type_font 623 then 624 do; 625 if long_sw 626 then 627 do; 628 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 629 call ioa_ ("^5x(CTL: font ^a)", 630 comp_util_$display (debug_str, 0, "0"b)); 631 end; 632 633 need_font = dcfs.f; 634 need_size = dcfs.p; 635 call set_font (need_font, need_size); 636 end; /**/ 637 /* a literal? */ 638 else if dcfs.type = type_lit 639 then 640 do; 641 call put_str (substr (loctxt, ichr + 3, dcxx.leng), 0); 642 643 if long_sw 644 then 645 do; 646 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 647 call ioa_ ("^5x(CTL: literal ^a)", 648 comp_util_$display (debug_str, 0, "0"b)); 649 end; 650 end; 651 652 else /* its either a shift or a vector */ 653 do; /* fetch a short X */ 654 if (dcxx.Xctl = "01"b) 655 then Xmpts = dcshort_val.v1; 656 /* fetch a long X */ 657 else if (dcxx.Xctl = "10"b) 658 then Xmpts = dclong_val.v1; 659 else Xmpts = 0; /* no X movement */ 660 661 if (dcxx.Xctl ^= "00"b) 662 then /* if X is given */ 663 do; /* then Y is in v2 */ 664 /* fetch a short Y */ 665 if (dcxx.Yctl = "01"b) 666 then Ympts = dcshort_val.v2; 667 /* fetch a long Y */ 668 else if (dcxx.Yctl = "10"b) 669 then Ympts = dclong_val.v2; 670 else Ympts = 0; 671 end; 672 673 else /* no X was given */ 674 do; /* fetch a short Y */ 675 if (dcxx.Yctl = "01"b) 676 then Ympts = dcshort_val.v1; 677 /* fetch a long Y */ 678 else if (dcxx.Yctl = "10"b) 679 then Ympts = dclong_val.v1; 680 else Ympts = 0; 681 end; /**/ 682 /* shift */ 683 if dcxx.type = "100"b 684 then 685 do; 686 if font_in = 0 687 then call set_font (need_font, need_size); 688 689 Xmov = sign (Xmpts) 690 * 691 round (divide (abs (Xmpts) - 4, Xmptstrk, 31, 1), 0); 692 Xspc = Xspc + Xmov; 693 694 Ymov = sign (Ympts) 695 * 696 divide (abs (Ympts), Ypixel, 17, 0); 697 Yspc = Yspc + Ymov; 698 699 if long_sw 700 then 701 do; 702 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 703 call ioa_ ("^5x(CTL: shift ^f ^f (^f ^f) ^a)", 704 show (Xmpts, 12000), show (Ympts, 12000), 705 show (Xspc * Xmptstrk, 12000), show (Yspc,12000), 706 comp_util_$display (debug_str, 0, "0"b)); 707 end; 708 end; 709 710 else 711 do; /* not shift, it must be vector */ 712 if Xspc ^= 0 | Xmpts > 0 713 then if font_in ^= need_font | font_size ^= need_size 714 then call set_font (need_font, need_size); 715 /* need to position first? */ 716 if Xspc ^= 0 | Yspc ^= 0 717 then call plot (SHIFT_OP, Xpos + Xspc, Ypos + Yspc); 718 Xspc, Yspc = 0; 719 720 Xspc = divide (Xmpts, Xmptstrk, 31, 0); 721 Yspc = divide (Ympts, Ypixel, 31, 0); 722 723 if long_sw 724 then 725 do; 726 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 727 call ioa_ ("^5x(CTL: vector ^f ^f ^a)", 728 show (Xmpts, 12000), show (Ympts, 12000), 729 comp_util_$display (debug_str, 0, "0"b)); 730 end; 731 call plot (VECTOR_OP, Xpos + Xspc, Ypos + Yspc); 732 Xspc, Yspc = 0; 733 end; 734 end; /**/ 735 /* move to last ctl char */ 736 ichr = ichr + dcxx.leng + 2; 737 end ctl_char; /* end of control sequence loop */ 738 end_chars: 739 end char_loop; 740 741 if word ^= "" /* flush last word */ 742 then 743 do; 744 call put_str (word, wrdwidth); 745 wrdwidth = 0; 746 tstr.white = "0"b; 747 end; 748 749 if unstring /* underscoring active? */ 750 & ^(page_image.line (ilin).cbar | page_image.line (ilin).mrgtxt) 751 then call put_uns; 752 /**** &line_finish FOR x9700 */ 753 if tstr.devfnt > 0 /* if device font has been set */ 754 then 755 do; /* show this one complete */ 756 substr (fonts_done, tstr.font, 1) = "1"b; 757 758 if tstr_line = medselstr /* empty line? */ 759 then 760 do; 761 tstr_line = ""; 762 tstr.devfnt = 0; 763 end; /**/ 764 /* is it a superior font? */ 765 if substr (sup_media, tstr.font, 1) 766 then call move_tstr (1); /**/ 767 /* is it a inferior font? */ 768 else if substr (inf_media, tstr.font, 1) 769 then call move_tstr (-1); 770 end; /**/ 771 /* look for another */ 772 need_font = index (fonts_needed & ^fonts_done, "1"b); 773 774 if need_font > 0 /* if another is needed */ 775 then 776 do; 777 if tstr.font = 0 778 then 779 do; 780 call set_font (need_font, media_size); 781 call set_media (font_in, font_media (font_in)); 782 goto rescan_line; 783 end; 784 785 if font_media (tstr.font) ^= font_media (need_font) 786 then 787 do; /* trim trailing media select */ 788 if length (tstr_line) > 1 789 then if index (substr (tstr_line, length (tstr_line) - 1), 790 CR || medselstr) = 1 791 then tstr_line = rtrim (tstr_line, CR || medselstr); 792 /* set font right away */ 793 call set_font (need_font, media_size); 794 call set_media (font_in, font_media (font_in)); 795 goto rescan_line; 796 end; 797 end; /**/ 798 /* trim trailing media select */ 799 if length (tstr_line) > 1 800 then if index (substr (tstr_line, length (tstr_line) - 1), 801 CR || medselstr) = 1 802 then tstr_line = rtrim (tstr_line, CR || medselstr); 803 804 /**** END x9700 */ 805 if detail_sw 806 then 807 do; 808 call ioa_ ("^5x(line_finish: tstr lvl=^d ^[^^^]opn Y=^f X=^f ln=^d)", 809 window_level, ^(tstr.open), show (Ypos * Ypixel, 12000), 810 show (Xpos * Xmptstrk, 12000), length (tstr_line)); 811 if tstr.open 812 then call ioa_ ("""^a^va""", 813 comp_util_$display (rtrim (tstr_line), 0, "0"b), 814 length (tstr_line) - length (rtrim (tstr_line)), " "); 815 end; 816 end; 817 818 end image_loop; 819 820 finish_page: 821 if detail_sw 822 then call ioa_ ("^5x(finish_page:)"); 823 /* add any trailing lead */ 824 if page_image.line (page_image.count).white 825 then call plot (SHIFT_OP, 0, Ypos + 826 divide (page_image.line (page_image.count).lead, Ypixel, 31, 0)); 827 call put_; /* flush output image */ 828 829 call release_window; /* discard image just put */ 830 831 if ^option.galley_opt 832 then 833 do; 834 if comp_dvt.endpage ^= "0"b /* if FF is defined, then */ 835 then /* replace last NL with it */ 836 substr (page_record.text, page_record.leng, 1) = 837 byte (bin (comp_dvt.endpage)); 838 /* else run out the page with NLs */ 839 else if Ypos < divide (page.parms.length, Ypixel, 31, 0) 840 then 841 do; 842 runout = divide (page.parms.length, 12000, 31, 0) - 1 - 843 divide (Ypos, line_window_size, 31, 0) - bin (option.stop_opt); 844 page_record.leng = page_record.leng + runout; 845 substr (page_record.text, page_record.leng - runout + 1, 846 runout) = copy (NL, runout); 847 end; /**/ 848 /**** &page_finish FOR x9700 */ 849 /**** NO CODE */ 850 /**** END x9700 */ 851 end; 852 853 page_record.nextref = "0"b; /* show nothing follows */ 854 855 return_: 856 if debug_sw 857 then call ioa_ (" (x9700_writer_)"); 858 return; 859 860 footproc: 861 entry (footref, ptr); 862 863 /* PARAMETERS */ 864 /* actual reference string */ 865 dcl footref (3) char (*) var; 866 dcl ptr ptr; /* -> comp_dvt */ 867 /* &foot_proc for x9700 */ 868 footref (1) = ""; 869 footref (3) = ""; 870 if (shared.bug_mode | db_sw) 871 then do; 872 call ioa_ ("x9700_writer_$footproc: ^a", 873 comp_util_$display (footref (1) || footref (2) || footref (3), 0, 874 "0"b)); 875 end; 876 return; 877 878 879 /* This routine returns a printable interpretation of a native device string */ 880 881 dcl x9700_writer_$display entry (char (*) var, fixed bin (24), 882 bit (1)) returns (char (*) var); 883 884 display: 885 entry (dtext, dlen, noerr) returns (char (*) var); 886 887 /* PARAMETERS */ 888 889 dcl dtext char (*) var; /* string to be displayed */ 890 dcl dlen fixed bin (24); /* chars scanned by this call */ 891 dcl noerr bit (1); /* 1= dont print error messages */ 892 893 /* LOCAL STORAGE */ 894 895 dcl ch char (1); /* extracted text char */ 896 dcl ct fixed bin; /* number of duplicate chars */ 897 dcl dstr char (1020) var; /* working string */ 898 dcl rtn_str char (16384) var;/* return string */ 899 900 if dev_stat_ptr = null () 901 then dev_stat_ptr = addr (stat_blk); 902 903 if stat_blk (1) ^= -1 /* check status block */ 904 then 905 do; 906 stat_blk (*) = 0; 907 stat_blk (1) = -1; 908 end; 909 910 rtn_str = ""; /* clear return string */ 911 ct = 0; 912 913 ch = substr (dtext, 1, 1); /* extract a char */ 914 915 if ch = THIN 916 then 917 do; 918 ct = verify (dtext, THIN); /* how many? */ 919 if ct = 0 /* all the rest */ 920 then ct = length (dtext); 921 else ct = ct - 1; 922 923 if ct > 1 /* if more than one */ 924 then call ioa_$rsnnl ("", dstr, 0, ct); 925 else dstr = ""; 926 927 rtn_str = rtn_str || dstr; 928 end; 929 930 else if ch = DEVIT 931 then do; 932 ct = verify (dtext, DEVIT); /* how many? */ 933 if ct = 0 /* all the rest */ 934 then ct = length (dtext); 935 else ct = ct - 1; 936 937 if ct > 1 /* if more than one */ 938 then call ioa_$rsnnl ("", dstr, 0, ct); 939 else dstr = ""; 940 941 rtn_str = rtn_str || dstr; 942 end; 943 944 else 945 do; 946 device_display: /* &display FOR DEVICE x9700 */ 947 goto rtn (index (hot_chars, ch)); 948 949 rtn (1): /* \020 = EM- */ 950 ct = verify (dtext, ch); /* how many? */ 951 if ct = 0 /* all the rest */ 952 then ct = length (dtext); 953 else ct = ct - 1; 954 955 if ct > 1 /* if more than one */ 956 then call ioa_$rsnnl ("", dstr, 0, ct); 957 else dstr = ""; 958 959 rtn_str = rtn_str || dstr; 960 goto rtn_end; 961 962 rtn (3): /* \022 = HUGE */ 963 ct = verify (dtext, ch); /* how many? */ 964 if ct = 0 /* all the rest */ 965 then ct = length (dtext); 966 else ct = ct - 1; 967 968 if ct > 1 /* if more than one */ 969 then call ioa_$rsnnl ("", dstr, 0, ct); 970 else dstr = ""; 971 972 rtn_str = rtn_str || dstr; 973 goto rtn_end; 974 975 rtn (4): /* \023 = EM */ 976 ct = verify (dtext, ch); /* how many? */ 977 if ct = 0 /* all the rest */ 978 then ct = length (dtext); 979 else ct = ct - 1; 980 981 if ct > 1 /* if more than one */ 982 then call ioa_$rsnnl ("", dstr, 0, ct); 983 else dstr = ""; 984 985 rtn_str = rtn_str || dstr; 986 goto rtn_end; 987 988 rtn (5): /* 21 (\024) THICK */ 989 /* how many? */ 990 ct = verify (dtext, ch); 991 if ct = 0 /* all the rest */ 992 then ct = length (dtext); 993 else ct = ct - 1; 994 995 if ct > 1 /* if more than one */ 996 then call ioa_$rsnnl ("", dstr, 0, ct); 997 else dstr = ""; 998 999 rtn_str = rtn_str || dstr; 1000 goto rtn_end; 1001 1002 rtn (6): /* 22 (\025) MEDIUM */ 1003 /* how many? */ 1004 ct = verify (dtext, ch); 1005 if ct = 0 /* all the rest */ 1006 then ct = length (dtext); 1007 else ct = ct - 1; 1008 1009 if ct > 1 /* if more than one */ 1010 then call ioa_$rsnnl ("", dstr, 0, ct); 1011 else dstr = ""; 1012 1013 rtn_str = rtn_str || dstr; 1014 goto rtn_end; 1015 1016 rtn (7): /* 23 (\026) THIN */ 1017 ct = verify (dtext, ch); 1018 if ct = 0 1019 then ct = length (dtext); 1020 else ct = ct - 1; 1021 1022 if ct > 1 1023 then call ioa_$rsnnl ("", dstr, 0, ct); 1024 else dstr = ""; 1025 1026 rtn_str = rtn_str || dstr; 1027 goto rtn_end; 1028 1029 rtn (8): /* 24 (\027) HAIR */ 1030 ct = verify (dtext, ch); 1031 if ct = 0 /* all the rest */ 1032 then ct = length (dtext); 1033 else ct = ct - 1; 1034 1035 if ct > 1 /* if more than one */ 1036 then call ioa_$rsnnl ("", dstr, 0, ct); 1037 else dstr = ""; 1038 1039 rtn_str = rtn_str || dstr; 1040 goto rtn_end; 1041 1042 rtn (9): /* 25 (\030) STROKE */ 1043 ct = verify (dtext, ch); 1044 if ct = 0 /* all the rest */ 1045 then ct = length (dtext); 1046 else ct = ct - 1; 1047 1048 if ct > 1 /* if more than one */ 1049 then call ioa_$rsnnl ("", dstr, 0, ct); 1050 else dstr = ""; 1051 1052 rtn_str = rtn_str || dstr; 1053 goto rtn_end; 1054 1055 rtn (0): /* 0 not hot */ 1056 rtn (2): /* \021 = interfers with DC1 ctls */ 1057 ct = 0; 1058 rtn_end: 1059 /**/ 1060 /* END DEVICE x9700 */ 1061 end; 1062 1063 disp_ret: 1064 dlen = ct; 1065 1066 return (rtn_str); /* end of display */ 1067 1068 artproc: entry (); /**/ 1069 /* &art_proc for x9700 */ 1070 /**** NO CODE */return; 1071 1072 blat: proc; 1073 1074 dcl blatstr char (1020) var; 1075 1076 call ioa_$nnl (":^3d^3d/^d^12t^4d/^i^18t^5(^8f^)" || 1077 " ^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]^[L^]^60t^3i ^6a ^f^/^4x", ilin, 1078 page_image.line (ilin).fileno, page_image.line (ilin).lineno, 1079 txtlen, page_image.line (ilin).gaps, 1080 show (page_image.line (ilin).lmarg, 12000), 1081 show (page_image.line (ilin).rmarg, 12000), 1082 show (page_image.line (ilin).width, 12000), 1083 show (page_image.line (ilin).depth, 12000), 1084 show (page_image.line (ilin).lead, 12000), 1085 quad & quadi, quad & quado, quad & quadl, 1086 quad & quadc, quad & quadr, quad & just, (quad = "0"b), 1087 page_image.line (ilin).lfnt, 1088 fnttbldata.ptr (page_image.line (ilin).lfnt) -> fnttbl.entry.name, 1089 show (fnttbldata.ptr (page_image.line (ilin).lfnt) -> fnttbl.entry.size, 1000), 1090 txtlen); 1091 1092 blatstr = comp_util_$display (substr (loctxt, 1, txtlen), 0, "0"b); 1093 call ioa_ ("""^a^va""", blatstr, 1094 length (blatstr) - length (rtrim (blatstr)), " "); 1095 end blat; 1096 1097 release_window: 1098 proc; 1099 1100 call translator_temp_$release_all_segments (window_area_ptr, 0); 1101 1102 end release_window; 1103 1104 move_tstr: /* move tstr ptr to new window level */ 1105 proc (incr); 1106 1107 /* PARAMETERS */ 1108 1109 dcl incr fixed bin (31); /* amount to move */ 1110 1111 if detail_sw 1112 then call ioa_ ("^-(move_tstr: ^d -> ^d)", window_level, 1113 window_level + incr); 1114 1115 window_level = window_level + incr; 1116 1117 max_level = max (max_level, window_level); 1118 tstr_ptr = addr (window (window_level)); 1119 1120 tstr.ypos, Ypos = Ypos + incr; 1121 Xpos = tstr.xpos; 1122 tstr.open = "1"b; 1123 1124 if tstr.str_ptr = null 1125 then tstr.str_ptr = allocate (window_area_ptr, 1024); 1126 1127 end move_tstr; 1128 1129 show: 1130 proc (datum, scale) returns (fixed dec (11, 3)); 1131 dcl datum fixed bin (31); 1132 dcl scale fixed bin (31); 1133 1134 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 1135 end show; 1136 1137 plot: 1138 proc (PLOT_OP, new_xpos, new_ypos); 1139 1140 /* This routine moves the current position to (new_xpos,new_ypos), */ 1141 /* plotting or shifting according to the value of PLOT_OP. */ 1142 1143 /* PARAMETERS */ 1144 1145 dcl PLOT_OP bit (1); /* 0-shift; 1-vector */ 1146 dcl new_xpos fixed bin (31); /* needed horizontal position */ 1147 dcl new_ypos fixed bin (31); /* needed vertical position */ 1148 1149 /* LOCAL STORAGE */ 1150 1151 dcl copystr char (2048) var; 1152 dcl exit_str char (32) var; 1153 dcl old_xpos fixed bin (31); 1154 dcl old_ypos fixed bin (31); 1155 dcl penctl char (6) var; /* pen control string */ 1156 dcl pltstr char (4090) var; 1157 dcl pltwidth fixed bin (31); 1158 dcl xii fixed bin; /* working value */ 1159 dcl xmove fixed bin (31); /* X movement */ 1160 dcl ymove fixed bin (31); /* Y movement */ 1161 1162 if new_xpos = Xpos & new_ypos = Ypos 1163 then return; 1164 1165 xmove, ymove, pltwidth = 0; 1166 pltstr = ""; 1167 1168 old_xpos = Xpos; /* case a VSFT changes Xpos */ 1169 old_ypos = Ypos; 1170 xmove = new_xpos - Xpos; 1171 ymove = new_ypos - Ypos; 1172 1173 if detail_sw 1174 then call 1175 ioa_ ("^5xplot: (^[V^;S^] ^f/^f -> ^f/^f = ^f/^f)", PLOT_OP, 1176 show (Xpos * Xmptstrk, 12000), show (Ypos * Ypixel, 12000), 1177 show (new_xpos * Xmptstrk, 12000), show (new_ypos * Ypixel, 12000), 1178 show (xmove * Xmptstrk, 12000), show (ymove * Ypixel, 12000)); 1179 1180 if ^PLOT_OP /* if a SHIFT is wanted */ 1181 then 1182 do; 1183 if ymove ^= 0 /* any Y movement? */ 1184 then 1185 do; 1186 if window_level + ymove < window_top | 1187 window_level + ymove > window_bottom 1188 then 1189 do; 1190 call comp_report_$ctlstr (2, comp_error_table_$program_error, 1191 lineinfoptr, loctxt, 1192 "Attempt to place a line off page ^a at line ^d.", 1193 page.hdr.pageno, window_level); 1194 signal comp_abort; 1195 end; 1196 1197 call move_tstr (ymove); 1198 ymove = 0; 1199 xmove = new_xpos - Xpos; 1200 end; 1201 1202 penctl = PENUP; /* init for pen up */ 1203 end; /**/ 1204 /* else a VECTOR is wanted */ 1205 else penctl = PENDOWN; /* init for pen down */ 1206 /**** &plot FOR x9700 */ 1207 1208 dcl ch1 char (1); /* a spacing char */ 1209 dcl cu fixed bin; /* ch1 width in strokes */ 1210 1211 if ^PLOT_OP /* if a SHIFT is wanted */ 1212 then 1213 do; 1214 if xmove ^= 0 /* any X movement? */ 1215 then 1216 do; 1217 if xmove < 0 1218 then 1219 do; 1220 if new_ypos = old_ypos /* on the same line? */ 1221 & Xpos ^= 0 1222 then pltstr = pltstr || CR || medselstr; 1223 pltwidth = pltwidth - Xpos; 1224 xmove = new_xpos; 1225 end; 1226 1227 if tstr.devfnt ^= need_devfnt 1228 then 1229 do; 1230 call set_media (font_in, need_devfnt); 1231 xmove = new_xpos; 1232 end; 1233 1234 if tstr_line = medselstr 1235 then tstr.white = "1"b; 1236 1237 do ch1 = HUGE, EM, EN, THICK, MEDIUM, THIN, DEVIT, STROKE 1238 while (xmove > 0); 1239 1240 if fnttbl.replptr (rank (ch1)) ^= null 1241 then 1242 do; 1243 cu = fnttbl.units (rank (ch1)); 1244 penctl = fnttbl.replptr (rank (ch1)) -> replstr; 1245 1246 xii = divide (xmove, cu, 17, 0); 1247 if xii > 0 1248 then 1249 do; 1250 pltstr = pltstr || copy (penctl, xii); 1251 pltwidth = pltwidth + xii * cu; 1252 xmove = xmove - xii * cu; 1253 end; 1254 end; 1255 end; 1256 end; 1257 end; /**/ 1258 /* else a VECTOR is wanted */ 1259 else 1260 do; 1261 if ymove ^= 0 /* no vertical vectors allowed */ 1262 then call comp_report_$exact ("Vertical vectors not allowed " || 1263 "for x9700 device.", lineinfoptr); 1264 1265 if xmove < 0 /* no rev horiz vectors allowed */ 1266 then call comp_report_$exact ("Reverse horizontal vectors not " || 1267 "allowed for x9700 device.", lineinfoptr); 1268 1269 else if xmove > 0 /* forward horzontal vector */ 1270 then 1271 do; 1272 ch1 = substr (penctl, 1, 1); 1273 char_ndx = rank (ch1); 1274 repl_str_ptr = fnttbl.replptr (char_ndx); 1275 cu = fnttbl.units (char_ndx); 1276 1277 if cu > 0 1278 then 1279 do; 1280 penctl = substr (replstr, 1, repl_str.len); 1281 1282 xii = divide (xmove, cu, 17, 0); 1283 pltstr = pltstr || copy (penctl, xii); 1284 pltwidth = pltwidth + xii * cu; 1285 end; 1286 end; 1287 end; 1288 /**** END x9700 */ 1289 1290 plot_return: 1291 if length (pltstr) > 0 1292 then call put_str (pltstr, pltwidth); 1293 1294 /* Xpos, tstr.xpos = new_xpos;*/ 1295 1296 if detail_sw 1297 then call 1298 ioa_ ("^-(plot: ^f/^f lvl=^d ^[^^^]opn^[ W^])", 1299 show (Xpos * Xmptstrk, 12000), show (Ypos * Ypixel, 12000), 1300 window_level, ^tstr.open, tstr.white); 1301 1302 /* Xplt, Yplt = 0; /* motion used */ 1303 end plot; 1304 1305 pad_block: 1306 proc; /**/ 1307 1308 /* these two values in fixed dec so round off doesnt affect pad placement. */ 1309 /* dcl 1310*/* ( igap, /* gap counter for padding */ 1311 /* padeach /* padding interval */ 1312 /* ) fixed dec (11, 3);*/ 1313 1314 dcl 1315 ( igap, /* gap counter for padding */ 1316 padeach /* padding interval */ 1317 ) fixed bin; 1318 1319 dcl gaps fixed bin; /* gap count for line */ 1320 dcl jl_ptr ptr; /* pointer to the justified line */ 1321 dcl just_line char (1020) var; 1322 /* pads per gap */ 1323 dcl pads (page_image.line (ilin).gaps) fixed bin; 1324 dcl padsize fixed bin; /* pad space in pixels */ 1325 dcl 1 pad_ctl like dclong_val; /* for inserting pads */ 1326 dcl pad_ctl_ptr ptr; 1327 dcl pad_string char (7) based (pad_ctl_ptr); 1328 dcl SP_DC1 char (2) int static options (constant) init (" "); 1329 1330 just_line = ""; /* clear the justified line */ 1331 jl_ptr = addr (just_line); /* and set pointer for the overlay */ 1332 1333 if font_in ^= need_font 1334 then call set_font (need_font, need_size); 1335 1336 if col_width < 0 1337 then col_width = divide (page_image.line (ilin).net, Xmptstrk, 31, 0); 1338 if text_width > 0 1339 then text_width = divide (page_image.line (ilin).width, Xmptstrk, 31, 0); 1340 1341 if Xpixel ^= EN_width /* set up pad_ctl string */ 1342 then 1343 do; 1344 pad_ctl.mark = DC1; 1345 pad_ctl.type = type_slx; 1346 pad_ctl.leng = dclong1_len; 1347 pad_ctl.v2 = 0; 1348 pad_ctl_ptr = addr (pad_ctl); 1349 end; 1350 1351 gaps = page_image.line (ilin).gaps; 1352 padsize = max (0, col_width - text_width); 1353 /* fill in common amount */ 1354 pads = fnttbl.units (rank (STROKE)) * divide ( 1355 divide (padsize, gaps, 17, 0), fnttbl.units (rank (STROKE)), 17, 0); 1356 /* then get the leftover amount */ 1357 padsize = padsize - pads (1) * gaps; 1358 1359 if long_sw 1360 then call 1361 ioa_$nnl ("^5x(pad_block: l/w/r=^f/^f/^f gp=^i pd=^i+^i", 1362 show (Lmarg * Xmptstrk, 12000), 1363 show (text_width * Xmptstrk, 12000), 1364 show (page_image.line (ilin).rmarg, 12000), gaps, 1365 pads (1), padsize); 1366 1367 do while (padsize > 0); /* use up any leftovers */ 1368 padeach = /* pad interval */ 1369 max (round (divide (gaps * fnttbl.units (rank (STROKE)), padsize, 17, 1), 0), 1); 1370 igap = max (round (divide (gaps * fnttbl.units (rank (STROKE)), 2 * padsize, 17, 1), 0), 1); 1371 1372 do igap = igap to gaps by padeach while (padsize > 0); 1373 pads (igap) = pads (igap) + fnttbl.units (rank (STROKE)); 1374 padsize = padsize - fnttbl.units (rank (STROKE)); 1375 end; 1376 end; 1377 1378 if long_sw 1379 then call ioa_ ("^(,^i^))", pads); 1380 1381 ichr = verify (loctxt, " "); /* start at front of text */ 1382 if ichr > 1 1383 then just_line = just_line || copy (EN, ichr - 1); 1384 1385 do j = 1 to gaps; 1386 try_again: /* find word boundary */ 1387 k = search (substr (loctxt, ichr, txtlen - ichr + 1), SP_DC1) - 1; 1388 1389 if k < 0 /* MGOD! gap count is too large */ 1390 then 1391 do; 1392 if detail_sw 1393 then 1394 do; 1395 call ioa_$nnl ("gap=^i ", gaps); 1396 call blat; 1397 end; 1398 goto gap_exit; 1399 end; /**/ 1400 /* copy word */ 1401 just_line = just_line || substr (loctxt, ichr, k); 1402 ichr = ichr + k; /* step over "word" */ 1403 /* did we find a control? */ 1404 if substr (loctxt, ichr, 1) = DC1 1405 then 1406 do; /* set pointer */ 1407 DCxx_p = addr (substr (loctxt, ichr)); 1408 k = dcxx.leng + 3; /* and control string length */ 1409 /* copy ctl str */ 1410 just_line = just_line || substr (loctxt, ichr, k); 1411 ichr = ichr + k; 1412 goto try_again; 1413 end; 1414 1415 ichr = ichr + 1; /* skip the wordspace */ 1416 1417 if Xpixel = EN_width /* now, any excess count */ 1418 then just_line = just_line || copy (" ", pads (j)); 1419 else 1420 do; 1421 pad_ctl.v1 = pads (j) * Xmptstrk; 1422 just_line = just_line || pad_string; 1423 end; 1424 end; 1425 1426 gap_exit: 1427 k = txtlen - ichr + 1; /* length of the last word */ 1428 /* move the last word */ 1429 just_line = just_line || substr (loctxt, ichr, k); 1430 loctxt = just_line; /* switch to the justified line */ 1431 txtlen = length (just_line); 1432 1433 if long_sw 1434 then call ioa_ ("^a", comp_util_$display (just_line, 0, "0"b)); 1435 1436 end pad_block; 1437 1438 put_: 1439 proc; 1440 1441 dcl level fixed bin; 1442 dcl level_skip fixed bin; 1443 1444 if detail_sw 1445 then call 1446 ioa_ ("^5x(put: maxlvl=^d)", max_level); 1447 1448 level_skip = 0; 1449 1450 if first_line 1451 then 1452 do level = window_top to -1 /* discard leading null lines */ 1453 while (^window (level).open); 1454 end; 1455 else level = window_top; 1456 1457 do level = level to max_level; 1458 tstr_ptr = addr (window (level)); /**/ 1459 1460 if tstr.str_ptr = null 1461 then 1462 do; 1463 tstr.str_ptr = allocate (window_area_ptr, 1024); 1464 tstr_line = ""; 1465 end; /**/ 1466 /* &put FOR DEVICE x9700 */ 1467 /* for full/partial lines */ 1468 do level_skip = 0 to line_window_size - 1 1469 while (^window (level + level_skip + 1).open); 1470 end; /**/ 1471 /* need a FNL? */ 1472 if level_skip >= line_window_size - 1 | level = max_level 1473 then 1474 do; 1475 if first_page /* is this the DJDE line? */ 1476 then tstr_line = tstr_line || NL; 1477 1478 else /* not DJDE; thus, main body */ 1479 do; 1480 if tstr_line ^= "" & index (reverse (tstr_line), NL) ^= 1 1481 then tstr_line = tstr_line || CR; 1482 tstr_line = tstr_line || FNL; 1483 end; 1484 1485 level_skip = 3; 1486 end; /**/ 1487 /* need a QNL */ 1488 else 1489 do; 1490 if tstr_line ^= "" & index (reverse (tstr_line), NL) ^= 1 1491 then tstr_line = tstr_line || CR; 1492 tstr_line = tstr_line || QNL; 1493 level_skip = 0; 1494 end; 1495 /**/ 1496 /* END DEVICE x9700 */ 1497 if detail_sw 1498 then call 1499 ioa_ ("^7x(lvl=^d ^d+^d=^d ""^a"")", level, page_record.leng, 1500 length (tstr_line), page_record.leng + length (tstr_line), 1501 comp_util_$display (tstr_line, 0, "0"b)); 1502 1503 level = level + level_skip; 1504 tstr.last_cr = 0; 1505 page_record.leng = page_record.leng + length (tstr_line); 1506 substr (page_record.text, page_record.leng - length (tstr_line) + 1, 1507 length (tstr_line)) = tstr_line; 1508 end; 1509 1510 if page_record.leng > 0 1511 then page_record.in_use = "1"b; 1512 Ypos = tstr.ypos; 1513 1514 end put_; 1515 1516 put_str: 1517 proc (string, width); 1518 1519 dcl string char (4090) var; /* string to put */ 1520 dcl width fixed bin (31); /* string width */ 1521 1522 dcl (i, j) fixed bin; 1523 dcl new_len fixed bin; 1524 dcl old_len fixed bin; 1525 dcl pos fixed bin (31); /* current position */ 1526 1527 if tstr.devfnt ^= need_devfnt 1528 then call set_media (font_in, need_devfnt); 1529 1530 old_len = length (tstr_line) - tstr.last_cr; 1531 new_len = old_len + length (string); 1532 1533 if new_len > MAX_STR & substr (string, length (string), 1) ^= NL 1534 then 1535 do; 1536 if long_sw 1537 then 1538 do; 1539 debug_str = comp_util_$display (CR || medselstr, 0, "0"b); 1540 call ioa_ ("^-(overlay: lvl=^d X=^f^f=0 ^d+^d=^d ""^a^va"")", 1541 window_level, show (Xpos * Xmptstrk, 12000), 1542 show (-Xpos * Xmptstrk, 12000), 1543 old_len, length (CR || medselstr), 1544 old_len + length (CR || medselstr), debug_str, 1545 length (debug_str) - length (rtrim (debug_str)), " "); 1546 end; 1547 1548 tstr_line = tstr_line || CR || medselstr; 1549 tstr.last_cr = length (tstr_line); 1550 Xpos = 0; 1551 call plot (SHIFT_OP, tstr.xpos, Ypos); 1552 old_len = length (tstr_line) - tstr.last_cr; 1553 new_len = old_len + length (string); 1554 end; 1555 1556 if detail_sw 1557 then 1558 do; 1559 debug_str = comp_util_$display (string, 0, "0"b); 1560 call ioa_ ( 1561 "^5x(put_str: lvl=^d X=^f+^f=^f ^d+^d=^d^[(^d)^;^s^] ""^a^va"")", 1562 window_level, show (Xpos * Xmptstrk, 12000), show (width * Xmptstrk, 12000), 1563 show ((Xpos + width) * Xmptstrk, 12000), old_len, length (string), new_len, 1564 (tstr.last_cr > 0), length (tstr_line) + length (string), 1565 debug_str, length (debug_str) - length (rtrim (debug_str)), " "); 1566 end; 1567 1568 tstr_line = tstr_line || string; 1569 Xpos, tstr.xpos = Xpos + width; 1570 1571 string = ""; 1572 width = 0; 1573 tstr.open = "1"b; 1574 end put_str; 1575 1576 put_uns: 1577 proc; 1578 dcl Y_offs fixed bin (31); /* baseline offset */ 1579 dcl unslen fixed bin (31);/* length of underscore */ 1580 1581 Y_offs = 0; 1582 unslen = Xpos + Xspc - unstart; 1583 1584 if unslen > 0 1585 then 1586 do; 1587 if detail_sw 1588 then call 1589 ioa_ ("^5x(put_uns: ^f)", 1590 show (unslen * Xmptstrk, 12000)); 1591 1592 Xspc = unstart; 1593 call put_str (CR || medselstr, -tstr.xpos); 1594 Xpos, tstr.xpos = 0; 1595 call plot (SHIFT_OP, Xpos + Xspc, Ypos + Y_offs); 1596 Xspc, Yspc = 0; /**/ 1597 /* put the underscore */ 1598 call plot (VECTOR_OP, Xpos + unslen, Ypos); 1599 unstart = Lmarg; 1600 1601 if detail_sw 1602 then call ioa_ ("^-(put_uns)"); 1603 end; 1604 end put_uns; 1605 1606 set_font: 1607 proc (new_font, new_size); 1608 1609 /* PARAMETERS */ 1610 1611 dcl new_font fixed bin; /* desired font index */ 1612 dcl new_size fixed bin (31); /* desired pointsize */ 1613 1614 dcl chng bit (1); 1615 1616 chng = (font_in ^= new_font | font_size ^= new_size); 1617 1618 if chng 1619 then 1620 do; 1621 if detail_sw 1622 then 1623 do; 1624 if font_in = 0 1625 then call ioa_$nnl ("^5x(set_font: 0 - 0. -->"); 1626 else call 1627 ioa_$nnl ("^5x(set_font: ^i ^a ^f -->", font_in, 1628 fnttbldata.ptr (font_in) -> fnttbl.entry.name, 1629 show (font_size, 1000)); 1630 end; 1631 1632 font_in = new_font; 1633 end; 1634 1635 fnttbl_ptr = fnttbldata.ptr (font_in); 1636 substr (fonts_needed, font_in, 1) = "1"b; 1637 need_devfnt = fnttbl.devfnt (32); 1638 /**** &set_font FOR x9700 */ 1639 if index (medsel (need_devfnt), "U") = 2 1640 then substr (sup_media, font_in, 1) = "1"b; 1641 else if index (medsel (need_devfnt), "D") = 2 1642 then substr (inf_media, font_in, 1) = "1"b; 1643 font_media (font_in) = need_devfnt; 1644 1645 /**** END x9700 */ 1646 if siztbl.ct = 1 1647 then font_size, new_size = siztbl.size (1); 1648 else font_size = new_size; 1649 1650 Xmptstrk = divide (font_size, fnttbl.rel_units, 31, 0); 1651 EM_width = 1652 divide (font_size * fnttbl.units (rank (EM)), fnttbl.rel_units, 31, 10); 1653 EN_width = 1654 divide (font_size * fnttbl.units (rank (EN)), fnttbl.rel_units, 31, 10); 1655 THIN_width = 1656 divide (font_size * fnttbl.units (rank (THIN)), fnttbl.rel_units, 31, 10); 1657 1658 if (detail_sw | long_sw) & chng 1659 then 1660 do; 1661 call ioa_ (" ^i ^a ^f Xscl=^d)", new_font, 1662 fnttbldata.ptr (new_font) -> fnttbl.entry.name, 1663 show (font_size, 1000), Xmptstrk); 1664 if long_sw 1665 then call ioa_ ("^-(HUGE=^d EM=^d EN=^d THK=^d MED=^d " 1666 || "THN=^d HAIR=^d STRK=^d)", fnttbl.units (rank (HUGE)), 1667 fnttbl.units (rank (EM)),fnttbl.units (rank (EN)), 1668 fnttbl.units (rank (THICK)),fnttbl.units (rank (MEDIUM)), 1669 fnttbl.units (rank (THIN)),fnttbl.units (rank (DEVIT)), 1670 fnttbl.units (rank (STROKE))); 1671 end; 1672 end set_font; 1673 1674 set_media: 1675 proc (media_font, new_devfnt); 1676 1677 /* PARAMETERS */ 1678 1679 dcl media_font fixed bin; /* font needing the media */ 1680 dcl new_devfnt fixed bin; /* wanted device font */ 1681 1682 /* LOCAL STORAGE */ 1683 1684 dcl chng bit (1); /* 1= media or size has to change */ 1685 dcl med_chng bit (1); /* 1= media has to change */ 1686 dcl size_chng bit (1); /* 1= size has to change */ 1687 dcl temp_r bit (18); 1688 1689 med_chng = tstr.devfnt ^= new_devfnt; 1690 size_chng = media_size ^= font_size; 1691 chng = med_chng | size_chng; 1692 1693 if detail_sw & chng 1694 then call ioa_$nnl ("^5x(set_media: siz=^f med=^d --> siz=^f med=^d ", 1695 show (media_size, 1000), tstr.devfnt, show (font_size, 1000), 1696 new_devfnt); 1697 /**** &set_media FOR x9700 */ 1698 medselstr = substr (medsel (new_devfnt), 1, 1); 1699 1700 /**** END x9700 */ 1701 /**** &set_ps FOR x9700 */ 1702 /**** NO CODE */ 1703 /**** END x9700 */ 1704 if detail_sw & chng 1705 then call ioa_ ("sel=""^a"")", 1706 comp_util_$display ((medsel (new_devfnt)), 0, "0"b)); 1707 /* is it a superior font? */ 1708 if substr (sup_media, media_font, 1) 1709 then call move_tstr (-1); /**/ 1710 /* is it a inferior font? */ 1711 else if substr (inf_media, media_font, 1) 1712 then call move_tstr (1); 1713 1714 /* if not in media needed */ 1715 if med_chng /* ...change to it */ 1716 then 1717 do; 1718 tstr.devfnt = new_devfnt; 1719 tstr.font = media_font; 1720 end; 1721 1722 if length (tstr_line) > 2 & med_chng 1723 then do; 1724 tstr.last_cr = length (tstr_line); 1725 call put_str (CR || medselstr, -Xpos); 1726 end; 1727 1728 else if length (tstr_line) <= 2 1729 then do; 1730 tstr_line = ""; 1731 tstr.last_cr = 0; 1732 call put_str ((medselstr), 0); 1733 end; 1734 1735 if chng 1736 then Xpos, tstr.xpos = 0; 1737 end set_media; 1738 1739 /* device x9700 "other_procs" */ 1740 /**** NO CODE */dcl db_sw bit (1) aligned static init ("0"b); 1741 1742 dbn: entry;db_sw = "1"b;goto db_join; 1743 dbf: entry;db_sw = "0"b;return; 1744 1745 dcl tx_sw bit (1) aligned static init ("0"b); 1746 txn: entry; tx_sw = "1"b; goto db_join; 1747 txf: entry; tx_sw = "0"b; return; 1748 1749 dcl lg_sw bit (1) aligned static init ("0"b); 1750 lgn: entry; lg_sw = "1"b; goto db_join; 1751 lgf: entry; lg_sw = "0"b; return; 1752 1753 dcl pf_sw bit (1) aligned static init ("0"b); 1754 pfn: entry; pf_sw = "1"b; return; 1755 pff: entry; pf_sw = "0"b; return; 1756 1757 dcl abrt_sw bit (1) aligned static init ("0"b); 1758 abrtn: entry; abrt_sw = "1"b; return; 1759 abrtf: entry; abrt_sw = "0"b; return; 1760 1761 dcl dt_sw bit (1) aligned static init ("0"b); 1762 dtn: entry;dt_sw = "1"b;goto db_join; 1763 dtf: entry;dt_sw = "0"b;return; 1764 1765 alln: entry; db_sw, dt_sw, lg_sw = "1"b; 1766 db_join: 1767 dcl db_line fixed bin static init (0); 1768 dcl com_err_ entry options (variable); 1769 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 1770 dcl arg char (argl) based (argp); 1771 dcl argl fixed bin; 1772 dcl argp ptr; 1773 dcl ercd fixed bin (35); 1774 dcl error_table_$noarg fixed bin (35) ext static; 1775 1776 db_line = 0; 1777 call cu_$arg_ptr (1, argp, argl, ercd); 1778 if ercd ^= 0 1779 then do; 1780 if ercd ^= error_table_$noarg 1781 then call com_err_ (ercd, "x9700_writer_"); 1782 return; 1783 end; 1784 db_line = convert (db_line, arg); 1785 return; 1786 1787 allf: entry; db_sw, lg_sw, tx_sw, pf_sw, dt_sw, abrt_sw = "0"b; 1788 return; 1789 1790 /* This one include file contains all the compose includes necessary for an */ 1791 /* output writer */ 1 1 /* BEGIN INCLUDE FILE ..... comp_outproc.incl.pl1 ..... 11/05/78 J Falksen */ 1 2 1 3 /* compose INCLUDE FILES NEEDED BY ALL OUTPUT WRITERS */ 1 4 2 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 2 6 /* */ 2 7 /* This include segment allocates space in a translator's temporary segment. It */ 2 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 2 9 /* internal procedure in the program which includes this include segment. The temporary */ 2 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 2 11 /* */ 2 12 /* S__t_a_t_u_s */ 2 13 /* */ 2 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 2 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 2 16 /* */ 2 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 18 2 19 2 20 2 21 allocate: procedure (Parea, ANwords) returns (ptr); 2 22 2 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 2 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 2 25 2 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 2 27 /* to a 0 mod 2 quantity. */ 2 28 P ptr, /* a temporary pointer. */ 2 29 code fixed bin(35), /* a status code. */ 2 30 (mod, null, ptr) builtin; 2 31 2 32 dcl 1 area based (Parea), 2 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 2 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 2 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 2 36 2 37 dcl translator_temp_$get_next_segment 2 38 entry (ptr, ptr, fixed bin(35)); 2 39 2 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 2 41 if Nwords > Lfree then do; /* handle area overflow. */ 2 42 call translator_temp_$get_next_segment (Parea, P, code); 2 43 if P = null then return (null); 2 44 Parea = P; 2 45 if Nwords > area.Lfree then return (null); 2 46 end; 2 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 2 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 2 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 2 50 return (P); 2 51 2 52 end allocate; 2 53 2 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 1 5 3 1 /* BEGIN INCLUDE FILE comp_areas.incl.pl1 */ 3 2 3 3 dcl comp_area area (sys_info$max_seg_size) /* compose no freeing area */ 3 4 based (const.comp_area_ptr); 3 5 dcl comp_free area (sys_info$max_seg_size) /* compose freeing area */ 3 6 based (const.comp_free_ptr); 3 7 3 8 /* END INCLUDE FILE comp_areas.incl.pl1 */ 1 6 4 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 4 4 4 5 /* ASCII control characters */ 4 6 dcl ( 4 7 NUL init (""), /* 000 */ 4 8 SOH init (""), /* 001 */ 4 9 STX init (""), /* 002 */ 4 10 ETX init (""), /* 003 */ 4 11 EOT init (""), /* 004 */ 4 12 ENQ init (""), /* 005 */ 4 13 ACK init (""), /* 006 */ 4 14 BEL init (""), /* 007 */ 4 15 BSP init (""), /* 010 */ 4 16 HT init (" "), 4 17 /* 011 */ 4 18 (NL, LF) init (" 4 19 "), /* 012 */ 4 20 VT init (" "), /* 013 */ 4 21 FF init (" "), /* 014 */ 4 22 CR init (" "), /* 015 */ 4 23 (RRS, SO) init (""), /* 016 */ 4 24 (BRS, SI) init (""), /* 017 */ 4 25 DLE init (""), /* 020 */ 4 26 DC1 init (""), /* 021 */ 4 27 (DC2, HLF, HUGE) init (""), /* 022 */ 4 28 DC3 init (""), /* 023 */ 4 29 (DC4, HLR, THICK) init (""), /* 024 */ 4 30 (NAK, MEDIUM) init (""), /* 025 */ 4 31 SYN init (""), /* 026 */ 4 32 (ETB, HAIR) init (""), /* 027 */ 4 33 (CAN, STROKE) init (""), /* 030 */ 4 34 oct031 init (""), /* 031 */ 4 35 SUB init (""), /* 032 */ 4 36 ESC init (""), /* 033 */ 4 37 FS init (""), /* 034 */ 4 38 GS init (""), /* 035 */ 4 39 RS init (""), /* 036 */ 4 40 US init (""), /* 037 */ 4 41 (DEL, PAD) init (""), /* 177 */ 4 42 /* compose meta-characters */ 4 43 multiply init ("ª"), /* 252 - multiply symbol */ 4 44 pl_mi init ("«"), /* 253 - plus/minus sign */ 4 45 nabla init ("¬"), /* 254 */ 4 46 EMdash init ("­"), /* 255 - EM dash */ 4 47 slash init ("¯"), /* 256 */ 4 48 dagger init ("±"), /* 261 */ 4 49 perpen init ("»"), /* 273 - perpendicular mark */ 4 50 not_eq init ("½"), /* 275 - not-equal mark */ 4 51 dbldag init ("Á"), /* 301 - double daggar */ 4 52 cright init ("Ã"), /* 303 - copyright mark */ 4 53 delta init ("Ä"), /* 304 */ 4 54 bullet init ("Í"), /* 315 */ 4 55 prll init ("Î"), /* 316 - parallel mark */ 4 56 PI init ("Ð"), /* 320 - uppercase Greek pi */ 4 57 tmark init ("Ô"), /* 324 - trademark */ 4 58 tfore init ("Ö"), /* 326 - therefore mark */ 4 59 approx init ("Ú"), /* 332 - approximately-equal mark */ 4 60 infin init ("ß"), /* 337 - infinity */ 4 61 theta init ("ê"), /* 352 */ 4 62 pi init ("ð"), /* 360 - lowercase Greek pi */ 4 63 square init ("ý"), /* 375 */ 4 64 overbar init ("þ"), /* 376 */ 4 65 PS init ("ÿ"), /* 377 - punctuation space */ 4 66 sup0 init (""), /* 400 - superior digit 0 */ 4 67 sup1 init (""), /* 401 - superior digit 1 */ 4 68 sup2 init (""), /* 402 - superior digit 2 */ 4 69 sup3 init (""), /* 403 - superior digit 3 */ 4 70 sup4 init (""), /* 404 - superior digit 4 */ 4 71 sup5 init (""), /* 405 - superior digit 5 */ 4 72 sup6 init (""), /* 406 - superior digit 6 */ 4 73 sup7 init (""), /* 407 - superior digit 7 */ 4 74 sup8 init (""), /* 410 - superior digit 8 */ 4 75 sup9 init (" "), /* 411 - superior digit 9 */ 4 76 EM init (" "), /* 412 - EM space */ 4 77 EM_ init (" "), /* 413 - EM aligned dash */ 4 78 EN init (" "), /* 414 - EN space */ 4 79 EN_ init (" "), /* 415 - EN aligned dash */ 4 80 ENd init (""), /* 416 - EN dash */ 4 81 THIN init (""), /* 417 - thinspace */ 4 82 DEVIT init (""), /* 420 - device unit */ 4 83 lquote init (""), /* 421 - left double quote */ 4 84 rquote init (""), /* 422 - right double quote */ 4 85 modmark init (""), /* 424 - text modification/addition mark */ 4 86 delmark init (""), /* 430 - deletion mark */ 4 87 vrule init ("Z"), /* 532 - vertical rule */ 4 88 lslnt init ("^") /* 536 - left slant */ 4 89 ) char (1) unaligned static options (constant); 4 90 4 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 1 7 5 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 5 2* Modified: ??/81 - EJW - Addded type_wait 5 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 5 4**/ 5 5 5 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 5 7 5 8 dcl DCxx_p ptr; /* for qualification of embedded */ 5 9 /* control strings */ 5 10 /* an embedded control string */ 5 11 dcl 1 dcxx unal based (DCxx_p), 5 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 5 13 2 ctl, 5 14 3 type bit (3) unal, /* 000- device/writer control */ 5 15 /* 001- */ 5 16 /* 010- literal data */ 5 17 /* 011- family/member/size data */ 5 18 /* 100- shift */ 5 19 /* 101- */ 5 20 /* 110- vector */ 5 21 /* 111- zero-offset vector */ 5 22 3 fill1 bit (1) unal, 5 23 3 Xctl bit (2) unal, /* 00- no X value present */ 5 24 /* 01- short X value */ 5 25 /* 10- long X value */ 5 26 3 fill2 bit (1) unal, 5 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 5 28 /* 01- short Y value present */ 5 29 /* 10- long Y value present */ 5 30 2 leng fixed bin (9) unal unsigned, 5 31 /* # of remaining bytes */ 5 32 2 etc; /* the rest of the control bytes */ 5 33 /* device/writer controls */ 5 34 dcl 1 dcctl unal based (DCxx_p), 5 35 2 mark char (1) unal, 5 36 2 type char (1) unal, /* control type */ 5 37 /* leng is always 0 for these */ 5 38 2 leng fixed bin (9) unal unsigned; 5 39 dcl ( 5 40 wait_signal init (""), /* = 021001000 */ 5 41 unstart_signal init (""), /* = 021002000 */ 5 42 unstop_signal init ("") /* = 021003000 */ 5 43 ) char (3) static options (constant); 5 44 /* the "literal" control string */ 5 45 dcl 1 dclit unal based (DCxx_p), 5 46 2 mark char (1) unal, 5 47 2 type char (1) unal, /* control type */ 5 48 2 leng fixed bin (9) unal unsigned, 5 49 /* width in milli-points of literal */ 5 50 2 width fixed bin (31) unal, 5 51 /* actual literal, max length 509 */ 5 52 2 data char (dclit.leng - 4); 5 53 /* long (31 bits) values */ 5 54 dcl 1 dclong_val unal based (DCxx_p), 5 55 2 mark char (1) unal, 5 56 2 type char (1) unal, /* control type */ 5 57 2 leng fixed bin (9) unal unsigned, 5 58 ( 5 59 2 v1 fixed bin (31), /* long value */ 5 60 2 v2 fixed bin (31) /* long value */ 5 61 ) unal; 5 62 dcl ( 5 63 dclong_len init (8), /* 2 long values */ 5 64 dclong1_len init (4) /* 1 long value */ 5 65 ) fixed bin static options (constant); 5 66 /* short (17 bit) values */ 5 67 dcl 1 dcshort_val unal based (DCxx_p), 5 68 2 mark char (1) unal, 5 69 2 type char (1) unal, /* control type */ 5 70 2 leng fixed bin (9) unal unsigned, 5 71 ( 5 72 2 v1 fixed bin, /* short value */ 5 73 2 v2 fixed bin /* short value */ 5 74 ) unal; 5 75 dcl ( 5 76 dcshort_len init (4), /* 2 short values */ 5 77 dcshort1_len init (2) /* 1 short value */ 5 78 ) fixed bin static options (constant); 5 79 /* a font change string */ 5 80 dcl 1 dcfs unal based (DCxx_p), 5 81 2 mark char (1) unal, /* font/size data */ 5 82 2 type char (1) unal, /* control type */ 5 83 2 leng fixed bin (9) unal unsigned, 5 84 /* fnttbldata index */ 5 85 2 f fixed bin (9) unal unsigned, 5 86 /* point size in milli-points */ 5 87 2 p fixed bin (31) unal; 5 88 dcl dcfs_len fixed bin init (5) static options (constant); 5 89 5 90 dcl ( /* symbolic definitions of DC types */ 5 91 type_wait init (""), /* writer wait */ 5 92 type_unstart init (""), /* underscore start */ 5 93 type_unstop init (""), /* underscore stop */ 5 94 type_lit init ("ˆ"), /* literal data */ 5 95 type_font init ("À"), /* family/member/size data */ 5 96 /* SHIFTS - */ 5 97 type_sy init (""), /* -- no x, short y */ 5 98 type_sly init (""), /* -- no x, long y */ 5 99 type_sx init (""), /* -- short x, no y */ 5 100 type_sxy init (" "), /* -- short x, short y */ 5 101 type_slx init (""), /* -- long x, no y */ 5 102 type_slxly init (""), /* -- long x, long y */ 5 103 /* VECTORS */ 5 104 type_vy init (""), /* -- no x, short y */ 5 105 type_vly init ("‚"), /* -- no x, long y */ 5 106 type_vx init ("ˆ"), /* -- short x, no y */ 5 107 type_vxy init ("‰"), /* -- short x, short y */ 5 108 type_vlx init (""), /* -- long x, no y */ 5 109 type_vlxly init ("’"), /* -- long x, long y */ 5 110 /* ZERO-OFFSET VECTORS- */ 5 111 type_v0y init ("Á"), /* -- no x, short y */ 5 112 type_v0ly init ("Â"), /* -- no x, long y */ 5 113 type_v0x init ("È"), /* -- short x, no y */ 5 114 type_v0xy init ("É"), /* -- short x, short y */ 5 115 type_v0lx init ("Ð"), /* -- long x, no y */ 5 116 type_v0lxly init ("Ò") /* -- long x, long y */ 5 117 ) char (1) unal int static options (constant); 5 118 5 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 1 8 6 1 /* BEGIN INCLUDE FILE - comp_dvid.incl.pl1 */ 6 2 6 3 /* Written: JA Falksen - 6/81 6 4*/* Modified: EJ Wallman - 11/81 - Added comp_dvt.displayproc */ 6 5 /* Modified: EJW - 1/82 - added length arg to comp_dvt.displayproc */ 6 6 /* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc */ 6 7 /* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 6 8* (3) char (*) var. Version 4. */ 6 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 6 10* sequence for comp_dvt.displayproc. - Version 5. */ 6 11 6 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 13 6 14 dcl comp_dvid_version 6 15 fixed bin static options (constant) init (5); 6 16 6 17 dcl 1 comp_dvid aligned based (const.dvidptr), 6 18 2 version fixed bin, /* version of this structure and */ 6 19 /* of comp_dvt */ 6 20 2 devname char (32), /* name of device */ 6 21 2 dvt_r bit (18); /* device table offset */ 6 22 6 23 /* END INCLUDE FILE - comp_dvid.incl.pl1 */ 1 9 7 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 7 2 7 3 /* Written: 9/80 - JA Falksen 7 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 7 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 7 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 7 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 7 8* (3) char (*) var. Version 4. */ 7 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 7 10* sequence for comp_dvt.displayproc. - Version 5. 7 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 7 12**/ 7 13 7 14 /* All names which end in "_r"are offset values within the device table */ 7 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 7 16 7 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 7 18 7 19 dcl 1 comp_dvt aligned based (const.devptr), 7 20 2 devclass char (32), /* what general kind of device is */ 7 21 /* this, currently available: */ 7 22 /* "printer" (includes terminals), */ 7 23 /* "braille", "bitmap" */ 7 24 2 outproc entry /* page output processor */ 7 25 (fixed bin, /* function - 0=build */ 7 26 /* 1=init page */ 7 27 /* 2=init file */ 7 28 /* 3=cleanup */ 7 29 fixed bin (35)),/* error code */ 7 30 2 footproc entry /* footnote reference proc */ 7 31 ((3) char (*) var, 7 32 /* reference string (IN/OUT) */ 7 33 ptr), /* comp_dvt_p (IN) */ 7 34 2 artproc entry (), /* artwork proc */ 7 35 /* dont know how to describe yet */ 7 36 2 displayproc 7 37 entry /* string display interpreter */ 7 38 (char (*) var, /* raw input string */ 7 39 fixed bin (24), /* chars used in this call */ 7 40 bit (1)) /* 1= dont show display errors */ 7 41 returns (char (*) var), 7 42 /* interpreted output string */ 7 43 /* following values are in millipoints */ 7 44 2 min_WS fixed bin (31), /* minimum whitespace */ 7 45 2 min_lead fixed bin (31), /* minimun lead */ 7 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 7 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 7 48 2 def_vmt fixed bin (31), /* default .vmt */ 7 49 2 def_vmh fixed bin (31), /* default .vmh */ 7 50 2 def_vmf fixed bin (31), /* default .vmf */ 7 51 2 def_vmb fixed bin (31), /* default .vmb */ 7 52 2 pdw_max fixed bin (31), /* max page width available */ 7 53 2 pdl_max fixed bin (31), /* max page length available, */ 7 54 /* (0 = unlimited) */ 7 55 2 upshift fixed bin (31), /* footnote reference shift */ 7 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 7 57 2 lettersp fixed bin (31), /* max letterspacing */ 7 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 7 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 7 60 2 init_fam fixed bin, /* initial family index */ 7 61 2 init_mem fixed bin, /* initial member index */ 7 62 2 foot_fam fixed bin, /* initial foot family index */ 7 63 2 foot_mem fixed bin, /* initial foot member index */ 7 64 2 init_family 7 65 char (32), /* initial font family to use */ 7 66 2 init_member 7 67 char (32), /* initial font member to use */ 7 68 ( /* the following are offsets */ 7 69 2 atd_r, /* attach desc for on-line output */ 7 70 2 dvc_r, /* device control table relptr */ 7 71 2 comment_r, /* comment string relptr */ 7 72 2 cleanup_r, /* "cleanup" string relptr */ 7 73 2 medsel_table_r /* media select table relptr */ 7 74 ) bit (18) aligned, 7 75 2 foot_family 7 76 char (32), /* family for footnote reference */ 7 77 2 foot_member 7 78 char (32), /* member for footnote reference */ 7 79 /* if one was specified */ 7 80 2 sws unaligned, 7 81 3 interleave /* 0- page block has lines in column */ 7 82 bit (1), /* order left-to-right */ 7 83 /* 1- page block has lines in line */ 7 84 /* order top-to-bottom */ 7 85 3 justifying /* 1- device justifies lines */ 7 86 bit (1), 7 87 3 mbz bit (24), 7 88 3 endpage bit (9), /* EOP char if not "0"b */ 7 89 2 open_mode fixed bin (35), /* when going to a file */ 7 90 2 recleng fixed bin, /* length of tape records */ 7 91 2 family_ct fixed bin, /* # families present */ 7 92 2 family (comp_dvt.family_ct), 7 93 /* families of fonts defined */ 7 94 3 member_r bit (18) aligned, 7 95 /* member table relptr */ 7 96 3 name char (32); /* family name */ 7 97 7 98 7 99 /* The usage formula for units: */ 7 100 /* */ 7 101 /* rel_units * length_in_points */ 7 102 /* ---------------------------- = length_in_units */ 7 103 /* points_per_EM */ 7 104 7 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 1 10 8 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl compose_severity_ 8 6 fixed bin (35) ext static; 8 7 dcl comp_ entry; 8 8 dcl comp_art_ entry (ptr, bit (1)); 8 9 dcl comp_block_ctls_ 8 10 entry (fixed bin); 8 11 dcl comp_break_ entry (fixed bin, fixed bin); 8 12 dcl comp_break_ctls_ 8 13 entry (fixed bin); 8 14 dcl comp_ctls_ entry (bit (1) aligned); 8 15 dcl comp_eject_page_ 8 16 entry; 8 17 dcl comp_expr_eval_ 8 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 8 19 fixed bin, bit (1), fixed bin (31), char (*) var, 8 20 bit (9), fixed bin (35)); 8 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 8 22 fixed bin (21), fixed bin (21), ptr) 8 23 returns (char (*) var); 8 24 dcl comp_fill_ entry; 8 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 8 26 dcl comp_format_ctls_ 8 27 entry (fixed bin); 8 28 dcl comp_get_file_$find 8 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 8 30 fixed bin (35)); 8 31 dcl comp_get_file_$open 8 32 entry (ptr, bit (1), fixed bin (35)); 8 33 dcl comp_head_page_ 8 34 entry (fixed bin (31)); 8 35 dcl comp_hft_ctls_ entry (fixed bin); 8 36 dcl comp_hft_ctls_$title 8 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 8 38 dcl comp_init_$one entry; 8 39 dcl comp_init_$two entry; 8 40 dcl comp_init_$three 8 41 entry; 8 42 dcl comp_insert_ctls_ 8 43 entry (fixed bin); 8 44 dcl comp_make_page_ 8 45 entry (fixed bin, bit (1)); 8 46 dcl comp_make_page_$cleanup 8 47 entry; 8 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 8 49 fixed bin (31), ptr, ptr, ptr); 8 50 dcl comp_read_$name 8 51 entry (char (*) var, fixed bin (21), fixed bin (21), 8 52 ptr) returns (char (*) var); 8 53 dcl comp_read_$number 8 54 entry (char (*) var, (*) fixed bin (31), 8 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 8 56 returns (fixed bin (31)); 8 57 dcl comp_read_$line 8 58 entry (ptr, char (*) var, bit (1)); 8 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 8 60 char (*) var); 8 61 dcl comp_report_$ctlstr 8 62 entry options (variable); 8 63 /**** (sev, code, info, line, ctl_str, args... */ 8 64 dcl comp_report_$exact 8 65 entry (char (*), ptr); 8 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 8 67 bit (1)); 8 68 dcl comp_tbl_ctls_ entry (fixed bin); 8 69 dcl comp_title_block_ 8 70 entry (ptr); 8 71 dcl comp_update_symbol_ 8 72 entry (bit (1), bit (1), bit (1), char (32), 8 73 char (*) var); 8 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 8 75 dcl comp_util_$add_text 8 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 8 77 dcl comp_util_$display 8 78 entry (char (*) var, fixed bin, bit (1)) 8 79 returns (char (*) var); 8 80 dcl comp_util_$escape 8 81 entry (char (*) var, ptr); 8 82 dcl comp_util_$getblk 8 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 8 84 dcl comp_util_$num_display 8 85 entry (ptr, fixed bin) returns (char (256) var); 8 86 dcl comp_util_$pageno 8 87 entry (fixed bin, char (*) var); 8 88 dcl comp_util_$pictures /* emit pending pictures */ 8 89 entry /**/ 8 90 (ptr); /* current text block */ 8 91 dcl comp_util_$pop entry (char (32)); 8 92 dcl comp_util_$push 8 93 entry (char (32)); 8 94 dcl comp_util_$relblk 8 95 entry (fixed bin, ptr); 8 96 dcl comp_util_$replace_text 8 97 entry (ptr, bit (1), ptr, ptr); 8 98 dcl comp_util_$search_tree 8 99 entry (char (32), bit (1)); 8 100 dcl comp_util_$set_bin 8 101 entry (fixed bin (31), char (32) var, fixed bin (31), 8 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 8 103 fixed bin (31)); 8 104 dcl comp_util_$set_net_page 8 105 entry (bit (1)); 8 106 dcl comp_util_$translate 8 107 entry (char (*) var) returns (char (*) var); 8 108 dcl comp_write_block_ 8 109 entry (fixed bin); 8 110 dcl comp_write_page_ 8 111 entry; 8 112 8 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 1 11 9 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 9 2 9 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 9 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 9 7 2 bachelor bit (1), /* 1= has no members */ 9 8 2 devfnt fixed bin, /* font in the device */ 9 9 2 fam_name char (32), /* family name */ 9 10 2 famndx fixed bin, /* family index */ 9 11 2 fntptr ptr, /* font table pointer */ 9 12 2 mem_name char (32), /* /member name (or null) */ 9 13 2 memndx fixed bin, /* member index */ 9 14 2 memptr ptr, /* member table pointer */ 9 15 2 name char (65) var, /* font name */ 9 16 2 size fixed bin (31), /* requested point size */ 9 17 2 ps fixed bin (31), /* effective point size */ 9 18 2 fcs_str char (8); /* FCS string */ 9 19 9 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 1 12 10 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 10 2 10 3 /* Fonts already loaded into the compose (pdir) database */ 10 4 10 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 6 10 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 10 8 2 count fixed bin, /* number of fonts loaded */ 10 9 2 ndx fixed bin, /* index of current font */ 10 10 2 medsel_ptr ptr, /* -> media select table */ 10 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 10 12 10 13 dcl fnttbl_ptr ptr init (null); 10 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 10 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 10 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 10 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 10 18 2 rel_units fixed bin, /* stroke value for this font */ 10 19 2 siztbl_ptr ptr, /* -> loaded size table */ 10 20 2 entry /* stack entry for this font */ 10 21 like fntstk_entry, 10 22 ( /* for each font character */ 10 23 2 devfnt fixed bin, /* font in the device */ 10 24 2 replptr ptr, /* replacement string ptrs */ 10 25 2 units fixed bin, /* width in strokes */ 10 26 2 white bit (1) unal /* white space flags */ 10 27 ) dimension (0:511); 10 28 10 29 dcl repl_str_ptr ptr; /* replacement strings */ 10 30 dcl 1 repl_str based (repl_str_ptr), 10 31 2 len fixed bin (35), 10 32 2 str char (256); 10 33 dcl replstr char (256) var based (repl_str_ptr); 10 34 /* media select strings */ 10 35 /* (indexed on fnttbldata.ndx) */ 10 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 10 37 10 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 10 39 2 ct fixed bin, /* number of sizes */ 10 40 2 size (siztbl.ct) fixed bin (31); 10 41 10 42 /* This is the storage referred by family.member_r in comp_dvt 10 43* 10 44* If member.count is 1 and member.name(1) is null, then the font is a 10 45* 'bachelor'. 10 46* 10 47* The font stack will hold the family/member names which were used to 10 48* originally get to the font. When a bachelor is accessed, the member name 10 49* will remain but the bachelor flag will be set to tell any displayers not 10 50* to include it. 10 51* 10 52* %FontName% will contain either "family" or "family/member" depending on 10 53* the setting of the bachelor switch. */ 10 54 10 55 dcl member_ptr ptr; 10 56 dcl 1 member based (member_ptr), 10 57 2 count fixed bin, /* # members present */ 10 58 2 e (member.count), /* members defined for this device */ 10 59 3 font_r bit (18) unal, /* font character table relptr */ 10 60 3 size_r bit (18) aligned, 10 61 /* point size list relptr */ 10 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 10 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 10 64 3 name char (32); /* member name */ 10 65 10 66 /* Storage referred by member.font_r */ 10 67 dcl font_ptr ptr; 10 68 dcl 1 font based (font_ptr), 10 69 ( 2 oput_r, /* offset of output data array */ 10 70 2 units_r /* offset of width array */ 10 71 ) bit (18) aligned, 10 72 2 rel_units fixed bin, /* stroke value for this table */ 10 73 2 footsep char (1), /* footref separator */ 10 74 2 fill char (3), 10 75 2 min_wsp fixed bin, /* min wordspace */ 10 76 2 avg_wsp fixed bin, /* nominal wordspace */ 10 77 2 max_wsp fixed bin; /* max wordspace */ 10 78 10 79 /* storage referred by font.units_r */ 10 80 dcl units_ptr ptr; /* width in strokes */ 10 81 dcl units (0:511) fixed bin based (units_ptr); 10 82 10 83 /* media select table in the device table */ 10 84 dcl medsel_table_ptr 10 85 ptr; 10 86 dcl 1 medsel_table based (medsel_table_ptr), 10 87 2 count fixed bin, 10 88 2 ref_r (medsel_table.count) bit (18) aligned; 10 89 10 90 /* storage referred by font.oput_r */ 10 91 dcl oput_p ptr; 10 92 dcl 1 oput based (oput_p), 10 93 2 data_ct fixed bin, /* highest char defined */ 10 94 2 e (0:oput.data_ct), 10 95 3 which /* index into view array */ 10 96 fixed bin (17) unal, 10 97 3 what_r /* output string */ 10 98 bit (18) unal; 10 99 10 100 /* storage referred by member.size_r */ 10 101 10 102 dcl sizel_p ptr; 10 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 10 104 2 val_ct fixed bin, 10 105 2 val (sizel.val_ct) fixed bin (31); 10 106 10 107 /* storage referred by oput.what_r */ 10 108 10 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 10 110 dcl 1 medchar_sel based (medchar_sel_p), 10 111 2 str_l fixed bin, 10 112 2 str char (medchar_sel.str_l); 10 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 10 114 10 115 dcl med_sel_p ptr; /* media select string */ 10 116 dcl 1 med_sel based (med_sel_p), 10 117 2 str_l fixed bin, 10 118 2 str char (med_sel.str_l); 10 119 10 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 1 13 11 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 11 2 11 3 dcl option_version fixed bin (35) static options (constant) init (2); 11 4 11 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 11 6 2 version fixed bin (35), 11 7 /* Options with parameters */ 11 8 (2 argument_opt, /* -argument option flag */ 11 9 2 cbar_opt, /* -change_bars option flag */ 11 10 2 cbar_art_opt, /* -change_bars_art option flag */ 11 11 2 debug_opt, /* -debug option flag */ 11 12 2 db_all_opt, /* -debug_all option flag */ 11 13 2 db_file_opt, /* -debug_file option flag */ 11 14 2 device_opt, /* -device option flag */ 11 15 2 execute_opt, /* -execute option flag */ 11 16 2 from_opt, /* -from option flag */ 11 17 2 galley_opt, /* -galley option flag */ 11 18 2 hyph_opt, /* -hyphenation option flag */ 11 19 2 indent_opt, /* -indent option flag */ 11 20 2 input_file_opt, /* -input_file option flag */ 11 21 2 linespace_opt, /* -linespace option flag */ 11 22 2 output_file_opt, /* -output_file option flag */ 11 23 2 pages_opt, /* -pages option flag */ 11 24 2 page_chng_opt, /* -pages_changed option flag */ 11 25 2 parameter_opt, /* -parameter option flag */ 11 26 2 passes_opt, /* -passes option flag */ 11 27 2 tdir_opt, /* -temp_dir option flag */ 11 28 2 to_opt, /* -to option flag */ 11 29 /* Options without parameters */ 11 30 2 annot_opt, /* -annotate */ 11 31 2 brief_opt, /* -brief option flag */ 11 32 2 check_opt, /* -check option flag */ 11 33 2 cws_opt, /* -cws option flag */ 11 34 2 db_pause_opt, /* -debug_pause option flag */ 11 35 2 noart_opt, /* -noart option flag */ 11 36 2 nobell_opt, /* -no_bell option flag */ 11 37 2 nofill_opt, /* -nofill option flag */ 11 38 2 nohit_opt, /* -nohit option flag */ 11 39 2 number_opt, /* -number option flag */ 11 40 2 number_append_opt, /* -number_append option flag */ 11 41 2 number_brief_opt, /* -number_brief option flag */ 11 42 2 stop_opt, /* -stop option flag */ 11 43 2 wait_opt) unal bit (1), /* -wait option flag */ 11 44 2 MBZ bit (2) unal, 11 45 /* Optional parameters */ 11 46 2 arg_count fixed bin, /* count of -ag values */ 11 47 2 cbar, /* change bar data */ 11 48 3 level char (1), /* change level character (ASCII NUL) */ 11 49 3 place char (1), /* placement character */ 11 50 3 space fixed bin (31), /* extra left margin space needed */ 11 51 3 left, /* left margin mark data */ 11 52 4 sep fixed bin (31), /* separation */ 11 53 4 width fixed bin (31), /* mark width */ 11 54 4 mark char (80) varying, /* the left margin mark */ 11 55 3 right, /* right margin mark data */ 11 56 4 sep fixed bin (31), /* separation */ 11 57 4 width fixed bin (31), /* mark width */ 11 58 4 mark char (80) varying, /* the right margin mark */ 11 59 3 del, /* deletion mark data */ 11 60 4 sep fixed bin (31), /* separation */ 11 61 4 width fixed bin (31), /* mark width */ 11 62 4 mark char (80) varying, /* the deletion mark */ 11 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 11 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 11 65 2 db_file char (200) var, /* file pathanme for debug */ 11 66 2 db_file_after fixed bin (35), /* debug file starting line */ 11 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 11 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 11 69 2 device char (32) varying, /* output device */ 11 70 2 extra_indent fixed bin (31), /* extra indent value */ 11 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 11 72 2 line_1 fixed bin (35), /* initial line for output */ 11 73 2 line_2 fixed bin (35), /* final line for output */ 11 74 2 linespace fixed bin (31), /* line spacing value */ 11 75 2 pglstct fixed bin (35), /* number of page list entries */ 11 76 2 pglstndx fixed bin (35), /* index for -pages list */ 11 77 2 pglst (0:49), /* list of requested pages */ 11 78 3 from char (32) var, 11 79 3 to char (32) var, 11 80 2 parameter char (80) varying, /* parameter from command line */ 11 81 2 passes fixed bin, /* passes remaining */ 11 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 11 83 11 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 11 85 1 14 12 1 /* BEGIN INCLUDE FILE ..... comp_output.incl.pl1 ..... 08/29/78 J Falksen */ 12 2 12 3 /* This include file describes the format of compout files. "Ordinary" compout 12 4* files, i.e. printer or ascii, will be written to stream files. All others 12 5* are not dprint-able and are written to sequential files. 12 6* 12 7* The first record is a file header which contains information necessary for 12 8* processing by process_compout. 12 9* 12 10* Each record thereafter contains one page image of data */ 12 11 12 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 13 12 14 dcl filedata_version_2 12 15 fixed bin static options (constant) init (2); 12 16 dcl filedata_version_3 12 17 fixed bin static options (constant) init (3); 12 18 dcl filedata_version_4 12 19 fixed bin static options (constant) init (4); 12 20 12 21 dcl fileheader_ptr ptr init (null); 12 22 dcl 1 fileheader aligned based (fileheader_ptr), 12 23 2 version fixed bin, /* version of this file */ 12 24 2 device_class 12 25 char (32), 12 26 2 device_name /* generic device name */ 12 27 char (32), 12 28 2 device char (32), /* logical device name */ 12 29 2 recleng fixed bin, /* mag tape record length */ 12 30 2 max_pages fixed bin, /* max pages/record, -1=unlimited */ 12 31 /* max_files not defined version 2 */ 12 32 2 max_files fixed bin, /* max files/tape, -1=unlimited */ 12 33 /* page_len not defined in version 3 */ 12 34 2 page_len fixed bin (21), /* page length */ 12 35 2 cleanup_leng /* device cleanup string */ 12 36 fixed bin, 12 37 2 cleanup char (l_cleanup), 12 38 2 comment_leng /* comment string - info for pco */ 12 39 fixed bin, 12 40 2 comment char (l_comment); 12 41 12 42 dcl l_comment fixed bin; /* comment length */ 12 43 dcl l_cleanup fixed bin; /* cleanup length */ 12 44 /* data record */ 12 45 dcl record_ptr ptr init (null); 12 46 dcl 1 record aligned based (record_ptr), 12 47 2 header, 12 48 3 pageid char (32), /* page identification 12 49* ("-1" means a galley block) */ 12 50 3 changed bit (1) unal, /* 1- this is a changed page */ 12 51 3 front bit (1) unal, /* 1- this is a front page */ 12 52 3 pending bit (1) unal, /* 1- page has been processed 12 53* but not printed */ 12 54 3 blank bit (1) unal, /* 1- intentional blank page */ 12 55 3 MBZ bit (32) unal, /* pad to word boundary */ 12 56 2 page_record 12 57 bit (36); /* base location of output structure */ 12 58 12 59 /* The output writer returns a catenated set of text strings. Each string has 12 60* a control preface. The last string in the list has output.nextref = "0"b */ 12 61 12 62 dcl page_record_ptr 12 63 ptr init (null); 12 64 dcl 1 page_record aligned based (page_record_ptr), 12 65 2 sws, 12 66 3 in_use bit (1) unal, /* 1- in use (so nextref ^= "0"b ) */ 12 67 3 rawo bit (1) unal, /* 1- text needs raw mode */ 12 68 3 halt bit (1) unal, /* 1- halt to change wheels */ 12 69 3 halt2 bit (1) unal, /* 1- halt AFTER changing wheels */ 12 70 3 halt3 bit (1) unal, /* reserved for future use */ 12 71 3 halt4 bit (1) unal, /* 1- mid-page wait */ 12 72 3 preface bit (1) unal, /* 1- control preface, this text */ 12 73 /* must be processed whenever it */ 12 74 /* is different than the */ 12 75 /* previous one. */ 12 76 3 id_preface /* 1- identification preface, this */ 12 77 bit (1) unal, /* to be included only at the */ 12 78 /* beginning of an output file. */ 12 79 /* In general, they will never */ 12 80 /* match each other (unless page */ 12 81 /* ids are duplicated). */ 12 82 3 pad bit (22) unal, /* pad to last byte */ 12 83 3 pwheel fixed bin (6) unal uns, 12 84 2 leng fixed bin (24), /* actual output text */ 12 85 2 text char (16384 refer (page_record.leng)), 12 86 2 nextref bit (36); /* location of next if any */ 12 87 12 88 /* END INCLUDE FILE ..... comp_output.incl.pl1 ..... */ 1 15 13 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 13 2 13 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 4 13 5 dcl max_image_lines 13 6 fixed static options (constant) init (1000); 13 7 dcl max_cols fixed static options (constant) init (20); 13 8 13 9 dcl page_version fixed bin static options (constant) init (5); 13 10 /* composed page structure */ 13 11 dcl 1 page aligned based (const.page_ptr), 13 12 2 version fixed bin, /* version of this structure */ 13 13 2 parms aligned like page_parms, 13 14 /* page formatting parameters */ 13 15 2 hdr aligned like page_header, 13 16 /* page control stuff */ 13 17 2 image_ptr ptr, /* pointer to the madeup page image */ 13 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 13 19 2 col_image_ptr 13 20 (-2:21) ptr; /* pointers to column images */ 13 21 /* col -1 is for line numbers and */ 13 22 /* left margin change bars; */ 13 23 /* col -2 is for */ 13 24 /* right margin change bars */ 13 25 /* and/or annotation * / 13 26* /* page control stuff */ 13 27 dcl 1 page_header aligned based (const.page_header_ptr), 13 28 2 sws, 13 29 3 art bit (1) unal, /* 1 = header/footer art */ 13 30 3 blankpage 13 31 bit (1) unal, /* 1 = intentional blank page */ 13 32 3 frontpage 13 33 bit (1) unal, /* 1 = odd page number */ 13 34 3 headed bit (1) unal, /* 1 = page header has been written */ 13 35 3 modified bit (1) unal, /* 1 = page has been modified */ 13 36 3 overflow bit (1) unal, /* OBSOLETE */ 13 37 3 MBZ bit (12) unal, 13 38 3 dot_addltr 13 39 char (1) unal, /* dot page add letter, if any */ 13 40 3 pgc_select 13 41 char (1) unal, /* for selecting change pages */ 13 42 2 baldepth fixed bin (31), /* page depth at balance point */ 13 43 2 balusd fixed bin (31), /* space used at balance point */ 13 44 2 col_count fixed bin, /* highest value of col_index for the page */ 13 45 2 col_index fixed bin, /* column index */ 13 46 2 depth fixed bin (31), /* current page depth */ 13 47 2 hdspc fixed bin (31), /* TOP white space */ 13 48 2 lmarg fixed bin (31), /* left margin for this page */ 13 49 2 net fixed bin (31), /* net usable space on the page */ 13 50 2 pageno char (32) var, /* current page number */ 13 51 2 used fixed bin (31); /* space already used on the page */ 13 52 13 53 dcl page_image_version 13 54 fixed bin (35) static options (constant) init (2); 13 55 /* structure passed to writers */ 13 56 dcl 1 page_image aligned based (page.image_ptr), 13 57 2 version fixed bin (35), /* structure version no */ 13 58 2 count fixed bin, /* count of page image lines */ 13 59 2 file_id char (32) var, /* compout identifier */ 13 60 2 func fixed bin, /* function code; 0 = build, 13 61* 1 = intialize, 2 = cleanup */ 13 62 2 text_ptr ptr, /* pointer to the text area */ 13 63 /* the image lines */ 13 64 2 line (max_image_lines), 13 65 3 sws, 13 66 4 quad bit (6) unal, /* text set position flags */ 13 67 4 art bit (1) unal, /* 1 = artwork in the line */ 13 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 13 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 13 70 4 white bit (1) unal, /* line is white */ 13 71 4 MBZ bit (26) unal, 13 72 3 depth fixed bin (31), /* page depth for the text */ 13 73 3 gaps fixed bin, /* number of WS gaps in the line */ 13 74 3 info like text_entry.info, 13 75 /* input file info */ 13 76 3 lead fixed bin (31), /* lead value if trailing WS */ 13 77 3 lfnt fixed bin, /* font at the left margin */ 13 78 3 lmarg fixed bin (31), /* text left margin position */ 13 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 13 80 3 net fixed bin (31), /* net width for filling */ 13 81 3 pos fixed bin (31), /* current horiz position */ 13 82 3 ptr ptr, /* pointer to the text */ 13 83 3 rmarg fixed bin (31), /* text right margin position */ 13 84 3 width fixed bin (31); /* width of the text */ 13 85 /* current page formatting parms */ 13 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 13 87 2 init_page_depth 13 88 fixed bin (31), /* initial page depth */ 13 89 2 length fixed bin (31), /* page length */ 13 90 2 lmarg, /* page left margin */ 13 91 3 even fixed bin (31), 13 92 3 odd fixed bin (31), 13 93 2 margin, /* margin values */ 13 94 3 top fixed bin (31), 13 95 3 header fixed bin (31), 13 96 3 footer fixed bin (31), 13 97 3 bottom fixed bin (31), 13 98 2 measure fixed bin (31), /* line space available for text */ 13 99 2 net, /* net usable space on page */ 13 100 3 even fixed bin (31), /* even pages */ 13 101 3 odd fixed bin (31), /* odd pages */ 13 102 /* arrays at the end */ 13 103 2 cols, /* columns defined for the page */ 13 104 3 bal bit (1) unal, /* column balancing control flag */ 13 105 3 MBZ bit (17) unal, 13 106 3 count fixed bin unal; /* the number of columns */ 13 107 /* default page formatting parms */ 13 108 dcl 1 init_page_parms 13 109 aligned like page_parms 13 110 based (const.init_page_parms_ptr); 13 111 13 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 1 16 14 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 14 2 14 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 14 4 14 5 dcl shared_version fixed bin (35) static options (constant) init (17); 14 6 14 7 dcl 1 shared aligned based (const.shared_ptr), 14 8 2 version fixed bin (35), /* version of this structure */ 14 9 2 chars, 14 10 ( 3 sym_delim, /* delimiter for symbols */ 14 11 3 ttl_delim, /* delimiter for title parts */ 14 12 3 wrd_brkr /* word break character */ 14 13 ) char (1) unal, 14 14 3 PAD char (1) unal, 14 15 2 cbar_type char (4) var, /* change bar type */ 14 16 2 dot_add_letter /* dot page add letter */ 14 17 char (1) var, 14 18 2 EN_width fixed bin (31), /* width of EN in current font */ 14 19 2 eqn_refct fixed bin, /* equation reference counter */ 14 20 2 footref_fcs /* footnote ref FCS string */ 14 21 char (8) aligned, 14 22 2 ftn_reset char (8) var, /* footnote reset mode */ 14 23 2 ftnrefct fixed bin, /* footnote ref counter */ 14 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 14 25 2 if_nest, /* if/then/else logic control */ 14 26 3 ndx fixed bin, /* depth of logic nest */ 14 27 3 e (25), /* nest entries */ 14 28 /* .if control switch */ 14 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 14 30 4 info aligned like text_entry.info, 14 31 4 line char (256) var, /* the control line */ 14 32 2 indctl, /* indent ctls stack */ 14 33 3 ndx fixed bin, /* current level */ 14 34 /* switch bits */ 14 35 3 stk (0:35) bit (1) unal, 14 36 2 input_dirname 14 37 char (168) var, /* dir containing current input file */ 14 38 2 input_filename 14 39 char (200) var, /* current input file name */ 14 40 2 lead fixed bin (31), /* current linespacing value */ 14 41 2 lit_count fixed bin (35), /* count of literal lines */ 14 42 2 next_pagenmbr 14 43 char (32) var, /* next page number / */ 14 44 2 output_file 14 45 char (32) var, /* output file identifier */ 14 46 2 pagecount fixed bin, /* number of pages produced */ 14 47 2 pagenum, /* page number structure */ 14 48 3 index fixed bin, /* level currently counting */ 14 49 ( 14 50 3 sep char (1) unal, /* separator chars */ 14 51 3 nmbr fixed bin (31), /* the counters */ 14 52 3 mode /* display modes */ 14 53 fixed bin (8) unal 14 54 ) dimension (20), 14 55 2 parameter char (254) var, /* command line parameter */ 14 56 2 param_pres bit (1), /* passed parameter flag */ 14 57 2 pass_counter 14 58 fixed bin, /* pass counter */ 14 59 2 picture, /* picture blocks */ 14 60 3 count fixed bin, /* number of them */ 14 61 3 space fixed bin (31), /* total picture space */ 14 62 3 blk (10), /* picture blocks */ 14 63 4 type char (4), /* type = page/col */ 14 64 4 place char (4), /* place = top/cen/bot */ 14 65 4 ptr ptr, /* pointer to block */ 14 66 4 size fixed bin (31), /* size of the picture */ 14 67 2 ptrs, 14 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 14 69 3 blank_footer_ptr, /* -> blank page footer */ 14 70 3 blank_header_ptr, /* -> blank page header */ 14 71 3 blank_text_ptr, /* -> blank page text */ 14 72 3 blkptr, /* -> active text */ 14 73 3 colptr, /* current column */ 14 74 3 compout_ptr, /* iocb pointer for output */ 14 75 3 compx_ptr, /* iocb pointer for compx file */ 14 76 3 ctb_ptr, /* current line artwork table */ 14 77 3 epftrptr, /* even page footer block */ 14 78 3 ephdrptr, /* even page header block */ 14 79 3 fcb_ptr, /* input file control block pointer */ 14 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 14 81 3 footnote_header_ptr, /* footnote header "title" */ 14 82 3 graphic_page_ptr, /* graphic output page */ 14 83 3 hit_data_ptr, /* hit data pointer */ 14 84 3 htab_ptr, /* horizontal tab tables */ 14 85 3 hwrd_data_ptr, /* local hyphenation table */ 14 86 3 insert_ptr, /* data entry for current input file */ 14 87 3 opftrptr, /* odd page footer block */ 14 88 3 ophdrptr, /* odd page header block */ 14 89 3 ptb_ptr, /* previous line artwork table */ 14 90 3 spcl_blkptr, /* "special" block pointer */ 14 91 3 tbldata_ptr, /* table column data structure */ 14 92 3 tblkdata_ptr, /* text block data array */ 14 93 3 text_header_ptr /* empty text header structure */ 14 94 ) ptr, 14 95 2 scale, /* space conversion scale factors */ 14 96 3 horz fixed bin (31), /* horizontal */ 14 97 3 vert fixed bin (31), /* vertical */ 14 98 2 source_filename 14 99 char (200) var, /* current source file name */ 14 100 2 sws, /* switch bits */ 14 101 ( 3 bug_mode, /* debug mode */ 14 102 3 compout_not_headed, /* compout is not headed */ 14 103 3 end_input, /* EOF for current input file */ 14 104 3 end_output, /* no more output is wanted */ 14 105 3 firstpass, /* first pass over input */ 14 106 3 ftn_mode, /* in footnote mode */ 14 107 3 hyph_mode, /* hyphenating mode */ 14 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 14 109 3 literal_mode, /* literal line mode flag */ 14 110 3 pageblock, /* blocks belong to page */ 14 111 3 picture_mode, /* building a picture */ 14 112 3 print_flag, /* producing output */ 14 113 3 purge_ftns, /* purging footnotes */ 14 114 3 suppress_footref, /* suppress next footnote ref */ 14 115 3 table_mode /* table mode */ 14 116 ) bit (1) unal, 14 117 3 MBZ bit (21) unal, 14 118 2 trans, /* trans table for .tr */ 14 119 3 in char (128) var, /* input chars */ 14 120 3 out char (128) var, /* output chars */ 14 121 2 widow_size fixed bin (31), /* widow size */ 14 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 14 123 /* to save shared data between files/passes */ 14 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 14 125 14 126 dcl dot_addltr_symb_index 14 127 fixed bin static options (constant) init (12); 14 128 dcl max_text_lines fixed bin static options (constant) init (1000); 14 129 dcl mode_string char (16) static options (constant) 14 130 init ("arbihxocalaurlru"); 14 131 /* value overlays */ 14 132 dcl flag_value bit (1) based; 14 133 dcl num_value fixed bin (31) based; 14 134 14 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 1 17 15 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 15 2 15 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 15 4 15 5 dcl 1 tblkdata /* data for allocated text blocks */ 15 6 aligned based (shared.tblkdata_ptr), 15 7 2 block, /* block pool */ 15 8 3 count fixed bin, 15 9 3 ptr (500) ptr, /* block pointers */ 15 10 /* block state flags */ 15 11 3 free (500) bit (1) unal, 15 12 2 line_area, /* line area pool */ 15 13 3 count fixed bin, 15 14 3 ptr (500) ptr, /* area pointers */ 15 15 /* area state flags */ 15 16 3 free (500) bit (1) unal, 15 17 2 text_area, /* text area pool */ 15 18 3 count fixed bin, 15 19 3 ptr (500) ptr, /* area pointers */ 15 20 /* area state flags */ 15 21 3 free (500) bit (1) unal, 15 22 3 string_area_count 15 23 fixed bin; /* line areas */ 15 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 15 25 dcl line_area_ptr ptr init (null); 15 26 dcl 1 line_area aligned based (line_area_ptr), 15 27 2 next ptr, /* forward thread */ 15 28 2 prev ptr, /* backward thread */ 15 29 2 count fixed bin, /* number of lines allocated */ 15 30 2 ndx fixed bin, /* index of current line */ 15 31 2 pndx fixed bin, /* area pool index */ 15 32 2 linptr (LINE_AREA_SIZE) ptr; 15 33 /* text areas */ 15 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 15 35 dcl text_area_ptr ptr init (null); 15 36 dcl 1 text_area aligned based (text_area_ptr), 15 37 2 next ptr, /* forward thread */ 15 38 2 count fixed bin, /* number of areas allocated */ 15 39 2 ndx fixed bin, /* index of current strarea */ 15 40 2 pndx fixed bin, /* area pool index */ 15 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 15 42 /* text string area */ 15 43 dcl string_area (256) fixed bin based; 15 44 dcl txtstrptr ptr; /* current text string */ 15 45 dcl txtstr char (1020) var based (txtstrptr); 15 46 15 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 15 48 /* general text block */ 15 49 dcl 1 text aligned based (shared.blkptr), 15 50 2 version fixed bin, /* version of structure */ 15 51 2 blkndx fixed bin, /* block data index */ 15 52 2 blktype char (2), /* block type code */ 15 53 /* dynamic block control stuff */ 15 54 2 hdr aligned like text_header, 15 55 /* text read from input file */ 15 56 2 input aligned like text_entry, 15 57 2 input_line char (1020) var,/* input buffer */ 15 58 2 line_area, 15 59 3 first ptr, /* head of line area thread */ 15 60 3 cur ptr, /* current line area */ 15 61 2 next_text ptr, /* next text string */ 15 62 /* text formatting parameters */ 15 63 2 parms aligned like default_parms, 15 64 2 text_area, 15 65 3 first ptr, /* head of text area thread */ 15 66 3 cur ptr; /* current text area */ 15 67 /* an empty text block line */ 15 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 15 69 2 sws, /* unaligned switches, etc. */ 15 70 3 art bit (1) unal, /* line has artwork */ 15 71 3 cbar, /* change bar flags */ 15 72 4 add bit (1) unal, /* text addition flag */ 15 73 4 del bit (1) unal, /* text deletion flag */ 15 74 4 mod bit (1) unal, /* text modification flag */ 15 75 3 default bit (1) unal, /* 1 = default case as needed */ 15 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 15 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 15 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 15 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 15 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 15 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 15 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 15 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 15 84 3 oflo bit (1) unal, /* line causes overflow */ 15 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 15 86 3 quad bit (6) unal, /* text alignment flags */ 15 87 3 space_added /* 1= line has added space */ 15 88 bit (1) unal, 15 89 3 spcl, /* special entry - not output text */ 15 90 4 file bit (1) unal, /* 1= output to special file */ 15 91 4 blk_splt /* 1= action at block split time */ 15 92 bit (1) unal, 15 93 4 page_mkup /* 1= action at page makeup time */ 15 94 bit (1) unal, 15 95 3 table bit (1) unal, /* 1= line is a table entry */ 15 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 15 97 3 title bit (1) unal, /* 1= line is a */ 15 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 15 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 15 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 15 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 15 102 3 white bit (1) unal, /* 1= line is white space */ 15 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 15 104 3 MBZ bit (4) unal, 15 105 2 art_start fixed bin unal, /* start of art string in line */ 15 106 2 art_len fixed bin unal, /* length of art string in line */ 15 107 2 cbar_level /* change level for cbars */ 15 108 char (1) aligned, 15 109 2 cur, /* current scanning data for line */ 15 110 3 chrct fixed bin, /* count of chars scanned */ 15 111 3 gaps fixed bin, /* gap count */ 15 112 3 width fixed bin (31), /* width of font chars */ 15 113 3 min fixed bin (31), /* width of min spbnds */ 15 114 3 avg fixed bin (31), /* width of avg spbnds */ 15 115 3 max fixed bin (31), /* width of max spbnds */ 15 116 3 font like fntstk_entry, 15 117 2 depth fixed bin (31), /* page depth for line */ 15 118 /* font at start of line */ 15 119 2 font like fntstk_entry, 15 120 2 index fixed bin (21), /* char index for line scanning */ 15 121 2 info, /* stuff created during line input */ 15 122 3 fileno fixed bin, /* input file index */ 15 123 3 lineno fixed bin, /* input file line number */ 15 124 3 lineno0 fixed bin, /* call_box0 line number */ 15 125 2 linespace fixed bin (31), /* linespace value for the line */ 15 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 15 127 2 mod_len fixed bin, /* length of modified text */ 15 128 2 mod_start fixed bin, /* index for start of modified text */ 15 129 2 net fixed bin (31), /* net line width for filling */ 15 130 2 ptr ptr, /* pointer to the actual text */ 15 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 15 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 15 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 15 134 2 tblcol fixed bin, /* column for table entries */ 15 135 2 title_delim 15 136 char (1) unal, /* title delimiter if a <title> */ 15 137 2 title_index 15 138 fixed bin, /* <title> block index for line */ 15 139 2 width fixed bin (31), /* width of text */ 15 140 2 ftn, /* footnote info for line */ 15 141 3 ct fixed bin, /* number of footnote refs */ 15 142 3 used fixed bin (31), /* space used */ 15 143 3 e (40), /* limit is arbitrary */ 15 144 4 blkndx fixed bin unal, /* block index of footnote - if this 15 145* value is 0, then .frf was used */ 15 146 4 refno fixed bin unal; /* reference number */ 15 147 15 148 dcl ( 15 149 quadi init ("40"b3), /* set to the inside margin */ 15 150 quado init ("20"b3), /* set to the outside margin */ 15 151 quadl init ("10"b3), /* set left */ 15 152 quadc init ("04"b3), /* set centered */ 15 153 quadr init ("02"b3), /* set right */ 15 154 just init ("01"b3) /* justified */ 15 155 ) bit (6) static options (constant); 15 156 /* control line structure */ 15 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 15 158 dcl ctl_line char (1020) var based (ctl.ptr); 15 159 15 160 dcl txtlinptr ptr; /* the current text line */ 15 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 15 162 /* empty text header structure */ 15 163 dcl 1 text_header aligned based (const.text_header_ptr), 15 164 2 sws, /* control switches */ 15 165 3 art bit (1) unal, /* block has artwork */ 15 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 15 167 3 modified bit (1) unal, /* block contains modified lines */ 15 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 15 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 15 170 3 tblblk bit (1) unal, /* a table block */ 15 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 15 172 3 white bit (1) unal, /* block is a white space block */ 15 173 3 picture bit (1) unal, /* picture block */ 15 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 15 175 3 MBZ bit (26) unal, 15 176 2 art_count fixed bin unal, /* to count input art lines */ 15 177 2 blkptr ptr, /* pointer to suspended block */ 15 178 2 cap_size fixed bin unal, /* line count of text caption */ 15 179 2 cap_used fixed bin (31), /* size of text caption */ 15 180 2 colno fixed bin unal, /* column owning the block */ 15 181 2 count fixed bin unal, /* line count for block */ 15 182 2 eqn_line_count 15 183 fixed bin unal, /* counter for equation lines */ 15 184 2 first_text fixed bin unal, /* OBSOLETE */ 15 185 2 ftn, /* footnotes */ 15 186 3 ct fixed bin, /* count */ 15 187 3 usd fixed bin (31), /* space used */ 15 188 3 blkndx (40) fixed bin, /* footnote block index values */ 15 189 2 head_size fixed bin, /* line count of text header */ 15 190 2 head_used fixed bin (31), /* size of text header */ 15 191 2 index fixed bin unal, /* block index of next output line */ 15 192 2 keep_count fixed bin unal, /* to count input keep lines */ 15 193 2 last_line fixed bin, /* last text line in column */ 15 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 15 195 2 name char (32) var, /* block name, if any */ 15 196 2 nofill_count /* to count nofill lines */ 15 197 fixed bin, 15 198 2 parms_ptr ptr, /* parms for suspended block */ 15 199 2 refer fixed bin, /* inter-block reference */ 15 200 2 refer_index /* OBSOLETE */ 15 201 fixed bin, /* a reference */ 15 202 2 split fixed bin, /* split point for balancing */ 15 203 2 trl_ws fixed bin (31), /* trailing WS */ 15 204 2 used fixed bin (31); /* page space used by a column/block */ 15 205 /* text formatting parameters */ 15 206 dcl 1 text_parms aligned like default_parms 15 207 based (const.text_parms_ptr); 15 208 15 209 dcl 1 current_parms 15 210 aligned like default_parms 15 211 based (const.current_parms_ptr); 15 212 15 213 dcl 1 default_parms 15 214 aligned based (const.default_parms_ptr), 15 215 2 sws, /* control switches */ 15 216 3 quad bit (6) unal, /* text alignment mode */ 15 217 3 art bit (1) unal, /* 1 = block countains artwork */ 15 218 3 cbar, /* change bar flags */ 15 219 4 add bit (1) unal, /* text addition flag */ 15 220 4 del bit (1) unal, /* text deletion flag for next line */ 15 221 4 mod bit (1) unal, /* text modification flag */ 15 222 3 fill_mode 15 223 bit (1) unal, /* 1 = fill mode ON */ 15 224 3 footnote bit (1) unal, /* block is a footnote */ 15 225 3 hfc bit (1) unal, /* OBSOLETE */ 15 226 3 htab_mode 15 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 15 228 3 keep bit (1) unal, /* keep mode */ 15 229 3 page bit (1) unal, /* block belongs to page, not text */ 15 230 3 title_mode 15 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 15 232 3 MBZ bit (19) unal, 15 233 2 ftrptr ptr, /* text caption block */ 15 234 2 cbar_level /* change level for cbars */ 15 235 char (1) aligned, 15 236 2 hdrptr ptr, /* text header block */ 15 237 2 left, /* left margin data */ 15 238 3 indent fixed bin (31), 15 239 3 undent fixed bin (31), 15 240 2 linespace fixed bin (31), /* line spacing value */ 15 241 2 measure fixed bin (31), /* line space for text */ 15 242 /* right margin data */ 15 243 2 right like default_parms.left, 15 244 2 fntstk, /* stack of last 20 font changes */ 15 245 3 index fixed bin, /* which one in use */ 15 246 /* entry(0) is the default */ 15 247 3 entry (0:19) like fntstk_entry; 15 248 15 249 dcl hfcblk_ptr ptr; 15 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 15 251 15 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 1 18 16 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 16 2* 16 3* This storage is converted from external (as declared) to internal by the 16 4* binder and contains items that must be accessible to both the bound and 16 5* unbound program. */ 16 6 16 7 /* Written: ??/??/7? - EJW 16 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 16 9* and removed the codes array; version 6. 16 10**/ 16 11 16 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 16 13 16 14 dcl 1 compstat$compconst 16 15 aligned like const ext static; 16 16 16 17 dcl const_version fixed bin (35) static options (constant) init (6); 16 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 16 19 fixed bin static options (constant) init (80); 16 20 dcl MAX_TREE_AREAS /* number of tree areas */ 16 21 fixed bin static options (constant) init (20); 16 22 16 23 dcl 1 const aligned based (compstat$compconst.ptr), 16 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 16 25 2 version fixed bin (35), /* structure version */ 16 26 2 art_symbols /* string of art symbols */ 16 27 char (28) aligned, 16 28 2 builtin_count /* count of builtin variables */ 16 29 fixed bin, 16 30 2 comp_dir char (200), /* dir in which compose lives */ 16 31 2 comp_version 16 32 char (8) var, /* compose version id */ 16 33 2 date_value char (8) var, /* current date */ 16 34 2 dsm_name char (32), /* device support module name */ 16 35 2 dvt_name char (32), /* device table name */ 16 36 2 max_seg_chars 16 37 fixed bin (35), /* char count in a max seg */ 16 38 2 null_str char (1) var, /* an empty string */ 16 39 2 ptrs, 16 40 ( 3 call_stk_ptr, /* -> insert call stack */ 16 41 3 colhdrptr, /* empty column header structure */ 16 42 3 ctl_ptr, /* input line structure */ 16 43 3 current_parms_ptr, /* current formatting parms */ 16 44 3 default_parms_ptr, /* default initial text parms */ 16 45 3 devptr, /* -> comp_dvt structure */ 16 46 3 dvidptr, /* -> comp_dvid structure */ 16 47 3 errblk_ptr, /* error message block pointer */ 16 48 3 footnote_parms_ptr, /* footnote formatting parms */ 16 49 3 fnttbldata_ptr, /* -> font table data */ 16 50 3 global_area_ptr, /* per invocation storage */ 16 51 3 init_page_parms_ptr, /* default initial page parms */ 16 52 3 insert_data_ptr, /* insert file data block */ 16 53 3 local_area_ptr, /* per file storage */ 16 54 3 loctbl_ptr, /* for font copying */ 16 55 3 option_ptr, /* program options block */ 16 56 3 outproc_ptr, /* device writer for cleanup */ 16 57 3 page_ptr, /* active page structure */ 16 58 3 page_header_ptr, /* empty page header structure */ 16 59 3 page_parms_ptr, /* page formatting parameter block */ 16 60 3 save_shared_ptr, /* saved shared data */ 16 61 3 shared_ptr, /* shared data structure */ 16 62 3 text_entry_ptr, /* empty text entry structure */ 16 63 3 text_header_ptr, /* empty text header structure */ 16 64 3 text_parms_ptr, /* main body formatting parms */ 16 65 3 tree_ptr /* symbol tree structure */ 16 66 ) ptr, 16 67 2 time_value char (6) var; /* time at start */ 16 68 16 69 /* Other external */ 16 70 dcl ( 16 71 ioa_, 16 72 ioa_$nnl 16 73 ) entry options (variable); 16 74 dcl iox_$error_output 16 75 ptr ext static, /* iocb pointer for error_output */ 16 76 iox_$user_input 16 77 ptr ext static, /* iocb pointer for user_input */ 16 78 iox_$user_output 16 79 ptr ext static; /* iocb pointer for user_output */ 16 80 dcl sys_info$max_seg_size 16 81 fixed bin (18) ext static; 16 82 16 83 /* END INCLUDE FILE compstat.incl.pl1 */ 1 19 1 20 1 21 /* END INCLUDE FILE ..... comp_outproc.incl.pl1 ..... */ 1792 1793 1794 end x9700_writer_; 1795 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 1123.0 x9700_writer_.pl1 >special_ldd>online>compose-04/17/85>x9700_writer_.pl1 1792 1 03/01/85 1412.0 comp_outproc.incl.pl1 >ldd>include>comp_outproc.incl.pl1 1-5 2 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 1-6 3 10/25/82 1241.3 comp_areas.incl.pl1 >ldd>include>comp_areas.incl.pl1 1-7 4 04/23/85 0912.3 comp_metacodes.incl.pl1 >special_ldd>online>compose-04/17/85>comp_metacodes.incl.pl1 1-8 5 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 1-9 6 03/01/85 1411.9 comp_dvid.incl.pl1 >ldd>include>comp_dvid.incl.pl1 1-10 7 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 1-11 8 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 1-12 9 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 1-13 10 04/23/85 0912.3 comp_font.incl.pl1 >special_ldd>online>compose-04/17/85>comp_font.incl.pl1 1-14 11 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 1-15 12 03/01/85 1412.0 comp_output.incl.pl1 >ldd>include>comp_output.incl.pl1 1-16 13 04/23/85 0912.4 comp_page.incl.pl1 >special_ldd>online>compose-04/17/85>comp_page.incl.pl1 1-17 14 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 1-18 15 04/23/85 0912.6 comp_text.incl.pl1 >special_ldd>online>compose-04/17/85>comp_text.incl.pl1 1-19 16 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 2-23 ref 2-21 2-40 2-40 CR 017013 constant char(1) initial unaligned dcl 4-6 ref 788 788 799 799 1220 1480 1490 1539 1540 1540 1540 1548 1593 1725 DC1 017012 constant char(1) initial unaligned dcl 4-6 ref 470 1344 1404 DCxx_p 013670 automatic pointer dcl 5-8 set ref 582* 585 588 588 588 588 588 588 600 607 622 628 633 634 638 641 641 646 654 654 657 657 661 665 665 668 668 675 675 678 678 683 702 726 736 1407* 1408 DEVIT constant char(1) initial unaligned dcl 4-6 ref 930 932 1237 1664 EM constant char(1) initial unaligned dcl 4-6 ref 1237 1651 1664 EM_width 000505 automatic fixed bin(31,0) dcl 74 set ref 1651* EN constant char(1) initial unaligned dcl 4-6 ref 1237 1382 1653 1664 EN_width 000506 automatic fixed bin(31,0) dcl 75 set ref 1341 1417 1653* FNL 017016 constant char(2) initial unaligned dcl 190 ref 1482 HUGE constant char(1) initial unaligned dcl 4-6 ref 1237 1664 Lfree 2 based fixed bin(35,0) level 2 dcl 2-32 set ref 2-41 2-45 2-49* 2-49 Lmarg 000523 automatic fixed bin(31,0) dcl 92 set ref 373* 424* 439* 439 447 447 459 603 1359 1359 1599 MAX_STR constant fixed bin(17,0) initial dcl 196 ref 1533 MEDIUM constant char(1) initial unaligned dcl 4-6 ref 1237 1664 NL 017014 constant char(1) initial unaligned dcl 4-6 ref 845 1475 1480 1490 1533 Nwords 000100 automatic fixed bin(17,0) dcl 2-26 set ref 2-40* 2-41 2-45 2-48 2-49 Ofree 1 based fixed bin(35,0) level 2 dcl 2-32 set ref 2-47 2-48* 2-48 P 000102 automatic pointer dcl 2-26 set ref 2-42* 2-43 2-44 2-47* 2-50 PENDOWN constant char(1) initial unaligned dcl 197 ref 1205 PENUP constant char(1) initial unaligned dcl 198 ref 1202 PLOT_OP parameter bit(1) unaligned dcl 1145 set ref 1137 1173* 1180 1211 Parea parameter pointer dcl 2-23 set ref 2-21 2-41 2-42* 2-44* 2-45 2-47 2-47 2-48 2-48 2-49 2-49 QNL 017015 constant char(2) initial unaligned dcl 199 ref 1492 SHIFT_OP 000107 constant bit(1) initial unaligned dcl 107 set ref 456* 545* 716* 824* 1551* 1595* SP_DC1 constant char(2) initial unaligned dcl 1328 ref 1386 STROKE constant char(1) initial unaligned dcl 4-6 ref 1237 1354 1354 1368 1370 1373 1374 1664 THICK constant char(1) initial unaligned dcl 4-6 ref 1237 1664 THIN constant char(1) initial unaligned dcl 4-6 ref 915 918 1237 1655 1664 THIN_width 001215 automatic fixed bin(31,0) dcl 123 set ref 1655* VECTOR_OP 000104 constant bit(1) initial unaligned dcl 140 set ref 731* 1598* Xctl 0(13) based bit(2) level 3 packed unaligned dcl 5-11 ref 654 657 661 Xmov 003224 automatic fixed bin(31,0) dcl 151 set ref 689* 692 Xmpts 003231 automatic fixed bin(31,0) dcl 156 set ref 654* 657* 659* 689 689 703* 703* 712 720 727* 727* Xmptstrk 003225 automatic fixed bin(31,0) dcl 152 set ref 424 426 428 447 447 513 513 513 513 535 535 535 535 559 559 559 559 588 588 689 703 703 720 808 808 1173 1173 1173 1173 1173 1173 1296 1296 1336 1338 1359 1359 1359 1359 1421 1540 1540 1540 1540 1560 1560 1560 1560 1560 1560 1587 1587 1650* 1661* Xpixel 003226 automatic fixed bin(31,0) dcl 153 set ref 302* 1341 1417 Xpos 003227 automatic fixed bin(31,0) dcl 154 set ref 300* 459 513 513 535 535 545 559 559 588 588 603 716 731 808 808 1121* 1162 1168 1170 1173 1173 1199 1220 1223 1296 1296 1540 1540 1540 1540 1550* 1560 1560 1560 1560 1569 1569* 1582 1594* 1595 1598 1725 1735* Xspc 003230 automatic fixed bin(31,0) dcl 155 set ref 318* 436* 437* 437 439 459* 511* 511 513 513 533* 533 535 535 545 545 547* 559 559 588 588 603 692* 692 703 703 712 716 716 718* 720* 731 732* 1582 1592* 1595 1596* Y_offs 013736 automatic fixed bin(31,0) dcl 1578 set ref 1581* 1595 Yctl 0(16) based bit(2) level 3 packed unaligned dcl 5-11 ref 665 668 675 678 Yinit 003232 automatic fixed bin(31,0) dcl 157 set ref 300* 357* 360* 410 Ymov 003233 automatic fixed bin(31,0) dcl 158 set ref 694* 697 Ympts 003237 automatic fixed bin(31,0) dcl 162 set ref 665* 668* 670* 675* 678* 680* 694 694 703* 703* 721 727* 727* Ypixel 003234 automatic fixed bin(31,0) dcl 159 set ref 303* 357 360 410 694 721 808 808 824 839 1173 1173 1173 1173 1173 1173 1296 1296 Ypos 003235 automatic fixed bin(31,0) dcl 160 set ref 300* 410 456 545 716 731 808 808 824 839 842 1120 1120* 1162 1169 1171 1173 1173 1296 1296 1512* 1551* 1595 1598* Yspc 003236 automatic fixed bin(31,0) dcl 161 set ref 318* 410* 411* 411 456 456 458* 545 545 547* 697* 697 703* 703* 716 716 718* 721* 731 732* 1596* abrt_sw 000241 internal static bit(1) initial dcl 1757 set ref 491 1758* 1759* 1787* addr builtin function dcl 164 ref 222 271 292 292 304 327 338 404 582 900 1118 1331 1348 1407 1458 area based structure level 1 unaligned dcl 2-32 arg based char unaligned dcl 1770 ref 1784 argl 013663 automatic fixed bin(17,0) dcl 1771 set ref 1777* 1784 argp 013664 automatic pointer dcl 1772 set ref 1777* 1784 auto_lead 000100 automatic fixed bin(31,0) dcl 64 set ref 300* 411 bad_chrs 000010 internal static varying char(128) dcl 67 set ref 252* 481 484* 484 bin builtin function dcl 164 ref 834 842 blatstr 000100 automatic varying char(1020) dcl 1074 set ref 1092* 1093* 1093 1093 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 14-7 ref 262 375 870 cbar 16(07) based bit(1) array level 4 packed unaligned dcl 13-56 ref 610 749 ch 003260 automatic char(1) unaligned dcl 895 set ref 913* 915 930 946 949 962 975 988 1002 1016 1029 1042 ch1 002111 automatic char(1) unaligned dcl 1208 set ref 1237* 1240 1243 1244* 1272* 1273 char_ndx 000101 automatic fixed bin(17,0) dcl 68 set ref 474* 476 497 499 510 532 556 1273* 1274 1275 chng 000100 automatic bit(1) unaligned dcl 1684 in procedure "set_media" set ref 1691* 1693 1704 1735 chng 000100 automatic bit(1) unaligned dcl 1614 in procedure "set_font" set ref 1616* 1618 1658 cleanup 003240 stack reference condition dcl 167 ref 298 314 code 000104 automatic fixed bin(35,0) dcl 2-26 in procedure "allocate" set ref 2-42* code parameter fixed bin(35,0) dcl 60 in procedure "x9700_writer_" set ref 49 205* 236* col_width 000102 automatic fixed bin(31,0) dcl 69 set ref 373* 426* 436 1336 1336* 1352 com_err_ 000256 constant entry external dcl 1768 ref 313 1780 comment based structure level 1 dcl 187 comment_ptr 003254 automatic pointer dcl 186 set ref 341* 342 comment_r 75 based bit(18) level 2 dcl 7-19 ref 341 comp_abort 000000 stack reference condition dcl 167 ref 1194 comp_dvid based structure level 1 dcl 6-17 comp_dvid_version 000072 constant fixed bin(17,0) initial dcl 6-14 set ref 231 247* comp_dvt based structure level 1 dcl 7-19 comp_error_table_$program_error 000246 external static fixed bin(35,0) dcl 176 set ref 485* 1190* comp_report_ 000264 constant entry external dcl 8-59 ref 292 comp_report_$ctlstr 000266 constant entry external dcl 8-61 ref 485 1190 comp_report_$exact 000270 constant entry external dcl 8-64 ref 1261 1265 comp_util_$display 000272 constant entry external dcl 8-77 ref 513 535 559 559 588 629 647 703 727 811 872 1092 1433 1497 1539 1559 1704 compstat$compconst 000274 external static structure level 1 dcl 16-14 const based structure level 1 dcl 16-23 count 1 based fixed bin(17,0) level 2 dcl 13-56 set ref 283* 289 369 824 824 ct based fixed bin(17,0) level 2 in structure "siztbl" dcl 10-38 in procedure "x9700_writer_" ref 1646 ct 003261 automatic fixed bin(17,0) dcl 896 in procedure "x9700_writer_" set ref 911* 918* 919 919* 921* 921 923 923* 932* 933 933* 935* 935 937 937* 949* 951 951* 953* 953 955 955* 962* 964 964* 966* 966 968 968* 975* 977 977* 979* 979 981 981* 988* 991 991* 993* 993 995 995* 1002* 1005 1005* 1007* 1007 1009 1009* 1016* 1018 1018* 1020* 1020 1022 1022* 1029* 1031 1031* 1033* 1033 1035 1035* 1042* 1044 1044* 1046* 1046 1048 1048* 1055* 1063 ctl 0(09) based structure level 2 in structure "dcxx" packed unaligned dcl 5-11 in procedure "x9700_writer_" ctl based structure level 1 dcl 15-157 in procedure "x9700_writer_" ctl_ptr 132 based pointer level 3 dcl 16-23 ref 292 292 cu 002112 automatic fixed bin(17,0) dcl 1209 set ref 1243* 1246 1251 1252 1275* 1277 1282 1284 cu_$arg_ptr 000260 constant entry external dcl 1769 ref 1777 datum parameter fixed bin(31,0) dcl 1131 ref 1129 1134 db_line 000243 internal static fixed bin(17,0) initial dcl 1766 set ref 375 1776* 1784* 1784 db_sw 000235 internal static bit(1) initial dcl 1740 set ref 237 262 375 870 1742* 1743* 1765* 1787* dcfs based structure level 1 packed unaligned dcl 5-80 dclong1_len constant fixed bin(17,0) initial dcl 5-62 ref 1346 dclong_val based structure level 1 packed unaligned dcl 5-54 dcshort_val based structure level 1 packed unaligned dcl 5-67 dcxx based structure level 1 packed unaligned dcl 5-11 debug_str 000103 automatic varying char(1020) dcl 70 set ref 628* 629* 646* 647* 702* 703* 726* 727* 1539* 1540* 1540 1540 1559* 1560* 1560 1560 debug_sw 000503 automatic bit(1) unaligned dcl 71 set ref 261* 262* 263 264 265 266 283 364 371* 379* 407 855 default_parms based structure level 1 dcl 15-213 depth 17 based fixed bin(31,0) array level 3 dcl 13-56 set ref 410 1076* 1076* detail_sw 000504 automatic bit(1) unaligned dcl 72 set ref 261* 263* 371* 380* 382* 447 805 820 1111 1173 1296 1392 1444 1497 1556 1587 1601 1621 1658 1693 1704 dev_stat_ptr 000052 internal static pointer initial dcl 73 set ref 222* 900 900* devfnt 0(18) based fixed bin(17,0) level 2 in structure "tstr" packed unaligned dcl 125 in procedure "x9700_writer_" set ref 331* 521 521 548 753 762* 1227 1527 1689 1693* 1718* devfnt 66 based fixed bin(17,0) array level 2 in structure "fnttbl" dcl 10-14 in procedure "x9700_writer_" ref 497 1637 device 204 based varying char(32) level 2 dcl 11-5 set ref 283* devptr 140 based pointer level 3 dcl 16-23 ref 279 281 302 303 341 341 349 349 357 360 442 834 834 divide builtin function dcl 164 ref 279 281 357 360 410 424 426 428 437 689 694 720 721 824 839 842 842 1134 1246 1282 1336 1338 1354 1354 1368 1370 1650 1651 1653 1655 dlen parameter fixed bin(24,0) dcl 890 set ref 884 1063* dstr 003262 automatic varying char(1020) dcl 897 set ref 923* 925* 927 937* 939* 941 955* 957* 959 968* 970* 972 981* 983* 985 995* 997* 999 1009* 1011* 1013 1022* 1024* 1026 1035* 1037* 1039 1048* 1050* 1052 dt_sw 000242 internal static bit(1) initial dcl 1761 set ref 263 380 1762* 1763* 1765* 1787* dtext parameter varying char dcl 889 ref 884 913 918 919 932 933 949 951 962 964 975 977 988 991 1002 1005 1016 1018 1029 1031 1042 1044 dvidptr 142 based pointer level 3 dcl 16-23 ref 231 246 endpage 120(26) based bit(9) level 3 packed unaligned dcl 7-19 ref 834 834 entry 6 based structure level 2 dcl 10-14 ercd 013666 automatic fixed bin(35,0) dcl 1773 set ref 307* 310 313* 1777* 1778 1780 1780* error_table_$noarg 000262 external static fixed bin(35,0) dcl 1774 ref 1780 error_table_$unimplemented_version 000244 external static fixed bin(35,0) dcl 172 ref 236 f 0(27) based fixed bin(9,0) level 2 packed unsigned unaligned dcl 5-80 ref 633 fcdevfnt 000507 automatic fixed bin(17,0) dcl 76 set ref 497* 513* 521 535* 548* 559* fcwidth 000510 automatic fixed bin(31,0) dcl 77 set ref 510* 511 513* 513 513 532* 533 535* 535 535 556* 557 559* 559 559 fileheader_ptr 013676 automatic pointer initial dcl 12-21 set ref 12-21* fileno 21 based fixed bin(17,0) array level 4 dcl 13-56 set ref 1076* first_line 000054 internal static bit(1) unaligned dcl 78 set ref 325* 1450 first_page 000055 internal static bit(1) initial dcl 79 set ref 254* 334 346* 1475 fntstk_entry based structure level 1 dcl 9-6 fnttbl based structure level 1 dcl 10-14 fnttbl_ptr 013672 automatic pointer initial dcl 10-13 set ref 476 485 497 499 510 532 556 10-13* 1240 1243 1244 1274 1275 1354 1354 1368 1370 1373 1374 1635* 1637 1646 1646 1650 1651 1651 1653 1653 1655 1655 1664 1664 1664 1664 1664 1664 1664 1664 fnttbldata based structure level 1 dcl 10-7 fnttbldata_ptr 150 based pointer level 3 dcl 16-23 ref 1076 1076 1076 1626 1635 1639 1641 1661 1698 1704 font 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 125 set ref 756 765 768 777 785 1719* font_in 000511 automatic fixed bin(17,0) dcl 80 set ref 300* 421 461 548* 686 712 781* 781 794* 794 1230* 1333 1527* 1616 1624 1626* 1626 1632* 1635 1636 1639 1641 1643 font_media 001126 automatic fixed bin(17,0) array dcl 97 set ref 300* 781* 785 785 794* 1643* font_size 000512 automatic fixed bin(31,0) dcl 81 set ref 300* 461 712 1616 1626* 1626* 1646* 1648* 1650 1651 1653 1655 1661* 1661* 1690 1693* 1693* fonts_done 000513 automatic bit(36) unaligned dcl 82 set ref 372* 756* 772 fonts_needed 000514 automatic bit(36) unaligned dcl 83 set ref 372* 772 1636* footref parameter varying char array dcl 865 set ref 860 868* 869* 872 872 872 func parameter fixed bin(17,0) dcl 54 ref 49 207 215 226 268 galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 11-5 ref 831 gaps 20 based fixed bin(17,0) array level 3 in structure "page_image" dcl 13-56 in procedure "x9700_writer_" set ref 442 1076* 1323 1351 gaps 000102 automatic fixed bin(17,0) dcl 1319 in procedure "pad_block" set ref 1351* 1354 1357 1359* 1368 1370 1372 1385 1395* hdr 15 based structure level 2 dcl 13-11 hot_chars 000012 constant char(9) initial unaligned dcl 193 ref 946 ichr 000517 automatic fixed bin(17,0) dcl 86 set ref 466* 468 582 588 628 641 641 646 702 726 736* 736* 1381* 1382 1382 1386 1386 1401 1402* 1402 1404 1407 1410 1411* 1411 1415* 1415 1426 1429 igap 000100 automatic fixed bin(17,0) dcl 1314 set ref 1370* 1372* 1372* 1373 1373* ilin 000056 internal static fixed bin(17,0) dcl 87 set ref 369* 375 391 404 405 410 411 414 415 424 424 426 426 428 428 442 461 461 461 461 610 610 749 749* 1076* 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1323 1336 1338 1351 1359 1359 image_ptr 40 based pointer level 2 dcl 13-11 ref 271 283 289 304 369 391 404 405 410 414 415 424 424 426 426 428 428 442 461 461 461 461 610 610 749 749 824 824 824 824 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1323 1336 1338 1351 1359 1359 in_use based bit(1) level 3 packed unaligned dcl 12-64 set ref 1510* incr parameter fixed bin(31,0) dcl 1109 ref 1104 1111 1115 1120 index builtin function dcl 164 ref 481 772 788 799 946 1480 1490 1639 1641 inf_media 003256 automatic bit(36) unaligned dcl 195 set ref 431* 768 1641* 1711 info 277 based structure level 3 in structure "text" dcl 15-49 in procedure "x9700_writer_" info 161 based structure level 2 in structure "ctl" dcl 15-157 in procedure "x9700_writer_" set ref 292 292 info 161 based structure level 2 in structure "txtlin" dcl 15-161 in procedure "x9700_writer_" info 277 based structure level 3 in structure "hfcblk" dcl 15-250 in procedure "x9700_writer_" info 161 based structure level 2 in structure "text_entry" dcl 15-68 in procedure "x9700_writer_" info 21 based structure array level 3 in structure "page_image" dcl 13-56 in procedure "x9700_writer_" set ref 404 ioa_ 000276 constant entry external dcl 16-70 ref 240 241 242 243 244 245 246 247 283 364 447 513 535 559 588 629 647 703 727 808 811 820 855 872 1093 1111 1173 1296 1378 1433 1444 1497 1540 1560 1587 1601 1661 1664 1704 ioa_$nnl 000300 constant entry external dcl 16-70 ref 1076 1359 1395 1624 1626 1693 ioa_$rsnnl 000250 constant entry external dcl 180 ref 923 937 955 968 981 995 1009 1022 1035 1048 j 000515 automatic fixed bin(17,0) dcl 84 set ref 1385* 1417 1421* jl_ptr 000104 automatic pointer dcl 1320 set ref 1331* just constant bit(6) initial unaligned dcl 15-148 ref 442 1076 just_line 000106 automatic varying char(1020) dcl 1321 set ref 1330* 1331 1382* 1382 1401* 1401 1410* 1410 1417* 1417 1422* 1422 1429* 1429 1430 1431 1433* justifying 120(01) based bit(1) level 3 packed unaligned dcl 7-19 ref 442 k 000516 automatic fixed bin(17,0) dcl 84 set ref 1386* 1389 1401 1402 1408* 1410 1411 1426* 1429 last_cr 1 based fixed bin(17,0) level 2 packed unaligned dcl 125 set ref 1504* 1530 1549* 1552 1560 1724* 1731* lead 24 based fixed bin(31,0) array level 3 dcl 13-56 set ref 824 1076* 1076* left 1016 based structure level 3 in structure "hfcblk" dcl 15-250 in procedure "x9700_writer_" left 1016 based structure level 3 in structure "text" dcl 15-49 in procedure "x9700_writer_" left 12 based structure level 2 in structure "default_parms" dcl 15-213 in procedure "x9700_writer_" left 12 based structure level 2 in structure "current_parms" dcl 15-209 in procedure "x9700_writer_" left 12 based structure level 2 in structure "text_parms" dcl 15-206 in procedure "x9700_writer_" len based fixed bin(21,0) level 2 in structure "comment" dcl 187 in procedure "x9700_writer_" ref 342 len based fixed bin(35,0) level 2 in structure "repl_str" dcl 10-30 in procedure "x9700_writer_" ref 559 1280 leng 0(18) based fixed bin(9,0) level 2 in structure "dcxx" packed unsigned unaligned dcl 5-11 in procedure "x9700_writer_" ref 588 628 641 641 646 702 726 736 1408 leng 1 based fixed bin(24,0) level 2 in structure "page_record" dcl 12-64 in procedure "x9700_writer_" set ref 272 324 834 834 844* 844 845 845 853 1497* 1497 1505* 1505 1506 1506 1510 leng 0(18) 000507 automatic fixed bin(9,0) level 2 in structure "pad_ctl" packed unsigned unaligned dcl 1325 in procedure "pad_block" set ref 1346* length builtin function dcl 164 in procedure "x9700_writer_" ref 393 559 788 788 799 799 808 808 811 811 919 933 951 964 977 991 1005 1018 1031 1044 1093 1093 1290 1431 1497 1497 1497 1505 1506 1506 1530 1531 1533 1540 1540 1540 1540 1540 1549 1552 1553 1560 1560 1560 1560 1560 1560 1722 1724 1728 length 2 based fixed bin(31,0) level 3 in structure "page" dcl 13-11 in procedure "x9700_writer_" ref 281 349 357 357 839 842 level 013724 automatic fixed bin(17,0) dcl 1441 set ref 1450* 1450* 1455* 1457* 1457* 1458 1468 1472 1497* 1503* 1503* level_skip 013725 automatic fixed bin(17,0) dcl 1442 set ref 1448* 1468* 1468* 1472 1485* 1493* 1503 lfnt 25 based fixed bin(17,0) array level 3 dcl 13-56 set ref 414 461 461* 1076* 1076 1076 1076 lg_sw 000237 internal static bit(1) initial dcl 1749 set ref 264 383 1750* 1751* 1765* 1787* line 16 based structure array level 2 dcl 13-56 line_area_ptr 013704 automatic pointer initial dcl 15-25 set ref 15-25* line_window_size 000522 automatic fixed bin(17,0) dcl 90 set ref 279* 280 842 1468 1472 lineinfoptr 000520 automatic pointer dcl 89 set ref 404* 485* 1190* 1261* 1265* lineno 22 based fixed bin(17,0) array level 4 dcl 13-56 set ref 1076* lmarg 26 based fixed bin(31,0) array level 3 dcl 13-56 set ref 424 424 1076* 1076* loctxt 000524 automatic varying char(1020) dcl 93 set ref 392* 395 468 485* 582 588 628 641 641 646 702 726 1092 1092 1190* 1381 1386 1401 1404 1407 1410 1429 1430* long_sw 001124 automatic bit(1) unaligned dcl 94 set ref 261* 264* 371* 383* 385* 588 625 643 699 723 1359 1378 1433 1536 1658 1664 lsize 27 based fixed bin(31,0) array level 3 dcl 13-56 set ref 415 461 461* mark 000507 automatic char(1) level 2 packed unaligned dcl 1325 set ref 1344* max builtin function dcl 164 ref 437 603 1117 1352 1368 1370 max_level 001125 automatic fixed bin(17,0) dcl 95 set ref 326* 337* 1117* 1117 1444* 1457 1472 max_revlead 000057 internal static fixed bin(31,0) dcl 96 set ref 256* med_chng 000101 automatic bit(1) unaligned dcl 1685 set ref 1689* 1691 1715 1722 media_font parameter fixed bin(17,0) dcl 1679 ref 1674 1708 1711 1719 media_size 001172 automatic fixed bin(31,0) dcl 98 set ref 300* 780* 793* 1690 1693* 1693* medsel based char(12) array unaligned dcl 10-36 ref 1639 1641 1698 1704 medsel_ptr 2 based pointer level 2 dcl 10-7 ref 1639 1641 1698 1704 medselstr 001173 automatic varying char(32) dcl 99 set ref 340* 551 758 788 788 799 799 1220 1234 1539 1540 1540 1540 1548 1593 1698* 1725 1732 min_WS 30 based fixed bin(31,0) level 2 dcl 7-19 ref 302 min_lead 31 based fixed bin(31,0) level 2 dcl 7-19 ref 279 281 303 mod builtin function dcl 2-26 ref 2-40 mrgtxt 16(08) based bit(1) array level 4 packed unaligned dcl 13-56 ref 610 749 name 40 based varying char(65) level 3 dcl 10-14 set ref 485* 1076* 1626* 1661* need_devfnt 001205 automatic fixed bin(17,0) dcl 101 set ref 300* 1227 1230* 1527 1527* 1637* 1639 1641 1643 need_font 001204 automatic fixed bin(17,0) dcl 100 set ref 414* 421 421* 633* 635* 686* 712 712* 772* 774 780* 785 793* 1333 1333* need_size 001206 automatic fixed bin(31,0) dcl 102 set ref 415* 421* 634* 635* 686* 712 712* 1333* net 30 based fixed bin(31,0) array level 3 dcl 13-56 ref 426 426 1336 new_devfnt parameter fixed bin(17,0) dcl 1680 set ref 1674 1689 1693* 1698 1704 1718 new_font parameter fixed bin(17,0) dcl 1611 set ref 1606 1616 1632 1661* 1661 new_len 000100 automatic fixed bin(17,0) dcl 1523 set ref 1531* 1533 1553* 1560* new_size parameter fixed bin(31,0) dcl 1612 set ref 1606 1616 1646* 1648 new_xpos parameter fixed bin(31,0) dcl 1146 ref 1137 1162 1170 1173 1173 1199 1224 1231 new_ypos parameter fixed bin(31,0) dcl 1147 ref 1137 1162 1171 1173 1173 1220 nextref based bit(36) level 2 dcl 12-64 set ref 853* noerr parameter bit(1) unaligned dcl 891 ref 884 null builtin function dcl 164 in procedure "x9700_writer_" ref 323 328 478 900 10-13 12-21 12-45 12-62 15-25 15-35 1124 1240 1460 null builtin function dcl 2-26 in procedure "allocate" ref 2-43 2-43 2-45 null_font_char 003246 stack reference condition dcl 167 ref 491 old_len 000101 automatic fixed bin(17,0) dcl 1524 set ref 1530* 1531 1540* 1540 1552* 1553 1560* old_xpos 000100 automatic fixed bin(31,0) dcl 1153 set ref 1168* old_ypos 000101 automatic fixed bin(31,0) dcl 1154 set ref 1169* 1220 open based bit(1) level 2 in structure "tstr" packed unaligned dcl 125 in procedure "x9700_writer_" set ref 345* 808 811 1122* 1296 1573* open based bit(1) array level 2 in structure "window" packed unaligned dcl 146 in procedure "x9700_writer_" set ref 1450 1468 option based structure level 1 dcl 11-5 option_ptr 164 based pointer level 3 dcl 16-23 ref 231 242 283 831 842 option_version 000117 constant fixed bin(35,0) initial dcl 11-3 set ref 231 243* outproc_ptr 166 based pointer level 3 dcl 16-23 set ref 229* p 1 based fixed bin(31,0) level 2 packed unaligned dcl 5-80 ref 634 pad_ctl 000507 automatic structure level 1 packed unaligned dcl 1325 set ref 1348 pad_ctl_ptr 000512 automatic pointer dcl 1326 set ref 1348* 1422 pad_string based char(7) unaligned dcl 1327 ref 1422 padeach 000101 automatic fixed bin(17,0) dcl 1314 set ref 1368* 1372 pads 000506 automatic fixed bin(17,0) array dcl 1323 set ref 1354* 1357 1359* 1373* 1373 1378* 1417 1421 padsize 000506 automatic fixed bin(17,0) dcl 1324 set ref 1352* 1354 1357* 1357 1359* 1367 1368 1370 1372 1374* 1374 page based structure level 1 dcl 13-11 page_header based structure level 1 dcl 13-27 page_image based structure level 1 dcl 13-56 page_parms based structure level 1 dcl 13-86 page_ptr 170 based pointer level 3 dcl 16-23 ref 231 244 271 281 283 283 289 292 304 349 357 357 369 391 404 405 410 414 415 424 424 426 426 428 428 442 461 461 461 461 610 610 749 749 824 824 824 824 839 842 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1190 1323 1336 1338 1351 1359 1359 page_record based structure level 1 dcl 12-64 in procedure "x9700_writer_" set ref 272* 324* page_record 11 based bit(36) level 2 in structure "record" dcl 12-46 in procedure "x9700_writer_" set ref 271 304 page_record_ptr 013702 automatic pointer initial dcl 12-62 set ref 271* 272 304* 324 834 834 844 844 845 845 853 12-62* 1497 1497 1505 1505 1506 1506 1510 1510 page_version 000072 constant fixed bin(17,0) initial dcl 13-9 set ref 231 245* pageno 26 based varying char(32) level 3 dcl 13-11 set ref 283* 292 1190* parms 1 based structure level 2 dcl 13-11 pdl_max 41 based fixed bin(31,0) level 2 dcl 7-19 ref 349 349 357 360 penctl 000102 automatic varying char(6) dcl 1155 set ref 1202* 1205* 1244* 1250 1272 1280* 1283 pf_sw 000240 internal static bit(1) initial dcl 1753 set ref 266 1754* 1755* 1787* pltstr 000105 automatic varying char(4090) dcl 1156 set ref 1166* 1220* 1220 1250* 1250 1283* 1283 1290 1290* pltwidth 002105 automatic fixed bin(31,0) dcl 1157 set ref 1165* 1223* 1223 1251* 1251 1284* 1284 1290* pointer builtin function dcl 164 ref 341 pref_sw 001207 automatic bit(1) unaligned dcl 104 set ref 261* 266* 513 535 559 ptr builtin function dcl 2-26 in procedure "allocate" ref 2-47 ptr 000274 external static pointer level 2 in structure "compstat$compconst" dcl 16-14 in procedure "x9700_writer_" ref 229 231 231 231 231 240 242 244 246 262 271 279 281 281 283 283 283 289 292 292 292 302 303 304 341 341 349 349 349 357 357 357 360 369 375 391 404 405 410 414 415 424 424 426 426 428 428 442 442 461 461 461 461 610 610 749 749 824 824 824 824 831 834 834 839 842 842 870 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1190 1323 1336 1338 1351 1359 1359 1626 1635 1639 1641 1661 1698 1704 ptr 32 based pointer array level 3 in structure "page_image" dcl 13-56 in procedure "x9700_writer_" ref 391 ptr 4 based pointer array level 2 in structure "fnttbldata" dcl 10-7 in procedure "x9700_writer_" ref 1076 1076 1076 1626 1635 1661 ptr parameter pointer dcl 866 in procedure "x9700_writer_" ref 860 ptrs 126 based structure level 2 dcl 16-23 quad 16 based bit(6) array level 4 in structure "page_image" packed unaligned dcl 13-56 in procedure "x9700_writer_" ref 405 quad 001210 automatic bit(6) unaligned dcl 105 in procedure "x9700_writer_" set ref 405* 433 433 437 442 1076 1076 1076 1076 1076 1076 1076 quadc constant bit(6) initial unaligned dcl 15-148 ref 433 437 1076 quadi constant bit(6) initial unaligned dcl 15-148 ref 1076 quadl constant bit(6) initial unaligned dcl 15-148 ref 1076 quado constant bit(6) initial unaligned dcl 15-148 ref 1076 quadr constant bit(6) initial unaligned dcl 15-148 ref 433 1076 record based structure level 1 dcl 12-46 record_ptr 013700 automatic pointer initial dcl 12-45 set ref 12-45* rel_units 3 based fixed bin(17,0) level 2 dcl 10-14 ref 1650 1651 1653 1655 repl_str based structure level 1 unaligned dcl 10-30 repl_str_ptr 013674 automatic pointer dcl 10-29 set ref 476* 478 555 559 559 559 1274* 1280 1280 replptr 1066 based pointer array level 2 dcl 10-14 ref 476 1240 1244 1274 replstr based varying char(256) dcl 10-33 set ref 555 559* 559 1244 1280 rmarg 34 based fixed bin(31,0) array level 3 dcl 13-56 set ref 1076* 1076* 1359* 1359* rtn_str 003662 automatic varying char(16384) dcl 898 set ref 910* 927* 927 941* 941 959* 959 972* 972 985* 985 999* 999 1013* 1013 1026* 1026 1039* 1039 1052* 1052 1066 runout 001211 automatic fixed bin(17,0) dcl 106 set ref 842* 844 845 845 845 scale parameter fixed bin(31,0) dcl 1132 ref 1129 1134 shared based structure level 1 dcl 14-7 shared_ptr 200 based pointer level 3 dcl 16-23 ref 231 240 262 375 870 shared_version 000103 constant fixed bin(35,0) initial dcl 14-5 set ref 231 241* size builtin function dcl 164 in procedure "x9700_writer_" ref 320 size 1 based fixed bin(31,0) array level 2 in structure "siztbl" dcl 10-38 in procedure "x9700_writer_" ref 1646 size 62 based fixed bin(31,0) level 3 in structure "fnttbl" dcl 10-14 in procedure "x9700_writer_" set ref 1076* 1076* size_chng 000102 automatic bit(1) unaligned dcl 1686 set ref 1690* 1691 siztbl based structure level 1 unaligned dcl 10-38 siztbl_ptr 4 based pointer level 2 dcl 10-14 ref 1646 1646 stat_blk 000060 internal static fixed bin(35,0) initial array dcl 109 set ref 220* 221* 222 900 903 906* 907* stop_opt 1(33) based bit(1) level 2 packed unaligned dcl 11-5 ref 842 str 1 based char level 2 packed unaligned dcl 187 ref 342 str_ptr 6 based pointer array level 2 in structure "window" dcl 146 in procedure "x9700_writer_" set ref 323* str_ptr 6 based pointer level 2 in structure "tstr" dcl 125 in procedure "x9700_writer_" set ref 328 328* 330 339* 344 551 610 758 761 788 788 788 788 788 799 799 799 799 799 808 808 811 811 811 811 1124 1124* 1234 1460 1463* 1464 1475 1475 1480 1480 1480 1480 1482 1482 1490 1490 1490 1490 1492 1492 1497 1497 1497 1497 1505 1506 1506 1506 1530 1548 1548 1549 1552 1560 1568 1568 1722 1724 1728 1730 string parameter varying char(4090) dcl 1519 set ref 1516 1531 1533 1533 1553 1559* 1560 1560 1560 1568 1571* substr builtin function dcl 164 set ref 395 468 582 588 628 641 641 646 702 726 756* 765 768 788 799 834* 845* 913 1092 1092 1272 1280 1386 1401 1404 1407 1410 1429 1506* 1533 1636* 1639* 1641* 1698 1708 1711 sup_media 003257 automatic bit(36) unaligned dcl 202 set ref 431* 765 1639* 1708 sws based structure level 2 in structure "page_record" dcl 12-64 in procedure "x9700_writer_" sws 120 based structure level 2 in structure "comp_dvt" packed unaligned dcl 7-19 in procedure "x9700_writer_" sws 4113 based structure level 2 in structure "shared" dcl 14-7 in procedure "x9700_writer_" sws 16 based structure array level 3 in structure "page_image" dcl 13-56 in procedure "x9700_writer_" tchr 001214 automatic char(1) unaligned dcl 122 set ref 468* 470 474 481 484 485* 485 485 513 535 559 text based structure level 1 dcl 15-49 in procedure "x9700_writer_" text 2 based char level 2 in structure "page_record" dcl 12-64 in procedure "x9700_writer_" set ref 834* 845* 1506* text_area_ptr 013706 automatic pointer initial dcl 15-35 set ref 15-35* text_entry based structure level 1 dcl 15-68 text_header based structure level 1 dcl 15-163 text_ptr 14 based pointer level 2 dcl 13-56 ref 271 304 text_sw 001212 automatic bit(1) unaligned dcl 120 set ref 261* 265* 371* 386* 388* 513 535 559 text_width 001213 automatic fixed bin(31,0) dcl 121 set ref 373* 428* 436 1338 1338* 1352 1359 1359 translator_temp_$get_next_segment 000302 constant entry external dcl 2-37 ref 2-42 translator_temp_$get_segment 000252 constant entry external dcl 181 ref 307 translator_temp_$release_all_segments 000254 constant entry external dcl 183 ref 1100 tstr based structure level 1 dcl 125 set ref 320 tstr_line based varying char(2048) dcl 136 set ref 330* 344* 551 610 758 761* 788 788 788 788* 788 799 799 799 799* 799 808 808 811 811 811 811 1234 1464* 1475* 1475 1480 1480 1480* 1480 1482* 1482 1490 1490 1490* 1490 1492* 1492 1497 1497 1497 1497* 1505 1506 1506 1506 1530 1548* 1548 1549 1552 1560 1568* 1568 1722 1724 1728 1730* tstr_ptr 001216 automatic pointer dcl 124 set ref 320 327* 328 328 330 331 338* 339 344 345 507 521 521 529 548 551 579 610 746 753 756 758 761 762 765 768 777 785 788 788 788 788 788 799 799 799 799 799 808 808 808 811 811 811 811 811 1118* 1120 1121 1122 1124 1124 1227 1234 1234 1296 1296 1458* 1460 1463 1464 1475 1475 1480 1480 1480 1480 1482 1482 1490 1490 1490 1490 1492 1492 1497 1497 1497 1497 1504 1505 1506 1506 1506 1512 1527 1530 1530 1548 1548 1549 1549 1551 1552 1552 1560 1560 1568 1568 1569 1573 1593 1594 1689 1693 1718 1719 1722 1724 1724 1728 1730 1731 1735 tx_sw 000236 internal static bit(1) initial dcl 1745 set ref 265 386 1746* 1747* 1787* txtlen 001220 automatic fixed bin(17,0) dcl 137 set ref 393* 395 395 400* 400 417 466 545 1076* 1076* 1092 1092 1386 1426 1431* txtstr based varying char(1020) dcl 15-45 ref 392 393 txtstrptr 013710 automatic pointer dcl 15-44 set ref 391* 392 393 type 0(09) 000507 automatic char(1) level 2 in structure "pad_ctl" packed unaligned dcl 1325 in procedure "pad_block" set ref 1345* type 0(09) based bit(3) level 3 in structure "dcxx" packed unaligned dcl 5-11 in procedure "x9700_writer_" ref 585 683 type 0(09) based char(1) level 2 in structure "dcfs" packed unaligned dcl 5-80 in procedure "x9700_writer_" ref 588 588 588 588 588 600 607 622 638 type_font constant char(1) initial unaligned dcl 5-90 ref 622 type_lit constant char(1) initial unaligned dcl 5-90 ref 638 type_slx constant char(1) initial unaligned dcl 5-90 ref 1345 type_unstart 017010 constant char(1) initial unaligned dcl 5-90 ref 588 588 600 type_unstop 017007 constant char(1) initial unaligned dcl 5-90 ref 588 588 607 type_wait 017011 constant char(1) initial unaligned dcl 5-90 ref 588 units 3066 based fixed bin(17,0) array level 2 dcl 10-14 set ref 510 532 556 1243 1275 1354 1354 1368 1370 1373 1374 1651 1653 1655 1664* 1664* 1664* 1664* 1664* 1664* 1664* 1664* unslen 013737 automatic fixed bin(31,0) dcl 1579 set ref 1582* 1584 1587 1587 1598 unspec builtin function dcl 164 set ref 272* 322* 324* 485 485 unstart 001221 automatic fixed bin(31,0) dcl 138 set ref 603* 1582 1592 1599* unstring 000224 internal static bit(1) unaligned dcl 139 set ref 253* 604* 610 617* 749 v1 0(27) based fixed bin(17,0) level 2 in structure "dcshort_val" packed unaligned dcl 5-67 in procedure "x9700_writer_" ref 654 675 v1 0(27) 000507 automatic fixed bin(31,0) level 2 in structure "pad_ctl" packed unaligned dcl 1325 in procedure "pad_block" set ref 1421* v1 0(27) based fixed bin(31,0) level 2 in structure "dclong_val" packed unaligned dcl 5-54 in procedure "x9700_writer_" ref 657 678 v2 1(09) based fixed bin(17,0) level 2 in structure "dcshort_val" packed unaligned dcl 5-67 in procedure "x9700_writer_" ref 665 v2 1(23) 000507 automatic fixed bin(31,0) level 2 in structure "pad_ctl" packed unaligned dcl 1325 in procedure "pad_block" set ref 1347* v2 1(23) based fixed bin(31,0) level 2 in structure "dclong_val" packed unaligned dcl 5-54 in procedure "x9700_writer_" ref 668 version based fixed bin(17,0) level 2 in structure "page" dcl 13-11 in procedure "x9700_writer_" set ref 231 244* version based fixed bin(17,0) level 2 in structure "comp_dvid" dcl 6-17 in procedure "x9700_writer_" set ref 231 246* version based fixed bin(35,0) level 2 in structure "shared" dcl 14-7 in procedure "x9700_writer_" set ref 231 240* version based fixed bin(35,0) level 2 in structure "option" dcl 11-5 in procedure "x9700_writer_" set ref 231 242* white 16(09) based bit(1) array level 4 in structure "page_image" packed unaligned dcl 13-56 in procedure "x9700_writer_" ref 824 white 0(01) based bit(1) level 2 in structure "tstr" packed unaligned dcl 125 in procedure "x9700_writer_" set ref 507* 529* 579* 746* 1234* 1296* white 4066 based bit(1) array level 2 in structure "fnttbl" packed unaligned dcl 10-14 in procedure "x9700_writer_" ref 499 width 35 based fixed bin(31,0) array level 3 in structure "page_image" dcl 13-56 in procedure "x9700_writer_" set ref 428 428 1076* 1076* 1338 width parameter fixed bin(31,0) dcl 1520 in procedure "put_str" set ref 1516 1560 1560 1560 1560 1569 1572* window based structure array level 1 dcl 146 set ref 322* 327 338 1118 1458 window_area_ptr 000226 internal static pointer initial dcl 141 set ref 307* 320* 328* 339* 1100* 1124* 1463* window_bottom 000230 internal static fixed bin(17,0) initial dcl 143 set ref 281* 283* 320 322 323 1186 window_level 001222 automatic fixed bin(17,0) dcl 144 set ref 326* 337* 447* 808* 1111* 1111 1115* 1115 1117 1118 1186 1186 1190* 1296* 1540* 1560* window_ptr 000232 internal static pointer initial dcl 145 set ref 320* 322 323 327 338 1118 1450 1458 1468 window_top 000234 internal static fixed bin(17,0) initial dcl 148 set ref 280* 283* 320 322 323 323 323 327 338 1118 1186 1450 1450 1455 1458 1468 word 001223 automatic varying char(4090) dcl 149 set ref 453* 502 505* 524 527* 555* 555 574 577* 741 744* wrdwidth 003223 automatic fixed bin(31,0) dcl 150 set ref 454* 505* 506* 527* 528* 535 535 557* 557 559 559 577* 578* 744* 745* xii 002106 automatic fixed bin(17,0) dcl 1158 set ref 1246* 1247 1250 1251 1252 1282* 1283 1284 xmove 002107 automatic fixed bin(31,0) dcl 1159 set ref 1165* 1170* 1173 1173 1199* 1214 1217 1224* 1231* 1246 1252* 1252 1255 1265 1269 1282 xpos 2 based fixed bin(31,0) level 2 dcl 125 set ref 1121 1551* 1569* 1593 1594* 1735* ymove 002110 automatic fixed bin(31,0) dcl 1160 set ref 1165* 1171* 1173 1173 1183 1186 1186 1197* 1198* 1261 ypos 3 based fixed bin(31,0) level 2 dcl 125 set ref 1120* 1512 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 4-6 BAD_CHAR internal static char(1) initial unaligned dcl 65 BEL internal static char(1) initial unaligned dcl 4-6 BRS internal static char(1) initial unaligned dcl 4-6 BSP internal static char(1) initial unaligned dcl 4-6 CAN internal static char(1) initial unaligned dcl 4-6 DC2 internal static char(1) initial unaligned dcl 4-6 DC3 internal static char(1) initial unaligned dcl 4-6 DC4 internal static char(1) initial unaligned dcl 4-6 DEL internal static char(1) initial unaligned dcl 4-6 DLE internal static char(1) initial unaligned dcl 4-6 EM_ internal static char(1) initial unaligned dcl 4-6 EMdash internal static char(1) initial unaligned dcl 4-6 ENQ internal static char(1) initial unaligned dcl 4-6 EN_ internal static char(1) initial unaligned dcl 4-6 ENd internal static char(1) initial unaligned dcl 4-6 EOT internal static char(1) initial unaligned dcl 4-6 ESC internal static char(1) initial unaligned dcl 4-6 ETB internal static char(1) initial unaligned dcl 4-6 ETX internal static char(1) initial unaligned dcl 4-6 FF internal static char(1) initial unaligned dcl 4-6 FS internal static char(1) initial unaligned dcl 4-6 GS internal static char(1) initial unaligned dcl 4-6 HAIR internal static char(1) initial unaligned dcl 4-6 HLF internal static char(1) initial unaligned dcl 4-6 HLR internal static char(1) initial unaligned dcl 4-6 HT internal static char(1) initial unaligned dcl 4-6 LF internal static char(1) initial unaligned dcl 4-6 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 15-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 16-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 16-18 NAK internal static char(1) initial unaligned dcl 4-6 NUL internal static char(1) initial unaligned dcl 4-6 NULs internal static varying char(4) initial dcl 103 PAD internal static char(1) initial unaligned dcl 4-6 PI internal static char(1) initial unaligned dcl 4-6 PS internal static char(1) initial unaligned dcl 4-6 RRS internal static char(1) initial unaligned dcl 4-6 RS internal static char(1) initial unaligned dcl 4-6 SI internal static char(1) initial unaligned dcl 4-6 SO internal static char(1) initial unaligned dcl 4-6 SOH internal static char(1) initial unaligned dcl 4-6 STX internal static char(1) initial unaligned dcl 4-6 SUB internal static char(1) initial unaligned dcl 4-6 SYN internal static char(1) initial unaligned dcl 4-6 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 15-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 15-47 US internal static char(1) initial unaligned dcl 4-6 VT internal static char(1) initial unaligned dcl 4-6 approx internal static char(1) initial unaligned dcl 4-6 bullet internal static char(1) initial unaligned dcl 4-6 comp_ 000000 constant entry external dcl 8-7 comp_area based area dcl 3-3 comp_art_ 000000 constant entry external dcl 8-8 comp_block_ctls_ 000000 constant entry external dcl 8-9 comp_break_ 000000 constant entry external dcl 8-11 comp_break_ctls_ 000000 constant entry external dcl 8-12 comp_ctls_ 000000 constant entry external dcl 8-14 comp_eject_page_ 000000 constant entry external dcl 8-15 comp_error_table_$limitation external static fixed bin(35,0) dcl 174 comp_expr_eval_ 000000 constant entry external dcl 8-17 comp_extr_str_ 000000 constant entry external dcl 8-21 comp_fill_ 000000 constant entry external dcl 8-24 comp_font_ 000000 constant entry external dcl 8-25 comp_format_ctls_ 000000 constant entry external dcl 8-26 comp_free based area dcl 3-5 comp_get_file_$find 000000 constant entry external dcl 8-28 comp_get_file_$open 000000 constant entry external dcl 8-31 comp_head_page_ 000000 constant entry external dcl 8-33 comp_hft_ctls_ 000000 constant entry external dcl 8-35 comp_hft_ctls_$title 000000 constant entry external dcl 8-36 comp_init_$one 000000 constant entry external dcl 8-38 comp_init_$three 000000 constant entry external dcl 8-40 comp_init_$two 000000 constant entry external dcl 8-39 comp_insert_ctls_ 000000 constant entry external dcl 8-42 comp_make_page_ 000000 constant entry external dcl 8-44 comp_make_page_$cleanup 000000 constant entry external dcl 8-46 comp_measure_ 000000 constant entry external dcl 8-48 comp_read_$line 000000 constant entry external dcl 8-57 comp_read_$name 000000 constant entry external dcl 8-50 comp_read_$number 000000 constant entry external dcl 8-53 comp_space_ 000000 constant entry external dcl 8-66 comp_tbl_ctls_ 000000 constant entry external dcl 8-68 comp_title_block_ 000000 constant entry external dcl 8-69 comp_update_symbol_ 000000 constant entry external dcl 8-71 comp_use_ref_ 000000 constant entry external dcl 8-74 comp_util_$add_text 000000 constant entry external dcl 8-75 comp_util_$escape 000000 constant entry external dcl 8-80 comp_util_$getblk 000000 constant entry external dcl 8-82 comp_util_$num_display 000000 constant entry external dcl 8-84 comp_util_$pageno 000000 constant entry external dcl 8-86 comp_util_$pictures 000000 constant entry external dcl 8-88 comp_util_$pop 000000 constant entry external dcl 8-91 comp_util_$push 000000 constant entry external dcl 8-92 comp_util_$relblk 000000 constant entry external dcl 8-94 comp_util_$replace_text 000000 constant entry external dcl 8-96 comp_util_$search_tree 000000 constant entry external dcl 8-98 comp_util_$set_bin 000000 constant entry external dcl 8-100 comp_util_$set_net_page 000000 constant entry external dcl 8-104 comp_util_$translate 000000 constant entry external dcl 8-106 comp_write_block_ 000000 constant entry external dcl 8-108 comp_write_page_ 000000 constant entry external dcl 8-110 compose_severity_ external static fixed bin(35,0) dcl 8-5 const_version internal static fixed bin(35,0) initial dcl 16-17 copystr automatic varying char(2048) dcl 1151 cright internal static char(1) initial unaligned dcl 4-6 ctl_line based varying char(1020) dcl 15-158 current_parms based structure level 1 dcl 15-209 dagger internal static char(1) initial unaligned dcl 4-6 dbldag internal static char(1) initial unaligned dcl 4-6 dcctl based structure level 1 packed unaligned dcl 5-34 dcfs_len internal static fixed bin(17,0) initial dcl 5-88 dclit based structure level 1 packed unaligned dcl 5-45 dclong_len internal static fixed bin(17,0) initial dcl 5-62 dcshort1_len internal static fixed bin(17,0) initial dcl 5-75 dcshort_len internal static fixed bin(17,0) initial dcl 5-75 delmark internal static char(1) initial unaligned dcl 4-6 delta internal static char(1) initial unaligned dcl 4-6 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 14-126 error_table_$fatal_error external static fixed bin(35,0) dcl 170 exit_str automatic varying char(32) dcl 1152 filedata_version_2 internal static fixed bin(17,0) initial dcl 12-14 filedata_version_3 internal static fixed bin(17,0) initial dcl 12-16 filedata_version_4 internal static fixed bin(17,0) initial dcl 12-18 fileheader based structure level 1 dcl 12-22 fixed builtin function dcl 164 flag_value based bit(1) unaligned dcl 14-132 fntstk_eptr automatic pointer dcl 9-5 font based structure level 1 unaligned dcl 10-68 font_ptr automatic pointer dcl 10-67 hfcblk based structure level 1 dcl 15-250 hfcblk_ptr automatic pointer dcl 15-249 i automatic fixed bin(17,0) dcl 1522 in procedure "put_str" i automatic fixed bin(17,0) dcl 84 in procedure "x9700_writer_" infin internal static char(1) initial unaligned dcl 4-6 init_page_parms based structure level 1 dcl 13-108 ioa_$rs 000000 constant entry external dcl 179 iox_$error_output external static pointer dcl 16-74 iox_$user_input external static pointer dcl 16-74 iox_$user_output external static pointer dcl 16-74 j automatic fixed bin(17,0) dcl 1522 jj automatic fixed bin(17,0) dcl 84 just_line automatic varying char(1020) dcl 88 l_cleanup automatic fixed bin(17,0) dcl 12-43 l_comment automatic fixed bin(17,0) dcl 12-42 line_area based structure level 1 dcl 15-26 ll automatic fixed bin(17,0) dcl 84 lquote internal static char(1) initial unaligned dcl 4-6 lslnt internal static char(1) initial unaligned dcl 4-6 max_cols internal static fixed bin(17,0) initial dcl 13-7 max_image_lines internal static fixed bin(17,0) initial dcl 13-5 max_text_lines internal static fixed bin(17,0) initial dcl 14-128 med_sel based structure level 1 unaligned dcl 10-116 med_sel_p automatic pointer dcl 10-115 medchar based varying char dcl 10-113 medchar_sel based structure level 1 unaligned dcl 10-110 medchar_sel_p automatic pointer dcl 10-109 medsel_table based structure level 1 unaligned dcl 10-86 medsel_table_ptr automatic pointer dcl 10-84 member based structure level 1 unaligned dcl 10-56 member_ptr automatic pointer dcl 10-55 min builtin function dcl 164 mod builtin function dcl 164 mode_string internal static char(16) initial unaligned dcl 14-129 modmark internal static char(1) initial unaligned dcl 4-6 multiply internal static char(1) initial unaligned dcl 4-6 nabla internal static char(1) initial unaligned dcl 4-6 not_eq internal static char(1) initial unaligned dcl 4-6 num_value based fixed bin(31,0) dcl 14-133 oct031 internal static char(1) initial unaligned dcl 4-6 oput based structure level 1 unaligned dcl 10-92 oput_p automatic pointer dcl 10-91 overbar internal static char(1) initial unaligned dcl 4-6 overlength_line 000000 stack reference condition dcl 167 page_image_version internal static fixed bin(35,0) initial dcl 13-53 perpen internal static char(1) initial unaligned dcl 4-6 pi internal static char(1) initial unaligned dcl 4-6 pl_mi internal static char(1) initial unaligned dcl 4-6 pos automatic fixed bin(31,0) dcl 1525 prll internal static char(1) initial unaligned dcl 4-6 rquote internal static char(1) initial unaligned dcl 4-6 save_shared based structure level 1 dcl 14-124 sizel based structure level 1 unaligned dcl 10-103 sizel_p automatic pointer dcl 10-102 slash internal static char(1) initial unaligned dcl 4-6 square internal static char(1) initial unaligned dcl 4-6 string builtin function dcl 164 string_area based fixed bin(17,0) array dcl 15-43 sup0 internal static char(1) initial unaligned dcl 4-6 sup1 internal static char(1) initial unaligned dcl 4-6 sup2 internal static char(1) initial unaligned dcl 4-6 sup3 internal static char(1) initial unaligned dcl 4-6 sup4 internal static char(1) initial unaligned dcl 4-6 sup5 internal static char(1) initial unaligned dcl 4-6 sup6 internal static char(1) initial unaligned dcl 4-6 sup7 internal static char(1) initial unaligned dcl 4-6 sup8 internal static char(1) initial unaligned dcl 4-6 sup9 internal static char(1) initial unaligned dcl 4-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 16-80 tblkdata based structure level 1 dcl 15-5 temp_r automatic bit(18) unaligned dcl 1687 text_area based structure level 1 dcl 15-36 text_parms based structure level 1 dcl 15-206 tfore internal static char(1) initial unaligned dcl 4-6 theta internal static char(1) initial unaligned dcl 4-6 tmark internal static char(1) initial unaligned dcl 4-6 txtlin based structure level 1 dcl 15-161 txtlinptr automatic pointer dcl 15-160 type_slxly internal static char(1) initial unaligned dcl 5-90 type_sly internal static char(1) initial unaligned dcl 5-90 type_sx internal static char(1) initial unaligned dcl 5-90 type_sxy internal static char(1) initial unaligned dcl 5-90 type_sy internal static char(1) initial unaligned dcl 5-90 type_v0lx internal static char(1) initial unaligned dcl 5-90 type_v0lxly internal static char(1) initial unaligned dcl 5-90 type_v0ly internal static char(1) initial unaligned dcl 5-90 type_v0x internal static char(1) initial unaligned dcl 5-90 type_v0xy internal static char(1) initial unaligned dcl 5-90 type_v0y internal static char(1) initial unaligned dcl 5-90 type_vlx internal static char(1) initial unaligned dcl 5-90 type_vlxly internal static char(1) initial unaligned dcl 5-90 type_vly internal static char(1) initial unaligned dcl 5-90 type_vx internal static char(1) initial unaligned dcl 5-90 type_vxy internal static char(1) initial unaligned dcl 5-90 type_vy internal static char(1) initial unaligned dcl 5-90 units based fixed bin(17,0) array dcl 10-81 units_ptr automatic pointer dcl 10-80 unstart_signal internal static char(3) initial unaligned dcl 5-39 unstop_signal internal static char(3) initial unaligned dcl 5-39 vrule internal static char(1) initial unaligned dcl 4-6 wait_signal internal static char(3) initial unaligned dcl 5-39 x9700_writer_$display 000000 constant entry external dcl 881 zero_font_index 000000 stack reference condition dcl 167 NAMES DECLARED BY EXPLICIT CONTEXT. abrtf 010326 constant entry external dcl 1759 abrtn 010303 constant entry external dcl 1758 allf 010520 constant entry external dcl 1787 alln 010407 constant entry external dcl 1765 allocate 016476 constant entry internal dcl 2-21 ref 320 328 339 1124 1463 artproc 010061 constant entry external dcl 1068 blat 010547 constant entry internal dcl 1072 ref 407 1396 char_loop 002757 constant label dcl 466 ctl_char 004060 constant label dcl 571 db_join 010424 constant label dcl 1766 ref 1742 1746 1750 1762 dbf 010116 constant entry external dcl 1743 dbn 010101 constant entry external dcl 1742 device_display 007117 constant label dcl 946 disp_ret 010037 constant label dcl 1063 display 006650 constant entry external dcl 884 dtf 010365 constant entry external dcl 1763 dtn 010350 constant entry external dcl 1762 end_chars 005441 constant label dcl 738 ref 494 finish_page 006265 constant label dcl 820 font_char 002777 constant label dcl 470 footproc 006461 constant entry external dcl 860 gap_exit 013553 constant label dcl 1426 ref 1398 image_loop 002345 constant label dcl 369 init 001112 constant entry external dcl 218 lgf 010214 constant entry external dcl 1751 lgn 010177 constant entry external dcl 1750 move_tstr 011317 constant entry internal dcl 1104 ref 765 768 1197 1708 1711 myself 001150 constant label dcl 229 set ref 229 pad_block 012635 constant entry internal dcl 1305 ref 442 pff 010261 constant entry external dcl 1755 pfn 010236 constant entry external dcl 1754 plot 011500 constant entry internal dcl 1137 ref 456 545 716 731 824 1551 1595 1598 plot_return 012506 constant label dcl 1290 put_ 013655 constant entry internal dcl 1438 ref 343 827 put_str 014311 constant entry internal dcl 1516 ref 342 505 527 551 577 641 744 1290 1593 1725 1732 put_uns 015215 constant entry internal dcl 1576 ref 616 749 release_window 011277 constant entry internal dcl 1097 ref 298 829 rescan_line 002636 constant label dcl 447 ref 782 795 rescan_page 001751 constant label dcl 307 return_ 006426 constant label dcl 855 rtn 000000 constant label array(0:9) dcl 949 ref 946 rtn_end 010037 constant label dcl 1058 ref 960 973 986 1000 1014 1027 1040 1053 set_font 015413 constant entry internal dcl 1606 ref 421 461 635 686 712 780 793 1333 set_media 016076 constant entry internal dcl 1674 ref 548 781 794 1230 1527 show 011436 constant entry internal dcl 1129 ref 447 447 513 513 513 513 535 535 535 535 559 559 559 559 588 588 703 703 703 703 703 703 703 703 727 727 727 727 808 808 808 808 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1076 1173 1173 1173 1173 1173 1173 1173 1173 1173 1173 1173 1173 1296 1296 1296 1296 1359 1359 1359 1359 1359 1359 1540 1540 1540 1540 1560 1560 1560 1560 1560 1560 1587 1587 1626 1626 1661 1661 1693 1693 1693 1693 trim_font 002445 constant label dcl 395 ref 401 try_again 013356 constant label dcl 1386 ref 1412 txf 010155 constant entry external dcl 1747 txn 010140 constant entry external dcl 1746 x9700_writer_ 001062 constant entry external dcl 49 NAMES DECLARED BY CONTEXT OR IMPLICATION. abs builtin function ref 689 694 byte builtin function ref 834 codeptr builtin function ref 229 convert builtin function ref 1784 copy builtin function ref 845 1250 1283 1382 1417 dec builtin function ref 1134 rank builtin function ref 474 1240 1243 1244 1273 1354 1354 1368 1370 1373 1374 1651 1653 1655 1664 1664 1664 1664 1664 1664 1664 1664 reverse builtin function ref 1480 1490 round builtin function ref 357 360 437 689 1134 1134 1368 1370 rtrim builtin function ref 559 788 799 811 811 811 1093 1540 1560 search builtin function ref 1386 sign builtin function ref 689 694 verify builtin function ref 918 932 949 962 975 988 1002 1016 1029 1042 1381 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 17452 17756 17021 17462 Length 20742 17021 304 747 431 234 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME x9700_writer_ 8354 external procedure is an external procedure. on unit on line 298 64 on unit blat 514 internal procedure is called by several nonquick procedures. release_window 72 internal procedure is called by several nonquick procedures. move_tstr 86 internal procedure is called by several nonquick procedures. show 96 internal procedure is called during a stack extension. plot 1250 internal procedure is called by several nonquick procedures. pad_block 429 internal procedure uses auto adjustable storage. put_ internal procedure shares stack frame of external procedure x9700_writer_. put_str 218 internal procedure is called by several nonquick procedures. put_uns internal procedure shares stack frame of external procedure x9700_writer_. set_font 180 internal procedure is called by several nonquick procedures. set_media 1154 internal procedure is called by several nonquick procedures. allocate 78 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 bad_chrs x9700_writer_ 000052 dev_stat_ptr x9700_writer_ 000054 first_line x9700_writer_ 000055 first_page x9700_writer_ 000056 ilin x9700_writer_ 000057 max_revlead x9700_writer_ 000060 stat_blk x9700_writer_ 000224 unstring x9700_writer_ 000226 window_area_ptr x9700_writer_ 000230 window_bottom x9700_writer_ 000232 window_ptr x9700_writer_ 000234 window_top x9700_writer_ 000235 db_sw x9700_writer_ 000236 tx_sw x9700_writer_ 000237 lg_sw x9700_writer_ 000240 pf_sw x9700_writer_ 000241 abrt_sw x9700_writer_ 000242 dt_sw x9700_writer_ 000243 db_line x9700_writer_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME allocate 000100 Nwords allocate 000102 P allocate 000104 code allocate blat 000100 blatstr blat pad_block 000100 igap pad_block 000101 padeach pad_block 000102 gaps pad_block 000104 jl_ptr pad_block 000106 just_line pad_block 000506 pads pad_block 000506 padsize pad_block 000507 pad_ctl pad_block 000512 pad_ctl_ptr pad_block plot 000100 old_xpos plot 000101 old_ypos plot 000102 penctl plot 000105 pltstr plot 002105 pltwidth plot 002106 xii plot 002107 xmove plot 002110 ymove plot 002111 ch1 plot 002112 cu plot put_str 000100 new_len put_str 000101 old_len put_str set_font 000100 chng set_font set_media 000100 chng set_media 000101 med_chng set_media 000102 size_chng set_media x9700_writer_ 000100 auto_lead x9700_writer_ 000101 char_ndx x9700_writer_ 000102 col_width x9700_writer_ 000103 debug_str x9700_writer_ 000503 debug_sw x9700_writer_ 000504 detail_sw x9700_writer_ 000505 EM_width x9700_writer_ 000506 EN_width x9700_writer_ 000507 fcdevfnt x9700_writer_ 000510 fcwidth x9700_writer_ 000511 font_in x9700_writer_ 000512 font_size x9700_writer_ 000513 fonts_done x9700_writer_ 000514 fonts_needed x9700_writer_ 000515 j x9700_writer_ 000516 k x9700_writer_ 000517 ichr x9700_writer_ 000520 lineinfoptr x9700_writer_ 000522 line_window_size x9700_writer_ 000523 Lmarg x9700_writer_ 000524 loctxt x9700_writer_ 001124 long_sw x9700_writer_ 001125 max_level x9700_writer_ 001126 font_media x9700_writer_ 001172 media_size x9700_writer_ 001173 medselstr x9700_writer_ 001204 need_font x9700_writer_ 001205 need_devfnt x9700_writer_ 001206 need_size x9700_writer_ 001207 pref_sw x9700_writer_ 001210 quad x9700_writer_ 001211 runout x9700_writer_ 001212 text_sw x9700_writer_ 001213 text_width x9700_writer_ 001214 tchr x9700_writer_ 001215 THIN_width x9700_writer_ 001216 tstr_ptr x9700_writer_ 001220 txtlen x9700_writer_ 001221 unstart x9700_writer_ 001222 window_level x9700_writer_ 001223 word x9700_writer_ 003223 wrdwidth x9700_writer_ 003224 Xmov x9700_writer_ 003225 Xmptstrk x9700_writer_ 003226 Xpixel x9700_writer_ 003227 Xpos x9700_writer_ 003230 Xspc x9700_writer_ 003231 Xmpts x9700_writer_ 003232 Yinit x9700_writer_ 003233 Ymov x9700_writer_ 003234 Ypixel x9700_writer_ 003235 Ypos x9700_writer_ 003236 Yspc x9700_writer_ 003237 Ympts x9700_writer_ 003254 comment_ptr x9700_writer_ 003256 inf_media x9700_writer_ 003257 sup_media x9700_writer_ 003260 ch x9700_writer_ 003261 ct x9700_writer_ 003262 dstr x9700_writer_ 003662 rtn_str x9700_writer_ 013663 argl x9700_writer_ 013664 argp x9700_writer_ 013666 ercd x9700_writer_ 013670 DCxx_p x9700_writer_ 013672 fnttbl_ptr x9700_writer_ 013674 repl_str_ptr x9700_writer_ 013676 fileheader_ptr x9700_writer_ 013700 record_ptr x9700_writer_ 013702 page_record_ptr x9700_writer_ 013704 line_area_ptr x9700_writer_ 013706 text_area_ptr x9700_writer_ 013710 txtstrptr x9700_writer_ 013724 level put_ 013725 level_skip put_ 013736 Y_offs put_uns 013737 unslen put_uns THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as alloc_cs realloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj sign mod_fx1 signal enable shorten_stack ext_entry ext_entry_desc int_entry trunc_fx1 round_fx1 repeat set_cs_eis index_cs_eis index_bs_1_eis return_chars_eis verify_eis real_to_real_tr any_to_any_tr divide_fx1 divide_fx2 divide_fx3 verify_for_rtrim THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ comp_report_ comp_report_$ctlstr comp_report_$exact comp_util_$display cu_$arg_ptr ioa_ ioa_$nnl ioa_$rsnnl translator_temp_$get_next_segment translator_temp_$get_segment translator_temp_$release_all_segments THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. comp_error_table_$program_error compstat$compconst error_table_$noarg error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 13 001045 12 21 001047 12 45 001050 12 62 001051 15 25 001052 15 35 001053 49 001056 205 001072 207 001074 212 001077 215 001106 218 001110 220 001122 221 001133 222 001135 223 001137 226 001146 229 001150 231 001155 236 001173 237 001176 240 001200 241 001217 242 001242 243 001264 244 001307 245 001332 246 001353 247 001376 249 001417 252 001426 253 001427 254 001430 256 001432 258 001434 261 001443 262 001450 263 001460 264 001462 265 001465 266 001470 268 001473 271 001476 272 001503 275 001515 279 001524 280 001530 281 001532 283 001536 289 001576 292 001605 295 001661 298 001671 300 001713 302 001734 303 001742 304 001744 307 001751 310 001773 313 001775 314 002023 315 002026 318 002035 320 002037 322 002057 323 002076 324 002121 325 002134 326 002136 327 002140 328 002146 330 002166 331 002170 334 002172 337 002175 338 002177 339 002205 340 002221 341 002222 342 002231 343 002252 344 002253 345 002255 346 002257 349 002261 357 002272 360 002313 364 002330 369 002345 371 002362 372 002366 373 002370 375 002373 379 002405 380 002407 382 002414 383 002415 385 002422 386 002423 388 002430 391 002431 392 002436 393 002443 395 002445 400 002454 401 002456 404 002457 405 002470 407 002473 410 002501 411 002516 414 002523 415 002526 417 002530 421 002532 424 002545 426 002561 428 002566 431 002572 433 002574 436 002601 437 002604 439 002617 442 002620 447 002636 453 002703 454 002704 456 002705 458 002724 459 002725 461 002730 466 002757 468 002767 470 002773 474 002777 476 003001 478 003005 481 003011 484 003024 485 003033 491 003110 494 003116 497 003117 499 003123 502 003127 505 003134 506 003144 507 003145 510 003147 511 003153 513 003154 519 003313 521 003315 524 003325 527 003332 528 003342 529 003343 532 003345 533 003351 535 003352 541 003512 545 003514 547 003542 548 003544 551 003560 555 003605 556 003620 557 003624 559 003625 568 004056 569 004057 574 004060 577 004065 578 004075 579 004076 582 004100 585 004105 588 004112 600 004276 603 004306 604 004314 607 004317 610 004322 616 004345 617 004346 620 004350 622 004351 625 004357 628 004361 629 004377 631 004447 633 004450 634 004457 635 004465 636 004475 638 004476 641 004500 643 004526 646 004530 647 004547 649 004622 650 004623 654 004624 657 004641 659 004652 661 004653 665 004655 668 004672 670 004703 671 004704 675 004705 678 004722 680 004733 683 004734 686 004737 689 004751 692 004770 694 004771 697 005003 699 005004 702 005006 703 005025 707 005175 708 005176 712 005177 716 005221 718 005245 720 005247 721 005252 723 005255 726 005257 727 005276 730 005405 731 005406 732 005426 736 005430 738 005441 741 005443 744 005450 745 005460 746 005461 749 005463 753 005500 756 005504 758 005511 761 005520 762 005521 765 005523 768 005542 772 005556 774 005567 777 005570 780 005576 781 005606 782 005617 785 005620 788 005625 793 005713 794 005724 795 005735 799 005736 805 006025 808 006030 811 006132 815 006261 818 006262 820 006265 824 006302 827 006333 829 006334 831 006340 834 006347 839 006366 842 006373 844 006411 845 006413 853 006421 855 006426 858 006446 860 006455 868 006477 869 006502 870 006507 872 006521 875 006633 876 006634 884 006643 900 006665 903 006674 906 006677 907 006711 910 006713 911 006714 913 006715 915 006721 918 006723 919 006737 921 006743 923 006745 925 007000 927 007005 928 007017 930 007020 932 007022 933 007036 935 007042 937 007044 939 007077 941 007104 942 007116 946 007117 949 007130 951 007136 953 007143 955 007145 957 007200 959 007205 960 007217 962 007220 964 007226 966 007233 968 007235 970 007272 972 007277 973 007311 975 007312 977 007320 979 007325 981 007327 983 007362 985 007366 986 007400 988 007401 991 007407 993 007414 995 007416 997 007451 999 007456 1000 007470 1002 007471 1005 007477 1007 007504 1009 007506 1011 007541 1013 007546 1014 007560 1016 007561 1018 007567 1020 007574 1022 007576 1024 007631 1026 007636 1027 007650 1029 007651 1031 007657 1033 007664 1035 007666 1037 007724 1039 007731 1040 007743 1042 007744 1044 007752 1046 007757 1048 007761 1050 010016 1052 010023 1053 010035 1055 010036 1063 010037 1066 010042 1068 010060 1070 010071 1742 010100 1742 010111 1742 010114 1743 010115 1743 010126 1743 010130 1746 010137 1746 010150 1746 010153 1747 010154 1747 010165 1747 010167 1750 010176 1750 010207 1750 010212 1751 010213 1751 010224 1751 010226 1754 010235 1754 010246 1754 010251 1755 010260 1755 010271 1755 010273 1758 010302 1758 010313 1758 010316 1759 010325 1759 010336 1759 010340 1762 010347 1762 010360 1762 010363 1763 010364 1763 010375 1763 010377 1765 010406 1765 010417 1776 010424 1777 010425 1778 010443 1780 010445 1782 010470 1784 010477 1785 010510 1787 010517 1787 010530 1788 010537 1072 010546 1076 010554 1092 011153 1093 011225 1095 011275 1097 011276 1100 011304 1102 011315 1104 011316 1111 011324 1115 011361 1117 011365 1118 011372 1120 011403 1121 011407 1122 011411 1124 011413 1127 011434 1129 011435 1134 011443 1137 011477 1162 011505 1165 011515 1166 011520 1168 011521 1169 011523 1170 011525 1171 011530 1173 011533 1180 011750 1183 011756 1186 011760 1190 011770 1194 012040 1197 012043 1198 012052 1199 012053 1202 012060 1203 012064 1205 012065 1211 012071 1214 012076 1217 012100 1220 012101 1223 012143 1224 012147 1227 012151 1230 012157 1231 012170 1234 012173 1237 012206 1240 012212 1243 012225 1244 012230 1246 012242 1247 012245 1250 012246 1251 012267 1252 012277 1255 012305 1257 012353 1261 012354 1265 012377 1269 012423 1272 012424 1273 012427 1274 012432 1275 012436 1277 012442 1280 012443 1282 012453 1283 012456 1284 012477 1290 012506 1296 012521 1303 012633 1305 012634 1323 012642 1359 012653 1378 012655 1330 012665 1331 012666 1333 012670 1336 012705 1338 012722 1341 012736 1344 012741 1345 012743 1346 012745 1347 012747 1348 012754 1351 012756 1352 012766 1354 012774 1357 013020 1359 013031 1367 013163 1368 013166 1370 013207 1372 013223 1373 013246 1374 013257 1375 013261 1376 013264 1378 013265 1381 013307 1382 013323 1385 013345 1386 013356 1389 013374 1392 013375 1395 013377 1396 013416 1398 013423 1401 013424 1402 013436 1404 013440 1407 013445 1408 013451 1410 013460 1411 013472 1412 013474 1415 013475 1417 013476 1419 013523 1421 013524 1422 013536 1424 013551 1426 013553 1429 013560 1430 013573 1431 013600 1433 013602 1436 013653 1438 013655 1444 013656 1448 013700 1450 013701 1454 013723 1455 013726 1457 013730 1458 013737 1460 013750 1463 013754 1464 013770 1468 013772 1470 014015 1472 014017 1475 014026 1480 014043 1482 014074 1485 014106 1486 014110 1490 014111 1492 014142 1493 014154 1497 014155 1503 014254 1504 014257 1505 014262 1506 014265 1508 014275 1510 014277 1512 014304 1514 014307 1516 014310 1527 014316 1530 014335 1531 014345 1533 014351 1536 014360 1539 014362 1540 014444 1548 014613 1549 014652 1550 014656 1551 014657 1552 014672 1553 014702 1556 014706 1559 014710 1560 014753 1568 015164 1569 015203 1571 015210 1572 015211 1573 015212 1574 015214 1576 015215 1581 015216 1582 015217 1584 015223 1587 015224 1592 015266 1593 015270 1594 015324 1595 015330 1596 015350 1598 015352 1599 015367 1601 015371 1604 015411 1606 015412 1616 015420 1618 015433 1621 015434 1624 015436 1626 015457 1632 015534 1635 015540 1636 015550 1637 015554 1639 015556 1641 015601 1643 015617 1646 015622 1648 015634 1650 015637 1651 015642 1653 015655 1655 015666 1658 015677 1661 015705 1664 015773 1672 016074 1674 016075 1689 016103 1690 016113 1691 016117 1693 016121 1698 016216 1704 016237 1708 016322 1711 016344 1715 016361 1718 016363 1719 016370 1722 016373 1724 016402 1725 016404 1726 016440 1728 016442 1730 016444 1731 016445 1732 016447 1735 016466 1737 016474 2 21 016475 2 40 016503 2 41 016511 2 42 016515 2 43 016527 2 44 016537 2 45 016542 2 47 016552 2 48 016561 2 49 016565 2 50 016573 ----------------------------------------------------------- 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