COMPILATION LISTING OF SEGMENT edit_projfile 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.1 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 edit_projfile: epro: procedure options (variable); 12 13 /* project file editor */ 14 15 dcl (path, dn) char (168), /* path and directory name */ 16 en char (32), /* entry name */ 17 pj char (12) aligned, /* project id for find */ 18 (j, np) fixed bin, /* integers */ 19 ec fixed bin (35), 20 num fixed bin, 21 num24 fixed bin (24), 22 code char (8), /* change code */ 23 func char (8) aligned, /* edit request */ 24 flg fixed bin, /* flag from ask */ 25 (pp, ppp) ptr, /* ptr to projfile */ 26 hp ptr, 27 dtem char (8), 28 ap ptr, /* ptr to arg */ 29 bchr char (al) based (ap) unaligned, /* pickup for arg */ 30 al fixed bin; /* lth of arg */ 31 32 dcl projfile_zap (num24) fixed bin based; 33 34 35 dcl (ask_, ask_$ask_int, ask_$ask_cint, 36 ask_$ask_n, ask_$ask_line, ask_$ask_clr) entry options (variable), 37 com_err_ entry options (variable), 38 convert_date_to_binary_ entry (char(*), fixed bin(71), fixed bin (35)), 39 expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)), 40 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 41 ioa_ entry options (variable), 42 date_time_ entry (fixed bin (71), char (*)), 43 get_temp_segment_ entry (char (*), pointer, fixed bin (35)), 44 release_temp_segment_ entry (char (*), pointer, fixed bin (35)), 45 hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)), 46 hcs_$terminate_noname entry (ptr, fixed bin (35)), 47 hcs_$set_bc entry (char (*), char (*), fixed bin (24), fixed bin (35)); 48 49 dcl (clock, null, addr, substr) builtin; 50 1 1 /* BEGIN INCLUDE FILE .. projfile.incl.pl1 */ 1 2 /* Modified by T. Casey April 1976 to change disk_infs (obsolete) to dir_disk_use */ 1 3 /* Modified 1984-07-09 BIM for dir_disk_quota, version */ 1 4 /* Modified 1984-09-14 BIM for reasonable array size */ 1 5 1 6 dcl 1 projfile based (pp) aligned, /* Project history file */ 1 7 2 nproj fixed bin (35), /* number of entries */ 1 8 2 version fixed bin, 1 9 2 projfilexx0 (6) bit (36) aligned, 1 10 2 projfiletab (3000), /* in seg limit */ 1 11 3 id char (12) unal, /* project ID */ 1 12 3 title char (52) unal, /* project title */ 1 13 3 inv char (32) unal, /* name of principal investigator */ 1 14 3 inv_addr char (32) unal, /* address */ 1 15 3 sup char (32) unal, /* name of supervisor */ 1 16 3 sup_addr char (32) unal, /* address */ 1 17 3 sup_phone char (16) unal, /* telephone */ 1 18 3 on fixed bin (71), /* date on */ 1 19 3 off fixed bin (71), /* date off */ 1 20 3 disk_psec fixed bin (71), /* project disk page-seconds */ 1 21 3 disk_quota fixed bin (35), /* project disk quota */ 1 22 3 dir_disk_quota fixed bin (35), /* project dir disk quota */ 1 23 3 disk_use fixed bin (35), /* total segment pages used */ 1 24 3 dir_disk_use fixed bin (35), /* total directory pages used */ 1 25 3 misc_charges float bin, /* manuals, etc */ 1 26 3 n_misc fixed bin, /* number of entries */ 1 27 3 processed fixed bin, /* temp for usage-report */ 1 28 3 pad bit (36) aligned; /* out to even number of words */ 1 29 1 30 dcl loph int static fixed bin (17) options (constant) init (8), /* lth of projfile header */ 1 31 lope int static fixed bin (17) options (constant) init (66); /* lth of projflile entry */ 1 32 1 33 dcl PROJFILE_VERSION fixed bin init (3) int static options (constant); 1 34 1 35 /* END INCLUDE FILE ... projfile.incl.pl1 */ 51 52 53 54 55 /* - - - - - - - - - - */ 56 57 call cu_$arg_ptr (1, ap, al, ec); /* see if any args */ 58 if ec ^= 0 | al = 0 /* if not, then ... */ 59 then path = "projfile"; /* set up default */ 60 else path = bchr; /* get pathname of projfile */ 61 62 call expand_pathname_ (path, dn, en, ec); 63 if ec ^= 0 then do; 64 er: call com_err_ (ec, "edit_projfile", path); 65 return; /* die */ 66 end; 67 call hcs_$initiate (dn, en, "", 0, 1, ppp, ec); /* Initiate real project file. */ 68 if ppp = null then go to er; 69 if ppp -> projfile.version ^= PROJFILE_VERSION 70 then do; 71 call com_err_ (0, "edit_projfile", "^a>^a version ^d is not current version ^d.", dn, en, projfile.version, PROJFILE_VERSION); 72 call hcs_$terminate_noname (ppp, (0)); 73 return; 74 end; 75 76 call get_temp_segment_ ("edit_projfile", pp, ec); 77 if ec ^= 0 then go to er; 78 np = ppp -> projfile.nproj; 79 num24 = loph + np * lope; 80 pp -> projfile_zap = ppp -> projfile_zap; 81 call hcs_$terminate_noname (ppp, ec); 82 83 if np = 0 then 84 call ioa_ ("WARNING: projfile is empty."); 85 86 cmain: call ask_$ask_clr; /* Clear input buffer. */ 87 j = np; /* Set pointer to last entry */ 88 main: call ask_ ("type ", func); /* Ask for editing function. */ 89 90 if func = "f" then go to find; 91 if func = "find" then go to find; 92 93 if func = "c" then go to change; 94 if func = "change" then go to change; 95 96 if func = "p" then go to print; 97 if func = "print" then go to print; 98 99 if func = "file" then go to file; 100 if func = "w" then go to file; 101 if func = "q" then go to quit; 102 if func = "quit" then go to quit; 103 104 if func = "d" then go to delete; 105 if func = "delete" then go to delete; 106 107 if func = "n" then go to next; 108 if func = "next" then go to next; 109 110 if func = "a" then go to add; 111 if func = "add" then go to add; 112 113 if func = "t" then go to top; 114 if func = "top" then go to top; 115 116 if func = "help" then do; 117 call ioa_ ("Instructions:"); 118 call ioa_ ("""f id""^-to find"); 119 call ioa_ ("""c code val code val ... *"" to change"); 120 call ioa_ ("""p -n-""^-to print"); 121 call ioa_ ("""file""^-to file"); 122 call ioa_ ("""a id""^-to add"); 123 call ioa_ ("""n -n-""^-to go to next"); 124 call ioa_ ("""t""^-to go to top"); 125 call ioa_ ("""help""^-for instructions"); 126 go to main; 127 end; 128 129 call ioa_ ("""^a"" illegal. Type ""help"" for instructions.", func); 130 go to cmain; /* Clear line buffer and go */ 131 132 /* Search for an ID */ 133 134 find: call ask_ ("proj id ", pj); /* Get project to search for. */ 135 if pj = id (j) then go to main; /* Skip out if we're there. */ 136 137 do j = 1 to np; /* Otherwise, look at all id's. */ 138 if pj = id (j) then go to main; /* ... */ 139 end; 140 141 call ioa_ ("Project ""^a"" not found.", pj); /* Missing. Gripe. */ 142 go to cmain; /* Go and clear line buffer. */ 143 144 /* Modify an entry */ 145 146 change: call ask_$ask_n (code, flg); /* Peek to see if any more on line. */ 147 if flg = 0 then call ioa_ ("Type changes."); /* If not, suggest something. */ 148 149 clp: call ask_ ("code ", code); /* Get a change code. */ 150 151 if code = "*" then go to main; /* Star for done. */ 152 153 if code = "id" then do; /* Change project id? */ 154 call ask_ (code, id (j)); 155 end; 156 else if code = "title" then do; /* Change project title? */ 157 call ask_$ask_line (code, title (j)); 158 end; 159 else if code = "inv" then do; /* Change investigator? */ 160 call ask_$ask_line (code, inv (j)); 161 end; 162 else if code = "inv_addr" then do; /* Investigator address? */ 163 call ask_$ask_line (code, inv_addr (j)); 164 end; 165 else if code = "sup" then do; /* Supervisor name? */ 166 call ask_$ask_line (code, sup (j)); 167 end; 168 else if code = "sup_addr" then do; /* Supervisor address? */ 169 call ask_$ask_line (code, sup_addr (j)); 170 end; 171 else if code = "sup_phon" then do; /* Supervisor phon? */ 172 call ask_$ask_line (code, sup_phone (j)); 173 end; 174 else if code = "dps" then do; 175 call ask_$ask_int (code, num); 176 disk_psec (j) = num; 177 end; 178 else if code = "dq" then do; 179 call ask_$ask_int (code, disk_quota (j)); 180 end; 181 else if code = "ddq" then do; 182 call ask_$ask_int (code, dir_disk_quota (j)); 183 end; 184 else if code = "du" then do; 185 call ask_$ask_int (code, disk_use (j)); 186 end; 187 else if code = "ddu" then do; 188 call ask_$ask_int (code, dir_disk_use (j)); 189 end; 190 else if code = "on" then do; 191 on (j) = gdate (code); 192 end; 193 else if code = "off" then do; 194 off (j) = gdate (code); 195 end; 196 else do; /* Unknown change code. Gripe. */ 197 call ioa_ ("Illegal change code ""^a"".", code); 198 call ask_$ask_clr; /* Clear line. */ 199 end; 200 201 go to clp; /* Go look for another code. */ 202 203 /* Print an entry */ 204 205 print: call ask_$ask_cint (num, flg); /* see how many */ 206 if flg ^= 1 then num = 1; 207 ploop: call ioa_ ("^a", id (j)); /* print entry */ 208 call ioa_ ("^-^a", title (j)); 209 call ioa_ ("^-^a", inv (j)); 210 call ioa_ ("^-^a", inv_addr (j)); 211 call ioa_ ("^-^a", sup (j)); 212 call ioa_ ("^-^a", sup_addr (j)); 213 call ioa_ ("^-^a", sup_phone (j)); 214 call date_time_ (on (j), dtem); 215 ec = disk_psec (j); 216 call ioa_ ("^-date on ^a, disk ps = ^d, ^d/^d", dtem, ec, disk_quota (j), disk_use (j)); 217 call ioa_ ("^-directory quota ^d/^d", dir_disk_quota (j), dir_disk_use (j)); 218 call date_time_ (off (j), dtem); 219 if off (j) ^= 0 then call ioa_ ("^-date off ^a", dtem); 220 num = num - 1; 221 if num <= 0 then go to main; /* see if done */ 222 j = j + 1; /* no, do next */ 223 if j > np then go to eof; /* ... if any */ 224 go to ploop; 225 226 /* Go to nentry */ 227 228 next: call ask_$ask_cint (num, flg); /* Check for a number. */ 229 if flg ^= 1 then num = 1; /* If none there, assume one. */ 230 j = j + num; /* Bump index. */ 231 if j > np then do; /* Check range. */ 232 eof: call ioa_ ("EOF"); /* Remark if too big. */ 233 go to cmain; /* clear buffer */ 234 end; 235 go to main; 236 237 /* Delete an entry */ 238 239 delete: call ioa_ ("Deleting ""^a"".", id (j)); /* say, just in case */ 240 off (j) = clock (); /* project is off now */ 241 go to main; 242 243 /* Add a new entry */ 244 245 add: np = np + 1; /* Allocate new slot. */ 246 j = np; /* Set pointer. */ 247 call ask_ ("proj id ", id (j)); /* Get ID. */ 248 call ask_$ask_line ("title ", title (j)); /* Get title. */ 249 call ask_$ask_line ("inv ", inv (j)); /* Get investigator. */ 250 call ask_$ask_line ("inv_addr ", inv_addr (j)); /* & address */ 251 call ask_$ask_line ("sup ", sup (j)); /* Get supervisor. */ 252 call ask_$ask_line ("sup_addr ", sup_addr (j)); /* & address */ 253 call ask_$ask_line ("sup_phone ", sup_phone (j)); /* & phone */ 254 on (j) = clock (); 255 off (j) = 0; 256 go to main; 257 258 /* Go to top */ 259 260 top: j = 1; /* whee */ 261 go to main; 262 263 /* Finish up. */ 264 265 file: nproj = np; /* Set count back in file. */ 266 num24 = loph + np * lope; /* compute number of wds in file */ 267 call hcs_$initiate (dn, en, "", 0, 1, ppp, ec); /* initi real copy */ 268 if ppp = null then go to er; 269 ppp -> projfile_zap = pp -> projfile_zap; 270 call hcs_$terminate_noname (ppp, ec); 271 num24 = 36 * num24; /* Compute bit count. */ 272 call hcs_$set_bc (dn, en, num24, ec); /* ... */ 273 274 if func = "w" then go to main; 275 276 quit: call release_temp_segment_ ("edit_projfile", pp, ec); 277 call ioa_ (""); 278 279 gdate: proc (xcode) returns (fixed bin (71)); /* date getter */ 280 dcl xcode char (*) parameter; /* argument */ 281 dcl temp char (12), 282 b71 fixed bin (71); /* temps */ 283 284 xgdate: call ask_ (xcode, temp); /* ask for the date */ 285 call convert_date_to_binary_ (temp, b71, ec); /* Turn it into binary */ 286 if ec ^= 0 then do; /* was it illegal? */ 287 call ioa_ ("Illegal date for ""^a"": ""^a""", xcode, temp); 288 call ask_$ask_clr; 289 go to xgdate; /* try again */ 290 end; 291 return (b71); 292 end gdate; 293 end edit_projfile; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/18/84 0756.2 edit_projfile.pl1 >special_ldd>online>09/18/84>edit_projfile.pl1 51 1 09/18/84 1000.6 projfile.incl.pl1 >special_ldd>online>09/18/84>projfile.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. PROJFILE_VERSION 000014 constant fixed bin(17,0) initial dcl 1-33 set ref 69 71* al 000262 automatic fixed bin(17,0) dcl 15 set ref 57* 58 60 ap 000260 automatic pointer dcl 15 set ref 57* 60 ask_ 000010 constant entry external dcl 35 ref 88 134 149 154 247 284 ask_$ask_cint 000014 constant entry external dcl 35 ref 205 228 ask_$ask_clr 000022 constant entry external dcl 35 ref 86 198 288 ask_$ask_int 000012 constant entry external dcl 35 ref 175 179 182 185 188 ask_$ask_line 000020 constant entry external dcl 35 ref 157 160 163 166 169 172 248 249 250 251 252 253 ask_$ask_n 000016 constant entry external dcl 35 ref 146 b71 000276 automatic fixed bin(71,0) dcl 281 set ref 285* 291 bchr based char unaligned dcl 15 ref 60 clock builtin function dcl 49 ref 240 254 code 000244 automatic char(8) unaligned dcl 15 set ref 146* 149* 151 153 154* 156 157* 159 160* 162 163* 165 166* 168 169* 171 172* 174 175* 178 179* 181 182* 184 185* 187 188* 190 191* 193 194* 197* com_err_ 000024 constant entry external dcl 35 ref 64 71 convert_date_to_binary_ 000026 constant entry external dcl 35 ref 285 cu_$arg_ptr 000032 constant entry external dcl 35 ref 57 date_time_ 000036 constant entry external dcl 35 ref 214 218 dir_disk_quota 103 based fixed bin(35,0) array level 3 dcl 1-6 set ref 182* 217* dir_disk_use 105 based fixed bin(35,0) array level 3 dcl 1-6 set ref 188* 217* disk_psec 100 based fixed bin(71,0) array level 3 dcl 1-6 set ref 176* 215 disk_quota 102 based fixed bin(35,0) array level 3 dcl 1-6 set ref 179* 216* disk_use 104 based fixed bin(35,0) array level 3 dcl 1-6 set ref 185* 216* dn 000152 automatic char(168) unaligned dcl 15 set ref 62* 67* 71* 267* 272* dtem 000256 automatic char(8) unaligned dcl 15 set ref 214* 216* 218* 219* ec 000241 automatic fixed bin(35,0) dcl 15 set ref 57* 58 62* 63 64* 67* 76* 77 81* 215* 216* 267* 270* 272* 276* 285* 286 en 000224 automatic char(32) unaligned dcl 15 set ref 62* 67* 71* 267* 272* expand_pathname_ 000030 constant entry external dcl 35 ref 62 flg 000250 automatic fixed bin(17,0) dcl 15 set ref 146* 147 205* 206 228* 229 func 000246 automatic char(8) dcl 15 set ref 88* 90 91 93 94 96 97 99 100 101 102 104 105 107 108 110 111 113 114 116 129* 274 get_temp_segment_ 000040 constant entry external dcl 35 ref 76 hcs_$initiate 000044 constant entry external dcl 35 ref 67 267 hcs_$set_bc 000050 constant entry external dcl 35 ref 272 hcs_$terminate_noname 000046 constant entry external dcl 35 ref 72 81 270 id 10 based char(12) array level 3 packed unaligned dcl 1-6 set ref 135 138 154* 207* 239* 247* inv 30 based char(32) array level 3 packed unaligned dcl 1-6 set ref 160* 209* 249* inv_addr 40 based char(32) array level 3 packed unaligned dcl 1-6 set ref 163* 210* 250* ioa_ 000034 constant entry external dcl 35 ref 83 117 118 119 120 121 122 123 124 125 129 141 147 197 207 208 209 210 211 212 213 216 217 219 232 239 277 287 j 000237 automatic fixed bin(17,0) dcl 15 set ref 87* 135 137* 138* 154 157 160 163 166 169 172 176 179 182 185 188 191 194 207 208 209 210 211 212 213 214 215 216 216 217 217 218 219 222* 222 223 230* 230 231 239 240 246* 247 248 249 250 251 252 253 254 255 260* lope constant fixed bin(17,0) initial dcl 1-30 ref 79 266 loph constant fixed bin(17,0) initial dcl 1-30 ref 79 266 np 000240 automatic fixed bin(17,0) dcl 15 set ref 78* 79 83 87 137 223 231 245* 245 246 265 266 nproj based fixed bin(35,0) level 2 dcl 1-6 set ref 78 265* null builtin function dcl 49 ref 68 268 num 000242 automatic fixed bin(17,0) dcl 15 set ref 175* 176 205* 206* 220* 220 221 228* 229* 230 num24 000243 automatic fixed bin(24,0) dcl 15 set ref 79* 80 266* 269 271* 271 272* off 76 based fixed bin(71,0) array level 3 dcl 1-6 set ref 194* 218* 219 240* 255* on 74 based fixed bin(71,0) array level 3 dcl 1-6 set ref 191* 214* 254* path 000100 automatic char(168) unaligned dcl 15 set ref 58* 60* 62* 64* pj 000234 automatic char(12) dcl 15 set ref 134* 135 138 141* pp 000252 automatic pointer dcl 15 set ref 71 76* 80 135 138 154 157 160 163 166 169 172 176 179 182 185 188 191 194 207 208 209 210 211 212 213 214 215 216 216 217 217 218 219 239 240 247 248 249 250 251 252 253 254 255 265 269 276* ppp 000254 automatic pointer dcl 15 set ref 67* 68 69 72* 78 80 81* 267* 268 269 270* projfile based structure level 1 dcl 1-6 projfile_zap based fixed bin(17,0) array dcl 32 set ref 80* 80 269* 269 projfiletab 10 based structure array level 2 dcl 1-6 release_temp_segment_ 000042 constant entry external dcl 35 ref 276 sup 50 based char(32) array level 3 packed unaligned dcl 1-6 set ref 166* 211* 251* sup_addr 60 based char(32) array level 3 packed unaligned dcl 1-6 set ref 169* 212* 252* sup_phone 70 based char(16) array level 3 packed unaligned dcl 1-6 set ref 172* 213* 253* temp 000272 automatic char(12) unaligned dcl 281 set ref 284* 285* 287* title 13 based char(52) array level 3 packed unaligned dcl 1-6 set ref 157* 208* 248* version 1 based fixed bin(17,0) level 2 dcl 1-6 set ref 69 71* xcode parameter char unaligned dcl 280 set ref 279 284* 287* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addr builtin function dcl 49 hp automatic pointer dcl 15 substr builtin function dcl 49 NAMES DECLARED BY EXPLICIT CONTEXT. add 002666 constant label dcl 245 set ref 110 111 change 001407 constant label dcl 146 ref 93 94 clp 001445 constant label dcl 149 ref 201 cmain 000721 constant label dcl 86 ref 130 142 233 delete 002632 constant label dcl 239 ref 104 105 edit_projfile 000345 constant entry external dcl 11 eof 002615 constant label dcl 232 ref 223 epro 000336 constant entry external dcl 11 er 000432 constant label dcl 64 ref 68 77 268 file 003103 constant label dcl 265 ref 99 100 find 001317 constant label dcl 134 ref 90 91 gdate 003300 constant entry internal dcl 279 ref 191 194 main 000730 constant label dcl 88 set ref 126 135 138 151 221 235 241 256 261 274 next 002567 constant label dcl 228 ref 107 108 ploop 002215 constant label dcl 207 ref 224 print 002174 constant label dcl 205 ref 96 97 quit 003237 constant label dcl 276 set ref 101 102 top 003100 constant label dcl 260 ref 113 114 xgdate 003311 constant label dcl 284 ref 289 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3624 3676 3413 3634 Length 4154 3413 52 241 210 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME epro 282 external procedure is an external procedure. gdate internal procedure shares stack frame of external procedure epro. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME epro 000100 path epro 000152 dn epro 000224 en epro 000234 pj epro 000237 j epro 000240 np epro 000241 ec epro 000242 num epro 000243 num24 epro 000244 code epro 000246 func epro 000250 flg epro 000252 pp epro 000254 ppp epro 000256 dtem epro 000260 ap epro 000262 al epro 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 clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ask_ ask_$ask_cint ask_$ask_clr ask_$ask_int ask_$ask_line ask_$ask_n com_err_ convert_date_to_binary_ cu_$arg_ptr date_time_ expand_pathname_ get_temp_segment_ hcs_$initiate hcs_$set_bc hcs_$terminate_noname ioa_ release_temp_segment_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000335 57 000352 58 000370 60 000400 62 000404 63 000430 64 000432 65 000461 67 000462 68 000526 69 000532 71 000536 72 000611 73 000623 76 000624 77 000653 78 000655 79 000657 80 000664 81 000672 83 000703 86 000721 87 000726 88 000730 90 000746 91 000753 93 000760 94 000765 96 000771 97 000776 99 001002 100 001007 101 001014 102 001021 104 001026 105 001033 107 001037 108 001044 110 001051 111 001056 113 001063 114 001070 116 001075 117 001102 118 001121 119 001140 120 001154 121 001173 122 001212 123 001231 124 001245 125 001261 126 001275 129 001276 130 001316 134 001317 135 001336 137 001346 138 001355 139 001364 141 001366 142 001406 146 001407 147 001424 149 001445 151 001464 153 001471 154 001476 155 001516 156 001517 157 001523 158 001543 159 001544 160 001551 161 001571 162 001572 163 001575 164 001615 165 001616 166 001623 167 001643 168 001644 169 001647 170 001667 171 001670 172 001672 173 001712 174 001713 175 001720 176 001735 177 001744 178 001745 179 001752 180 001771 181 001772 182 001777 183 002017 184 002020 185 002025 186 002045 187 002046 188 002053 189 002073 190 002074 191 002101 192 002120 193 002121 194 002126 195 002145 197 002146 198 002166 201 002173 205 002174 206 002210 207 002215 208 002240 209 002261 210 002302 211 002323 212 002344 213 002365 214 002406 215 002425 216 002431 217 002463 218 002510 219 002527 220 002556 221 002560 222 002562 223 002563 224 002566 228 002567 229 002603 230 002610 231 002612 232 002615 233 002630 235 002631 239 002632 240 002661 241 002665 245 002666 246 002667 247 002671 248 002714 249 002735 250 002756 251 003001 252 003022 253 003046 254 003071 255 003075 256 003077 260 003100 261 003102 265 003103 266 003105 267 003112 268 003156 269 003162 270 003171 271 003202 272 003205 274 003232 276 003237 277 003266 293 003277 279 003300 284 003311 285 003330 286 003351 287 003353 288 003401 289 003406 291 003407 ----------------------------------------------------------- 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