COMPILATION LISTING OF SEGMENT cobol_RETURN_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 1028.1 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8060), 17* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 18* MCR8060 cobol_RETURN_.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* format: style3 */ 23 cobol_RETURN_: 24 proc; /* Version 2. */ 25 /* Entry to return records from the SORTM_. */ 26 if cobol_SM_$disaster2 = 0 27 then do; /* Initial call to cobol_RETURN_. */ 28 cobol_SM_$disaster2 = 1; 29 cmpe = cobol_SM_$mcp; /* Point to the merge comparison procedure. */ 30 call A0; 31 return; 32 end; 33 if cobol_SM_$RETbl < 1 34 then do; /* Delete all work files. */ 35 cobol_SM_$disaster2 = cobol_SM_$disaster2 + 1; 36 if cobol_SM_$disaster2 > 2 37 then do; 38 cobol_SM_$ec = 6; 39 signal condition (SORTM_STOP); 40 end; 41 j = cobol_SM_$RETbl; 42 if cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.SI", j) 43 | cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.SR", j) 44 | cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.SS", j) 45 | cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.MI", j) 46 then do; 47 cobol_SM_$ec = 7; 48 signal condition (SORTM_STOP); 49 end; 50 do i = 1 to cobol_SM_$MIi; 51 N = cobol_NUMS_ (i); 52 if cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.MR." || N, j) 53 | cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.MS." || N, j) 54 then do; 55 cobol_SM_$ec = 7; 56 signal condition (SORTM_STOP); 57 end; 58 end; 59 return; 60 end; 61 62 if cobol_SM_$MIi < 2 63 then do; /* Single merge string. */ 64 if ns > n 65 then do; 66 cobol_SM_$disaster2 = 2; 67 cobol_SM_$ec = 8; 68 signal condition (SORTM_STOP); 69 end; 70 else do; 71 cobol_SM_$RETp = cobol_SM_$MSp (1); 72 p1 = cobol_SM_$MRp (1); 73 cobol_SM_$RETfb = p1 -> R.pt (ns); 74 cobol_SM_$RETbl = p1 -> R.ln (ns); 75 ns = ns + 1; 76 end; 77 return; 78 end; 79 80 /* Multiple merge strings. */ 81 call A2; 82 call A1; 83 return; 84 85 A0: 86 proc; /* SORTM_ return "record" procedure (entry point cobol_RETURN_). */ 87 if cobol_SM_$MIi < 2 88 then do; /* Single sorted string. */ 89 n = cobol_SM_$MIp -> I (1); /* Number of output records. */ 90 if n < 1 91 then do; 92 cobol_SM_$ec = 9; 93 signal condition (SORTM_STOP); 94 end; 95 else do; 96 cobol_SM_$RETp = cobol_SM_$MSp (1); 97 p1 = cobol_SM_$MRp (1); 98 cobol_SM_$RETfb = p1 -> R.pt (1); 99 cobol_SM_$RETbl = p1 -> R.ln (1); 100 ns = 2; 101 end; 102 return; 103 end; 104 105 /* Initialize for multiple merge strings. */ 106 /* Truncate merge work files. */ 107 if (cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.SI", 0)) 108 | (cobol_FILE_$LEN ("cobol_RETURN_", (cobol_SM_$sort_dir), "SRTM.SR", 0)) 109 then do; 110 cobol_SM_$ec = 10; 111 signal condition (SORTM_STOP); 112 end; 113 114 do i = 1 to cobol_SM_$MIi; /* Set indices for merge. */ 115 cobol_SM_$SIp -> I (i) = i; 116 cobol_SM_$SRp -> I (i) = 1; 117 end; 118 119 /* 120* calculate the lengths of 121* lists and their start pointers 122* in a linear set. 123* */ 124 t = 0; 125 l = cobol_SM_$MIi; 126 do n = 1 by 1 while (l > 1); 127 cobol_SM_$s (n) = t; /* start of the next list. */ 128 if substr (unspec (l), 36, 1) 129 then l = l + 1; /* make the length even. */ 130 t = t + l; /* accumulate the lengths. */ 131 l = l / 2; /* next list is 1/2 the length of the present list. */ 132 end; 133 n = n - 1; 134 135 /* Set cobol_SM_$s(n) to (one more than) the index to the list 136* for the final 2 records to be compared. */ 137 do i = 2 to n; 138 lft = cobol_SM_$s (i - 1); 139 rit = cobol_SM_$s (i); 140 do j = 1 by 2 to (rit - lft); 141 x = lft + j; 142 v1 = cobol_SM_$SIp -> I (x); 143 v2 = cobol_SM_$SIp -> I (x + 1); 144 if v2 > 0 145 then do; 146 p1 = cobol_SM_$MRp (v1); 147 p2 = cobol_SM_$MRp (v2); 148 cobol_SM_$sn1 = v1; 149 cobol_SM_$sn2 = v2; 150 cobol_SM_$rp1 = cobol_SM_$MSp (v1); 151 cobol_SM_$rp2 = cobol_SM_$MSp (v2); 152 cobol_SM_$fb1 = p1 -> R.pt (1); 153 cobol_SM_$fb2 = p2 -> R.pt (1); 154 cobol_SM_$bl1 = p1 -> R.ln (1); 155 cobol_SM_$bl2 = p2 -> R.ln (1); 156 call cmpe; 157 if (cobol_SM_$result = 1) | ((cobol_SM_$result = 2) & (v2 < v1)) 158 then v1 = v2; 159 end; 160 rit = rit + 1; 161 cobol_SM_$SIp -> I (rit) = v1; 162 end; 163 end; 164 i = cobol_SM_$s (n) + 2; 165 do i = 1 to i; 166 N = cobol_NUMS_ (cobol_SM_$SIp -> I (i)); 167 end; 168 169 y = cobol_SM_$s (n) + 1; 170 call A1; 171 return; 172 end A0; 173 174 A1: 175 proc; /* Obtain the next record to output. */ 176 v1 = cobol_SM_$SIp -> I (y); 177 v2 = cobol_SM_$SIp -> I (y + 1); 178 if (v1 = 0) & (v2 = 0) 179 then do; 180 cobol_SM_$ec = 11; 181 signal condition (SORTM_STOP); 182 cobol_SM_$RETbl = 0; 183 return; 184 end; 185 if v1 = 0 186 then do; 187 v1 = v2; 188 p1 = cobol_SM_$MRp (v2); 189 i1 = cobol_SM_$SRp -> I (v2); 190 end; 191 else if v2 = 0 192 then do; 193 p1 = cobol_SM_$MRp (v1); 194 i1 = cobol_SM_$SRp -> I (v1); 195 end; 196 else if v2 > 0 197 then do; 198 p1 = cobol_SM_$MRp (v1); 199 p2 = cobol_SM_$MRp (v2); 200 i1 = cobol_SM_$SRp -> I (v1); 201 i2 = cobol_SM_$SRp -> I (v2); 202 cobol_SM_$sn1 = v1; 203 cobol_SM_$sn2 = v2; 204 cobol_SM_$rp1 = cobol_SM_$MSp (v1); 205 cobol_SM_$rp2 = cobol_SM_$MSp (v2); 206 cobol_SM_$fb1 = p1 -> R.pt (i1); 207 cobol_SM_$fb2 = p2 -> R.pt (i2); 208 cobol_SM_$bl1 = p1 -> R.ln (i1); 209 cobol_SM_$bl2 = p2 -> R.ln (i2); 210 call cmpe; 211 212 if (cobol_SM_$result = 1) | ((cobol_SM_$result = 2) & (v2 < v1)) 213 then do; /* Second record first | 214* Key fields equal but 215* 2-nd merge string earlier. */ 216 v1 = v2; 217 i1 = i2; 218 p1 = p2; 219 end; 220 end; 221 cobol_SM_$RETp = cobol_SM_$MSp (v1); 222 cobol_SM_$RETfb = p1 -> R.pt (i1); 223 cobol_SM_$RETbl = p1 -> R.ln (i1); 224 return; 225 end A1; 226 A2: 227 proc; /* Delete last record output. */ 228 i = cobol_SM_$SRp -> I (v1) + 1; 229 if i > cobol_SM_$MIp -> I (v1) 230 then cobol_SM_$SIp -> I (v1) = 0; /* v1-th string depleted. */ 231 cobol_SM_$SRp -> I (v1) = i; /* Update the index to which 232* record is next in the v1-th string. */ 233 do j = 2 to n; 234 lft = cobol_SM_$s (j - 1); 235 if substr (unspec (v1), 36, 1) 236 then v2 = v1 + 1; 237 else v2 = v1 - 1; 238 x = (v1 + 1) / 2; 239 v1 = cobol_SM_$SIp -> I (v1 + lft); 240 v2 = cobol_SM_$SIp -> I (v2 + lft); 241 if v1 = 0 242 then v1 = v2; 243 else if v2 > 0 244 then do; 245 p1 = cobol_SM_$MRp (v1); 246 p2 = cobol_SM_$MRp (v2); 247 i1 = cobol_SM_$SRp -> I (v1); 248 i2 = cobol_SM_$SRp -> I (v2); 249 cobol_SM_$sn1 = v1; 250 cobol_SM_$sn2 = v2; 251 cobol_SM_$rp1 = cobol_SM_$MSp (v1); 252 cobol_SM_$rp2 = cobol_SM_$MSp (v2); 253 cobol_SM_$fb1 = p1 -> R.pt (i1); 254 cobol_SM_$fb2 = p2 -> R.pt (i2); 255 cobol_SM_$bl1 = p1 -> R.ln (i1); 256 cobol_SM_$bl2 = p2 -> R.ln (i2); 257 call cmpe; 258 if (cobol_SM_$result = 1) | ((cobol_SM_$result = 2) & (v2 < v1)) 259 then v1 = v2; 260 end; 261 cobol_SM_$SIp -> I (x + cobol_SM_$s (j)) = v1; 262 v1 = x; 263 end; 264 end A2; 265 dcl ( 266 cobol_SM_$SIp, 267 cobol_SM_$MIp, 268 cobol_SM_$rp1, 269 cobol_SM_$rp2, 270 cobol_SM_$RETp, 271 cobol_SM_$MRp (1000), 272 cobol_SM_$MSp (1000), 273 cobol_SM_$SRp 274 ) ptr ext, 275 ( 276 cobol_SM_$disaster2, 277 cobol_SM_$s (36), 278 cobol_SM_$sn1, 279 cobol_SM_$sn2, 280 cobol_SM_$fb1, 281 cobol_SM_$fb2, 282 cobol_SM_$bl1, 283 cobol_SM_$bl2, 284 cobol_SM_$result, 285 cobol_SM_$RETfb, 286 cobol_SM_$RETbl, 287 cobol_SM_$ec, 288 cobol_SM_$MIi 289 ) fixed bin (35) ext, 290 cobol_SM_$sort_dir char (168) var ext, 291 cobol_SM_$mcp entry variable ext, 292 S bit (2359296) aligned based, 293 I (65536) fixed bin (35) aligned based, 294 1 R (32768) aligned based, 295 2 pt fixed bin (35), 296 2 ln fixed bin (35), 297 N char (13) var, 298 cobol_NUMS_ entry (fixed bin (35)) ext returns (char (13) var), 299 cobol_FILE_$LEN entry (char (*), char (*), char (*), fixed bin (35)) ext returns (bit (1)), 300 cobol_FILE_$OUT entry (char (*), char (*), char (*), char (*), ptr) ext returns (bit (1)), 301 cmpe entry variable internal static, 302 SORTM_STOP condition ext, 303 (p1, p2) ptr, 304 (t, n, v1, v2, i1, i2, l, x, j, y, ns, np, lft, rit, i) 305 fixed bin (35) static internal; 306 307 /***** Declaration for builtin function *****/ 308 309 dcl (substr, mod, binary, fixed, addr, addrel, rel, length, string, unspec, null, index) 310 builtin; 311 312 /***** End of declaration for builtin function *****/ 313 314 end cobol_RETURN_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0837.2 cobol_RETURN_.pl1 >spec>install>MR12.3-1048>cobol_RETURN_.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. I based fixed bin(35,0) array dcl 265 set ref 89 115* 116* 142 143 161* 166* 176 177 189 194 200 201 228 229 229* 231* 239 240 247 248 261* N 000100 automatic varying char(13) dcl 265 set ref 51* 52 52 166* R based structure array level 1 dcl 265 SORTM_STOP 000106 stack reference condition dcl 265 ref 39 48 56 68 93 111 181 cmpe 000010 internal static entry variable dcl 265 set ref 29* 156 210 257 cobol_FILE_$LEN 000112 constant entry external dcl 265 ref 42 42 42 42 52 52 107 107 cobol_NUMS_ 000110 constant entry external dcl 265 ref 51 166 cobol_SM_$MIi 000102 external static fixed bin(35,0) dcl 265 ref 50 62 87 114 125 cobol_SM_$MIp 000034 external static pointer dcl 265 ref 89 229 cobol_SM_$MRp 000044 external static pointer array dcl 265 ref 72 97 146 147 188 193 198 199 245 246 cobol_SM_$MSp 000046 external static pointer array dcl 265 ref 71 96 150 151 204 205 221 251 252 cobol_SM_$RETbl 000076 external static fixed bin(35,0) dcl 265 set ref 33 41 74* 99* 182* 223* cobol_SM_$RETfb 000074 external static fixed bin(35,0) dcl 265 set ref 73* 98* 222* cobol_SM_$RETp 000042 external static pointer dcl 265 set ref 71* 96* 221* cobol_SM_$SIp 000032 external static pointer dcl 265 ref 115 142 143 161 166 176 177 229 239 240 261 cobol_SM_$SRp 000050 external static pointer dcl 265 ref 116 189 194 200 201 228 231 247 248 cobol_SM_$bl1 000066 external static fixed bin(35,0) dcl 265 set ref 154* 208* 255* cobol_SM_$bl2 000070 external static fixed bin(35,0) dcl 265 set ref 155* 209* 256* cobol_SM_$disaster2 000052 external static fixed bin(35,0) dcl 265 set ref 26 28* 35* 35 36 66* cobol_SM_$ec 000100 external static fixed bin(35,0) dcl 265 set ref 38* 47* 55* 67* 92* 110* 180* cobol_SM_$fb1 000062 external static fixed bin(35,0) dcl 265 set ref 152* 206* 253* cobol_SM_$fb2 000064 external static fixed bin(35,0) dcl 265 set ref 153* 207* 254* cobol_SM_$mcp 000106 external static entry variable dcl 265 ref 29 cobol_SM_$result 000072 external static fixed bin(35,0) dcl 265 ref 157 157 212 212 258 258 cobol_SM_$rp1 000036 external static pointer dcl 265 set ref 150* 204* 251* cobol_SM_$rp2 000040 external static pointer dcl 265 set ref 151* 205* 252* cobol_SM_$s 000054 external static fixed bin(35,0) array dcl 265 set ref 127* 138 139 164 169 234 261 cobol_SM_$sn1 000056 external static fixed bin(35,0) dcl 265 set ref 148* 202* 249* cobol_SM_$sn2 000060 external static fixed bin(35,0) dcl 265 set ref 149* 203* 250* cobol_SM_$sort_dir 000104 external static varying char(168) dcl 265 ref 42 42 42 42 52 52 107 107 i 000031 internal static fixed bin(35,0) dcl 265 set ref 50* 51* 114* 115 115 116* 137* 138 139* 164* 165* 165* 166* 228* 229 231 i1 000020 internal static fixed bin(35,0) dcl 265 set ref 189* 194* 200* 206 208 217* 222 223 247* 253 255 i2 000021 internal static fixed bin(35,0) dcl 265 set ref 201* 207 209 217 248* 254 256 j 000024 internal static fixed bin(35,0) dcl 265 set ref 41* 42* 42* 42* 42* 52* 52* 140* 141* 233* 234 261* l 000022 internal static fixed bin(35,0) dcl 265 set ref 125* 126 128 128* 128 130 131* 131 lft 000027 internal static fixed bin(35,0) dcl 265 set ref 138* 140 141 234* 239 240 ln 1 based fixed bin(35,0) array level 2 dcl 265 ref 74 99 154 155 208 209 223 255 256 n 000015 internal static fixed bin(35,0) dcl 265 set ref 64 89* 90 126* 127* 133* 133 137 164 169 233 ns 000026 internal static fixed bin(35,0) dcl 265 set ref 64 73 74 75* 75 100* p1 000114 automatic pointer dcl 265 set ref 72* 73 74 97* 98 99 146* 152 154 188* 193* 198* 206 208 218* 222 223 245* 253 255 p2 000116 automatic pointer dcl 265 set ref 147* 153 155 199* 207 209 218 246* 254 256 pt based fixed bin(35,0) array level 2 dcl 265 ref 73 98 152 153 206 207 222 253 254 rit 000030 internal static fixed bin(35,0) dcl 265 set ref 139* 140 160* 160 161 substr builtin function dcl 309 ref 128 235 t 000014 internal static fixed bin(35,0) dcl 265 set ref 124* 127 130* 130 unspec builtin function dcl 309 ref 128 235 v1 000016 internal static fixed bin(35,0) dcl 265 set ref 142* 146 148 150 157 157* 161 176* 178 185 187* 193 194 198 200 202 204 212 216* 221 228 229 229 231 235 235 237 238 239* 239 241 241* 245 247 249 251 258 258* 261 262* v2 000017 internal static fixed bin(35,0) dcl 265 set ref 143* 144 147 149 151 157 157 177* 178 187 188 189 191 196 199 201 203 205 212 216 235* 237* 240* 240 241 243 246 248 250 252 258 258 x 000023 internal static fixed bin(35,0) dcl 265 set ref 141* 142 143 238* 261 262 y 000025 internal static fixed bin(35,0) dcl 265 set ref 169* 176 177 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. S based bit(2359296) dcl 265 addr builtin function dcl 309 addrel builtin function dcl 309 binary builtin function dcl 309 cobol_FILE_$OUT 000000 constant entry external dcl 265 fixed builtin function dcl 309 index builtin function dcl 309 length builtin function dcl 309 mod builtin function dcl 309 np internal static fixed bin(35,0) dcl 265 null builtin function dcl 309 rel builtin function dcl 309 string builtin function dcl 309 NAMES DECLARED BY EXPLICIT CONTEXT. A0 000651 constant entry internal dcl 85 ref 30 A1 001364 constant entry internal dcl 174 ref 82 170 A2 001562 constant entry internal dcl 226 ref 81 cobol_RETURN_ 000032 constant entry external dcl 23 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2216 2332 2004 2226 Length 2644 2004 114 275 211 22 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_RETURN_ 196 external procedure is an external procedure. A0 internal procedure shares stack frame of external procedure cobol_RETURN_. A1 internal procedure shares stack frame of external procedure cobol_RETURN_. A2 internal procedure shares stack frame of external procedure cobol_RETURN_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 cmpe cobol_RETURN_ 000014 t cobol_RETURN_ 000015 n cobol_RETURN_ 000016 v1 cobol_RETURN_ 000017 v2 cobol_RETURN_ 000020 i1 cobol_RETURN_ 000021 i2 cobol_RETURN_ 000022 l cobol_RETURN_ 000023 x cobol_RETURN_ 000024 j cobol_RETURN_ 000025 y cobol_RETURN_ 000026 ns cobol_RETURN_ 000027 lft cobol_RETURN_ 000030 rit cobol_RETURN_ 000031 i cobol_RETURN_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_RETURN_ 000100 N cobol_RETURN_ 000114 p1 cobol_RETURN_ 000116 p2 cobol_RETURN_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ent_var call_ext_out_desc call_ext_out return_mac signal_op shorten_stack ext_entry trunc_fx2 divide_fx1 divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_FILE_$LEN cobol_NUMS_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_SM_$MIi cobol_SM_$MIp cobol_SM_$MRp cobol_SM_$MSp cobol_SM_$RETbl cobol_SM_$RETfb cobol_SM_$RETp cobol_SM_$SIp cobol_SM_$SRp cobol_SM_$bl1 cobol_SM_$bl2 cobol_SM_$disaster2 cobol_SM_$ec cobol_SM_$fb1 cobol_SM_$fb2 cobol_SM_$mcp cobol_SM_$result cobol_SM_$rp1 cobol_SM_$rp2 cobol_SM_$s cobol_SM_$sn1 cobol_SM_$sn2 cobol_SM_$sort_dir LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000031 26 000037 28 000041 29 000043 30 000050 31 000051 33 000052 35 000055 36 000061 38 000063 39 000065 41 000070 42 000073 47 000361 48 000365 50 000370 51 000402 52 000412 55 000571 56 000575 58 000600 59 000606 62 000607 64 000612 66 000615 67 000617 68 000621 69 000624 71 000625 72 000630 73 000633 74 000637 75 000641 77 000645 81 000646 82 000647 83 000650 85 000651 87 000652 89 000656 90 000661 92 000663 93 000665 94 000670 96 000671 97 000674 98 000677 99 000701 100 000703 102 000705 107 000706 110 001042 111 001046 114 001051 115 001062 116 001065 117 001072 124 001077 125 001100 126 001102 127 001110 128 001114 130 001123 131 001127 132 001136 133 001143 137 001151 138 001160 139 001163 140 001166 141 001203 142 001207 143 001213 144 001216 146 001217 147 001224 148 001232 149 001235 150 001237 151 001242 152 001245 153 001247 154 001251 155 001253 156 001255 157 001261 160 001274 161 001300 162 001305 163 001312 164 001317 165 001325 166 001334 167 001346 169 001354 170 001362 171 001363 174 001364 176 001365 177 001373 178 001375 180 001401 181 001403 182 001406 183 001410 185 001411 187 001413 188 001415 189 001421 190 001426 191 001427 193 001431 194 001436 195 001443 196 001444 198 001445 199 001452 200 001460 201 001466 202 001471 203 001473 204 001475 205 001500 206 001503 207 001510 208 001515 209 001517 210 001521 212 001525 216 001536 217 001540 218 001542 221 001544 222 001551 223 001557 224 001561 226 001562 228 001563 229 001573 231 001602 233 001604 234 001614 235 001617 237 001627 238 001635 239 001646 240 001654 241 001660 243 001665 245 001667 246 001674 247 001702 248 001710 249 001713 250 001715 251 001717 252 001722 253 001725 254 001732 255 001737 256 001741 257 001743 258 001747 261 001762 262 001773 263 001775 264 002002 ----------------------------------------------------------- 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