ASSEMBLY LISTING OF SEGMENT >spec>install>1170>object_.alm ASSEMBLED ON: 10/17/88 0942.0 mst Mon OPTIONS USED: -target l68 list symbols ASSEMBLED BY: ALM Version 7.4 April 1987 ASSEMBLER CREATED: 11/02/87 1303.7 mst Mon 1 " *********************************************************** 2 " * * 3 " * Copyright, (C) Honeywell Bull Inc., 1988 * 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 " HISTORY COMMENTS: 13 " 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 14 " audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 15 " Modified to allow for joining information to the definition section. 16 " END HISTORY COMMENTS 17 18 000000 19 name object_ 20 "Original programmer: Nate Adleman??? 21 "Language: alm 22 "Translated by Richard H. Gumpertz 23 "Last modified on 11/12/72 by R. F. Mabee 24 " 11 Nov 1972 by R. F. Mabee to fix short return 25 " 26 Sept 1970 by RHG to add name pseudo-op 26 " 17 Sept 1970 at 0115 by RHG for new listing package 27 " 11 August 1970 at 0543 by RHG--total rewrite for new scratch segment layout 28 " 29 %include segnfo 1-1 " BEGIN INCLUDE FILE ... segnfo.incl.pl1 1-2 1-3 " HISTORY COMMENTS: 1-4 " 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 1-5 " audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 1-6 " Modified to keep a ptr to the list_fcb. This is part of the fix that 1-7 " removes pad characters from the listing. 1-8 " END HISTORY COMMENTS 1-9 000000 1-10 segref eb_data_,segnfo 000000 1-11 equ text,0 000002 1-12 equ source,2 000004 1-13 equ list,4 000006 1-14 equ list_fcb,6 000010 1-15 equ scrtch,8 000012 1-16 equ txtlen,10 000013 1-17 equ srclen,11 000014 1-18 equ lstlen,12 1-19 "END OF segnfo.incl.alm 30 " 31 "The text data words are written directly into the object segment. 32 "The remaining data and relocation information is written into the scratch segment. 33 34 "The scratch segment is accessed by the use of two pl1 type overlays. 35 "Note that text_overlay fits into the padding of link_and_sym_overlay. 36 37 38 39 "First the overlay used in writing the text relocation bits: 40 " dcl 1 text_overlay based ( addrel (eb_data_$segnfo.scrtch, 2*pc) ), 41 " 2 pad bit (9), 42 " 2 text_left_reloc bit (9), 43 " 2 pad bit (9), 44 " 2 text_right,reloc bit (9); 45 46 "Now the overlay used in writing the link and symbol data words and relocation bits: 47 " dcl 1 link_and_sym_overlay based( addrel (eb_data_$segnofo.scrtch, 8*pc) ), 48 " 2 link_left_reloc bit(9), 49 " 2 pad bit(9), 50 " 2 link_right_reloc bit(9), 51 " 2 pad bit(9), 52 " 2 link_data_word bit(36), 53 " 2 sym_left_reloc bit(9), 54 " 2 pad bit (9), 55 " 2 sym_right_reloc bit(9) 56 " 2 pad bit(9) 57 " 2 sym_data_word bit(36), 58 " 2 def_left_reloc bit(9), 59 " 2 pad bit (9), 60 " 2 def_right_reloc bit(9), 61 " 2 pad bit(9), 62 " 2 def_data_word bit(36); 63 " 64 "The following entries write the object words into various segments. 65 "Calls are of the format: 66 " call obj___(pc,word) 67 " where word is the word to be written. 68 69 70 71 72 "The following entry writes the text object words: 000000 73 entry object_ 000000 74 object_: 000000 aa 0 00002 2351 20 75 lda ap|2,* get the program counter 000001 4a 4 00010 2361 20 76 ldq segnfo+text,*al look at the current object word 000002 4a 4 00012 6011 20 77 tnz |[phsmsg] if non-zero, we probably have a phase error in the object segment 000003 aa 0 00004 2361 20 78 ldq ap|4,* get word to be written 000004 4a 4 00010 7561 20 79 stq segnfo+text,*al write it 000005 80 exit: 000005 aa 7 00044 7101 20 81 short_return 82 83 84 85 86 "The following entry writes the link object words: 000006 87 entry objlk 000006 88 objlk: 000006 aa 0 00002 2351 20 89 lda ap|2,* get the pc 000007 aa 000003 7350 00 90 als 3 multiply it by 8 000010 4a 4 00014 3521 20 91 objwri: eppbp segnfo+scrtch,*al do the addrel in the structure link_and_sym_overlay 000011 aa 2 00001 2361 00 92 ldq bp|1 look at current object word 000012 4a 4 00012 6011 20 93 tnz |[phsmsg] if non-zero, we probably have a phase error 000013 aa 0 00004 2361 20 94 ldq ap|4,* get the word to be written 000014 aa 2 00001 7561 00 95 stq bp|1 write it 000015 aa 777770 7100 04 96 tra exit-*,ic and return 97 98 99 100 101 "The following entry writes the symbol table object words: 000016 102 entry objst 000016 103 objst: 000016 aa 0 00002 2351 20 104 lda ap|2,* get the pc 000017 aa 000003 7350 00 105 als 3 multiply by 8 000020 aa 000002 0750 07 106 ada =2,dl add offset to indicate symbol data word 000021 aa 777767 7100 04 107 tra objwri-*,ic and join objik to write 108 109 "The following entry writes the definition object words: 000022 110 entry objdf 000022 111 objdf: 000022 aa 0 00002 2351 20 112 lda ap|2,* get the pc 000023 aa 000003 7350 00 113 als 3 multiply by 8 000024 aa 000004 0750 07 114 ada =4,dl add offset to indicate definition data word 000025 aa 777763 7100 04 115 tra objwri-*,ic and join objik to write 116 " 117 "The following entries read a word from the linkage or symbol table object segments. 118 "Calls are of the format: 119 " call geto__(pc,word) 120 " where word is the variable in which the value is to be returned. 121 122 123 124 125 "The following entry reads a word from the linkage object segment 000026 126 entry getolk 000026 127 getolk: 000026 aa 0 00002 2351 20 128 lda ap|2,* get the pc 000027 aa 000003 7350 00 129 als 3 multiply it by 8 000030 4a 4 00014 3521 20 130 objrea: eppbp segnfo+scrtch,*al do the addrel in the structure link_and_sym_overlay 000031 aa 2 00001 2361 00 131 ldq bp|1 get the object word 000032 aa 0 00004 7561 20 132 stq ap|4,* return it into the second argument 000033 aa 777752 7100 04 133 tra exit-*,ic and return 134 135 136 137 138 "The following entry reads a word from the symbol table object segment: 000034 139 entry getost 000034 140 getost: 000034 aa 0 00002 2351 20 141 lda ap|2,* get the pc 000035 aa 000003 7350 00 142 als 3 multiply it by 8 000036 aa 000002 0750 07 143 ada =2,dl add offset to indicate symbol data word 000037 aa 777771 7100 04 144 tra objrea-*,ic continue as above 145 146 "The following entry reads a word from the definition object segment: 000040 147 entry getodf 000040 148 getodf: 000040 aa 0 00002 2351 20 149 lda ap|2,* get the pc 000041 aa 000003 7350 00 150 als 3 multiply it by 8 000042 aa 000004 0750 07 151 ada =4,dl add offset to indicate definition data word 000043 aa 777765 7100 04 152 tra objrea-*,ic continue as above 153 " 154 "The following entries write the relocation bits to the text, linkage, or symbol relocation words 155 "Calls are of the format: 156 " call wrb_(pc,relwrd) 157 " where relwrd contains lbits in its left half and rbits in its right half. 158 159 160 161 162 "The following entry writes the text relocation information. 000044 163 entry wrbtx 000044 164 wrbtx: 000044 aa 0 00002 2351 20 165 lda ap|2,* get the pc 000045 aa 000001 7350 00 166 als 1 multiply it by 2 000046 4a 4 00014 3521 20 167 eppbp segnfo+scrtch,*al do the addrel in the structure text_overlay 000047 aa 0 00004 2361 20 168 ldq ap|4,* get the word to be written 000050 aa 2 00000 5521 24 169 stbq bp|0,ic* actually 24 modifier -- store the bits in the two subfields 000051 aa 777734 7100 04 170 tra exit-*,ic and return 171 172 173 174 175 "The following entry writes the linkage relocation information. 000052 176 entry wrblk 000052 177 wrblk: 000052 aa 0 00002 2351 20 178 lda ap|2,* get the pc 000053 aa 000003 7350 00 179 als 3 multiply by 8 000054 4a 4 00014 3521 20 180 relwri: eppbp segnfo+scrtch,*al do the addrel in the structure link_and_sym_overlay 000055 aa 0 00004 2361 20 181 ldq ap|4,* get the word to be written 000056 aa 000011 7360 00 182 qls 9 position it 000057 aa 2 00000 5521 50 183 stbq bp|0,ci actually 50 modifier -- store the bits in the two subfields 000060 aa 777725 7100 04 184 tra exit-*,ic and return 185 186 187 188 189 "The following entry writes the symbol relocation information. 000061 190 entry wrbst 000061 191 wrbst: 000061 aa 0 00002 2351 20 192 lda ap|2,* get the pc 000062 aa 000003 7350 00 193 als 3 multiply by 8 000063 aa 000002 0750 07 194 ada =2,dl add offset to indicate symbol bits 000064 aa 777770 7100 04 195 tra relwri-*,ic join wrblk to write 196 197 "The following entry writes the definition relocation information. 000065 198 entry wrbdf 000065 199 wrbdf: 000065 aa 0 00002 2351 20 200 lda ap|2,* get the pc 000066 aa 000003 7350 00 201 als 3 multiply by 8 000067 aa 000004 0750 07 202 ada =4,dl add offset to indicate definition bits 000070 aa 777764 7100 04 203 tra relwri-*,ic join wrblk to write 204 " 205 "The following entries read the relocation bits for the text, linkage, or symbol table. 206 "Calls are of the format: 207 " call getb__(pc,lbits,rbits) 208 209 210 211 212 "The following entry gets the text relocation bits: 000071 213 entry getbtx 000071 214 getbtx: 000071 aa 0 00002 2351 20 215 lda ap|2,* get the pc 000072 aa 000001 7350 00 216 als 1 multiply by 2 000073 4a 4 00014 2351 20 217 lda segnfo+scrtch,*al get the word we want 000074 aa 000022 7730 00 218 lrl 18 position the bit fields 000075 aa 000022 7720 00 219 relrea1: qrl 18 " " 000076 0a 000120 3770 00 220 anaq mask mask out the unwanted bits 000077 aa 0 00004 7551 20 221 sta ap|4,* return left_bits 000100 aa 0 00006 7561 20 222 stq ap|6,* return right_bits 000101 aa 777704 7100 04 223 tra exit-*,ic and return 224 225 226 227 228 "The following entry gets the link relocation bits: 000102 229 entry gtblk 000102 230 gtblk: 000102 aa 0 00002 2351 20 231 lda ap|2,* get the pc 000103 aa 000003 7350 00 232 als 3 multiply it by 8 000104 4a 4 00014 2351 20 233 relrea2: lda segnfo+scrtch,*al get the word we want 000105 aa 000033 7730 00 234 lrl 27 position the bit fields 000106 aa 777767 7100 04 235 tra relrea1-*,ic and join getbtx to get the bits 236 237 238 239 240 241 "The following entry gets the symbol relocation bits. 000107 242 entry getbst 000107 243 getbst: 000107 aa 0 00002 2351 20 244 lda ap|2,* get the pc 000110 aa 000003 7350 00 245 als 3 multiply by 8 000111 aa 000002 0750 07 246 ada =2,dl add offset to indicate symbol bits 000112 aa 777772 7100 04 247 tra relrea2-*,ic and join gtblk to get the bits 248 249 250 "The following entry gets the definition relocation bits. 000113 251 entry getbdf 000113 252 getbdf: 000113 aa 0 00002 2351 20 253 lda ap|2,* get the pc 000114 aa 000003 7350 00 254 als 3 multiply by 8 000115 aa 000004 0750 07 255 ada =4,dl add offset to indicate definition bits 000116 aa 777766 7100 04 256 tra relrea2-*,ic and join gtblk to get the bits 257 258 259 000117 aa 000000 0110 03 260 even force us to an even boundary for the anaq 000120 aa 000000 000777 261 mask: oct 777,777 this is the mask for recovering the relocation bits 000121 aa 000000 000777 262 " 263 end ENTRY SEQUENCES 000122 5a 000116 0000 00 000123 aa 7 00046 2721 20 000124 0a 000000 7100 00 000125 5a 000111 0000 00 000126 aa 7 00046 2721 20 000127 0a 000006 7100 00 000130 5a 000104 0000 00 000131 aa 7 00046 2721 20 000132 0a 000016 7100 00 000133 5a 000077 0000 00 000134 aa 7 00046 2721 20 000135 0a 000022 7100 00 000136 5a 000072 0000 00 000137 aa 7 00046 2721 20 000140 0a 000026 7100 00 000141 5a 000065 0000 00 000142 aa 7 00046 2721 20 000143 0a 000034 7100 00 000144 5a 000060 0000 00 000145 aa 7 00046 2721 20 000146 0a 000040 7100 00 000147 5a 000053 0000 00 000150 aa 7 00046 2721 20 000151 0a 000044 7100 00 000152 5a 000046 0000 00 000153 aa 7 00046 2721 20 000154 0a 000052 7100 00 000155 5a 000041 0000 00 000156 aa 7 00046 2721 20 000157 0a 000061 7100 00 000160 5a 000034 0000 00 000161 aa 7 00046 2721 20 000162 0a 000065 7100 00 000163 5a 000027 0000 00 000164 aa 7 00046 2721 20 000165 0a 000071 7100 00 000166 5a 000022 0000 00 000167 aa 7 00046 2721 20 000170 0a 000102 7100 00 000171 5a 000015 0000 00 000172 aa 7 00046 2721 20 000173 0a 000107 7100 00 000174 5a 000010 0000 00 000175 aa 7 00046 2721 20 000176 0a 000113 7100 00 NO LITERALS NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000200 5a 000003 000000 000201 5a 000132 600000 000202 aa 000000 000000 000203 55 000010 000002 000204 5a 000002 400003 000205 55 000006 000010 000206 aa 007 157 142 152 000207 aa 145 143 164 137 000210 55 000015 000003 000211 0a 000175 500000 000212 55 000013 000003 000213 aa 006 147 145 164 getbdf 000214 aa 142 144 146 000 000215 55 000022 000010 000216 0a 000172 500000 000217 55 000020 000003 000220 aa 006 147 145 164 getbst 000221 aa 142 163 164 000 000222 55 000027 000015 000223 0a 000167 500000 000224 55 000025 000003 000225 aa 005 147 164 142 gtblk 000226 aa 154 153 000 000 000227 55 000034 000022 000230 0a 000164 500000 000231 55 000032 000003 000232 aa 006 147 145 164 getbtx 000233 aa 142 164 170 000 000234 55 000041 000027 000235 0a 000161 500000 000236 55 000037 000003 000237 aa 005 167 162 142 wrbdf 000240 aa 144 146 000 000 000241 55 000046 000034 000242 0a 000156 500000 000243 55 000044 000003 000244 aa 005 167 162 142 wrbst 000245 aa 163 164 000 000 000246 55 000053 000041 000247 0a 000153 500000 000250 55 000051 000003 000251 aa 005 167 162 142 wrblk 000252 aa 154 153 000 000 000253 55 000060 000046 000254 0a 000150 500000 000255 55 000056 000003 000256 aa 005 167 162 142 wrbtx 000257 aa 164 170 000 000 000260 55 000065 000053 000261 0a 000145 500000 000262 55 000063 000003 000263 aa 006 147 145 164 getodf 000264 aa 157 144 146 000 000265 55 000072 000060 000266 0a 000142 500000 000267 55 000070 000003 000270 aa 006 147 145 164 getost 000271 aa 157 163 164 000 000272 55 000077 000065 000273 0a 000137 500000 000274 55 000075 000003 000275 aa 006 147 145 164 getolk 000276 aa 157 154 153 000 000277 55 000104 000072 000300 0a 000134 500000 000301 55 000102 000003 000302 aa 005 157 142 152 objdf 000303 aa 144 146 000 000 000304 55 000111 000077 000305 0a 000131 500000 000306 55 000107 000003 000307 aa 005 157 142 152 objst 000310 aa 163 164 000 000 000311 55 000116 000104 000312 0a 000126 500000 000313 55 000114 000003 000314 aa 005 157 142 152 objlk 000315 aa 154 153 000 000 000316 55 000123 000111 000317 0a 000123 500000 000320 55 000121 000003 000321 aa 007 157 142 152 object_ 000322 aa 145 143 164 137 000323 55 000002 000116 000324 6a 000000 400002 000325 55 000126 000003 000326 aa 014 163 171 155 symbol_table 000327 aa 142 157 154 137 000330 aa 164 141 142 154 000331 aa 145 000 000 000 DEFINITIONS HASH TABLE 000332 aa 000000 000033 000333 aa 000000 000000 000334 aa 000000 000000 000335 aa 000000 000000 000336 aa 000000 000000 000337 5a 000010 000000 000340 5a 000015 000000 000341 5a 000027 000000 000342 5a 000060 000000 000343 5a 000065 000000 000344 5a 000072 000000 000345 5a 000077 000000 000346 5a 000104 000000 000347 5a 000111 000000 000350 5a 000116 000000 000351 5a 000123 000000 000352 aa 000000 000000 000353 aa 000000 000000 000354 5a 000034 000000 000355 5a 000041 000000 000356 5a 000046 000000 000357 5a 000053 000000 000360 aa 000000 000000 000361 aa 000000 000000 000362 aa 000000 000000 000363 aa 000000 000000 000364 aa 000000 000000 000365 5a 000022 000000 EXTERNAL NAMES 000366 aa 006 160 150 163 phsmsg 000367 aa 155 163 147 000 000370 aa 007 160 162 156 prnter_ 000371 aa 164 145 162 137 000372 aa 006 163 145 147 segnfo 000373 aa 156 146 157 000 000374 aa 010 145 142 137 eb_data_ 000375 aa 144 141 164 141 000376 aa 137 000 000 000 NO TRAP POINTER WORDS TYPE PAIR BLOCKS 000377 aa 000004 000000 000400 55 000170 000166 000401 aa 000004 000000 000402 55 000174 000172 000403 aa 000001 000000 000404 aa 000000 000000 INTERNAL EXPRESSION WORDS 000405 5a 000201 000010 000406 5a 000177 000000 000407 5a 000201 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000200 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000016 000007 a2 000000 000000 000010 9a 777770 0000 46 eb_data_|segnfo 000011 5a 000207 0000 65 000012 9a 777766 0000 46 prnter_|phsmsg 000013 5a 000206 0000 00 000014 9a 777764 0000 46 eb_data_|segnfo 000015 5a 000205 0000 65 SYMBOL INFORMATION SYMBOL TABLE HEADER 000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000007 000004 aa 000000 115705 000005 aa 073761 335527 000006 aa 000000 116574 000007 aa 773303 100746 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 000174 000020 aa 000000 000115 000021 aa 000137 000133 000022 aa 000165 000115 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 067056 064040 000030 aa 101160 162151 000031 aa 154040 061071 000032 aa 070067 040040 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 000002 000066 aa 000076 000036 000067 aa 165715 122624 000070 aa 000000 116574 000071 aa 771551 600000 000072 aa 000106 000034 000073 aa 150057 017346 000074 aa 000000 115006 000075 aa 531647 200000 000076 aa 076163 160145 >spec>install>1170>object_.alm 000077 aa 143076 151156 000100 aa 163164 141154 000101 aa 154076 061061 000102 aa 067060 076157 000103 aa 142152 145143 000104 aa 164137 056141 000105 aa 154155 040040 000106 aa 076154 144144 >ldd>include>segnfo.incl.alm 000107 aa 076151 156143 000110 aa 154165 144145 000111 aa 076163 145147 000112 aa 156146 157056 000113 aa 151156 143154 000114 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number eb_data_ segnfo: 10. 5 exit object_: 80, 96, 133, 170, 184, 223. 113 getbdf object_: 251, 252. 107 getbst object_: 242, 243. 71 getbtx object_: 213, 214. 40 getodf object_: 147, 148. 26 getolk object_: 126, 127. 34 getost object_: 139, 140. 102 gtblk object_: 229, 230. 4 list segnfo: 13. 6 list_fcb segnfo: 14. 14 lstlen segnfo: 18. 120 mask object_: 220, 261. 22 objdf object_: 110, 111. 0 object_ object_: 73, 74. 6 objlk object_: 87, 88. 30 objrea object_: 130, 144, 152. 16 objst object_: 102, 103. 10 objwri object_: 91, 107, 115. phsmsg object_: 77, 93. prnter_ object_: 77, 93. 75 relrea1 object_: 219, 235. 104 relrea2 object_: 233, 247, 256. 54 relwri object_: 180, 195, 203. 10 scrtch object_: 91, 130, 167, 180, 217, 233, segnfo: 15. segnfo object_: 76, 79, 91, 130, 167, 180, 217, 233, segnfo: 10. 2 source segnfo: 12. 13 srclen segnfo: 17. 0 text object_: 76, 79, segnfo: 11. 12 txtlen segnfo: 16. 65 wrbdf object_: 198, 199. 52 wrblk object_: 176, 177. 61 wrbst object_: 190, 191. 44 wrbtx object_: 163, 164. 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