COMPILATION LISTING OF SEGMENT edit_reqfile Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/18/84 1212.3 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* ****************************************************** 8* * * 9* * * 10* * Copyright (c) 1972 by Massachusetts Institute of * 11* * Technology and Honeywell Information Systems, Inc. * 12* * * 13* * * 14* ****************************************************** */ 15 16 edit_reqfile: erf: proc; 17 18 /* requisition file editor */ 19 20 dcl (path, dn) char (168) aligned, /* path and directory name */ 21 en char (32) aligned, /* entry name */ 22 pj char (12) aligned, /* acct id for find */ 23 (ec, j, nq, num) fixed bin, /* integers */ 24 num24 fixed bin (24), 25 code char (8), /* change code */ 26 func char (8) aligned, /* edit request */ 27 chdt char (8), /* date temp */ 28 ftemp float bin, /* floating temp */ 29 flg fixed bin, /* flag from ask */ 30 (qp, qpp) ptr, /* ptr to reqfile */ 31 ap ptr, /* ptr to arg */ 32 bchr char (168) based (ap) unaligned, /* pickup for arg */ 33 al fixed bin; /* lth of arg */ 34 35 dcl (ask_, ask_$ask_cint, ask_$ask_n, ask_$ask_line, ask_$ask_clr) entry options (variable), 36 com_err_ entry options (variable), 37 expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin), 38 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin), 39 ioa_ entry options (variable), 40 ask_$ask_flo entry options (variable), 41 date_time_ entry (fixed bin (71), char (*)), 42 hcs_$delentry_seg entry (ptr, fixed bin), 43 clock_ entry () returns (fixed bin (71)), 44 hcs_$make_seg entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (5), ptr, fixed bin), 45 hcs_$initiate entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (1), 46 fixed bin (2), ptr, fixed bin), 47 hcs_$terminate_noname entry (ptr, fixed bin), 48 hcs_$set_bc entry (char (*) aligned, char (*) aligned, fixed bin (24), fixed bin); 49 50 dcl (addr, substr, null) builtin; 51 52 dcl reqfile_zap (num24) fixed bin based; 53 54 1 1 /* Requisition file declaration */ 1 2 /* Modified BIM 1984-07-10 for unaligned strings */ 1 3 /* Modified BIM 1984-09-14 foor 3000 size-array */ 1 4 1 5 dcl 1 reqfile based (qp) aligned, /* MIT accounting data */ 1 6 2 nacts fixed, 1 7 2 version fixed bin, 1 8 2 pad (6) bit (36) aligned, 1 9 2 reqfiletab (3000), /* one entry per Multics account */ 1 10 /* same size as projfile */ 1 11 3 acctid char (12) unal, /* account id. usually same as Proj */ 1 12 3 mitacct char (12) unal, /* MIT account no. */ 1 13 3 reqno char (12) unal, /* requisition or PO no. */ 1 14 3 qflag char (8), /* class & activity */ 1 15 3 procssd fixed bin, /* temp for usage report */ 1 16 3 qdn fixed bin (71), /* date on for account */ 1 17 3 qdf fixed bin (71), /* date off */ 1 18 3 billing_name char (32) unal, /* where to send bill */ 1 19 3 billing_addr char (32) unal, 1 20 3 chg_mo float bin (63), /* charges this month */ 1 21 3 chg_tr float bin (63), /* charges this req */ 1 22 3 req_amt float bin (63), /* req face value */ 1 23 3 cutoff fixed bin (71); /* term date for req */ 1 24 1 25 dcl loqh int static fixed bin (17) init (8), /* length of reqfile head */ 1 26 loqe int static fixed bin (17) init (40); /* lth of reqfile entry */ 1 27 1 28 declare REQFILE_VERSION fixed bin init (2) int static options (constant); 1 29 1 30 /* End include file reqfile.incl.pl1 */ 55 56 57 /* - - - - - - - - - - */ 58 59 call cu_$arg_ptr (1, ap, al, ec); /* see if any args */ 60 if ec ^= 0 | al = 0 then do; /* if not, then ... */ 61 path = "reqfile"; /* set up default */ 62 al = 7; /* ... */ 63 end; 64 else path = substr (bchr, 1, al); /* get pathname of reqfile */ 65 66 call expand_path_ (addr (path), al, addr (dn), addr (en), ec); 67 if ec ^= 0 then do; 68 er: call com_err_ (ec, "edit_reqfile", path); 69 return; /* die */ 70 end; 71 call hcs_$initiate (dn, en, "", 0, 1, qpp, ec); /* Initiate real requisition file. */ 72 if qpp = null then go to er; 73 call hcs_$make_seg ("", "", "", 1011b, qp, ec); /* Make scratch seg */ 74 if qp = null then go to er; 75 nq = qpp -> reqfile.nacts; 76 num24 = loqh + nq * loqe; 77 qp -> reqfile_zap = qpp -> reqfile_zap; 78 call hcs_$terminate_noname (qpp, ec); 79 80 if nq = 0 then 81 call ioa_ ("WARNING: reqfile is empty."); 82 83 cmain: j = nq; /* Set pointer to last entry */ 84 cmain1: call ask_$ask_clr; /* Clear input buffer. */ 85 main: call ask_ ("type ", func); /* Ask for editing function. */ 86 87 if func = "f" then go to find; 88 if func = "find" then go to find; 89 90 if func = "c" then go to change; 91 if func = "change" then go to change; 92 93 if func = "p" then go to print; 94 if func = "print" then go to print; 95 96 if func = "file" then go to file; 97 if func = "w" then go to file; 98 if func = "q" then go to quit; 99 if func = "quit" then go to quit; 100 101 if func = "d" then go to delete; 102 if func = "delete" then go to delete; 103 104 if func = "n" then go to next; 105 if func = "next" then go to next; 106 107 if func = "a" then go to add; 108 if func = "add" then go to add; 109 110 if func = "t" then go to top; 111 if func = "top" then go to top; 112 113 if func = "help" then do; 114 call ioa_ ("Instructions:"); 115 call ioa_ ("""f id""^-to find"); 116 call ioa_ ("""c code val code val ... *"" to change"); 117 call ioa_ ("""p -n-""^-to print"); 118 call ioa_ ("""file""^-to file"); 119 call ioa_ ("""a id""^-to add"); 120 call ioa_ ("""n -n-""^-to go to next"); 121 call ioa_ ("""t""^-to go to top"); 122 call ioa_ ("""help""^-for instructions"); 123 go to main; 124 end; 125 126 call ioa_ ("""^a"" illegal. Type ""help"" for instructions.", func); 127 go to cmain1; /* Clear line buffer and go */ 128 129 /* Search for an ID */ 130 131 find: call ask_ ("id ", pj); /* Get req to search for. */ 132 if pj = acctid (j) then go to main; /* Skip out if we're there. */ 133 134 do j = 1 to nq; /* Otherwise, look at all id's. */ 135 if pj = acctid (j) then go to main; /* ... */ 136 end; 137 138 call ioa_ ("Account ""^a"" not found.", pj); /* Missing. Gripe. */ 139 go to cmain; /* Go and clear line buffer. */ 140 141 /* Modify an entry */ 142 143 change: call ask_$ask_n (code, flg); /* Peek to see if any more on line. */ 144 if flg = 0 then call ioa_ ("Type changes."); /* If not, suggest something. */ 145 146 clp: call ask_ ("code ", code); /* Get a change code. */ 147 148 if code = "*" then go to main; /* Star for done. */ 149 150 if code = "id" then do; /* Change project id? */ 151 call ask_ (code, acctid (j)); 152 end; 153 else if code = "acct" then do; /* Change MIT account no.? */ 154 call ask_ (code, mitacct (j)); 155 end; 156 else if code = "req" then do; /* change requisition no? */ 157 call ask_ (code, reqno (j)); 158 end; 159 else if code = "name" then do; /* change billing anme */ 160 call ask_$ask_line (code, billing_name (j)); 161 end; 162 else if code = "addr" then do; /* change billing address? */ 163 call ask_$ask_line (code, billing_addr (j)); 164 end; 165 else if code = "amt" | code = "$" then do; 166 call ask_$ask_flo (code, ftemp); 167 req_amt (j) = ftemp; 168 end; 169 else if code = "chg_mo" | code = "mo" then do; 170 call ask_$ask_flo (code, ftemp); 171 chg_mo (j) = ftemp; 172 end; 173 else if code = "chg_tr" | code = "tr" then do; 174 call ask_$ask_flo (code, ftemp); 175 chg_tr (j) = ftemp; 176 end; 177 else if code = "cutoff" then do; 178 cutoff (j) = gdate (code); /* change cutoff date */ 179 end; 180 else if code = "on" then do; /* change date on? */ 181 qdn (j) = gdate (code); 182 end; 183 else if code = "off" then do; /* change date off? */ 184 qdf (j) = gdate (code); 185 end; 186 else do; /* Unknown change code. Gripe. */ 187 call ioa_ ("Illegal change code ""^a"".", code); 188 call ask_$ask_clr; /* Clear line. */ 189 end; 190 191 go to clp; /* Go look for another code. */ 192 193 /* Print an entry */ 194 195 print: call ask_$ask_cint (num, flg); /* see how many */ 196 if flg ^= 1 then num = 1; 197 ploop: call ioa_ ("^a - ^a - ^a.", acctid (j), mitacct (j), reqno (j)); 198 call date_time_ (cutoff (j), chdt); /* make date printable */ 199 call ioa_ ("^-$^15.2f, cutoff ^a", req_amt (j), chdt); 200 call date_time_ (qdn (j), chdt); 201 call ioa_ ("^-date on ^a", chdt); 202 if qdf (j) ^= 0 then do; 203 call date_time_ (qdf (j), chdt); 204 call ioa_ ("^-date off ^a", chdt); 205 end; 206 call ioa_ ("^-^a", billing_name (j)); 207 call ioa_ ("^-^a", billing_addr (j)); 208 call ioa_ ("^-this mo $^15.2f, this req $^15.2f", chg_mo (j), chg_tr (j)); 209 num = num - 1; 210 if num <= 0 then go to main; /* see if done */ 211 j = j + 1; /* no, do next */ 212 if j > nq then go to eof; /* ... if any */ 213 go to ploop; 214 215 /* Go to nentry */ 216 217 next: call ask_$ask_cint (num, flg); /* Check for a number. */ 218 if flg ^= 1 then num = 1; /* If none there, assume one. */ 219 j = j + num; /* Bump index. */ 220 if j > nq then do; /* Check range. */ 221 eof: call ioa_ ("EOF"); /* Remark if too big. */ 222 go to cmain; /* clear buffer */ 223 end; 224 go to main; 225 226 /* Delete an entry */ 227 228 delete: call ioa_ ("Deleting ""^a"".", acctid (j)); /* say, just in case */ 229 qdf (j) = clock_ (); 230 go to main; 231 232 /* Add a new entry */ 233 234 add: nq = nq + 1; /* Allocate new slot. */ 235 j = nq; /* Set pointer. */ 236 call ask_ ("id ", acctid (j)); 237 call ask_ ("MITacct ", mitacct (j)); 238 call ask_ ("reqno ", reqno (j)); 239 call ask_$ask_flo ("amount ", ftemp); 240 req_amt (j) = ftemp; 241 cutoff (j) = gdate ("cutoff "); 242 call ask_$ask_line ("name ", billing_name (j)); 243 call ask_$ask_line ("address ", billing_addr (j)); 244 chg_mo (j), chg_tr (j) = 0.0e0; 245 qflag (j) = ""; 246 qdn (j) = clock_ (); 247 qdf (j) = 0; 248 go to main; 249 250 /* Go to top */ 251 252 top: j = 1; /* whee */ 253 go to main; 254 255 /* Finish up. */ 256 257 file: qp -> reqfile.nacts = nq; /* set count back in file */ 258 num24 = loqh + nq * loqe; /* compute # of wds in file */ 259 call hcs_$initiate (dn, en, "", 0, 1, qpp, ec); /* initiate real file */ 260 if qpp = null then go to er; 261 qpp -> reqfile_zap = qp -> reqfile_zap; /* copy new into old */ 262 num24 = 36 * num24; /* compute new bit count */ 263 call hcs_$set_bc (dn, en, num24, ec); /* ... */ 264 call hcs_$terminate_noname (qpp, ec); /* terminate input */ 265 if func = "w" then go to main; 266 267 quit: call hcs_$delentry_seg (qp, ec); /* delete scratch copy */ 268 call ioa_ (""); 269 270 gdate: proc (xcode) returns (fixed bin (71)); /* date getter */ 271 dcl xcode char (*); /* argument */ 272 dcl temp char (12) aligned, b71 fixed bin (71), /* temps */ 273 convert_date_to_binary_ entry (char (*) aligned, fixed bin (71), fixed bin); 274 275 xgdate: call ask_ (xcode, temp); /* ask for the date */ 276 call convert_date_to_binary_ (temp, b71, ec); 277 if ec ^= 0 then do; /* was it illegal? */ 278 call ioa_ ("Illegal date for ""^a"": ""^a""", xcode, temp); 279 call ask_$ask_clr; /* illegal date. clear input */ 280 go to xgdate; /* try again */ 281 end; 282 return (b71); /* good date, return it */ 283 end gdate; 284 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/18/84 0756.2 edit_reqfile.pl1 >special_ldd>online>09/18/84>edit_reqfile.pl1 55 1 09/18/84 1000.6 reqfile.incl.pl1 >special_ldd>online>09/18/84>reqfile.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. acctid 10 based char(12) array level 3 packed unaligned dcl 1-5 set ref 132 135 151* 197* 228* 236* addr builtin function dcl 50 ref 66 66 66 66 66 66 al 000262 automatic fixed bin(17,0) dcl 20 set ref 59* 60 62* 64 66* ap 000260 automatic pointer dcl 20 set ref 59* 64 ask_ 000010 constant entry external dcl 35 ref 85 131 146 151 154 157 236 237 238 275 ask_$ask_cint 000012 constant entry external dcl 35 ref 195 217 ask_$ask_clr 000020 constant entry external dcl 35 ref 84 188 279 ask_$ask_flo 000032 constant entry external dcl 35 ref 166 170 174 239 ask_$ask_line 000016 constant entry external dcl 35 ref 160 163 242 243 ask_$ask_n 000014 constant entry external dcl 35 ref 143 b71 000276 automatic fixed bin(71,0) dcl 272 set ref 276* 282 bchr based char(168) unaligned dcl 20 ref 64 billing_addr 40 based char(32) array level 3 packed unaligned dcl 1-5 set ref 163* 207* 243* billing_name 30 based char(32) array level 3 packed unaligned dcl 1-5 set ref 160* 206* 242* chdt 000250 automatic char(8) unaligned dcl 20 set ref 198* 199* 200* 201* 203* 204* chg_mo 50 based float bin(63) array level 3 dcl 1-5 set ref 171* 208* 244* chg_tr 52 based float bin(63) array level 3 dcl 1-5 set ref 175* 208* 244* clock_ 000040 constant entry external dcl 35 ref 229 246 code 000244 automatic char(8) unaligned dcl 20 set ref 143* 146* 148 150 151* 153 154* 156 157* 159 160* 162 163* 165 165 166* 169 169 170* 173 173 174* 177 178* 180 181* 183 184* 187* com_err_ 000022 constant entry external dcl 35 ref 68 convert_date_to_binary_ 000052 constant entry external dcl 272 ref 276 cu_$arg_ptr 000026 constant entry external dcl 35 ref 59 cutoff 56 based fixed bin(71,0) array level 3 dcl 1-5 set ref 178* 198* 241* date_time_ 000034 constant entry external dcl 35 ref 198 200 203 dn 000152 automatic char(168) dcl 20 set ref 66 66 71* 259* 263* ec 000237 automatic fixed bin(17,0) dcl 20 set ref 59* 60 66* 67 68* 71* 73* 78* 259* 263* 264* 267* 276* 277 en 000224 automatic char(32) dcl 20 set ref 66 66 71* 259* 263* expand_path_ 000024 constant entry external dcl 35 ref 66 flg 000253 automatic fixed bin(17,0) dcl 20 set ref 143* 144 195* 196 217* 218 ftemp 000252 automatic float bin(27) dcl 20 set ref 166* 167 170* 171 174* 175 239* 240 func 000246 automatic char(8) dcl 20 set ref 85* 87 88 90 91 93 94 96 97 98 99 101 102 104 105 107 108 110 111 113 126* 265 hcs_$delentry_seg 000036 constant entry external dcl 35 ref 267 hcs_$initiate 000044 constant entry external dcl 35 ref 71 259 hcs_$make_seg 000042 constant entry external dcl 35 ref 73 hcs_$set_bc 000050 constant entry external dcl 35 ref 263 hcs_$terminate_noname 000046 constant entry external dcl 35 ref 78 264 ioa_ 000030 constant entry external dcl 35 ref 80 114 115 116 117 118 119 120 121 122 126 138 144 187 197 199 201 204 206 207 208 221 228 268 278 j 000240 automatic fixed bin(17,0) dcl 20 set ref 83* 132 134* 135* 151 154 157 160 163 167 171 175 178 181 184 197 197 197 198 199 200 202 203 206 207 208 208 211* 211 212 219* 219 220 228 229 235* 236 237 238 240 241 242 243 244 244 245 246 247 252* loqe constant fixed bin(17,0) initial dcl 1-25 ref 76 258 loqh constant fixed bin(17,0) initial dcl 1-25 ref 76 258 mitacct 13 based char(12) array level 3 packed unaligned dcl 1-5 set ref 154* 197* 237* nacts based fixed bin(17,0) level 2 dcl 1-5 set ref 75 257* nq 000241 automatic fixed bin(17,0) dcl 20 set ref 75* 76 80 83 134 212 220 234* 234 235 257 258 null builtin function dcl 50 ref 72 74 260 num 000242 automatic fixed bin(17,0) dcl 20 set ref 195* 196* 209* 209 210 217* 218* 219 num24 000243 automatic fixed bin(24,0) dcl 20 set ref 76* 77 258* 261 262* 262 263* path 000100 automatic char(168) dcl 20 set ref 61* 64* 66 66 68* pj 000234 automatic char(12) dcl 20 set ref 131* 132 135 138* qdf 26 based fixed bin(71,0) array level 3 dcl 1-5 set ref 184* 202 203* 229* 247* qdn 24 based fixed bin(71,0) array level 3 dcl 1-5 set ref 181* 200* 246* qflag 21 based char(8) array level 3 dcl 1-5 set ref 245* qp 000254 automatic pointer dcl 20 set ref 73* 74 77 132 135 151 154 157 160 163 167 171 175 178 181 184 197 197 197 198 199 200 202 203 206 207 208 208 228 229 236 237 238 240 241 242 243 244 244 245 246 247 257 261 267* qpp 000256 automatic pointer dcl 20 set ref 71* 72 75 77 78* 259* 260 261 264* req_amt 54 based float bin(63) array level 3 dcl 1-5 set ref 167* 199* 240* reqfile based structure level 1 dcl 1-5 reqfile_zap based fixed bin(17,0) array dcl 52 set ref 77* 77 261* 261 reqfiletab 10 based structure array level 2 dcl 1-5 reqno 16 based char(12) array level 3 packed unaligned dcl 1-5 set ref 157* 197* 238* substr builtin function dcl 50 ref 64 temp 000272 automatic char(12) dcl 272 set ref 275* 276* 278* xcode parameter char unaligned dcl 271 set ref 270 275* 278* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. REQFILE_VERSION internal static fixed bin(17,0) initial dcl 1-28 NAMES DECLARED BY EXPLICIT CONTEXT. add 002450 constant label dcl 234 set ref 107 108 change 001307 constant label dcl 143 ref 90 91 clp 001343 constant label dcl 146 ref 191 cmain 000630 constant label dcl 83 ref 139 222 cmain1 000632 constant label dcl 84 ref 127 delete 002411 constant label dcl 228 ref 101 102 edit_reqfile 000334 constant entry external dcl 16 eof 002374 constant label dcl 221 ref 212 er 000424 constant label dcl 68 ref 72 74 260 erf 000325 constant entry external dcl 16 file 002672 constant label dcl 257 ref 96 97 find 001216 constant label dcl 131 ref 87 88 gdate 003051 constant entry internal dcl 270 ref 178 181 184 241 main 000637 constant label dcl 85 ref 123 132 135 148 210 224 230 248 253 265 next 002346 constant label dcl 217 ref 104 105 ploop 002041 constant label dcl 197 ref 213 print 002020 constant label dcl 195 ref 93 94 quit 003026 constant label dcl 267 ref 98 99 top 002667 constant label dcl 252 ref 110 111 xgdate 003062 constant label dcl 275 ref 280 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3374 3450 3164 3404 Length 3722 3164 54 235 207 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME erf 294 external procedure is an external procedure. gdate internal procedure shares stack frame of external procedure erf. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME erf 000100 path erf 000152 dn erf 000224 en erf 000234 pj erf 000237 ec erf 000240 j erf 000241 nq erf 000242 num erf 000243 num24 erf 000244 code erf 000246 func erf 000250 chdt erf 000252 ftemp erf 000253 flg erf 000254 qp erf 000256 qpp erf 000260 ap erf 000262 al erf 000272 temp gdate 000276 b71 gdate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ask_ ask_$ask_cint ask_$ask_clr ask_$ask_flo ask_$ask_line ask_$ask_n clock_ com_err_ convert_date_to_binary_ cu_$arg_ptr date_time_ expand_path_ hcs_$delentry_seg hcs_$initiate hcs_$make_seg hcs_$set_bc hcs_$terminate_noname ioa_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000324 59 000341 60 000357 61 000363 62 000366 63 000370 64 000371 66 000375 67 000422 68 000424 69 000452 71 000453 72 000517 73 000523 74 000560 75 000564 76 000566 77 000573 78 000601 80 000612 83 000630 84 000632 85 000637 87 000655 88 000662 90 000667 91 000674 93 000700 94 000705 96 000711 97 000716 98 000723 99 000730 101 000735 102 000742 104 000746 105 000753 107 000760 108 000765 110 000772 111 000777 113 001004 114 001011 115 001026 116 001043 117 001057 118 001076 119 001113 120 001130 121 001144 122 001160 123 001174 126 001175 127 001215 131 001216 132 001235 134 001245 135 001255 136 001264 138 001266 139 001306 143 001307 144 001324 146 001343 148 001362 150 001367 151 001374 152 001414 153 001415 154 001422 155 001442 156 001443 157 001450 158 001470 159 001471 160 001476 161 001516 162 001517 163 001524 164 001544 165 001545 166 001557 167 001574 168 001602 169 001603 170 001614 171 001631 172 001636 173 001637 174 001650 175 001665 176 001673 177 001674 178 001700 179 001717 180 001720 181 001725 182 001744 183 001745 184 001752 185 001771 187 001772 188 002012 191 002017 195 002020 196 002034 197 002041 198 002074 199 002113 200 002144 201 002163 202 002204 203 002210 204 002225 206 002246 207 002267 208 002310 209 002335 210 002337 211 002341 212 002342 213 002345 217 002346 218 002362 219 002367 220 002371 221 002374 222 002407 224 002410 228 002411 229 002436 230 002447 234 002450 235 002451 236 002453 237 002476 238 002517 239 002540 240 002557 241 002563 242 002601 243 002622 244 002643 245 002650 246 002653 247 002662 248 002666 252 002667 253 002671 257 002672 258 002674 259 002701 260 002745 261 002751 262 002760 263 002763 264 003010 265 003021 267 003026 268 003037 284 003050 270 003051 275 003062 276 003101 277 003122 278 003124 279 003152 280 003157 282 003160 ----------------------------------------------------------- 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