COMPILATION LISTING OF SEGMENT comp_space_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1007.8 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 add white space to the output */ 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 13 14 comp_space_: 15 proc (a_space, block_ptr, txtflg, notrimflg, cbarflg, filspcflg); 16 17 /* PARAMETERS */ 18 19 dcl a_space fixed bin (31); /* white space to be added */ 20 dcl block_ptr ptr; /* ptr to block to which to the space. 21* If this pointer is null, then a 22* white space block is to added to the 23* current text column */ 24 dcl txtflg bit (1); /* 1 = text area, 0 = page hdr/ftr */ 25 dcl notrimflg bit (1); /* 1 = WS is to be untrimable */ 26 dcl cbarflg bit (1); /* 1 = add cbars if active */ 27 dcl filspcflg bit (1); /* 1 = table/art fill space */ 28 29 /* LOCAL STORAGE */ 30 31 dcl artsz fixed init (0); /* size of artwork for debug */ 32 dcl blkptr ptr; /* local block pointer */ 33 dcl 1 block aligned like text based (blkptr); 34 /* block to which WS is to be added */ 35 dcl ercd fixed (35); /* system error code */ 36 dcl (i, j) fixed; /* working index */ 37 dcl new_block bit (1); /* 1 = new block being added */ 38 dcl space fixed bin (31); /* local space value, adjusted for 39* device resolution */ 40 /* the white space entry */ 41 dcl 1 space_line aligned like text_entry; 42 dcl space_text char (4) varying /* null text for the entry */ 43 static options (constant) init (""); 44 dcl th_space bit (1); /* space adds to header */ 45 dcl tspace fixed bin (31); /* working value */ 46 47 dcl (addr, copy, fixed, index, length, max, null, size, substr) 48 builtin; 49 50 dcl com_err_ entry options (variable); 51 dcl iox_$put_chars entry (ptr, ptr, fixed (35), fixed (35)); 52 53 new_block, th_space = "0"b; 54 55 space = comp_dvt.min_lead /* adjust space to match the device */ 56 * round (divide (a_space, comp_dvt.min_lead, 31, 1), 0); 57 58 blkptr = block_ptr; /* copy the given block pointer */ 59 60 if shared.table_mode /* set table info */ 61 then 62 do; 63 tblfmtptr = tbldata.fmt (tbldata.ndx).ptr; 64 tblcolptr = tblfmt.colptr (tblfmt.ccol); 65 end; 66 67 if shared.bug_mode /* debugging stuff */ 68 then 69 do; 70 call ioa_$nnl ("space: (spc=^f ^f^[ text^]^[ notrim^]", 71 show (a_space, 12000), show (space, 12000), txtflg, notrimflg); 72 73 if blkptr ^= null () 74 then 75 do; 76 call ioa_$nnl ("^[^[ |^]^[ *^]^;^2s^] ^a=^d e^d u^f(^f)", cbarflg, 77 block.parms.cbar.add, block.parms.cbar.del, block.blktype, 78 block.blkndx, block.hdr.count, show (block.hdr.used, 12000), 79 show (block.hdr.trl_ws, 12000)); 80 81 if shared.table_mode /* & block.hdr.tblblk*/ 82 then call ioa_$nnl (" tbl=^d/^d d^f/^f", tblfmt.ccol, tbldata.ndx, 83 show (tblcol.depth, 12000), 84 show (tblfmt.maxdepth, 12000)); 85 86 call ioa_$nnl ("^[ ftn=^d/^f^;^2s^]^[ A^]^[ MOD^])", 87 (block.hdr.ftn.ct > 0), block.hdr.ftn.ct, 88 show (block.hdr.ftn.usd, 12000), block.hdr.art, 89 block.hdr.modified); 90 end; 91 92 else 93 do; 94 if shared.table_mode /* & block.hdr.tblblk*/ 95 then call ioa_$nnl (" tbl=^d/^d d^f/^f", tblfmt.ccol, tbldata.ndx, 96 show (tblcol.depth, 12000), 97 show (tblfmt.maxdepth, 12000)); 98 call ioa_$nnl ("^[ |^]^[ *^])", current_parms.cbar.add, 99 current_parms.cbar.del); 100 end; 101 102 call ioa_$nnl ("^/^5x(col=^d b^d u^f(^f)/^f(^f)^[ ftn=^d/^f^]", 103 page.hdr.col_index, col.hdr.blkct, show (col.hdr.used, 12000), 104 show (col.hdr.pspc, 12000), show (col.hdr.net, 12000), 105 show (col.depth_adj, 12000), (col.hdr.ftn.ct > 0), col.hdr.ftn.ct, 106 show (col.hdr.ftn.usd, 12000)); 107 108 call ioa_$nnl (" pag=^a c^d u^f(^f)/^f", page.hdr.pageno, 109 page.hdr.col_count, show (page.hdr.used, 12000), 110 show (page.hdr.hdspc, 12000), show (page.hdr.net, 12000)); 111 112 if col0.hdr.ftn.ct > 0 113 then call ioa_$nnl (" ftn=^d/^f", col0.hdr.ftn.ct, 114 show (col0.hdr.ftn.usd, 12000)); 115 call ioa_ ("^[ pi=^d ^f^])", (shared.picture.count > 0), 116 shared.picture.count, show (shared.picture.space, 12000)); 117 end; /**/ 118 /* if adding to the current block */ 119 if blkptr = shared.blkptr & shared.blkptr ^= null 120 then 121 do; /**/ 122 /* add space to a pending header? */ 123 if txtflg & ^shared.inserting_hfc & text.parms.hdrptr ^= null () 124 /**** then if text.parms.hdrptr -> hfcblk.hdr.count > 0*/ 125 then 126 do; 127 blkptr = text.parms.hdrptr; 128 th_space = "1"b; 129 end; 130 /**** else ;*/ 131 132 else if text.input_line ^= "" 133 then call comp_break_ (format_break, 0); 134 end; 135 136 if space = 0 /* no lines wanted */ 137 then goto return_; 138 139 /* set up the space line */ 140 real_space: 141 space_line = text_entry; 142 space_line.info = ctl.info; /* copy input line info */ 143 space_line.title = "0"b; /* reset the title flag */ 144 space_line.white = "1"b; /* set the WS flag */ 145 space_line.no_trim = notrimflg; /* set trim flag */ 146 space_line.ptr = addr (space_text); /* some null text */ 147 space_line.width = 0; /* having no width */ 148 space_line.lmarg = 0; 149 space_line.rmarg = col.margin.right;/* typographic stuff */ 150 space_line.cur.font, space_line.font = 151 current_parms.fntstk.entry (current_parms.fntstk.index); 152 space_line.quad = quadl; 153 154 /* if a white block is wanted */ 155 if blkptr = null () 156 then 157 do; /* head page if necessary */ 158 if ^(option.galley_opt | page.hdr.headed) 159 then call comp_head_page_ (0); /**/ 160 /* get a block */ 161 call comp_util_$getblk (page.hdr.col_index, blkptr, "ws", 162 addr (current_parms), "0"b); 163 block_ptr, shared.blkptr = blkptr; 164 165 text.hdr.white = "1"b; /* make ws block current block */ 166 new_block = "1"b; /* set the new block flag */ 167 /* insert pending text title */ 168 if text.parms.hdrptr ^= null & ^shared.inserting_hfc 169 then 170 do; 171 text.hdr.white = text.parms.hdrptr -> hfcblk.hdr.white; 172 if ^text.hdr.white 173 then text.blktype = "tx"; 174 call comp_title_block_ (text.parms.hdrptr); 175 end; /**/ 176 /* set trim flag */ 177 text.hdr.no_trim = notrimflg; /* so artwork space gets counted */ 178 space_line.art = text.parms.art; 179 180 if cbarflg 181 then 182 do; 183 space_line.cbar.add = current_parms.cbar.add; 184 space_line.cbar.del = current_parms.cbar.del; 185 if current_parms.cbar.del 186 then shared.cbar_type = ""; 187 current_parms.cbar.del = "0"b; 188 text.hdr.modified = 189 (text.hdr.modified | space_line.cbar.add 190 | space_line.cbar.del); 191 end; 192 end; 193 194 /* adding space to current block */ 195 else 196 do; 197 space_line.art = block.parms.art; 198 space_line.keep = block.parms.keep; 199 200 if cbarflg /* set cbar flags */ 201 then 202 do; 203 space_line.cbar.add = block.parms.cbar.add; 204 space_line.cbar.del = block.parms.cbar.del; 205 if block.parms.cbar.del 206 then shared.cbar_type = ""; 207 block.parms.cbar.del = "0"b; 208 block.hdr.modified = 209 (block.hdr.modified | space_line.cbar.add 210 | space_line.cbar.del); 211 end; 212 end; /**/ 213 /* make individual entries */ 214 /* for artwork or change bars */ 215 if (space_line.cbar.add | space_line.art 216 /* and for table blocks if the */ 217 /* format isnt in context mode */ 218 | shared.table_mode & block.hdr.tblblk & ^tblfmt.context) 219 then 220 do; 221 tspace = space; /* set local value */ 222 223 if tspace >= 12000 224 then 225 do; 226 space_line.linespace = 12000; 227 do i = 1 to divide (tspace, 12000, 17, 0); 228 call comp_util_$add_text (blkptr, "0"b, "0"b, "0"b, 229 block.input.oflo, addr (space_line)); 230 if th_space 231 then text.parms.hdrptr = blkptr; 232 tspace = tspace - 12000; 233 end; 234 end; 235 236 if tspace > 0 237 then 238 do; 239 space_line.linespace = tspace; 240 call comp_util_$add_text (blkptr, "0"b, "0"b, "0"b, 241 block.input.oflo, addr (space_line)); 242 if th_space 243 then text.parms.hdrptr = blkptr; 244 end; 245 end; 246 247 else /* make one entry */ 248 do; 249 space_line.linespace = space; 250 call comp_util_$add_text (blkptr, "0"b, "0"b, "0"b, block.input.oflo, 251 addr (space_line)); 252 if th_space 253 then text.parms.hdrptr = blkptr; 254 end; 255 256 /**** if (block.hdr.colno >= 0 /* if block belongs to a column */ 257 /**** & ^filspcflg) /* & isnt table filler */ 258 /**** & block.blktype ^= "ph" /* and isnt the page header */ 259 /**** then col.hdr.pspc = col.hdr.pspc + space;*/ 260 261 return_: 262 if shared.bug_mode 263 then 264 do; 265 call ioa_$nnl ("^5x(space: ^a=^d e^d u^f(^f)", block.blktype, 266 block.blkndx, block.hdr.count, show (block.hdr.used, 12000), 267 show (block.hdr.trl_ws, 12000)); 268 269 if shared.table_mode /* & block.hdr.tblblk*/ 270 then call ioa_$nnl (" tbl=^d/^d d^f/^f", tblfmt.ccol, tbldata.ndx, 271 show (tblcol.depth, 12000), show (tblfmt.maxdepth, 12000)); 272 273 call ioa_$nnl ("^[ ftn^d ^f^;^2s^]^[ A^]^[ MOD^])", 274 (block.hdr.ftn.ct > 0), block.hdr.ftn.ct, 275 show (block.hdr.ftn.usd, 12000), block.hdr.art, 276 block.hdr.modified); 277 278 call ioa_$nnl ("^/^-(col=^d b^d u^f(^f)/^f(^f)^[ ftn=^d/^f^;^2s^] " 279 || "pag=^a c^d u^f(^f)/^f", page.hdr.col_index, col.hdr.blkct, 280 show (col.hdr.used, 12000), show (col.hdr.pspc, 12000), 281 show (col.hdr.net, 12000), show (col.depth_adj, 12000), 282 (col.hdr.ftn.ct > 0), col.hdr.ftn.ct, 283 show (col.hdr.ftn.usd, 12000), page.hdr.pageno, 284 page.hdr.col_count, show (page.hdr.used, 12000), 285 show (page.hdr.hdspc, 12000), show (page.hdr.net, 12000)); 286 287 call ioa_ ("^[ pi=^d ^f^])", (shared.picture.count > 0), 288 shared.picture.count, show (shared.picture.space, 12000)); 289 end; 290 291 show: 292 proc (datum, scale) returns (fixed dec (11, 3)); 293 dcl datum fixed bin (31); 294 dcl scale fixed bin (31); 295 296 return (round (dec (round (divide (datum, scale, 31, 11), 10), 11, 4), 3)); 297 end show; 298 1 1 /* BEGINE INCLUDE FILE comp_brktypes.incl.pl1 */ 1 2 1 3 /* Written - 4/18 - EJW 1 4* 1 5* Defines constants for all the types of text breaks in compose */ 1 6 1 7 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 8 1 9 dcl ( 1 10 format_break init (0), 1 11 block_break init (1), 1 12 column_break init (2), 1 13 page_break init (3), 1 14 need_break init (4), 1 15 footnote_break init (5), 1 16 footer_break init (7) 1 17 ) fixed bin static options (constant); 1 18 1 19 /* END INCLUDE FILE comp_brktypes.incl.pl1 */ 299 2 1 /* BEGIN INCLUDE FILE comp_column.incl.pl1 */ 2 2 2 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 4 2 5 dcl 1 col /* the text column */ 2 6 aligned based (shared.colptr), 2 7 2 blkptr (100) ptr, /* pointers to text blocks */ 2 8 2 depth_adj fixed bin (31), /* for variable start depth */ 2 9 2 ftrptr ptr, /* -> column footer */ 2 10 2 ftrusd fixed bin (31), /* column footer space used */ 2 11 2 gutter fixed bin (31), /* column separation */ 2 12 2 hdr like colhdr, /* column control stuff */ 2 13 2 hdrptr ptr, /* -> column header */ 2 14 2 hdrusd fixed bin (31), /* column header space used */ 2 15 2 margin, /* margin settings for column */ 2 16 3 left fixed bin (31), 2 17 3 right fixed bin (31), 2 18 2 parms, /* text parms for the column */ 2 19 3 measure fixed bin (31); /* column width */ 2 20 2 21 dcl 1 colhdr aligned based (const.colhdrptr), 2 22 /* an empty column header */ 2 23 2 balblk fixed bin, /* block to begin column balancing */ 2 24 2 baldepth fixed bin (31), /* page depth at balance point */ 2 25 2 balftn, /* footnotes at balance point */ 2 26 3 ct fixed bin, /* count */ 2 27 3 usd fixed bin (31), /* space used */ 2 28 3 blkndx (40) fixed bin, /* block index values */ 2 29 2 balusd fixed bin (31), /* space used up to balance point */ 2 30 2 blkct fixed bin, /* text block count */ 2 31 2 depth fixed bin (31), /* current page depth in the column */ 2 32 2 ftn like balftn, /* footnotes */ 2 33 2 pspc fixed bin (31), /* current white space */ 2 34 2 net fixed bin (31), /* net usable space in the column */ 2 35 2 used fixed bin (31); /* space used in this column */ 2 36 /* for quick reference */ 2 37 dcl 1 col0 aligned like col based (page.column_ptr (0)); 2 38 2 39 /* END INCLUDE FILE comp_column.incl.pl1 */ 300 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 */ 301 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 */ 302 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 */ 303 6 1 /* BEGIN INCLUDE FILE comp_option.incl.pl1 */ 6 2 6 3 dcl option_version fixed bin (35) static options (constant) init (2); 6 4 6 5 dcl 1 option aligned based (const.option_ptr), /* program options */ 6 6 2 version fixed bin (35), 6 7 /* Options with parameters */ 6 8 (2 argument_opt, /* -argument option flag */ 6 9 2 cbar_opt, /* -change_bars option flag */ 6 10 2 cbar_art_opt, /* -change_bars_art option flag */ 6 11 2 debug_opt, /* -debug option flag */ 6 12 2 db_all_opt, /* -debug_all option flag */ 6 13 2 db_file_opt, /* -debug_file option flag */ 6 14 2 device_opt, /* -device option flag */ 6 15 2 execute_opt, /* -execute option flag */ 6 16 2 from_opt, /* -from option flag */ 6 17 2 galley_opt, /* -galley option flag */ 6 18 2 hyph_opt, /* -hyphenation option flag */ 6 19 2 indent_opt, /* -indent option flag */ 6 20 2 input_file_opt, /* -input_file option flag */ 6 21 2 linespace_opt, /* -linespace option flag */ 6 22 2 output_file_opt, /* -output_file option flag */ 6 23 2 pages_opt, /* -pages option flag */ 6 24 2 page_chng_opt, /* -pages_changed option flag */ 6 25 2 parameter_opt, /* -parameter option flag */ 6 26 2 passes_opt, /* -passes option flag */ 6 27 2 tdir_opt, /* -temp_dir option flag */ 6 28 2 to_opt, /* -to option flag */ 6 29 /* Options without parameters */ 6 30 2 annot_opt, /* -annotate */ 6 31 2 brief_opt, /* -brief option flag */ 6 32 2 check_opt, /* -check option flag */ 6 33 2 cws_opt, /* -cws option flag */ 6 34 2 db_pause_opt, /* -debug_pause option flag */ 6 35 2 noart_opt, /* -noart option flag */ 6 36 2 nobell_opt, /* -no_bell option flag */ 6 37 2 nofill_opt, /* -nofill option flag */ 6 38 2 nohit_opt, /* -nohit option flag */ 6 39 2 number_opt, /* -number option flag */ 6 40 2 number_append_opt, /* -number_append option flag */ 6 41 2 number_brief_opt, /* -number_brief option flag */ 6 42 2 stop_opt, /* -stop option flag */ 6 43 2 wait_opt) unal bit (1), /* -wait option flag */ 6 44 2 MBZ bit (2) unal, 6 45 /* Optional parameters */ 6 46 2 arg_count fixed bin, /* count of -ag values */ 6 47 2 cbar, /* change bar data */ 6 48 3 level char (1), /* change level character (ASCII NUL) */ 6 49 3 place char (1), /* placement character */ 6 50 3 space fixed bin (31), /* extra left margin space needed */ 6 51 3 left, /* left margin mark data */ 6 52 4 sep fixed bin (31), /* separation */ 6 53 4 width fixed bin (31), /* mark width */ 6 54 4 mark char (80) varying, /* the left margin mark */ 6 55 3 right, /* right margin mark data */ 6 56 4 sep fixed bin (31), /* separation */ 6 57 4 width fixed bin (31), /* mark width */ 6 58 4 mark char (80) varying, /* the right margin mark */ 6 59 3 del, /* deletion mark data */ 6 60 4 sep fixed bin (31), /* separation */ 6 61 4 width fixed bin (31), /* mark width */ 6 62 4 mark char (80) varying, /* the deletion mark */ 6 63 2 db_after_line fixed bin (35), /* source line for enabling insert debug */ 6 64 2 db_before_line fixed bin (35), /* source line for disabling insert debug */ 6 65 2 db_file char (200) var, /* file pathanme for debug */ 6 66 2 db_file_after fixed bin (35), /* debug file starting line */ 6 67 2 db_line_end fixed bin (35), /* final line for -debug output */ 6 68 2 db_line_strt fixed bin (35), /* initial line for -debug output */ 6 69 2 device char (32) varying, /* output device */ 6 70 2 extra_indent fixed bin (31), /* extra indent value */ 6 71 2 hyph_size fixed bin (31), /* least word part size for hyphenation */ 6 72 2 line_1 fixed bin (35), /* initial line for output */ 6 73 2 line_2 fixed bin (35), /* final line for output */ 6 74 2 linespace fixed bin (31), /* line spacing value */ 6 75 2 pglstct fixed bin (35), /* number of page list entries */ 6 76 2 pglstndx fixed bin (35), /* index for -pages list */ 6 77 2 pglst (0:49), /* list of requested pages */ 6 78 3 from char (32) var, 6 79 3 to char (32) var, 6 80 2 parameter char (80) varying, /* parameter from command line */ 6 81 2 passes fixed bin, /* passes remaining */ 6 82 2 pgc_select char (1) aligned; /* addendum key to control change page printing - init = NUL */ 6 83 6 84 /* END INCLUDE FILE comp_option.incl.pl1 */ 6 85 304 7 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 4 7 5 dcl max_image_lines 7 6 fixed static options (constant) init (1000); 7 7 dcl max_cols fixed static options (constant) init (20); 7 8 7 9 dcl page_version fixed bin static options (constant) init (5); 7 10 /* composed page structure */ 7 11 dcl 1 page aligned based (const.page_ptr), 7 12 2 version fixed bin, /* version of this structure */ 7 13 2 parms aligned like page_parms, 7 14 /* page formatting parameters */ 7 15 2 hdr aligned like page_header, 7 16 /* page control stuff */ 7 17 2 image_ptr ptr, /* pointer to the madeup page image */ 7 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 7 19 2 col_image_ptr 7 20 (-2:21) ptr; /* pointers to column images */ 7 21 /* col -1 is for line numbers and */ 7 22 /* left margin change bars; */ 7 23 /* col -2 is for */ 7 24 /* right margin change bars */ 7 25 /* and/or annotation * / 7 26* /* page control stuff */ 7 27 dcl 1 page_header aligned based (const.page_header_ptr), 7 28 2 sws, 7 29 3 art bit (1) unal, /* 1 = header/footer art */ 7 30 3 blankpage 7 31 bit (1) unal, /* 1 = intentional blank page */ 7 32 3 frontpage 7 33 bit (1) unal, /* 1 = odd page number */ 7 34 3 headed bit (1) unal, /* 1 = page header has been written */ 7 35 3 modified bit (1) unal, /* 1 = page has been modified */ 7 36 3 overflow bit (1) unal, /* OBSOLETE */ 7 37 3 MBZ bit (12) unal, 7 38 3 dot_addltr 7 39 char (1) unal, /* dot page add letter, if any */ 7 40 3 pgc_select 7 41 char (1) unal, /* for selecting change pages */ 7 42 2 baldepth fixed bin (31), /* page depth at balance point */ 7 43 2 balusd fixed bin (31), /* space used at balance point */ 7 44 2 col_count fixed bin, /* highest value of col_index for the page */ 7 45 2 col_index fixed bin, /* column index */ 7 46 2 depth fixed bin (31), /* current page depth */ 7 47 2 hdspc fixed bin (31), /* TOP white space */ 7 48 2 lmarg fixed bin (31), /* left margin for this page */ 7 49 2 net fixed bin (31), /* net usable space on the page */ 7 50 2 pageno char (32) var, /* current page number */ 7 51 2 used fixed bin (31); /* space already used on the page */ 7 52 7 53 dcl page_image_version 7 54 fixed bin (35) static options (constant) init (2); 7 55 /* structure passed to writers */ 7 56 dcl 1 page_image aligned based (page.image_ptr), 7 57 2 version fixed bin (35), /* structure version no */ 7 58 2 count fixed bin, /* count of page image lines */ 7 59 2 file_id char (32) var, /* compout identifier */ 7 60 2 func fixed bin, /* function code; 0 = build, 7 61* 1 = intialize, 2 = cleanup */ 7 62 2 text_ptr ptr, /* pointer to the text area */ 7 63 /* the image lines */ 7 64 2 line (max_image_lines), 7 65 3 sws, 7 66 4 quad bit (6) unal, /* text set position flags */ 7 67 4 art bit (1) unal, /* 1 = artwork in the line */ 7 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 7 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 7 70 4 white bit (1) unal, /* line is white */ 7 71 4 MBZ bit (26) unal, 7 72 3 depth fixed bin (31), /* page depth for the text */ 7 73 3 gaps fixed bin, /* number of WS gaps in the line */ 7 74 3 info like text_entry.info, 7 75 /* input file info */ 7 76 3 lead fixed bin (31), /* lead value if trailing WS */ 7 77 3 lfnt fixed bin, /* font at the left margin */ 7 78 3 lmarg fixed bin (31), /* text left margin position */ 7 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 7 80 3 net fixed bin (31), /* net width for filling */ 7 81 3 pos fixed bin (31), /* current horiz position */ 7 82 3 ptr ptr, /* pointer to the text */ 7 83 3 rmarg fixed bin (31), /* text right margin position */ 7 84 3 width fixed bin (31); /* width of the text */ 7 85 /* current page formatting parms */ 7 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 7 87 2 init_page_depth 7 88 fixed bin (31), /* initial page depth */ 7 89 2 length fixed bin (31), /* page length */ 7 90 2 lmarg, /* page left margin */ 7 91 3 even fixed bin (31), 7 92 3 odd fixed bin (31), 7 93 2 margin, /* margin values */ 7 94 3 top fixed bin (31), 7 95 3 header fixed bin (31), 7 96 3 footer fixed bin (31), 7 97 3 bottom fixed bin (31), 7 98 2 measure fixed bin (31), /* line space available for text */ 7 99 2 net, /* net usable space on page */ 7 100 3 even fixed bin (31), /* even pages */ 7 101 3 odd fixed bin (31), /* odd pages */ 7 102 /* arrays at the end */ 7 103 2 cols, /* columns defined for the page */ 7 104 3 bal bit (1) unal, /* column balancing control flag */ 7 105 3 MBZ bit (17) unal, 7 106 3 count fixed bin unal; /* the number of columns */ 7 107 /* default page formatting parms */ 7 108 dcl 1 init_page_parms 7 109 aligned like page_parms 7 110 based (const.init_page_parms_ptr); 7 111 7 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 305 8 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 8 2 8 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 8 4 8 5 dcl shared_version fixed bin (35) static options (constant) init (17); 8 6 8 7 dcl 1 shared aligned based (const.shared_ptr), 8 8 2 version fixed bin (35), /* version of this structure */ 8 9 2 chars, 8 10 ( 3 sym_delim, /* delimiter for symbols */ 8 11 3 ttl_delim, /* delimiter for title parts */ 8 12 3 wrd_brkr /* word break character */ 8 13 ) char (1) unal, 8 14 3 PAD char (1) unal, 8 15 2 cbar_type char (4) var, /* change bar type */ 8 16 2 dot_add_letter /* dot page add letter */ 8 17 char (1) var, 8 18 2 EN_width fixed bin (31), /* width of EN in current font */ 8 19 2 eqn_refct fixed bin, /* equation reference counter */ 8 20 2 footref_fcs /* footnote ref FCS string */ 8 21 char (8) aligned, 8 22 2 ftn_reset char (8) var, /* footnote reset mode */ 8 23 2 ftnrefct fixed bin, /* footnote ref counter */ 8 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 8 25 2 if_nest, /* if/then/else logic control */ 8 26 3 ndx fixed bin, /* depth of logic nest */ 8 27 3 e (25), /* nest entries */ 8 28 /* .if control switch */ 8 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 8 30 4 info aligned like text_entry.info, 8 31 4 line char (256) var, /* the control line */ 8 32 2 indctl, /* indent ctls stack */ 8 33 3 ndx fixed bin, /* current level */ 8 34 /* switch bits */ 8 35 3 stk (0:35) bit (1) unal, 8 36 2 input_dirname 8 37 char (168) var, /* dir containing current input file */ 8 38 2 input_filename 8 39 char (200) var, /* current input file name */ 8 40 2 lead fixed bin (31), /* current linespacing value */ 8 41 2 lit_count fixed bin (35), /* count of literal lines */ 8 42 2 next_pagenmbr 8 43 char (32) var, /* next page number / */ 8 44 2 output_file 8 45 char (32) var, /* output file identifier */ 8 46 2 pagecount fixed bin, /* number of pages produced */ 8 47 2 pagenum, /* page number structure */ 8 48 3 index fixed bin, /* level currently counting */ 8 49 ( 8 50 3 sep char (1) unal, /* separator chars */ 8 51 3 nmbr fixed bin (31), /* the counters */ 8 52 3 mode /* display modes */ 8 53 fixed bin (8) unal 8 54 ) dimension (20), 8 55 2 parameter char (254) var, /* command line parameter */ 8 56 2 param_pres bit (1), /* passed parameter flag */ 8 57 2 pass_counter 8 58 fixed bin, /* pass counter */ 8 59 2 picture, /* picture blocks */ 8 60 3 count fixed bin, /* number of them */ 8 61 3 space fixed bin (31), /* total picture space */ 8 62 3 blk (10), /* picture blocks */ 8 63 4 type char (4), /* type = page/col */ 8 64 4 place char (4), /* place = top/cen/bot */ 8 65 4 ptr ptr, /* pointer to block */ 8 66 4 size fixed bin (31), /* size of the picture */ 8 67 2 ptrs, 8 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 8 69 3 blank_footer_ptr, /* -> blank page footer */ 8 70 3 blank_header_ptr, /* -> blank page header */ 8 71 3 blank_text_ptr, /* -> blank page text */ 8 72 3 blkptr, /* -> active text */ 8 73 3 colptr, /* current column */ 8 74 3 compout_ptr, /* iocb pointer for output */ 8 75 3 compx_ptr, /* iocb pointer for compx file */ 8 76 3 ctb_ptr, /* current line artwork table */ 8 77 3 epftrptr, /* even page footer block */ 8 78 3 ephdrptr, /* even page header block */ 8 79 3 fcb_ptr, /* input file control block pointer */ 8 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 8 81 3 footnote_header_ptr, /* footnote header "title" */ 8 82 3 graphic_page_ptr, /* graphic output page */ 8 83 3 hit_data_ptr, /* hit data pointer */ 8 84 3 htab_ptr, /* horizontal tab tables */ 8 85 3 hwrd_data_ptr, /* local hyphenation table */ 8 86 3 insert_ptr, /* data entry for current input file */ 8 87 3 opftrptr, /* odd page footer block */ 8 88 3 ophdrptr, /* odd page header block */ 8 89 3 ptb_ptr, /* previous line artwork table */ 8 90 3 spcl_blkptr, /* "special" block pointer */ 8 91 3 tbldata_ptr, /* table column data structure */ 8 92 3 tblkdata_ptr, /* text block data array */ 8 93 3 text_header_ptr /* empty text header structure */ 8 94 ) ptr, 8 95 2 scale, /* space conversion scale factors */ 8 96 3 horz fixed bin (31), /* horizontal */ 8 97 3 vert fixed bin (31), /* vertical */ 8 98 2 source_filename 8 99 char (200) var, /* current source file name */ 8 100 2 sws, /* switch bits */ 8 101 ( 3 bug_mode, /* debug mode */ 8 102 3 compout_not_headed, /* compout is not headed */ 8 103 3 end_input, /* EOF for current input file */ 8 104 3 end_output, /* no more output is wanted */ 8 105 3 firstpass, /* first pass over input */ 8 106 3 ftn_mode, /* in footnote mode */ 8 107 3 hyph_mode, /* hyphenating mode */ 8 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 8 109 3 literal_mode, /* literal line mode flag */ 8 110 3 pageblock, /* blocks belong to page */ 8 111 3 picture_mode, /* building a picture */ 8 112 3 print_flag, /* producing output */ 8 113 3 purge_ftns, /* purging footnotes */ 8 114 3 suppress_footref, /* suppress next footnote ref */ 8 115 3 table_mode /* table mode */ 8 116 ) bit (1) unal, 8 117 3 MBZ bit (21) unal, 8 118 2 trans, /* trans table for .tr */ 8 119 3 in char (128) var, /* input chars */ 8 120 3 out char (128) var, /* output chars */ 8 121 2 widow_size fixed bin (31), /* widow size */ 8 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 8 123 /* to save shared data between files/passes */ 8 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 8 125 8 126 dcl dot_addltr_symb_index 8 127 fixed bin static options (constant) init (12); 8 128 dcl max_text_lines fixed bin static options (constant) init (1000); 8 129 dcl mode_string char (16) static options (constant) 8 130 init ("arbihxocalaurlru"); 8 131 /* value overlays */ 8 132 dcl flag_value bit (1) based; 8 133 dcl num_value fixed bin (31) based; 8 134 8 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 306 9 1 /* BEGIN INCLUDE FILE comp_table.incl.pl1 */ 9 2 9 3 /* format: style2,ind3,ll79,dclind4,idind15,comcol41,linecom */ 9 4 9 5 dcl 1 tbldata aligned based (shared.tbldata_ptr), 9 6 2 ct fixed bin, /* number of active table formats */ 9 7 2 ndx fixed bin, /* index of current active format */ 9 8 2 fmt (20), /* the format */ 9 9 3 name char (32) var, /* name of the format */ 9 10 3 ptr ptr; /* pointer to the format data */ 9 11 9 12 dcl tblfmtndx fixed bin; /* current table format index */ 9 13 dcl tblfmtptr ptr; /* -> current table format */ 9 14 /* table format data */ 9 15 dcl 1 tblfmt aligned based (tblfmtptr), 9 16 2 context bit (1), /* =1 if context mode */ 9 17 2 ccol fixed bin, /* the current table column */ 9 18 2 maxdepth fixed bin (31), /* max depth in table */ 9 19 2 ncols fixed bin, /* number of columns in this format */ 9 20 2 colptr (0:20) ptr; /* pointers to the columns */ 9 21 9 22 dcl tblcolndx fixed bin; /* current table column index */ 9 23 /* -> current table column */ 9 24 dcl tblcolptr ptr init (null ()); 9 25 /* table column data */ 9 26 dcl 1 tblcol aligned based (tblcolptr), 9 27 2 align, /* column alignment mode */ 9 28 3 posn fixed bin (31), 9 29 3 str char (32) var, 9 30 2 depth fixed bin (31), /* current depth for column */ 9 31 2 gutter fixed bin (31), 9 32 2 leader char (16) var, /* leadering string */ 9 33 2 margin, 9 34 3 left fixed bin (31), 9 35 3 right fixed bin (31), 9 36 2 valign bit (4) unal, /* vertical alignment flags */ 9 37 2 MBZ bit (29) unal, 9 38 2 parms /* parms for columns */ 9 39 aligned like default_parms; 9 40 9 41 dcl 1 tblcol0 aligned like tblcol based (tblfmt.colptr (0)); 9 42 /* -> previous table column */ 9 43 dcl prvtblcolptr ptr init (null ()); 9 44 dcl 1 prvtblcol like tblcol aligned based (prvtblcolptr); 9 45 9 46 dcl vtop bit (4) static options (constant) init ("1000"b); 9 47 dcl vcen bit (4) static options (constant) init ("0100"b); 9 48 dcl vbot bit (4) static options (constant) init ("0010"b); 9 49 dcl vjust bit (4) static options (constant) init ("0001"b); 9 50 9 51 /* END INCLUDE FILE comp_table.incl.pl1 */ 307 10 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 10 2 10 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 10 4 10 5 dcl 1 tblkdata /* data for allocated text blocks */ 10 6 aligned based (shared.tblkdata_ptr), 10 7 2 block, /* block pool */ 10 8 3 count fixed bin, 10 9 3 ptr (500) ptr, /* block pointers */ 10 10 /* block state flags */ 10 11 3 free (500) bit (1) unal, 10 12 2 line_area, /* line area pool */ 10 13 3 count fixed bin, 10 14 3 ptr (500) ptr, /* area pointers */ 10 15 /* area state flags */ 10 16 3 free (500) bit (1) unal, 10 17 2 text_area, /* text area pool */ 10 18 3 count fixed bin, 10 19 3 ptr (500) ptr, /* area pointers */ 10 20 /* area state flags */ 10 21 3 free (500) bit (1) unal, 10 22 3 string_area_count 10 23 fixed bin; /* line areas */ 10 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 10 25 dcl line_area_ptr ptr init (null); 10 26 dcl 1 line_area aligned based (line_area_ptr), 10 27 2 next ptr, /* forward thread */ 10 28 2 prev ptr, /* backward thread */ 10 29 2 count fixed bin, /* number of lines allocated */ 10 30 2 ndx fixed bin, /* index of current line */ 10 31 2 pndx fixed bin, /* area pool index */ 10 32 2 linptr (LINE_AREA_SIZE) ptr; 10 33 /* text areas */ 10 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 10 35 dcl text_area_ptr ptr init (null); 10 36 dcl 1 text_area aligned based (text_area_ptr), 10 37 2 next ptr, /* forward thread */ 10 38 2 count fixed bin, /* number of areas allocated */ 10 39 2 ndx fixed bin, /* index of current strarea */ 10 40 2 pndx fixed bin, /* area pool index */ 10 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 10 42 /* text string area */ 10 43 dcl string_area (256) fixed bin based; 10 44 dcl txtstrptr ptr; /* current text string */ 10 45 dcl txtstr char (1020) var based (txtstrptr); 10 46 10 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 10 48 /* general text block */ 10 49 dcl 1 text aligned based (shared.blkptr), 10 50 2 version fixed bin, /* version of structure */ 10 51 2 blkndx fixed bin, /* block data index */ 10 52 2 blktype char (2), /* block type code */ 10 53 /* dynamic block control stuff */ 10 54 2 hdr aligned like text_header, 10 55 /* text read from input file */ 10 56 2 input aligned like text_entry, 10 57 2 input_line char (1020) var,/* input buffer */ 10 58 2 line_area, 10 59 3 first ptr, /* head of line area thread */ 10 60 3 cur ptr, /* current line area */ 10 61 2 next_text ptr, /* next text string */ 10 62 /* text formatting parameters */ 10 63 2 parms aligned like default_parms, 10 64 2 text_area, 10 65 3 first ptr, /* head of text area thread */ 10 66 3 cur ptr; /* current text area */ 10 67 /* an empty text block line */ 10 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 10 69 2 sws, /* unaligned switches, etc. */ 10 70 3 art bit (1) unal, /* line has artwork */ 10 71 3 cbar, /* change bar flags */ 10 72 4 add bit (1) unal, /* text addition flag */ 10 73 4 del bit (1) unal, /* text deletion flag */ 10 74 4 mod bit (1) unal, /* text modification flag */ 10 75 3 default bit (1) unal, /* 1 = default case as needed */ 10 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 10 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 10 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 10 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 10 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 10 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 10 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 10 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 10 84 3 oflo bit (1) unal, /* line causes overflow */ 10 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 10 86 3 quad bit (6) unal, /* text alignment flags */ 10 87 3 space_added /* 1= line has added space */ 10 88 bit (1) unal, 10 89 3 spcl, /* special entry - not output text */ 10 90 4 file bit (1) unal, /* 1= output to special file */ 10 91 4 blk_splt /* 1= action at block split time */ 10 92 bit (1) unal, 10 93 4 page_mkup /* 1= action at page makeup time */ 10 94 bit (1) unal, 10 95 3 table bit (1) unal, /* 1= line is a table entry */ 10 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 10 97 3 title bit (1) unal, /* 1= line is a */ 10 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 10 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 10 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 10 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 10 102 3 white bit (1) unal, /* 1= line is white space */ 10 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 10 104 3 MBZ bit (4) unal, 10 105 2 art_start fixed bin unal, /* start of art string in line */ 10 106 2 art_len fixed bin unal, /* length of art string in line */ 10 107 2 cbar_level /* change level for cbars */ 10 108 char (1) aligned, 10 109 2 cur, /* current scanning data for line */ 10 110 3 chrct fixed bin, /* count of chars scanned */ 10 111 3 gaps fixed bin, /* gap count */ 10 112 3 width fixed bin (31), /* width of font chars */ 10 113 3 min fixed bin (31), /* width of min spbnds */ 10 114 3 avg fixed bin (31), /* width of avg spbnds */ 10 115 3 max fixed bin (31), /* width of max spbnds */ 10 116 3 font like fntstk_entry, 10 117 2 depth fixed bin (31), /* page depth for line */ 10 118 /* font at start of line */ 10 119 2 font like fntstk_entry, 10 120 2 index fixed bin (21), /* char index for line scanning */ 10 121 2 info, /* stuff created during line input */ 10 122 3 fileno fixed bin, /* input file index */ 10 123 3 lineno fixed bin, /* input file line number */ 10 124 3 lineno0 fixed bin, /* call_box0 line number */ 10 125 2 linespace fixed bin (31), /* linespace value for the line */ 10 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 10 127 2 mod_len fixed bin, /* length of modified text */ 10 128 2 mod_start fixed bin, /* index for start of modified text */ 10 129 2 net fixed bin (31), /* net line width for filling */ 10 130 2 ptr ptr, /* pointer to the actual text */ 10 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 10 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 10 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 10 134 2 tblcol fixed bin, /* column for table entries */ 10 135 2 title_delim 10 136 char (1) unal, /* title delimiter if a <title> */ 10 137 2 title_index 10 138 fixed bin, /* <title> block index for line */ 10 139 2 width fixed bin (31), /* width of text */ 10 140 2 ftn, /* footnote info for line */ 10 141 3 ct fixed bin, /* number of footnote refs */ 10 142 3 used fixed bin (31), /* space used */ 10 143 3 e (40), /* limit is arbitrary */ 10 144 4 blkndx fixed bin unal, /* block index of footnote - if this 10 145* value is 0, then .frf was used */ 10 146 4 refno fixed bin unal; /* reference number */ 10 147 10 148 dcl ( 10 149 quadi init ("40"b3), /* set to the inside margin */ 10 150 quado init ("20"b3), /* set to the outside margin */ 10 151 quadl init ("10"b3), /* set left */ 10 152 quadc init ("04"b3), /* set centered */ 10 153 quadr init ("02"b3), /* set right */ 10 154 just init ("01"b3) /* justified */ 10 155 ) bit (6) static options (constant); 10 156 /* control line structure */ 10 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 10 158 dcl ctl_line char (1020) var based (ctl.ptr); 10 159 10 160 dcl txtlinptr ptr; /* the current text line */ 10 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 10 162 /* empty text header structure */ 10 163 dcl 1 text_header aligned based (const.text_header_ptr), 10 164 2 sws, /* control switches */ 10 165 3 art bit (1) unal, /* block has artwork */ 10 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 10 167 3 modified bit (1) unal, /* block contains modified lines */ 10 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 10 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 10 170 3 tblblk bit (1) unal, /* a table block */ 10 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 10 172 3 white bit (1) unal, /* block is a white space block */ 10 173 3 picture bit (1) unal, /* picture block */ 10 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 10 175 3 MBZ bit (26) unal, 10 176 2 art_count fixed bin unal, /* to count input art lines */ 10 177 2 blkptr ptr, /* pointer to suspended block */ 10 178 2 cap_size fixed bin unal, /* line count of text caption */ 10 179 2 cap_used fixed bin (31), /* size of text caption */ 10 180 2 colno fixed bin unal, /* column owning the block */ 10 181 2 count fixed bin unal, /* line count for block */ 10 182 2 eqn_line_count 10 183 fixed bin unal, /* counter for equation lines */ 10 184 2 first_text fixed bin unal, /* OBSOLETE */ 10 185 2 ftn, /* footnotes */ 10 186 3 ct fixed bin, /* count */ 10 187 3 usd fixed bin (31), /* space used */ 10 188 3 blkndx (40) fixed bin, /* footnote block index values */ 10 189 2 head_size fixed bin, /* line count of text header */ 10 190 2 head_used fixed bin (31), /* size of text header */ 10 191 2 index fixed bin unal, /* block index of next output line */ 10 192 2 keep_count fixed bin unal, /* to count input keep lines */ 10 193 2 last_line fixed bin, /* last text line in column */ 10 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 10 195 2 name char (32) var, /* block name, if any */ 10 196 2 nofill_count /* to count nofill lines */ 10 197 fixed bin, 10 198 2 parms_ptr ptr, /* parms for suspended block */ 10 199 2 refer fixed bin, /* inter-block reference */ 10 200 2 refer_index /* OBSOLETE */ 10 201 fixed bin, /* a reference */ 10 202 2 split fixed bin, /* split point for balancing */ 10 203 2 trl_ws fixed bin (31), /* trailing WS */ 10 204 2 used fixed bin (31); /* page space used by a column/block */ 10 205 /* text formatting parameters */ 10 206 dcl 1 text_parms aligned like default_parms 10 207 based (const.text_parms_ptr); 10 208 10 209 dcl 1 current_parms 10 210 aligned like default_parms 10 211 based (const.current_parms_ptr); 10 212 10 213 dcl 1 default_parms 10 214 aligned based (const.default_parms_ptr), 10 215 2 sws, /* control switches */ 10 216 3 quad bit (6) unal, /* text alignment mode */ 10 217 3 art bit (1) unal, /* 1 = block countains artwork */ 10 218 3 cbar, /* change bar flags */ 10 219 4 add bit (1) unal, /* text addition flag */ 10 220 4 del bit (1) unal, /* text deletion flag for next line */ 10 221 4 mod bit (1) unal, /* text modification flag */ 10 222 3 fill_mode 10 223 bit (1) unal, /* 1 = fill mode ON */ 10 224 3 footnote bit (1) unal, /* block is a footnote */ 10 225 3 hfc bit (1) unal, /* OBSOLETE */ 10 226 3 htab_mode 10 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 10 228 3 keep bit (1) unal, /* keep mode */ 10 229 3 page bit (1) unal, /* block belongs to page, not text */ 10 230 3 title_mode 10 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 10 232 3 MBZ bit (19) unal, 10 233 2 ftrptr ptr, /* text caption block */ 10 234 2 cbar_level /* change level for cbars */ 10 235 char (1) aligned, 10 236 2 hdrptr ptr, /* text header block */ 10 237 2 left, /* left margin data */ 10 238 3 indent fixed bin (31), 10 239 3 undent fixed bin (31), 10 240 2 linespace fixed bin (31), /* line spacing value */ 10 241 2 measure fixed bin (31), /* line space for text */ 10 242 /* right margin data */ 10 243 2 right like default_parms.left, 10 244 2 fntstk, /* stack of last 20 font changes */ 10 245 3 index fixed bin, /* which one in use */ 10 246 /* entry(0) is the default */ 10 247 3 entry (0:19) like fntstk_entry; 10 248 10 249 dcl hfcblk_ptr ptr; 10 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 10 251 10 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 308 11 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 11 2* 11 3* This storage is converted from external (as declared) to internal by the 11 4* binder and contains items that must be accessible to both the bound and 11 5* unbound program. */ 11 6 11 7 /* Written: ??/??/7? - EJW 11 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 11 9* and removed the codes array; version 6. 11 10**/ 11 11 11 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 11 13 11 14 dcl 1 compstat$compconst 11 15 aligned like const ext static; 11 16 11 17 dcl const_version fixed bin (35) static options (constant) init (6); 11 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 11 19 fixed bin static options (constant) init (80); 11 20 dcl MAX_TREE_AREAS /* number of tree areas */ 11 21 fixed bin static options (constant) init (20); 11 22 11 23 dcl 1 const aligned based (compstat$compconst.ptr), 11 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 11 25 2 version fixed bin (35), /* structure version */ 11 26 2 art_symbols /* string of art symbols */ 11 27 char (28) aligned, 11 28 2 builtin_count /* count of builtin variables */ 11 29 fixed bin, 11 30 2 comp_dir char (200), /* dir in which compose lives */ 11 31 2 comp_version 11 32 char (8) var, /* compose version id */ 11 33 2 date_value char (8) var, /* current date */ 11 34 2 dsm_name char (32), /* device support module name */ 11 35 2 dvt_name char (32), /* device table name */ 11 36 2 max_seg_chars 11 37 fixed bin (35), /* char count in a max seg */ 11 38 2 null_str char (1) var, /* an empty string */ 11 39 2 ptrs, 11 40 ( 3 call_stk_ptr, /* -> insert call stack */ 11 41 3 colhdrptr, /* empty column header structure */ 11 42 3 ctl_ptr, /* input line structure */ 11 43 3 current_parms_ptr, /* current formatting parms */ 11 44 3 default_parms_ptr, /* default initial text parms */ 11 45 3 devptr, /* -> comp_dvt structure */ 11 46 3 dvidptr, /* -> comp_dvid structure */ 11 47 3 errblk_ptr, /* error message block pointer */ 11 48 3 footnote_parms_ptr, /* footnote formatting parms */ 11 49 3 fnttbldata_ptr, /* -> font table data */ 11 50 3 global_area_ptr, /* per invocation storage */ 11 51 3 init_page_parms_ptr, /* default initial page parms */ 11 52 3 insert_data_ptr, /* insert file data block */ 11 53 3 local_area_ptr, /* per file storage */ 11 54 3 loctbl_ptr, /* for font copying */ 11 55 3 option_ptr, /* program options block */ 11 56 3 outproc_ptr, /* device writer for cleanup */ 11 57 3 page_ptr, /* active page structure */ 11 58 3 page_header_ptr, /* empty page header structure */ 11 59 3 page_parms_ptr, /* page formatting parameter block */ 11 60 3 save_shared_ptr, /* saved shared data */ 11 61 3 shared_ptr, /* shared data structure */ 11 62 3 text_entry_ptr, /* empty text entry structure */ 11 63 3 text_header_ptr, /* empty text header structure */ 11 64 3 text_parms_ptr, /* main body formatting parms */ 11 65 3 tree_ptr /* symbol tree structure */ 11 66 ) ptr, 11 67 2 time_value char (6) var; /* time at start */ 11 68 11 69 /* Other external */ 11 70 dcl ( 11 71 ioa_, 11 72 ioa_$nnl 11 73 ) entry options (variable); 11 74 dcl iox_$error_output 11 75 ptr ext static, /* iocb pointer for error_output */ 11 76 iox_$user_input 11 77 ptr ext static, /* iocb pointer for user_input */ 11 78 iox_$user_output 11 79 ptr ext static; /* iocb pointer for user_output */ 11 80 dcl sys_info$max_seg_size 11 81 fixed bin (18) ext static; 11 82 11 83 /* END INCLUDE FILE compstat.incl.pl1 */ 309 310 311 end comp_space_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0910.4 comp_space_.pl1 >spec>online>comp>comp_space_.pl1 299 1 04/23/85 0912.1 comp_brktypes.incl.pl1 >spec>online>comp>comp_brktypes.incl.pl1 300 2 04/23/85 0912.2 comp_column.incl.pl1 >spec>online>comp>comp_column.incl.pl1 301 3 03/01/85 1411.9 comp_dvt.incl.pl1 >ldd>include>comp_dvt.incl.pl1 302 4 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 303 5 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 304 6 03/01/85 1412.0 comp_option.incl.pl1 >ldd>include>comp_option.incl.pl1 305 7 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 306 8 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 307 9 03/01/85 1412.0 comp_table.incl.pl1 >ldd>include>comp_table.incl.pl1 308 10 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 309 11 03/01/85 1412.1 compstat.incl.pl1 >ldd>include>compstat.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. a_space parameter fixed bin(31,0) dcl 19 set ref 14 55 70* 70* add 1005 based bit(1) level 5 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" set ref 76* 203 add 1 based bit(1) level 4 in structure "current_parms" packed unaligned dcl 10-209 in procedure "comp_space_" set ref 98* 183 add 1 000110 automatic bit(1) level 4 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 183* 188 203* 208 215 addr builtin function dcl 47 ref 146 161 161 228 228 240 240 250 250 art 000110 automatic bit(1) level 3 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 178* 197* 215 art 1004(06) based bit(1) level 4 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" ref 197 art 4 based bit(1) level 4 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" set ref 86* 273* art 1004(06) based bit(1) level 4 in structure "text" packed unaligned dcl 10-49 in procedure "comp_space_" ref 178 artsz 000100 automatic fixed bin(17,0) initial dcl 31 set ref 31* balftn 320 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_space_" balftn 2 based structure level 2 in structure "colhdr" dcl 2-21 in procedure "comp_space_" balftn 320 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_space_" blkct 373 based fixed bin(17,0) level 3 dcl 2-5 set ref 102* 278* blkndx 1 based fixed bin(17,0) level 2 dcl 33 set ref 76* 265* blkptr 3752 based pointer level 3 in structure "shared" dcl 8-7 in procedure "comp_space_" set ref 119 119 123 127 132 163* 165 168 171 171 172 172 174 177 178 188 188 230 242 252 blkptr 000102 automatic pointer dcl 32 in procedure "comp_space_" set ref 58* 73 76 76 76 76 76 76 76 76 76 86 86 86 86 86 86 119 127* 155 161* 163 197 198 203 204 205 207 208 208 215 228* 228 230 240* 240 242 250* 250 252 265 265 265 265 265 265 265 273 273 273 273 273 273 blktype 2 based char(2) level 2 in structure "block" dcl 33 in procedure "comp_space_" set ref 76* 265* blktype 2 based char(2) level 2 in structure "text" dcl 10-49 in procedure "comp_space_" set ref 172* block based structure level 1 dcl 33 block_ptr parameter pointer dcl 20 set ref 14 58 163* bug_mode 4113 based bit(1) level 3 packed unaligned dcl 8-7 ref 67 261 cbar 1 000110 automatic structure level 3 in structure "space_line" dcl 41 in procedure "comp_space_" cbar 1005 based structure level 4 in structure "block" dcl 33 in procedure "comp_space_" cbar 1 based structure level 3 in structure "current_parms" dcl 10-209 in procedure "comp_space_" cbar_type 2 based varying char(4) level 2 dcl 8-7 set ref 185* 205* cbarflg parameter bit(1) unaligned dcl 26 set ref 14 76* 180 200 ccol 1 based fixed bin(17,0) level 2 dcl 9-15 set ref 64 81* 94* 269* col based structure level 1 dcl 2-5 col0 based structure level 1 dcl 2-37 col_count 20 based fixed bin(17,0) level 3 dcl 7-11 set ref 108* 278* col_index 21 based fixed bin(17,0) level 3 dcl 7-11 set ref 102* 161* 278* colhdr based structure level 1 dcl 2-21 colptr 4 based pointer array level 2 in structure "tblfmt" dcl 9-15 in procedure "comp_space_" ref 64 colptr 3754 based pointer level 3 in structure "shared" dcl 8-7 in procedure "comp_space_" ref 102 102 102 102 102 102 102 102 102 102 102 102 102 149 278 278 278 278 278 278 278 278 278 278 278 278 278 column_ptr 42 based pointer array level 2 dcl 7-11 ref 112 112 112 112 comp_break_ 000010 constant entry external dcl 4-11 ref 132 comp_dvt based structure level 1 dcl 3-19 comp_head_page_ 000012 constant entry external dcl 4-33 ref 158 comp_title_block_ 000014 constant entry external dcl 4-69 ref 174 comp_util_$add_text 000016 constant entry external dcl 4-75 ref 228 240 250 comp_util_$getblk 000020 constant entry external dcl 4-82 ref 161 compstat$compconst 000022 external static structure level 1 dcl 11-14 const based structure level 1 dcl 11-23 context based bit(1) level 2 dcl 9-15 ref 215 count 12(18) based fixed bin(17,0) level 3 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" set ref 76* 265* count 3644 based fixed bin(17,0) level 3 in structure "shared" dcl 8-7 in procedure "comp_space_" set ref 115 115* 287 287* ct 375 based fixed bin(17,0) level 4 in structure "col" dcl 2-5 in procedure "comp_space_" set ref 102 102* 278 278* ct 14 based fixed bin(17,0) level 4 in structure "block" dcl 33 in procedure "comp_space_" set ref 86 86* 273 273* ct 375 based fixed bin(17,0) level 4 in structure "col0" dcl 2-37 in procedure "comp_space_" set ref 112 112* ctl based structure level 1 dcl 10-157 ctl_ptr 132 based pointer level 3 dcl 11-23 ref 142 cur 10 000110 automatic structure level 2 dcl 41 current_parms based structure level 1 dcl 10-209 set ref 161 161 current_parms_ptr 134 based pointer level 3 dcl 11-23 ref 98 98 150 150 161 161 183 184 185 187 datum parameter fixed bin(31,0) dcl 293 ref 291 296 default_parms based structure level 1 dcl 10-213 del 1(01) based bit(1) level 4 in structure "current_parms" packed unaligned dcl 10-209 in procedure "comp_space_" set ref 98* 184 185 187* del 1(01) 000110 automatic bit(1) level 4 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 184* 188 204* 208 del 1005(01) based bit(1) level 5 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" set ref 76* 204 205 207* depth 12 based fixed bin(31,0) level 2 dcl 9-26 set ref 81* 81* 94* 94* 269* 269* depth_adj 310 based fixed bin(31,0) level 2 dcl 2-5 set ref 102* 102* 278* 278* devptr 140 based pointer level 3 dcl 11-23 ref 55 55 entry 22 based structure array level 3 dcl 10-209 set ref 150 filspcflg parameter bit(1) unaligned dcl 27 ref 14 fmt 2 based structure array level 2 dcl 9-5 fntstk 20 based structure level 2 dcl 10-209 fntstk_entry based structure level 1 dcl 5-6 font 100 000110 automatic structure level 2 in structure "space_line" dcl 41 in procedure "comp_space_" set ref 150* font 16 000110 automatic structure level 3 in structure "space_line" dcl 41 in procedure "comp_space_" set ref 150* format_break 000000 constant fixed bin(17,0) initial dcl 1-9 set ref 132* ftn 375 based structure level 3 in structure "col0" dcl 2-37 in procedure "comp_space_" ftn 14 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" ftn 375 based structure level 3 in structure "col" dcl 2-5 in procedure "comp_space_" galley_opt 1(09) based bit(1) level 2 packed unaligned dcl 6-5 ref 158 hdr 316 based structure level 2 in structure "col" dcl 2-5 in procedure "comp_space_" hdr 4 based structure level 2 in structure "hfcblk" dcl 10-250 in procedure "comp_space_" hdr 4 based structure level 2 in structure "text" dcl 10-49 in procedure "comp_space_" hdr 4 based structure level 2 in structure "block" dcl 33 in procedure "comp_space_" hdr 15 based structure level 2 in structure "page" dcl 7-11 in procedure "comp_space_" hdr 316 based structure level 2 in structure "col0" dcl 2-37 in procedure "comp_space_" hdrptr 1014 based pointer level 3 dcl 10-49 set ref 123 127 168 171 174* 230* 242* 252* hdspc 23 based fixed bin(31,0) level 3 dcl 7-11 set ref 108* 108* 278* 278* headed 15(03) based bit(1) level 4 packed unaligned dcl 7-11 ref 158 hfcblk based structure level 1 dcl 10-250 i 000104 automatic fixed bin(17,0) dcl 36 set ref 227* index 20 based fixed bin(17,0) level 3 dcl 10-209 set ref 150 info 277 based structure level 3 in structure "hfcblk" dcl 10-250 in procedure "comp_space_" info 161 based structure level 2 in structure "text_entry" dcl 10-68 in procedure "comp_space_" info 277 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_space_" info 277 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" info 161 based structure level 2 in structure "txtlin" dcl 10-161 in procedure "comp_space_" info 161 based structure level 2 in structure "ctl" dcl 10-157 in procedure "comp_space_" ref 142 info 161 000110 automatic structure level 2 in structure "space_line" dcl 41 in procedure "comp_space_" set ref 142* input 116 based structure level 2 dcl 33 input_line 375 based varying char(1020) level 2 dcl 10-49 ref 132 inserting_hfc 4113(07) based bit(1) level 3 packed unaligned dcl 8-7 ref 123 168 ioa_ 000024 constant entry external dcl 11-70 ref 115 287 ioa_$nnl 000026 constant entry external dcl 11-70 ref 70 76 81 86 94 98 102 108 112 265 269 273 278 keep 2(07) 000110 automatic bit(1) level 3 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 198* keep 1006(04) based bit(1) level 4 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" ref 198 left 12 based structure level 2 in structure "text_parms" dcl 10-206 in procedure "comp_space_" left 36 based structure level 3 in structure "prvtblcol" dcl 9-44 in procedure "comp_space_" left 12 based structure level 2 in structure "current_parms" dcl 10-209 in procedure "comp_space_" left 1016 based structure level 3 in structure "hfcblk" dcl 10-250 in procedure "comp_space_" left 12 based structure level 2 in structure "default_parms" dcl 10-213 in procedure "comp_space_" left 36 based structure level 3 in structure "tblcol0" dcl 9-41 in procedure "comp_space_" left 1016 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_space_" left 1016 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" left 36 based structure level 3 in structure "tblcol" dcl 9-26 in procedure "comp_space_" line_area_ptr 000400 automatic pointer initial dcl 10-25 set ref 10-25* linespace 164 000110 automatic fixed bin(31,0) level 2 dcl 41 set ref 226* 239* 249* lmarg 165 000110 automatic fixed bin(31,0) level 2 dcl 41 set ref 148* margin 455 based structure level 2 dcl 2-5 maxdepth 2 based fixed bin(31,0) level 2 dcl 9-15 set ref 81* 81* 94* 94* 269* 269* min_lead 31 based fixed bin(31,0) level 2 dcl 3-19 ref 55 55 modified 4(02) based bit(1) level 4 in structure "block" packed unaligned dcl 33 in procedure "comp_space_" set ref 86* 208* 208 273* modified 4(02) based bit(1) level 4 in structure "text" packed unaligned dcl 10-49 in procedure "comp_space_" set ref 188* 188 ndx 1 based fixed bin(17,0) level 2 dcl 9-5 set ref 63 81* 94* 269* net 450 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_space_" set ref 102* 102* 278* 278* net 25 based fixed bin(31,0) level 3 in structure "page" dcl 7-11 in procedure "comp_space_" set ref 108* 108* 278* 278* new_block 000105 automatic bit(1) unaligned dcl 37 set ref 53* 166* no_trim 2(08) 000110 automatic bit(1) level 3 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 145* no_trim 4(03) based bit(1) level 4 in structure "text" packed unaligned dcl 10-49 in procedure "comp_space_" set ref 177* notrimflg parameter bit(1) unaligned dcl 25 set ref 14 70* 145 177 null builtin function dcl 47 ref 73 119 123 155 168 9-24 9-43 10-25 10-35 oflo 120(09) based bit(1) level 4 packed unaligned dcl 33 set ref 228* 240* 250* option based structure level 1 dcl 6-5 option_ptr 164 based pointer level 3 dcl 11-23 ref 158 page based structure level 1 dcl 7-11 page_header based structure level 1 dcl 7-27 page_parms based structure level 1 dcl 7-86 page_ptr 170 based pointer level 3 dcl 11-23 ref 102 108 108 108 108 108 108 108 108 112 112 112 112 158 161 278 278 278 278 278 278 278 278 278 pageno 26 based varying char(32) level 3 dcl 7-11 set ref 108* 278* parms 1004 based structure level 2 in structure "block" dcl 33 in procedure "comp_space_" parms 1004 based structure level 2 in structure "text" dcl 10-49 in procedure "comp_space_" picture 3644 based structure level 2 dcl 8-7 prvtblcolptr 000376 automatic pointer initial dcl 9-43 set ref 9-43* pspc 447 based fixed bin(31,0) level 3 dcl 2-5 set ref 102* 102* 278* 278* ptr 14 based pointer array level 3 in structure "tbldata" dcl 9-5 in procedure "comp_space_" ref 63 ptr 000022 external static pointer level 2 in structure "compstat$compconst" dcl 11-14 in procedure "comp_space_" ref 55 55 60 63 63 67 81 81 94 94 98 98 102 102 102 102 102 102 102 102 102 102 102 102 102 102 108 108 108 108 108 108 108 108 112 112 112 112 115 115 115 115 119 119 123 123 127 132 140 142 149 150 150 158 158 161 161 161 163 165 168 168 171 171 172 172 174 177 178 183 184 185 185 187 188 188 205 215 230 242 252 261 269 269 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 287 287 287 287 ptr 172 000110 automatic pointer level 2 in structure "space_line" dcl 41 in procedure "comp_space_" set ref 146* ptrs 126 based structure level 2 in structure "const" dcl 11-23 in procedure "comp_space_" ptrs 3742 based structure level 2 in structure "shared" dcl 8-7 in procedure "comp_space_" quad 2(11) 000110 automatic bit(6) level 3 packed unaligned dcl 41 set ref 152* quadl constant bit(6) initial unaligned dcl 10-148 ref 152 right 456 based fixed bin(31,0) level 3 dcl 2-5 ref 149 rmarg 174 000110 automatic fixed bin(31,0) level 2 dcl 41 set ref 149* scale parameter fixed bin(31,0) dcl 294 ref 291 296 shared based structure level 1 dcl 8-7 shared_ptr 200 based pointer level 3 dcl 11-23 ref 60 63 63 67 81 81 94 94 102 102 102 102 102 102 102 102 102 102 102 102 102 115 115 115 115 119 119 123 123 127 132 149 163 165 168 168 171 171 172 172 174 177 178 185 188 188 205 215 230 242 252 261 269 269 278 278 278 278 278 278 278 278 278 278 278 278 278 287 287 287 287 space 3645 based fixed bin(31,0) level 3 in structure "shared" dcl 8-7 in procedure "comp_space_" set ref 115* 115* 287* 287* space 000106 automatic fixed bin(31,0) dcl 38 in procedure "comp_space_" set ref 55* 70* 70* 136 221 249 space_line 000110 automatic structure level 1 dcl 41 set ref 140* 228 228 240 240 250 250 space_text 000000 constant varying char(4) initial dcl 42 set ref 146 sws 4 based structure level 3 in structure "hfcblk" dcl 10-250 in procedure "comp_space_" sws 000110 automatic structure level 2 in structure "space_line" dcl 41 in procedure "comp_space_" sws 4 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" sws 1004 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_space_" sws 1004 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" sws 15 based structure level 3 in structure "page" dcl 7-11 in procedure "comp_space_" sws 4 based structure level 3 in structure "text" dcl 10-49 in procedure "comp_space_" sws 4113 based structure level 2 in structure "shared" dcl 8-7 in procedure "comp_space_" sws 116 based structure level 3 in structure "block" dcl 33 in procedure "comp_space_" sws based structure level 2 in structure "current_parms" dcl 10-209 in procedure "comp_space_" table_mode 4113(14) based bit(1) level 3 packed unaligned dcl 8-7 ref 60 81 94 215 269 tblblk 4(05) based bit(1) level 4 packed unaligned dcl 33 ref 215 tblcol based structure level 1 dcl 9-26 tblcolptr 000374 automatic pointer initial dcl 9-24 set ref 64* 81 81 94 94 269 269 9-24* tbldata based structure level 1 dcl 9-5 tbldata_ptr 4020 based pointer level 3 dcl 8-7 ref 63 63 81 94 269 tblfmt based structure level 1 dcl 9-15 tblfmtptr 000372 automatic pointer dcl 9-13 set ref 63* 64 64 81 81 81 94 94 94 215 269 269 269 text based structure level 1 dcl 10-49 text_area_ptr 000402 automatic pointer initial dcl 10-35 set ref 10-35* text_entry based structure level 1 dcl 10-68 ref 140 text_entry_ptr 202 based pointer level 3 dcl 11-23 ref 140 text_header based structure level 1 dcl 10-163 th_space 000367 automatic bit(1) unaligned dcl 44 set ref 53* 128* 230 242 252 title 4(02) 000110 automatic bit(1) level 3 packed unaligned dcl 41 set ref 143* trl_ws 113 based fixed bin(31,0) level 3 dcl 33 set ref 76* 76* 265* 265* tspace 000370 automatic fixed bin(31,0) dcl 45 set ref 221* 223 227 232* 232 236 239 txtflg parameter bit(1) unaligned dcl 24 set ref 14 70* 123 usd 376 based fixed bin(31,0) level 4 in structure "col" dcl 2-5 in procedure "comp_space_" set ref 102* 102* 278* 278* usd 376 based fixed bin(31,0) level 4 in structure "col0" dcl 2-37 in procedure "comp_space_" set ref 112* 112* usd 15 based fixed bin(31,0) level 4 in structure "block" dcl 33 in procedure "comp_space_" set ref 86* 86* 273* 273* used 451 based fixed bin(31,0) level 3 in structure "col" dcl 2-5 in procedure "comp_space_" set ref 102* 102* 278* 278* used 114 based fixed bin(31,0) level 3 in structure "block" dcl 33 in procedure "comp_space_" set ref 76* 76* 265* 265* used 37 based fixed bin(31,0) level 3 in structure "page" dcl 7-11 in procedure "comp_space_" set ref 108* 108* 278* 278* white 4(07) based bit(1) level 4 in structure "hfcblk" packed unaligned dcl 10-250 in procedure "comp_space_" ref 171 white 4(07) based bit(1) level 4 in structure "text" packed unaligned dcl 10-49 in procedure "comp_space_" set ref 165* 171* 172 white 4(07) 000110 automatic bit(1) level 3 in structure "space_line" packed unaligned dcl 41 in procedure "comp_space_" set ref 144* width 204 000110 automatic fixed bin(31,0) level 2 dcl 41 set ref 147* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 10-24 MAX_TREE_AREAS internal static fixed bin(17,0) initial dcl 11-20 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 11-18 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 10-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 10-47 block_break internal static fixed bin(17,0) initial dcl 1-9 column_break internal static fixed bin(17,0) initial dcl 1-9 com_err_ 000000 constant entry external dcl 50 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_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_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_read_$name 000000 constant entry external dcl 4-50 comp_read_$number 000000 constant entry external dcl 4-53 comp_report_ 000000 constant entry external dcl 4-59 comp_report_$ctlstr 000000 constant entry external dcl 4-61 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_update_symbol_ 000000 constant entry external dcl 4-71 comp_use_ref_ 000000 constant entry external dcl 4-74 comp_util_$display 000000 constant entry external dcl 4-77 comp_util_$escape 000000 constant entry external dcl 4-80 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 11-17 copy builtin function dcl 47 ctl_line based varying char(1020) dcl 10-158 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 8-126 ercd automatic fixed bin(35,0) dcl 35 fixed builtin function dcl 47 flag_value based bit(1) unaligned dcl 8-132 fntstk_eptr automatic pointer dcl 5-5 footer_break internal static fixed bin(17,0) initial dcl 1-9 footnote_break internal static fixed bin(17,0) initial dcl 1-9 hfcblk_ptr automatic pointer dcl 10-249 index builtin function dcl 47 init_page_parms based structure level 1 dcl 7-108 iox_$error_output external static pointer dcl 11-74 iox_$put_chars 000000 constant entry external dcl 51 iox_$user_input external static pointer dcl 11-74 iox_$user_output external static pointer dcl 11-74 j automatic fixed bin(17,0) dcl 36 just internal static bit(6) initial unaligned dcl 10-148 length builtin function dcl 47 line_area based structure level 1 dcl 10-26 max builtin function dcl 47 max_cols internal static fixed bin(17,0) initial dcl 7-7 max_image_lines internal static fixed bin(17,0) initial dcl 7-5 max_text_lines internal static fixed bin(17,0) initial dcl 8-128 mode_string internal static char(16) initial unaligned dcl 8-129 need_break internal static fixed bin(17,0) initial dcl 1-9 num_value based fixed bin(31,0) dcl 8-133 option_version internal static fixed bin(35,0) initial dcl 6-3 page_break internal static fixed bin(17,0) initial dcl 1-9 page_image based structure level 1 dcl 7-56 page_image_version internal static fixed bin(35,0) initial dcl 7-53 page_version internal static fixed bin(17,0) initial dcl 7-9 prvtblcol based structure level 1 dcl 9-44 quadc internal static bit(6) initial unaligned dcl 10-148 quadi internal static bit(6) initial unaligned dcl 10-148 quado internal static bit(6) initial unaligned dcl 10-148 quadr internal static bit(6) initial unaligned dcl 10-148 save_shared based structure level 1 dcl 8-124 shared_version internal static fixed bin(35,0) initial dcl 8-5 size builtin function dcl 47 string_area based fixed bin(17,0) array dcl 10-43 substr builtin function dcl 47 sys_info$max_seg_size external static fixed bin(18,0) dcl 11-80 tblcol0 based structure level 1 dcl 9-41 tblcolndx automatic fixed bin(17,0) dcl 9-22 tblfmtndx automatic fixed bin(17,0) dcl 9-12 tblkdata based structure level 1 dcl 10-5 text_area based structure level 1 dcl 10-36 text_parms based structure level 1 dcl 10-206 txtlin based structure level 1 dcl 10-161 txtlinptr automatic pointer dcl 10-160 txtstr based varying char(1020) dcl 10-45 txtstrptr automatic pointer dcl 10-44 vbot internal static bit(4) initial unaligned dcl 9-48 vcen internal static bit(4) initial unaligned dcl 9-47 vjust internal static bit(4) initial unaligned dcl 9-49 vtop internal static bit(4) initial unaligned dcl 9-46 NAMES DECLARED BY EXPLICIT CONTEXT. comp_space_ 000201 constant entry external dcl 14 real_space 001535 constant label dcl 140 return_ 002333 constant label dcl 261 ref 136 show 003214 constant entry internal dcl 291 ref 70 70 70 70 76 76 76 76 81 81 81 81 86 86 94 94 94 94 102 102 102 102 102 102 102 102 102 102 108 108 108 108 108 108 112 112 115 115 265 265 265 265 269 269 269 269 273 273 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 278 287 287 NAMES DECLARED BY CONTEXT OR IMPLICATION. dec builtin function ref 296 divide builtin function ref 55 227 296 round builtin function ref 55 296 296 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3400 3430 3266 3410 Length 4064 3266 30 417 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_space_ 570 external procedure is an external procedure. show internal procedure shares stack frame of external procedure comp_space_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_space_ 000100 artsz comp_space_ 000102 blkptr comp_space_ 000104 i comp_space_ 000105 new_block comp_space_ 000106 space comp_space_ 000110 space_line comp_space_ 000367 th_space comp_space_ 000370 tspace comp_space_ 000372 tblfmtptr comp_space_ 000374 tblcolptr comp_space_ 000376 prvtblcolptr comp_space_ 000400 line_area_ptr comp_space_ 000402 text_area_ptr comp_space_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out return ext_entry round_fx1 real_to_real_tr divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_break_ comp_head_page_ comp_title_block_ comp_util_$add_text comp_util_$getblk ioa_ ioa_$nnl 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 14 000173 31 000206 9 24 000207 9 43 000211 10 25 000212 10 35 000213 53 000214 55 000216 58 000232 60 000235 63 000241 64 000246 67 000252 70 000255 73 000330 76 000334 81 000445 86 000545 90 000627 94 000630 98 000730 102 000763 108 001174 112 001320 115 001374 119 001455 123 001471 127 001507 128 001511 129 001513 132 001514 136 001533 140 001535 142 001544 143 001555 144 001557 145 001561 146 001566 147 001570 148 001571 149 001572 150 001600 152 001615 155 001621 158 001625 161 001646 163 001700 165 001710 166 001716 168 001720 171 001727 172 001734 174 001741 177 001747 178 001761 180 001765 183 001772 184 002001 185 002005 187 002011 188 002013 192 002033 197 002034 198 002041 200 002046 203 002053 204 002057 205 002063 207 002067 208 002071 215 002111 221 002132 223 002134 226 002136 227 002140 228 002151 230 002203 232 002214 233 002216 236 002220 239 002222 240 002223 242 002255 245 002266 249 002267 250 002271 252 002322 261 002333 265 002342 269 002436 273 002536 278 002620 287 003132 311 003213 291 003214 296 003216 ----------------------------------------------------------- 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