COMPILATION LISTING OF SEGMENT comp_font_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 0954.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980 * 6* * * 7* * * 8* *********************************************************** */ 9 10 /* compose subroutine to change current font and/or point size */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_font_: 15 proc (load, buffer, fcs_str); 16 17 /* PARAMETERS */ 18 19 dcl load bit (1); /* ON = load the given font. */ 20 /* (if buffer is null, then */ 21 /* initialize the font stack */ 22 /* with device defaults) */ 23 /* OFF = process the control info */ 24 /* in buffer */ 25 dcl buffer char (*) var; /* font change info */ 26 dcl fcs_str char (8); /* FCS string for this font */ 27 28 fcs_str = ""; /* clear return value */ 29 DCFS.mark = DC1; /* setup the font change string */ 30 DCFS.type = type_font; 31 DCFS.leng = dcfs_len; 32 init_stk, unspec (local_font) = "0"b; 33 34 if load /* loading a font or initing? */ 35 then 36 do; 37 if buffer = "" /* no buffer, we're initing */ 38 then 39 do; 40 if shared.bug_mode | db_sw & dt_sw 41 then call ioa_ ("comp_font: (init stack)"); 42 43 init_stk = "1"b; /**/ 44 /* wipe the font stack */ 45 unspec (default_parms.fntstk) = "0"b; 46 default_parms.fntstk.entry.memptr, 47 default_parms.fntstk.entry.fntptr = null; 48 default_parms.fntstk.entry.fam_name, 49 default_parms.fntstk.entry.mem_name, 50 default_parms.fntstk.entry.name, 51 default_parms.fntstk.entry.fcs_str = ""; 52 /* need the media select table? */ 53 if fnttbldata.medsel_ptr = null 54 then 55 do; 56 fnttbldata.medsel_ptr = 57 allocate (const.global_area_ptr, size (medsel)); 58 medsel_table_ptr = 59 pointer (const.dvidptr, comp_dvt.medsel_table_r); 60 /* load out all media select strings */ 61 do i = 1 to medsel_table.count; 62 if medsel_table.ref_r (i) ^= "0"b 63 then 64 do; 65 med_sel_p = 66 pointer (const.devptr, medsel_table.ref_r (i)); 67 medsel (i) = substr (med_sel.str, 1, med_sel.str_l); 68 end; 69 else medsel (i) = ""; 70 end; 71 end; 72 73 istk = 0; /* where to begin stacking */ 74 default_parms.fntstk.entry (0).size = comp_dvt.init_ps; 75 local_font = default_parms.fntstk.entry (0); 76 77 local_font.name = "footnote"; 78 call load_font; 79 footnote_parms.fntstk = default_parms.fntstk; 80 DCFS.f = local_font.devfnt; 81 DCFS.p = local_font.size; 82 local_font.fcs_str = DCFS_str; 83 footnote_parms.fntstk.entry (0) = local_font; 84 85 local_font.name = "text"; 86 call load_font; 87 text_parms.fntstk = default_parms.fntstk; 88 DCFS.f = local_font.devfnt; 89 DCFS.p = local_font.size; 90 local_font.fcs_str = DCFS_str; 91 default_parms.fntstk.entry (0) = local_font; 92 fntstk_eptr = addr (text_parms.fntstk.entry (0)); 93 end; 94 95 else /* load the given font */ 96 do; 97 local_font.name = buffer; 98 call load_font; 99 100 if shared.bug_mode | db_sw & dt_sw 101 then call ioa_ ("comp_font: (load fnt=^d ^a ^f)", 102 local_font.devfnt, local_font.name, 103 dec (round (divide (local_font.size, 1000, 31, 11), 10), 104 11, 3)); 105 end; 106 107 goto return; 108 end; 109 110 /* SWITCH FONT AND/OR POINTSIZE */ 111 istk = current_parms.fntstk.index; /* set current stack position */ 112 fntstk_eptr = addr (current_parms.fntstk.entry (istk)); 113 local_font = fntstk_entry; /* make copy of stack entry in */ 114 /* case given data is bad and we */ 115 /* have to continue the current font */ 116 117 if shared.bug_mode | db_sw & dt_sw 118 then call ioa_ ("comp_font: (col=^d stk=^d fnt=^d ^a ^f) ^a", 119 page.hdr.col_index, istk, fntstk_entry.devfnt, fntstk_entry.name, 120 dec (round (divide (fntstk_entry.size, 1000, 31, 11), 10), 11, 3) 121 , buffer); 122 123 if buffer = "" /* if no font given, then pop stack */ 124 then 125 do; /* back up 1 level */ 126 istk = current_parms.fntstk.index - 1; 127 if istk < 0 /* make the stack circular */ 128 then istk = hbound (current_parms.fntstk.entry, 1); 129 /* if nothing stacked */ 130 if current_parms.fntstk (istk).famndx = 0 131 then 132 do; 133 call comp_report_ (2, 0, "Font stack exhausted.", addr (ctl.info), 134 buffer); 135 error_result: 136 if load 137 then signal comp_abort; 138 139 if abort_sw 140 then signal font_error; 141 142 goto return; 143 end; /**/ 144 /* clear current level */ 145 current_parms.fntstk.famndx (current_parms.fntstk.index) = 0; 146 /* and pop the stack */ 147 current_parms.fntstk.index = istk; 148 /* point to it */ 149 fntstk_eptr = addr (current_parms.fntstk.entry (istk)); 150 local_font = fntstk_entry; /* copy for return */ 151 fnttbl_ptr = fnttbldata.ptr (fntstk_entry.devfnt); 152 member_ptr = fntstk_entry.memptr; 153 154 shared.EN_width = 155 divide (local_font.size * fnttbl.units (rank (EN)), 156 fnttbl.rel_units, 31, 10); 157 end; 158 159 else 160 do; /* a font is given */ 161 /* push the stack */ 162 istk, current_parms.fntstk.index = 163 mod (istk + 1, hbound (current_parms.fntstk.entry, 1) + 1); 164 /* point to new stack entry */ 165 fntstk_eptr = addr (current_parms.fntstk.entry (istk)); 166 fntstk_entry = local_font; /* init with current entry */ 167 /* we'll update it later if AOK */ 168 /* parse the variable field */ 169 do while (buffer ^= ""); /* if field is all numeric */ 170 if verify (buffer, "0123456789.") = 0 171 then 172 do; 173 local_font.size = 174 comp_read_$number (buffer, scale, 1, ibuf, addr (ctl.info), 175 0); 176 buffer = ltrim (substr (buffer, ibuf)); 177 end; 178 179 else /* else its either a bachelor */ 180 do; /* or a family/member name */ 181 /* is there a family name? */ 182 if index (buffer, "/") ^= 1 183 then 184 do; 185 local_font.fam_name = 186 comp_read_$name (buffer, 1, ibuf, addr (ctl.info)); 187 buffer = ltrim (substr (buffer, ibuf)); 188 end; /**/ 189 /* is there a member name? */ 190 if index (buffer, "/") = 1 191 then 192 do; 193 buffer = ltrim (after (buffer, rtrim (local_font.fam_name))); 194 local_font.mem_name = 195 comp_read_$name (buffer, 1, 1, addr (ctl.info)); 196 end; 197 else local_font.mem_name = ""; 198 199 local_font.name = 200 rtrim (local_font.fam_name) || rtrim (local_font.mem_name); 201 end; 202 end; 203 204 call load_font; 205 end; 206 207 return: 208 DCFS.f = local_font.devfnt; 209 DCFS.p = local_font.size; 210 local_font.fcs_str, fcs_str = DCFS_str; 211 212 if ^load | init_stk /* all done, replace with new data */ 213 then 214 do; 215 fntstk_entry = local_font; 216 217 if shared.blkptr ^= null () /* copy change to current block */ 218 then 219 do; 220 text.parms.fntstk.index = istk; 221 text.parms.fntstk.entry (istk) = local_font; 222 if text.input_line = "" 223 then text.input.font = local_font; 224 end; 225 226 if shared.ftn_mode /* change footnote header, too */ 227 then 228 do; 229 line_area_ptr = ftnhdr.line_area.cur; 230 line_area.linptr (1) -> txtlin.font = local_font; 231 end; 232 end; 233 234 if shared.bug_mode | db_sw & dt_sw 235 then call ioa_ ("^5x(comp_font: (^[load^s^;stk=^d^] fnt=^d ^a ^f) ^a", 236 load, istk, local_font.devfnt, local_font.name, 237 dec (round (divide (local_font.size, 1000, 31, 11), 10), 11, 3), 238 comp_util_$display ((fcs_str), 0, "0"b)); 239 240 return; 241 242 abrtn: 243 entry; 244 abort_sw = "1"b; 245 return; 246 abrtf: 247 entry; 248 abort_sw = "0"b; 249 return; 250 dtn: 251 entry; 252 dt_sw = "1"b; 253 return; 254 dtf: 255 entry; 256 dt_sw = "0"b; 257 return; 258 dbn: 259 entry; 260 db_sw = "1"b; 261 return; 262 dbf: 263 entry; 264 db_sw = "0"b; 265 return; 266 267 load_font: /* search for font name */ 268 proc; /* first, search the fonts we have */ 269 /* already loaded */ 270 do ifnt = 1 to fnttbldata.count 271 while (fnttbldata.ptr (ifnt) -> fnttbl.name ^= local_font.name); 272 end; 273 274 if ifnt <= fnttbldata.count /* already loaded? */ 275 then 276 do; 277 fnttbl_ptr = fnttbldata.ptr (ifnt); 278 local_font = fnttbl.entry; 279 end; 280 281 /* needed font is not loaded, have to search the DSM */ 282 else /* first search for name as given. */ 283 do; /* It may be either a LC family name */ 284 /* or an UC/mixed bachelor name. */ 285 do ifam = 1 to comp_dvt.family_ct 286 while (comp_dvt.family (ifam).name ^= local_font.name); 287 end; /**/ 288 /* if we didnt find it as given, */ 289 /* it cant be a bachelor, so */ 290 /* try again, forcing lowercase. */ 291 if ifam > comp_dvt.family_ct 292 then 293 do; 294 do ifam = 1 to comp_dvt.family_ct 295 while (comp_dvt.family (ifam).name 296 ^= translate (local_font.fam_name, az, AZ)); 297 end; 298 299 if ifam > comp_dvt.family_ct 300 then /* if we still didnt find it, */ 301 do; 302 no_font: 303 call comp_report_$ctlstr (2, 0, addr (ctl.info), buffer, 304 "Font ^a not defined for ^a device.", local_font.name, 305 option.device); 306 goto error_result; 307 end; 308 end; 309 local_font.devfnt, fnttbldata.ndx, fnttbldata.count = ifnt; 310 /* record family index */ 311 local_font.famndx = ifam; /* point to its member table */ 312 member_ptr, local_font.memptr = 313 pointer (const.devptr, comp_dvt.family (ifam).member_r); 314 315 if member (1).name = "" /* if no members, its a bachelor */ 316 then 317 do; 318 imem = 1; /* force the index */ 319 local_font.bachelor = "1"b; 320 local_font.mem_name = ""; 321 end; 322 323 else /* search for member */ 324 do; 325 local_font.bachelor = "0"b; 326 local_font.mem_name = rtrim ("/" || local_font.mem_name); 327 do imem = 1 to member.count 328 while (member (imem).name 329 ^= translate (local_font.mem_name, az, AZ)); 330 end; /**/ 331 /* if we didnt find it */ 332 if imem > member.count 333 then goto no_font; 334 end; /**/ 335 /* record member index */ 336 local_font.memndx = imem; /* point to the font table */ 337 font_ptr, local_font.fntptr = 338 pointer (const.devptr, member (imem).font_r); 339 /* load the new font into pdir */ 340 fnttbl_ptr = allocate (const.global_area_ptr, size (fnttbl)); 341 fnttbldata.ptr (ifnt) = fnttbl_ptr; 342 343 fnttbl.devfnt, fnttbl.units = 0; 344 fnttbl.replptr = null (); 345 fnttbl.white = "0"b; /**/ 346 /* point to repl table in DSM */ 347 oput_p = pointer (const.devptr, font.oput_r); 348 /* build the font table */ 349 do i = 0 to oput.data_ct; 350 if oput.what_r (i) ^= "0"b 351 then 352 do; 353 medchar_sel_p = pointer (const.devptr, oput.what_r (i)); 354 fnttbl.replptr (i) = medchar_sel_p; 355 if medchar = "" 356 then fnttbl.white (i) = "1"b; 357 fnttbl.devfnt (i) = oput.which (i); 358 end; 359 end; 360 fnttbl.units = pointer (const.devptr, font.units_r) -> units; 361 362 fnttbl.entry = local_font; 363 fnttbl.rel_units = font.rel_units; 364 fnttbl.min_wsp = font.min_wsp; 365 fnttbl.avg_wsp = font.avg_wsp; 366 fnttbl.max_wsp = font.max_wsp; /**/ 367 /* load the size table */ 368 sizel_p = pointer (const.devptr, member (imem).size_r); 369 siztbl_size = sizel.val_ct + 1; 370 siztbl_ptr = allocate (const.global_area_ptr, size (siztbl_array)); 371 fnttbl.siztbl_ptr = siztbl_ptr; /* load the width table */ 372 unspec (siztbl_array) = unspec (sizel); 373 end; 374 375 sizel_p = fnttbl.siztbl_ptr; /* validate requested size */ 376 if sizel.val_ct > 1 377 then 378 do; 379 do isiz = 1 to sizel.val_ct 380 while (sizel.val (isiz) ^= local_font.size); 381 end; 382 383 if isiz > sizel.val_ct /* if this size not in table */ 384 then 385 do; 386 call comp_report_ (2, 0, "Invalid size for this font.", 387 addr (ctl.info), buffer); 388 end; 389 end; 390 391 else local_font.size = sizel.val (1); 392 393 shared.EN_width = 394 divide (local_font.size * fnttbl.units (rank (EN)), fnttbl.rel_units, 395 31, 10); 396 end load_font; 397 398 /* LOCAL STORAGE */ 399 400 dcl abort_sw bit (1) static init ("0"b); 401 dcl az char (26) static options (constant) 402 init ("abcdefghijklmnopqrstuvwxyz"); 403 dcl AZ char (26) static options (constant) 404 init ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 405 dcl BAD_CHAR char (1) static options (constant) init (""); 406 dcl 1 DCFS like dcfs; 407 dcl DCFS_str char (dcfs_len + 3) based (addr (DCFS)); 408 dcl db_sw bit (1) static init ("0"b); 409 dcl dt_sw bit (1) static init ("0"b); 410 dcl (i, j) fixed bin; /* working index */ 411 dcl ibuf fixed bin (21); 412 dcl ifam fixed bin; /* local family index */ 413 dcl ifnt fixed bin; /* fnttbldata index */ 414 dcl imem fixed bin; /* local member index */ 415 dcl init_stk bit (1); 416 dcl isiz fixed bin; /* local size index */ 417 dcl istk fixed bin; /* local stack index */ 418 dcl 1 local_font aligned like fntstk_entry; 419 dcl name_chars char (63) static options (constant) 420 init ("abcdefghijklmnopqrstuvwxyz_" 421 || "ABCDEFGHJIKLMNOPQRSTUVWXYZ0123456789"); 422 dcl scale (1) fixed bin (31) static options (constant) 423 init (1000); /**/ 424 /* array for loading the size table */ 425 dcl siztbl_array (siztbl_size) fixed bin (35) based (siztbl_ptr); 426 dcl siztbl_ptr ptr; 427 dcl siztbl_size fixed bin; 428 429 dcl (comp_abort, font_error) 430 condition; 431 432 dcl (addr, index, length, max, min, mod, null, pointer, size, substr, 433 verify, unspec) 434 builtin; 435 1 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 1 2 1 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 4 1 5 dcl 1 col /* the text column */ 1 6 aligned based (shared.colptr), 1 7 2 blkptr (100) ptr, /* pointers to text blocks */ 1 8 2 depth_adj fixed bin (31), /* for variable start depth */ 1 9 2 ftrptr ptr, /* -> column footer */ 1 10 2 ftrusd fixed bin (31), /* column footer space used */ 1 11 2 gutter fixed bin (31), /* column separation */ 1 12 2 hdr like colhdr, /* column control stuff */ 1 13 2 hdrptr ptr, /* -> column header */ 1 14 2 hdrusd fixed bin (31), /* column header space used */ 1 15 2 margin, /* margin settings for column */ 1 16 3 left fixed bin (31), 1 17 3 right fixed bin (31), 1 18 2 parms, /* text parms for the column */ 1 19 3 measure fixed bin (31); /* column width */ 1 20 1 21 dcl 1 colhdr aligned based (const.colhdrptr), 1 22 /* an empty column header */ 1 23 2 balblk fixed bin, /* block to begin column balancing */ 1 24 2 baldepth fixed bin (31), /* page depth at balance point */ 1 25 2 balftn, /* footnotes at balance point */ 1 26 3 ct fixed bin, /* count */ 1 27 3 usd fixed bin (31), /* space used */ 1 28 3 blkndx (40) fixed bin, /* block index values */ 1 29 2 balusd fixed bin (31), /* space used up to balance point */ 1 30 2 blkct fixed bin, /* text block count */ 1 31 2 depth fixed bin (31), /* current page depth in the column */ 1 32 2 ftn like balftn, /* footnotes */ 1 33 2 pspc fixed bin (31), /* current white space */ 1 34 2 net fixed bin (31), /* net usable space in the column */ 1 35 2 used fixed bin (31); /* space used in this column */ 1 36 /* for quick reference */ 1 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 1 38 1 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 436 2 1 /* BEGIN INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... 11/16/78 J Falksen 2 2* Modified: ??/81 - EJW - Addded type_wait 2 3* Modified: 4/83 - EJW - Added type_un(strt stop), reorganized file. 2 4**/ 2 5 2 6 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 2 7 2 8 dcl DCxx_p ptr; /* for qualification of embedded */ 2 9 /* control strings */ 2 10 /* an embedded control string */ 2 11 dcl 1 dcxx unal based (DCxx_p), 2 12 2 mark char (1) unal, /* control marker - DC1 (\021) */ 2 13 2 ctl, 2 14 3 type bit (3) unal, /* 000- device/writer control */ 2 15 /* 001- */ 2 16 /* 010- literal data */ 2 17 /* 011- family/member/size data */ 2 18 /* 100- shift */ 2 19 /* 101- */ 2 20 /* 110- vector */ 2 21 /* 111- zero-offset vector */ 2 22 3 fill1 bit (1) unal, 2 23 3 Xctl bit (2) unal, /* 00- no X value present */ 2 24 /* 01- short X value */ 2 25 /* 10- long X value */ 2 26 3 fill2 bit (1) unal, 2 27 3 Yctl bit (2) unal, /* 00- no Y value present */ 2 28 /* 01- short Y value present */ 2 29 /* 10- long Y value present */ 2 30 2 leng fixed bin (9) unal unsigned, 2 31 /* # of remaining bytes */ 2 32 2 etc; /* the rest of the control bytes */ 2 33 /* device/writer controls */ 2 34 dcl 1 dcctl unal based (DCxx_p), 2 35 2 mark char (1) unal, 2 36 2 type char (1) unal, /* control type */ 2 37 /* leng is always 0 for these */ 2 38 2 leng fixed bin (9) unal unsigned; 2 39 dcl ( 2 40 wait_signal init (""), /* = 021001000 */ 2 41 unstart_signal init (""), /* = 021002000 */ 2 42 unstop_signal init ("") /* = 021003000 */ 2 43 ) char (3) static options (constant); 2 44 /* the "literal" control string */ 2 45 dcl 1 dclit unal based (DCxx_p), 2 46 2 mark char (1) unal, 2 47 2 type char (1) unal, /* control type */ 2 48 2 leng fixed bin (9) unal unsigned, 2 49 /* width in milli-points of literal */ 2 50 2 width fixed bin (31) unal, 2 51 /* actual literal, max length 509 */ 2 52 2 data char (dclit.leng - 4); 2 53 /* long (31 bits) values */ 2 54 dcl 1 dclong_val unal based (DCxx_p), 2 55 2 mark char (1) unal, 2 56 2 type char (1) unal, /* control type */ 2 57 2 leng fixed bin (9) unal unsigned, 2 58 ( 2 59 2 v1 fixed bin (31), /* long value */ 2 60 2 v2 fixed bin (31) /* long value */ 2 61 ) unal; 2 62 dcl ( 2 63 dclong_len init (8), /* 2 long values */ 2 64 dclong1_len init (4) /* 1 long value */ 2 65 ) fixed bin static options (constant); 2 66 /* short (17 bit) values */ 2 67 dcl 1 dcshort_val unal based (DCxx_p), 2 68 2 mark char (1) unal, 2 69 2 type char (1) unal, /* control type */ 2 70 2 leng fixed bin (9) unal unsigned, 2 71 ( 2 72 2 v1 fixed bin, /* short value */ 2 73 2 v2 fixed bin /* short value */ 2 74 ) unal; 2 75 dcl ( 2 76 dcshort_len init (4), /* 2 short values */ 2 77 dcshort1_len init (2) /* 1 short value */ 2 78 ) fixed bin static options (constant); 2 79 /* a font change string */ 2 80 dcl 1 dcfs unal based (DCxx_p), 2 81 2 mark char (1) unal, /* font/size data */ 2 82 2 type char (1) unal, /* control type */ 2 83 2 leng fixed bin (9) unal unsigned, 2 84 /* fnttbldata index */ 2 85 2 f fixed bin (9) unal unsigned, 2 86 /* point size in milli-points */ 2 87 2 p fixed bin (31) unal; 2 88 dcl dcfs_len fixed bin init (5) static options (constant); 2 89 2 90 dcl ( /* symbolic definitions of DC types */ 2 91 type_wait init (""), /* writer wait */ 2 92 type_unstart init (""), /* underscore start */ 2 93 type_unstop init (""), /* underscore stop */ 2 94 type_lit init (""), /* literal data */ 2 95 type_font init (""), /* family/member/size data */ 2 96 /* SHIFTS - */ 2 97 type_sy init (""), /* -- no x, short y */ 2 98 type_sly init (""), /* -- no x, long y */ 2 99 type_sx init (""), /* -- short x, no y */ 2 100 type_sxy init (" "), /* -- short x, short y */ 2 101 type_slx init (""), /* -- long x, no y */ 2 102 type_slxly init (""), /* -- long x, long y */ 2 103 /* VECTORS */ 2 104 type_vy init (""), /* -- no x, short y */ 2 105 type_vly init (""), /* -- no x, long y */ 2 106 type_vx init (""), /* -- short x, no y */ 2 107 type_vxy init (""), /* -- short x, short y */ 2 108 type_vlx init (""), /* -- long x, no y */ 2 109 type_vlxly init (""), /* -- long x, long y */ 2 110 /* ZERO-OFFSET VECTORS- */ 2 111 type_v0y init (""), /* -- no x, short y */ 2 112 type_v0ly init (""), /* -- no x, long y */ 2 113 type_v0x init (""), /* -- short x, no y */ 2 114 type_v0xy init (""), /* -- short x, short y */ 2 115 type_v0lx init (""), /* -- long x, no y */ 2 116 type_v0lxly init ("") /* -- long x, long y */ 2 117 ) char (1) unal int static options (constant); 2 118 2 119 /* END INCLUDE FILE ..... comp_DCdata.incl.pl1 ..... */ 437 3 1 /* BEGIN INCLUDE FILE - comp_dvt.incl.pl1 */ 3 2 3 3 /* Written: 9/80 - JA Falksen 3 4*/* Modified: 11/81 - EJW - Added comp_dvt.displayproc 3 5*/* Modified: 1/82 - EJW - Added length arg to comp_dvt.displayproc 3 6*/* Modified: 2/82 - EJW - Deleted ptr arg from comp_dvt.displayproc 3 7*/* Modified: 3/83 - EJW - Changed footref arg of comp_dvt.footproc to 3 8* (3) char (*) var. Version 4. */ 3 9 /* Modified: 6/83 - EJW - Added error print control switch to calling 3 10* sequence for comp_dvt.displayproc. - Version 5. 3 11*/* Modified: 11/84 - EJW - Renamed no_adjust to justifying. 3 12**/ 3 13 3 14 /* All names which end in "_r"are offset values within the device table */ 3 15 /* segment. The version of this structure is in comp_dvid.incl.pl1 */ 3 16 3 17 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 3 18 3 19 dcl 1 comp_dvt aligned based (const.devptr), 3 20 2 devclass char (32), /* what general kind of device is */ 3 21 /* this, currently available: */ 3 22 /* "printer" (includes terminals), */ 3 23 /* "braille", "bitmap" */ 3 24 2 outproc entry /* page output processor */ 3 25 (fixed bin, /* function - 0=build */ 3 26 /* 1=init page */ 3 27 /* 2=init file */ 3 28 /* 3=cleanup */ 3 29 fixed bin (35)),/* error code */ 3 30 2 footproc entry /* footnote reference proc */ 3 31 ((3) char (*) var, 3 32 /* reference string (IN/OUT) */ 3 33 ptr), /* comp_dvt_p (IN) */ 3 34 2 artproc entry (), /* artwork proc */ 3 35 /* dont know how to describe yet */ 3 36 2 displayproc 3 37 entry /* string display interpreter */ 3 38 (char (*) var, /* raw input string */ 3 39 fixed bin (24), /* chars used in this call */ 3 40 bit (1)) /* 1= dont show display errors */ 3 41 returns (char (*) var), 3 42 /* interpreted output string */ 3 43 /* following values are in millipoints */ 3 44 2 min_WS fixed bin (31), /* minimum whitespace */ 3 45 2 min_lead fixed bin (31), /* minimun lead */ 3 46 2 vmt_min fixed bin (31), /* min usable .vmt */ 3 47 2 vmb_min fixed bin (31), /* min usable .vmb */ 3 48 2 def_vmt fixed bin (31), /* default .vmt */ 3 49 2 def_vmh fixed bin (31), /* default .vmh */ 3 50 2 def_vmf fixed bin (31), /* default .vmf */ 3 51 2 def_vmb fixed bin (31), /* default .vmb */ 3 52 2 pdw_max fixed bin (31), /* max page width available */ 3 53 2 pdl_max fixed bin (31), /* max page length available, */ 3 54 /* (0 = unlimited) */ 3 55 2 upshift fixed bin (31), /* footnote reference shift */ 3 56 2 init_ps fixed bin (31), /* initial pointsize (millipoints) */ 3 57 2 lettersp fixed bin (31), /* max letterspacing */ 3 58 2 max_pages fixed bin, /* max pages/"file" -1 ->unlimited */ 3 59 2 max_files fixed bin, /* max "files"/reel -1 ->unlimited */ 3 60 2 init_fam fixed bin, /* initial family index */ 3 61 2 init_mem fixed bin, /* initial member index */ 3 62 2 foot_fam fixed bin, /* initial foot family index */ 3 63 2 foot_mem fixed bin, /* initial foot member index */ 3 64 2 init_family 3 65 char (32), /* initial font family to use */ 3 66 2 init_member 3 67 char (32), /* initial font member to use */ 3 68 ( /* the following are offsets */ 3 69 2 atd_r, /* attach desc for on-line output */ 3 70 2 dvc_r, /* device control table relptr */ 3 71 2 comment_r, /* comment string relptr */ 3 72 2 cleanup_r, /* "cleanup" string relptr */ 3 73 2 medsel_table_r /* media select table relptr */ 3 74 ) bit (18) aligned, 3 75 2 foot_family 3 76 char (32), /* family for footnote reference */ 3 77 2 foot_member 3 78 char (32), /* member for footnote reference */ 3 79 /* if one was specified */ 3 80 2 sws unaligned, 3 81 3 interleave /* 0- page block has lines in column */ 3 82 bit (1), /* order left-to-right */ 3 83 /* 1- page block has lines in line */ 3 84 /* order top-to-bottom */ 3 85 3 justifying /* 1- device justifies lines */ 3 86 bit (1), 3 87 3 mbz bit (24), 3 88 3 endpage bit (9), /* EOP char if not "0"b */ 3 89 2 open_mode fixed bin (35), /* when going to a file */ 3 90 2 recleng fixed bin, /* length of tape records */ 3 91 2 family_ct fixed bin, /* # families present */ 3 92 2 family (comp_dvt.family_ct), 3 93 /* families of fonts defined */ 3 94 3 member_r bit (18) aligned, 3 95 /* member table relptr */ 3 96 3 name char (32); /* family name */ 3 97 3 98 3 99 /* The usage formula for units: */ 3 100 /* */ 3 101 /* rel_units * length_in_points */ 3 102 /* ---------------------------- = length_in_units */ 3 103 /* points_per_EM */ 3 104 3 105 /* END INCLUDE FILE comp_dvt.incl.pl1 */ 438 4 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 4 4 5 dcl compose_severity_ 4 6 fixed bin (35) ext static; 4 7 dcl comp_ entry; 4 8 dcl comp_art_ entry (ptr, bit (1)); 4 9 dcl comp_block_ctls_ 4 10 entry (fixed bin); 4 11 dcl comp_break_ entry (fixed bin, fixed bin); 4 12 dcl comp_break_ctls_ 4 13 entry (fixed bin); 4 14 dcl comp_ctls_ entry (bit (1) aligned); 4 15 dcl comp_eject_page_ 4 16 entry; 4 17 dcl comp_expr_eval_ 4 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 4 19 fixed bin, bit (1), fixed bin (31), char (*) var, 4 20 bit (9), fixed bin (35)); 4 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 4 22 fixed bin (21), fixed bin (21), ptr) 4 23 returns (char (*) var); 4 24 dcl comp_fill_ entry; 4 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 4 26 dcl comp_format_ctls_ 4 27 entry (fixed bin); 4 28 dcl comp_get_file_$find 4 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 4 30 fixed bin (35)); 4 31 dcl comp_get_file_$open 4 32 entry (ptr, bit (1), fixed bin (35)); 4 33 dcl comp_head_page_ 4 34 entry (fixed bin (31)); 4 35 dcl comp_hft_ctls_ entry (fixed bin); 4 36 dcl comp_hft_ctls_$title 4 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 4 38 dcl comp_init_$one entry; 4 39 dcl comp_init_$two entry; 4 40 dcl comp_init_$three 4 41 entry; 4 42 dcl comp_insert_ctls_ 4 43 entry (fixed bin); 4 44 dcl comp_make_page_ 4 45 entry (fixed bin, bit (1)); 4 46 dcl comp_make_page_$cleanup 4 47 entry; 4 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 4 49 fixed bin (31), ptr, ptr, ptr); 4 50 dcl comp_read_$name 4 51 entry (char (*) var, fixed bin (21), fixed bin (21), 4 52 ptr) returns (char (*) var); 4 53 dcl comp_read_$number 4 54 entry (char (*) var, (*) fixed bin (31), 4 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 4 56 returns (fixed bin (31)); 4 57 dcl comp_read_$line 4 58 entry (ptr, char (*) var, bit (1)); 4 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 4 60 char (*) var); 4 61 dcl comp_report_$ctlstr 4 62 entry options (variable); 4 63 /**** (sev, code, info, line, ctl_str, args... */ 4 64 dcl comp_report_$exact 4 65 entry (char (*), ptr); 4 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 4 67 bit (1)); 4 68 dcl comp_tbl_ctls_ entry (fixed bin); 4 69 dcl comp_title_block_ 4 70 entry (ptr); 4 71 dcl comp_update_symbol_ 4 72 entry (bit (1), bit (1), bit (1), char (32), 4 73 char (*) var); 4 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 4 75 dcl comp_util_$add_text 4 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 4 77 dcl comp_util_$display 4 78 entry (char (*) var, fixed bin, bit (1)) 4 79 returns (char (*) var); 4 80 dcl comp_util_$escape 4 81 entry (char (*) var, ptr); 4 82 dcl comp_util_$getblk 4 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 4 84 dcl comp_util_$num_display 4 85 entry (ptr, fixed bin) returns (char (256) var); 4 86 dcl comp_util_$pageno 4 87 entry (fixed bin, char (*) var); 4 88 dcl comp_util_$pictures /* emit pending pictures */ 4 89 entry /**/ 4 90 (ptr); /* current text block */ 4 91 dcl comp_util_$pop entry (char (32)); 4 92 dcl comp_util_$push 4 93 entry (char (32)); 4 94 dcl comp_util_$relblk 4 95 entry (fixed bin, ptr); 4 96 dcl comp_util_$replace_text 4 97 entry (ptr, bit (1), ptr, ptr); 4 98 dcl comp_util_$search_tree 4 99 entry (char (32), bit (1)); 4 100 dcl comp_util_$set_bin 4 101 entry (fixed bin (31), char (32) var, fixed bin (31), 4 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 4 103 fixed bin (31)); 4 104 dcl comp_util_$set_net_page 4 105 entry (bit (1)); 4 106 dcl comp_util_$translate 4 107 entry (char (*) var) returns (char (*) var); 4 108 dcl comp_write_block_ 4 109 entry (fixed bin); 4 110 dcl comp_write_page_ 4 111 entry; 4 112 4 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 439 5 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 5 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 5 7 2 bachelor bit (1), /* 1= has no members */ 5 8 2 devfnt fixed bin, /* font in the device */ 5 9 2 fam_name char (32), /* family name */ 5 10 2 famndx fixed bin, /* family index */ 5 11 2 fntptr ptr, /* font table pointer */ 5 12 2 mem_name char (32), /* /member name (or null) */ 5 13 2 memndx fixed bin, /* member index */ 5 14 2 memptr ptr, /* member table pointer */ 5 15 2 name char (65) var, /* font name */ 5 16 2 size fixed bin (31), /* requested point size */ 5 17 2 ps fixed bin (31), /* effective point size */ 5 18 2 fcs_str char (8); /* FCS string */ 5 19 5 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 440 6 1 /* BEGIN INCLUDE FILE comp_font.incl.pl1 */ 6 2 6 3 /* Fonts already loaded into the compose (pdir) database */ 6 4 6 5 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 6 6 7 dcl 1 fnttbldata aligned based (const.fnttbldata_ptr), 6 8 2 count fixed bin, /* number of fonts loaded */ 6 9 2 ndx fixed bin, /* index of current font */ 6 10 2 medsel_ptr ptr, /* -> media select table */ 6 11 2 ptr (100) ptr; /* 100 fonts should be plenty! */ 6 12 6 13 dcl fnttbl_ptr ptr init (null); 6 14 dcl 1 fnttbl aligned based (fnttbl_ptr), 6 15 2 min_wsp fixed bin, /* min wordspace - in strokes */ 6 16 2 avg_wsp fixed bin, /* nominal wordspace - in strokes */ 6 17 2 max_wsp fixed bin, /* max wordspace - in strokes */ 6 18 2 rel_units fixed bin, /* stroke value for this font */ 6 19 2 siztbl_ptr ptr, /* -> loaded size table */ 6 20 2 entry /* stack entry for this font */ 6 21 like fntstk_entry, 6 22 ( /* for each font character */ 6 23 2 devfnt fixed bin, /* font in the device */ 6 24 2 replptr ptr, /* replacement string ptrs */ 6 25 2 units fixed bin, /* width in strokes */ 6 26 2 white bit (1) unal /* white space flags */ 6 27 ) dimension (0:511); 6 28 6 29 dcl repl_str_ptr ptr; /* replacement strings */ 6 30 dcl 1 repl_str based (repl_str_ptr), 6 31 2 len fixed bin (35), 6 32 2 str char (256); 6 33 dcl replstr char (256) var based (repl_str_ptr); 6 34 /* media select strings */ 6 35 /* (indexed on fnttbldata.ndx) */ 6 36 dcl medsel (100) char (12) based (fnttbldata.medsel_ptr); 6 37 6 38 dcl 1 siztbl based (fnttbl.siztbl_ptr), 6 39 2 ct fixed bin, /* number of sizes */ 6 40 2 size (siztbl.ct) fixed bin (31); 6 41 6 42 /* This is the storage referred by family.member_r in comp_dvt 6 43* 6 44* If member.count is 1 and member.name(1) is null, then the font is a 6 45* 'bachelor'. 6 46* 6 47* The font stack will hold the family/member names which were used to 6 48* originally get to the font. When a bachelor is accessed, the member name 6 49* will remain but the bachelor flag will be set to tell any displayers not 6 50* to include it. 6 51* 6 52* %FontName% will contain either "family" or "family/member" depending on 6 53* the setting of the bachelor switch. */ 6 54 6 55 dcl member_ptr ptr; 6 56 dcl 1 member based (member_ptr), 6 57 2 count fixed bin, /* # members present */ 6 58 2 e (member.count), /* members defined for this device */ 6 59 3 font_r bit (18) unal, /* font character table relptr */ 6 60 3 size_r bit (18) aligned, 6 61 /* point size list relptr */ 6 62 3 Scalex fixed bin (35), /* X (hor) scaling * 1e8 - FUTURE */ 6 63 3 Scaley fixed bin (35), /* Y (ver) scaling * 1e8 - FUTURE */ 6 64 3 name char (32); /* member name */ 6 65 6 66 /* Storage referred by member.font_r */ 6 67 dcl font_ptr ptr; 6 68 dcl 1 font based (font_ptr), 6 69 ( 2 oput_r, /* offset of output data array */ 6 70 2 units_r /* offset of width array */ 6 71 ) bit (18) aligned, 6 72 2 rel_units fixed bin, /* stroke value for this table */ 6 73 2 footsep char (1), /* footref separator */ 6 74 2 fill char (3), 6 75 2 min_wsp fixed bin, /* min wordspace */ 6 76 2 avg_wsp fixed bin, /* nominal wordspace */ 6 77 2 max_wsp fixed bin; /* max wordspace */ 6 78 6 79 /* storage referred by font.units_r */ 6 80 dcl units_ptr ptr; /* width in strokes */ 6 81 dcl units (0:511) fixed bin based (units_ptr); 6 82 6 83 /* media select table in the device table */ 6 84 dcl medsel_table_ptr 6 85 ptr; 6 86 dcl 1 medsel_table based (medsel_table_ptr), 6 87 2 count fixed bin, 6 88 2 ref_r (medsel_table.count) bit (18) aligned; 6 89 6 90 /* storage referred by font.oput_r */ 6 91 dcl oput_p ptr; 6 92 dcl 1 oput based (oput_p), 6 93 2 data_ct fixed bin, /* highest char defined */ 6 94 2 e (0:oput.data_ct), 6 95 3 which /* index into view array */ 6 96 fixed bin (17) unal, 6 97 3 what_r /* output string */ 6 98 bit (18) unal; 6 99 6 100 /* storage referred by member.size_r */ 6 101 6 102 dcl sizel_p ptr; 6 103 dcl 1 sizel based (sizel_p),/* list of allowed point sizes */ 6 104 2 val_ct fixed bin, 6 105 2 val (sizel.val_ct) fixed bin (31); 6 106 6 107 /* storage referred by oput.what_r */ 6 108 6 109 dcl medchar_sel_p ptr; /* MediaChar select string */ 6 110 dcl 1 medchar_sel based (medchar_sel_p), 6 111 2 str_l fixed bin, 6 112 2 str char (medchar_sel.str_l); 6 113 dcl medchar char (medchar_sel.str_l) var based (medchar_sel_p); 6 114 6 115 dcl med_sel_p ptr; /* media select string */ 6 116 dcl 1 med_sel based (med_sel_p), 6 117 2 str_l fixed bin, 6 118 2 str char (med_sel.str_l); 6 119 6 120 /* END INCLUDE FILE comp_font.incl.pl1 */ 441 7 1 /* BEGIN INCLUDE FILE comp_footnotes.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 4 7 5 dcl 1 ftnblk_data aligned based (shared.ftnblk_data_ptr), 7 6 /* data for footnote blocks */ 7 7 2 highndx fixed (35), /* highest active footnote index */ 7 8 2 blkptr (250) ptr; /* block pointers */ 7 9 /* footnote header data block */ 7 10 dcl 1 ftnhdr aligned like text based (shared.footnote_header_ptr); 7 11 /* formatting parms for footnotes */ 7 12 dcl 1 footnote_parms 7 13 aligned like default_parms 7 14 based (const.footnote_parms_ptr); 7 15 7 16 /* END INCLUDE FILE comp_footnotes.incl.pl1 */ 442 8 1 /* BEGIN INCLUDE FILE - comp_metacodes.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind25,comcol51,linecom */ 8 4 8 5 /* ASCII control characters */ 8 6 dcl ( 8 7 NUL init (""), /* 000 */ 8 8 SOH init (""), /* 001 */ 8 9 STX init (""), /* 002 */ 8 10 ETX init (""), /* 003 */ 8 11 EOT init (""), /* 004 */ 8 12 ENQ init (""), /* 005 */ 8 13 ACK init (""), /* 006 */ 8 14 BEL init (""), /* 007 */ 8 15 BSP init (""), /* 010 */ 8 16 HT init (" "), 8 17 /* 011 */ 8 18 (NL, LF) init (" 8 19 "), /* 012 */ 8 20 VT init (" "), /* 013 */ 8 21 FF init (" "), /* 014 */ 8 22 CR init (" "), /* 015 */ 8 23 (RRS, SO) init (""), /* 016 */ 8 24 (BRS, SI) init (""), /* 017 */ 8 25 DLE init (""), /* 020 */ 8 26 DC1 init (""), /* 021 */ 8 27 (DC2, HLF, HUGE) init (""), /* 022 */ 8 28 DC3 init (""), /* 023 */ 8 29 (DC4, HLR, THICK) init (""), /* 024 */ 8 30 (NAK, MEDIUM) init (""), /* 025 */ 8 31 SYN init (""), /* 026 */ 8 32 (ETB, HAIR) init (""), /* 027 */ 8 33 (CAN, STROKE) init (""), /* 030 */ 8 34 oct031 init (""), /* 031 */ 8 35 SUB init (""), /* 032 */ 8 36 ESC init (""), /* 033 */ 8 37 FS init (""), /* 034 */ 8 38 GS init (""), /* 035 */ 8 39 RS init (""), /* 036 */ 8 40 US init (""), /* 037 */ 8 41 (DEL, PAD) init (""), /* 177 */ 8 42 /* compose meta-characters */ 8 43 multiply init (""), /* 252 - multiply symbol */ 8 44 pl_mi init (""), /* 253 - plus/minus sign */ 8 45 nabla init (""), /* 254 */ 8 46 EMdash init (""), /* 255 - EM dash */ 8 47 slash init (""), /* 256 */ 8 48 dagger init (""), /* 261 */ 8 49 perpen init (""), /* 273 - perpendicular mark */ 8 50 not_eq init (""), /* 275 - not-equal mark */ 8 51 dbldag init (""), /* 301 - double daggar */ 8 52 cright init (""), /* 303 - copyright mark */ 8 53 delta init (""), /* 304 */ 8 54 bullet init (""), /* 315 */ 8 55 prll init (""), /* 316 - parallel mark */ 8 56 PI init (""), /* 320 - uppercase Greek pi */ 8 57 tmark init (""), /* 324 - trademark */ 8 58 tfore init (""), /* 326 - therefore mark */ 8 59 approx init (""), /* 332 - approximately-equal mark */ 8 60 infin init (""), /* 337 - infinity */ 8 61 theta init (""), /* 352 */ 8 62 pi init (""), /* 360 - lowercase Greek pi */ 8 63 square init (""), /* 375 */ 8 64 overbar init (""), /* 376 */ 8 65 PS init (""), /* 377 - punctuation space */ 8 66 sup0 init (""), /* 400 - superior digit 0 */ 8 67 sup1 init (""), /* 401 - superior digit 1 */ 8 68 sup2 init (""), /* 402 - superior digit 2 */ 8 69 sup3 init (""), /* 403 - superior digit 3 */ 8 70 sup4 init (""), /* 404 - superior digit 4 */ 8 71 sup5 init (""), /* 405 - superior digit 5 */ 8 72 sup6 init (""), /* 406 - superior digit 6 */ 8 73 sup7 init (""), /* 407 - superior digit 7 */ 8 74 sup8 init (""), /* 410 - superior digit 8 */ 8 75 sup9 init (" "), /* 411 - superior digit 9 */ 8 76 EM init (" "), /* 412 - EM space */ 8 77 EM_ init (" "), /* 413 - EM aligned dash */ 8 78 EN init (" "), /* 414 - EN space */ 8 79 EN_ init (" "), /* 415 - EN aligned dash */ 8 80 ENd init (""), /* 416 - EN dash */ 8 81 THIN init (""), /* 417 - thinspace */ 8 82 DEVIT init (""), /* 420 - device unit */ 8 83 lquote init (""), /* 421 - left double quote */ 8 84 rquote init (""), /* 422 - right double quote */ 8 85 modmark init (""), /* 424 - text modification/addition mark */ 8 86 delmark init (""), /* 430 - deletion mark */ 8 87 vrule init ("Z"), /* 532 - vertical rule */ 8 88 lslnt init ("^") /* 536 - left slant */ 8 89 ) char (1) unaligned static options (constant); 8 90 8 91 /* END INCLUDE FILE comp_metacodes.incl.pl1 */ 443 9 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 9 2 9 3 dcl option_version fixed bin (35) static options (constant) init (2); 9 4 9 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 9 6 2 version fixed bin (35), 9 7 /* Options with parameters */ 9 8 (2 argument_opt, /* -argument option flag */ 9 9 2 cbar_opt, /* -change_bars option flag */ 9 10 2 cbar_art_opt, /* -change_bars_art option flag */ 9 11 2 debug_opt, /* -debug option flag */ 9 12 2 db_all_opt, /* -debug_all option flag */ 9 13 2 db_file_opt, /* -debug_file option flag */ 9 14 2 device_opt, /* -device option flag */ 9 15 2 execute_opt, /* -execute option flag */ 9 16 2 from_opt, /* -from option flag */ 9 17 2 galley_opt, /* -galley option flag */ 9 18 2 hyph_opt, /* -hyphenation option flag */ 9 19 2 indent_opt, /* -indent option flag */ 9 20 2 input_file_opt, /* -input_file option flag */ 9 21 2 linespace_opt, /* -linespace option flag */ 9 22 2 output_file_opt, /* -output_file option flag */ 9 23 2 pages_opt, /* -pages option flag */ 9 24 2 page_chng_opt, /* -pages_changed option flag */ 9 25 2 parameter_opt, /* -parameter option flag */ 9 26 2 passes_opt, /* -passes option flag */ 9 27 2 tdir_opt, /* -temp_dir option flag */ 9 28 2 to_opt, /* -to option flag */ 9 29 /* Options without parameters */ 9 30 2 annot_opt, /* -annotate */ 9 31 2 brief_opt, /* -brief option flag */ 9 32 2 check_opt, /* -check option flag */ 9 33 2 cws_opt, /* -cws option flag */ 9 34 2 db_pause_opt, /* -debug_pause option flag */ 9 35 2 noart_opt, /* -noart option flag */ 9 36 2 nobell_opt, /* -no_bell option flag */ 9 37 2 nofill_opt, /* -nofill option flag */ 9 38 2 nohit_opt, /* -nohit option flag */ 9 39 2 number_opt, /* -number option flag */ 9 40 2 number_append_opt, /* -number_append option flag */ 9 41 2 number_brief_opt, /* -number_brief option flag */ 9 42 2 stop_opt, /* -stop option flag */ 9 43 2 wait_opt) unal bit (1), /* -wait option flag */ 9 44 2 MBZ bit (2) unal, 9 45 /* Optional parameters */ 9 46 2 arg_count fixed bin, /* count of -ag values */ 9 47 2 cbar, /* change bar data */ 9 48 3 level char (1), /* change level character (ASCII NUL) */ 9 49 3 place char (1), /* placement character */ 9 50 3 space fixed bin (31), /* extra left margin space needed */ 9 51 3 left, /* left margin mark data */ 9 52 4 sep fixed bin (31), /* separation */ 9 53 4 width fixed bin (31), /* mark width */ 9 54 4 mark char (80) varying, /* the left margin mark */ 9 55 3 right, /* right margin mark data */ 9 56 4 sep fixed bin (31), /* separation */ 9 57 4 width fixed bin (31), /* mark width */ 9 58 4 mark char (80) varying, /* the right margin mark */ 9 59 3 del, /* deletion mark data */ 9 60 4 sep fixed bin (31), /* separation */ 9 61 4 width fixed bin (31), /* mark width */ 9 62 4 mark char (80) varying, /* the deletion mark */ 9 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 9 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 9 65 2 db_file char (200) var, /* file pathanme for debug */ 9 66 2 db_file_after fixed bin (35), /* debug file starting line */ 9 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 9 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 9 69 2 device char (32) varying, /* output device */ 9 70 2 extra_indent fixed bin (31), /* extra indent value */ 9 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 9 72 2 line_1 fixed bin (35), /* initial line for output */ 9 73 2 line_2 fixed bin (35), /* final line for output */ 9 74 2 linespace fixed bin (31), /* line spacing value */ 9 75 2 pglstct fixed bin (35), /* number of page list entries */ 9 76 2 pglstndx fixed bin (35), /* index for -pages list */ 9 77 2 pglst (0:49), /* list of requested pages */ 9 78 3 from char (32) var, 9 79 3 to char (32) var, 9 80 2 parameter char (80) varying, /* parameter from command line */ 9 81 2 passes fixed bin, /* passes remaining */ 9 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 9 83 9 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 9 85 444 10 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl max_image_lines 10 6 fixed static options (constant) init (1000); 10 7 dcl max_cols fixed static options (constant) init (20); 10 8 10 9 dcl page_version fixed bin static options (constant) init (5); 10 10 /* composed page structure */ 10 11 dcl 1 page aligned based (const.page_ptr), 10 12 2 version fixed bin, /* version of this structure */ 10 13 2 parms aligned like page_parms, 10 14 /* page formatting parameters */ 10 15 2 hdr aligned like page_header, 10 16 /* page control stuff */ 10 17 2 image_ptr ptr, /* pointer to the madeup page image */ 10 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 10 19 2 col_image_ptr 10 20 (-2:21) ptr; /* pointers to column images */ 10 21 /* col -1 is for line numbers and */ 10 22 /* left margin change bars; */ 10 23 /* col -2 is for */ 10 24 /* right margin change bars */ 10 25 /* and/or annotation * / 10 26* /* page control stuff */ 10 27 dcl 1 page_header aligned based (const.page_header_ptr), 10 28 2 sws, 10 29 3 art bit (1) unal, /* 1 = header/footer art */ 10 30 3 blankpage 10 31 bit (1) unal, /* 1 = intentional blank page */ 10 32 3 frontpage 10 33 bit (1) unal, /* 1 = odd page number */ 10 34 3 headed bit (1) unal, /* 1 = page header has been written */ 10 35 3 modified bit (1) unal, /* 1 = page has been modified */ 10 36 3 overflow bit (1) unal, /* OBSOLETE */ 10 37 3 MBZ bit (12) unal, 10 38 3 dot_addltr 10 39 char (1) unal, /* dot page add letter, if any */ 10 40 3 pgc_select 10 41 char (1) unal, /* for selecting change pages */ 10 42 2 baldepth fixed bin (31), /* page depth at balance point */ 10 43 2 balusd fixed bin (31), /* space used at balance point */ 10 44 2 col_count fixed bin, /* highest value of col_index for the page */ 10 45 2 col_index fixed bin, /* column index */ 10 46 2 depth fixed bin (31), /* current page depth */ 10 47 2 hdspc fixed bin (31), /* TOP white space */ 10 48 2 lmarg fixed bin (31), /* left margin for this page */ 10 49 2 net fixed bin (31), /* net usable space on the page */ 10 50 2 pageno char (32) var, /* current page number */ 10 51 2 used fixed bin (31); /* space already used on the page */ 10 52 10 53 dcl page_image_version 10 54 fixed bin (35) static options (constant) init (2); 10 55 /* structure passed to writers */ 10 56 dcl 1 page_image aligned based (page.image_ptr), 10 57 2 version fixed bin (35), /* structure version no */ 10 58 2 count fixed bin, /* count of page image lines */ 10 59 2 file_id char (32) var, /* compout identifier */ 10 60 2 func fixed bin, /* function code; 0 = build, 10 61* 1 = intialize, 2 = cleanup */ 10 62 2 text_ptr ptr, /* pointer to the text area */ 10 63 /* the image lines */ 10 64 2 line (max_image_lines), 10 65 3 sws, 10 66 4 quad bit (6) unal, /* text set position flags */ 10 67 4 art bit (1) unal, /* 1 = artwork in the line */ 10 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 10 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 10 70 4 white bit (1) unal, /* line is white */ 10 71 4 MBZ bit (26) unal, 10 72 3 depth fixed bin (31), /* page depth for the text */ 10 73 3 gaps fixed bin, /* number of WS gaps in the line */ 10 74 3 info like text_entry.info, 10 75 /* input file info */ 10 76 3 lead fixed bin (31), /* lead value if trailing WS */ 10 77 3 lfnt fixed bin, /* font at the left margin */ 10 78 3 lmarg fixed bin (31), /* text left margin position */ 10 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 10 80 3 net fixed bin (31), /* net width for filling */ 10 81 3 pos fixed bin (31), /* current horiz position */ 10 82 3 ptr ptr, /* pointer to the text */ 10 83 3 rmarg fixed bin (31), /* text right margin position */ 10 84 3 width fixed bin (31); /* width of the text */ 10 85 /* current page formatting parms */ 10 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 10 87 2 init_page_depth 10 88 fixed bin (31), /* initial page depth */ 10 89 2 length fixed bin (31), /* page length */ 10 90 2 lmarg, /* page left margin */ 10 91 3 even fixed bin (31), 10 92 3 odd fixed bin (31), 10 93 2 margin, /* margin values */ 10 94 3 top fixed bin (31), 10 95 3 header fixed bin (31), 10 96 3 footer fixed bin (31), 10 97 3 bottom fixed bin (31), 10 98 2 measure fixed bin (31), /* line space available for text */ 10 99 2 net, /* net usable space on page */ 10 100 3 even fixed bin (31), /* even pages */ 10 101 3 odd fixed bin (31), /* odd pages */ 10 102 /* arrays at the end */ 10 103 2 cols, /* columns defined for the page */ 10 104 3 bal bit (1) unal, /* column balancing control flag */ 10 105 3 MBZ bit (17) unal, 10 106 3 count fixed bin unal; /* the number of columns */ 10 107 /* default page formatting parms */ 10 108 dcl 1 init_page_parms 10 109 aligned like page_parms 10 110 based (const.init_page_parms_ptr); 10 111 10 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 445 11 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 11 2 11 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 4 11 5 dcl shared_version fixed bin (35) static options (constant) init (17); 11 6 11 7 dcl 1 shared aligned based (const.shared_ptr), 11 8 2 version fixed bin (35), /* version of this structure */ 11 9 2 chars, 11 10 ( 3 sym_delim, /* delimiter for symbols */ 11 11 3 ttl_delim, /* delimiter for title parts */ 11 12 3 wrd_brkr /* word break character */ 11 13 ) char (1) unal, 11 14 3 PAD char (1) unal, 11 15 2 cbar_type char (4) var, /* change bar type */ 11 16 2 dot_add_letter /* dot page add letter */ 11 17 char (1) var, 11 18 2 EN_width fixed bin (31), /* width of EN in current font */ 11 19 2 eqn_refct fixed bin, /* equation reference counter */ 11 20 2 footref_fcs /* footnote ref FCS string */ 11 21 char (8) aligned, 11 22 2 ftn_reset char (8) var, /* footnote reset mode */ 11 23 2 ftnrefct fixed bin, /* footnote ref counter */ 11 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 11 25 2 if_nest, /* if/then/else logic control */ 11 26 3 ndx fixed bin, /* depth of logic nest */ 11 27 3 e (25), /* nest entries */ 11 28 /* .if control switch */ 11 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 11 30 4 info aligned like text_entry.info, 11 31 4 line char (256) var, /* the control line */ 11 32 2 indctl, /* indent ctls stack */ 11 33 3 ndx fixed bin, /* current level */ 11 34 /* switch bits */ 11 35 3 stk (0:35) bit (1) unal, 11 36 2 input_dirname 11 37 char (168) var, /* dir containing current input file */ 11 38 2 input_filename 11 39 char (200) var, /* current input file name */ 11 40 2 lead fixed bin (31), /* current linespacing value */ 11 41 2 lit_count fixed bin (35), /* count of literal lines */ 11 42 2 next_pagenmbr 11 43 char (32) var, /* next page number / */ 11 44 2 output_file 11 45 char (32) var, /* output file identifier */ 11 46 2 pagecount fixed bin, /* number of pages produced */ 11 47 2 pagenum, /* page number structure */ 11 48 3 index fixed bin, /* level currently counting */ 11 49 ( 11 50 3 sep char (1) unal, /* separator chars */ 11 51 3 nmbr fixed bin (31), /* the counters */ 11 52 3 mode /* display modes */ 11 53 fixed bin (8) unal 11 54 ) dimension (20), 11 55 2 parameter char (254) var, /* command line parameter */ 11 56 2 param_pres bit (1), /* passed parameter flag */ 11 57 2 pass_counter 11 58 fixed bin, /* pass counter */ 11 59 2 picture, /* picture blocks */ 11 60 3 count fixed bin, /* number of them */ 11 61 3 space fixed bin (31), /* total picture space */ 11 62 3 blk (10), /* picture blocks */ 11 63 4 type char (4), /* type = page/col */ 11 64 4 place char (4), /* place = top/cen/bot */ 11 65 4 ptr ptr, /* pointer to block */ 11 66 4 size fixed bin (31), /* size of the picture */ 11 67 2 ptrs, 11 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 11 69 3 blank_footer_ptr, /* -> blank page footer */ 11 70 3 blank_header_ptr, /* -> blank page header */ 11 71 3 blank_text_ptr, /* -> blank page text */ 11 72 3 blkptr, /* -> active text */ 11 73 3 colptr, /* current column */ 11 74 3 compout_ptr, /* iocb pointer for output */ 11 75 3 compx_ptr, /* iocb pointer for compx file */ 11 76 3 ctb_ptr, /* current line artwork table */ 11 77 3 epftrptr, /* even page footer block */ 11 78 3 ephdrptr, /* even page header block */ 11 79 3 fcb_ptr, /* input file control block pointer */ 11 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 11 81 3 footnote_header_ptr, /* footnote header "title" */ 11 82 3 graphic_page_ptr, /* graphic output page */ 11 83 3 hit_data_ptr, /* hit data pointer */ 11 84 3 htab_ptr, /* horizontal tab tables */ 11 85 3 hwrd_data_ptr, /* local hyphenation table */ 11 86 3 insert_ptr, /* data entry for current input file */ 11 87 3 opftrptr, /* odd page footer block */ 11 88 3 ophdrptr, /* odd page header block */ 11 89 3 ptb_ptr, /* previous line artwork table */ 11 90 3 spcl_blkptr, /* "special" block pointer */ 11 91 3 tbldata_ptr, /* table column data structure */ 11 92 3 tblkdata_ptr, /* text block data array */ 11 93 3 text_header_ptr /* empty text header structure */ 11 94 ) ptr, 11 95 2 scale, /* space conversion scale factors */ 11 96 3 horz fixed bin (31), /* horizontal */ 11 97 3 vert fixed bin (31), /* vertical */ 11 98 2 source_filename 11 99 char (200) var, /* current source file name */ 11 100 2 sws, /* switch bits */ 11 101 ( 3 bug_mode, /* debug mode */ 11 102 3 compout_not_headed, /* compout is not headed */ 11 103 3 end_input, /* EOF for current input file */ 11 104 3 end_output, /* no more output is wanted */ 11 105 3 firstpass, /* first pass over input */ 11 106 3 ftn_mode, /* in footnote mode */ 11 107 3 hyph_mode, /* hyphenating mode */ 11 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 11 109 3 literal_mode, /* literal line mode flag */ 11 110 3 pageblock, /* blocks belong to page */ 11 111 3 picture_mode, /* building a picture */ 11 112 3 print_flag, /* producing output */ 11 113 3 purge_ftns, /* purging footnotes */ 11 114 3 suppress_footref, /* suppress next footnote ref */ 11 115 3 table_mode /* table mode */ 11 116 ) bit (1) unal, 11 117 3 MBZ bit (21) unal, 11 118 2 trans, /* trans table for .tr */ 11 119 3 in char (128) var, /* input chars */ 11 120 3 out char (128) var, /* output chars */ 11 121 2 widow_size fixed bin (31), /* widow size */ 11 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 11 123 /* to save shared data between files/passes */ 11 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 11 125 11 126 dcl dot_addltr_symb_index 11 127 fixed bin static options (constant) init (12); 11 128 dcl max_text_lines fixed bin static options (constant) init (1000); 11 129 dcl mode_string char (16) static options (constant) 11 130 init ("arbihxocalaurlru"); 11 131 /* value overlays */ 11 132 dcl flag_value bit (1) based; 11 133 dcl num_value fixed bin (31) based; 11 134 11 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 446 12 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 12 2 12 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 12 4 12 5 dcl 1 tblkdata /* data for allocated text blocks */ 12 6 aligned based (shared.tblkdata_ptr), 12 7 2 block, /* block pool */ 12 8 3 count fixed bin, 12 9 3 ptr (500) ptr, /* block pointers */ 12 10 /* block state flags */ 12 11 3 free (500) bit (1) unal, 12 12 2 line_area, /* line area pool */ 12 13 3 count fixed bin, 12 14 3 ptr (500) ptr, /* area pointers */ 12 15 /* area state flags */ 12 16 3 free (500) bit (1) unal, 12 17 2 text_area, /* text area pool */ 12 18 3 count fixed bin, 12 19 3 ptr (500) ptr, /* area pointers */ 12 20 /* area state flags */ 12 21 3 free (500) bit (1) unal, 12 22 3 string_area_count 12 23 fixed bin; /* line areas */ 12 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 12 25 dcl line_area_ptr ptr init (null); 12 26 dcl 1 line_area aligned based (line_area_ptr), 12 27 2 next ptr, /* forward thread */ 12 28 2 prev ptr, /* backward thread */ 12 29 2 count fixed bin, /* number of lines allocated */ 12 30 2 ndx fixed bin, /* index of current line */ 12 31 2 pndx fixed bin, /* area pool index */ 12 32 2 linptr (LINE_AREA_SIZE) ptr; 12 33 /* text areas */ 12 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 12 35 dcl text_area_ptr ptr init (null); 12 36 dcl 1 text_area aligned based (text_area_ptr), 12 37 2 next ptr, /* forward thread */ 12 38 2 count fixed bin, /* number of areas allocated */ 12 39 2 ndx fixed bin, /* index of current strarea */ 12 40 2 pndx fixed bin, /* area pool index */ 12 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 12 42 /* text string area */ 12 43 dcl string_area (256) fixed bin based; 12 44 dcl txtstrptr ptr; /* current text string */ 12 45 dcl txtstr char (1020) var based (txtstrptr); 12 46 12 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 12 48 /* general text block */ 12 49 dcl 1 text aligned based (shared.blkptr), 12 50 2 version fixed bin, /* version of structure */ 12 51 2 blkndx fixed bin, /* block data index */ 12 52 2 blktype char (2), /* block type code */ 12 53 /* dynamic block control stuff */ 12 54 2 hdr aligned like text_header, 12 55 /* text read from input file */ 12 56 2 input aligned like text_entry, 12 57 2 input_line char (1020) var,/* input buffer */ 12 58 2 line_area, 12 59 3 first ptr, /* head of line area thread */ 12 60 3 cur ptr, /* current line area */ 12 61 2 next_text ptr, /* next text string */ 12 62 /* text formatting parameters */ 12 63 2 parms aligned like default_parms, 12 64 2 text_area, 12 65 3 first ptr, /* head of text area thread */ 12 66 3 cur ptr; /* current text area */ 12 67 /* an empty text block line */ 12 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 12 69 2 sws, /* unaligned switches, etc. */ 12 70 3 art bit (1) unal, /* line has artwork */ 12 71 3 cbar, /* change bar flags */ 12 72 4 add bit (1) unal, /* text addition flag */ 12 73 4 del bit (1) unal, /* text deletion flag */ 12 74 4 mod bit (1) unal, /* text modification flag */ 12 75 3 default bit (1) unal, /* 1 = default case as needed */ 12 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 12 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 12 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 12 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 12 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 12 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 12 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 12 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 12 84 3 oflo bit (1) unal, /* line causes overflow */ 12 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 12 86 3 quad bit (6) unal, /* text alignment flags */ 12 87 3 space_added /* 1= line has added space */ 12 88 bit (1) unal, 12 89 3 spcl, /* special entry - not output text */ 12 90 4 file bit (1) unal, /* 1= output to special file */ 12 91 4 blk_splt /* 1= action at block split time */ 12 92 bit (1) unal, 12 93 4 page_mkup /* 1= action at page makeup time */ 12 94 bit (1) unal, 12 95 3 table bit (1) unal, /* 1= line is a table entry */ 12 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 12 97 3 title bit (1) unal, /* 1= line is a */ 12 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 12 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 12 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 12 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 12 102 3 white bit (1) unal, /* 1= line is white space */ 12 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 12 104 3 MBZ bit (4) unal, 12 105 2 art_start fixed bin unal, /* start of art string in line */ 12 106 2 art_len fixed bin unal, /* length of art string in line */ 12 107 2 cbar_level /* change level for cbars */ 12 108 char (1) aligned, 12 109 2 cur, /* current scanning data for line */ 12 110 3 chrct fixed bin, /* count of chars scanned */ 12 111 3 gaps fixed bin, /* gap count */ 12 112 3 width fixed bin (31), /* width of font chars */ 12 113 3 min fixed bin (31), /* width of min spbnds */ 12 114 3 avg fixed bin (31), /* width of avg spbnds */ 12 115 3 max fixed bin (31), /* width of max spbnds */ 12 116 3 font like fntstk_entry, 12 117 2 depth fixed bin (31), /* page depth for line */ 12 118 /* font at start of line */ 12 119 2 font like fntstk_entry, 12 120 2 index fixed bin (21), /* char index for line scanning */ 12 121 2 info, /* stuff created during line input */ 12 122 3 fileno fixed bin, /* input file index */ 12 123 3 lineno fixed bin, /* input file line number */ 12 124 3 lineno0 fixed bin, /* call_box0 line number */ 12 125 2 linespace fixed bin (31), /* linespace value for the line */ 12 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 12 127 2 mod_len fixed bin, /* length of modified text */ 12 128 2 mod_start fixed bin, /* index for start of modified text */ 12 129 2 net fixed bin (31), /* net line width for filling */ 12 130 2 ptr ptr, /* pointer to the actual text */ 12 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 12 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 12 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 12 134 2 tblcol fixed bin, /* column for table entries */ 12 135 2 title_delim 12 136 char (1) unal, /* title delimiter if a <title> */ 12 137 2 title_index 12 138 fixed bin, /* <title> block index for line */ 12 139 2 width fixed bin (31), /* width of text */ 12 140 2 ftn, /* footnote info for line */ 12 141 3 ct fixed bin, /* number of footnote refs */ 12 142 3 used fixed bin (31), /* space used */ 12 143 3 e (40), /* limit is arbitrary */ 12 144 4 blkndx fixed bin unal, /* block index of footnote - if this 12 145* value is 0, then .frf was used */ 12 146 4 refno fixed bin unal; /* reference number */ 12 147 12 148 dcl ( 12 149 quadi init ("40"b3), /* set to the inside margin */ 12 150 quado init ("20"b3), /* set to the outside margin */ 12 151 quadl init ("10"b3), /* set left */ 12 152 quadc init ("04"b3), /* set centered */ 12 153 quadr init ("02"b3), /* set right */ 12 154 just init ("01"b3) /* justified */ 12 155 ) bit (6) static options (constant); 12 156 /* control line structure */ 12 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 12 158 dcl ctl_line char (1020) var based (ctl.ptr); 12 159 12 160 dcl txtlinptr ptr; /* the current text line */ 12 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 12 162 /* empty text header structure */ 12 163 dcl 1 text_header aligned based (const.text_header_ptr), 12 164 2 sws, /* control switches */ 12 165 3 art bit (1) unal, /* block has artwork */ 12 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 12 167 3 modified bit (1) unal, /* block contains modified lines */ 12 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 12 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 12 170 3 tblblk bit (1) unal, /* a table block */ 12 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 12 172 3 white bit (1) unal, /* block is a white space block */ 12 173 3 picture bit (1) unal, /* picture block */ 12 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 12 175 3 MBZ bit (26) unal, 12 176 2 art_count fixed bin unal, /* to count input art lines */ 12 177 2 blkptr ptr, /* pointer to suspended block */ 12 178 2 cap_size fixed bin unal, /* line count of text caption */ 12 179 2 cap_used fixed bin (31), /* size of text caption */ 12 180 2 colno fixed bin unal, /* column owning the block */ 12 181 2 count fixed bin unal, /* line count for block */ 12 182 2 eqn_line_count 12 183 fixed bin unal, /* counter for equation lines */ 12 184 2 first_text fixed bin unal, /* OBSOLETE */ 12 185 2 ftn, /* footnotes */ 12 186 3 ct fixed bin, /* count */ 12 187 3 usd fixed bin (31), /* space used */ 12 188 3 blkndx (40) fixed bin, /* footnote block index values */ 12 189 2 head_size fixed bin, /* line count of text header */ 12 190 2 head_used fixed bin (31), /* size of text header */ 12 191 2 index fixed bin unal, /* block index of next output line */ 12 192 2 keep_count fixed bin unal, /* to count input keep lines */ 12 193 2 last_line fixed bin, /* last text line in column */ 12 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 12 195 2 name char (32) var, /* block name, if any */ 12 196 2 nofill_count /* to count nofill lines */ 12 197 fixed bin, 12 198 2 parms_ptr ptr, /* parms for suspended block */ 12 199 2 refer fixed bin, /* inter-block reference */ 12 200 2 refer_index /* OBSOLETE */ 12 201 fixed bin, /* a reference */ 12 202 2 split fixed bin, /* split point for balancing */ 12 203 2 trl_ws fixed bin (31), /* trailing WS */ 12 204 2 used fixed bin (31); /* page space used by a column/block */ 12 205 /* text formatting parameters */ 12 206 dcl 1 text_parms aligned like default_parms 12 207 based (const.text_parms_ptr); 12 208 12 209 dcl 1 current_parms 12 210 aligned like default_parms 12 211 based (const.current_parms_ptr); 12 212 12 213 dcl 1 default_parms 12 214 aligned based (const.default_parms_ptr), 12 215 2 sws, /* control switches */ 12 216 3 quad bit (6) unal, /* text alignment mode */ 12 217 3 art bit (1) unal, /* 1 = block countains artwork */ 12 218 3 cbar, /* change bar flags */ 12 219 4 add bit (1) unal, /* text addition flag */ 12 220 4 del bit (1) unal, /* text deletion flag for next line */ 12 221 4 mod bit (1) unal, /* text modification flag */ 12 222 3 fill_mode 12 223 bit (1) unal, /* 1 = fill mode ON */ 12 224 3 footnote bit (1) unal, /* block is a footnote */ 12 225 3 hfc bit (1) unal, /* OBSOLETE */ 12 226 3 htab_mode 12 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 12 228 3 keep bit (1) unal, /* keep mode */ 12 229 3 page bit (1) unal, /* block belongs to page, not text */ 12 230 3 title_mode 12 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 12 232 3 MBZ bit (19) unal, 12 233 2 ftrptr ptr, /* text caption block */ 12 234 2 cbar_level /* change level for cbars */ 12 235 char (1) aligned, 12 236 2 hdrptr ptr, /* text header block */ 12 237 2 left, /* left margin data */ 12 238 3 indent fixed bin (31), 12 239 3 undent fixed bin (31), 12 240 2 linespace fixed bin (31), /* line spacing value */ 12 241 2 measure fixed bin (31), /* line space for text */ 12 242 /* right margin data */ 12 243 2 right like default_parms.left, 12 244 2 fntstk, /* stack of last 20 font changes */ 12 245 3 index fixed bin, /* which one in use */ 12 246 /* entry(0) is the default */ 12 247 3 entry (0:19) like fntstk_entry; 12 248 12 249 dcl hfcblk_ptr ptr; 12 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 12 251 12 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 447 13 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 13 2* 13 3* This storage is converted from external (as declared) to internal by the 13 4* binder and contains items that must be accessible to both the bound and 13 5* unbound program. */ 13 6 13 7 /* Written: ??/??/7? - EJW 13 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 13 9* and removed the codes array; version 6. 13 10**/ 13 11 13 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 13 13 14 dcl 1 compstat$compconst 13 15 aligned like const ext static; 13 16 13 17 dcl const_version fixed bin (35) static options (constant) init (6); 13 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 13 19 fixed bin static options (constant) init (80); 13 20 dcl MAX_TREE_AREAS /* number of tree areas */ 13 21 fixed bin static options (constant) init (20); 13 22 13 23 dcl 1 const aligned based (compstat$compconst.ptr), 13 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 13 25 2 version fixed bin (35), /* structure version */ 13 26 2 art_symbols /* string of art symbols */ 13 27 char (28) aligned, 13 28 2 builtin_count /* count of builtin variables */ 13 29 fixed bin, 13 30 2 comp_dir char (200), /* dir in which compose lives */ 13 31 2 comp_version 13 32 char (8) var, /* compose version id */ 13 33 2 date_value char (8) var, /* current date */ 13 34 2 dsm_name char (32), /* device support module name */ 13 35 2 dvt_name char (32), /* device table name */ 13 36 2 max_seg_chars 13 37 fixed bin (35), /* char count in a max seg */ 13 38 2 null_str char (1) var, /* an empty string */ 13 39 2 ptrs, 13 40 ( 3 call_stk_ptr, /* -> insert call stack */ 13 41 3 colhdrptr, /* empty column header structure */ 13 42 3 ctl_ptr, /* input line structure */ 13 43 3 current_parms_ptr, /* current formatting parms */ 13 44 3 default_parms_ptr, /* default initial text parms */ 13 45 3 devptr, /* -> comp_dvt structure */ 13 46 3 dvidptr, /* -> comp_dvid structure */ 13 47 3 errblk_ptr, /* error message block pointer */ 13 48 3 footnote_parms_ptr, /* footnote formatting parms */ 13 49 3 fnttbldata_ptr, /* -> font table data */ 13 50 3 global_area_ptr, /* per invocation storage */ 13 51 3 init_page_parms_ptr, /* default initial page parms */ 13 52 3 insert_data_ptr, /* insert file data block */ 13 53 3 local_area_ptr, /* per file storage */ 13 54 3 loctbl_ptr, /* for font copying */ 13 55 3 option_ptr, /* program options block */ 13 56 3 outproc_ptr, /* device writer for cleanup */ 13 57 3 page_ptr, /* active page structure */ 13 58 3 page_header_ptr, /* empty page header structure */ 13 59 3 page_parms_ptr, /* page formatting parameter block */ 13 60 3 save_shared_ptr, /* saved shared data */ 13 61 3 shared_ptr, /* shared data structure */ 13 62 3 text_entry_ptr, /* empty text entry structure */ 13 63 3 text_header_ptr, /* empty text header structure */ 13 64 3 text_parms_ptr, /* main body formatting parms */ 13 65 3 tree_ptr /* symbol tree structure */ 13 66 ) ptr, 13 67 2 time_value char (6) var; /* time at start */ 13 68 13 69 /* Other external */ 13 70 dcl ( 13 71 ioa_, 13 72 ioa_$nnl 13 73 ) entry options (variable); 13 74 dcl iox_$error_output 13 75 ptr ext static, /* iocb pointer for error_output */ 13 76 iox_$user_input 13 77 ptr ext static, /* iocb pointer for user_input */ 13 78 iox_$user_output 13 79 ptr ext static; /* iocb pointer for user_output */ 13 80 dcl sys_info$max_seg_size 13 81 fixed bin (18) ext static; 13 82 13 83 /* END INCLUDE FILE compstat.incl.pl1 */ 448 14 1 /* BEGINNING OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 14 2 14 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 4 /* */ 14 5 /* N__a_m_e: translator_temp_alloc.incl.pl1 */ 14 6 /* */ 14 7 /* This include segment allocates space in a translator's temporary segment. It */ 14 8 /* contains a complete space allocation function 'allocate' which can be a quick PL/I */ 14 9 /* internal procedure in the program which includes this include segment. The temporary */ 14 10 /* segment should be one obtained by using the translator_temp_ subroutine. */ 14 11 /* */ 14 12 /* S__t_a_t_u_s */ 14 13 /* */ 14 14 /* 0) Created by: G. C. Dixon in January, 1975. */ 14 15 /* 1) Modified by: G. C. Dixon in February, 1981 - use limit area structure. */ 14 16 /* */ 14 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 18 14 19 14 20 14 21 allocate: procedure (Parea, ANwords) returns (ptr); 14 22 14 23 dcl Parea ptr, /* ptr to the temporary segment. (In) */ 14 24 ANwords fixed bin; /* number of words to be allocated. (In) */ 14 25 14 26 dcl Nwords fixed bin, /* number of words to be allocated, rounded up */ 14 27 /* to a 0 mod 2 quantity. */ 14 28 P ptr, /* a temporary pointer. */ 14 29 code fixed bin(35), /* a status code. */ 14 30 (mod, null, ptr) builtin; 14 31 14 32 dcl 1 area based (Parea), 14 33 2 Pfirst_temp_seg ptr unal, /* ptr to first temp seg of a group. */ 14 34 2 Ofree fixed bin(35), /* offset of next free word in temp seg. */ 14 35 2 Lfree fixed bin(35); /* length of remaining free space in temp seg. */ 14 36 14 37 dcl translator_temp_$get_next_segment 14 38 entry (ptr, ptr, fixed bin(35)); 14 39 14 40 Nwords = ANwords + mod (ANwords, 2); /* round up word count to 0 + mod 2 quantity. */ 14 41 if Nwords > Lfree then do; /* handle area overflow. */ 14 42 call translator_temp_$get_next_segment (Parea, P, code); 14 43 if P = null then return (null); 14 44 Parea = P; 14 45 if Nwords > area.Lfree then return (null); 14 46 end; 14 47 P = ptr (Parea, area.Ofree); /* get pointer to next free word of area. */ 14 48 area.Ofree = area.Ofree + Nwords; /* increase offset of remaining free space. */ 14 49 area.Lfree = area.Lfree - Nwords; /* decrease length of remaining free space. */ 14 50 return (P); 14 51 14 52 end allocate; 14 53 14 54 /* END OF: translator_temp_alloc.incl.pl1 * * * * * * * * * * * * * * * * */ 449 450 end comp_font_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0909.4 comp_font_.pl1 >spec>online>comp>comp_font_.pl1 436 1 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 437 2 03/01/85 1411.8 comp_DCdata.incl.pl1 >ldd>include>comp_DCdata.incl.pl1 438 3 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 439 4 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 440 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 441 6 04/23/85 0912.3 comp_font.incl.pl1 >spec>online>comp>comp_font.incl.pl1 442 7 03/01/85 1412.0 comp_footnotes.incl.pl1 >ldd>include>comp_footnotes.incl.pl1 443 8 04/23/85 0912.3 comp_metacodes.incl.pl1 >spec>online>comp>comp_metacodes.incl.pl1 444 9 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 445 10 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 446 11 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 447 12 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 448 13 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 449 14 07/22/81 2045.0 translator_temp_alloc.incl.pl1 >ldd>include>translator_temp_alloc.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANwords parameter fixed bin(17,0) dcl 14-23 ref 14-21 14-40 14-40 AZ 000000 constant char(26) initial unaligned dcl 403 ref 294 327 DC1 constant char(1) initial unaligned dcl 8-6 ref 29 DCFS 000100 automatic structure level 1 packed unaligned dcl 406 set ref 82 90 210 DCFS_str based char unaligned dcl 407 ref 82 90 210 EN constant char(1) initial unaligned dcl 8-6 ref 154 393 EN_width 6 based fixed bin(31,0) level 2 dcl 11-7 set ref 154* 393* Lfree 2 based fixed bin(35,0) level 2 dcl 14-32 set ref 14-41 14-45 14-49* 14-49 Nwords 000266 automatic fixed bin(17,0) dcl 14-26 set ref 14-40* 14-41 14-45 14-48 14-49 Ofree 1 based fixed bin(35,0) level 2 dcl 14-32 set ref 14-47 14-48* 14-48 P 000270 automatic pointer dcl 14-26 set ref 14-42* 14-43 14-44 14-47* 14-50 Parea parameter pointer dcl 14-23 set ref 14-21 14-41 14-42* 14-44* 14-45 14-47 14-47 14-48 14-48 14-49 14-49 abort_sw 000010 internal static bit(1) initial unaligned dcl 400 set ref 139 244* 248* addr builtin function dcl 432 ref 82 90 92 112 133 133 149 165 173 173 185 185 194 194 210 302 302 386 386 area based structure level 1 unaligned dcl 14-32 avg_wsp 5 based fixed bin(17,0) level 2 in structure "font" dcl 6-68 in procedure "comp_font_" ref 365 avg_wsp 1 based fixed bin(17,0) level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 365* az 000007 constant char(26) initial unaligned dcl 401 ref 294 327 bachelor 000112 automatic bit(1) level 2 dcl 418 set ref 319* 325* balftn 2 based structure level 2 in structure "colhdr" dcl 1-21 in procedure "comp_font_" balftn 320 based structure level 3 in structure "col" dcl 1-5 in procedure "comp_font_" balftn 320 based structure level 3 in structure "col0" dcl 1-37 in procedure "comp_font_" blkptr 3752 based pointer level 3 dcl 11-7 ref 217 220 221 222 222 buffer parameter varying char dcl 25 set ref 14 37 97 117* 123 133* 169 170 173* 176* 176 182 185* 187* 187 190 193* 193 194* 302* 386* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 11-7 ref 40 100 117 234 code 000272 automatic fixed bin(35,0) dcl 14-26 set ref 14-42* col based structure level 1 dcl 1-5 col_index 21 based fixed bin(17,0) level 3 dcl 10-11 set ref 117* colhdr based structure level 1 dcl 1-21 comp_abort 000176 stack reference condition dcl 429 ref 135 comp_dvt based structure level 1 dcl 3-19 comp_read_$name 000014 constant entry external dcl 4-50 ref 185 194 comp_read_$number 000016 constant entry external dcl 4-53 ref 173 comp_report_ 000020 constant entry external dcl 4-59 ref 133 386 comp_report_$ctlstr 000022 constant entry external dcl 4-61 ref 302 comp_util_$display 000024 constant entry external dcl 4-77 ref 234 compstat$compconst 000026 external static structure level 1 dcl 13-14 const based structure level 1 dcl 13-23 count based fixed bin(17,0) level 2 in structure "medsel_table" dcl 6-86 in procedure "comp_font_" ref 61 count based fixed bin(17,0) level 2 in structure "fnttbldata" dcl 6-7 in procedure "comp_font_" set ref 270 274 309* count based fixed bin(17,0) level 2 in structure "member" dcl 6-56 in procedure "comp_font_" ref 327 332 ctl based structure level 1 dcl 12-157 ctl_ptr 132 based pointer level 3 dcl 13-23 ref 133 133 173 173 185 185 194 194 302 302 386 386 cur 1000 based pointer level 3 dcl 7-10 ref 229 current_parms based structure level 1 dcl 12-209 current_parms_ptr 134 based pointer level 3 dcl 13-23 ref 111 112 126 127 130 145 145 147 149 162 162 165 data_ct based fixed bin(17,0) level 2 dcl 6-92 ref 349 db_sw 000011 internal static bit(1) initial unaligned dcl 408 set ref 40 100 117 234 260* 264* dcfs based structure level 1 packed unaligned dcl 2-80 dcfs_len constant fixed bin(17,0) initial dcl 2-88 ref 31 82 90 210 default_parms based structure level 1 dcl 12-213 default_parms_ptr 136 based pointer level 3 dcl 13-23 ref 45 46 46 48 48 48 48 74 75 79 87 91 devfnt 1 based fixed bin(17,0) level 2 in structure "fntstk_entry" dcl 5-6 in procedure "comp_font_" set ref 117* 151 devfnt 66 based fixed bin(17,0) array level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 343* 357* devfnt 1 000112 automatic fixed bin(17,0) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 80 88 100* 207 234* 309* device 204 based varying char(32) level 2 dcl 9-5 set ref 302* devptr 140 based pointer level 3 dcl 13-23 ref 58 65 74 285 285 291 294 294 299 312 312 337 347 353 360 368 dt_sw 000012 internal static bit(1) initial unaligned dcl 409 set ref 40 100 117 234 252* 256* dvidptr 142 based pointer level 3 dcl 13-23 ref 58 e 1 based structure array level 2 in structure "oput" packed unaligned dcl 6-92 in procedure "comp_font_" e 1 based structure array level 2 in structure "member" unaligned dcl 6-56 in procedure "comp_font_" entry 1026 based structure array level 4 in structure "text" dcl 12-49 in procedure "comp_font_" set ref 221* entry 22 based structure array level 3 in structure "text_parms" dcl 12-206 in procedure "comp_font_" set ref 92 entry 22 based structure array level 3 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 75 91* entry 22 based structure array level 3 in structure "current_parms" dcl 12-209 in procedure "comp_font_" set ref 112 127 149 162 165 entry 6 based structure level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 278 362* entry 22 based structure array level 3 in structure "footnote_parms" dcl 7-12 in procedure "comp_font_" set ref 83* f 0(27) 000100 automatic fixed bin(9,0) level 2 packed unsigned unaligned dcl 406 set ref 80* 88* 207* fam_name 2 000112 automatic char(32) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 185* 193 199 294 fam_name 24 based char(32) array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 48* family 124 based structure array level 2 dcl 3-19 family_ct 123 based fixed bin(17,0) level 2 dcl 3-19 ref 285 291 294 299 famndx 34 based fixed bin(17,0) array level 4 in structure "current_parms" dcl 12-209 in procedure "comp_font_" set ref 130 145* famndx 12 000112 automatic fixed bin(17,0) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 311* fcs_str 100 based char(8) array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 48* fcs_str parameter char(8) unaligned dcl 26 in procedure "comp_font_" set ref 14 28* 210* 234 fcs_str 56 000112 automatic char(8) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 82* 90* 210* fntptr 36 based pointer array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 46* fntptr 14 000112 automatic pointer level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 337* fntstk 20 based structure level 2 in structure "text_parms" dcl 12-206 in procedure "comp_font_" set ref 87* fntstk 1024 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_font_" fntstk 20 based structure level 2 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 45* 79 87 fntstk 20 based structure level 2 in structure "current_parms" dcl 12-209 in procedure "comp_font_" fntstk 20 based structure level 2 in structure "footnote_parms" dcl 7-12 in procedure "comp_font_" set ref 79* fntstk_entry based structure level 1 dcl 5-6 set ref 113 150 166* 215* fntstk_eptr 000212 automatic pointer dcl 5-5 set ref 92* 112* 113 117 117 117 117 149* 150 151 152 165* 166 215 fnttbl based structure level 1 dcl 6-14 set ref 340 340 fnttbl_ptr 000214 automatic pointer initial dcl 6-13 set ref 151* 154 154 6-13* 277* 278 340* 340 340 341 343 343 344 345 354 355 357 360 362 363 364 365 366 371 375 393 393 fnttbldata based structure level 1 dcl 6-7 fnttbldata_ptr 150 based pointer level 3 dcl 13-23 ref 53 56 56 56 67 69 151 270 270 274 277 309 309 341 font 100 based structure level 2 in structure "txtlin" dcl 12-161 in procedure "comp_font_" set ref 230* font based structure level 1 unaligned dcl 6-68 in procedure "comp_font_" font 216 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_font_" set ref 222* font_error 000204 stack reference condition dcl 429 ref 139 font_ptr 000220 automatic pointer dcl 6-67 set ref 337* 347 360 363 364 365 366 font_r 1 based bit(18) array level 3 packed unaligned dcl 6-56 ref 337 footnote_header_ptr 3774 based pointer level 3 dcl 11-7 ref 229 footnote_parms based structure level 1 dcl 7-12 footnote_parms_ptr 146 based pointer level 3 dcl 13-23 ref 79 83 ftn_mode 4113(05) based bit(1) level 3 packed unaligned dcl 11-7 ref 226 ftnhdr based structure level 1 dcl 7-10 global_area_ptr 152 based pointer level 3 dcl 13-23 set ref 56* 340* 370* hdr 15 based structure level 2 dcl 10-11 i 000102 automatic fixed bin(17,0) dcl 410 set ref 61* 62 65 67 69* 349* 350 353 354 355 357 357* ibuf 000103 automatic fixed bin(21,0) dcl 411 set ref 173* 176 185* 187 ifam 000104 automatic fixed bin(17,0) dcl 412 set ref 285* 285* 291 294* 294* 299 311 312 ifnt 000105 automatic fixed bin(17,0) dcl 413 set ref 270* 270* 274 277 309 341 imem 000106 automatic fixed bin(17,0) dcl 414 set ref 318* 327* 327* 332 336 337 368 index builtin function dcl 432 in procedure "comp_font_" ref 182 190 index 20 based fixed bin(17,0) level 3 in structure "current_parms" dcl 12-209 in procedure "comp_font_" set ref 111 126 145 147* 162* index 1024 based fixed bin(17,0) level 4 in structure "text" dcl 12-49 in procedure "comp_font_" set ref 220* info 277 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_font_" info 161 based structure level 2 in structure "txtlin" dcl 12-161 in procedure "comp_font_" info 277 based structure level 3 in structure "hfcblk" dcl 12-250 in procedure "comp_font_" info 161 based structure level 2 in structure "ctl" dcl 12-157 in procedure "comp_font_" set ref 133 133 173 173 185 185 194 194 302 302 386 386 info 161 based structure level 2 in structure "text_entry" dcl 12-68 in procedure "comp_font_" info 277 based structure level 3 in structure "ftnhdr" dcl 7-10 in procedure "comp_font_" init_ps 43 based fixed bin(31,0) level 2 dcl 3-19 ref 74 init_stk 000107 automatic bit(1) unaligned dcl 415 set ref 32* 43* 212 input 116 based structure level 2 dcl 12-49 input_line 375 based varying char(1020) level 2 dcl 12-49 ref 222 ioa_ 000030 constant entry external dcl 13-70 ref 40 100 117 234 isiz 000110 automatic fixed bin(17,0) dcl 416 set ref 379* 379* 383 istk 000111 automatic fixed bin(17,0) dcl 417 set ref 73* 111* 112 117* 126* 127 127* 130 147 149 162 162* 165 220 221 234* left 1016 based structure level 3 in structure "ftnhdr" dcl 7-10 in procedure "comp_font_" left 12 based structure level 2 in structure "current_parms" dcl 12-209 in procedure "comp_font_" left 12 based structure level 2 in structure "footnote_parms" dcl 7-12 in procedure "comp_font_" left 1016 based structure level 3 in structure "text" dcl 12-49 in procedure "comp_font_" left 12 based structure level 2 in structure "default_parms" dcl 12-213 in procedure "comp_font_" left 1016 based structure level 3 in structure "hfcblk" dcl 12-250 in procedure "comp_font_" left 12 based structure level 2 in structure "text_parms" dcl 12-206 in procedure "comp_font_" leng 0(18) 000100 automatic fixed bin(9,0) level 2 packed unsigned unaligned dcl 406 set ref 31* line_area 776 based structure level 2 in structure "ftnhdr" dcl 7-10 in procedure "comp_font_" line_area based structure level 1 dcl 12-26 in procedure "comp_font_" line_area_ptr 000234 automatic pointer initial dcl 12-25 set ref 229* 230 12-25* linptr 10 based pointer array level 2 dcl 12-26 ref 230 load parameter bit(1) unaligned dcl 19 set ref 14 34 135 212 234* local_font 000112 automatic structure level 1 dcl 418 set ref 32* 75* 83 91 113* 150* 166 215 221 222 230 278* 362 mark 000100 automatic char(1) level 2 packed unaligned dcl 406 set ref 29* max_wsp 2 based fixed bin(17,0) level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 366* max_wsp 6 based fixed bin(17,0) level 2 in structure "font" dcl 6-68 in procedure "comp_font_" ref 366 med_sel based structure level 1 unaligned dcl 6-116 med_sel_p 000232 automatic pointer dcl 6-115 set ref 65* 67 67 67 medchar based varying char dcl 6-113 ref 355 medchar_sel_p 000230 automatic pointer dcl 6-109 set ref 353* 354 355 medsel based char(12) array unaligned dcl 6-36 set ref 56 56 67* 69* medsel_ptr 2 based pointer level 2 dcl 6-7 set ref 53 56* 56 56 67 69 medsel_table based structure level 1 unaligned dcl 6-86 medsel_table_ptr 000222 automatic pointer dcl 6-84 set ref 58* 61 62 65 medsel_table_r 77 based bit(18) level 2 dcl 3-19 ref 58 mem_name 16 000112 automatic char(32) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 194* 197* 199 320* 326* 326 327 mem_name 40 based char(32) array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 48* member based structure level 1 unaligned dcl 6-56 member_ptr 000216 automatic pointer dcl 6-55 set ref 152* 312* 315 327 327 332 337 368 member_r 124 based bit(18) array level 3 dcl 3-19 ref 312 memndx 26 000112 automatic fixed bin(17,0) level 2 dcl 418 set ref 336* memptr 30 based pointer level 2 in structure "fntstk_entry" dcl 5-6 in procedure "comp_font_" set ref 152 memptr 30 000112 automatic pointer level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 312* memptr 52 based pointer array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 46* min_wsp 4 based fixed bin(17,0) level 2 in structure "font" dcl 6-68 in procedure "comp_font_" ref 364 min_wsp based fixed bin(17,0) level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 364* mod builtin function dcl 432 in procedure "comp_font_" ref 162 mod builtin function dcl 14-26 in procedure "allocate" ref 14-40 name 40 based varying char(65) level 3 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 270 name 5 based char(32) array level 3 in structure "member" packed unaligned dcl 6-56 in procedure "comp_font_" ref 315 327 name 32 000112 automatic varying char(65) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 77* 85* 97* 100* 199* 234* 270 285 302* name 54 based varying char(65) array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 48* name 125 based char(32) array level 3 in structure "comp_dvt" dcl 3-19 in procedure "comp_font_" ref 285 294 name 32 based varying char(65) level 2 in structure "fntstk_entry" dcl 5-6 in procedure "comp_font_" set ref 117* ndx 1 based fixed bin(17,0) level 2 dcl 6-7 set ref 309* null builtin function dcl 432 in procedure "comp_font_" ref 46 53 217 6-13 12-25 12-35 344 null builtin function dcl 14-26 in procedure "allocate" ref 14-43 14-43 14-45 option based structure level 1 dcl 9-5 option_ptr 164 based pointer level 3 dcl 13-23 ref 302 oput based structure level 1 unaligned dcl 6-92 oput_p 000224 automatic pointer dcl 6-91 set ref 347* 349 350 353 357 oput_r based bit(18) level 2 dcl 6-68 ref 347 p 1 000100 automatic fixed bin(31,0) level 2 packed unaligned dcl 406 set ref 81* 89* 209* page based structure level 1 dcl 10-11 page_header based structure level 1 dcl 10-27 page_parms based structure level 1 dcl 10-86 page_ptr 170 based pointer level 3 dcl 13-23 ref 117 parms 1004 based structure level 2 dcl 12-49 pointer builtin function dcl 432 ref 58 65 312 337 347 353 360 368 ptr 4 based pointer array level 2 in structure "fnttbldata" dcl 6-7 in procedure "comp_font_" set ref 151 270 277 341* ptr 000026 external static pointer level 2 in structure "compstat$compconst" dcl 13-14 in procedure "comp_font_" ref 40 45 46 46 48 48 48 48 53 56 56 56 56 58 58 65 67 69 74 74 75 79 79 83 87 87 91 92 100 111 112 117 117 126 127 130 133 133 145 145 147 149 151 154 162 162 165 173 173 185 185 194 194 217 220 221 222 222 226 229 234 270 270 274 277 285 285 291 294 294 299 302 302 302 309 309 312 312 337 340 341 347 353 360 368 370 386 386 393 ptr builtin function dcl 14-26 in procedure "allocate" ref 14-47 ptrs 3742 based structure level 2 in structure "shared" dcl 11-7 in procedure "comp_font_" ptrs 126 based structure level 2 in structure "const" dcl 13-23 in procedure "comp_font_" ref_r 1 based bit(18) array level 2 dcl 6-86 ref 62 65 rel_units 2 based fixed bin(17,0) level 2 in structure "font" dcl 6-68 in procedure "comp_font_" ref 363 rel_units 3 based fixed bin(17,0) level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 154 363* 393 replptr 1066 based pointer array level 2 dcl 6-14 set ref 344* 354* scale 000032 constant fixed bin(31,0) initial array dcl 422 set ref 173* shared based structure level 1 dcl 11-7 shared_ptr 200 based pointer level 3 dcl 13-23 ref 40 100 117 154 217 220 221 222 222 226 229 234 393 size 54 based fixed bin(31,0) level 2 in structure "fntstk_entry" dcl 5-6 in procedure "comp_font_" set ref 117 117 size builtin function dcl 432 in procedure "comp_font_" ref 56 56 340 340 370 370 size 76 based fixed bin(31,0) array level 4 in structure "default_parms" dcl 12-213 in procedure "comp_font_" set ref 74* size 54 000112 automatic fixed bin(31,0) level 2 in structure "local_font" dcl 418 in procedure "comp_font_" set ref 81 89 100 100 154 173* 209 234 234 379 391* 393 size_r 2 based bit(18) array level 3 dcl 6-56 ref 368 sizel based structure level 1 unaligned dcl 6-103 ref 372 sizel_p 000226 automatic pointer dcl 6-102 set ref 368* 369 372 372 375* 376 379 379 383 391 siztbl_array based fixed bin(35,0) array dcl 425 set ref 370 370 372* siztbl_ptr 4 based pointer level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 371* 375 siztbl_ptr 000172 automatic pointer dcl 426 in procedure "comp_font_" set ref 370* 370 370 371 372 siztbl_size 000174 automatic fixed bin(17,0) dcl 427 set ref 369* 370 370 372 str 1 based char level 2 packed unaligned dcl 6-116 ref 67 str_l based fixed bin(17,0) level 2 dcl 6-116 ref 67 67 substr builtin function dcl 432 ref 67 176 187 sws 4113 based structure level 2 dcl 11-7 text based structure level 1 dcl 12-49 text_area_ptr 000236 automatic pointer initial dcl 12-35 set ref 12-35* text_entry based structure level 1 dcl 12-68 text_header based structure level 1 dcl 12-163 text_parms based structure level 1 dcl 12-206 text_parms_ptr 206 based pointer level 3 dcl 13-23 ref 87 92 translator_temp_$get_next_segment 000032 constant entry external dcl 14-37 ref 14-42 txtlin based structure level 1 dcl 12-161 type 0(09) 000100 automatic char(1) level 2 packed unaligned dcl 406 set ref 30* type_font constant char(1) initial unaligned dcl 2-90 ref 30 units based fixed bin(17,0) array dcl 6-81 in procedure "comp_font_" ref 360 units 3066 based fixed bin(17,0) array level 2 in structure "fnttbl" dcl 6-14 in procedure "comp_font_" set ref 154 343* 360* 393 units_r 1 based bit(18) level 2 dcl 6-68 ref 360 unspec builtin function dcl 432 set ref 32* 45* 372* 372 val 1 based fixed bin(31,0) array level 2 dcl 6-103 ref 379 391 val_ct based fixed bin(17,0) level 2 dcl 6-103 ref 369 372 376 379 383 verify builtin function dcl 432 ref 170 what_r 1(18) based bit(18) array level 3 packed unaligned dcl 6-92 ref 350 353 which 1 based fixed bin(17,0) array level 3 packed unaligned dcl 6-92 ref 357 white 4066 based bit(1) array level 2 packed unaligned dcl 6-14 set ref 345* 355* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACK internal static char(1) initial unaligned dcl 8-6 BAD_CHAR internal static char(1) initial unaligned dcl 405 BEL internal static char(1) initial unaligned dcl 8-6 BRS internal static char(1) initial unaligned dcl 8-6 BSP internal static char(1) initial unaligned dcl 8-6 CAN internal static char(1) initial unaligned dcl 8-6 CR internal static char(1) initial unaligned dcl 8-6 DC2 internal static char(1) initial unaligned dcl 8-6 DC3 internal static char(1) initial unaligned dcl 8-6 DC4 internal static char(1) initial unaligned dcl 8-6 DCxx_p automatic pointer dcl 2-8 DEL internal static char(1) initial unaligned dcl 8-6 DEVIT internal static char(1) initial unaligned dcl 8-6 DLE internal static char(1) initial unaligned dcl 8-6 EM internal static char(1) initial unaligned dcl 8-6 EM_ internal static char(1) initial unaligned dcl 8-6 EMdash internal static char(1) initial unaligned dcl 8-6 ENQ internal static char(1) initial unaligned dcl 8-6 EN_ internal static char(1) initial unaligned dcl 8-6 ENd internal static char(1) initial unaligned dcl 8-6 EOT internal static char(1) initial unaligned dcl 8-6 ESC internal static char(1) initial unaligned dcl 8-6 ETB internal static char(1) initial unaligned dcl 8-6 ETX internal static char(1) initial unaligned dcl 8-6 FF internal static char(1) initial unaligned dcl 8-6 FS internal static char(1) initial unaligned dcl 8-6 GS internal static char(1) initial unaligned dcl 8-6 HAIR internal static char(1) initial unaligned dcl 8-6 HLF internal static char(1) initial unaligned dcl 8-6 HLR internal static char(1) initial unaligned dcl 8-6 HT internal static char(1) initial unaligned dcl 8-6 HUGE internal static char(1) initial unaligned dcl 8-6 LF internal static char(1) initial unaligned dcl 8-6 LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 12-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 13-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 13-18 MEDIUM internal static char(1) initial unaligned dcl 8-6 NAK internal static char(1) initial unaligned dcl 8-6 NL internal static char(1) initial unaligned dcl 8-6 NUL internal static char(1) initial unaligned dcl 8-6 PAD internal static char(1) initial unaligned dcl 8-6 PI internal static char(1) initial unaligned dcl 8-6 PS internal static char(1) initial unaligned dcl 8-6 RRS internal static char(1) initial unaligned dcl 8-6 RS internal static char(1) initial unaligned dcl 8-6 SI internal static char(1) initial unaligned dcl 8-6 SO internal static char(1) initial unaligned dcl 8-6 SOH internal static char(1) initial unaligned dcl 8-6 STROKE internal static char(1) initial unaligned dcl 8-6 STX internal static char(1) initial unaligned dcl 8-6 SUB internal static char(1) initial unaligned dcl 8-6 SYN internal static char(1) initial unaligned dcl 8-6 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 12-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 12-47 THICK internal static char(1) initial unaligned dcl 8-6 THIN internal static char(1) initial unaligned dcl 8-6 US internal static char(1) initial unaligned dcl 8-6 VT internal static char(1) initial unaligned dcl 8-6 approx internal static char(1) initial unaligned dcl 8-6 bullet internal static char(1) initial unaligned dcl 8-6 col0 based structure level 1 dcl 1-37 comp_ 000000 constant entry external dcl 4-7 comp_art_ 000000 constant entry external dcl 4-8 comp_block_ctls_ 000000 constant entry external dcl 4-9 comp_break_ 000000 constant entry external dcl 4-11 comp_break_ctls_ 000000 constant entry external dcl 4-12 comp_ctls_ 000000 constant entry external dcl 4-14 comp_eject_page_ 000000 constant entry external dcl 4-15 comp_expr_eval_ 000000 constant entry external dcl 4-17 comp_extr_str_ 000000 constant entry external dcl 4-21 comp_fill_ 000000 constant entry external dcl 4-24 comp_font_ 000000 constant entry external dcl 4-25 comp_format_ctls_ 000000 constant entry external dcl 4-26 comp_get_file_$find 000000 constant entry external dcl 4-28 comp_get_file_$open 000000 constant entry external dcl 4-31 comp_head_page_ 000000 constant entry external dcl 4-33 comp_hft_ctls_ 000000 constant entry external dcl 4-35 comp_hft_ctls_$title 000000 constant entry external dcl 4-36 comp_init_$one 000000 constant entry external dcl 4-38 comp_init_$three 000000 constant entry external dcl 4-40 comp_init_$two 000000 constant entry external dcl 4-39 comp_insert_ctls_ 000000 constant entry external dcl 4-42 comp_make_page_ 000000 constant entry external dcl 4-44 comp_make_page_$cleanup 000000 constant entry external dcl 4-46 comp_measure_ 000000 constant entry external dcl 4-48 comp_read_$line 000000 constant entry external dcl 4-57 comp_report_$exact 000000 constant entry external dcl 4-64 comp_space_ 000000 constant entry external dcl 4-66 comp_tbl_ctls_ 000000 constant entry external dcl 4-68 comp_title_block_ 000000 constant entry external dcl 4-69 comp_update_symbol_ 000000 constant entry external dcl 4-71 comp_use_ref_ 000000 constant entry external dcl 4-74 comp_util_$add_text 000000 constant entry external dcl 4-75 comp_util_$escape 000000 constant entry external dcl 4-80 comp_util_$getblk 000000 constant entry external dcl 4-82 comp_util_$num_display 000000 constant entry external dcl 4-84 comp_util_$pageno 000000 constant entry external dcl 4-86 comp_util_$pictures 000000 constant entry external dcl 4-88 comp_util_$pop 000000 constant entry external dcl 4-91 comp_util_$push 000000 constant entry external dcl 4-92 comp_util_$relblk 000000 constant entry external dcl 4-94 comp_util_$replace_text 000000 constant entry external dcl 4-96 comp_util_$search_tree 000000 constant entry external dcl 4-98 comp_util_$set_bin 000000 constant entry external dcl 4-100 comp_util_$set_net_page 000000 constant entry external dcl 4-104 comp_util_$translate 000000 constant entry external dcl 4-106 comp_write_block_ 000000 constant entry external dcl 4-108 comp_write_page_ 000000 constant entry external dcl 4-110 compose_severity_ external static fixed bin(35,0) dcl 4-5 const_version internal static fixed bin(35,0) initial dcl 13-17 cright internal static char(1) initial unaligned dcl 8-6 ctl_line based varying char(1020) dcl 12-158 dagger internal static char(1) initial unaligned dcl 8-6 dbldag internal static char(1) initial unaligned dcl 8-6 dcctl based structure level 1 packed unaligned dcl 2-34 dclit based structure level 1 packed unaligned dcl 2-45 dclong1_len internal static fixed bin(17,0) initial dcl 2-62 dclong_len internal static fixed bin(17,0) initial dcl 2-62 dclong_val based structure level 1 packed unaligned dcl 2-54 dcshort1_len internal static fixed bin(17,0) initial dcl 2-75 dcshort_len internal static fixed bin(17,0) initial dcl 2-75 dcshort_val based structure level 1 packed unaligned dcl 2-67 dcxx based structure level 1 packed unaligned dcl 2-11 delmark internal static char(1) initial unaligned dcl 8-6 delta internal static char(1) initial unaligned dcl 8-6 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 11-126 flag_value based bit(1) unaligned dcl 11-132 ftnblk_data based structure level 1 dcl 7-5 hfcblk based structure level 1 dcl 12-250 hfcblk_ptr automatic pointer dcl 12-249 infin internal static char(1) initial unaligned dcl 8-6 init_page_parms based structure level 1 dcl 10-108 ioa_$nnl 000000 constant entry external dcl 13-70 iox_$error_output external static pointer dcl 13-74 iox_$user_input external static pointer dcl 13-74 iox_$user_output external static pointer dcl 13-74 j automatic fixed bin(17,0) dcl 410 just internal static bit(6) initial unaligned dcl 12-148 length builtin function dcl 432 lquote internal static char(1) initial unaligned dcl 8-6 lslnt internal static char(1) initial unaligned dcl 8-6 max builtin function dcl 432 max_cols internal static fixed bin(17,0) initial dcl 10-7 max_image_lines internal static fixed bin(17,0) initial dcl 10-5 max_text_lines internal static fixed bin(17,0) initial dcl 11-128 medchar_sel based structure level 1 unaligned dcl 6-110 min builtin function dcl 432 mode_string internal static char(16) initial unaligned dcl 11-129 modmark internal static char(1) initial unaligned dcl 8-6 multiply internal static char(1) initial unaligned dcl 8-6 nabla internal static char(1) initial unaligned dcl 8-6 name_chars internal static char(63) initial unaligned dcl 419 not_eq internal static char(1) initial unaligned dcl 8-6 num_value based fixed bin(31,0) dcl 11-133 oct031 internal static char(1) initial unaligned dcl 8-6 option_version internal static fixed bin(35,0) initial dcl 9-3 overbar internal static char(1) initial unaligned dcl 8-6 page_image based structure level 1 dcl 10-56 page_image_version internal static fixed bin(35,0) initial dcl 10-53 page_version internal static fixed bin(17,0) initial dcl 10-9 perpen internal static char(1) initial unaligned dcl 8-6 pi internal static char(1) initial unaligned dcl 8-6 pl_mi internal static char(1) initial unaligned dcl 8-6 prll internal static char(1) initial unaligned dcl 8-6 quadc internal static bit(6) initial unaligned dcl 12-148 quadi internal static bit(6) initial unaligned dcl 12-148 quadl internal static bit(6) initial unaligned dcl 12-148 quado internal static bit(6) initial unaligned dcl 12-148 quadr internal static bit(6) initial unaligned dcl 12-148 repl_str based structure level 1 unaligned dcl 6-30 repl_str_ptr automatic pointer dcl 6-29 replstr based varying char(256) dcl 6-33 rquote internal static char(1) initial unaligned dcl 8-6 save_shared based structure level 1 dcl 11-124 shared_version internal static fixed bin(35,0) initial dcl 11-5 siztbl based structure level 1 unaligned dcl 6-38 slash internal static char(1) initial unaligned dcl 8-6 square internal static char(1) initial unaligned dcl 8-6 string_area based fixed bin(17,0) array dcl 12-43 sup0 internal static char(1) initial unaligned dcl 8-6 sup1 internal static char(1) initial unaligned dcl 8-6 sup2 internal static char(1) initial unaligned dcl 8-6 sup3 internal static char(1) initial unaligned dcl 8-6 sup4 internal static char(1) initial unaligned dcl 8-6 sup5 internal static char(1) initial unaligned dcl 8-6 sup6 internal static char(1) initial unaligned dcl 8-6 sup7 internal static char(1) initial unaligned dcl 8-6 sup8 internal static char(1) initial unaligned dcl 8-6 sup9 internal static char(1) initial unaligned dcl 8-6 sys_info$max_seg_size external static fixed bin(18,0) dcl 13-80 tblkdata based structure level 1 dcl 12-5 text_area based structure level 1 dcl 12-36 tfore internal static char(1) initial unaligned dcl 8-6 theta internal static char(1) initial unaligned dcl 8-6 tmark internal static char(1) initial unaligned dcl 8-6 txtlinptr automatic pointer dcl 12-160 txtstr based varying char(1020) dcl 12-45 txtstrptr automatic pointer dcl 12-44 type_lit internal static char(1) initial unaligned dcl 2-90 type_slx internal static char(1) initial unaligned dcl 2-90 type_slxly internal static char(1) initial unaligned dcl 2-90 type_sly internal static char(1) initial unaligned dcl 2-90 type_sx internal static char(1) initial unaligned dcl 2-90 type_sxy internal static char(1) initial unaligned dcl 2-90 type_sy internal static char(1) initial unaligned dcl 2-90 type_unstart internal static char(1) initial unaligned dcl 2-90 type_unstop internal static char(1) initial unaligned dcl 2-90 type_v0lx internal static char(1) initial unaligned dcl 2-90 type_v0lxly internal static char(1) initial unaligned dcl 2-90 type_v0ly internal static char(1) initial unaligned dcl 2-90 type_v0x internal static char(1) initial unaligned dcl 2-90 type_v0xy internal static char(1) initial unaligned dcl 2-90 type_v0y internal static char(1) initial unaligned dcl 2-90 type_vlx internal static char(1) initial unaligned dcl 2-90 type_vlxly internal static char(1) initial unaligned dcl 2-90 type_vly internal static char(1) initial unaligned dcl 2-90 type_vx internal static char(1) initial unaligned dcl 2-90 type_vxy internal static char(1) initial unaligned dcl 2-90 type_vy internal static char(1) initial unaligned dcl 2-90 type_wait internal static char(1) initial unaligned dcl 2-90 units_ptr automatic pointer dcl 6-80 unstart_signal internal static char(3) initial unaligned dcl 2-39 unstop_signal internal static char(3) initial unaligned dcl 2-39 vrule internal static char(1) initial unaligned dcl 8-6 wait_signal internal static char(3) initial unaligned dcl 2-39 NAMES DECLARED BY EXPLICIT CONTEXT. abrtf 002203 constant entry external dcl 246 abrtn 002170 constant entry external dcl 242 allocate 003233 constant entry internal dcl 14-21 ref 56 340 370 comp_font_ 000200 constant entry external dcl 14 dbf 002255 constant entry external dcl 262 dbn 002242 constant entry external dcl 258 dtf 002230 constant entry external dcl 254 dtn 002215 constant entry external dcl 250 error_result 001137 constant label dcl 135 ref 306 load_font 002266 constant entry internal dcl 267 ref 78 86 98 204 no_font 002434 constant label dcl 302 ref 332 return 001732 constant label dcl 207 ref 107 142 NAMES DECLARED BY CONTEXT OR IMPLICATION. after builtin function ref 193 dec builtin function ref 100 100 117 117 234 234 divide builtin function ref 100 100 117 117 154 234 234 393 hbound builtin function ref 127 162 ltrim builtin function ref 176 187 193 rank builtin function ref 154 393 round builtin function ref 100 100 117 117 234 234 rtrim builtin function ref 193 199 199 326 translate builtin function ref 294 327 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4106 4142 3734 4116 Length 4654 3734 34 476 152 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_font_ 358 external procedure is an external procedure. load_font internal procedure shares stack frame of external procedure comp_font_. allocate internal procedure shares stack frame of external procedure comp_font_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 abort_sw comp_font_ 000011 db_sw comp_font_ 000012 dt_sw comp_font_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_font_ 000100 DCFS comp_font_ 000102 i comp_font_ 000103 ibuf comp_font_ 000104 ifam comp_font_ 000105 ifnt comp_font_ 000106 imem comp_font_ 000107 init_stk comp_font_ 000110 isiz comp_font_ 000111 istk comp_font_ 000112 local_font comp_font_ 000172 siztbl_ptr comp_font_ 000174 siztbl_size comp_font_ 000212 fntstk_eptr comp_font_ 000214 fnttbl_ptr comp_font_ 000216 member_ptr comp_font_ 000220 font_ptr comp_font_ 000222 medsel_table_ptr comp_font_ 000224 oput_p comp_font_ 000226 sizel_p comp_font_ 000230 medchar_sel_p comp_font_ 000232 med_sel_p comp_font_ 000234 line_area_ptr comp_font_ 000236 text_area_ptr comp_font_ 000266 Nwords allocate 000270 P allocate 000272 code allocate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return mod_fx1 signal shorten_stack ext_entry ext_entry_desc trunc_fx1 round_fx1 set_cs_eis real_to_real_tr divide_fx1 divide_fx3 index_after_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_read_$name comp_read_$number comp_report_ comp_report_$ctlstr comp_util_$display ioa_ translator_temp_$get_next_segment THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. compstat$compconst LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 13 000166 12 25 000170 12 35 000171 14 000174 28 000214 29 000221 30 000223 31 000225 32 000227 34 000233 37 000240 40 000246 43 000274 45 000276 46 000305 48 000344 53 000442 56 000447 58 000463 61 000473 62 000503 65 000505 67 000513 68 000523 69 000524 70 000536 73 000540 74 000541 75 000550 77 000553 78 000560 79 000561 80 000571 81 000573 82 000576 83 000602 85 000605 86 000611 87 000612 88 000622 89 000624 90 000627 91 000633 92 000636 93 000640 97 000641 98 000651 100 000652 107 000734 111 000735 112 000743 113 000746 117 000751 123 001050 126 001057 127 001066 130 001071 133 001075 135 001137 139 001150 142 001156 145 001157 147 001162 149 001164 150 001167 151 001172 152 001177 154 001202 157 001216 162 001217 165 001233 166 001236 169 001241 170 001251 173 001264 176 001335 177 001374 182 001375 185 001410 187 001455 190 001515 193 001532 194 001605 196 001653 197 001655 199 001660 201 001727 202 001730 204 001731 207 001732 209 001734 210 001737 212 001754 215 001764 217 001770 220 002000 221 002003 222 002010 226 002020 229 002023 230 002026 234 002032 240 002165 242 002167 244 002176 245 002201 246 002202 248 002211 249 002213 250 002214 252 002223 253 002226 254 002227 256 002236 257 002240 258 002241 260 002250 261 002253 262 002254 264 002263 265 002265 267 002266 270 002267 272 002315 274 002317 277 002325 278 002331 279 002334 285 002335 287 002360 291 002362 294 002371 297 002422 299 002425 302 002434 306 002514 309 002515 311 002522 312 002524 315 002533 318 002540 319 002542 320 002544 321 002547 325 002550 326 002551 327 002573 330 002621 332 002624 336 002627 337 002630 340 002644 341 002660 343 002670 344 002713 345 002730 347 002743 349 002752 350 002761 353 002765 354 002773 355 002776 357 003010 359 003015 360 003017 362 003032 363 003035 364 003040 365 003042 366 003044 368 003046 369 003057 370 003062 371 003075 372 003100 375 003114 376 003117 379 003122 381 003134 383 003136 386 003141 389 003207 391 003210 393 003212 396 003232 14 21 003233 14 40 003235 14 41 003243 14 42 003247 14 43 003262 14 44 003272 14 45 003275 14 47 003305 14 48 003314 14 49 003320 14 50 003326 ----------------------------------------------------------- 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