ASSEMBLY LISTING OF SEGMENT >spec>install>1110>tangent_.alm ASSEMBLED ON: 11/11/89 0940.1 mst Sat OPTIONS USED: -target l68 list symbols ASSEMBLED BY: ALM Version 8.14 March 1989 ASSEMBLER CREATED: 06/09/89 1002.3 mst Fri 1 " ****************************************** 2 " * * 3 " * Copyright, (C) Honeywell Limited, 1985 * 4 " * * 5 " ****************************************** 000000 6 name tangent_ 7 " Modification history: 8 " Written by H. Hoover, M. Mabey, and B. Wong, April 1985, 9 " based on GCOS routine '7nbc'. 10 " 11 " Function: Approximate to single precision the tangent or cotangent of an 12 " angle given in degrees or radians. 13 " 14 " Entry: through the appropriately named entry point with: 15 " EAQ = the angle whose tangent is desired. 16 " PR2 = the address of a 12 word, even-word aligned scratch area. 17 " 6 words are used in this program and 12 are used by the 18 " routine "principal_angle_". The storage for tangent_ and 19 " principal_angle_ overlap. 20 " PR3 = the return address. 21 " 22 " Exit: EAQ = the desired tangent or cotangent. 23 " 24 " Uses: X0, X1, X2, X3. 25 " X0 = saves a return address from principal_angle_ routines 26 " X1 = shift (returned by principal_angle_ routines) 27 " X2 = indicates BFP or HFP mode - all the floating point math 28 " routines use this register for the same purpose. 29 " X3 = indicates Tangent or Cotangent function 30 " The principal_angle_ routines use registers X1 and X2. 31 000000 32 segref math_constants_,max_value,one_degree,quarter_pi 000000 33 segref principal_angle_,principal_radians_,principal_degrees_ 34 000000 35 equ BFP,0 000002 36 equ HFP,2 777777 777777 37 equ Cotangent,-1 000001 38 equ Tangent,1 000000 39 equ sign,0 000000 40 equ x,0 000002 41 equ xx,2 000004 42 equ q,4 43 000000 44 segdef cotangent_degrees_,hfp_cotangent_degrees_ 000022 45 segdef cotangent_radians_,hfp_cotangent_radians_ 000042 46 segdef tangent_degrees_,hfp_tangent_degrees_ 000065 47 segdef tangent_radians_,hfp_tangent_radians_ 48 49 000000 50 hfp_cotangent_degrees_: 000000 aa 000002 6220 00 51 eax2 HFP " 2 word offset for HFP constants 000001 0a 000003 7100 00 52 tra cotangent_degrees 53 000002 54 cotangent_degrees_: 000002 aa 000000 6220 00 55 eax2 BFP " no offset for BFP constants 56 000003 57 cotangent_degrees: 000003 aa 400000 4750 03 58 fad =0.0,du " normalize input 000004 aa 000000 6210 00 59 eax1 0 " initialize X1 := shift = 1 000005 0a 000170 4250 12 60 fcmg forty_five,x2 000006 aa 000002 6044 04 61 tmoz 2,ic " if abs (angle) > 45: 000007 4a 4 00010 7001 20 62 tsx0 principal_degrees_ " call principal_degrees_ 63 000010 0a 000154 4270 12 64 dfcmg eps1,x2 " if conversion to degrees underflows 000011 0a 000143 6040 00 65 tmi infinity " return (infinity (degrees)) 66 " else: 000012 4a 4 00012 4631 20 67 dfmp one_degree,x2 " EAQ := degrees * one_degree 68 000013 aa 000001 3010 03 69 canx1 =1,du 000014 aa 000003 6010 04 70 tnz 3,ic " if shift = 0 | shift = 2: 000015 aa 777777 6230 00 71 eax3 Cotangent " X3 := Cotangent 000016 0a 000104 7100 00 72 tra part_tan_or_cot " return (part_tan_or_cot (Cotangent, degrees*one_degree)) 73 " else if shift = 1 | shift = 3 000017 aa 000001 6230 00 74 eax3 Tangent " X3 := Cotangent 000020 aa 000000 5130 00 75 fneg 0 " EAQ := -degrees*one_degree 000021 0a 000104 7100 00 76 tra part_tan_or_cot " return (part_tan_or_cot (Tangent, -(degrees*one_degree))) 77 78 000022 79 hfp_cotangent_radians_: 000022 aa 000002 6220 00 80 eax2 HFP " 2 word offset for HFP constants 000023 0a 000025 7100 00 81 tra cotangent_radians 82 000024 83 cotangent_radians_: 000024 aa 000000 6220 00 84 eax2 BFP " no offset for BFP constants 85 000025 86 cotangent_radians: 000025 aa 400000 4750 03 87 fad =0.0,du " normalize input 000026 4a 4 00014 4251 20 88 fcmg quarter_pi,x2 000027 aa 000003 6050 04 89 tpl 3,ic " if abs (angle) > quarter_pi: 000030 aa 777777 6230 00 90 eax3 Cotangent " X3 := Cotangent 000031 0a 000104 7100 00 91 tra part_tan_or_cot " return (part_tan_or_cot (Cotangent, radians) 000032 4a 4 00016 7001 20 92 tsx0 principal_radians_ " call principal_radians_ 93 000033 aa 000001 3010 03 94 canx1 =1,du 000034 aa 000003 6010 04 95 tnz 3,ic " if shift = 0 | shift = 2: 000035 aa 777777 6230 00 96 eax3 Cotangent " X3 := Cotangent 000036 0a 000104 7100 00 97 tra part_tan_or_cot " return (part_tan_or_cot (Cotangent, radians)) 98 " else if shift = 1 | shift = 3 000037 aa 000001 6230 00 99 eax3 Tangent " X3 := Cotangent 000040 aa 000000 5130 00 100 fneg 0 " EAQ := -radians 000041 0a 000104 7100 00 101 tra part_tan_or_cot " return (part_tan_or_cot (Tangent, -radians)) 102 103 000042 104 hfp_tangent_degrees_: 000042 aa 000002 6220 00 105 eax2 HFP " 2 word offset for HFP constants 000043 0a 000045 7100 00 106 tra tangent_degrees 107 000044 108 tangent_degrees_: 000044 aa 000000 6220 00 109 eax2 BFP " no offset for BFP constants 110 000045 111 tangent_degrees: 000045 aa 400000 4750 03 112 fad =0.0,du " normalize input 000046 aa 000000 6210 00 113 eax1 0 " initialize X1 := shift = 1 000047 0a 000170 4250 12 114 fcmg forty_five,x2 000050 aa 000002 6044 04 115 tmoz 2,ic " if abs (angle) > 45: 000051 4a 4 00010 7001 20 116 tsx0 principal_degrees_ " call principal_degrees_ 117 000052 0a 000154 4270 12 118 dfcmg eps1,x2 " if conversion to radians underflows 000053 aa 000002 6050 04 119 tpl 2,ic 000054 aa 400000 4310 03 120 fld =0.0,du " then use zero 121 " else: 000055 4a 4 00012 4631 20 122 dfmp one_degree,x2 " EAQ := degrees * one_degree 123 000056 aa 000001 3010 03 124 canx1 =1,du 000057 aa 000003 6010 04 125 tnz 3,ic " if shift = 0 | shift = 2: 000060 aa 000001 6230 00 126 eax3 Tangent " X3 := Tangent 000061 0a 000104 7100 00 127 tra part_tan_or_cot " return (part_tan_or_cot (Tangent, degrees*one_degree)) 128 " else if shift = 1 | shift = 3 000062 aa 777777 6230 00 129 eax3 Cotangent " X3 := Cotangent 000063 aa 000000 5130 00 130 fneg 0 " EAQ := -radians 000064 0a 000104 7100 00 131 tra part_tan_or_cot " return (part_tan_or_cot (Cotangent, -(degrees*one_degree))) 132 133 000065 134 hfp_tangent_radians_: 000065 aa 000002 6220 00 135 eax2 HFP " 2 word offset for HFP constants 000066 0a 000070 7100 00 136 tra tangent_radians 137 000067 138 tangent_radians_: 000067 aa 000000 6220 00 139 eax2 BFP " no offset for BFP constants 140 000070 141 tangent_radians: 000070 aa 400000 4750 03 142 fad =0.0,du " normalize input 000071 4a 4 00014 4251 20 143 fcmg quarter_pi,x2 000072 aa 000003 6050 04 144 tpl 3,ic " if abs (angle) <= quarter_pi: 000073 aa 000001 6230 00 145 eax3 Tangent 000074 0a 000104 7100 00 146 tra part_tan_or_cot " return (part_tan_or_cot (Tangent, radians)) 147 000075 4a 4 00016 7001 20 148 tsx0 principal_radians_ " call principal_radians_ 149 000076 aa 000001 3010 03 150 canx1 =1,du 000077 aa 000003 6010 04 151 tnz 3,ic " if shift = 0 | shift = 2: 000100 aa 000001 6230 00 152 eax3 Tangent " X3 := Tangent 000101 0a 000104 7100 00 153 tra part_tan_or_cot " return (part_tan_or_cot (Tangent, radians)) 154 " else if shift = 1 | shift = 3 000102 aa 777777 6230 00 155 eax3 Cotangent " X3 := Cotangent 000103 aa 000000 5130 00 156 fneg 0 " EAQ := -radians 157 " tra part_tan_or_cot " return (part_tan_or_cot (Cotangent, -radians)) 158 159 160 " Procedure 'part_tan_or_cot' (function, x) calculates either 'tan(x)' 161 " or 'cot(x)' to double precision accuracy, for 'x' in [-pi/4, pi/4]. 162 " Argument 'x' is given in the EAQ and the function to be calculated is 163 " given in X3. X3=-1 indicates 'cot' and X3=1 indicates 'tan'. 164 000104 165 part_tan_or_cot: 000104 0a 000160 4250 00 166 fcmg eps2 " if abs(x) < 5e-10: 000105 0a 000116 6050 00 167 tpl use_polynomial 000106 aa 000001 1030 03 168 cmpx3 Tangent,du " if function = Tangent 000107 aa 000003 6010 04 169 tnz 3,ic 000110 aa 000000 4710 00 170 frd 0 " then return (result) 000111 aa 3 00000 7101 00 171 tra pr3|0 000112 0a 000164 4270 12 172 dfcmg eps3,x2 " else if (1/result) overflows 000113 0a 000143 6044 00 173 tmoz infinity " then return (infinity (result)) 000114 0a 000174 5250 12 174 fdi one,x2 " else return (1/result) 000115 aa 3 00000 7101 00 175 tra pr3|0 176 000116 177 use_polynomial: 000116 aa 2 00000 4721 00 178 dfstr pr2|x 000117 aa 2 00000 4631 00 179 dfmp pr2|x " calculate xx = x*x 000120 aa 2 00002 4721 00 180 dfstr pr2|xx 000121 0a 000220 4770 12 181 dfad q1,x2 " calculate q = q(xx) 000122 aa 2 00002 4631 00 182 dfmp pr2|xx 000123 0a 000214 4770 12 183 dfad q0,x2 000124 aa 2 00004 4721 00 184 dfstr pr2|q 000125 aa 2 00002 4331 00 185 dfld pr2|xx " calculate p(xx) 000126 0a 000210 4630 12 186 dfmp p2,x2 000127 0a 000204 4770 12 187 dfad p1,x2 000130 aa 2 00002 4631 00 188 dfmp pr2|xx 000131 0a 000200 4770 12 189 dfad p0,x2 000132 aa 2 00000 4631 00 190 dfmp pr2|x " calculate p = x*p(xx) 000133 aa 000001 1030 03 191 cmpx3 Tangent,du 000134 aa 000004 6010 04 192 tnz 4,ic " if function = Tangent 000135 aa 2 00004 5671 00 193 dfdv pr2|q " then return (p/q) 000136 aa 000000 4710 00 194 frd 0 000137 aa 3 00000 7101 00 195 tra pr3|0 000140 aa 2 00004 5271 00 196 dfdi pr2|q " else return (q/p) 000141 aa 000000 4710 00 197 frd 0 000142 aa 3 00000 7101 00 198 tra pr3|0 199 200 000143 201 infinity: 000143 aa 2 00000 4551 00 202 fst pr2|sign 000144 4a 4 00020 4311 20 203 fld max_value 000145 4a 4 00020 4751 20 204 fad max_value " signal overflow 000146 4a 4 00020 4311 20 205 fld max_value 000147 aa 2 00000 4301 00 206 fszn pr2|sign " if sign >= 0 000150 aa 3 00000 6051 00 207 tpl pr3|0 " then return (max_value) 000151 aa 000000 5130 00 208 fneg 0 " else return (-max_value) 000152 aa 3 00000 7101 00 209 tra pr3|0 210 211 212 " Constants: 213 000153 aa 000000 0110 03 214 even 000154 aa 412712 273406 215 eps1: dec 8.418858142948452884d-38 000155 aa 461701 757347 000156 aa 402162 456701 216 oct 402162456701,514360373670 " 2.670821537926801391d-154 000157 aa 514360 373670 000160 aa 704422 701372 217 eps2: dec 5.0d-10 000161 aa 023326 451314 000162 aa 762104 560277 218 oct 762104560277,000000000000 000163 aa 000000 000000 000164 aa 404400 000000 219 eps3: oct 404400000000,000000000001 000165 aa 000000 000001 000166 aa 404040 000000 220 oct 404040000000,000000000001 000167 aa 000000 000001 000170 221 forty_five: 000170 aa 014550 000000 222 dec 45.0d0 000171 aa 000000 000000 000172 aa 004132 000000 223 oct 004132000000,000000000000 000173 aa 000000 000000 000174 aa 002400 000000 224 one: dec 1.d0 000175 aa 000000 000000 000176 aa 002040 000000 225 oct 002040000000,000000000000 000177 aa 000000 000000 000200 aa 014764 652342 226 p0: dec 6.26041119547433196d1 000201 aa 460137 304603 000202 aa 004175 152470 227 oct 004175152470,514027661141 000203 aa 514027 661141 000204 aa 007101 637667 228 p1: dec -6.97168400629442048d0 000205 aa 425655 210475 000206 aa 003440 717733 229 oct 003440717733,612726504236 000207 aa 612726 504236 000210 aa 772423 545326 230 p2: dec 6.73091025875915d-2 000211 aa 453071 362122 000212 aa 000042 354532 231 oct 000042354532,645307136212 000213 aa 645307 136212 000214 aa 014764 652342 232 q0: dec 6.260411195336057284d1 000215 aa 456547 154112 000216 aa 004175 152470 233 oct 004175152470,513531633022 000217 aa 513531 633022 000220 aa 013102 441001 234 q1: dec -2.78397212200427089d1 000221 aa 733050 625573 000222 aa 005710 244100 235 oct 005710244100,173305062557 000223 aa 173305 062557 236 237 end NO LITERALS NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000224 5a 000003 000000 000225 5a 000124 600000 000226 aa 000000 000000 000227 55 000011 000002 000230 5a 000002 400003 000231 55 000006 000011 000232 aa 010 164 141 156 000233 aa 147 145 156 164 000234 aa 137 000 000 000 000235 55 000022 000003 000236 0a 000065 400000 000237 55 000014 000003 000240 aa 024 150 146 160 hfp_tangent_radians_ 000241 aa 137 164 141 156 000242 aa 147 145 156 164 000243 aa 137 162 141 144 000244 aa 151 141 156 163 000245 aa 137 000 000 000 000246 55 000032 000011 000247 0a 000067 400000 000250 55 000025 000003 000251 aa 020 164 141 156 tangent_radians_ 000252 aa 147 145 156 164 000253 aa 137 162 141 144 000254 aa 151 141 156 163 000255 aa 137 000 000 000 000256 55 000043 000022 000257 0a 000042 400000 000260 55 000035 000003 000261 aa 024 150 146 160 hfp_tangent_degrees_ 000262 aa 137 164 141 156 000263 aa 147 145 156 164 000264 aa 137 144 145 147 000265 aa 162 145 145 163 000266 aa 137 000 000 000 000267 55 000053 000032 000270 0a 000044 400000 000271 55 000046 000003 000272 aa 020 164 141 156 tangent_degrees_ 000273 aa 147 145 156 164 000274 aa 137 144 145 147 000275 aa 162 145 145 163 000276 aa 137 000 000 000 000277 55 000064 000043 000300 0a 000022 400000 000301 55 000056 000003 000302 aa 026 150 146 160 hfp_cotangent_radians_ 000303 aa 137 143 157 164 000304 aa 141 156 147 145 000305 aa 156 164 137 162 000306 aa 141 144 151 141 000307 aa 156 163 137 000 000310 55 000074 000053 000311 0a 000024 400000 000312 55 000067 000003 000313 aa 022 143 157 164 cotangent_radians_ 000314 aa 141 156 147 145 000315 aa 156 164 137 162 000316 aa 141 144 151 141 000317 aa 156 163 137 000 000320 55 000105 000064 000321 0a 000000 400000 000322 55 000077 000003 000323 aa 026 150 146 160 hfp_cotangent_degrees_ 000324 aa 137 143 157 164 000325 aa 141 156 147 145 000326 aa 156 164 137 144 000327 aa 145 147 162 145 000330 aa 145 163 137 000 000331 55 000115 000074 000332 0a 000002 400000 000333 55 000110 000003 000334 aa 022 143 157 164 cotangent_degrees_ 000335 aa 141 156 147 145 000336 aa 156 164 137 144 000337 aa 145 147 162 145 000340 aa 145 163 137 000 000341 55 000002 000105 000342 6a 000000 400002 000343 55 000120 000003 000344 aa 014 163 171 155 symbol_table 000345 aa 142 157 154 137 000346 aa 164 141 142 154 000347 aa 145 000 000 000 DEFINITIONS HASH TABLE 000350 aa 000000 000015 000351 aa 000000 000000 000352 5a 000064 000000 000353 5a 000011 000000 000354 5a 000032 000000 000355 5a 000105 000000 000356 5a 000053 000000 000357 5a 000074 000000 000360 5a 000115 000000 000361 aa 000000 000000 000362 5a 000022 000000 000363 5a 000043 000000 000364 aa 000000 000000 000365 aa 000000 000000 EXTERNAL NAMES 000366 aa 022 160 162 151 principal_degrees_ 000367 aa 156 143 151 160 000370 aa 141 154 137 144 000371 aa 145 147 162 145 000372 aa 145 163 137 000 000373 aa 022 160 162 151 principal_radians_ 000374 aa 156 143 151 160 000375 aa 141 154 137 162 000376 aa 141 144 151 141 000377 aa 156 163 137 000 000400 aa 020 160 162 151 principal_angle_ 000401 aa 156 143 151 160 000402 aa 141 154 137 141 000403 aa 156 147 154 145 000404 aa 137 000 000 000 000405 aa 012 161 165 141 quarter_pi 000406 aa 162 164 145 162 000407 aa 137 160 151 000 000410 aa 012 157 156 145 one_degree 000411 aa 137 144 145 147 000412 aa 162 145 145 000 000413 aa 011 155 141 170 max_value 000414 aa 137 166 141 154 000415 aa 165 145 000 000 000416 aa 017 155 141 164 math_constants_ 000417 aa 150 137 143 157 000420 aa 156 163 164 141 000421 aa 156 164 163 137 NO TRAP POINTER WORDS TYPE PAIR BLOCKS 000422 aa 000004 000000 000423 55 000154 000142 000424 aa 000004 000000 000425 55 000154 000147 000426 aa 000004 000000 000427 55 000172 000161 000430 aa 000004 000000 000431 55 000172 000164 000432 aa 000004 000000 000433 55 000172 000167 000434 aa 000001 000000 000435 aa 000000 000000 INTERNAL EXPRESSION WORDS 000436 5a 000206 000000 000437 5a 000200 000000 000440 5a 000202 000000 000441 5a 000204 000000 000442 5a 000176 000000 000443 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000224 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000022 000007 a2 000000 000000 000010 9a 777770 0000 46 principal_angle_|principal_degrees_ 000011 5a 000216 0000 00 000012 9a 777766 0000 46 math_constants_|one_degree 000013 5a 000215 0000 12 000014 9a 777764 0000 46 math_constants_|quarter_pi 000015 5a 000214 0000 12 000016 9a 777762 0000 46 principal_angle_|principal_radians_ 000017 5a 000213 0000 00 000020 9a 777760 0000 46 math_constants_|max_value 000021 5a 000212 0000 00 SYMBOL INFORMATION SYMBOL TABLE HEADER 000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000010 000004 aa 000000 117244 000005 aa 361023 525721 000006 aa 000000 117547 000007 aa 251236 051124 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000157 000020 aa 000000 000102 000021 aa 000126 000121 000022 aa 000151 000102 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 070056 061064 000030 aa 040115 141162 000031 aa 143150 040061 000032 aa 071070 071040 000033 aa 040040 040040 000034 aa 110151 162156 000035 aa 145151 163145 000036 aa 156056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 055164 141162 000045 aa 147145 164040 000046 aa 154066 070040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040154 151163 000057 aa 164040 163171 000060 aa 155142 157154 000061 aa 163040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000001 000066 aa 000072 000037 000067 aa 175453 020045 000070 aa 000000 117547 000071 aa 177040 000000 000072 aa 076163 160145 >spec>install>1110>tangent_.alm 000073 aa 143076 151156 000074 aa 163164 141154 000075 aa 154076 061061 000076 aa 061060 076164 000077 aa 141156 147145 000100 aa 156164 137056 000101 aa 141154 155040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number 0 BFP tangent_: 35, 55, 84, 109, 139. 777777 Cotangent tangent_: 37, 71, 90, 96, 129, 155. 3 cotangent_degrees tangent_: 52, 57. 2 cotangent_degrees_ tangent_: 44, 54. 25 cotangent_radians tangent_: 81, 86. 24 cotangent_radians_ tangent_: 45, 83. 154 eps1 tangent_: 64, 118, 215. 160 eps2 tangent_: 166, 217. 164 eps3 tangent_: 172, 219. 170 forty_five tangent_: 60, 114, 221. 2 HFP tangent_: 36, 51, 80, 105, 135. 0 hfp_cotangent_degrees_ tangent_: 44, 50. 22 hfp_cotangent_radians_ tangent_: 45, 79. 42 hfp_tangent_degrees_ tangent_: 46, 104. 65 hfp_tangent_radians_ tangent_: 47, 134. 143 infinity tangent_: 65, 173, 201. math_constants_ tangent_: 32. max_value tangent_: 32, 203, 204, 205. 174 one tangent_: 174, 224. one_degree tangent_: 32, 67, 122. 200 p0 tangent_: 189, 226. 204 p1 tangent_: 187, 228. 210 p2 tangent_: 186, 230. 104 part_tan_or_cot tangent_: 72, 76, 91, 97, 101, 127, 131, 146, 153, 165. principal_angle_ tangent_: 33. principal_degrees_ tangent_: 33, 62, 116. principal_radians_ tangent_: 33, 92, 148. 4 q tangent_: 42, 184, 193, 196. 214 q0 tangent_: 183, 232. 220 q1 tangent_: 181, 234. quarter_pi tangent_: 32, 88, 143. 0 sign tangent_: 39, 202, 206. 1 Tangent tangent_: 38, 74, 99, 126, 145, 152, 168, 191. 45 tangent_degrees tangent_: 106, 111. 44 tangent_degrees_ tangent_: 46, 108. 70 tangent_radians tangent_: 136, 141. 67 tangent_radians_ tangent_: 47, 138. 116 use_polynomial tangent_: 167, 177. 0 x tangent_: 40, 178, 179, 190. 2 xx tangent_: 41, 180, 182, 185, 188. NO FATAL ERRORS ----------------------------------------------------------- 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