COMPILATION LISTING OF SEGMENT plio2_ldi_ Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1415.9 mst Mon Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 plio2_ldi_:proc(pspp) options(support); 11 12 13 /* updated 5-5-71 */ 14 /* updated 10-73 for 15* a) new conversion routines 16* b) new BASIS/1-10 inspired converting rules 17**/ 18 19 dcl based_chars char (1044480) based; 20 dcl ( oncharind,oci,bnc,blc,istore,istate,erno,i,fnb,sn) fixed bin(15); 21 22 dcl (sp,bp,psp,pspp,picture_p) ptr; 23 24 dcl temp_answer bit(2304) aligned; 25 dcl output256 char(256) aligned based(addr(temp_answer)); 26 dcl bit256varying bit(256) aligned varying; 27 dcl x char(1) aligned; 28 29 dcl buffer char(64) aligned; 30 31 dcl 1 ldi aligned based, 32 2 l fixed bin(15), 33 2 char256 char(256) aligned; 34 35 dcl QUOTE char(1) aligned static internal init(""""); 36 dcl char_vector(1000) unaligned based; 37 38 dcl (addr,addrel,bit,fixed,substr,unspec,length,verify) builtin; 39 40 dcl plio2_signal_$s_ ext entry(ptr,char(*),char(*),fixed bin(15)); 41 dcl plio2_signal_$conversion_error_ ext entry(ptr,char(*),fixed bin(15),ptr,fixed bin(15),fixed bin(15),fixed bin(15)); 42 43 dcl plio2_resig_ ext entry(ptr); 44 dcl conversion condition; 45 1 1 /* BEGIN INCLUDE FILE ... desc_dcls.incl.pl1 */ 1 2 1 3 /* This include segment contains declarations for use with assign_ */ 1 4 1 5 dcl intype fixed bin (17), 1 6 outtype fixed bin (17); 1 7 1 8 dcl inscale_prec fixed bin (35), 1 9 outscale_prec fixed bin (35); 1 10 1 11 dcl 1 info based (addr (inscale_prec)) aligned, 1 12 2 inscale fixed bin (17) unal, 1 13 2 inprec fixed bin (17) unal; 1 14 1 15 dcl 1 outfo based (addr (outscale_prec)) aligned, 1 16 2 outscale fixed bin (17) unal, 1 17 2 outprec fixed bin (17) unal; 1 18 1 19 dcl inclength fixed bin(31) aligned based(addr(inscale_prec)); 1 20 dcl outclength fixed bin(31) aligned based(addr(outscale_prec)); 1 21 1 22 dcl char_to_numeric_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17)), 1 23 assign_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)), 1 24 assign_round_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)), 1 25 assign_truncate_ entry (ptr, fixed bin (17), fixed bin (35), ptr, fixed bin (17), fixed bin (35)); 1 26 1 27 /* END INCLUDE FILE ... desc_dcls.incl.pl1 */ 46 2 1 dcl ( s_fixed_real_desc init( 1), 2 2 d_fixed_real_desc init( 2), 2 3 s_float_real_desc init( 3), 2 4 d_float_real_desc init( 4), 2 5 s_fixed_cplx_desc init( 5), 2 6 d_fixed_cplx_desc init( 6), 2 7 s_float_cplx_desc init( 7), 2 8 d_float_cplx_desc init( 8), 2 9 2 10 D_fixed_real_desc init( 9), 2 11 D_float_real_desc init(10), 2 12 D_fixed_cplx_desc init(11), 2 13 D_float_cplx_desc init(12), 2 14 2 15 pointer_desc init(13), 2 16 offset_desc init(14), 2 17 label_desc init(15), 2 18 entry_desc init(16), 2 19 structure_desc init(17), 2 20 area_desc init(18), 2 21 2 22 bit_desc init(19), 2 23 v_bit_desc init(20), 2 24 2 25 char_desc init(21), 2 26 v_char_desc init(22), 2 27 2 28 file_desc init(23) 2 29 ) fixed bin int static options(constant); 47 3 1 /* BEGIN INCLUDE FILE ... descriptor.incl.pl1 */ 3 2 3 3 dcl 1 desc_ aligned, 3 4 2 version2_ bit(1) unal, 3 5 2 type_ fixed bin(6) unsigned unal, 3 6 2 pack_ bit(1) unal, 3 7 2 dimension_ bit(4) unal, 3 8 2 scale_ fixed bin(11) unal, 3 9 2 precision_ fixed bin(11) unal; 3 10 3 11 /* END INCLUDE FILE ... descriptor.incl.pl1 */ 48 4 1 /* BEGIN INCLUDE FILE ... picture_util.incl.pl1 */ 4 2 4 3 dcl pack_picture_ entry (char (1), char (1), char (1)), 4 4 unpack_picture_ entry (char (1), char (1), char (1)), 4 5 validate_picture_ entry (char (1), char (1), fixed bin (15), fixed bin (15)), 4 6 4 7 assign_type_d entry (bit (36) aligned, ptr, ptr, fixed bin (17), fixed bin (35)), 4 8 assign_type_p entry (ptr, fixed bin (17), fixed bin (35)), 4 9 4 10 char1 char (1) based; 4 11 4 12 /* END INCLUDE FILE ... picture_util.incl.pl1 */ 49 5 1 /* BEGIN INCLUDE FILE ... plio2_ps.incl.pl1 */ 5 2 /* Stream I/O data block used by PL/I I/O runtime routines. 5 3* 5 4* Modified: 31 January 1978 by RAB to change plio2_data_$fsb_thread to plio2_data_fsb_thread_ 5 5**/ 5 6 /* format: style3,idind30 */ 5 7 5 8 /* based */ 5 9 5 10 declare 1 ps aligned based (psp),/* items set NORMALLY by compiled procedures */ 5 11 2 stack_frame_p ptr, /* items set in block prologue */ 5 12 2 ST_top_p ptr, 5 13 2 ST_block_p ptr, 5 14 2 format_area_p ptr, 5 15 2 ss_list_p ptr, 5 16 2 ab_return, /* items set in prep call */ 5 17 3 abret (3) ptr, 5 18 2 source_p ptr, /* addr(fakefsb) for string option, 5 19* addr(file) for explicit file option */ 5 20 2 special_list_p ptr, /* addr(OKlist) for get data, addr(format_list) for edit */ 5 21 2 copy_file_p ptr, 5 22 2 job aligned, 5 23 3 explicit_file bit (1) unal, 5 24 3 string bit (1) unal, 5 25 3 varying_string bit (1) unal, 5 26 3 data bit (1) unal, 5 27 3 edit bit (1) unal, 5 28 3 list bit (1) unal, 5 29 3 get bit (1) unal, 5 30 3 put bit (1) unal, 5 31 3 page bit (1) unal, 5 32 3 line bit (1) unal, 5 33 3 skip bit (1) unal, 5 34 3 copy bit (1) unal, 5 35 3 p1p2 bit (1) unal, 5 36 3 bit_string bit (1) unal, /* for environment(stringvalue) */ 5 37 3 char_string bit (1) unal, 5 38 3 read bit (1) unal, 5 39 3 write bit (1) unal, 5 40 3 rewrite bit (1) unal, 5 41 3 delete bit (1) unal, 5 42 3 locate bit (1) unal, 5 43 3 key bit (1) unal, 5 44 3 keyto bit (1) unal, 5 45 3 keyfrom bit (1) unal, 5 46 3 set bit (1) unal, 5 47 3 into bit (1) unal, 5 48 3 ignore bit (1) unal, 5 49 3 from bit (1) unal, 5 50 3 version bit (6) unal, 5 51 3 not_byte_buffer bit (1) unal, 5 52 3 pad1 bit (1) unal, 5 53 3 packed_ptr bit (1) unal, 5 54 2 number fixed bin (15), 5 55 2 value_p ptr, /* items set NORMALLY by compiled procedures per transmission */ 5 56 2 descriptor bit (36) aligned, 5 57 2 length fixed bin (15), /* may be swallowed into descriptor */ 5 58 2 top_half bit (18) unal, 5 59 2 offset bit (18) unal, 5 60 2 prep fixed bin (15), /* items treated ABNORMALLY, written by user and PLIO */ 5 61 2 new_format fixed bin (15), 5 62 2 switch aligned, /* items used by PLIO and not touched by compiled procedures */ 5 63 3 first_field bit (1) unal, 5 64 3 file bit (1) unal, 5 65 3 transmit_error bit (1) unal, 5 66 3 semi_sep bit (1) unal, 5 67 3 pad2 bit (32) unal, 5 68 2 file_p ptr, 5 69 2 fsbp ptr, 5 70 2 auxp ptr, /* used as addr(ldidata) for GETs */ 5 71 2 fabp ptr, 5 72 2 fab2p ptr, 5 73 2 vp ptr, 5 74 2 descr bit (36) aligned, 5 75 2 start_copy fixed bin (15), 5 76 2 quick_stream_storage, 5 77 3 a_stored fixed bin (35), 5 78 3 q_stored fixed bin (35); 5 79 5 80 /* external static */ 5 81 5 82 declare ( 5 83 plio2_data_$pspstat, 5 84 plio2_data_$fsbpstat, 5 85 plio2_data_$badfsbp, 5 86 plio2_data_$fabpstat, 5 87 plio2_data_$fab2pstat, 5 88 plio2_data_$pliostringfsbp 5 89 ) ptr external static; 5 90 5 91 dcl plio2_data_fsb_thread_ ptr ext static initial (null); 5 92 /* *system var */ 5 93 5 94 declare ( 5 95 plio2_data_$badjob bit (36) aligned, 5 96 plio2_data_$undef_file_sw bit (1) aligned 5 97 ) external static; 5 98 5 99 /* END INCLUDE FILE ... plio2_ps.incl.pl1 */ 50 51 52 /* A character string, S, is given which is not of zero length. 53* It has neither leading nor trailing blanks or other spaces. 54* (get_util_ returns the string ldi.chars _w_i_t_h leading s 55* but gvd and gvl remove them before calling ldi.) 56* 57* Case 1. S::= {"xxx"}... 58* remove outside quotes, doubled inside quotes to yield SS 59* assign SS to target, leaving "assign" to raise CONVERSION. 60* Case 2. S::= {"xxx"}...b 61* remove outside quotes and final b and doubled inside quotes to obtain SS 62* assign SS to bit256varying to obtain a bit string B of effective length L 63* ("assign" may raise CONVERSION) 64* assign B-L to target. 65* Case 3. S::= something else. 66* assign S to target, leaving "assign" to raise CONVERSION. 67* 68*C A U T I O N 69* 70* This is a very new idea, obtained from BASIS/1-10 with a lot of SALT. 71* Examine BASIS/1-11 and BASIS/1-12 carefully for conformance. 72* 73* Also note that a lot of error-numbers are no longer used (here at least), 74* since CONVERSION will now be raised by "assign" in ALL cases. 75* 76* P. A. Belmont 10-13-73 77**/ 78 psp=pspp; 79 istore=0; 80 blc=ps.auxp->ldi.l; 81 if blc > 256 82 then call plio2_signal_$s_(psp,"ERROR","ldi",242); 83 84 bp=addr(ps.auxp->ldi.char256); 85 86 87 88 89 on conversion call plio2_resig_(psp); 90 91 x=substr(bp->based_chars,1,1); 92 if x=QUOTE then go to is_quoted; 93 94 output_original_CS: 95 96 sp=bp; 97 sn=blc; 98 intype=char_desc*2; 99 100 output: 101 call assign_type_d(ps.descr,psp,picture_p,outtype,outscale_prec); 102 103 if ps.descr="0"b 104 then do; 105 call assign_(addr(buffer),outtype,outscale_prec,sp,intype,(sn)); 106 call pack_picture_(ps.vp->char1,picture_p->char1,addr(buffer)->char1); 107 end; 108 else do; 109 unspec(desc_) = ps.descr; 110 if type_=v_bit_desc 111 | type_=v_char_desc 112 then ps.vp = addrel(ps.vp,-1); 113 114 call assign_(ps.vp,outtype,outscale_prec,sp,intype,(sn)); 115 end; 116 117 if ps.switch.transmit_error then 118 do; 119 ps.switch.transmit_error="0"b; 120 call plio2_signal_$s_(psp,"TRANSMIT","ldi",153); 121 end; 122 return; 123 124 is_quoted: 125 istate=1; 126 bnc=2; 127 128 get_x: 129 if bnc>blc then 130 do; 131 if istate=1 then goto output_original_CS; 132 found_CS: 133 intype = char_desc*2; 134 sn = istore; 135 sp=addr(output256); 136 137 go to output; 138 end; 139 140 x=substr(bp->based_chars,bnc,1); 141 bnc=bnc+1; 142 go to action(istate); 143 144 145 146 action(1): 147 if x=QUOTE then 148 do; 149 istate=2; 150 go to get_x; 151 end; 152 153 store_char: 154 istore=istore+1; 155 substr(output256,istore,1)=x; 156 go to get_x; 157 158 action(2): 159 if x=QUOTE then 160 do; 161 istate=1; 162 go to store_char; 163 end; 164 165 if x^="b" then goto output_original_CS; 166 bit256varying=bit(substr(output256,1,istore)); 167 sn=length(bit256varying); /* if CONVERSION is signalled, length may no longer be = istore */ 168 sp=addr(bit256varying); 169 intype=v_bit_desc*2; 170 goto output; 171 172 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1005.4 plio2_ldi_.pl1 >spec>on>pl128d>plio2_ldi_.pl1 46 1 11/30/78 1227.5 desc_dcls.incl.pl1 >ldd>include>desc_dcls.incl.pl1 47 2 01/12/79 1059.7 desc_types.incl.pl1 >ldd>include>desc_types.incl.pl1 48 3 11/30/78 1227.5 descriptor.incl.pl1 >ldd>include>descriptor.incl.pl1 49 4 09/14/77 1705.7 picture_util.incl.pl1 >ldd>include>picture_util.incl.pl1 50 5 08/13/81 2043.5 plio2_ps.incl.pl1 >ldd>include>plio2_ps.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. QUOTE constant char(1) initial dcl 35 ref 92 146 158 addr builtin function dcl 38 ref 84 105 105 106 135 135 155 166 168 addrel builtin function dcl 38 ref 110 assign_ 000014 constant entry external dcl 1-22 ref 105 114 assign_type_d 000020 constant entry external dcl 4-3 ref 100 auxp 44 based pointer level 2 dcl 5-10 ref 80 84 based_chars based char(1044480) unaligned dcl 19 ref 91 140 bit builtin function dcl 38 ref 166 bit256varying 000216 automatic varying bit(256) dcl 26 set ref 166* 167 168 blc 000101 automatic fixed bin(15,0) dcl 20 set ref 80* 81 97 128 bnc 000100 automatic fixed bin(15,0) dcl 20 set ref 126* 128 140 141* 141 bp 000110 automatic pointer dcl 22 set ref 84* 91 94 140 buffer 000230 automatic char(64) dcl 29 set ref 105 105 106 char1 based char(1) unaligned dcl 4-3 set ref 106* 106* 106* char256 1 based char(256) level 2 dcl 31 set ref 84 char_desc constant fixed bin(17,0) initial dcl 2-1 ref 98 132 conversion 000250 stack reference condition dcl 44 ref 89 desc_ 000261 automatic structure level 1 dcl 3-3 set ref 109* descr 54 based bit(36) level 2 dcl 5-10 set ref 100* 103 109 intype 000256 automatic fixed bin(17,0) dcl 1-5 set ref 98* 105* 114* 132* 169* istate 000103 automatic fixed bin(15,0) dcl 20 set ref 124* 131 142 149* 161* istore 000102 automatic fixed bin(15,0) dcl 20 set ref 79* 134 153* 153 155 166 l based fixed bin(15,0) level 2 dcl 31 ref 80 ldi based structure level 1 dcl 31 length builtin function dcl 38 ref 167 output256 based char(256) dcl 25 set ref 135 155* 166 outscale_prec 000260 automatic fixed bin(35,0) dcl 1-8 set ref 100* 105* 114* outtype 000257 automatic fixed bin(17,0) dcl 1-5 set ref 100* 105* 114* pack_picture_ 000016 constant entry external dcl 4-3 ref 106 picture_p 000114 automatic pointer dcl 22 set ref 100* 106 plio2_resig_ 000012 constant entry external dcl 43 ref 89 plio2_signal_$s_ 000010 constant entry external dcl 40 ref 81 120 ps based structure level 1 dcl 5-10 psp 000112 automatic pointer dcl 22 set ref 78* 80 81* 84 89* 100 100* 103 106 109 110 110 114 117 119 120* pspp parameter pointer dcl 22 ref 10 78 sn 000104 automatic fixed bin(15,0) dcl 20 set ref 97* 105 114 134* 167* sp 000106 automatic pointer dcl 22 set ref 94* 105* 114* 135* 168* substr builtin function dcl 38 set ref 91 140 155* 166 switch 37 based structure level 2 dcl 5-10 temp_answer 000116 automatic bit(2304) dcl 24 set ref 135 155 166 transmit_error 37(02) based bit(1) level 3 packed unaligned dcl 5-10 set ref 117 119* type_ 0(01) 000261 automatic fixed bin(6,0) level 2 packed unsigned unaligned dcl 3-3 set ref 110 110 unspec builtin function dcl 38 set ref 109* v_bit_desc constant fixed bin(17,0) initial dcl 2-1 ref 110 169 v_char_desc constant fixed bin(17,0) initial dcl 2-1 ref 110 vp 52 based pointer level 2 dcl 5-10 set ref 106 110* 110 114* x 000227 automatic char(1) dcl 27 set ref 91* 92 140* 146 155 158 165 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. D_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 D_fixed_real_desc internal static fixed bin(17,0) initial dcl 2-1 D_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 D_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 area_desc internal static fixed bin(17,0) initial dcl 2-1 assign_round_ 000000 constant entry external dcl 1-22 assign_truncate_ 000000 constant entry external dcl 1-22 assign_type_p 000000 constant entry external dcl 4-3 bit_desc internal static fixed bin(17,0) initial dcl 2-1 char_to_numeric_ 000000 constant entry external dcl 1-22 char_vector based fixed bin(17,0) array unaligned dcl 36 d_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 d_fixed_real_desc internal static fixed bin(17,0) initial dcl 2-1 d_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 d_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 entry_desc internal static fixed bin(17,0) initial dcl 2-1 erno automatic fixed bin(15,0) dcl 20 file_desc internal static fixed bin(17,0) initial dcl 2-1 fixed builtin function dcl 38 fnb automatic fixed bin(15,0) dcl 20 i automatic fixed bin(15,0) dcl 20 inclength based fixed bin(31,0) dcl 1-19 info based structure level 1 dcl 1-11 inscale_prec automatic fixed bin(35,0) dcl 1-8 label_desc internal static fixed bin(17,0) initial dcl 2-1 oci automatic fixed bin(15,0) dcl 20 offset_desc internal static fixed bin(17,0) initial dcl 2-1 oncharind automatic fixed bin(15,0) dcl 20 outclength based fixed bin(31,0) dcl 1-20 outfo based structure level 1 dcl 1-15 plio2_data_$badfsbp external static pointer dcl 5-82 plio2_data_$badjob external static bit(36) dcl 5-94 plio2_data_$fab2pstat external static pointer dcl 5-82 plio2_data_$fabpstat external static pointer dcl 5-82 plio2_data_$fsbpstat external static pointer dcl 5-82 plio2_data_$pliostringfsbp external static pointer dcl 5-82 plio2_data_$pspstat external static pointer dcl 5-82 plio2_data_$undef_file_sw external static bit(1) dcl 5-94 plio2_data_fsb_thread_ external static pointer initial dcl 5-91 plio2_signal_$conversion_error_ 000000 constant entry external dcl 41 pointer_desc internal static fixed bin(17,0) initial dcl 2-1 s_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 s_fixed_real_desc internal static fixed bin(17,0) initial dcl 2-1 s_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 s_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 structure_desc internal static fixed bin(17,0) initial dcl 2-1 unpack_picture_ 000000 constant entry external dcl 4-3 validate_picture_ 000000 constant entry external dcl 4-3 verify builtin function dcl 38 NAMES DECLARED BY EXPLICIT CONTEXT. action 000000 constant label array(2) dcl 146 ref 142 found_CS 000342 constant label dcl 132 get_x 000334 constant label dcl 128 ref 150 156 is_quoted 000330 constant label dcl 124 ref 92 output 000142 constant label dcl 100 ref 137 170 output_original_CS 000134 constant label dcl 94 ref 131 165 plio2_ldi_ 000022 constant entry external dcl 10 store_char 000367 constant label dcl 153 ref 162 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 536 560 441 546 Length 1032 441 22 235 75 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME plio2_ldi_ 358 external procedure is an external procedure. on unit on line 89 68 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME plio2_ldi_ 000100 bnc plio2_ldi_ 000101 blc plio2_ldi_ 000102 istore plio2_ldi_ 000103 istate plio2_ldi_ 000104 sn plio2_ldi_ 000106 sp plio2_ldi_ 000110 bp plio2_ldi_ 000112 psp plio2_ldi_ 000114 picture_p plio2_ldi_ 000116 temp_answer plio2_ldi_ 000216 bit256varying plio2_ldi_ 000227 x plio2_ldi_ 000230 buffer plio2_ldi_ 000256 intype plio2_ldi_ 000257 outtype plio2_ldi_ 000260 outscale_prec plio2_ldi_ 000261 desc_ plio2_ldi_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_bs call_ext_out_desc call_ext_out return enable shorten_stack ext_entry int_entry any_to_any_tr set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_ assign_type_d pack_picture_ plio2_resig_ plio2_signal_$s_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000017 78 000030 79 000034 80 000035 81 000037 84 000073 89 000077 91 000124 92 000131 94 000134 97 000136 98 000140 100 000142 103 000162 105 000165 106 000212 107 000226 109 000227 110 000230 114 000243 117 000266 119 000272 120 000274 122 000327 124 000330 126 000332 128 000334 131 000337 132 000342 134 000344 135 000346 137 000350 140 000351 141 000356 142 000357 146 000361 149 000364 150 000366 153 000367 155 000370 156 000374 158 000375 161 000400 162 000402 165 000403 166 000405 167 000430 168 000433 169 000435 170 000437 ----------------------------------------------------------- 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