COMPILATION LISTING OF SEGMENT hyterm_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 1124.1 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* compose support routine to write output to hyterm terminals (class diablo) */ 11 12 /* PREFACE 13*/* This program handles length and distance values in "picture elements" 14*/* (pixels). These are the native units in the machine and, sooner or later, 15*/* all internal length and distance values have to be converted to pixels to 16*/* actually get device output. In some cases the vertical and horizontal 17*/* pixels are not of the same size, i.e. a Diablo-type typewriter has 18*/* 60/inch horizontally and 48/inch vertically. 19* 20*/* All values which are fixed bin (31) are in millipoints. 21* 22*/* Debugging tools--- 23*/* There are several switches that control debugging output from a writer-- 24*/* shared.bug_mode db_sw dt_sw lg_sw 25*/* debug_sw detail_sw long_sw 26*/* shared.bug_mode is set via the family of -db arguments. It means that all 27*/* of compose is being debugged. 28*/* db_sw, dt_sw, lg_sw (static) are set by the entries dbn, dtn, and lgn */ 29 /* respectively. They are reset by the entries dbf, dtf, and lgf. */ 30 31 /* These switches interact with each other. In order to reduce the amount of */ 32 /* code executed when not debugging, these interactions are distilled into */ 33 /* automatic switches, debug_sw, detail_sw, and long_sw with this logic. */ 34 /* debug_sw = (shared.bug_mode | db_sw); */ 35 /* detail_sw = debug_sw & dt_sw; */ 36 /* long_sw = debug_sw & lg_sw; */ 37 /* debug_sw controls these outputs-- */ 38 /* -- entry and exit notification */ 39 /* -- an interpretation of each line of the input structure before it is */ 40 /* acted upon. */ 41 /* -- gap count error notification */ 42 /* detail_sw controls these outputs-- */ 43 /* -- (preface) indication */ 44 /* -- justification calculations */ 45 /* -- device control (DCxx) display */ 46 /* -- plot trace */ 47 /* -- put_ trace */ 48 /* -- set_font trace */ 49 /* -- set_media trace */ 50 /* -- overstrike processing notification */ 51 /* long_sw controls these outputs-- */ 52 /* -- shows the justified text line */ 53 /* -- shows detailed Multics/device translation (simple) */ 54 55 /* This is a 60x48 Diablo type device. It supports plot mode and adjustable */ 56 /* HMI values. Most artwork is done via plot mode. Horizontal lines are */ 57 /* implemented with HMI=2/120 then "."'s. */ 58 59 60 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 61 62 hyterm_writer_: 63 proc (func, code); 64 65 /* PARAMETERS */ 66 67 dcl func fixed bin; /* function code */ 68 /* 0 = build a page */ 69 /* 1 = initialize a page */ 70 /* 2 = initialize a file */ 71 /* 3 = clean up */ 72 /* 4 = prepare epilogue */ 73 dcl code fixed bin (35); /* error code */ 74 75 /* LOCAL STORAGE */ 76 77 dcl auto_lead fixed bin (31); /* automatic baseline advance */ 78 dcl BAD_CHAR char (1) static options (constant) init ("ÿ"); 79 /* list of bad font chars */ 80 dcl bad_chrs char (128) var static; 81 dcl char_ndx fixed bin; /* index into font table */ 82 dcl col_width fixed bin (31); /* calculated column width */ 83 dcl debug_str char (1020) var; 84 dcl debug_sw bit (1); 85 dcl detail_sw bit (1); 86 dcl dev_stat_ptr ptr static init (null ()); 87 dcl EM_width fixed bin (31); /* width of EM */ 88 dcl EN_width fixed bin (31); /* width of EN */ 89 dcl fcdevfnt fixed bin; /* device font needed by a char */ 90 dcl fcwidth fixed bin (31); /* font char width */ 91 dcl first_line bit (1) static; 92 dcl first_page bit (1) aligned static init ("0"b); 93 dcl font_in fixed bin; /* current font */ 94 dcl font_size fixed bin (31); /* point size in current font */ 95 dcl fonts_done bit (36); /* which fonts have been processed */ 96 dcl fonts_needed bit (36); /* which fonts have been requested */ 97 dcl hot_chars char (35) static options (constant) 98 init (" 99 þÿ"); 100 dcl (i, j, jj, k, ll) 101 fixed bin; 102 dcl ichr fixed bin; /* index to current text character */ 103 dcl ilin fixed bin static;/* page image line counter */ 104 dcl just_line char (1020) var; /* the justified line */ 105 dcl lineinfoptr ptr; /* -> info structure for image line */ 106 dcl line_window_size /* # of window lines per output line */ 107 fixed bin; 108 dcl Lmarg fixed bin (31); /* left margin */ 109 dcl loctxt char (1020) var; /* max rev leading allowed */ 110 dcl long_sw bit (1); 111 dcl max_level fixed bin; 112 dcl max_revlead fixed bin (31) static; 113 dcl font_media (36) fixed bin; /* media needed by the fonts */ 114 dcl media_size fixed bin (31); /* point size in media */ 115 dcl medselstr char (32) var; /* emitted medsel string */ 116 dcl need_font fixed bin; /* needed font */ 117 dcl need_devfnt fixed bin; /* device font for needed font */ 118 dcl need_size fixed bin (31); /* needed size */ 119 dcl NULs char (4) var static options (constant) init (""); 120 dcl pref_sw bit (1); /* effective preface switch */ 121 dcl quad bit (6); /* alignment flags */ 122 dcl runout fixed bin; /* # NLs for page runout */ 123 dcl SHIFT_OP bit (1) static options (constant) init ("0"b); 124 /* device status info */ 125 dcl stat_blk (100) fixed bin (35) static init ((100) 0); 126 /* The developer of a device writer */ 127 /* may use this block (by defining a */ 128 /* based overlay) to hold any */ 129 /* necessary device status info. */ 130 /* Note that the first word is */ 131 /* initialized to -1 for each page, */ 132 /* thus any overlay should keep it */ 133 /* fixed bin (35) and assure that */ 134 /* all special device modes are */ 135 /* reset at the end of each page. */ 136 dcl text_sw bit (1); 137 dcl text_width fixed bin (31); /* local text width */ 138 dcl tchr char (1); /* local text char */ 139 dcl THIN_width fixed bin (31); /* width of THIN */ 140 dcl tstr_ptr ptr; /* text string */ 141 dcl 1 tstr aligned based (tstr_ptr), 142 2 open bit (1) unal, /* line has something */ 143 2 white bit (1) unal, /* line is white */ 144 2 MBZ bit (16) unal, 145 2 devfnt fixed bin unal, /* starting device font for line */ 146 2 last_cr fixed bin unal, /* position of last CR or NL */ 147 2 font fixed bin unal, /* font being processed */ 148 2 xpos fixed bin (31), /* X position */ 149 2 ypos fixed bin (31), /* Y position */ 150 2 w fixed bin (31), /* width of str */ 151 2 str_ptr ptr; 152 dcl tstr_line char (2048) var based (tstr.str_ptr); 153 dcl txtlen fixed bin; /* length of txtstr */ 154 dcl unstart fixed bin (31); /* start of underscore */ 155 dcl unstring bit (1) static; /* underscoring is active */ 156 dcl VECTOR_OP bit (1) static options (constant) init ("1"b); 157 dcl window_area_ptr /* points to current window area seg */ 158 ptr static init (null); 159 dcl window_bottom fixed bin static init (0); 160 dcl window_level fixed bin; 161 dcl window_ptr ptr static init (null); 162 dcl 1 window (window_top:window_bottom) aligned like tstr 163 based (window_ptr); 164 dcl window_top fixed bin static init (0); 165 dcl word char (4090) var; /* word accumulator */ 166 dcl wrdwidth fixed bin (31); /* word width in MPTS */ 167 dcl Xmov fixed bin (31); /* horizontal CTL movement */ 168 dcl Xmptstrk fixed bin (31); /* horizontal mpt -> stroke conv */ 169 dcl Xpixel fixed bin (31); /* horizontal pixel size */ 170 dcl Xpos fixed bin (31); /* current horizontal position */ 171 dcl Xspc fixed bin (31); /* horizontal movement */ 172 dcl Xmpts fixed bin (31); /* temp horiz value */ 173 dcl Yinit fixed bin (31); /* initial page depth */ 174 dcl Ymov fixed bin (31); /* vertical CTL movement */ 175 dcl Ypixel fixed bin (31); /* vertical pixel size */ 176 dcl Ypos fixed bin (31); /* current vertical position */ 177 dcl Yspc fixed bin (31); /* vertical movement */ 178 dcl Ympts fixed bin (31); /* temp vert value */ 179 180 dcl (addr, bin, divide, fixed, index, length, max, min, mod, null, pointer, 181 size, string, substr, unspec) 182 builtin; 183 dcl (cleanup, comp_abort, null_font_char, overlength_line, zero_font_index) 184 condition; 185 186 dcl error_table_$fatal_error 187 fixed bin (35) ext static; 188 dcl error_table_$unimplemented_version 189 fixed bin (35) ext static; 190 dcl comp_error_table_$limitation 191 fixed bin (35) ext static; 192 dcl comp_error_table_$program_error 193 fixed bin (35) ext static; 194 195 dcl ioa_$rs entry options (variable); 196 dcl ioa_$rsnnl entry options (variable); 197 dcl translator_temp_$get_segment 198 entry (char (*) aligned, ptr, fixed bin (35)); 199 dcl translator_temp_$release_all_segments 200 entry (ptr, fixed bin (35)); 201 /**** &dcls FOR hyterm */ 202 dcl ( 203 ABS_TAB char (2) init (" "), 204 DT1 char (3) init (" "), 205 PENDOWN char (1) init ("."), 206 PENUP char (1) init (" "), 207 PLOT char (2) init ("3"), 208 PLOTlen fixed bin init (2), 209 RLF char (2) init (" 210 "), 211 RLFlen fixed bin init (2), 212 SET_HMI char (2) init (""), 213 unPLOT char (4) var init ("4"), 214 unPLOTlen fixed bin init (2), 215 /* 10pitch hmi value */ 216 HMI10 fixed bin init (12) 217 ) aligned static options (constant); 218 dcl BELc char (17) var; /* BEL||HT||PADs for wheel change */ 219 dcl 1 dev_stat based (dev_stat_ptr), 220 2 inited fixed bin (35), 221 2 sw, 222 3 plotting bit (1) unal, /* 1- in regular plot mode */ 223 3 MBZ bit (35) unal, 224 2 hmi_code char (1), /* current device HM character */ 225 2 hmi_value fixed bin; /* current device HM value */ 226 dcl err_ct fixed bin; 227 dcl err_sw bit (1); 228 dcl font_wheel (36) fixed bin; /* wheels needed for fonts */ 229 dcl mounted_wheel /* print wheel on machine */ 230 fixed bin static init (0); 231 dcl need_wheel fixed bin; /* print wheel needed */ 232 dcl 1 preface aligned like page_record based (page_record_ptr); 233 dcl iplt fixed bin; /* number of *c's to emit */ 234 dcl MAX_STR fixed bin static options (constant) init (2048); 235 dcl plot_str (40) char (8) var static options (constant) 236 init /**/ 237 (" 238 .", "rd.", 239 "  240 .", "ru.", 241 " .", "r.", 242 " 243 .", "ld.", 244 " 245 .", "lu.", 246 ".", "l.", 247 " 248 .", "d.", 249 " 250 .", "u.", 251 ".", ".", 252 " 253 ", "rd", 254 "  255 ", "ru", 256 " ", "r", 257 " 258 ", "ld", 259 " 260 ", "lu", 261 "", "l", 262 " 263 ", "d", 264 " 265 ", "u", 266 " ", "HT", 267 "U", "d/2", 268 "D", "u/2" 269 ); 270 dcl rst char (8) var; /* replacement string */ 271 dcl VMI char (4) var static options (constant) 272 init (""); 273 dcl tabcol fixed bin; /* target for direct tabbing */ 274 dcl xc char (2) var; /* horizontal plot character(s) */ 275 dcl xcmax fixed bin; 276 dcl xyc char (6) var; /* common plot character(s) */ 277 dcl xiyi fixed bin; /* amount of common movement */ 278 dcl xycmax fixed bin; 279 dcl yc char (3) var; /* vertical plot character(s) */ 280 dcl ycmax fixed bin; 281 282 dcl (abs, char, collate9, copy, dec, ltrim, round, rtrim, search, sign, 283 verify) builtin; 284 /**** END hyterm */ 285 286 code = 0; /* clear error code */ 287 288 if func = 3 /* clean up */ 289 then 290 do; 291 /**** &cleanup FOR hyterm */ 292 /**** NO CODE *//**** END hyterm */ 293 return; 294 end; 295 296 if func = 1 /* new page */ 297 then 298 do; 299 init: 300 entry; /* called by pco */ 301 stat_blk (*) = 0; 302 stat_blk (1) = -1; 303 dev_stat_ptr = addr (stat_blk); 304 return; 305 end; 306 307 if func = 2 /* new input file */ 308 then 309 do; 310 myself: /* check structure versions */ 311 const.outproc_ptr = codeptr (myself); 312 if shared.version ^= shared_version 313 | option.version ^= option_version | page.version ^= page_version 314 | comp_dvid.version ^= comp_dvid_version 315 then 316 do; 317 code = error_table_$unimplemented_version; 318 if db_sw 319 then 320 do; 321 call ioa_ (" shared.version=^i", shared.version); 322 call ioa_ (" shared_version=^i", shared_version); 323 call ioa_ (" option.version=^i", option.version); 324 call ioa_ (" option_version=^i", option_version); 325 call ioa_ (" page.version=^i", page.version); 326 call ioa_ (" page_version=^i", page_version); 327 call ioa_ (" dvid.version=^i", comp_dvid.version); 328 call ioa_ (" dvid_version=^i", comp_dvid_version); 329 end; 330 return; 331 end; 332 333 bad_chrs = ""; 334 unstring = "0"b; 335 first_page = "1"b; 336 /**** &file_init FOR hyterm */ 337 max_revlead = -12000; /* dont back up more than 1 line */ 338 if option.nobell_opt 339 then BELc = " "; 340 else BELc = " "; 341 mounted_wheel = 1; /* assume ASCII wheel is mounted */ 342 /**** END hyterm */ 343 return; 344 end; /**/ 345 /* set debug switches */ 346 debug_sw, detail_sw, long_sw, pref_sw, text_sw = "0"b; 347 debug_sw = (shared.bug_mode | db_sw); 348 detail_sw = debug_sw & dt_sw; 349 long_sw = debug_sw & lg_sw; 350 text_sw = debug_sw & tx_sw; 351 pref_sw = debug_sw & pf_sw; 352 353 if func = 4 /* prepare epilogue */ 354 then 355 do; 356 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 357 unspec (page_record) = "0"b; 358 /**** &epilogue FOR hyterm */ 359 /**** NO CODE *//**** END hyterm */ 360 return; 361 end; 362 363 /* func = 0 build page */ 364 line_window_size = divide (12000, comp_dvt.min_lead, 17, 0); 365 window_top = -line_window_size; 366 window_bottom = divide (page.parms.length, comp_dvt.min_lead, 17, 0); 367 368 if debug_sw 369 then call 370 ioa_ ("hyterm_writer_(^a): (pag=^a lct=^d lvl=^d:^d)", 371 option.device, page.hdr.pageno, page_image.count, window_top, 372 window_bottom); 373 374 if page_image.count = 0 375 then 376 do; 377 call 378 comp_report_ (4, 0, "No output lines on page " || page.hdr.pageno, 379 addr (ctl.info), ""); 380 return; 381 end; 382 383 on cleanup call release_window; /**/ 384 /* preset local stuff */ 385 auto_lead, font_in, need_devfnt, media_size, font_size, Xpos, Ypos, Yinit, 386 font_media (*) = 0; 387 Xpixel = comp_dvt.min_WS; 388 Ypixel = comp_dvt.min_lead; 389 page_record_ptr = addr (page_image.text_ptr -> record.page_record); 390 /**** &page_init FOR hyterm */ 391 need_wheel = mounted_wheel; /* last one mounted */ 392 font_wheel (*) = 0; 393 /**** END DEVICE hyterm */ 394 rescan_page: /* (re)starting page */ 395 /* get storage for output image */ 396 call translator_temp_$get_segment ("compose", window_area_ptr, ercd); 397 if ercd ^= 0 398 then 399 do; 400 call com_err_ (ercd, "compose", "Defining an output window area."); 401 signal cleanup; 402 return; 403 end; 404 405 Xspc, Yspc = 0; 406 407 window_ptr = allocate (window_area_ptr, 408 (window_bottom - window_top + 1) * size (tstr)); 409 unspec (window) = "0"b; 410 window.str_ptr = null; 411 unspec (page_record) = "0"b; 412 first_line = "1"b; 413 window_level, max_level = 0; 414 tstr_ptr = addr (window (0)); 415 if tstr.str_ptr = null 416 then tstr.str_ptr = allocate (window_area_ptr, 1024); 417 tstr_line = ""; 418 tstr.devfnt = 0; 419 420 if pref_sw 421 then call ioa_ ("^5x(preface)"); 422 423 /**** &image_init FOR hyterm */ 424 preface.in_use, preface.preface, preface.rawo = "1"b; 425 426 if need_wheel ^= mounted_wheel /* need a wheel change? */ 427 then 428 do; 429 preface.halt, preface.halt2 = "1"b; 430 mounted_wheel = need_wheel; /* show wheel changed */ 431 end; 432 433 preface.nextref = "0"b; 434 page_record_ptr = addr (preface.nextref); 435 page_record.leng = 0; 436 unspec (page_record.sws) = "0"b; 437 page_record.in_use = "1"b; 438 page_record.sws.rawo = "1"b; 439 page_record.pwheel = mounted_wheel; 440 hmi_value = HMI10; 441 442 if first_page 443 then 444 do; /* emit HMI */ 445 window_level, max_level = window_top; 446 tstr_ptr = addr (window (window_top)); 447 if tstr.str_ptr = null 448 then tstr.str_ptr = allocate (window_area_ptr, 1024); 449 medselstr, tstr_line = ""; 450 call put_str (SET_HMI || byte (HMI10 + 1), 0); 451 call put_; 452 unspec (tstr) = "0"b; 453 tstr.str_ptr = allocate (window_area_ptr, 1024); 454 tstr_ptr = addr (window (0)); 455 window_level, max_level = 0; 456 first_page = "0"b; 457 end; 458 459 /**** END hyterm */ 460 if debug_sw 461 then call 462 ioa_ (":iln fn/ln ch/gp lmarg rmarg width depth" 463 || " lead s med fnt sz"); 464 465 image_loop: 466 do ilin = 1 to page_image.count; /* for all given image lines */ 467 debug_sw, detail_sw, long_sw, text_sw = "0"b; 468 fonts_done, fonts_needed ="0"b; 469 Lmarg, col_width, text_width = 0; 470 471 if (shared.bug_mode | db_sw) 472 then if ilin >= db_line 473 then 474 do; 475 debug_sw = "1"b; 476 if dt_sw 477 then detail_sw = "1"b; 478 else detail_sw = "0"b; 479 if lg_sw 480 then long_sw = "1"b; 481 else long_sw = "0"b; 482 if tx_sw 483 then text_sw = "1"b; 484 else text_sw = "0"b; 485 end; /**/ 486 /* set text pointer */ 487 txtstrptr = page_image.line (ilin).ptr; 488 loctxt = txtstr; /* copy txtstr */ 489 txtlen = length (txtstr); /* and record length */ 490 491 trim_font: /* trim trailing font change */ 492 if txtlen > 7 493 then if substr (loctxt, txtlen - 7, 2) = "À" 494 then 495 do; 496 txtlen = txtlen - 8; 497 goto trim_font; 498 end; 499 500 lineinfoptr = addr (page_image.line (ilin).info); 501 quad = page_image.line (ilin).quad; 502 503 if debug_sw 504 then call blat; 505 506 Yspc = divide (page_image.line (ilin).depth, Ypixel, 31, 0) - Ypos - Yinit; 507 if ilin > 1 508 then Yspc = Yspc - auto_lead; /* account for the "free" amount */ 509 510 need_font = page_image.line (ilin).lfnt; 511 need_size = page_image.line (ilin).lsize; 512 513 if txtlen > 0 514 then 515 do; 516 517 if font_in ^= need_font 518 then call set_font (need_font, need_size); 519 520 if page_image.line (ilin).lmarg > 0 521 then Lmarg = divide (page_image.line (ilin).lmarg, Xmptstrk, 31, 0); 522 if page_image.line (ilin).net > 0 523 then col_width = divide (page_image.line (ilin).net, Xmptstrk, 31, 0); 524 if page_image.line (ilin).width > 0 525 then text_width = divide (page_image.line (ilin).width, Xmptstrk, 31, 0); 526 /**** &line_init FOR hyterm */ 527 /**** NO CODE *//**** END hyterm */ 528 if quad = quadr | quad = quadc 529 then /* if setting right */ 530 do; /* or center */ 531 Xspc = col_width - text_width; 532 if quad = quadc /* if centering, take half */ 533 then Xspc = round (divide (max (Xspc, 0), 2, 31, 1), 0); 534 Lmarg = Lmarg + Xspc; 535 end; /**/ 536 /* if justifying and device doesnt */ 537 if quad = just & ^comp_dvt.justifying 538 /* and there are some gaps */ 539 & page_image.line (ilin).gaps > 0 540 then call pad_block; 541 542 rescan_line: 543 if detail_sw 544 then call 545 ioa_ ("^5x(rescan_line: Lmarg=^f lvl=^d)", 546 show (Lmarg * Xmptstrk, 12000), window_level); 547 548 word = ""; /* clear word accumulator */ 549 wrdwidth = 0; 550 551 if Yspc ^= 0 552 then call plot (SHIFT_OP, 0, Ypos + Yspc); 553 Yspc = 0; /* initial movement */ 554 Xspc = Lmarg - Xpos; 555 556 if font_in ^= page_image.line (ilin).lfnt 557 | font_size ^= page_image.line (ilin).lsize 558 then call set_font (page_image.line (ilin).lfnt, 559 page_image.line (ilin).lsize); 560 561 char_loop: /* process each character */ 562 do ichr = 1 to txtlen; 563 tchr = substr (loctxt, ichr, 1); 564 565 if tchr ^= DC1 /* do any font chars */ 566 then 567 font_char: 568 do; 569 char_ndx = rank (tchr); /* fnttbl index for text char */ 570 /* -> replacement */ 571 repl_str_ptr = fnttbl.replptr (char_ndx); 572 /* if there's no replacement */ 573 if repl_str_ptr = null () 574 then 575 do; /* if not already reported */ 576 if index (bad_chrs, tchr) = 0 577 then 578 do; /* add to bad chars and report */ 579 bad_chrs = bad_chrs || tchr; 580 call 581 comp_report_$ctlstr (2, 582 comp_error_table_$program_error, lineinfoptr, loctxt, 583 "Font ^a, no replacement for ""^a"" (\^.3b)", 584 fnttbl.entry.name, tchr, unspec (tchr)); 585 586 if abrt_sw /* abort if desired */ 587 then signal null_font_char; 588 end; 589 goto end_chars; /* skip rest of line */ 590 end; /**/ 591 /* copy fnttbl data */ 592 fcdevfnt = fnttbl.devfnt (char_ndx); 593 /* white space? */ 594 if fnttbl.white (char_ndx) 595 then 596 do; 597 if word ^= "" /* flush current word */ 598 then 599 do; 600 call put_str (word, wrdwidth); 601 wrdwidth = 0; 602 tstr.white = "0"b; 603 end; 604 605 fcwidth = fnttbl.units (char_ndx); 606 Xspc = Xspc + fcwidth; 607 608 if text_sw & ^pref_sw 609 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^1a"" WS)", 610 fcdevfnt, fcwidth, 611 show (fcwidth * Xmptstrk, 12000), 612 show ((Xpos + Xspc) * Xmptstrk, 12000), 613 comp_util_$display ((tchr), 0, "0"b)); 614 end; /**/ 615 /* if cant put char */ 616 else if fcdevfnt ^= tstr.devfnt & tstr.devfnt ^= 0 617 then 618 do; 619 if word ^= "" /* flush current word */ 620 then 621 do; 622 call put_str (word, wrdwidth); 623 wrdwidth = 0; 624 tstr.white = "0"b; 625 end; /**/ 626 /* ..treat like whitespace */ 627 fcwidth = fnttbl.units (char_ndx); 628 Xspc = Xspc + fcwidth; 629 630 if text_sw & ^pref_sw 631 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^a"" ^^font)", 632 fcdevfnt, fcwidth, 633 show (fcwidth * Xmptstrk, 12000), 634 show ((Xpos + Xspc + wrdwidth) * Xmptstrk, 635 12000), comp_util_$display ((tchr), 0, "0"b)); 636 end; 637 638 else /* not white space */ 639 do; /* emit any accumulated motion */ 640 if Yspc ^= 0 | (Xspc ^= 0 & txtlen ^= 0) 641 then call plot (SHIFT_OP, Xpos + Xspc, Ypos + Yspc); 642 Xspc, Yspc = 0; 643 /* any PLOTs or unPLOTs? */ 644 if index (replstr, PLOT) > 0 645 | index (replstr, unPLOT) > 0 646 then 647 do; 648 i = 1; /* beginning of repl string */ 649 /* if it doesnt start with unPLOT */ 650 651 /* if index (replstr, unPLOT) ^= 1 652*/* then if dev_stat.plotting 653*/* then 654*/* do; 655*/* call put_str ((unPLOT), 0); 656*/* dev_stat.plotting = "0"b; 657*/* end; 658*/* else; /**/ 659 /* /* scan the replstr */ 660 do while (i <= repl_str.len); 661 j = index (substr (replstr, i), PLOT); 662 if j > 0 /* found a PLOT */ 663 then 664 do; /* enter PLOT mode */ 665 dev_stat.plotting = "1"b; 666 i = i + j + PLOTlen - 1; 667 j = 0; 668 end; 669 670 else /* no PLOT, look for unPLOT */ 671 do; 672 j = index (substr (replstr, i), unPLOT); 673 if j > 0 /* found an unPLOT */ 674 then 675 do; /* leave PLOT mode */ 676 dev_stat.plotting = "0"b; 677 i = i + j + unPLOTlen - 1; 678 j = 0; 679 end; /**/ 680 /* neither, exit loop */ 681 else i = repl_str.len + 1; 682 end; 683 end; 684 end; 685 if tstr.devfnt = 0 686 then call set_media (font_in, fcdevfnt); 687 /**** &process_text FOR hyterm */ 688 /**** NO CODE */ 689 /**** END hyterm */ 690 word = word || replstr; 691 fcwidth = fnttbl.units (char_ndx); 692 wrdwidth = wrdwidth + fcwidth; 693 694 if text_sw & ^pref_sw 695 then call ioa_ ("^5x(text: ^d ^i ^f ^f ""^a"" -> ""^a^va"")", 696 fcdevfnt, fcwidth, 697 show (fcwidth * Xmptstrk, 12000), 698 show ((Xpos + Xspc + wrdwidth) * Xmptstrk, 699 12000), comp_util_$display ((tchr), 0, "0"b), 700 comp_util_$display (replstr, 0, "0"b), 701 repl_str.len - length (rtrim (replstr)), 702 " "); 703 end; 704 end font_char; 705 706 else 707 ctl_char: 708 do; /* its a DC1 control string */ 709 if word ^= "" /* flush current word */ 710 then 711 do; 712 call put_str (word, wrdwidth); 713 wrdwidth = 0; 714 tstr.white = "0"b; 715 end; 716 717 DCxx_p = /* set control string overlay ptr */ 718 addr (substr (loctxt, ichr, 1)); 719 /* for device/writer controls */ 720 if dcxx.ctl.type = "000"b 721 then 722 do; 723 (nostrg): if long_sw 724 then call 725 ioa_ ("^5x(CTL: ^[wait^]^[unstrt^]^[unstop^]" 726 || " ^a^[ Xpos=^f^;^s^])", (dcfs.type = type_wait), 727 (dcfs.type = type_unstart), 728 (dcfs.type = type_unstop), 729 comp_util_$display 730 ((substr (loctxt, ichr, dcxx.leng + 3)), 0, "0"b), 731 (dcfs.type = type_unstart) 732 | (dcfs.type = type_unstop), 733 show ((Xpos + Xspc) * Xmptstrk, 12000)); 734 /* a midpage wait? */ 735 if dcfs.type = type_wait 736 then 737 do; /* any accumulated motion? */ 738 if Xspc ^= 0 739 then call plot (SHIFT_OP, Xpos + Xspc, Ypos); 740 Xspc = 0; /**/ 741 /* user will give NL */ 742 Yspc = Yspc - divide (12000, Ypixel, 31, 0); 743 page_record.halt4 = "1"b; 744 page_record.nextref = "0"b; 745 page_record_ptr = addr (page_record.nextref); 746 page_record.leng, tstr.last_cr = 0; 747 unspec (page_record.sws) = "0"b; 748 page_record.in_use = "1"b; 749 page_record.pwheel = need_wheel; 750 end; /**/ 751 /* start underscore? */ 752 if dcfs.type = type_unstart 753 then 754 do; 755 unstart = max (Xpos + Xspc, Lmarg); 756 unstring = "1"b; 757 end; /**/ 758 /* stop underscore? */ 759 if dcfs.type = type_unstop 760 then 761 do; /* underscoring active? */ 762 if unstring & tstr_line ^= "" 763 & 764 ^(page_image.line (ilin).cbar 765 | page_image.line (ilin).mrgtxt) 766 then 767 do; 768 call put_uns; 769 unstring = "0"b; 770 end; 771 end; 772 end; /**/ 773 /* a font change? */ 774 else if dcfs.type = type_font 775 then 776 do; 777 if long_sw 778 then 779 do; 780 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 781 call ioa_ ("^5x(CTL: font ^a)", 782 comp_util_$display (debug_str, 0, "0"b)); 783 end; 784 785 need_font = dcfs.f; 786 need_size = dcfs.p; 787 call set_font (need_font, need_size); 788 end; /**/ 789 /* a literal? */ 790 else if dcfs.type = type_lit 791 then 792 do; 793 call put_str (substr (loctxt, ichr + 3, dcxx.leng), 0); 794 795 if long_sw 796 then 797 do; 798 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 799 call ioa_ ("^5x(CTL: literal ^a)", 800 comp_util_$display (debug_str, 0, "0"b)); 801 end; 802 end; 803 804 else /* its either a shift or a vector */ 805 do; /* fetch a short X */ 806 if (dcxx.Xctl = "01"b) 807 then Xmpts = dcshort_val.v1; 808 /* fetch a long X */ 809 else if (dcxx.Xctl = "10"b) 810 then Xmpts = dclong_val.v1; 811 else Xmpts = 0; /* no X movement */ 812 813 if (dcxx.Xctl ^= "00"b) 814 then /* if X is given */ 815 do; /* then Y is in v2 */ 816 /* fetch a short Y */ 817 if (dcxx.Yctl = "01"b) 818 then Ympts = dcshort_val.v2; 819 /* fetch a long Y */ 820 else if (dcxx.Yctl = "10"b) 821 then Ympts = dclong_val.v2; 822 else Ympts = 0; 823 end; 824 825 else /* no X was given */ 826 do; /* fetch a short Y */ 827 if (dcxx.Yctl = "01"b) 828 then Ympts = dcshort_val.v1; 829 /* fetch a long Y */ 830 else if (dcxx.Yctl = "10"b) 831 then Ympts = dclong_val.v1; 832 else Ympts = 0; 833 end; /**/ 834 /* shift */ 835 if dcxx.type = "100"b 836 then 837 do; 838 if font_in = 0 839 then call set_font (need_font, need_size); 840 841 Xmov = sign (Xmpts) 842 * 843 round (divide (abs (Xmpts) - 4, Xmptstrk, 31, 1), 0); 844 Xspc = Xspc + Xmov; 845 846 Ymov = sign (Ympts) 847 * 848 divide (abs (Ympts), Ypixel, 17, 0); 849 Yspc = Yspc + Ymov; 850 851 if long_sw 852 then 853 do; 854 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 855 call ioa_ ("^5x(CTL: shift ^f ^f (^f ^f) ^a)", 856 show (Xmpts, 12000), show (Ympts, 12000), 857 show (Xspc * Xmptstrk, 12000), show (Yspc,12000), 858 comp_util_$display (debug_str, 0, "0"b)); 859 end; 860 end; 861 862 else 863 do; /* not shift, it must be vector */ 864 if Xspc ^= 0 | Xmpts > 0 865 then if font_in ^= need_font | font_size ^= need_size 866 then call set_font (need_font, need_size); 867 /* need to position first? */ 868 if Xspc ^= 0 | Yspc ^= 0 869 then call plot (SHIFT_OP, Xpos + Xspc, Ypos + Yspc); 870 Xspc, Yspc = 0; 871 872 Xspc = divide (Xmpts, Xmptstrk, 31, 0); 873 Yspc = divide (Ympts, Ypixel, 31, 0); 874 875 if long_sw 876 then 877 do; 878 (nostrg): debug_str = substr (loctxt, ichr, dcxx.leng + 3); 879 call ioa_ ("^5x(CTL: vector ^f ^f ^a)", 880 show (Xmpts, 12000), show (Ympts, 12000), 881 comp_util_$display (debug_str, 0, "0"b)); 882 end; 883 call plot (VECTOR_OP, Xpos + Xspc, Ypos + Yspc); 884 Xspc, Yspc = 0; 885 end; 886 end; /**/ 887 /* move to last ctl char */ 888 ichr = ichr + dcxx.leng + 2; 889 end ctl_char; /* end of control sequence loop */ 890 end_chars: 891 end char_loop; 892 893 if word ^= "" /* flush last word */ 894 then 895 do; 896 call put_str (word, wrdwidth); 897 wrdwidth = 0; 898 tstr.white = "0"b; 899 end; 900 901 if unstring /* underscoring active? */ 902 & ^(page_image.line (ilin).cbar | page_image.line (ilin).mrgtxt) 903 then call put_uns; 904 /**** &line_finish FOR hyterm */ 905 /**** NO CODE */ 906 /**** END hyterm */ 907 if detail_sw 908 then 909 do; 910 call ioa_ ("^5x(line_finish: tstr lvl=^d ^[^^^]opn Y=^f X=^f ln=^d)", 911 window_level, ^(tstr.open), show (Ypos * Ypixel, 12000), 912 show (Xpos * Xmptstrk, 12000), length (tstr_line)); 913 if tstr.open 914 then call ioa_ ("""^a^va""", 915 comp_util_$display (rtrim (tstr_line), 0, "0"b), 916 length (tstr_line) - length (rtrim (tstr_line)), " "); 917 end; 918 end; 919 920 end image_loop; 921 922 finish_page: 923 if detail_sw 924 then call ioa_ ("^5x(finish_page:)"); 925 /* add any trailing lead */ 926 if page_image.line (page_image.count).white 927 then call plot (SHIFT_OP, 0, Ypos + 928 divide (page_image.line (page_image.count).lead, Ypixel, 31, 0)); 929 call put_; /* flush output image */ 930 931 call release_window; /* discard image just put */ 932 933 if ^option.galley_opt 934 then 935 do; 936 if comp_dvt.endpage ^= "0"b /* if FF is defined, then */ 937 then /* replace last NL with it */ 938 substr (page_record.text, page_record.leng, 1) = 939 byte (bin (comp_dvt.endpage)); 940 /* else run out the page with NLs */ 941 else if Ypos < divide (page.parms.length, Ypixel, 31, 0) 942 then 943 do; 944 runout = divide (page.parms.length, 12000, 31, 0) - 1 - 945 divide (Ypos, line_window_size, 31, 0) - bin (option.stop_opt); 946 page_record.leng = page_record.leng + runout; 947 substr (page_record.text, page_record.leng - runout + 1, 948 runout) = copy (NL, runout); 949 end; /**/ 950 /**** &page_finish FOR hyterm */ 951 /* show this font output complete */ 952 substr (fonts_done, font_in, 1) = "1"b; 953 /* look for another font */ 954 need_font = index (fonts_needed & ^fonts_done, "1"b); 955 if need_font ^= 0 /* if another wheel is needed */ 956 & font_wheel (need_font) ^= font_wheel (font_in) 957 then 958 do; 959 page_record.nextref = "0"b; 960 page_record_ptr = addr (page_record.nextref); 961 font_in, tstr.devfnt = 0; /* erase current font, devfnt */ 962 call set_font (need_font, font_size); 963 call set_media (need_font, font_media (need_font)); 964 goto rescan_page; 965 end; 966 967 /**** END hyterm */ 968 end; 969 970 page_record.nextref = "0"b; /* show nothing follows */ 971 972 return_: 973 if debug_sw 974 then call ioa_ (" (hyterm_writer_)"); 975 return; 976 977 footproc: 978 entry (footref, ptr); 979 980 /* PARAMETERS */ 981 /* actual reference string */ 982 dcl footref (3) char (*) var; 983 dcl ptr ptr; /* -> comp_dvt */ 984 /* &foot_proc for hyterm */ 985 dcl 1 super like dcshort_val; 986 dcl 1 sub like dcshort_val; 987 dcl sschar char (5) based; 988 989 super.mark, sub.mark = DC1; 990 super.type, sub.type = type_sy; 991 super.leng, sub.leng = dcshort1_len; 992 super.v1 = -4500; 993 sub.v1 = 4500; 994 footref (1) = addr (super) -> sschar; 995 footref (3) = addr (sub) -> sschar; 996 if (shared.bug_mode | db_sw) 997 then do; 998 call ioa_ ("hyterm_writer_$footproc: ^a", 999 comp_util_$display (footref (1) || footref (2) || footref (3), 0, 1000 "0"b)); 1001 end; 1002 return; 1003 1004 1005 /* This routine returns a printable interpretation of a native device string */ 1006 1007 dcl hyterm_writer_$display entry (char (*) var, fixed bin (24), 1008 bit (1)) returns (char (*) var); 1009 1010 display: 1011 entry (dtext, dlen, noerr) returns (char (*) var); 1012 1013 /* PARAMETERS */ 1014 1015 dcl dtext char (*) var; /* string to be displayed */ 1016 dcl dlen fixed bin (24); /* chars scanned by this call */ 1017 dcl noerr bit (1); /* 1= dont print error messages */ 1018 1019 /* LOCAL STORAGE */ 1020 1021 dcl ch char (1); /* extracted text char */ 1022 dcl ct fixed bin; /* number of duplicate chars */ 1023 dcl dstr char (1020) var; /* working string */ 1024 dcl rtn_str char (16384) var;/* return string */ 1025 1026 if dev_stat_ptr = null () 1027 then dev_stat_ptr = addr (stat_blk); 1028 1029 if stat_blk (1) ^= -1 /* check status block */ 1030 then 1031 do; 1032 stat_blk (*) = 0; 1033 stat_blk (1) = -1; 1034 end; 1035 1036 rtn_str = ""; /* clear return string */ 1037 ct = 0; 1038 1039 if dev_stat.plotting 1040 then goto device_display; 1041 1042 ch = substr (dtext, 1, 1); /* extract a char */ 1043 1044 if ch = THIN 1045 then 1046 do; 1047 ct = verify (dtext, THIN); /* how many? */ 1048 if ct = 0 /* all the rest */ 1049 then ct = length (dtext); 1050 else ct = ct - 1; 1051 1052 if ct > 1 /* if more than one */ 1053 then call ioa_$rsnnl ("", dstr, 0, ct); 1054 else dstr = ""; 1055 1056 rtn_str = rtn_str || dstr; 1057 end; 1058 1059 else if ch = DEVIT 1060 then do; 1061 ct = verify (dtext, DEVIT); /* how many? */ 1062 if ct = 0 /* all the rest */ 1063 then ct = length (dtext); 1064 else ct = ct - 1; 1065 1066 if ct > 1 /* if more than one */ 1067 then call ioa_$rsnnl ("", dstr, 0, ct); 1068 else dstr = ""; 1069 1070 rtn_str = rtn_str || dstr; 1071 end; 1072 1073 else 1074 do; 1075 device_display: /* &display FOR DEVICE hyterm */ 1076 if ch = ESC 1077 then 1078 do; 1079 if index (dtext, SET_HMI) = 1 1080 then 1081 do; 1082 ch = substr (dtext, 3, 1); 1083 call ioa_$rsnnl ("", rtn_str, 0, rank (ch) - 1); 1084 ct = 3; 1085 end; 1086 1087 else if index (dtext, ABS_TAB) = 1 1088 then 1089 do; 1090 if length (dtext) < 3 1091 then goto disp_ret; /* no column byte */ 1092 1093 ch = substr (dtext, 3, 1); 1094 call ioa_$rsnnl ("", rtn_str, 0, rank (ch)); 1095 ct = 3; 1096 end; 1097 1098 else if index (dtext, RLF) = 1 1099 then 1100 do; 1101 ct = verify (dtext, RLF); 1102 if ct = 0 1103 then ct = divide (length (dtext), RLFlen, 17, 0); 1104 else ct = divide (ct - 1, RLFlen, 17, 0); 1105 1106 if ct > 1 1107 then call ioa_$rsnnl ("", dstr, 0, ct); 1108 else dstr = ""; 1109 1110 rtn_str = rtn_str || dstr; 1111 ct = ct * RLFlen; 1112 end; 1113 1114 else if index (dtext, PLOT) = 1 1115 then if index (dtext, unPLOT) ^= 0 1116 then 1117 do; 1118 rtn_str = rtn_str || ""; 1129 ct = ct + 2; 1130 goto disp_ret; 1131 end; 1132 1133 else if index (substr (dtext, i), PLOT) = 1 1134 then 1135 do; 1136 rtn_str = rtn_str || ""; 1137 ct = ct + 2; 1138 i = i + 2; 1139 end; 1140 1141 else /* look for motion strings */ 1142 do; 1143 do j = 1 to dimension (plot_str, 1) by 2 1144 while (index (substr (dtext, i), plot_str (j)) ^= 1); 1145 end; /**/ 1146 /* a stranger? */ 1147 if j > dimension (plot_str, 1) 1148 then 1149 do; 1150 ch = substr (dtext, i, 1); 1151 call ioa_$rsnnl ("<^.3b>", dstr, 0, unspec (ch)); 1152 rtn_str = rtn_str || dstr; 1153 ct = ct + 1; 1154 i = i + 1; 1155 end; 1156 1157 else 1158 do; 1159 do k = 0 by length (plot_str (j)) 1160 while (index (substr (dtext, i + k), plot_str (j)) 1161 = 1); 1162 end; 1163 1164 call ioa_$rsnnl ("^[(^d*^;^s^]^a^[)^]", dstr, 0, 1165 (k > length (plot_str (j))), 1166 divide (k, length (plot_str (j)), 17, 0), 1167 plot_str (j + 1), (k > length (plot_str (j)))); 1168 rtn_str = rtn_str || dstr; 1169 ct = ct + k; 1170 i = i + k; 1171 end; 1172 end; 1173 end; 1174 end; 1175 1176 else ct = -1; 1177 end; 1178 1179 else if ch = RLF 1180 then do; 1181 ct = verify (dtext, RLF); /* how many? */ 1182 if ct = 0 /* all the rest */ 1183 then ct = divide (length (dtext), length (RLF), 17, 0); 1184 else ct = divide (ct - 1, 2, 17, 0); 1185 1186 if ct > 1 /* if more than one */ 1187 then call ioa_$rsnnl ("", dstr, 0, ct); 1188 else dstr = ""; 1189 1190 rtn_str = rtn_str || dstr; 1191 ct = (ct + bin (ct = 0)) * length (RLF); 1192 end; 1193 1194 else if ch = VMI 1195 then 1196 do; 1197 i = i + 3; 1198 rtn_str = rtn_str || ""; 1201 end; 1202 1203 else if ch = unPLOT 1204 then 1205 do; 1206 rtn_str = rtn_str || "]>"; 1207 i = i + unPLOTlen; 1208 end; 1209 1210 else ct = 0; 1211 /**/ 1212 /* END DEVICE hyterm */ 1213 end; 1214 1215 disp_ret: 1216 dlen = ct; 1217 1218 return (rtn_str); /* end of display */ 1219 1220 artproc: entry (); /**/ 1221 /* &art_proc for hyterm */ 1222 /**** NO CODE */return; 1223 1224 blat: proc; 1225 1226 dcl blatstr char (1020) var; 1227 1228 call ioa_$nnl (":^3d^3d/^d^12t^4d/^i^18t^5(^8f^)" || 1229 " ^[I^]^[O^]^[L^]^[C^]^[R^]^[J^]^[L^]^60t^3i ^6a ^f^/^4x", ilin, 1230 page_image.line (ilin).fileno, page_image.line (ilin).lineno, 1231 txtlen, page_image.line (ilin).gaps, 1232 show (page_image.line (ilin).lmarg, 12000), 1233 show (page_image.line (ilin).rmarg, 12000), 1234 show (page_image.line (ilin).width, 12000), 1235 show (page_image.line (ilin).depth, 12000), 1236 show (page_image.line (ilin).lead, 12000), 1237 quad & quadi, quad & quado, quad & quadl, 1238 quad & quadc, quad & quadr, quad & just, (quad = "0"b), 1239 page_image.line (ilin).lfnt, 1240 fnttbldata.ptr (page_image.line (ilin).lfnt) -> fnttbl.entry.name, 1241 show (fnttbldata.ptr (page_image.line (ilin).lfnt) -> fnttbl.entry.size, 1000), 1242 txtlen); 1243 1244 blatstr = comp_util_$display (substr (loctxt, 1, txtlen), 0, "0"b); 1245 call ioa_ ("""^a^va""", blatstr, 1246 length (blatstr) - length (rtrim (blatstr)), " "); 1247 end blat; 1248 1249 release_window: 1250 proc; 1251 1252 call translator_temp_$release_all_segments (window_area_ptr, 0); 1253 1254 end release_window; 1255 1256 move_tstr: /* move tstr ptr to new window level */ 1257 proc (incr); 1258 1259 /* PARAMETERS */ 1260 1261 dcl incr fixed bin (31); /* amount to move */ 1262 1263 if detail_sw 1264 then call ioa_ ("^-(move_tstr: ^d -> ^d)", window_level, 1265 window_level + incr); 1266 1267 window_level = window_level + incr; 1268 1269 max_level = max (max_level, window_level); 1270 tstr_ptr = addr (window (window_level)); 1271 1272 tstr.ypos, Ypos = Ypos + incr; 1273 Xpos = tstr.xpos; 1274 tstr.open = "1"b; 1275 1276 if tstr.str_ptr = null 1277 then tstr.str_ptr = allocate (window_area_ptr, 1024); 1278 1279 end move_tstr; 1280 1281 show: 1282 proc (datum, scale) returns (fixed dec (11, 3)); 1283 dcl datum fixed bin (31); 1284 dcl scale fixed bin (31); 1285 1286 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 1287 end show; 1288 1289 plot: 1290 proc (PLOT_OP, new_xpos, new_ypos); 1291 1292 /* This routine moves the current position to (new_xpos,new_ypos), */ 1293 /* plotting or shifting according to the value of PLOT_OP. */ 1294 1295 /* PARAMETERS */ 1296 1297 dcl PLOT_OP bit (1); /* 0-shift; 1-vector */ 1298 dcl new_xpos fixed bin (31); /* needed horizontal position */ 1299 dcl new_ypos fixed bin (31); /* needed vertical position */ 1300 1301 /* LOCAL STORAGE */ 1302 1303 dcl copystr char (2048) var; 1304 dcl exit_str char (32) var; 1305 dcl old_xpos fixed bin (31); 1306 dcl old_ypos fixed bin (31); 1307 dcl penctl char (6) var; /* pen control string */ 1308 dcl pltstr char (4090) var; 1309 dcl pltwidth fixed bin (31); 1310 dcl xii fixed bin; /* working value */ 1311 dcl xmove fixed bin (31); /* X movement */ 1312 dcl ymove fixed bin (31); /* Y movement */ 1313 1314 if new_xpos = Xpos & new_ypos = Ypos 1315 then return; 1316 1317 xmove, ymove, pltwidth = 0; 1318 pltstr = ""; 1319 1320 old_xpos = Xpos; /* case a VSFT changes Xpos */ 1321 old_ypos = Ypos; 1322 xmove = new_xpos - Xpos; 1323 ymove = new_ypos - Ypos; 1324 1325 if detail_sw 1326 then call 1327 ioa_ ("^5xplot: (^[V^;S^] ^f/^f -> ^f/^f = ^f/^f)", PLOT_OP, 1328 show (Xpos * Xmptstrk, 12000), show (Ypos * Ypixel, 12000), 1329 show (new_xpos * Xmptstrk, 12000), show (new_ypos * Ypixel, 12000), 1330 show (xmove * Xmptstrk, 12000), show (ymove * Ypixel, 12000)); 1331 1332 if ^PLOT_OP /* if a SHIFT is wanted */ 1333 then 1334 do; 1335 if ymove ^= 0 /* any Y movement? */ 1336 then 1337 do; 1338 if window_level + ymove < window_top | 1339 window_level + ymove > window_bottom 1340 then 1341 do; 1342 call comp_report_$ctlstr (2, comp_error_table_$program_error, 1343 lineinfoptr, loctxt, 1344 "Attempt to place a line off page ^a at line ^d.", 1345 page.hdr.pageno, window_level); 1346 signal comp_abort; 1347 end; 1348 1349 call move_tstr (ymove); 1350 ymove = 0; 1351 xmove = new_xpos - Xpos; 1352 end; 1353 1354 penctl = PENUP; /* init for pen up */ 1355 end; /**/ 1356 /* else a VECTOR is wanted */ 1357 else penctl = PENDOWN; /* init for pen down */ 1358 /**** &plot FOR hyterm */ 1359 if ^PLOT_OP 1360 then 1361 do; 1362 if xmove ^= 0 /* any X movement? */ 1363 then 1364 do; 1365 if tstr.font = 0 1366 then tstr.font = font_in; /**/ 1367 /* any full columns? */ 1368 xii = divide (xmove * Xpixel, EN_width, 17, 0); 1369 1370 if abs (xii) >= 1 /* if moving at least 1 SP or BSP */ 1371 then 1372 do; /**/ 1373 /* if not more than 3 SPs */ 1374 if abs (xii) <= 3 & xii > 0 1375 & new_ypos = old_ypos /* and on the same line */ 1376 & tstr_line ^= DT1 /* and not left margin */ 1377 then 1378 do; 1379 if length (pltstr) + xii >= MAX_STR 1380 then call put_str (pltstr, 0); 1381 1382 pltstr = pltstr || copy (" ", xii); 1383 pltwidth = pltwidth + 1384 divide (xii * EN_width, Xpixel, 31, 0); 1385 xmove = xmove - divide (xii * EN_width, Xpixel, 31, 0); 1386 end; 1387 1388 else /* >3, direct tab to column */ 1389 do; 1390 tabcol = /* must account for current HMI */ 1391 divide (new_xpos * Xpixel * HMI10, 1392 EN_width * hmi_value, 17, 0); 1393 1394 if tabcol > 125 /* can direct tab to only the */ 1395 then tabcol = 125; /* ..first 126 print positions */ 1396 1397 else if tabcol < 0 1398 then 1399 do; 1400 call comp_report_$ctlstr (3, 1401 comp_error_table_$program_error, lineinfoptr, loctxt, 1402 "A carriage column to the left of the left margin" || 1403 " stop has been encountered."); 1404 tabcol = 0; 1405 end; 1406 1407 pltstr = pltstr || ABS_TAB || byte (tabcol + 1); 1408 pltwidth = pltwidth - Xpos + 1409 divide (tabcol * EN_width, Xpixel, 31, 0); 1410 /* overwrite ABS_TAB-only line */ 1411 if length (tstr_line) = 3 & index (tstr_line, ABS_TAB) = 1 1412 then tstr_line = ""; 1413 1414 xmove = new_xpos - /* how much is left? */ 1415 tabcol * divide (EN_width, Xpixel, 31, 0); 1416 end; 1417 end; 1418 end; 1419 1420 else if tstr_line = "" & loctxt ^= "" 1421 then 1422 do; 1423 if tstr.font = 0 1424 then tstr.font = font_in; 1425 pltstr = ABS_TAB || byte (1); 1426 pltwidth = pltwidth - Xpos; 1427 end; 1428 end; 1429 1430 if xmove ^= 0 | ymove ^= 0 /* any movement at all? */ 1431 then 1432 do; 1433 if xmove < 0 /* leftward movement? */ 1434 then xc = BSP; /* set BS as plot char */ 1435 else xc = " "; /* set SP as plot char */ 1436 xmove = abs (xmove); 1437 1438 if PLOT_OP 1439 then xc = xc || penctl; 1440 xcmax = divide (MAX_STR, length (xc), 17, 0); 1441 1442 if ymove < 0 /* upward movement? */ 1443 then yc = RLF; /* set reverse LF as plot char */ 1444 else yc = LF; /* set LF as plot char */ 1445 ymove =abs (ymove); 1446 1447 if PLOT_OP 1448 then yc = yc || penctl; 1449 ycmax = divide (MAX_STR, length (yc), 17, 0); 1450 1451 xyc = xc || yc; 1452 xycmax = divide (MAX_STR, length (xyc), 17, 0); 1453 1454 xiyi = min (xmove, ymove); /* amount of common movment */ 1455 xmove = max (xmove - xiyi, 0); /* remaining x movement */ 1456 ymove = max (ymove - xiyi, 0); /* remaining y movement */ 1457 1458 if length (pltstr) + PLOTlen > MAX_STR 1459 then call put_str (pltstr, pltwidth); 1460 pltstr = pltstr || PLOT; 1461 1462 do while (xiyi > 0); 1463 iplt = min (xiyi, xycmax); 1464 if length (pltstr) + iplt * length (xyc) > MAX_STR 1465 then call put_str (pltstr, pltwidth); 1466 pltstr = pltstr || copy (xyc, iplt); 1467 pltwidth = pltwidth + sign (xmove) * iplt; 1468 xiyi = xiyi - iplt; 1469 end; 1470 1471 do while (xmove > 0); 1472 iplt = min (xmove, xcmax); 1473 if length (pltstr) + iplt * length (xc) > MAX_STR 1474 then call put_str (pltstr, pltwidth); 1475 pltstr = pltstr || copy (xc, iplt); 1476 pltwidth = pltwidth + sign (xmove) * iplt; 1477 xmove = xmove - iplt; 1478 end; 1479 1480 do while (ymove > 0); 1481 iplt = min (ymove, ycmax); 1482 if length (pltstr) + iplt * length (yc) > MAX_STR 1483 then call put_str (pltstr, pltwidth); 1484 pltstr = pltstr || copy (yc, iplt); 1485 ymove = ymove - iplt; 1486 end; 1487 1488 pltstr = pltstr || unPLOT; 1489 end; 1490 /**** END hyterm */ 1491 1492 plot_return: 1493 if length (pltstr) > 0 1494 then call put_str (pltstr, pltwidth); 1495 1496 /* Xpos, tstr.xpos = new_xpos;*/ 1497 1498 if detail_sw 1499 then call 1500 ioa_ ("^-(plot: ^f/^f lvl=^d ^[^^^]opn^[ W^])", 1501 show (Xpos * Xmptstrk, 12000), show (Ypos * Ypixel, 12000), 1502 window_level, ^tstr.open, tstr.white); 1503 1504 /* Xplt, Yplt = 0; /* motion used */ 1505 end plot; 1506 1507 pad_block: 1508 proc; /**/ 1509 1510 /* these two values in fixed dec so round off doesnt affect pad placement. */ 1511 /* dcl 1512*/* ( igap, /* gap counter for padding */ 1513 /* padeach /* padding interval */ 1514 /* ) fixed dec (11, 3);*/ 1515 1516 dcl 1517 ( igap, /* gap counter for padding */ 1518 padeach /* padding interval */ 1519 ) fixed bin; 1520 1521 dcl gaps fixed bin; /* gap count for line */ 1522 dcl jl_ptr ptr; /* pointer to the justified line */ 1523 dcl just_line char (1020) var; 1524 /* pads per gap */ 1525 dcl pads (page_image.line (ilin).gaps) fixed bin; 1526 dcl padsize fixed bin; /* pad space in pixels */ 1527 dcl 1 pad_ctl like dclong_val; /* for inserting pads */ 1528 dcl pad_ctl_ptr ptr; 1529 dcl pad_string char (7) based (pad_ctl_ptr); 1530 dcl SP_DC1 char (2) int static options (constant) init (" "); 1531 1532 just_line = ""; /* clear the justified line */ 1533 jl_ptr = addr (just_line); /* and set pointer for the overlay */ 1534 1535 if font_in ^= need_font 1536 then call set_font (need_font, need_size); 1537 1538 if col_width < 0 1539 then col_width = divide (page_image.line (ilin).net, Xmptstrk, 31, 0); 1540 if text_width > 0 1541 then text_width = divide (page_image.line (ilin).width, Xmptstrk, 31, 0); 1542 1543 if Xpixel ^= EN_width /* set up pad_ctl string */ 1544 then 1545 do; 1546 pad_ctl.mark = DC1; 1547 pad_ctl.type = type_slx; 1548 pad_ctl.leng = dclong1_len; 1549 pad_ctl.v2 = 0; 1550 pad_ctl_ptr = addr (pad_ctl); 1551 end; 1552 1553 gaps = page_image.line (ilin).gaps; 1554 padsize = max (0, col_width - text_width); 1555 /* fill in common amount */ 1556 pads = fnttbl.units (rank (STROKE)) * divide ( 1557 divide (padsize, gaps, 17, 0), fnttbl.units (rank (STROKE)), 17, 0); 1558 /* then get the leftover amount */ 1559 padsize = padsize - pads (1) * gaps; 1560 1561 if long_sw 1562 then call 1563 ioa_$nnl ("^5x(pad_block: l/w/r=^f/^f/^f gp=^i pd=^i+^i", 1564 show (Lmarg * Xmptstrk, 12000), 1565 show (text_width * Xmptstrk, 12000), 1566 show (page_image.line (ilin).rmarg, 12000), gaps, 1567 pads (1), padsize); 1568 1569 do while (padsize > 0); /* use up any leftovers */ 1570 padeach = /* pad interval */ 1571 max (round (divide (gaps * fnttbl.units (rank (STROKE)), padsize, 17, 1), 0), 1); 1572 igap = max (round (divide (gaps * fnttbl.units (rank (STROKE)), 2 * padsize, 17, 1), 0), 1); 1573 1574 do igap = igap to gaps by padeach while (padsize > 0); 1575 pads (igap) = pads (igap) + fnttbl.units (rank (STROKE)); 1576 padsize = padsize - fnttbl.units (rank (STROKE)); 1577 end; 1578 end; 1579 1580 if long_sw 1581 then call ioa_ ("^(,^i^))", pads); 1582 1583 ichr = verify (loctxt, " "); /* start at front of text */ 1584 if ichr > 1 1585 then just_line = just_line || copy (EN, ichr - 1); 1586 1587 do j = 1 to gaps; 1588 try_again: /* find word boundary */ 1589 k = search (substr (loctxt, ichr, txtlen - ichr + 1), SP_DC1) - 1; 1590 1591 if k < 0 /* MGOD! gap count is too large */ 1592 then 1593 do; 1594 if detail_sw 1595 then 1596 do; 1597 call ioa_$nnl ("gap=^i ", gaps); 1598 call blat; 1599 end; 1600 goto gap_exit; 1601 end; /**/ 1602 /* copy word */ 1603 just_line = just_line || substr (loctxt, ichr, k); 1604 ichr = ichr + k; /* step over "word" */ 1605 /* did we find a control? */ 1606 if substr (loctxt, ichr, 1) = DC1 1607 then 1608 do; /* set pointer */ 1609 DCxx_p = addr (substr (loctxt, ichr)); 1610 k = dcxx.leng + 3; /* and control string length */ 1611 /* copy ctl str */ 1612 just_line = just_line || substr (loctxt, ichr, k); 1613 ichr = ichr + k; 1614 goto try_again; 1615 end; 1616 1617 ichr = ichr + 1; /* skip the wordspace */ 1618 1619 if Xpixel = EN_width /* now, any excess count */ 1620 then just_line = just_line || copy (" ", pads (j)); 1621 else 1622 do; 1623 pad_ctl.v1 = pads (j) * Xmptstrk; 1624 just_line = just_line || pad_string; 1625 end; 1626 end; 1627 1628 gap_exit: 1629 k = txtlen - ichr + 1; /* length of the last word */ 1630 /* move the last word */ 1631 just_line = just_line || substr (loctxt, ichr, k); 1632 loctxt = just_line; /* switch to the justified line */ 1633 txtlen = length (just_line); 1634 1635 if long_sw 1636 then call ioa_ ("^a", comp_util_$display (just_line, 0, "0"b)); 1637 1638 end pad_block; 1639 1640 put_: 1641 proc; 1642 1643 dcl level fixed bin; 1644 dcl level_skip fixed bin; 1645 1646 if detail_sw 1647 then call 1648 ioa_ ("^5x(put: maxlvl=^d)", max_level); 1649 1650 level_skip = 0; 1651 1652 if first_line 1653 then 1654 do level = window_top to -1 /* discard leading null lines */ 1655 while (^window (level).open); 1656 end; 1657 else level = window_top; 1658 dev_stat.plotting = "0"b; 1659 1660 do level = level to max_level; 1661 tstr_ptr = addr (window (level)); /**/ 1662 1663 if tstr.str_ptr = null 1664 then 1665 do; 1666 tstr.str_ptr = allocate (window_area_ptr, 1024); 1667 tstr_line = ""; 1668 end; /**/ 1669 /* &put FOR DEVICE hyterm */ 1670 /* for full/partial lines */ 1671 do level_skip = 0 to line_window_size - 1 1672 while (^window (level + level_skip + 1).open); 1673 end; /**/ 1674 /* need a FNL? */ 1675 if level_skip >= line_window_size - 1 | level = max_level 1676 then 1677 do; 1678 if ^first_page 1679 then tstr_line = tstr_line || NL; 1680 level_skip = line_window_size - 1; 1681 end; 1682 1683 else /* need a incr NL */ 1684 do; 1685 if tstr_line = DT1 1686 then tstr_line = PLOT; 1687 else tstr_line = tstr_line || PLOT; 1688 tstr_line = tstr_line || copy (NL, level_skip +1); 1689 tstr_line = tstr_line || unPLOT; 1690 end; 1691 /**/ 1692 /* END DEVICE hyterm */ 1693 if detail_sw 1694 then call 1695 ioa_ ("^7x(lvl=^d ^d+^d=^d ""^a"")", level, page_record.leng, 1696 length (tstr_line), page_record.leng + length (tstr_line), 1697 comp_util_$display (tstr_line, 0, "0"b)); 1698 1699 level = level + level_skip; 1700 tstr.last_cr = 0; 1701 page_record.leng = page_record.leng + length (tstr_line); 1702 substr (page_record.text, page_record.leng - length (tstr_line) + 1, 1703 length (tstr_line)) = tstr_line; 1704 end; 1705 1706 if page_record.leng > 0 1707 then page_record.in_use = "1"b; 1708 Ypos = tstr.ypos; 1709 1710 end put_; 1711 1712 put_str: 1713 proc (string, width); 1714 1715 dcl string char (4090) var; /* string to put */ 1716 dcl width fixed bin (31); /* string width */ 1717 1718 dcl (i, j) fixed bin; 1719 dcl new_len fixed bin; 1720 dcl old_len fixed bin; 1721 dcl pos fixed bin (31); /* current position */ 1722 1723 if tstr.devfnt ^= need_devfnt 1724 then call set_media (font_in, need_devfnt); 1725 1726 old_len = length (tstr_line) - tstr.last_cr; 1727 new_len = old_len + length (string); 1728 1729 if new_len > MAX_STR 1730 then 1731 do; 1732 end; 1733 1734 if detail_sw 1735 then 1736 do; 1737 debug_str = comp_util_$display (string, 0, "0"b); 1738 call ioa_ ( 1739 "^5x(put_str: lvl=^d X=^f+^f=^f ^d+^d=^d^[(^d)^;^s^] ""^a^va"")", 1740 window_level, show (Xpos * Xmptstrk, 12000), show (width * Xmptstrk, 12000), 1741 show ((Xpos + width) * Xmptstrk, 12000), old_len, length (string), new_len, 1742 (tstr.last_cr > 0), length (tstr_line) + length (string), 1743 debug_str, length (debug_str) - length (rtrim (debug_str)), " "); 1744 end; 1745 1746 tstr_line = tstr_line || string; 1747 Xpos, tstr.xpos = Xpos + width; 1748 1749 string = ""; 1750 width = 0; 1751 tstr.open = "1"b; 1752 end put_str; 1753 1754 put_uns: 1755 proc; 1756 dcl Y_offs fixed bin (31); /* baseline offset */ 1757 dcl unslen fixed bin (31);/* length of underscore */ 1758 1759 Y_offs = 0; 1760 unslen = Xpos + Xspc - unstart; 1761 1762 if unslen > 0 1763 then 1764 do; 1765 if detail_sw 1766 then call 1767 ioa_ ("^5x(put_uns: ^f)", 1768 show (unslen * Xmptstrk, 12000)); 1769 1770 Xspc = Xspc - unslen; /* go to start */ 1771 Xspc = max (Xspc - 3, -(Xpos + Xspc)); 1772 Y_offs = 3; 1773 call plot (SHIFT_OP, Xpos + Xspc, Ypos + Y_offs); 1774 Xspc, Yspc = 0; /**/ 1775 /* put the underscore */ 1776 call plot (VECTOR_OP, Xpos + unslen, Ypos); 1777 call plot (SHIFT_OP, Xpos + 3600, Ypos - 3000); 1778 unstart = Lmarg; 1779 1780 if detail_sw 1781 then call ioa_ ("^-(put_uns)"); 1782 end; 1783 end put_uns; 1784 1785 set_font: 1786 proc (new_font, new_size); 1787 1788 /* PARAMETERS */ 1789 1790 dcl new_font fixed bin; /* desired font index */ 1791 dcl new_size fixed bin (31); /* desired pointsize */ 1792 1793 dcl chng bit (1); 1794 1795 chng = (font_in ^= new_font | font_size ^= new_size); 1796 1797 if chng 1798 then 1799 do; 1800 if detail_sw 1801 then 1802 do; 1803 if font_in = 0 1804 then call ioa_$nnl ("^5x(set_font: 0 - 0. -->"); 1805 else call 1806 ioa_$nnl ("^5x(set_font: ^i ^a ^f -->", font_in, 1807 fnttbldata.ptr (font_in) -> fnttbl.entry.name, 1808 show (font_size, 1000)); 1809 end; 1810 1811 font_in = new_font; 1812 end; 1813 1814 fnttbl_ptr = fnttbldata.ptr (font_in); 1815 substr (fonts_needed, font_in, 1) = "1"b; 1816 need_devfnt = fnttbl.devfnt (32); 1817 /**** &set_font FOR hyterm */ 1818 font_media (font_in) = need_devfnt; 1819 need_wheel, font_wheel (font_in) = /* needed wheel */ 1820 bin (unspec (substr (medsel (need_devfnt), 1, 1))); 1821 1822 /**** END hyterm */ 1823 if siztbl.ct = 1 1824 then font_size, new_size = siztbl.size (1); 1825 else font_size = new_size; 1826 1827 Xmptstrk = divide (font_size, fnttbl.rel_units, 31, 0); 1828 EM_width = 1829 divide (font_size * fnttbl.units (rank (EM)), fnttbl.rel_units, 31, 10); 1830 EN_width = 1831 divide (font_size * fnttbl.units (rank (EN)), fnttbl.rel_units, 31, 10); 1832 THIN_width = 1833 divide (font_size * fnttbl.units (rank (THIN)), fnttbl.rel_units, 31, 10); 1834 1835 if (detail_sw | long_sw) & chng 1836 then 1837 do; 1838 call ioa_ (" ^i ^a ^f Xscl=^d)", new_font, 1839 fnttbldata.ptr (new_font) -> fnttbl.entry.name, 1840 show (font_size, 1000), Xmptstrk); 1841 if long_sw 1842 then call ioa_ ("^-(HUGE=^d EM=^d EN=^d THK=^d MED=^d " 1843 || "THN=^d HAIR=^d STRK=^d)", fnttbl.units (rank (HUGE)), 1844 fnttbl.units (rank (EM)),fnttbl.units (rank (EN)), 1845 fnttbl.units (rank (THICK)),fnttbl.units (rank (MEDIUM)), 1846 fnttbl.units (rank (THIN)),fnttbl.units (rank (DEVIT)), 1847 fnttbl.units (rank (STROKE))); 1848 end; 1849 end set_font; 1850 1851 set_media: 1852 proc (media_font, new_devfnt); 1853 1854 /* PARAMETERS */ 1855 1856 dcl media_font fixed bin; /* font needing the media */ 1857 dcl new_devfnt fixed bin; /* wanted device font */ 1858 1859 /* LOCAL STORAGE */ 1860 1861 dcl chng bit (1); /* 1= media or size has to change */ 1862 dcl med_chng bit (1); /* 1= media has to change */ 1863 dcl size_chng bit (1); /* 1= size has to change */ 1864 dcl temp_r bit (18); 1865 1866 med_chng = tstr.devfnt ^= new_devfnt; 1867 size_chng = media_size ^= font_size; 1868 chng = med_chng | size_chng; 1869 1870 if detail_sw & chng 1871 then call ioa_$nnl ("^5x(set_media: siz=^f med=^d --> siz=^f med=^d ", 1872 show (media_size, 1000), tstr.devfnt, show (font_size, 1000), 1873 new_devfnt); 1874 /**** &set_media FOR hyterm */ 1875 mounted_wheel = need_wheel; /* needed wheel now mounted */ 1876 1877 if hmi_code ^= substr (medsel (new_devfnt), 2, 1) 1878 then 1879 do; 1880 hmi_code = substr (medsel (new_devfnt), 2, 1); 1881 medselstr = SET_HMI || hmi_code; 1882 hmi_value = rank (hmi_code) - 1; 1883 end; 1884 1885 /**** END hyterm */ 1886 /**** &set_ps FOR hyterm */ 1887 1888 media_size = 7200; 1889 1890 /**** END hyterm */ 1891 if detail_sw & chng 1892 then call ioa_ ("sel=""^a"")", 1893 comp_util_$display ((medsel (new_devfnt)), 0, "0"b)); 1894 1895 /* if not in media needed */ 1896 if med_chng /* ...change to it */ 1897 then 1898 do; 1899 tstr.devfnt = new_devfnt; 1900 tstr.font = media_font; 1901 end; 1902 end set_media; 1903 1904 /* device hyterm "other_procs" */ 1905 /**** NO CODE */dcl db_sw bit (1) aligned static init ("0"b); 1906 1907 dbn: entry;db_sw = "1"b;goto db_join; 1908 dbf: entry;db_sw = "0"b;return; 1909 1910 dcl tx_sw bit (1) aligned static init ("0"b); 1911 txn: entry; tx_sw = "1"b; goto db_join; 1912 txf: entry; tx_sw = "0"b; return; 1913 1914 dcl lg_sw bit (1) aligned static init ("0"b); 1915 lgn: entry; lg_sw = "1"b; goto db_join; 1916 lgf: entry; lg_sw = "0"b; return; 1917 1918 dcl pf_sw bit (1) aligned static init ("0"b); 1919 pfn: entry; pf_sw = "1"b; return; 1920 pff: entry; pf_sw = "0"b; return; 1921 1922 dcl abrt_sw bit (1) aligned static init ("0"b); 1923 abrtn: entry; abrt_sw = "1"b; return; 1924 abrtf: entry; abrt_sw = "0"b; return; 1925 1926 dcl dt_sw bit (1) aligned static init ("0"b); 1927 dtn: entry;dt_sw = "1"b;goto db_join; 1928 dtf: entry;dt_sw = "0"b;return; 1929 1930 alln: entry; db_sw, dt_sw, lg_sw = "1"b; 1931 db_join: 1932 dcl db_line fixed bin static init (0); 1933 dcl com_err_ entry options (variable); 1934 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 1935 dcl arg char (argl) based (argp); 1936 dcl argl fixed bin; 1937 dcl argp ptr; 1938 dcl ercd fixed bin (35); 1939 dcl error_table_$noarg fixed bin (35) ext static; 1940 1941 db_line = 0; 1942 call cu_$arg_ptr (1, argp, argl, ercd); 1943 if ercd ^= 0 1944 then do; 1945 if ercd ^= error_table_$noarg 1946 then call com_err_ (ercd, "hyterm_writer_"); 1947 return; 1948 end; 1949 db_line = convert (db_line, arg); 1950 return; 1951 1952 allf: entry; db_sw, lg_sw, tx_sw, pf_sw, dt_sw, abrt_sw = "0"b; 1953 return; 1954 1955 /* This one include file contains all the compose includes necessary for an */ 1956 /* 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 ..... */ 1957 1958 1959 end hyterm_writer_; 1960 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 1123.2 hyterm_writer_.pl1 >special_ldd>online>compose-04/17/85>hyterm_writer_.pl1 1957 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. ABS_TAB 017322 constant char(2) initial dcl 202 ref 1087 1407 1411 1425 ANwords parameter fixed bin(17,0) dcl 2-23 ref 2-21 2-40 2-40 BELc 003256 automatic varying char(17) dcl 218 set ref 338* 340* BSP constant char(1) initial unaligned dcl 4-6 ref 1433 CR constant char(1) initial unaligned dcl 4-6 ref 1124 DC1 017317 constant char(1) initial unaligned dcl 4-6 ref 565 989 1546 1606 DCxx_p 013764 automatic pointer dcl 5-8 set ref 717* 720 723 723 723 723 723 723 735 752 759 774 780 785 786 790 793 793 798 806 806 809 809 813 817 817 820 820 827 827 830 830 835 854 878 888 1609* 1610 DEVIT constant char(1) initial unaligned dcl 4-6 ref 1059 1061 1841 DT1 000174 constant char(3) initial dcl 202 ref 1374 1685 EM constant char(1) initial unaligned dcl 4-6 ref 1828 1841 EM_width 000505 automatic fixed bin(31,0) dcl 87 set ref 1828* EN constant char(1) initial unaligned dcl 4-6 ref 1584 1830 1841 EN_width 000506 automatic fixed bin(31,0) dcl 88 set ref 1368 1383 1385 1390 1408 1414 1543 1619 1830* ESC constant char(1) initial unaligned dcl 4-6 ref 1075 HMI10 constant fixed bin(17,0) initial dcl 202 ref 440 450 1390 HUGE constant char(1) initial unaligned dcl 4-6 ref 1841 LF constant char(1) initial unaligned dcl 4-6 ref 1444 Lfree 2 based fixed bin(35,0) level 2 dcl 2-32 set ref 2-41 2-45 2-49* 2-49 Lmarg 000525 automatic fixed bin(31,0) dcl 108 set ref 469* 520* 534* 534 542 542 554 755 1561 1561 1778 MAX_STR constant fixed bin(17,0) initial dcl 234 ref 1379 1440 1449 1452 1458 1464 1473 1482 1729 MEDIUM constant char(1) initial unaligned dcl 4-6 ref 1841 NL 017320 constant char(1) initial unaligned dcl 4-6 ref 947 1678 1688 Nwords 016122 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 016124 automatic pointer dcl 2-26 set ref 2-42* 2-43 2-44 2-47* 2-50 PENDOWN constant char(1) initial dcl 202 ref 1357 PENUP constant char(1) initial dcl 202 ref 1354 PLOT 017321 constant char(2) initial dcl 202 ref 644 661 1114 1133 1460 1685 1687 PLOT_OP parameter bit(1) unaligned dcl 1297 set ref 1289 1325* 1332 1359 1438 1447 PLOTlen constant fixed bin(17,0) initial dcl 202 ref 666 1458 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 RLF constant char(2) initial dcl 202 ref 1098 1101 1179 1181 1182 1191 1442 RLFlen constant fixed bin(17,0) initial dcl 202 ref 1102 1104 1111 SET_HMI constant char(2) initial dcl 202 ref 450 1079 1881 SHIFT_OP constant bit(1) initial unaligned dcl 123 set ref 551* 640* 738* 868* 926* 1773* 1777* SP_DC1 constant char(2) initial unaligned dcl 1530 ref 1588 STROKE constant char(1) initial unaligned dcl 4-6 ref 1556 1556 1570 1572 1575 1576 1841 THICK constant char(1) initial unaligned dcl 4-6 ref 1841 THIN constant char(1) initial unaligned dcl 4-6 ref 1044 1047 1832 1841 THIN_width 001217 automatic fixed bin(31,0) dcl 139 set ref 1832* VECTOR_OP constant bit(1) initial unaligned dcl 156 set ref 883* 1776* VMI 000000 constant varying char(4) initial dcl 271 ref 1194 Xctl 0(13) based bit(2) level 3 packed unaligned dcl 5-11 ref 806 809 813 Xmov 003226 automatic fixed bin(31,0) dcl 167 set ref 841* 844 Xmpts 003233 automatic fixed bin(31,0) dcl 172 set ref 806* 809* 811* 841 841 855* 855* 864 872 879* 879* Xmptstrk 003227 automatic fixed bin(31,0) dcl 168 set ref 520 522 524 542 542 608 608 608 608 630 630 630 630 694 694 694 694 723 723 841 855 855 872 910 910 1325 1325 1325 1325 1325 1325 1498 1498 1538 1540 1561 1561 1561 1561 1623 1738 1738 1738 1738 1738 1738 1765 1765 1827* 1838* Xpixel 003230 automatic fixed bin(31,0) dcl 169 set ref 387* 1368 1383 1385 1390 1408 1414 1543 1619 Xpos 003231 automatic fixed bin(31,0) dcl 170 set ref 385* 554 608 608 630 630 640 694 694 723 723 738 755 868 883 910 910 1273* 1314 1320 1322 1325 1325 1351 1408 1426 1498 1498 1738 1738 1738 1738 1747 1747* 1760 1771 1773 1776 1777 Xspc 003232 automatic fixed bin(31,0) dcl 171 set ref 405* 531* 532* 532 534 554* 606* 606 608 608 628* 628 630 630 640 640 642* 694 694 723 723 738 738 740* 755 844* 844 855 855 864 868 868 870* 872* 883 884* 1760 1770* 1770 1771* 1771 1771 1773 1774* Y_offs 016100 automatic fixed bin(31,0) dcl 1756 set ref 1759* 1772* 1773 Yctl 0(16) based bit(2) level 3 packed unaligned dcl 5-11 ref 817 820 827 830 Yinit 003234 automatic fixed bin(31,0) dcl 173 set ref 385* 506 Ymov 003235 automatic fixed bin(31,0) dcl 174 set ref 846* 849 Ympts 003241 automatic fixed bin(31,0) dcl 178 set ref 817* 820* 822* 827* 830* 832* 846 846 855* 855* 873 879* 879* Ypixel 003236 automatic fixed bin(31,0) dcl 175 set ref 388* 506 742 846 873 910 910 926 941 1325 1325 1325 1325 1325 1325 1498 1498 Ypos 003237 automatic fixed bin(31,0) dcl 176 set ref 385* 506 551 640 738* 868 883 910 910 926 941 944 1272 1272* 1314 1321 1323 1325 1325 1498 1498 1708* 1773 1776* 1777 Yspc 003240 automatic fixed bin(31,0) dcl 177 set ref 405* 506* 507* 507 551 551 553* 640 640 642* 742* 742 849* 849 855* 855* 868 868 870* 873* 883 884* 1774* abrt_sw 000242 internal static bit(1) initial dcl 1922 set ref 586 1923* 1924* 1952* abs builtin function dcl 282 ref 841 846 1370 1374 1436 1445 addr builtin function dcl 180 ref 303 356 377 377 389 414 434 446 454 500 717 745 960 994 995 1026 1270 1533 1550 1609 1661 area based structure level 1 unaligned dcl 2-32 arg based char unaligned dcl 1935 ref 1949 argl 013757 automatic fixed bin(17,0) dcl 1936 set ref 1942* 1949 argp 013760 automatic pointer dcl 1937 set ref 1942* 1949 auto_lead 000100 automatic fixed bin(31,0) dcl 77 set ref 385* 507 bad_chrs 000010 internal static varying char(128) dcl 80 set ref 333* 576 579* 579 bin builtin function dcl 180 ref 936 944 1191 1819 blatstr 000100 automatic varying char(1020) dcl 1226 set ref 1244* 1245* 1245 1245 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 14-7 ref 347 471 996 cbar 16(07) based bit(1) array level 4 packed unaligned dcl 13-56 ref 762 901 ch 003354 automatic char(1) unaligned dcl 1021 set ref 1042* 1044 1059 1075 1082* 1083 1093* 1094 1094 1150* 1151 1151 1179 1194 1203 char builtin function dcl 282 ref 1199 char_ndx 000101 automatic fixed bin(17,0) dcl 81 set ref 569* 571 592 594 605 627 691 chng 000100 automatic bit(1) unaligned dcl 1793 in procedure "set_font" set ref 1795* 1797 1835 chng 016110 automatic bit(1) unaligned dcl 1861 in procedure "set_media" set ref 1868* 1870 1891 cleanup 003242 stack reference condition dcl 183 ref 383 401 code 016126 automatic fixed bin(35,0) dcl 2-26 in procedure "allocate" set ref 2-42* code parameter fixed bin(35,0) dcl 73 in procedure "hyterm_writer_" set ref 62 286* 317* col_width 000102 automatic fixed bin(31,0) dcl 82 set ref 469* 522* 531 1538 1538* 1554 com_err_ 000260 constant entry external dcl 1933 ref 400 1945 comp_abort 000000 stack reference condition dcl 183 ref 1346 comp_dvid based structure level 1 dcl 6-17 comp_dvid_version 000261 constant fixed bin(17,0) initial dcl 6-14 set ref 312 328* comp_dvt based structure level 1 dcl 7-19 comp_error_table_$program_error 000250 external static fixed bin(35,0) dcl 192 set ref 580* 1342* 1400* comp_report_ 000266 constant entry external dcl 8-59 ref 377 comp_report_$ctlstr 000270 constant entry external dcl 8-61 ref 580 1342 1400 comp_util_$display 000272 constant entry external dcl 8-77 ref 608 630 694 694 723 781 799 855 879 913 998 1244 1635 1693 1737 1891 compstat$compconst 000274 external static structure level 1 dcl 16-14 const based structure level 1 dcl 16-23 copy builtin function dcl 282 ref 947 1382 1466 1475 1484 1584 1619 1688 count 1 based fixed bin(17,0) level 2 dcl 13-56 set ref 368* 374 465 926 926 ct based fixed bin(17,0) level 2 in structure "siztbl" dcl 10-38 in procedure "hyterm_writer_" ref 1823 ct 003355 automatic fixed bin(17,0) dcl 1022 in procedure "hyterm_writer_" set ref 1037* 1047* 1048 1048* 1050* 1050 1052 1052* 1061* 1062 1062* 1064* 1064 1066 1066* 1084* 1095* 1101* 1102 1102* 1104* 1104 1106 1106* 1111* 1111 1119* 1129* 1129 1137* 1137 1153* 1153 1169* 1169 1176* 1181* 1182 1182* 1184* 1184 1186 1186* 1191* 1191 1191 1210* 1215 ctl 0(09) based structure level 2 in structure "dcxx" packed unaligned dcl 5-11 in procedure "hyterm_writer_" ctl based structure level 1 dcl 15-157 in procedure "hyterm_writer_" ctl_ptr 132 based pointer level 3 dcl 16-23 ref 377 377 cu_$arg_ptr 000262 constant entry external dcl 1934 ref 1942 datum parameter fixed bin(31,0) dcl 1283 ref 1281 1286 db_line 000244 internal static fixed bin(17,0) initial dcl 1931 set ref 471 1941* 1949* 1949 db_sw 000236 internal static bit(1) initial dcl 1905 set ref 318 347 471 996 1907* 1908* 1930* 1952* dcfs based structure level 1 packed unaligned dcl 5-80 dclong1_len constant fixed bin(17,0) initial dcl 5-62 ref 1548 dclong_val based structure level 1 packed unaligned dcl 5-54 dcshort1_len constant fixed bin(17,0) initial dcl 5-75 ref 991 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 83 set ref 780* 781* 798* 799* 854* 855* 878* 879* 1737* 1738* 1738 1738 debug_sw 000503 automatic bit(1) unaligned dcl 84 set ref 346* 347* 348 349 350 351 368 460 467* 475* 503 972 dec builtin function dcl 282 ref 1286 default_parms based structure level 1 dcl 15-213 depth 17 based fixed bin(31,0) array level 3 dcl 13-56 set ref 506 1228* 1228* detail_sw 000504 automatic bit(1) unaligned dcl 85 set ref 346* 348* 467* 476* 478* 542 907 922 1263 1325 1498 1594 1646 1693 1734 1765 1780 1800 1835 1870 1891 dev_stat based structure level 1 unaligned dcl 219 dev_stat_ptr 000052 internal static pointer initial dcl 86 set ref 303* 440 665 676 1026 1026* 1039 1390 1658 1877 1880 1881 1882 1882 devfnt 66 based fixed bin(17,0) array level 2 in structure "fnttbl" dcl 10-14 in procedure "hyterm_writer_" ref 592 1816 devfnt 0(18) based fixed bin(17,0) level 2 in structure "tstr" packed unaligned dcl 141 in procedure "hyterm_writer_" set ref 418* 616 616 685 961* 1723 1866 1870* 1899* device 204 based varying char(32) level 2 dcl 11-5 set ref 368* devptr 140 based pointer level 3 dcl 16-23 ref 364 366 387 388 537 936 936 divide builtin function dcl 180 ref 364 366 506 520 522 524 532 742 841 846 872 873 926 941 944 944 1102 1104 1164 1164 1182 1184 1286 1368 1383 1385 1390 1408 1414 1440 1449 1452 1538 1540 1556 1556 1570 1572 1827 1828 1830 1832 dlen parameter fixed bin(24,0) dcl 1016 set ref 1010 1215* dstr 003356 automatic varying char(1020) dcl 1023 set ref 1052* 1054* 1056 1066* 1068* 1070 1106* 1108* 1110 1151* 1152 1164* 1168 1186* 1188* 1190 dt_sw 000243 internal static bit(1) initial dcl 1926 set ref 348 476 1927* 1928* 1930* 1952* dtext parameter varying char dcl 1015 ref 1010 1042 1047 1048 1061 1062 1079 1082 1087 1090 1093 1098 1101 1102 1114 1114 1122 1124 1124 1133 1143 1150 1159 1181 1182 1199 dvidptr 142 based pointer level 3 dcl 16-23 ref 312 327 endpage 120(26) based bit(9) level 3 packed unaligned dcl 7-19 ref 936 936 entry 6 based structure level 2 dcl 10-14 ercd 013762 automatic fixed bin(35,0) dcl 1938 set ref 394* 397 400* 1942* 1943 1945 1945* error_table_$noarg 000264 external static fixed bin(35,0) dcl 1939 ref 1945 error_table_$unimplemented_version 000246 external static fixed bin(35,0) dcl 188 ref 317 f 0(27) based fixed bin(9,0) level 2 packed unsigned unaligned dcl 5-80 ref 785 fcdevfnt 000507 automatic fixed bin(17,0) dcl 89 set ref 592* 608* 616 630* 685* 694* fcwidth 000510 automatic fixed bin(31,0) dcl 90 set ref 605* 606 608* 608 608 627* 628 630* 630 630 691* 692 694* 694 694 fileheader_ptr 013772 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 1228* first_line 000054 internal static bit(1) unaligned dcl 91 set ref 412* 1652 first_page 000055 internal static bit(1) initial dcl 92 set ref 335* 442 456* 1678 fntstk_entry based structure level 1 dcl 9-6 fnttbl based structure level 1 dcl 10-14 fnttbl_ptr 013766 automatic pointer initial dcl 10-13 set ref 571 580 592 594 605 627 691 10-13* 1556 1556 1570 1572 1575 1576 1814* 1816 1823 1823 1827 1828 1828 1830 1830 1832 1832 1841 1841 1841 1841 1841 1841 1841 1841 fnttbldata based structure level 1 dcl 10-7 fnttbldata_ptr 150 based pointer level 3 dcl 16-23 ref 1228 1228 1228 1805 1814 1819 1838 1877 1880 1891 font 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 141 set ref 1365 1365* 1423 1423* 1900* font_in 000511 automatic fixed bin(17,0) dcl 93 set ref 385* 517 556 685* 838 864 952 955 961* 1365 1423 1535 1723* 1795 1803 1805* 1805 1811* 1814 1815 1818 1819 font_media 001130 automatic fixed bin(17,0) array dcl 113 set ref 385* 963* 1818* font_size 000512 automatic fixed bin(31,0) dcl 94 set ref 385* 556 864 962* 1795 1805* 1805* 1823* 1825* 1827 1828 1830 1832 1838* 1838* 1867 1870* 1870* font_wheel 003264 automatic fixed bin(17,0) array dcl 228 set ref 392* 955 955 1819* fonts_done 000513 automatic bit(36) unaligned dcl 95 set ref 468* 952* 954 fonts_needed 000514 automatic bit(36) unaligned dcl 96 set ref 468* 954 1815* footref parameter varying char array dcl 982 set ref 977 994* 995* 998 998 998 func parameter fixed bin(17,0) dcl 67 ref 62 288 296 307 353 galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 11-5 ref 933 gaps 000102 automatic fixed bin(17,0) dcl 1521 in procedure "pad_block" set ref 1553* 1556 1559 1561* 1570 1572 1574 1587 1597* gaps 20 based fixed bin(17,0) array level 3 in structure "page_image" dcl 13-56 in procedure "hyterm_writer_" set ref 537 1228* 1525 1553 halt 0(02) based bit(1) level 3 packed unaligned dcl 232 set ref 429* halt2 0(03) based bit(1) level 3 packed unaligned dcl 232 set ref 429* halt4 0(05) based bit(1) level 3 packed unaligned dcl 12-64 set ref 743* hdr 15 based structure level 2 dcl 13-11 hmi_code 2 based char(1) level 2 packed unaligned dcl 219 set ref 1877 1880* 1881 1882 hmi_value 3 based fixed bin(17,0) level 2 dcl 219 set ref 440* 1390 1882* i 000515 automatic fixed bin(17,0) dcl 100 set ref 648* 660 661 666* 666 672 677* 677 681* 1120* 1122* 1122 1122* 1124 1124 1133 1138* 1138 1143 1150 1154* 1154 1159 1170* 1170* 1197* 1197 1199 1207* 1207 ichr 000520 automatic fixed bin(17,0) dcl 102 set ref 561* 563 717 723 780 793 793 798 854 878 888* 888* 1583* 1584 1584 1588 1588 1603 1604* 1604 1606 1609 1612 1613* 1613 1617* 1617 1628 1631 igap 000100 automatic fixed bin(17,0) dcl 1516 set ref 1572* 1574* 1574* 1575 1575* ilin 000056 internal static fixed bin(17,0) dcl 103 set ref 465* 471 487 500 501 506 507 510 511 520 520 522 522 524 524 537 556 556 556 556 762 762 901 901* 1228* 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1525 1538 1540 1553 1561 1561 image_ptr 40 based pointer level 2 dcl 13-11 ref 356 368 374 389 465 487 500 501 506 510 511 520 520 522 522 524 524 537 556 556 556 556 762 762 901 901 926 926 926 926 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1525 1538 1540 1553 1561 1561 in_use based bit(1) level 3 in structure "preface" packed unaligned dcl 232 in procedure "hyterm_writer_" set ref 424* in_use based bit(1) level 3 in structure "page_record" packed unaligned dcl 12-64 in procedure "hyterm_writer_" set ref 437* 748* 1706* incr parameter fixed bin(31,0) dcl 1261 ref 1256 1263 1267 1272 index builtin function dcl 180 ref 576 644 644 661 672 954 1079 1087 1098 1114 1114 1124 1124 1133 1143 1159 1411 info 21 based structure array level 3 in structure "page_image" dcl 13-56 in procedure "hyterm_writer_" set ref 500 info 277 based structure level 3 in structure "text" dcl 15-49 in procedure "hyterm_writer_" info 277 based structure level 3 in structure "hfcblk" dcl 15-250 in procedure "hyterm_writer_" info 161 based structure level 2 in structure "text_entry" dcl 15-68 in procedure "hyterm_writer_" info 161 based structure level 2 in structure "ctl" dcl 15-157 in procedure "hyterm_writer_" set ref 377 377 info 161 based structure level 2 in structure "txtlin" dcl 15-161 in procedure "hyterm_writer_" ioa_ 000276 constant entry external dcl 16-70 ref 321 322 323 324 325 326 327 328 368 420 460 542 608 630 694 723 781 799 855 879 910 913 922 972 998 1245 1263 1325 1498 1580 1635 1646 1693 1738 1765 1780 1838 1841 1891 ioa_$nnl 000300 constant entry external dcl 16-70 ref 1228 1561 1597 1803 1805 1870 ioa_$rsnnl 000252 constant entry external dcl 196 ref 1052 1066 1083 1094 1106 1151 1164 1186 iplt 003331 automatic fixed bin(17,0) dcl 233 set ref 1463* 1464 1466 1467 1468 1472* 1473 1475 1476 1477 1481* 1482 1484 1485 j 000516 automatic fixed bin(17,0) dcl 100 set ref 661* 662 666 667* 672* 673 677 678* 1143* 1143* 1147 1159 1159 1164 1164 1164 1164 1164 1587* 1619 1623* jl_ptr 000104 automatic pointer dcl 1522 set ref 1533* just constant bit(6) initial unaligned dcl 15-148 ref 537 1228 just_line 000106 automatic varying char(1020) dcl 1523 set ref 1532* 1533 1584* 1584 1603* 1603 1612* 1612 1619* 1619 1624* 1624 1631* 1631 1632 1633 1635* justifying 120(01) based bit(1) level 3 packed unaligned dcl 7-19 ref 537 k 000517 automatic fixed bin(17,0) dcl 100 set ref 1159* 1159* 1164 1164 1164 1164 1169 1170 1588* 1591 1603 1604 1610* 1612 1613 1628* 1631 last_cr 1 based fixed bin(17,0) level 2 packed unaligned dcl 141 set ref 746* 1700* 1726 1738 lead 24 based fixed bin(31,0) array level 3 dcl 13-56 set ref 926 1228* 1228* left 12 based structure level 2 in structure "text_parms" dcl 15-206 in procedure "hyterm_writer_" left 12 based structure level 2 in structure "default_parms" dcl 15-213 in procedure "hyterm_writer_" left 12 based structure level 2 in structure "current_parms" dcl 15-209 in procedure "hyterm_writer_" left 1016 based structure level 3 in structure "text" dcl 15-49 in procedure "hyterm_writer_" left 1016 based structure level 3 in structure "hfcblk" dcl 15-250 in procedure "hyterm_writer_" len based fixed bin(35,0) level 2 dcl 10-30 ref 660 681 694 leng 0(18) 000507 automatic fixed bin(9,0) level 2 in structure "pad_ctl" packed unsigned unaligned dcl 1527 in procedure "pad_block" set ref 1548* leng 0(18) 003350 automatic fixed bin(9,0) level 2 in structure "super" packed unsigned unaligned dcl 985 in procedure "hyterm_writer_" set ref 991* leng 0(18) based fixed bin(9,0) level 2 in structure "dcxx" packed unsigned unaligned dcl 5-11 in procedure "hyterm_writer_" ref 723 780 793 793 798 854 878 888 1610 leng 0(18) 003352 automatic fixed bin(9,0) level 2 in structure "sub" packed unsigned unaligned dcl 986 in procedure "hyterm_writer_" set ref 991* leng 1 based fixed bin(24,0) level 2 in structure "page_record" dcl 12-64 in procedure "hyterm_writer_" set ref 357 411 433 434 435* 744 745 746* 936 936 946* 946 947 947 959 960 970 1693* 1693 1701* 1701 1702 1702 1706 length builtin function dcl 180 in procedure "hyterm_writer_" ref 489 694 910 910 913 913 1048 1062 1090 1102 1122 1159 1164 1164 1164 1164 1182 1182 1191 1245 1245 1379 1411 1440 1449 1452 1458 1464 1464 1473 1473 1482 1482 1492 1633 1693 1693 1693 1701 1702 1702 1726 1727 1738 1738 1738 1738 1738 1738 length 2 based fixed bin(31,0) level 3 in structure "page" dcl 13-11 in procedure "hyterm_writer_" ref 366 941 944 level 016056 automatic fixed bin(17,0) dcl 1643 set ref 1652* 1652* 1657* 1660* 1660* 1661 1671 1675 1693* 1699* 1699* level_skip 016057 automatic fixed bin(17,0) dcl 1644 set ref 1650* 1671* 1671* 1675 1680* 1688 1699 lfnt 25 based fixed bin(17,0) array level 3 dcl 13-56 set ref 510 556 556* 1228* 1228 1228 1228 lg_sw 000240 internal static bit(1) initial dcl 1914 set ref 349 479 1915* 1916* 1930* 1952* line 16 based structure array level 2 dcl 13-56 line_area_ptr 014000 automatic pointer initial dcl 15-25 set ref 15-25* line_window_size 000524 automatic fixed bin(17,0) dcl 106 set ref 364* 365 944 1671 1675 1680 lineinfoptr 000522 automatic pointer dcl 105 set ref 500* 580* 1342* 1400* lineno 22 based fixed bin(17,0) array level 4 dcl 13-56 set ref 1228* lmarg 26 based fixed bin(31,0) array level 3 dcl 13-56 set ref 520 520 1228* 1228* loctxt 000526 automatic varying char(1020) dcl 109 set ref 488* 491 563 580* 717 723 780 793 793 798 854 878 1244 1244 1342* 1400* 1420 1583 1588 1603 1606 1609 1612 1631 1632* long_sw 001126 automatic bit(1) unaligned dcl 110 set ref 346* 349* 467* 479* 481* 723 777 795 851 875 1561 1580 1635 1835 1841 lsize 27 based fixed bin(31,0) array level 3 dcl 13-56 set ref 511 556 556* ltrim builtin function dcl 282 ref 1199 mark 000507 automatic char(1) level 2 in structure "pad_ctl" packed unaligned dcl 1527 in procedure "pad_block" set ref 1546* mark 003350 automatic char(1) level 2 in structure "super" packed unaligned dcl 985 in procedure "hyterm_writer_" set ref 989* mark 003352 automatic char(1) level 2 in structure "sub" packed unaligned dcl 986 in procedure "hyterm_writer_" set ref 989* max builtin function dcl 180 ref 532 755 1269 1455 1456 1554 1570 1572 1771 max_level 001127 automatic fixed bin(17,0) dcl 111 set ref 413* 445* 455* 1269* 1269 1646* 1660 1675 max_revlead 000057 internal static fixed bin(31,0) dcl 112 set ref 337* med_chng 016111 automatic bit(1) unaligned dcl 1862 set ref 1866* 1868 1896 media_font parameter fixed bin(17,0) dcl 1856 ref 1851 1900 media_size 001174 automatic fixed bin(31,0) dcl 114 set ref 385* 1867 1870* 1870* 1888* medsel based char(12) array unaligned dcl 10-36 ref 1819 1877 1880 1891 medsel_ptr 2 based pointer level 2 dcl 10-7 ref 1819 1877 1880 1891 medselstr 001175 automatic varying char(32) dcl 115 set ref 449* 1881* min builtin function dcl 180 ref 1454 1463 1472 1481 min_WS 30 based fixed bin(31,0) level 2 dcl 7-19 ref 387 min_lead 31 based fixed bin(31,0) level 2 dcl 7-19 ref 364 366 388 mod builtin function dcl 2-26 ref 2-40 mounted_wheel 000235 internal static fixed bin(17,0) initial dcl 229 set ref 341* 391 426 430* 439 1875* mrgtxt 16(08) based bit(1) array level 4 packed unaligned dcl 13-56 ref 762 901 name 40 based varying char(65) level 3 dcl 10-14 set ref 580* 1228* 1805* 1838* need_devfnt 001207 automatic fixed bin(17,0) dcl 117 set ref 385* 1723 1723* 1816* 1818 1819 need_font 001206 automatic fixed bin(17,0) dcl 116 set ref 510* 517 517* 785* 787* 838* 864 864* 954* 955 955 962* 963* 963 1535 1535* need_size 001210 automatic fixed bin(31,0) dcl 118 set ref 511* 517* 786* 787* 838* 864 864* 1535* need_wheel 003330 automatic fixed bin(17,0) dcl 231 set ref 391* 426 430 749 1819* 1875 net 30 based fixed bin(31,0) array level 3 dcl 13-56 ref 522 522 1538 new_devfnt parameter fixed bin(17,0) dcl 1857 set ref 1851 1866 1870* 1877 1880 1891 1899 new_font parameter fixed bin(17,0) dcl 1790 set ref 1785 1795 1811 1838* 1838 new_len 016070 automatic fixed bin(17,0) dcl 1719 set ref 1727* 1729 1738* new_size parameter fixed bin(31,0) dcl 1791 set ref 1785 1795 1823* 1825 new_xpos parameter fixed bin(31,0) dcl 1298 ref 1289 1314 1322 1325 1325 1351 1390 1414 new_ypos parameter fixed bin(31,0) dcl 1299 ref 1289 1314 1323 1325 1325 1374 nextref based bit(36) level 2 in structure "page_record" dcl 12-64 in procedure "hyterm_writer_" set ref 744* 745 959* 960 970* nextref based bit(36) level 2 in structure "preface" dcl 232 in procedure "hyterm_writer_" set ref 433* 434 nobell_opt 1(27) based bit(1) level 2 packed unaligned dcl 11-5 ref 338 noerr parameter bit(1) unaligned dcl 1017 ref 1010 null builtin function dcl 2-26 in procedure "allocate" ref 2-43 2-43 2-45 null builtin function dcl 180 in procedure "hyterm_writer_" ref 410 415 447 573 1026 10-13 12-21 12-45 12-62 15-25 15-35 1276 1663 null_font_char 003250 stack reference condition dcl 183 ref 586 old_len 016071 automatic fixed bin(17,0) dcl 1720 set ref 1726* 1727 1738* old_xpos 014030 automatic fixed bin(31,0) dcl 1305 set ref 1320* old_ypos 014031 automatic fixed bin(31,0) dcl 1306 set ref 1321* 1374 open based bit(1) array level 2 in structure "window" packed unaligned dcl 162 in procedure "hyterm_writer_" set ref 1652 1671 open based bit(1) level 2 in structure "tstr" packed unaligned dcl 141 in procedure "hyterm_writer_" set ref 910 913 1274* 1498 1751* option based structure level 1 dcl 11-5 option_ptr 164 based pointer level 3 dcl 16-23 ref 312 323 338 368 933 944 option_version 000000 constant fixed bin(35,0) initial dcl 11-3 set ref 312 324* outproc_ptr 166 based pointer level 3 dcl 16-23 set ref 310* p 1 based fixed bin(31,0) level 2 packed unaligned dcl 5-80 ref 786 pad_ctl 000507 automatic structure level 1 packed unaligned dcl 1527 set ref 1550 pad_ctl_ptr 000512 automatic pointer dcl 1528 set ref 1550* 1624 pad_string based char(7) unaligned dcl 1529 ref 1624 padeach 000101 automatic fixed bin(17,0) dcl 1516 set ref 1570* 1574 pads 000506 automatic fixed bin(17,0) array dcl 1525 set ref 1556* 1559 1561* 1575* 1575 1580* 1619 1623 padsize 000506 automatic fixed bin(17,0) dcl 1526 set ref 1554* 1556 1559* 1559 1561* 1569 1570 1572 1574 1576* 1576 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 312 325 356 366 368 368 374 377 389 465 487 500 501 506 510 511 520 520 522 522 524 524 537 556 556 556 556 762 762 901 901 926 926 926 926 941 944 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1342 1525 1538 1540 1553 1561 1561 page_record 11 based bit(36) level 2 in structure "record" dcl 12-46 in procedure "hyterm_writer_" set ref 356 389 page_record based structure level 1 dcl 12-64 in procedure "hyterm_writer_" set ref 357* 411* page_record_ptr 013776 automatic pointer initial dcl 12-62 set ref 356* 357 389* 411 424 424 424 429 429 433 434* 434 435 436 437 438 439 743 744 745* 745 746 747 748 749 936 936 946 946 947 947 959 960* 960 970 12-62* 1693 1693 1701 1701 1702 1702 1706 1706 page_version 000261 constant fixed bin(17,0) initial dcl 13-9 set ref 312 326* pageno 26 based varying char(32) level 3 dcl 13-11 set ref 368* 377 1342* parms 1 based structure level 2 dcl 13-11 penctl 014032 automatic varying char(6) dcl 1307 set ref 1354* 1357* 1438 1447 pf_sw 000241 internal static bit(1) initial dcl 1918 set ref 351 1919* 1920* 1952* plot_str 000002 constant varying char(8) initial array dcl 235 set ref 1143 1143 1147 1159 1159 1164 1164 1164 1164* 1164 plotting 1 based bit(1) level 3 packed unaligned dcl 219 set ref 665* 676* 1039 1658* pltstr 014035 automatic varying char(4090) dcl 1308 set ref 1318* 1379 1379* 1382* 1382 1407* 1407 1425* 1458 1458* 1460* 1460 1464 1464* 1466* 1466 1473 1473* 1475* 1475 1482 1482* 1484* 1484 1488* 1488 1492 1492* pltwidth 016035 automatic fixed bin(31,0) dcl 1309 set ref 1317* 1383* 1383 1408* 1408 1426* 1426 1458* 1464* 1467* 1467 1473* 1476* 1476 1482* 1492* pref_sw 001211 automatic bit(1) unaligned dcl 120 set ref 346* 351* 420 608 630 694 preface based structure level 1 dcl 232 in procedure "hyterm_writer_" preface 0(06) based bit(1) level 3 in structure "preface" packed unaligned dcl 232 in procedure "hyterm_writer_" set ref 424* ptr 32 based pointer array level 3 in structure "page_image" dcl 13-56 in procedure "hyterm_writer_" ref 487 ptr builtin function dcl 2-26 in procedure "allocate" ref 2-47 ptr 4 based pointer array level 2 in structure "fnttbldata" dcl 10-7 in procedure "hyterm_writer_" ref 1228 1228 1228 1805 1814 1838 ptr parameter pointer dcl 983 in procedure "hyterm_writer_" ref 977 ptr 000274 external static pointer level 2 in structure "compstat$compconst" dcl 16-14 in procedure "hyterm_writer_" ref 310 312 312 312 312 321 323 325 327 338 347 356 364 366 366 368 368 368 374 377 377 377 387 388 389 465 471 487 500 501 506 510 511 520 520 522 522 524 524 537 537 556 556 556 556 762 762 901 901 926 926 926 926 933 936 936 941 944 944 996 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1342 1525 1538 1540 1553 1561 1561 1805 1814 1819 1838 1877 1880 1891 ptrs 126 based structure level 2 dcl 16-23 pwheel 0(30) based fixed bin(6,0) level 3 packed unsigned unaligned dcl 12-64 set ref 439* 749* quad 001212 automatic bit(6) unaligned dcl 121 in procedure "hyterm_writer_" set ref 501* 528 528 532 537 1228 1228 1228 1228 1228 1228 1228 quad 16 based bit(6) array level 4 in structure "page_image" packed unaligned dcl 13-56 in procedure "hyterm_writer_" ref 501 quadc constant bit(6) initial unaligned dcl 15-148 ref 528 532 1228 quadi constant bit(6) initial unaligned dcl 15-148 ref 1228 quadl constant bit(6) initial unaligned dcl 15-148 ref 1228 quado constant bit(6) initial unaligned dcl 15-148 ref 1228 quadr constant bit(6) initial unaligned dcl 15-148 ref 528 1228 rawo 0(01) based bit(1) level 3 in structure "preface" packed unaligned dcl 232 in procedure "hyterm_writer_" set ref 424* rawo 0(01) based bit(1) level 3 in structure "page_record" packed unaligned dcl 12-64 in procedure "hyterm_writer_" set ref 438* record based structure level 1 dcl 12-46 record_ptr 013774 automatic pointer initial dcl 12-45 set ref 12-45* rel_units 3 based fixed bin(17,0) level 2 dcl 10-14 ref 1827 1828 1830 1832 repl_str based structure level 1 unaligned dcl 10-30 repl_str_ptr 013770 automatic pointer dcl 10-29 set ref 571* 573 644 644 660 661 672 681 690 694 694 694 replptr 1066 based pointer array level 2 dcl 10-14 ref 571 replstr based varying char(256) dcl 10-33 set ref 644 644 661 672 690 694* 694 rmarg 34 based fixed bin(31,0) array level 3 dcl 13-56 set ref 1228* 1228* 1561* 1561* round builtin function dcl 282 ref 532 841 1286 1286 1570 1572 rtn_str 003756 automatic varying char(16384) dcl 1024 set ref 1036* 1056* 1056 1070* 1070 1083* 1094* 1110* 1110 1118* 1118 1128* 1128 1136* 1136 1152* 1152 1168* 1168 1190* 1190 1198* 1198 1199* 1199 1200* 1200 1206* 1206 1218 rtrim builtin function dcl 282 ref 694 913 913 913 1245 1738 runout 001213 automatic fixed bin(17,0) dcl 122 set ref 944* 946 947 947 947 scale parameter fixed bin(31,0) dcl 1284 ref 1281 1286 search builtin function dcl 282 ref 1588 shared based structure level 1 dcl 14-7 shared_ptr 200 based pointer level 3 dcl 16-23 ref 312 321 347 471 996 shared_version 000272 constant fixed bin(35,0) initial dcl 14-5 set ref 312 322* sign builtin function dcl 282 ref 841 846 1467 1476 size 62 based fixed bin(31,0) level 3 in structure "fnttbl" dcl 10-14 in procedure "hyterm_writer_" set ref 1228* 1228* size builtin function dcl 180 in procedure "hyterm_writer_" ref 407 size 1 based fixed bin(31,0) array level 2 in structure "siztbl" dcl 10-38 in procedure "hyterm_writer_" ref 1823 size_chng 016112 automatic bit(1) unaligned dcl 1863 set ref 1867* 1868 siztbl based structure level 1 unaligned dcl 10-38 siztbl_ptr 4 based pointer level 2 dcl 10-14 ref 1823 1823 sschar based char(5) unaligned dcl 987 ref 994 995 stat_blk 000060 internal static fixed bin(35,0) initial array dcl 125 set ref 301* 302* 303 1026 1029 1032* 1033* stop_opt 1(33) based bit(1) level 2 packed unaligned dcl 11-5 ref 944 str_ptr 6 based pointer level 2 in structure "tstr" dcl 141 in procedure "hyterm_writer_" set ref 415 415* 417 447 447* 449 453* 762 910 910 913 913 913 913 1276 1276* 1374 1411 1411 1411 1420 1663 1666* 1667 1678 1678 1685 1685 1687 1687 1688 1688 1689 1689 1693 1693 1693 1693 1701 1702 1702 1702 1726 1738 1746 1746 str_ptr 6 based pointer array level 2 in structure "window" dcl 162 in procedure "hyterm_writer_" set ref 410* string parameter varying char(4090) dcl 1715 set ref 1712 1727 1737* 1738 1738 1738 1746 1749* sub 003352 automatic structure level 1 packed unaligned dcl 986 set ref 995 substr builtin function dcl 180 set ref 491 563 661 672 717 723 780 793 793 798 854 878 936* 947* 952* 1042 1082 1093 1124 1124 1133 1143 1150 1159 1199 1244 1244 1588 1603 1606 1609 1612 1631 1702* 1815* 1819 1877 1880 super 003350 automatic structure level 1 packed unaligned dcl 985 set ref 994 sw 1 based structure level 2 packed unaligned dcl 219 sws 16 based structure array level 3 in structure "page_image" dcl 13-56 in procedure "hyterm_writer_" sws based structure level 2 in structure "preface" dcl 232 in procedure "hyterm_writer_" sws 4113 based structure level 2 in structure "shared" dcl 14-7 in procedure "hyterm_writer_" sws based structure level 2 in structure "page_record" dcl 12-64 in procedure "hyterm_writer_" set ref 436* 747* sws 120 based structure level 2 in structure "comp_dvt" packed unaligned dcl 7-19 in procedure "hyterm_writer_" tabcol 003332 automatic fixed bin(17,0) dcl 273 set ref 1390* 1394 1394* 1397 1404* 1407 1408 1414 tchr 001216 automatic char(1) unaligned dcl 138 set ref 563* 565 569 576 579 580* 580 580 608 630 694 text based structure level 1 dcl 15-49 in procedure "hyterm_writer_" text 2 based char level 2 in structure "page_record" dcl 12-64 in procedure "hyterm_writer_" set ref 936* 947* 1702* text_area_ptr 014002 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 356 389 text_sw 001214 automatic bit(1) unaligned dcl 136 set ref 346* 350* 467* 482* 484* 608 630 694 text_width 001215 automatic fixed bin(31,0) dcl 137 set ref 469* 524* 531 1540 1540* 1554 1561 1561 translator_temp_$get_next_segment 000302 constant entry external dcl 2-37 ref 2-42 translator_temp_$get_segment 000254 constant entry external dcl 197 ref 394 translator_temp_$release_all_segments 000256 constant entry external dcl 199 ref 1252 tstr based structure level 1 dcl 141 set ref 407 452* tstr_line based varying char(2048) dcl 152 set ref 417* 449* 762 910 910 913 913 913 913 1374 1411 1411 1411* 1420 1667* 1678* 1678 1685 1685* 1687* 1687 1688* 1688 1689* 1689 1693 1693 1693 1693* 1701 1702 1702 1702 1726 1738 1746* 1746 tstr_ptr 001220 automatic pointer dcl 140 set ref 407 414* 415 415 417 418 446* 447 447 449 452 453 454* 602 616 616 624 685 714 746 762 898 910 910 910 913 913 913 913 913 961 1270* 1272 1273 1274 1276 1276 1365 1365 1374 1411 1411 1411 1420 1423 1423 1498 1498 1661* 1663 1666 1667 1678 1678 1685 1685 1687 1687 1688 1688 1689 1689 1693 1693 1693 1693 1700 1701 1702 1702 1702 1708 1723 1726 1726 1738 1738 1746 1746 1747 1751 1866 1870 1899 1900 tx_sw 000237 internal static bit(1) initial dcl 1910 set ref 350 482 1911* 1912* 1952* txtlen 001222 automatic fixed bin(17,0) dcl 153 set ref 489* 491 491 496* 496 513 561 640 1228* 1228* 1244 1244 1588 1628 1633* txtstr based varying char(1020) dcl 15-45 ref 488 489 txtstrptr 014004 automatic pointer dcl 15-44 set ref 487* 488 489 type 0(09) 003350 automatic char(1) level 2 in structure "super" packed unaligned dcl 985 in procedure "hyterm_writer_" set ref 990* type 0(09) 003352 automatic char(1) level 2 in structure "sub" packed unaligned dcl 986 in procedure "hyterm_writer_" set ref 990* type 0(09) based bit(3) level 3 in structure "dcxx" packed unaligned dcl 5-11 in procedure "hyterm_writer_" ref 720 835 type 0(09) based char(1) level 2 in structure "dcfs" packed unaligned dcl 5-80 in procedure "hyterm_writer_" ref 723 723 723 723 723 735 752 759 774 790 type 0(09) 000507 automatic char(1) level 2 in structure "pad_ctl" packed unaligned dcl 1527 in procedure "pad_block" set ref 1547* type_font constant char(1) initial unaligned dcl 5-90 ref 774 type_lit constant char(1) initial unaligned dcl 5-90 ref 790 type_slx constant char(1) initial unaligned dcl 5-90 ref 1547 type_sy constant char(1) initial unaligned dcl 5-90 ref 990 type_unstart 017315 constant char(1) initial unaligned dcl 5-90 ref 723 723 752 type_unstop 017314 constant char(1) initial unaligned dcl 5-90 ref 723 723 759 type_wait 017316 constant char(1) initial unaligned dcl 5-90 ref 723 735 unPLOT 000172 constant varying char(4) initial dcl 202 ref 644 672 1114 1124 1203 1488 1689 unPLOTlen constant fixed bin(17,0) initial dcl 202 ref 677 1207 units 3066 based fixed bin(17,0) array level 2 dcl 10-14 set ref 605 627 691 1556 1556 1570 1572 1575 1576 1828 1830 1832 1841* 1841* 1841* 1841* 1841* 1841* 1841* 1841* unslen 016101 automatic fixed bin(31,0) dcl 1757 set ref 1760* 1762 1765 1765 1770 1776 unspec builtin function dcl 180 set ref 357* 409* 411* 436* 452* 580 580 747* 1151 1151 1819 unstart 001223 automatic fixed bin(31,0) dcl 154 set ref 755* 1760 1778* unstring 000224 internal static bit(1) unaligned dcl 155 set ref 334* 756* 762 769* 901 v1 0(27) based fixed bin(31,0) level 2 in structure "dclong_val" packed unaligned dcl 5-54 in procedure "hyterm_writer_" ref 809 830 v1 0(27) 003350 automatic fixed bin(17,0) level 2 in structure "super" packed unaligned dcl 985 in procedure "hyterm_writer_" set ref 992* v1 0(27) 003352 automatic fixed bin(17,0) level 2 in structure "sub" packed unaligned dcl 986 in procedure "hyterm_writer_" set ref 993* v1 0(27) 000507 automatic fixed bin(31,0) level 2 in structure "pad_ctl" packed unaligned dcl 1527 in procedure "pad_block" set ref 1623* v1 0(27) based fixed bin(17,0) level 2 in structure "dcshort_val" packed unaligned dcl 5-67 in procedure "hyterm_writer_" ref 806 827 v2 1(09) based fixed bin(17,0) level 2 in structure "dcshort_val" packed unaligned dcl 5-67 in procedure "hyterm_writer_" ref 817 v2 1(23) based fixed bin(31,0) level 2 in structure "dclong_val" packed unaligned dcl 5-54 in procedure "hyterm_writer_" ref 820 v2 1(23) 000507 automatic fixed bin(31,0) level 2 in structure "pad_ctl" packed unaligned dcl 1527 in procedure "pad_block" set ref 1549* verify builtin function dcl 282 ref 1047 1061 1101 1181 1583 version based fixed bin(35,0) level 2 in structure "option" dcl 11-5 in procedure "hyterm_writer_" set ref 312 323* version based fixed bin(17,0) level 2 in structure "comp_dvid" dcl 6-17 in procedure "hyterm_writer_" set ref 312 327* version based fixed bin(17,0) level 2 in structure "page" dcl 13-11 in procedure "hyterm_writer_" set ref 312 325* version based fixed bin(35,0) level 2 in structure "shared" dcl 14-7 in procedure "hyterm_writer_" set ref 312 321* white 0(01) based bit(1) level 2 in structure "tstr" packed unaligned dcl 141 in procedure "hyterm_writer_" set ref 602* 624* 714* 898* 1498* white 16(09) based bit(1) array level 4 in structure "page_image" packed unaligned dcl 13-56 in procedure "hyterm_writer_" ref 926 white 4066 based bit(1) array level 2 in structure "fnttbl" packed unaligned dcl 10-14 in procedure "hyterm_writer_" ref 594 width parameter fixed bin(31,0) dcl 1716 in procedure "put_str" set ref 1712 1738 1738 1738 1738 1747 1750* width 35 based fixed bin(31,0) array level 3 in structure "page_image" dcl 13-56 in procedure "hyterm_writer_" set ref 524 524 1228* 1228* 1540 window based structure array level 1 dcl 162 set ref 409* 414 446 454 1270 1661 window_area_ptr 000226 internal static pointer initial dcl 157 set ref 394* 407* 415* 447* 453* 1252* 1276* 1666* window_bottom 000230 internal static fixed bin(17,0) initial dcl 159 set ref 366* 368* 407 409 410 1338 window_level 001224 automatic fixed bin(17,0) dcl 160 set ref 413* 445* 455* 542* 910* 1263* 1263 1267* 1267 1269 1270 1338 1338 1342* 1498* 1738* window_ptr 000232 internal static pointer initial dcl 161 set ref 407* 409 410 414 446 454 1270 1652 1661 1671 window_top 000234 internal static fixed bin(17,0) initial dcl 164 set ref 365* 368* 407 409 410 410 410 414 445 446 446 454 1270 1338 1652 1652 1657 1661 1671 word 001225 automatic varying char(4090) dcl 165 set ref 548* 597 600* 619 622* 690* 690 709 712* 893 896* wrdwidth 003225 automatic fixed bin(31,0) dcl 166 set ref 549* 600* 601* 622* 623* 630 630 692* 692 694 694 712* 713* 896* 897* xc 003334 automatic varying char(2) dcl 274 set ref 1433* 1435* 1438* 1438 1440 1451 1473 1475 xcmax 003336 automatic fixed bin(17,0) dcl 275 set ref 1440* 1472 xii 016036 automatic fixed bin(17,0) dcl 1310 set ref 1368* 1370 1374 1374 1379 1382 1383 1385 xiyi 003342 automatic fixed bin(17,0) dcl 277 set ref 1454* 1455 1456 1462 1463 1468* 1468 xmove 016037 automatic fixed bin(31,0) dcl 1311 set ref 1317* 1322* 1325 1325 1351* 1362 1368 1385* 1385 1414* 1430 1433 1436* 1436 1454 1455* 1455 1467 1471 1472 1476 1477* 1477 xpos 2 based fixed bin(31,0) level 2 dcl 141 set ref 1273 1747* xyc 003337 automatic varying char(6) dcl 276 set ref 1451* 1452 1464 1466 xycmax 003343 automatic fixed bin(17,0) dcl 278 set ref 1452* 1463 yc 003344 automatic varying char(3) dcl 279 set ref 1442* 1444* 1447* 1447 1449 1451 1482 1484 ycmax 003346 automatic fixed bin(17,0) dcl 280 set ref 1449* 1481 ymove 016040 automatic fixed bin(31,0) dcl 1312 set ref 1317* 1323* 1325 1325 1335 1338 1338 1349* 1350* 1430 1442 1445* 1445 1454 1456* 1456 1480 1481 1485* 1485 ypos 3 based fixed bin(31,0) level 2 dcl 141 set ref 1272* 1708 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 78 BEL internal static char(1) initial unaligned dcl 4-6 BRS 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 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 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 119 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 collate9 builtin function dcl 282 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 190 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_report_$exact 000000 constant entry external dcl 8-64 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 1303 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 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 err_ct automatic fixed bin(17,0) dcl 226 err_sw automatic bit(1) unaligned dcl 227 error_table_$fatal_error external static fixed bin(35,0) dcl 186 exit_str automatic varying char(32) dcl 1304 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 180 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 hot_chars internal static char(35) initial unaligned dcl 97 hyterm_writer_$display 000000 constant entry external dcl 1007 i automatic fixed bin(17,0) dcl 1718 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 195 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 1718 jj automatic fixed bin(17,0) dcl 100 just_line automatic varying char(1020) dcl 104 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 100 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 mod builtin function dcl 180 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 183 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 pointer builtin function dcl 180 pos automatic fixed bin(31,0) dcl 1721 prll internal static char(1) initial unaligned dcl 4-6 rquote internal static char(1) initial unaligned dcl 4-6 rst automatic varying char(8) dcl 270 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 180 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 1864 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_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 zero_font_index 000000 stack reference condition dcl 183 NAMES DECLARED BY EXPLICIT CONTEXT. abrtf 010622 constant entry external dcl 1924 abrtn 010577 constant entry external dcl 1923 allf 011016 constant entry external dcl 1952 alln 010703 constant entry external dcl 1930 allocate 016424 constant entry internal dcl 2-21 ref 407 415 447 453 1276 1666 artproc 010355 constant entry external dcl 1220 blat 011045 constant entry internal dcl 1224 ref 503 1598 char_loop 003207 constant label dcl 561 ctl_char 004342 constant label dcl 706 db_join 010720 constant label dcl 1931 ref 1907 1911 1915 1927 dbf 010412 constant entry external dcl 1908 dbn 010375 constant entry external dcl 1907 device_display 007171 constant label dcl 1075 ref 1039 disp_ret 010333 constant label dcl 1215 ref 1090 1130 display 006717 constant entry external dcl 1010 dtf 010661 constant entry external dcl 1928 dtn 010644 constant entry external dcl 1927 end_chars 005732 constant label dcl 890 ref 589 finish_page 006222 constant label dcl 922 font_char 003227 constant label dcl 565 footproc 006464 constant entry external dcl 977 gap_exit 014315 constant label dcl 1628 ref 1600 hyterm_writer_ 001233 constant entry external dcl 62 image_loop 002606 constant label dcl 465 init 001263 constant entry external dcl 299 lgf 010510 constant entry external dcl 1916 lgn 010473 constant entry external dcl 1915 move_tstr 011614 constant entry internal dcl 1256 ref 1349 myself 001322 constant label dcl 310 set ref 310 pad_block 013377 constant entry internal dcl 1507 ref 537 pff 010555 constant entry external dcl 1920 pfn 010532 constant entry external dcl 1919 plot 011763 constant entry internal dcl 1289 ref 551 640 738 868 883 926 1773 1776 1777 plot_return 013264 constant label dcl 1492 put_ 014417 constant entry internal dcl 1640 ref 451 929 put_str 015036 constant entry internal dcl 1712 ref 450 600 622 712 793 896 1379 1458 1464 1473 1482 1492 put_uns 015362 constant entry internal dcl 1754 ref 768 901 release_window 011575 constant entry internal dcl 1249 ref 383 931 rescan_line 003076 constant label dcl 542 rescan_page 002166 constant label dcl 394 ref 964 return_ 006434 constant label dcl 972 set_font 015527 constant entry internal dcl 1785 ref 517 556 787 838 864 962 1535 set_media 016155 constant entry internal dcl 1851 ref 685 963 1723 show 011722 constant entry internal dcl 1281 ref 542 542 608 608 608 608 630 630 630 630 694 694 694 694 723 723 855 855 855 855 855 855 855 855 879 879 879 879 910 910 910 910 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1228 1325 1325 1325 1325 1325 1325 1325 1325 1325 1325 1325 1325 1498 1498 1498 1498 1561 1561 1561 1561 1561 1561 1738 1738 1738 1738 1738 1738 1765 1765 1805 1805 1838 1838 1870 1870 1870 1870 trim_font 002707 constant label dcl 491 ref 497 try_again 014120 constant label dcl 1588 ref 1614 txf 010451 constant entry external dcl 1912 txn 010434 constant entry external dcl 1911 unplot 007507 constant label dcl 1122 NAMES DECLARED BY CONTEXT OR IMPLICATION. byte builtin function ref 450 936 1407 1425 codeptr builtin function ref 310 convert builtin function ref 1949 dimension builtin function ref 1143 1147 rank builtin function ref 569 1083 1094 1094 1199 1556 1556 1570 1572 1575 1576 1828 1830 1832 1841 1841 1841 1841 1841 1841 1841 1841 1882 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 17720 20224 17327 17730 Length 21214 17327 304 754 370 236 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME hyterm_writer_ 8820 external procedure is an external procedure. on unit on line 383 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 internal procedure shares stack frame of external procedure hyterm_writer_. show 96 internal procedure is called during a stack extension. plot internal procedure shares stack frame of external procedure hyterm_writer_. pad_block 429 internal procedure uses auto adjustable storage. put_ internal procedure shares stack frame of external procedure hyterm_writer_. put_str internal procedure shares stack frame of external procedure hyterm_writer_. put_uns internal procedure shares stack frame of external procedure hyterm_writer_. set_font 182 internal procedure is called by several nonquick procedures. set_media internal procedure shares stack frame of external procedure hyterm_writer_. allocate internal procedure shares stack frame of external procedure hyterm_writer_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 bad_chrs hyterm_writer_ 000052 dev_stat_ptr hyterm_writer_ 000054 first_line hyterm_writer_ 000055 first_page hyterm_writer_ 000056 ilin hyterm_writer_ 000057 max_revlead hyterm_writer_ 000060 stat_blk hyterm_writer_ 000224 unstring hyterm_writer_ 000226 window_area_ptr hyterm_writer_ 000230 window_bottom hyterm_writer_ 000232 window_ptr hyterm_writer_ 000234 window_top hyterm_writer_ 000235 mounted_wheel hyterm_writer_ 000236 db_sw hyterm_writer_ 000237 tx_sw hyterm_writer_ 000240 lg_sw hyterm_writer_ 000241 pf_sw hyterm_writer_ 000242 abrt_sw hyterm_writer_ 000243 dt_sw hyterm_writer_ 000244 db_line hyterm_writer_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME blat 000100 blatstr blat hyterm_writer_ 000100 auto_lead hyterm_writer_ 000101 char_ndx hyterm_writer_ 000102 col_width hyterm_writer_ 000103 debug_str hyterm_writer_ 000503 debug_sw hyterm_writer_ 000504 detail_sw hyterm_writer_ 000505 EM_width hyterm_writer_ 000506 EN_width hyterm_writer_ 000507 fcdevfnt hyterm_writer_ 000510 fcwidth hyterm_writer_ 000511 font_in hyterm_writer_ 000512 font_size hyterm_writer_ 000513 fonts_done hyterm_writer_ 000514 fonts_needed hyterm_writer_ 000515 i hyterm_writer_ 000516 j hyterm_writer_ 000517 k hyterm_writer_ 000520 ichr hyterm_writer_ 000522 lineinfoptr hyterm_writer_ 000524 line_window_size hyterm_writer_ 000525 Lmarg hyterm_writer_ 000526 loctxt hyterm_writer_ 001126 long_sw hyterm_writer_ 001127 max_level hyterm_writer_ 001130 font_media hyterm_writer_ 001174 media_size hyterm_writer_ 001175 medselstr hyterm_writer_ 001206 need_font hyterm_writer_ 001207 need_devfnt hyterm_writer_ 001210 need_size hyterm_writer_ 001211 pref_sw hyterm_writer_ 001212 quad hyterm_writer_ 001213 runout hyterm_writer_ 001214 text_sw hyterm_writer_ 001215 text_width hyterm_writer_ 001216 tchr hyterm_writer_ 001217 THIN_width hyterm_writer_ 001220 tstr_ptr hyterm_writer_ 001222 txtlen hyterm_writer_ 001223 unstart hyterm_writer_ 001224 window_level hyterm_writer_ 001225 word hyterm_writer_ 003225 wrdwidth hyterm_writer_ 003226 Xmov hyterm_writer_ 003227 Xmptstrk hyterm_writer_ 003230 Xpixel hyterm_writer_ 003231 Xpos hyterm_writer_ 003232 Xspc hyterm_writer_ 003233 Xmpts hyterm_writer_ 003234 Yinit hyterm_writer_ 003235 Ymov hyterm_writer_ 003236 Ypixel hyterm_writer_ 003237 Ypos hyterm_writer_ 003240 Yspc hyterm_writer_ 003241 Ympts hyterm_writer_ 003256 BELc hyterm_writer_ 003264 font_wheel hyterm_writer_ 003330 need_wheel hyterm_writer_ 003331 iplt hyterm_writer_ 003332 tabcol hyterm_writer_ 003334 xc hyterm_writer_ 003336 xcmax hyterm_writer_ 003337 xyc hyterm_writer_ 003342 xiyi hyterm_writer_ 003343 xycmax hyterm_writer_ 003344 yc hyterm_writer_ 003346 ycmax hyterm_writer_ 003350 super hyterm_writer_ 003352 sub hyterm_writer_ 003354 ch hyterm_writer_ 003355 ct hyterm_writer_ 003356 dstr hyterm_writer_ 003756 rtn_str hyterm_writer_ 013757 argl hyterm_writer_ 013760 argp hyterm_writer_ 013762 ercd hyterm_writer_ 013764 DCxx_p hyterm_writer_ 013766 fnttbl_ptr hyterm_writer_ 013770 repl_str_ptr hyterm_writer_ 013772 fileheader_ptr hyterm_writer_ 013774 record_ptr hyterm_writer_ 013776 page_record_ptr hyterm_writer_ 014000 line_area_ptr hyterm_writer_ 014002 text_area_ptr hyterm_writer_ 014004 txtstrptr hyterm_writer_ 014030 old_xpos plot 014031 old_ypos plot 014032 penctl plot 014035 pltstr plot 016035 pltwidth plot 016036 xii plot 016037 xmove plot 016040 ymove plot 016056 level put_ 016057 level_skip put_ 016070 new_len put_str 016071 old_len put_str 016100 Y_offs put_uns 016101 unslen put_uns 016110 chng set_media 016111 med_chng set_media 016112 size_chng set_media 016122 Nwords allocate 016124 P allocate 016126 code allocate 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 padsize pad_block 000506 pads pad_block 000507 pad_ctl pad_block 000512 pad_ctl_ptr pad_block set_font 000100 chng set_font 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 mpfx2 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 real_to_real_tr any_to_any_tr divide_fx1 divide_fx3 divide_fx4 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ comp_report_ comp_report_$ctlstr 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 001216 12 21 001220 12 45 001221 12 62 001222 15 25 001223 15 35 001224 62 001227 286 001243 288 001245 293 001250 296 001257 299 001261 301 001273 302 001305 303 001307 304 001311 307 001320 310 001322 312 001327 317 001345 318 001350 321 001352 322 001374 323 001414 324 001441 325 001461 326 001506 327 001531 328 001556 330 001601 333 001610 334 001611 335 001612 337 001614 338 001616 340 001630 341 001635 343 001637 346 001646 347 001653 348 001663 349 001665 350 001670 351 001673 353 001676 356 001701 357 001706 360 001720 364 001727 365 001733 366 001735 368 001741 374 002001 377 002010 380 002064 383 002074 385 002116 387 002136 388 002144 389 002146 391 002153 392 002155 394 002166 397 002211 400 002213 401 002241 402 002244 405 002253 407 002255 409 002275 410 002314 411 002337 412 002352 413 002354 414 002356 415 002364 417 002404 418 002406 420 002410 424 002430 426 002436 429 002442 430 002446 433 002447 434 002454 435 002456 436 002457 437 002460 438 002462 439 002464 440 002466 442 002471 445 002473 446 002476 447 002500 449 002520 450 002523 451 002535 452 002536 453 002542 454 002557 455 002566 456 002570 460 002571 465 002606 467 002624 468 002630 469 002632 471 002635 475 002647 476 002651 478 002656 479 002657 481 002664 482 002665 484 002672 487 002673 488 002700 489 002705 491 002707 496 002716 497 002720 500 002721 501 002732 503 002735 506 002743 507 002760 510 002765 511 002770 513 002772 517 002774 520 003007 522 003023 524 003030 528 003034 531 003041 532 003044 534 003057 537 003060 542 003076 548 003143 549 003144 551 003145 553 003154 554 003155 556 003160 561 003207 563 003217 565 003223 569 003227 571 003231 573 003235 576 003241 579 003254 580 003263 586 003340 589 003346 592 003347 594 003353 597 003357 600 003364 601 003366 602 003367 605 003371 606 003375 608 003376 614 003535 616 003537 619 003547 622 003554 623 003556 624 003557 627 003561 628 003565 630 003566 636 003726 640 003730 642 003746 644 003750 648 003772 660 003774 661 003777 662 004017 665 004020 666 004024 667 004027 668 004030 672 004031 673 004042 676 004043 677 004047 678 004052 679 004053 681 004054 683 004060 685 004061 690 004067 691 004102 692 004106 694 004107 703 004340 704 004341 709 004342 712 004347 713 004351 714 004352 717 004354 720 004361 723 004366 735 004552 738 004560 740 004566 742 004567 743 004574 744 004576 745 004603 746 004605 747 004611 748 004612 749 004614 752 004616 755 004625 756 004633 759 004636 762 004641 768 004664 769 004665 772 004667 774 004670 777 004676 780 004700 781 004716 783 004771 785 004772 786 005001 787 005007 788 005017 790 005020 793 005022 795 005042 798 005044 799 005063 801 005133 802 005134 806 005135 809 005152 811 005163 813 005164 817 005166 820 005203 822 005214 823 005215 827 005216 830 005233 832 005244 835 005245 838 005250 841 005262 844 005301 846 005302 849 005314 851 005315 854 005317 855 005336 859 005506 860 005507 864 005510 868 005532 870 005546 872 005550 873 005553 875 005556 878 005560 879 005577 882 005706 883 005707 884 005717 888 005721 890 005732 893 005734 896 005741 897 005743 898 005744 901 005746 907 005763 910 005765 913 006067 917 006216 920 006217 922 006222 926 006242 929 006263 931 006264 933 006270 936 006277 941 006316 944 006323 946 006341 947 006343 952 006351 954 006355 955 006366 959 006372 960 006377 961 006401 962 006405 963 006415 964 006426 970 006427 972 006434 975 006451 977 006460 989 006502 990 006505 991 006510 992 006517 993 006523 994 006527 995 006541 996 006557 998 006571 1001 006702 1002 006703 1010 006712 1026 006734 1029 006743 1032 006746 1033 006757 1036 006761 1037 006762 1039 006763 1042 006767 1044 006773 1047 006775 1048 007011 1050 007015 1052 007017 1054 007052 1056 007057 1057 007071 1059 007072 1061 007074 1062 007110 1064 007114 1066 007116 1068 007151 1070 007156 1071 007170 1075 007171 1079 007174 1082 007211 1083 007215 1084 007252 1085 007254 1087 007255 1090 007270 1093 007273 1094 007277 1095 007331 1096 007333 1098 007334 1101 007347 1102 007362 1104 007367 1106 007372 1108 007424 1110 007431 1111 007443 1112 007446 1114 007447 1118 007471 1119 007503 1120 007505 1122 007507 1124 007515 1128 007550 1129 007562 1130 007564 1133 007565 1136 007577 1137 007611 1138 007613 1139 007614 1143 007615 1145 007646 1147 007651 1150 007654 1151 007663 1152 007716 1153 007730 1154 007731 1155 007732 1159 007733 1162 007767 1164 007772 1168 010050 1169 010062 1170 010064 1173 010065 1174 010070 1176 010071 1177 010073 1179 010074 1181 010100 1182 010115 1184 010122 1186 010125 1188 010157 1190 010164 1191 010176 1192 010207 1194 010210 1197 010215 1198 010217 1199 010231 1200 010276 1201 010310 1203 010311 1206 010315 1207 010327 1208 010331 1210 010332 1215 010333 1218 010336 1220 010354 1222 010365 1907 010374 1907 010405 1907 010410 1908 010411 1908 010422 1908 010424 1911 010433 1911 010444 1911 010447 1912 010450 1912 010461 1912 010463 1915 010472 1915 010503 1915 010506 1916 010507 1916 010520 1916 010522 1919 010531 1919 010542 1919 010545 1920 010554 1920 010565 1920 010567 1923 010576 1923 010607 1923 010612 1924 010621 1924 010632 1924 010634 1927 010643 1927 010654 1927 010657 1928 010660 1928 010671 1928 010673 1930 010702 1930 010713 1941 010720 1942 010721 1943 010737 1945 010741 1947 010766 1949 010775 1950 011006 1952 011015 1952 011026 1953 011035 1224 011044 1228 011052 1244 011451 1245 011523 1247 011573 1249 011574 1252 011602 1254 011613 1256 011614 1263 011616 1267 011647 1269 011652 1270 011657 1272 011670 1273 011674 1274 011676 1276 011700 1279 011720 1281 011721 1286 011727 1289 011763 1314 011765 1317 011774 1318 011777 1320 012000 1321 012002 1322 012004 1323 012007 1325 012012 1332 012214 1335 012222 1338 012224 1342 012233 1346 012303 1349 012306 1350 012310 1351 012311 1354 012315 1355 012321 1357 012322 1359 012326 1362 012333 1365 012335 1368 012344 1370 012352 1374 012357 1379 012374 1382 012403 1383 012422 1385 012431 1386 012434 1390 012435 1394 012454 1397 012461 1400 012463 1404 012520 1407 012521 1408 012560 1411 012573 1414 012614 1418 012623 1420 012624 1423 012640 1425 012646 1426 012655 1430 012657 1433 012663 1435 012672 1436 012676 1438 012703 1440 012724 1442 012727 1444 012736 1445 012742 1447 012747 1449 012763 1451 012766 1452 013011 1454 013015 1455 013022 1456 013030 1458 013036 1460 013044 1462 013056 1463 013060 1464 013064 1466 013075 1467 013116 1468 013126 1469 013130 1471 013131 1472 013134 1473 013140 1475 013151 1476 013172 1477 013202 1478 013204 1480 013205 1481 013210 1482 013214 1484 013225 1485 013246 1486 013251 1488 013252 1492 013264 1498 013270 1505 013375 1507 013376 1525 013404 1561 013415 1580 013417 1532 013427 1533 013430 1535 013432 1538 013447 1540 013464 1543 013500 1546 013503 1547 013505 1548 013507 1549 013511 1550 013516 1553 013520 1554 013530 1556 013536 1559 013562 1561 013573 1569 013725 1570 013730 1572 013751 1574 013765 1575 014010 1576 014021 1577 014023 1578 014026 1580 014027 1583 014051 1584 014065 1587 014107 1588 014120 1591 014136 1594 014137 1597 014141 1598 014160 1600 014165 1603 014166 1604 014200 1606 014202 1609 014207 1610 014213 1612 014222 1613 014234 1614 014236 1617 014237 1619 014240 1621 014265 1623 014266 1624 014300 1626 014313 1628 014315 1631 014322 1632 014335 1633 014342 1635 014344 1638 014415 1640 014417 1646 014420 1650 014445 1652 014446 1656 014471 1657 014474 1658 014476 1660 014502 1661 014511 1663 014522 1666 014526 1667 014542 1671 014544 1673 014567 1675 014571 1678 014600 1680 014614 1681 014617 1685 014620 1687 014634 1688 014646 1689 014667 1693 014702 1699 015002 1700 015005 1701 015010 1702 015013 1704 015023 1706 015025 1708 015032 1710 015035 1712 015036 1723 015040 1726 015047 1727 015056 1729 015062 1734 015064 1737 015066 1738 015130 1746 015333 1747 015351 1749 015355 1750 015356 1751 015357 1752 015361 1754 015362 1759 015363 1760 015364 1762 015370 1765 015371 1770 015435 1771 015437 1772 015452 1773 015454 1774 015464 1776 015466 1777 015473 1778 015503 1780 015505 1783 015525 1785 015526 1795 015534 1797 015547 1800 015550 1803 015552 1805 015570 1811 015645 1814 015651 1815 015661 1816 015665 1818 015667 1819 015671 1823 015706 1825 015717 1827 015722 1828 015725 1830 015740 1832 015751 1835 015762 1838 015770 1841 016053 1849 016154 1851 016155 1866 016157 1867 016165 1868 016171 1870 016173 1875 016264 1877 016267 1880 016304 1881 016310 1882 016316 1888 016322 1891 016324 1896 016411 1899 016414 1900 016420 1902 016423 2 21 016424 2 40 016426 2 41 016434 2 42 016440 2 43 016453 2 44 016463 2 45 016466 2 47 016476 2 48 016505 2 49 016511 2 50 016517 ----------------------------------------------------------- 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