COMPILATION LISTING OF SEGMENT comp_update_symbol_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/85 1009.5 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 assign values to tree symbols */ 11 12 /* format: style2,ind3,ll80,dclind4,idind15,comcol41,linecom */ 13 14 comp_update_symbol_: 15 proc (priv, stack, defsw, symbol, buffer); 16 17 /* PARAMETERS */ 18 19 dcl priv bit (1); /* (IN) 1= OK to set internal vars */ 20 dcl stack bit (1); /* (IN) 1= stack variable */ 21 dcl defsw bit (1); /* (IN) 1= define only, no value */ 22 dcl symbol char (32); /* (IN) symbol to be updated */ 23 dcl buffer char (*) var; /* (IN) symbol value string */ 24 25 /* LOCAL STORAGE */ 26 27 dcl bufndx fixed bin (21);/* buffer scan index */ 28 dcl code fixed bin (35);/* error code */ 29 dcl CREATE bit (1) static options (constant) init ("1"b); 30 dcl exptyp fixed bin; /* type of */ 31 dcl LOG fixed bin static options (constant) init (1); 32 dcl logval bit (1); /* value from control line */ 33 dcl needtyp fixed bin; /* type needed */ 34 dcl NUM fixed bin static options (constant) init (2); 35 dcl numval fixed bin (31);/* value from control line */ 36 dcl STR fixed bin static options (constant) init (3); 37 dcl val_attr bit (9); /* attributes of */ 38 dcl val_key char (5) var; /* value keyword for debug */ 39 dcl val_scale fixed bin (31);/* value scale for debug */ 40 dcl val_len fixed bin init (0); 41 /* length of string */ 42 dcl value char (1020) var; 43 /* value from buffer */ 44 45 dcl (after, addr, before, dec, divide, index, length, null, round, substr) 46 builtin; 47 48 needtyp = 0; 49 50 if shared.bug_mode | dt_sw 51 then call ioa_ ("update_symbol: (^a^[ P^]^[ S^] ""^a"")", symbol, priv, 52 stack, comp_util_$display (buffer, 0, "0"b)); 53 /* search tree for this symbol */ 54 call comp_util_$search_tree (symbol, CREATE); 55 /* a builtin? */ 56 if tree.areandx = 1 & tree.entryndx <= const.builtin_count 57 then 58 do; 59 if ^(priv | symbol = "DotAddLetter" | symbol = "PageBlock") 60 then 61 do; 62 call comp_report_ (2, 0, 63 "Invalid attempt to set a builtin variable " 64 || "with a set-reference control.", addr (ctl.info), 65 ctl_line); 66 return; 67 end; 68 if symbol = "DotAddLetter" 69 then needtyp = STR; 70 if symbol = "PageBlock" 71 then needtyp = LOG; 72 end; 73 74 if stack 75 then call comp_util_$push (symbol); 76 77 if defsw 78 then 79 do; 80 if shared.bug_mode | dt_sw 81 then call ioa_ ("^5x(update_symbol: ^d|^d ^a DEFINED)", 82 tree.areandx, tree.entryndx, symbol); 83 return; 84 end; 85 86 tree_var_ptr = tree.var_ptr (tree.areandx); 87 88 if index (ctl_line, ".src") = 1 /* if its a counter set */ 89 then 90 do; /* make it a counting variable */ 91 tree_var.flags (tree.entryndx) = counter_attr | numeric_attr; 92 /* delta given? */ 93 if index (buffer, "by") ^= 0 94 then 95 do; 96 call comp_expr_eval_ (before (buffer, "by"), 1, 97 addr (ctl.info), NUM, 0, "0"b, 98 tree_var.num_loc (tree.entryndx) -> num_value, "", 99 val_attr, 0); 100 call comp_expr_eval_ (after (buffer, "by"), 1, 101 addr (ctl.info), NUM, 0, "0"b, 102 tree_var.incr_loc (tree.entryndx) -> num_value, "", ""b, 103 0); 104 end; 105 106 else call comp_expr_eval_ (buffer, 1, addr (ctl.info), NUM, 0, "0"b, 107 tree_var.num_loc (tree.entryndx) -> num_value, "", 108 val_attr, 0); 109 110 tree_var.flags (tree.entryndx) = 111 tree_var.flags (tree.entryndx) | val_attr; 112 113 if shared.bug_mode | dt_sw 114 then call ioa_ ("^5x(update_symbol: ^d|^d ^a counter/^a ^f,^f)", 115 tree.areandx, tree.entryndx, symbol, 116 substr (mode_string, 117 2 * tree_var.mode (tree.entryndx) + 1, 2), 118 tree_var.num_loc (tree.entryndx) -> num_value, 119 tree_var.incr_loc (tree.entryndx) -> num_value); 120 121 return; 122 end; 123 124 if symbol = "Args" | buffer = "" | index (symbol, "CommandArg") = 1 125 then 126 do; 127 value = buffer; 128 goto str_vrbl; 129 end; 130 131 bufndx = 1; /* evaluate the buffer */ 132 call comp_expr_eval_ (buffer, bufndx, addr (ctl.info), needtyp, exptyp, 133 logval, numval, value, val_attr, code); 134 if code ^= 0 135 then return; 136 137 if bufndx > 0 & bufndx < length (buffer) 138 then 139 do; 140 if substr (buffer, bufndx, 1) = ")" 141 then call comp_report_ (2, 0, "Extra right parenthesis", 142 addr (ctl.info), ctl_line); 143 else call comp_report_ (2, 0, "Improper expression", 144 addr (ctl.info), ctl_line); 145 end; 146 147 if exptyp = STR 148 then 149 do; 150 str_vrbl: /* if not stacked */ 151 if ^substr (tree_var.flags (tree.entryndx), 9, 1) 152 then 153 do; /* set to string type */ 154 tree_var.flags (tree.entryndx) = string_attr; 155 /* set value */ 156 tree_var.str_loc (tree.entryndx) -> txtstr = value; 157 end; 158 159 else 160 do; /* stacked */ 161 tree_var.flags (tree.entryndx) = string_attr | push_attr; 162 /* pushed string */ 163 tree_var.num_loc (tree.entryndx) -> stack_box.txtstr = value; 164 end; 165 166 if shared.bug_mode | dt_sw 167 then call ioa_ ("^5x(update_symbol: ^d|^d ^a string (^d) ""^a"")", 168 tree.areandx, tree.entryndx, symbol, length (value), 169 comp_util_$display (value, 0, "0"b)); 170 end; 171 172 else if exptyp = LOG 173 then 174 do; 175 if tree.areandx > 1 | tree.entryndx > const.builtin_count 176 then tree_var.flags (tree.entryndx) = flag_attr; 177 tree_var.flag_loc (tree.entryndx) -> flag_value = logval; 178 179 if shared.bug_mode | dt_sw 180 then call ioa_ ("^5x(update_symbol: ^d|^d ^a flag ^[T^;F^])", 181 tree.areandx, tree.entryndx, symbol, logval); 182 end; 183 184 else /* numeric */ 185 do; /* if not stacked */ 186 if ^substr (tree_var.flags (tree.entryndx), 9, 1) 187 then 188 do; 189 tree_var.num_loc (tree.entryndx) -> num_value = numval; 190 tree_var.flags (tree.entryndx) = val_attr; 191 end; 192 193 else 194 do; 195 tree_var.flags (tree.entryndx) = val_attr | push_attr; 196 tree_var.flags (tree.entryndx) = 197 tree_var.flags (tree.entryndx) | push_attr; 198 tree_var.num_loc (tree.entryndx) -> stack_box.numval = numval; 199 end; 200 201 if shared.bug_mode | dt_sw 202 then 203 do; 204 205 if bool (tree_var.flags (tree.entryndx), hspace_attr, "0001"b) 206 ^= "0"b 207 then 208 do; 209 val_key = "hspc"; 210 val_scale = 12000; 211 end; 212 213 else 214 do; 215 val_key = "unscl"; 216 val_scale = 1000; 217 end; 218 219 call ioa_ ("^5x(update_symbol: ^d|^d ^a numeric(^a)/^a ^f)", 220 tree.areandx, tree.entryndx, symbol, val_key, 221 substr (mode_string, 222 2 * tree_var.mode (tree.entryndx) + 1, 2), 223 round ( 224 dec (round (divide (numval, val_scale, 31, 11), 10), 11, 225 4), 3)); 226 end; 227 end; 228 229 return; 230 231 dcl dt_sw bit (1) static init ("0"b); 232 dtn: 233 entry; 234 dt_sw = "1"b; 235 return; 236 dtf: 237 entry; 238 dt_sw = "0"b; 239 return; 240 1 1 /* BEGIN INCLUDE FILE comp_entries.incl.pl1 */ 1 2 1 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 1 4 1 5 dcl compose_severity_ 1 6 fixed bin (35) ext static; 1 7 dcl comp_ entry; 1 8 dcl comp_art_ entry (ptr, bit (1)); 1 9 dcl comp_block_ctls_ 1 10 entry (fixed bin); 1 11 dcl comp_break_ entry (fixed bin, fixed bin); 1 12 dcl comp_break_ctls_ 1 13 entry (fixed bin); 1 14 dcl comp_ctls_ entry (bit (1) aligned); 1 15 dcl comp_eject_page_ 1 16 entry; 1 17 dcl comp_expr_eval_ 1 18 entry (char (*) var, fixed bin (21), ptr, fixed bin, 1 19 fixed bin, bit (1), fixed bin (31), char (*) var, 1 20 bit (9), fixed bin (35)); 1 21 dcl comp_extr_str_ entry (bit (1), char (*) var, fixed bin (21), 1 22 fixed bin (21), fixed bin (21), ptr) 1 23 returns (char (*) var); 1 24 dcl comp_fill_ entry; 1 25 dcl comp_font_ entry (bit (1), char (*) var, char (8) aligned); 1 26 dcl comp_format_ctls_ 1 27 entry (fixed bin); 1 28 dcl comp_get_file_$find 1 29 entry (char (*), ptr, char (*), bit (1), char (*) var, 1 30 fixed bin (35)); 1 31 dcl comp_get_file_$open 1 32 entry (ptr, bit (1), fixed bin (35)); 1 33 dcl comp_head_page_ 1 34 entry (fixed bin (31)); 1 35 dcl comp_hft_ctls_ entry (fixed bin); 1 36 dcl comp_hft_ctls_$title 1 37 entry (ptr, ptr, char (*) var, fixed bin (31)); 1 38 dcl comp_init_$one entry; 1 39 dcl comp_init_$two entry; 1 40 dcl comp_init_$three 1 41 entry; 1 42 dcl comp_insert_ctls_ 1 43 entry (fixed bin); 1 44 dcl comp_make_page_ 1 45 entry (fixed bin, bit (1)); 1 46 dcl comp_make_page_$cleanup 1 47 entry; 1 48 dcl comp_measure_ entry (char (1020) var, ptr, bit (1), bit (1), bit (6), 1 49 fixed bin (31), ptr, ptr, ptr); 1 50 dcl comp_read_$name 1 51 entry (char (*) var, fixed bin (21), fixed bin (21), 1 52 ptr) returns (char (*) var); 1 53 dcl comp_read_$number 1 54 entry (char (*) var, (*) fixed bin (31), 1 55 fixed bin (21), fixed bin (21), ptr, fixed bin (35)) 1 56 returns (fixed bin (31)); 1 57 dcl comp_read_$line 1 58 entry (ptr, char (*) var, bit (1)); 1 59 dcl comp_report_ entry (fixed bin, fixed bin (35), char (*), ptr, 1 60 char (*) var); 1 61 dcl comp_report_$ctlstr 1 62 entry options (variable); 1 63 /**** (sev, code, info, line, ctl_str, args... */ 1 64 dcl comp_report_$exact 1 65 entry (char (*), ptr); 1 66 dcl comp_space_ entry (fixed bin (31), ptr, bit (1), bit (1), bit (1), 1 67 bit (1)); 1 68 dcl comp_tbl_ctls_ entry (fixed bin); 1 69 dcl comp_title_block_ 1 70 entry (ptr); 1 71 dcl comp_update_symbol_ 1 72 entry (bit (1), bit (1), bit (1), char (32), 1 73 char (*) var); 1 74 dcl comp_use_ref_ entry (char (*) var, bit (1), bit (1), ptr); 1 75 dcl comp_util_$add_text 1 76 entry (ptr, bit (1), bit (1), bit (1), bit (1), ptr); 1 77 dcl comp_util_$display 1 78 entry (char (*) var, fixed bin, bit (1)) 1 79 returns (char (*) var); 1 80 dcl comp_util_$escape 1 81 entry (char (*) var, ptr); 1 82 dcl comp_util_$getblk 1 83 entry (fixed bin, ptr, char (2), ptr, bit (1)); 1 84 dcl comp_util_$num_display 1 85 entry (ptr, fixed bin) returns (char (256) var); 1 86 dcl comp_util_$pageno 1 87 entry (fixed bin, char (*) var); 1 88 dcl comp_util_$pictures /* emit pending pictures */ 1 89 entry /**/ 1 90 (ptr); /* current text block */ 1 91 dcl comp_util_$pop entry (char (32)); 1 92 dcl comp_util_$push 1 93 entry (char (32)); 1 94 dcl comp_util_$relblk 1 95 entry (fixed bin, ptr); 1 96 dcl comp_util_$replace_text 1 97 entry (ptr, bit (1), ptr, ptr); 1 98 dcl comp_util_$search_tree 1 99 entry (char (32), bit (1)); 1 100 dcl comp_util_$set_bin 1 101 entry (fixed bin (31), char (32) var, fixed bin (31), 1 102 fixed bin (31), fixed bin (31), (*) fixed bin (31), 1 103 fixed bin (31)); 1 104 dcl comp_util_$set_net_page 1 105 entry (bit (1)); 1 106 dcl comp_util_$translate 1 107 entry (char (*) var) returns (char (*) var); 1 108 dcl comp_write_block_ 1 109 entry (fixed bin); 1 110 dcl comp_write_page_ 1 111 entry; 1 112 1 113 /* END INCLUDE FILE comp_entries.incl.pl1 */ 241 2 1 /* BEGIN INCLUDE FILE comp_fntstk.incl.pl1 */ 2 2 2 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 2 4 2 5 dcl fntstk_eptr ptr; /* font stack entry structure */ 2 6 dcl 1 fntstk_entry aligned based (fntstk_eptr), 2 7 2 bachelor bit (1), /* 1= has no members */ 2 8 2 devfnt fixed bin, /* font in the device */ 2 9 2 fam_name char (32), /* family name */ 2 10 2 famndx fixed bin, /* family index */ 2 11 2 fntptr ptr, /* font table pointer */ 2 12 2 mem_name char (32), /* /member name (or null) */ 2 13 2 memndx fixed bin, /* member index */ 2 14 2 memptr ptr, /* member table pointer */ 2 15 2 name char (65) var, /* font name */ 2 16 2 size fixed bin (31), /* requested point size */ 2 17 2 ps fixed bin (31), /* effective point size */ 2 18 2 fcs_str char (8); /* FCS string */ 2 19 2 20 /* END INCLUDE FILE comp_fntstk.incl.pl1 */ 242 3 1 /* BEGIN INCLUDE FILE comp_page.incl.pl1 */ 3 2 3 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 3 4 3 5 dcl max_image_lines 3 6 fixed static options (constant) init (1000); 3 7 dcl max_cols fixed static options (constant) init (20); 3 8 3 9 dcl page_version fixed bin static options (constant) init (5); 3 10 /* composed page structure */ 3 11 dcl 1 page aligned based (const.page_ptr), 3 12 2 version fixed bin, /* version of this structure */ 3 13 2 parms aligned like page_parms, 3 14 /* page formatting parameters */ 3 15 2 hdr aligned like page_header, 3 16 /* page control stuff */ 3 17 2 image_ptr ptr, /* pointer to the madeup page image */ 3 18 2 column_ptr (0:20) ptr, /* pointers to the column structures */ 3 19 2 col_image_ptr 3 20 (-2:21) ptr; /* pointers to column images */ 3 21 /* col -1 is for line numbers and */ 3 22 /* left margin change bars; */ 3 23 /* col -2 is for */ 3 24 /* right margin change bars */ 3 25 /* and/or annotation * / 3 26* /* page control stuff */ 3 27 dcl 1 page_header aligned based (const.page_header_ptr), 3 28 2 sws, 3 29 3 art bit (1) unal, /* 1 = header/footer art */ 3 30 3 blankpage 3 31 bit (1) unal, /* 1 = intentional blank page */ 3 32 3 frontpage 3 33 bit (1) unal, /* 1 = odd page number */ 3 34 3 headed bit (1) unal, /* 1 = page header has been written */ 3 35 3 modified bit (1) unal, /* 1 = page has been modified */ 3 36 3 overflow bit (1) unal, /* OBSOLETE */ 3 37 3 MBZ bit (12) unal, 3 38 3 dot_addltr 3 39 char (1) unal, /* dot page add letter, if any */ 3 40 3 pgc_select 3 41 char (1) unal, /* for selecting change pages */ 3 42 2 baldepth fixed bin (31), /* page depth at balance point */ 3 43 2 balusd fixed bin (31), /* space used at balance point */ 3 44 2 col_count fixed bin, /* highest value of col_index for the page */ 3 45 2 col_index fixed bin, /* column index */ 3 46 2 depth fixed bin (31), /* current page depth */ 3 47 2 hdspc fixed bin (31), /* TOP white space */ 3 48 2 lmarg fixed bin (31), /* left margin for this page */ 3 49 2 net fixed bin (31), /* net usable space on the page */ 3 50 2 pageno char (32) var, /* current page number */ 3 51 2 used fixed bin (31); /* space already used on the page */ 3 52 3 53 dcl page_image_version 3 54 fixed bin (35) static options (constant) init (2); 3 55 /* structure passed to writers */ 3 56 dcl 1 page_image aligned based (page.image_ptr), 3 57 2 version fixed bin (35), /* structure version no */ 3 58 2 count fixed bin, /* count of page image lines */ 3 59 2 file_id char (32) var, /* compout identifier */ 3 60 2 func fixed bin, /* function code; 0 = build, 3 61* 1 = intialize, 2 = cleanup */ 3 62 2 text_ptr ptr, /* pointer to the text area */ 3 63 /* the image lines */ 3 64 2 line (max_image_lines), 3 65 3 sws, 3 66 4 quad bit (6) unal, /* text set position flags */ 3 67 4 art bit (1) unal, /* 1 = artwork in the line */ 3 68 4 cbar bit (1) unal, /* 1= line has a cbar, dont erase */ 3 69 4 mrgtxt bit (1) unal, /* line number or marginal note */ 3 70 4 white bit (1) unal, /* line is white */ 3 71 4 MBZ bit (26) unal, 3 72 3 depth fixed bin (31), /* page depth for the text */ 3 73 3 gaps fixed bin, /* number of WS gaps in the line */ 3 74 3 info like text_entry.info, 3 75 /* input file info */ 3 76 3 lead fixed bin (31), /* lead value if trailing WS */ 3 77 3 lfnt fixed bin, /* font at the left margin */ 3 78 3 lmarg fixed bin (31), /* text left margin position */ 3 79 3 lsize fixed bin (31), /* pointsize at the left margin */ 3 80 3 net fixed bin (31), /* net width for filling */ 3 81 3 pos fixed bin (31), /* current horiz position */ 3 82 3 ptr ptr, /* pointer to the text */ 3 83 3 rmarg fixed bin (31), /* text right margin position */ 3 84 3 width fixed bin (31); /* width of the text */ 3 85 /* current page formatting parms */ 3 86 dcl 1 page_parms aligned based (const.page_parms_ptr), 3 87 2 init_page_depth 3 88 fixed bin (31), /* initial page depth */ 3 89 2 length fixed bin (31), /* page length */ 3 90 2 lmarg, /* page left margin */ 3 91 3 even fixed bin (31), 3 92 3 odd fixed bin (31), 3 93 2 margin, /* margin values */ 3 94 3 top fixed bin (31), 3 95 3 header fixed bin (31), 3 96 3 footer fixed bin (31), 3 97 3 bottom fixed bin (31), 3 98 2 measure fixed bin (31), /* line space available for text */ 3 99 2 net, /* net usable space on page */ 3 100 3 even fixed bin (31), /* even pages */ 3 101 3 odd fixed bin (31), /* odd pages */ 3 102 /* arrays at the end */ 3 103 2 cols, /* columns defined for the page */ 3 104 3 bal bit (1) unal, /* column balancing control flag */ 3 105 3 MBZ bit (17) unal, 3 106 3 count fixed bin unal; /* the number of columns */ 3 107 /* default page formatting parms */ 3 108 dcl 1 init_page_parms 3 109 aligned like page_parms 3 110 based (const.init_page_parms_ptr); 3 111 3 112 /* END INCLUDE FILE comp_page.incl.pl1 */ 243 4 1 /* BEGIN INCLUDE FILE comp_shared.incl.pl1 */ 4 2 4 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 4 4 4 5 dcl shared_version fixed bin (35) static options (constant) init (17); 4 6 4 7 dcl 1 shared aligned based (const.shared_ptr), 4 8 2 version fixed bin (35), /* version of this structure */ 4 9 2 chars, 4 10 ( 3 sym_delim, /* delimiter for symbols */ 4 11 3 ttl_delim, /* delimiter for title parts */ 4 12 3 wrd_brkr /* word break character */ 4 13 ) char (1) unal, 4 14 3 PAD char (1) unal, 4 15 2 cbar_type char (4) var, /* change bar type */ 4 16 2 dot_add_letter /* dot page add letter */ 4 17 char (1) var, 4 18 2 EN_width fixed bin (31), /* width of EN in current font */ 4 19 2 eqn_refct fixed bin, /* equation reference counter */ 4 20 2 footref_fcs /* footnote ref FCS string */ 4 21 char (8) aligned, 4 22 2 ftn_reset char (8) var, /* footnote reset mode */ 4 23 2 ftnrefct fixed bin, /* footnote ref counter */ 4 24 2 hyph_size fixed bin (31), /* least word part size for hyphing */ 4 25 2 if_nest, /* if/then/else logic control */ 4 26 3 ndx fixed bin, /* depth of logic nest */ 4 27 3 e (25), /* nest entries */ 4 28 /* .if control switch */ 4 29 4 sw fixed bin, /* 0=off, 1=(then), -1=(else) */ 4 30 4 info aligned like text_entry.info, 4 31 4 line char (256) var, /* the control line */ 4 32 2 indctl, /* indent ctls stack */ 4 33 3 ndx fixed bin, /* current level */ 4 34 /* switch bits */ 4 35 3 stk (0:35) bit (1) unal, 4 36 2 input_dirname 4 37 char (168) var, /* dir containing current input file */ 4 38 2 input_filename 4 39 char (200) var, /* current input file name */ 4 40 2 lead fixed bin (31), /* current linespacing value */ 4 41 2 lit_count fixed bin (35), /* count of literal lines */ 4 42 2 next_pagenmbr 4 43 char (32) var, /* next page number / */ 4 44 2 output_file 4 45 char (32) var, /* output file identifier */ 4 46 2 pagecount fixed bin, /* number of pages produced */ 4 47 2 pagenum, /* page number structure */ 4 48 3 index fixed bin, /* level currently counting */ 4 49 ( 4 50 3 sep char (1) unal, /* separator chars */ 4 51 3 nmbr fixed bin (31), /* the counters */ 4 52 3 mode /* display modes */ 4 53 fixed bin (8) unal 4 54 ) dimension (20), 4 55 2 parameter char (254) var, /* command line parameter */ 4 56 2 param_pres bit (1), /* passed parameter flag */ 4 57 2 pass_counter 4 58 fixed bin, /* pass counter */ 4 59 2 picture, /* picture blocks */ 4 60 3 count fixed bin, /* number of them */ 4 61 3 space fixed bin (31), /* total picture space */ 4 62 3 blk (10), /* picture blocks */ 4 63 4 type char (4), /* type = page/col */ 4 64 4 place char (4), /* place = top/cen/bot */ 4 65 4 ptr ptr, /* pointer to block */ 4 66 4 size fixed bin (31), /* size of the picture */ 4 67 2 ptrs, 4 68 ( 3 aux_file_data_ptr, /* -> auxiliary file data */ 4 69 3 blank_footer_ptr, /* -> blank page footer */ 4 70 3 blank_header_ptr, /* -> blank page header */ 4 71 3 blank_text_ptr, /* -> blank page text */ 4 72 3 blkptr, /* -> active text */ 4 73 3 colptr, /* current column */ 4 74 3 compout_ptr, /* iocb pointer for output */ 4 75 3 compx_ptr, /* iocb pointer for compx file */ 4 76 3 ctb_ptr, /* current line artwork table */ 4 77 3 epftrptr, /* even page footer block */ 4 78 3 ephdrptr, /* even page header block */ 4 79 3 fcb_ptr, /* input file control block pointer */ 4 80 3 ftnblk_data_ptr, /* footnote block data pointer */ 4 81 3 footnote_header_ptr, /* footnote header "title" */ 4 82 3 graphic_page_ptr, /* graphic output page */ 4 83 3 hit_data_ptr, /* hit data pointer */ 4 84 3 htab_ptr, /* horizontal tab tables */ 4 85 3 hwrd_data_ptr, /* local hyphenation table */ 4 86 3 insert_ptr, /* data entry for current input file */ 4 87 3 opftrptr, /* odd page footer block */ 4 88 3 ophdrptr, /* odd page header block */ 4 89 3 ptb_ptr, /* previous line artwork table */ 4 90 3 spcl_blkptr, /* "special" block pointer */ 4 91 3 tbldata_ptr, /* table column data structure */ 4 92 3 tblkdata_ptr, /* text block data array */ 4 93 3 text_header_ptr /* empty text header structure */ 4 94 ) ptr, 4 95 2 scale, /* space conversion scale factors */ 4 96 3 horz fixed bin (31), /* horizontal */ 4 97 3 vert fixed bin (31), /* vertical */ 4 98 2 source_filename 4 99 char (200) var, /* current source file name */ 4 100 2 sws, /* switch bits */ 4 101 ( 3 bug_mode, /* debug mode */ 4 102 3 compout_not_headed, /* compout is not headed */ 4 103 3 end_input, /* EOF for current input file */ 4 104 3 end_output, /* no more output is wanted */ 4 105 3 firstpass, /* first pass over input */ 4 106 3 ftn_mode, /* in footnote mode */ 4 107 3 hyph_mode, /* hyphenating mode */ 4 108 3 inserting_hfc, /* inserting hdr, ftr, or cap */ 4 109 3 literal_mode, /* literal line mode flag */ 4 110 3 pageblock, /* blocks belong to page */ 4 111 3 picture_mode, /* building a picture */ 4 112 3 print_flag, /* producing output */ 4 113 3 purge_ftns, /* purging footnotes */ 4 114 3 suppress_footref, /* suppress next footnote ref */ 4 115 3 table_mode /* table mode */ 4 116 ) bit (1) unal, 4 117 3 MBZ bit (21) unal, 4 118 2 trans, /* trans table for .tr */ 4 119 3 in char (128) var, /* input chars */ 4 120 3 out char (128) var, /* output chars */ 4 121 2 widow_size fixed bin (31), /* widow size */ 4 122 2 widow_foot fixed bin (31); /* widow for footnotes */ 4 123 /* to save shared data between files/passes */ 4 124 dcl 1 save_shared aligned like shared based (const.save_shared_ptr); 4 125 4 126 dcl dot_addltr_symb_index 4 127 fixed bin static options (constant) init (12); 4 128 dcl max_text_lines fixed bin static options (constant) init (1000); 4 129 dcl mode_string char (16) static options (constant) 4 130 init ("arbihxocalaurlru"); 4 131 /* value overlays */ 4 132 dcl flag_value bit (1) based; 4 133 dcl num_value fixed bin (31) based; 4 134 4 135 /* END INCLUDE FILE comp_shared.incl.pl1 */ 244 5 1 /* BEGIN INCLUDE FILE comp_stack_box.incl.pl1 */ 5 2 5 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 5 4 5 5 dcl arg_count_symb_index 5 6 fixed bin static options (constant) init (2); 5 7 5 8 dcl stkbox_ptr ptr; 5 9 dcl 1 stack_box aligned like init_stack_box based (stkbox_ptr); 5 10 5 11 dcl 1 init_stack_box 5 12 aligned static options (constant), 5 13 2 bthrd ptr init (null ()), 5 14 /* backward thread */ 5 15 2 fthrd ptr init (null ()), 5 16 /* forward thread */ 5 17 2 level fixed bin init (0), 5 18 /* stack level */ 5 19 2 numval fixed bin (31) init (0), 5 20 /* numeric value */ 5 21 2 incrval fixed bin (31) init (0), 5 22 /* counter increment */ 5 23 2 txtstr char (1020) var init (""); 5 24 /* string value */ 5 25 5 26 /* END INCLUDE FILE comp_stack_box.incl.pl1 */ 245 6 1 /* BEGIN INCLUDE FILE comp_text.incl.pl1 */ 6 2 6 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 6 4 6 5 dcl 1 tblkdata /* data for allocated text blocks */ 6 6 aligned based (shared.tblkdata_ptr), 6 7 2 block, /* block pool */ 6 8 3 count fixed bin, 6 9 3 ptr (500) ptr, /* block pointers */ 6 10 /* block state flags */ 6 11 3 free (500) bit (1) unal, 6 12 2 line_area, /* line area pool */ 6 13 3 count fixed bin, 6 14 3 ptr (500) ptr, /* area pointers */ 6 15 /* area state flags */ 6 16 3 free (500) bit (1) unal, 6 17 2 text_area, /* text area pool */ 6 18 3 count fixed bin, 6 19 3 ptr (500) ptr, /* area pointers */ 6 20 /* area state flags */ 6 21 3 free (500) bit (1) unal, 6 22 3 string_area_count 6 23 fixed bin; /* line areas */ 6 24 dcl LINE_AREA_SIZE fixed bin static options (constant) init (24); 6 25 dcl line_area_ptr ptr init (null); 6 26 dcl 1 line_area aligned based (line_area_ptr), 6 27 2 next ptr, /* forward thread */ 6 28 2 prev ptr, /* backward thread */ 6 29 2 count fixed bin, /* number of lines allocated */ 6 30 2 ndx fixed bin, /* index of current line */ 6 31 2 pndx fixed bin, /* area pool index */ 6 32 2 linptr (LINE_AREA_SIZE) ptr; 6 33 /* text areas */ 6 34 dcl TEXT_AREA_SIZE fixed bin static options (constant) init (6); 6 35 dcl text_area_ptr ptr init (null); 6 36 dcl 1 text_area aligned based (text_area_ptr), 6 37 2 next ptr, /* forward thread */ 6 38 2 count fixed bin, /* number of areas allocated */ 6 39 2 ndx fixed bin, /* index of current strarea */ 6 40 2 pndx fixed bin, /* area pool index */ 6 41 2 strareaptr (TEXT_AREA_SIZE) ptr; 6 42 /* text string area */ 6 43 dcl string_area (256) fixed bin based; 6 44 dcl txtstrptr ptr; /* current text string */ 6 45 dcl txtstr char (1020) var based (txtstrptr); 6 46 6 47 dcl TEXT_VERSION fixed bin static options (constant) init (9); 6 48 /* general text block */ 6 49 dcl 1 text aligned based (shared.blkptr), 6 50 2 version fixed bin, /* version of structure */ 6 51 2 blkndx fixed bin, /* block data index */ 6 52 2 blktype char (2), /* block type code */ 6 53 /* dynamic block control stuff */ 6 54 2 hdr aligned like text_header, 6 55 /* text read from input file */ 6 56 2 input aligned like text_entry, 6 57 2 input_line char (1020) var,/* input buffer */ 6 58 2 line_area, 6 59 3 first ptr, /* head of line area thread */ 6 60 3 cur ptr, /* current line area */ 6 61 2 next_text ptr, /* next text string */ 6 62 /* text formatting parameters */ 6 63 2 parms aligned like default_parms, 6 64 2 text_area, 6 65 3 first ptr, /* head of text area thread */ 6 66 3 cur ptr; /* current text area */ 6 67 /* an empty text block line */ 6 68 dcl 1 text_entry aligned based (const.text_entry_ptr), 6 69 2 sws, /* unaligned switches, etc. */ 6 70 3 art bit (1) unal, /* line has artwork */ 6 71 3 cbar, /* change bar flags */ 6 72 4 add bit (1) unal, /* text addition flag */ 6 73 4 del bit (1) unal, /* text deletion flag */ 6 74 4 mod bit (1) unal, /* text modification flag */ 6 75 3 default bit (1) unal, /* 1 = default case as needed */ 6 76 3 DVctl bit (1) unal, /* 1 = line is a device ctl string */ 6 77 3 embedded bit (1) unal, /* 1 = line has an embedded control */ 6 78 3 end_keep bit (1) unal, /* 1= line ends a keep */ 6 79 3 fnt_chng bit (1) unal, /* 1 = text is a font change string */ 6 80 3 footref bit (1) unal, /* 1 = line has a footnote reference */ 6 81 3 hanging bit (1) unal, /* 1 = a hanging undent */ 6 82 3 keep bit (1) unal, /* 1 = unsplittable line */ 6 83 3 no_trim bit (1) unal, /* 1 = untrimmable white line */ 6 84 3 oflo bit (1) unal, /* line causes overflow */ 6 85 3 punct bit (1) unal, /* 1 = line ends with punctuation */ 6 86 3 quad bit (6) unal, /* text alignment flags */ 6 87 3 space_added /* 1= line has added space */ 6 88 bit (1) unal, 6 89 3 spcl, /* special entry - not output text */ 6 90 4 file bit (1) unal, /* 1= output to special file */ 6 91 4 blk_splt /* 1= action at block split time */ 6 92 bit (1) unal, 6 93 4 page_mkup /* 1= action at page makeup time */ 6 94 bit (1) unal, 6 95 3 table bit (1) unal, /* 1= line is a table entry */ 6 96 3 tblspc bit (1) unal, /* 1= WS fill for table mode */ 6 97 3 title bit (1) unal, /* 1= line is a */ 6 98 3 unspnct bit (1) unal, /* 1= underscore punctuation */ 6 99 3 unstop bit (1) unal, /* 1= line is/ends with UNSTOP */ 6 100 3 unstrt bit (1) unal, /* 1= line is/ends with UNSTART */ 6 101 3 unswrds bit (1) unal, /* 1= underscore words only */ 6 102 3 white bit (1) unal, /* 1= line is white space */ 6 103 3 und_prot bit (1) unal, /* 1= undent is protected */ 6 104 3 MBZ bit (4) unal, 6 105 2 art_start fixed bin unal, /* start of art string in line */ 6 106 2 art_len fixed bin unal, /* length of art string in line */ 6 107 2 cbar_level /* change level for cbars */ 6 108 char (1) aligned, 6 109 2 cur, /* current scanning data for line */ 6 110 3 chrct fixed bin, /* count of chars scanned */ 6 111 3 gaps fixed bin, /* gap count */ 6 112 3 width fixed bin (31), /* width of font chars */ 6 113 3 min fixed bin (31), /* width of min spbnds */ 6 114 3 avg fixed bin (31), /* width of avg spbnds */ 6 115 3 max fixed bin (31), /* width of max spbnds */ 6 116 3 font like fntstk_entry, 6 117 2 depth fixed bin (31), /* page depth for line */ 6 118 /* font at start of line */ 6 119 2 font like fntstk_entry, 6 120 2 index fixed bin (21), /* char index for line scanning */ 6 121 2 info, /* stuff created during line input */ 6 122 3 fileno fixed bin, /* input file index */ 6 123 3 lineno fixed bin, /* input file line number */ 6 124 3 lineno0 fixed bin, /* call_box0 line number */ 6 125 2 linespace fixed bin (31), /* linespace value for the line */ 6 126 2 lmarg fixed bin (31), /* adjusted left margin position */ 6 127 2 mod_len fixed bin, /* length of modified text */ 6 128 2 mod_start fixed bin, /* index for start of modified text */ 6 129 2 net fixed bin (31), /* net line width for filling */ 6 130 2 ptr ptr, /* pointer to the actual text */ 6 131 2 rmarg fixed bin (31), /* adjusted right margin position */ 6 132 2 spcl_iocbp ptr, /* iocb ptr for spcl line */ 6 133 2 sym_delim char (1) unal, /* symbol delimiter for this line */ 6 134 2 tblcol fixed bin, /* column for table entries */ 6 135 2 title_delim 6 136 char (1) unal, /* title delimiter if a <title> */ 6 137 2 title_index 6 138 fixed bin, /* <title> block index for line */ 6 139 2 width fixed bin (31), /* width of text */ 6 140 2 ftn, /* footnote info for line */ 6 141 3 ct fixed bin, /* number of footnote refs */ 6 142 3 used fixed bin (31), /* space used */ 6 143 3 e (40), /* limit is arbitrary */ 6 144 4 blkndx fixed bin unal, /* block index of footnote - if this 6 145* value is 0, then .frf was used */ 6 146 4 refno fixed bin unal; /* reference number */ 6 147 6 148 dcl ( 6 149 quadi init ("40"b3), /* set to the inside margin */ 6 150 quado init ("20"b3), /* set to the outside margin */ 6 151 quadl init ("10"b3), /* set left */ 6 152 quadc init ("04"b3), /* set centered */ 6 153 quadr init ("02"b3), /* set right */ 6 154 just init ("01"b3) /* justified */ 6 155 ) bit (6) static options (constant); 6 156 /* control line structure */ 6 157 dcl 1 ctl aligned like text_entry based (const.ctl_ptr); 6 158 dcl ctl_line char (1020) var based (ctl.ptr); 6 159 6 160 dcl txtlinptr ptr; /* the current text line */ 6 161 dcl 1 txtlin aligned like text_entry based (txtlinptr); 6 162 /* empty text header structure */ 6 163 dcl 1 text_header aligned based (const.text_header_ptr), 6 164 2 sws, /* control switches */ 6 165 3 art bit (1) unal, /* block has artwork */ 6 166 3 dfrftn bit (1) unal, /* block is a deferred footnote */ 6 167 3 modified bit (1) unal, /* block contains modified lines */ 6 168 3 no_trim bit (1) unal, /* 1 = dont trim WS block */ 6 169 3 oflo_ftn bit (1) unal, /* overflow footnote */ 6 170 3 tblblk bit (1) unal, /* a table block */ 6 171 3 unref bit (1) unal, /* block is an unreffed footnote */ 6 172 3 white bit (1) unal, /* block is a white space block */ 6 173 3 picture bit (1) unal, /* picture block */ 6 174 3 orphan bit (1) unal, /* 1= footnote is an orphan */ 6 175 3 MBZ bit (26) unal, 6 176 2 art_count fixed bin unal, /* to count input art lines */ 6 177 2 blkptr ptr, /* pointer to suspended block */ 6 178 2 cap_size fixed bin unal, /* line count of text caption */ 6 179 2 cap_used fixed bin (31), /* size of text caption */ 6 180 2 colno fixed bin unal, /* column owning the block */ 6 181 2 count fixed bin unal, /* line count for block */ 6 182 2 eqn_line_count 6 183 fixed bin unal, /* counter for equation lines */ 6 184 2 first_text fixed bin unal, /* OBSOLETE */ 6 185 2 ftn, /* footnotes */ 6 186 3 ct fixed bin, /* count */ 6 187 3 usd fixed bin (31), /* space used */ 6 188 3 blkndx (40) fixed bin, /* footnote block index values */ 6 189 2 head_size fixed bin, /* line count of text header */ 6 190 2 head_used fixed bin (31), /* size of text header */ 6 191 2 index fixed bin unal, /* block index of next output line */ 6 192 2 keep_count fixed bin unal, /* to count input keep lines */ 6 193 2 last_line fixed bin, /* last text line in column */ 6 194 2 mx_ttl_ndx fixed bin, /* max title index value in block */ 6 195 2 name char (32) var, /* block name, if any */ 6 196 2 nofill_count /* to count nofill lines */ 6 197 fixed bin, 6 198 2 parms_ptr ptr, /* parms for suspended block */ 6 199 2 refer fixed bin, /* inter-block reference */ 6 200 2 refer_index /* OBSOLETE */ 6 201 fixed bin, /* a reference */ 6 202 2 split fixed bin, /* split point for balancing */ 6 203 2 trl_ws fixed bin (31), /* trailing WS */ 6 204 2 used fixed bin (31); /* page space used by a column/block */ 6 205 /* text formatting parameters */ 6 206 dcl 1 text_parms aligned like default_parms 6 207 based (const.text_parms_ptr); 6 208 6 209 dcl 1 current_parms 6 210 aligned like default_parms 6 211 based (const.current_parms_ptr); 6 212 6 213 dcl 1 default_parms 6 214 aligned based (const.default_parms_ptr), 6 215 2 sws, /* control switches */ 6 216 3 quad bit (6) unal, /* text alignment mode */ 6 217 3 art bit (1) unal, /* 1 = block countains artwork */ 6 218 3 cbar, /* change bar flags */ 6 219 4 add bit (1) unal, /* text addition flag */ 6 220 4 del bit (1) unal, /* text deletion flag for next line */ 6 221 4 mod bit (1) unal, /* text modification flag */ 6 222 3 fill_mode 6 223 bit (1) unal, /* 1 = fill mode ON */ 6 224 3 footnote bit (1) unal, /* block is a footnote */ 6 225 3 hfc bit (1) unal, /* OBSOLETE */ 6 226 3 htab_mode 6 227 bit (1) unal, /* 1 = horizontal tab mode ON */ 6 228 3 keep bit (1) unal, /* keep mode */ 6 229 3 page bit (1) unal, /* block belongs to page, not text */ 6 230 3 title_mode 6 231 bit (1) unal, /* 0 = plain text, 1 = <title>s OK */ 6 232 3 MBZ bit (19) unal, 6 233 2 ftrptr ptr, /* text caption block */ 6 234 2 cbar_level /* change level for cbars */ 6 235 char (1) aligned, 6 236 2 hdrptr ptr, /* text header block */ 6 237 2 left, /* left margin data */ 6 238 3 indent fixed bin (31), 6 239 3 undent fixed bin (31), 6 240 2 linespace fixed bin (31), /* line spacing value */ 6 241 2 measure fixed bin (31), /* line space for text */ 6 242 /* right margin data */ 6 243 2 right like default_parms.left, 6 244 2 fntstk, /* stack of last 20 font changes */ 6 245 3 index fixed bin, /* which one in use */ 6 246 /* entry(0) is the default */ 6 247 3 entry (0:19) like fntstk_entry; 6 248 6 249 dcl hfcblk_ptr ptr; 6 250 dcl 1 hfcblk aligned like text based (hfcblk_ptr); 6 251 6 252 /* END INCLUDE FILE comp_text.incl.pl1 */ 246 7 1 /* BEGIN INCLUDE FILE comp_tree.incl.pl1 */ 7 2 7 3 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 7 4 7 5 dcl 1 tree /* symbol tree structure */ 7 6 based (const.tree_ptr) aligned, 7 7 ( 2 align_mode, /* current text alignment mode */ 7 8 2 art_mode, /* artwork mode */ 7 9 2 block_index, /* current block index */ 7 10 2 block_name, /* name of current block */ 7 11 2 bottom_margin, /* page bottom margin */ 7 12 2 calling_file_name, /* caller of inserted file */ 7 13 2 callers_lineno, /* lineno of .ifi in calling file */ 7 14 2 devclass, /* DeviceClass */ 7 15 2 devname, /* DeviceName */ 7 16 2 dot_addltr, /* add letter of dot page */ 7 17 2 equation_mode, /* equation mode */ 7 18 2 fill_mode, /* text filling mode */ 7 19 2 fontname, /* fontname function */ 7 20 2 footer_margin, /* page footer margin function */ 7 21 2 frontpage, /* front page flag function */ 7 22 2 head_space, /* head space function */ 7 23 2 header_margin, /* page header margin function */ 7 24 2 keep_mode, /* block splitting mode */ 7 25 2 left_indent, /* left margin indention */ 7 26 2 left_undent, /* left margin adjustment */ 7 27 2 line_input, /* line input function */ 7 28 2 linesleft, /* lines left function */ 7 29 2 linespace, /* linespace function */ 7 30 2 measure_bif, /* measure function */ 7 31 2 next_pageno, /* next page number */ 7 32 2 pagecount, /* total page count function */ 7 33 2 pagelines, /* line number on page function */ 7 34 2 page_length, /* current page length function */ 7 35 2 pageno, /* page number function */ 7 36 2 pointsize, /* pointsize function */ 7 37 2 right_indent, /* right margin indention */ 7 38 2 right_undent, /* right margin adjustment */ 7 39 2 symbol_delimiter, /* symbol delimiter function */ 7 40 2 text_depth, /* text depth function */ 7 41 2 text_lineno, /* input file line number for output_line */ 7 42 2 text_width, /* text width function */ 7 43 2 title_delimiter, /* title delimiter function */ 7 44 2 top_margin, /* page top margin function */ 7 45 2 trans, /* translation table for .trf */ 7 46 2 userinput /* terminal insert function */ 7 47 ) label, /**/ 7 48 /* VARIABLE TABLES */ 7 49 2 count fixed bin, /* variable areas allocated */ 7 50 2 areandx fixed bin, /* current area */ 7 51 /* entry count per area */ 7 52 2 entry_ct (MAX_TREE_AREAS) fixed bin, 7 53 2 entryndx fixed bin, /* current entry in area */ 7 54 ( /* storage area pointers */ 7 55 2 flag_ptr, /* flags */ 7 56 2 name_ptr, /* names */ 7 57 2 num_ptr, /* number values */ 7 58 2 incr_ptr, /* counter increments */ 7 59 2 var_ptr /* variable structures */ 7 60 ) ptr dimension (MAX_TREE_AREAS); 7 61 /* flag values */ 7 62 dcl tree_flags (MAX_TREE_AREA_CT) bit (1) aligned 7 63 based (tree.flag_ptr (tree.areandx)); 7 64 /* counter increment values */ 7 65 dcl tree_incrs (MAX_TREE_AREA_CT) fixed bin (31) 7 66 based (tree.incr_ptr (tree.areandx)); 7 67 /* variable names */ 7 68 dcl tree_names_ptr ptr init (null); 7 69 dcl tree_names (MAX_TREE_AREA_CT) char (32) unal 7 70 based (tree_names_ptr); 7 71 /* numeric values */ 7 72 dcl tree_nums (MAX_TREE_AREA_CT) fixed bin (31) 7 73 based (tree.num_ptr (tree.areandx)); 7 74 7 75 dcl tree_var_ptr ptr init (null);/* variable entry structures */ 7 76 dcl 1 tree_var (MAX_TREE_AREA_CT) aligned based (tree_var_ptr), 7 77 2 flags bit (9) aligned,/* type flags */ 7 78 2 mode fixed bin, /* numeric display mode */ 7 79 2 flag_loc ptr, /* flag value pointer */ 7 80 2 num_loc ptr, /* num value pointer */ 7 81 2 incr_loc ptr, /* num increment pointer */ 7 82 2 str_loc ptr; /* str value pointer */ 7 83 7 84 /* END INCLUDE FILE comp_tree.incl.pl1 */ 247 8 1 /* BEGIN INDCLUDE FILE comp_varattrs.incl.pl1 */ 8 2 8 3 /* Written - 4/82 - EJW 8 4* 8 5* Defines constants for all variable attribute flag bits in compose */ 8 6 8 7 /* Modified - 5/83 - EJW - Changed binary_attr to unscaled_attr */ 8 8 8 9 dcl (numeric_attr init ("100000000"b), /* binary numeric */ 8 10 counter_attr init ("010000000"b), /* counter */ 8 11 string_attr init ("001000000"b), /* string */ 8 12 flag_attr init ("00010000"b), /* flag */ 8 13 unscaled_attr init ("000010000"b), /* unscaled numeric */ 8 14 function_attr init ("000001000"b), /* function value */ 8 15 hspace_attr init ("000000100"b), /* horizontal millipoint value */ 8 16 vspace_attr init ("000000010"b), /* vertical millipoint value */ 8 17 push_attr init ("000000001"b)) /* pushable variable */ 8 18 bit (9) unal static options (constant); 8 19 8 20 /* END INCLUDE FILE comp_varattrs.incl.pl1 */ 248 9 1 /* BEGIN INCLUDE FILE compstat.incl.pl1 - external static data for compose 9 2* 9 3* This storage is converted from external (as declared) to internal by the 9 4* binder and contains items that must be accessible to both the bound and 9 5* unbound program. */ 9 6 9 7 /* Written: ??/??/7? - EJW 9 8* Modified: 10/18/84 - EJW - (First recorded change) Added current_parms_ptr 9 9* and removed the codes array; version 6. 9 10**/ 9 11 9 12 /* format: style2,ind2,ll79,dclind4,idind15,comcol41,linecom */ 9 13 9 14 dcl 1 compstat$compconst 9 15 aligned like const ext static; 9 16 9 17 dcl const_version fixed bin (35) static options (constant) init (6); 9 18 dcl MAX_TREE_AREA_CT /* entries in a tree area */ 9 19 fixed bin static options (constant) init (80); 9 20 dcl MAX_TREE_AREAS /* number of tree areas */ 9 21 fixed bin static options (constant) init (20); 9 22 9 23 dcl 1 const aligned based (compstat$compconst.ptr), 9 24 2 ptr ptr, /* self pointer - MUST BE FIRST */ 9 25 2 version fixed bin (35), /* structure version */ 9 26 2 art_symbols /* string of art symbols */ 9 27 char (28) aligned, 9 28 2 builtin_count /* count of builtin variables */ 9 29 fixed bin, 9 30 2 comp_dir char (200), /* dir in which compose lives */ 9 31 2 comp_version 9 32 char (8) var, /* compose version id */ 9 33 2 date_value char (8) var, /* current date */ 9 34 2 dsm_name char (32), /* device support module name */ 9 35 2 dvt_name char (32), /* device table name */ 9 36 2 max_seg_chars 9 37 fixed bin (35), /* char count in a max seg */ 9 38 2 null_str char (1) var, /* an empty string */ 9 39 2 ptrs, 9 40 ( 3 call_stk_ptr, /* -> insert call stack */ 9 41 3 colhdrptr, /* empty column header structure */ 9 42 3 ctl_ptr, /* input line structure */ 9 43 3 current_parms_ptr, /* current formatting parms */ 9 44 3 default_parms_ptr, /* default initial text parms */ 9 45 3 devptr, /* -> comp_dvt structure */ 9 46 3 dvidptr, /* -> comp_dvid structure */ 9 47 3 errblk_ptr, /* error message block pointer */ 9 48 3 footnote_parms_ptr, /* footnote formatting parms */ 9 49 3 fnttbldata_ptr, /* -> font table data */ 9 50 3 global_area_ptr, /* per invocation storage */ 9 51 3 init_page_parms_ptr, /* default initial page parms */ 9 52 3 insert_data_ptr, /* insert file data block */ 9 53 3 local_area_ptr, /* per file storage */ 9 54 3 loctbl_ptr, /* for font copying */ 9 55 3 option_ptr, /* program options block */ 9 56 3 outproc_ptr, /* device writer for cleanup */ 9 57 3 page_ptr, /* active page structure */ 9 58 3 page_header_ptr, /* empty page header structure */ 9 59 3 page_parms_ptr, /* page formatting parameter block */ 9 60 3 save_shared_ptr, /* saved shared data */ 9 61 3 shared_ptr, /* shared data structure */ 9 62 3 text_entry_ptr, /* empty text entry structure */ 9 63 3 text_header_ptr, /* empty text header structure */ 9 64 3 text_parms_ptr, /* main body formatting parms */ 9 65 3 tree_ptr /* symbol tree structure */ 9 66 ) ptr, 9 67 2 time_value char (6) var; /* time at start */ 9 68 9 69 /* Other external */ 9 70 dcl ( 9 71 ioa_, 9 72 ioa_$nnl 9 73 ) entry options (variable); 9 74 dcl iox_$error_output 9 75 ptr ext static, /* iocb pointer for error_output */ 9 76 iox_$user_input 9 77 ptr ext static, /* iocb pointer for user_input */ 9 78 iox_$user_output 9 79 ptr ext static; /* iocb pointer for user_output */ 9 80 dcl sys_info$max_seg_size 9 81 fixed bin (18) ext static; 9 82 9 83 /* END INCLUDE FILE compstat.incl.pl1 */ 249 250 251 end comp_update_symbol_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/85 0910.5 comp_update_symbol_.pl1 >spec>online>comp>comp_update_symbol_.pl1 241 1 03/01/85 1411.9 comp_entries.incl.pl1 >ldd>include>comp_entries.incl.pl1 242 2 03/01/85 1412.0 comp_fntstk.incl.pl1 >ldd>include>comp_fntstk.incl.pl1 243 3 04/23/85 0912.4 comp_page.incl.pl1 >spec>online>comp>comp_page.incl.pl1 244 4 03/01/85 1412.0 comp_shared.incl.pl1 >ldd>include>comp_shared.incl.pl1 245 5 03/01/85 1412.0 comp_stack_box.incl.pl1 >ldd>include>comp_stack_box.incl.pl1 246 6 04/23/85 0912.6 comp_text.incl.pl1 >spec>online>comp>comp_text.incl.pl1 247 7 03/01/85 1412.0 comp_tree.incl.pl1 >ldd>include>comp_tree.incl.pl1 248 8 03/01/85 1412.0 comp_varattrs.incl.pl1 >ldd>include>comp_varattrs.incl.pl1 249 9 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. CREATE 000413 constant bit(1) initial unaligned dcl 29 set ref 54* LOG constant fixed bin(17,0) initial dcl 31 ref 70 172 MAX_TREE_AREAS constant fixed bin(17,0) initial dcl 9-20 ref 56 80 86 86 86 86 86 91 96 100 106 110 110 113 113 113 113 113 150 154 156 161 163 166 175 175 177 179 186 189 190 195 196 196 198 205 219 219 219 NUM 000447 constant fixed bin(17,0) initial dcl 34 set ref 96* 100* 106* STR constant fixed bin(17,0) initial dcl 36 ref 68 147 addr builtin function dcl 45 ref 62 62 96 96 100 100 106 106 132 132 140 140 143 143 after builtin function dcl 45 ref 100 100 areandx 241 based fixed bin(17,0) level 2 dcl 7-5 set ref 56 80* 86 113* 166* 175 179* 219* before builtin function dcl 45 ref 96 96 buffer parameter varying char dcl 23 set ref 14 50* 93 96 96 100 100 106* 124 127 132* 137 140 bufndx 000100 automatic fixed bin(21,0) dcl 27 set ref 131* 132* 137 137 140 bug_mode 4113 based bit(1) level 3 packed unaligned dcl 4-7 ref 50 80 113 166 179 201 builtin_count 12 based fixed bin(17,0) level 2 dcl 9-23 ref 56 175 code 000101 automatic fixed bin(35,0) dcl 28 set ref 132* 134 comp_expr_eval_ 000012 constant entry external dcl 1-17 ref 96 100 106 132 comp_report_ 000014 constant entry external dcl 1-59 ref 62 140 143 comp_util_$display 000016 constant entry external dcl 1-77 ref 50 166 comp_util_$push 000020 constant entry external dcl 1-92 ref 74 comp_util_$search_tree 000022 constant entry external dcl 1-98 ref 54 compstat$compconst 000024 external static structure level 1 dcl 9-14 const based structure level 1 dcl 9-23 counter_attr constant bit(9) initial unaligned dcl 8-9 ref 91 ctl based structure level 1 dcl 6-157 ctl_line based varying char(1020) dcl 6-158 set ref 62* 88 140* 143* ctl_ptr 132 based pointer level 3 dcl 9-23 ref 62 62 62 88 96 96 100 100 106 106 132 132 140 140 140 143 143 143 dec builtin function dcl 45 ref 219 219 default_parms based structure level 1 dcl 6-213 defsw parameter bit(1) unaligned dcl 21 ref 14 77 divide builtin function dcl 45 ref 219 219 dt_sw 000010 internal static bit(1) initial unaligned dcl 231 set ref 50 80 113 166 179 201 234* 238* entryndx based fixed bin(17,0) level 2 dcl 7-5 set ref 56 80* 91 96 100 106 110 110 113* 113 113 113 113 150 154 156 161 163 166* 175 175 177 179* 186 189 190 195 196 196 198 205 219* 219 219 exptyp 000102 automatic fixed bin(17,0) dcl 30 set ref 132* 147 172 flag_attr constant bit(9) initial unaligned dcl 8-9 ref 175 flag_loc 2 based pointer array level 2 dcl 7-76 ref 177 flag_value based bit(1) unaligned dcl 4-132 set ref 177* flags based bit(9) array level 2 dcl 7-76 set ref 91* 110* 110 150 154* 161* 175* 186 190* 195* 196* 196 205 fntstk_entry based structure level 1 dcl 2-6 hspace_attr constant bit(9) initial unaligned dcl 8-9 ref 205 incr_loc 6 based pointer array level 2 dcl 7-76 ref 100 113 index builtin function dcl 45 ref 88 93 124 info 161 based structure level 2 in structure "text_entry" dcl 6-68 in procedure "comp_update_symbol_" info 277 based structure level 3 in structure "text" dcl 6-49 in procedure "comp_update_symbol_" info 161 based structure level 2 in structure "txtlin" dcl 6-161 in procedure "comp_update_symbol_" info 161 based structure level 2 in structure "ctl" dcl 6-157 in procedure "comp_update_symbol_" set ref 62 62 96 96 100 100 106 106 132 132 140 140 143 143 info 277 based structure level 3 in structure "hfcblk" dcl 6-250 in procedure "comp_update_symbol_" init_stack_box 000000 constant structure level 1 dcl 5-11 ioa_ 000026 constant entry external dcl 9-70 ref 50 80 113 166 179 219 left 1016 based structure level 3 in structure "hfcblk" dcl 6-250 in procedure "comp_update_symbol_" left 12 based structure level 2 in structure "text_parms" dcl 6-206 in procedure "comp_update_symbol_" left 12 based structure level 2 in structure "current_parms" dcl 6-209 in procedure "comp_update_symbol_" left 1016 based structure level 3 in structure "text" dcl 6-49 in procedure "comp_update_symbol_" left 12 based structure level 2 in structure "default_parms" dcl 6-213 in procedure "comp_update_symbol_" length builtin function dcl 45 ref 137 166 166 line_area_ptr 000514 automatic pointer initial dcl 6-25 set ref 6-25* logval 000103 automatic bit(1) unaligned dcl 32 set ref 132* 177 179* mode 1 based fixed bin(17,0) array level 2 dcl 7-76 ref 113 113 219 219 mode_string 000407 constant char(16) initial unaligned dcl 4-129 ref 113 113 219 219 needtyp 000104 automatic fixed bin(17,0) dcl 33 set ref 48* 68* 70* 132* null builtin function dcl 45 ref 6-25 6-35 7-68 7-75 num_loc 4 based pointer array level 2 dcl 7-76 ref 96 106 113 163 189 198 num_value based fixed bin(31,0) dcl 4-133 set ref 96* 100* 106* 113* 113* 189* numeric_attr constant bit(9) initial unaligned dcl 8-9 ref 91 numval 5 based fixed bin(31,0) initial level 2 in structure "stack_box" dcl 5-9 in procedure "comp_update_symbol_" set ref 198* numval 000105 automatic fixed bin(31,0) dcl 35 in procedure "comp_update_symbol_" set ref 132* 189 198 219 219 page_header based structure level 1 dcl 3-27 page_parms based structure level 1 dcl 3-86 priv parameter bit(1) unaligned dcl 19 set ref 14 50* 59 ptr 000024 external static pointer level 2 in structure "compstat$compconst" dcl 9-14 in procedure "comp_update_symbol_" ref 50 56 56 56 62 62 62 80 80 80 86 86 88 91 96 96 96 100 100 100 106 106 106 110 110 113 113 113 113 113 113 113 132 132 140 140 140 143 143 143 150 154 156 161 163 166 166 166 175 175 175 175 177 179 179 179 186 189 190 195 196 196 198 201 205 219 219 219 219 ptr 172 based pointer level 2 in structure "ctl" dcl 6-157 in procedure "comp_update_symbol_" ref 62 88 140 143 ptrs 126 based structure level 2 dcl 9-23 push_attr constant bit(9) initial unaligned dcl 8-9 ref 161 195 196 round builtin function dcl 45 ref 219 219 219 219 shared based structure level 1 dcl 4-7 shared_ptr 200 based pointer level 3 dcl 9-23 ref 50 80 113 166 179 201 stack parameter bit(1) unaligned dcl 20 set ref 14 50* 74 stack_box based structure level 1 dcl 5-9 str_loc 10 based pointer array level 2 dcl 7-76 ref 156 string_attr constant bit(9) initial unaligned dcl 8-9 ref 154 161 substr builtin function dcl 45 ref 113 113 140 150 186 219 219 sws 4113 based structure level 2 dcl 4-7 symbol parameter char(32) unaligned dcl 22 set ref 14 50* 54* 59 59 68 70 74* 80* 113* 124 124 166* 179* 219* text based structure level 1 dcl 6-49 text_area_ptr 000516 automatic pointer initial dcl 6-35 set ref 6-35* text_entry based structure level 1 dcl 6-68 text_header based structure level 1 dcl 6-163 tree based structure level 1 dcl 7-5 tree_names_ptr 000520 automatic pointer initial dcl 7-68 set ref 7-68* tree_ptr 210 based pointer level 3 dcl 9-23 ref 56 56 80 80 86 86 91 96 100 106 110 110 113 113 113 113 113 113 150 154 156 161 163 166 166 175 175 175 177 179 179 186 189 190 195 196 196 198 205 219 219 219 219 tree_var based structure array level 1 dcl 7-76 tree_var_ptr 000522 automatic pointer initial dcl 7-75 set ref 86* 91 96 100 106 110 110 113 113 113 113 150 154 156 161 163 175 177 186 189 190 195 196 196 198 205 219 219 7-75* txtstr based varying char(1020) dcl 6-45 in procedure "comp_update_symbol_" set ref 156* txtstr 7 based varying char(1020) initial level 2 in structure "stack_box" dcl 5-9 in procedure "comp_update_symbol_" set ref 163* val_attr 000106 automatic bit(9) unaligned dcl 37 set ref 96* 106* 110 132* 190 195 val_key 000107 automatic varying char(5) dcl 38 set ref 209* 215* 219* val_len 000113 automatic fixed bin(17,0) initial dcl 40 set ref 40* val_scale 000112 automatic fixed bin(31,0) dcl 39 set ref 210* 216* 219 219 value 000114 automatic varying char(1020) dcl 42 set ref 127* 132* 156 163 166 166 166* var_ptr based pointer array level 2 dcl 7-5 ref 86 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_AREA_SIZE internal static fixed bin(17,0) initial dcl 6-24 MAX_TREE_AREA_CT internal static fixed bin(17,0) initial dcl 9-18 TEXT_AREA_SIZE internal static fixed bin(17,0) initial dcl 6-34 TEXT_VERSION internal static fixed bin(17,0) initial dcl 6-47 arg_count_symb_index internal static fixed bin(17,0) initial dcl 5-5 comp_ 000000 constant entry external dcl 1-7 comp_art_ 000000 constant entry external dcl 1-8 comp_block_ctls_ 000000 constant entry external dcl 1-9 comp_break_ 000000 constant entry external dcl 1-11 comp_break_ctls_ 000000 constant entry external dcl 1-12 comp_ctls_ 000000 constant entry external dcl 1-14 comp_eject_page_ 000000 constant entry external dcl 1-15 comp_extr_str_ 000000 constant entry external dcl 1-21 comp_fill_ 000000 constant entry external dcl 1-24 comp_font_ 000000 constant entry external dcl 1-25 comp_format_ctls_ 000000 constant entry external dcl 1-26 comp_get_file_$find 000000 constant entry external dcl 1-28 comp_get_file_$open 000000 constant entry external dcl 1-31 comp_head_page_ 000000 constant entry external dcl 1-33 comp_hft_ctls_ 000000 constant entry external dcl 1-35 comp_hft_ctls_$title 000000 constant entry external dcl 1-36 comp_init_$one 000000 constant entry external dcl 1-38 comp_init_$three 000000 constant entry external dcl 1-40 comp_init_$two 000000 constant entry external dcl 1-39 comp_insert_ctls_ 000000 constant entry external dcl 1-42 comp_make_page_ 000000 constant entry external dcl 1-44 comp_make_page_$cleanup 000000 constant entry external dcl 1-46 comp_measure_ 000000 constant entry external dcl 1-48 comp_read_$line 000000 constant entry external dcl 1-57 comp_read_$name 000000 constant entry external dcl 1-50 comp_read_$number 000000 constant entry external dcl 1-53 comp_report_$ctlstr 000000 constant entry external dcl 1-61 comp_report_$exact 000000 constant entry external dcl 1-64 comp_space_ 000000 constant entry external dcl 1-66 comp_tbl_ctls_ 000000 constant entry external dcl 1-68 comp_title_block_ 000000 constant entry external dcl 1-69 comp_update_symbol_ 000000 constant entry external dcl 1-71 comp_use_ref_ 000000 constant entry external dcl 1-74 comp_util_$add_text 000000 constant entry external dcl 1-75 comp_util_$escape 000000 constant entry external dcl 1-80 comp_util_$getblk 000000 constant entry external dcl 1-82 comp_util_$num_display 000000 constant entry external dcl 1-84 comp_util_$pageno 000000 constant entry external dcl 1-86 comp_util_$pictures 000000 constant entry external dcl 1-88 comp_util_$pop 000000 constant entry external dcl 1-91 comp_util_$relblk 000000 constant entry external dcl 1-94 comp_util_$replace_text 000000 constant entry external dcl 1-96 comp_util_$set_bin 000000 constant entry external dcl 1-100 comp_util_$set_net_page 000000 constant entry external dcl 1-104 comp_util_$translate 000000 constant entry external dcl 1-106 comp_write_block_ 000000 constant entry external dcl 1-108 comp_write_page_ 000000 constant entry external dcl 1-110 compose_severity_ external static fixed bin(35,0) dcl 1-5 const_version internal static fixed bin(35,0) initial dcl 9-17 current_parms based structure level 1 dcl 6-209 dot_addltr_symb_index internal static fixed bin(17,0) initial dcl 4-126 fntstk_eptr automatic pointer dcl 2-5 function_attr internal static bit(9) initial unaligned dcl 8-9 hfcblk based structure level 1 dcl 6-250 hfcblk_ptr automatic pointer dcl 6-249 init_page_parms based structure level 1 dcl 3-108 ioa_$nnl 000000 constant entry external dcl 9-70 iox_$error_output external static pointer dcl 9-74 iox_$user_input external static pointer dcl 9-74 iox_$user_output external static pointer dcl 9-74 just internal static bit(6) initial unaligned dcl 6-148 line_area based structure level 1 dcl 6-26 max_cols internal static fixed bin(17,0) initial dcl 3-7 max_image_lines internal static fixed bin(17,0) initial dcl 3-5 max_text_lines internal static fixed bin(17,0) initial dcl 4-128 page based structure level 1 dcl 3-11 page_image based structure level 1 dcl 3-56 page_image_version internal static fixed bin(35,0) initial dcl 3-53 page_version internal static fixed bin(17,0) initial dcl 3-9 quadc internal static bit(6) initial unaligned dcl 6-148 quadi internal static bit(6) initial unaligned dcl 6-148 quadl internal static bit(6) initial unaligned dcl 6-148 quado internal static bit(6) initial unaligned dcl 6-148 quadr internal static bit(6) initial unaligned dcl 6-148 save_shared based structure level 1 dcl 4-124 shared_version internal static fixed bin(35,0) initial dcl 4-5 stkbox_ptr automatic pointer dcl 5-8 string_area based fixed bin(17,0) array dcl 6-43 sys_info$max_seg_size external static fixed bin(18,0) dcl 9-80 tblkdata based structure level 1 dcl 6-5 text_area based structure level 1 dcl 6-36 text_parms based structure level 1 dcl 6-206 tree_flags based bit(1) array dcl 7-62 tree_incrs based fixed bin(31,0) array dcl 7-65 tree_names based char(32) array unaligned dcl 7-69 tree_nums based fixed bin(31,0) array dcl 7-72 txtlin based structure level 1 dcl 6-161 txtlinptr automatic pointer dcl 6-160 txtstrptr automatic pointer dcl 6-44 unscaled_attr internal static bit(9) initial unaligned dcl 8-9 vspace_attr internal static bit(9) initial unaligned dcl 8-9 NAMES DECLARED BY EXPLICIT CONTEXT. comp_update_symbol_ 000643 constant entry external dcl 14 dtf 002604 constant entry external dcl 236 dtn 002571 constant entry external dcl 232 str_vrbl 002144 constant label dcl 150 ref 128 NAME DECLARED BY CONTEXT OR IMPLICATION. bool builtin function ref 205 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2736 2766 2621 2746 Length 3354 2621 30 351 115 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME comp_update_symbol_ 468 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dt_sw comp_update_symbol_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME comp_update_symbol_ 000100 bufndx comp_update_symbol_ 000101 code comp_update_symbol_ 000102 exptyp comp_update_symbol_ 000103 logval comp_update_symbol_ 000104 needtyp comp_update_symbol_ 000105 numval comp_update_symbol_ 000106 val_attr comp_update_symbol_ 000107 val_key comp_update_symbol_ 000112 val_scale comp_update_symbol_ 000113 val_len comp_update_symbol_ 000114 value comp_update_symbol_ 000514 line_area_ptr comp_update_symbol_ 000516 text_area_ptr comp_update_symbol_ 000520 tree_names_ptr comp_update_symbol_ 000522 tree_var_ptr comp_update_symbol_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry ext_entry_desc round_fx1 set_cs_eis index_cs_eis real_to_real_tr divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. comp_expr_eval_ comp_report_ comp_util_$display comp_util_$push comp_util_$search_tree ioa_ 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 40 000626 6 25 000627 6 35 000631 7 68 000632 7 75 000633 14 000636 48 000657 50 000660 54 000756 56 000771 59 001004 62 001023 66 001065 68 001066 70 001075 74 001103 77 001117 80 001125 83 001166 86 001167 88 001212 91 001224 93 001233 96 001247 100 001354 104 001504 106 001506 110 001575 113 001612 121 001671 124 001672 127 001715 128 001726 131 001727 132 001731 134 002007 137 002011 140 002017 143 002074 147 002141 150 002144 154 002160 156 002162 157 002171 161 002172 163 002175 166 002204 170 002305 172 002307 175 002311 177 002332 179 002341 182 002402 186 002403 189 002417 190 002422 191 002425 195 002426 196 002433 198 002435 201 002440 205 002446 209 002451 210 002455 211 002457 215 002460 216 002464 219 002466 229 002567 232 002570 234 002577 235 002602 236 002603 238 002612 239 002614 ----------------------------------------------------------- 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