COMPILATION LISTING OF SEGMENT cobol_opch_is 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 1008.0 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_opch_is.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* format: style3 */ 23 cobol_opch_is: 24 proc (source_ptr, target_ptr); 25 26 /* 27*This procuedre sets up an argument list and calls an alm procedure 28*which in turn calls the cobol overpunch operator to move an 29*initial value into an overpunch sign data item in the constant section. 30**/ 31 32 /* DECLARATION OF THE PARAMETERS */ 33 34 dcl source_ptr ptr; 35 dcl target_ptr ptr; 36 37 /* DESCRIPTION OF THE PARAMETERS */ 38 39 /* 40*PARAMETER DESCRIPTION 41* 42*source_ptr Pointer to the data name (type 9) token in the constant 43* section to be initialized.(input) 44*target_ptr Pointer to the space in the constant segment to be 45* initialized. (input) 46**/ 47 48 /* DECLARATIONS OF EXTERNAL ENTRIES */ 49 50 dcl cobol_opch_init ext entry (ptr, ptr, bit (36), bit (36), fixed bin (35), fixed bin (35)); 51 52 /* DECLARATIONS OF BUILTIN FUNCTIONS */ 53 54 dcl addrel builtin; 55 dcl addr builtin; 56 dcl bin builtin; 57 dcl bit builtin; 58 dcl fixed builtin; 59 dcl substr builtin; 60 61 62 /* DECLARATIONS OF INTERNAL VARIABLES */ 63 64 dcl work_ptr ptr; 65 dcl work_space char (40); 66 67 dcl 1 s_scale aligned, 68 2 scale fixed bin (17) unaligned, 69 2 precision fixed bin (17) unaligned; 70 71 dcl 1 t_scale aligned, 72 2 scale fixed bin (17) unaligned, 73 2 precision fixed bin (17) unaligned; 74 75 dcl temp_precision fixed bin (17); 76 dcl s_code fixed bin (35); 77 dcl t_code fixed bin (35); 78 79 dcl source_scale bit (36) based (s_scale_ptr); 80 dcl target_scale bit (36) based (t_scale_ptr); 81 82 dcl s_scale_ptr ptr; 83 dcl t_scale_ptr ptr; 84 85 dcl dn_ptr ptr; 86 87 88 89 /**************************************************/ 90 /* START OF EXECUTION */ 91 /**************************************************/ 92 93 94 s_scale_ptr = addr (s_scale); 95 t_scale_ptr = addr (t_scale); /* Establish addressability to the initial value extension. */ 96 num_init_ptr = addrel (source_ptr, divide (source_ptr -> data_name.initial_ptr, 4, 17)); 97 98 work_ptr = addr (work_space); 99 100 /* Check to see whether the constant or zero should be moved to the constant section. */ 101 if (num_init.places_right + source_ptr -> data_name.places_left) <= 0 102 | (num_init.places_left + source_ptr -> data_name.places_right) <= 0 | (num_init.fig_con = "1"b) 103 then do; /* Move zero to the constant segment, because no part of the source field (the literal) 104* can be contained in the target. */ 105 106 substr (work_space, 1, 1) = "0"; /* Insert trailing sign */ 107 if num_init.sign = " " 108 then substr (work_space, 2, 1) = "+"; /* default plus */ 109 else substr (work_space, 2, 1) = num_init.sign; 110 111 /* Calculate the precision of the new source. (places right) */ 112 temp_precision = 1 - source_ptr -> data_name.places_left; 113 114 s_scale.scale = temp_precision; 115 s_scale.precision = 2; 116 117 end; /* Move zero to the constant segment, because no part of the source field (the literal) 118* can be contained in the target variable. */ 119 120 121 else do; /* Construct a trailing sign decimal constant to be the source. */ 122 123 substr (work_space, 1, num_init.places) = substr (num_init.literal, 1, num_init.places); 124 125 if num_init.sign = " " 126 then substr (work_space, num_init.places + 1, 1) = "+"; 127 else substr (work_space, num_init.places + 1, 1) = num_init.sign; 128 129 s_scale.scale = num_init.places_right; 130 s_scale.precision = num_init.places + 1; 131 132 end; /* Construct a trailing sign decimal constant to be the source. */ 133 134 s_code = 3; /* Unpacked decimal, trailing sign source. */ 135 136 if source_ptr -> data_name.sign_type = "010"b /* leading overpunch */ 137 then t_code = 1; 138 else t_code = 2; /* trailing overpunch */ 139 140 t_scale.scale = source_ptr -> data_name.places_right; 141 t_scale.precision = source_ptr -> data_name.item_length; 142 143 call cobol_opch_init (work_ptr, target_ptr, source_scale, target_scale, s_code, t_code); 144 145 146 /* INCLUDE FILES USED BY THIS PROCEDURE */ 147 1 1 1 2 /* BEGIN INCLUDE FILE ... cobol_type9.incl.pl1 */ 1 3 /* Last modified on 11/19/76 by ORN */ 1 4 1 5 /* 1 6*A type 9 data name token is entered into the name table by the data 1 7*division syntax phase for each data name described in the data division. 1 8*The replacement phase subsequently replaces type 8 user word references 1 9*to data names in the procedure division minpral file with the corresponding 1 10*type 9 tokens from the name table. 1 11**/ 1 12 1 13 /* dcl dn_ptr ptr; */ 1 14 1 15 /* BEGIN DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 1 16 dcl 1 data_name based (dn_ptr), 2 1 2 2 /* begin include file ... cobol_TYPE9.incl.pl1 */ 2 3 /* Last modified on 06/19/77 by ORN */ 2 4 /* Last modified on 12/28/76 by FCH */ 2 5 2 6 /* header */ 2 7 2 size fixed bin, 2 8 2 line fixed bin, 2 9 2 column fixed bin, 2 10 2 type fixed bin, 2 11 /* body */ 2 12 2 string_ptr ptr, 2 13 2 prev_rec ptr, 2 14 2 searched bit (1), 2 15 2 duplicate bit (1), 2 16 2 saved bit (1), 2 17 2 debug_ind bit (1), 2 18 2 filler2 bit (3), 2 19 2 used_as_sub bit (1), 2 20 2 def_line fixed bin, 2 21 2 level fixed bin, 2 22 2 linkage fixed bin, 2 23 2 file_num fixed bin, 2 24 2 size_rtn fixed bin, 2 25 2 item_length fixed bin(24), 2 26 2 places_left fixed bin, 2 27 2 places_right fixed bin, 2 28 /* description */ 2 29 2 file_section bit (1), 2 30 2 working_storage bit (1), 2 31 2 constant_section bit (1), 2 32 2 linkage_section bit (1), 2 33 2 communication_section bit (1), 2 34 2 report_section bit (1), 2 35 2 level_77 bit (1), 2 36 2 level_01 bit (1), 2 37 2 non_elementary bit (1), 2 38 2 elementary bit (1), 2 39 2 filler_item bit (1), 2 40 2 s_of_rdf bit (1), 2 41 2 o_of_rdf bit (1), 2 42 2 bin_18 bit (1), 2 43 2 bin_36 bit (1), 2 44 2 pic_has_l bit (1), 2 45 2 pic_is_do bit (1), 2 46 2 numeric bit (1), 2 47 2 numeric_edited bit (1), 2 48 2 alphanum bit (1), 2 49 2 alphanum_edited bit (1), 2 50 2 alphabetic bit (1), 2 51 2 alphabetic_edited bit (1), 2 52 2 pic_has_p bit (1), 2 53 2 pic_has_ast bit (1), 2 54 2 item_signed bit(1), 2 55 2 sign_separate bit (1), 2 56 2 display bit (1), 2 57 2 comp bit (1), 2 58 2 ascii_packed_dec_h bit (1), /* as of 8/16/76 this field used for comp8. */ 2 59 2 ascii_packed_dec bit (1), 2 60 2 ebcdic_packed_dec bit (1), 2 61 2 bin_16 bit (1), 2 62 2 bin_32 bit (1), 2 63 2 usage_index bit (1), 2 64 2 just_right bit (1), 2 65 2 compare_argument bit (1), 2 66 2 sync bit (1), 2 67 2 temporary bit (1), 2 68 2 bwz bit (1), 2 69 2 variable_length bit (1), 2 70 2 subscripted bit (1), 2 71 2 occurs_do bit (1), 2 72 2 key_a bit (1), 2 73 2 key_d bit (1), 2 74 2 indexed_by bit (1), 2 75 2 value_numeric bit (1), 2 76 2 value_non_numeric bit (1), 2 77 2 value_signed bit (1), 2 78 2 sign_type bit (3), 2 79 2 pic_integer bit (1), 2 80 2 ast_when_zero bit (1), 2 81 2 label_record bit (1), 2 82 2 sign_clause_occurred bit (1), 2 83 2 okey_dn bit (1), 2 84 2 subject_of_keyis bit (1), 2 85 2 exp_redefining bit (1), 2 86 2 sync_in_rec bit (1), 2 87 2 rounded bit (1), 2 88 2 ad_bit bit (1), 2 89 2 debug_all bit (1), 2 90 2 overlap bit (1), 2 91 2 sum_counter bit (1), 2 92 2 exp_occurs bit (1), 2 93 2 linage_counter bit (1), 2 94 2 rnm_01 bit (1), 2 95 2 aligned bit (1), 2 96 2 not_user_writable bit (1), 2 97 2 database_key bit (1), 2 98 2 database_data_item bit (1), 2 99 2 seg_num fixed bin, 2 100 2 offset fixed bin(24), 2 101 2 initial_ptr fixed bin, 2 102 2 edit_ptr fixed bin, 2 103 2 occurs_ptr fixed bin, 2 104 2 do_rec char(5), 2 105 2 bitt bit (1), 2 106 2 byte bit (1), 2 107 2 half_word bit (1), 2 108 2 word bit (1), 2 109 2 double_word bit (1), 2 110 2 half_byte bit (1), 2 111 2 filler5 bit (1), 2 112 2 bit_offset bit (4), 2 113 2 son_cnt bit (16), 2 114 2 max_red_size fixed bin(24), 2 115 2 name_size fixed bin, 2 116 2 name char(0 refer(data_name.name_size)); 2 117 2 118 2 119 2 120 /* end include file ... cobol_TYPE9.incl.pl1 */ 2 121 1 17 1 18 /* END DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 1 19 1 20 /* END INCLUDE FILE ... cobol_type9.incl.pl1 */ 1 21 148 149 150 3 1 3 2 /* <<< INITIAL VALUE EXTENSION INCLUDE FILE >>> */ 3 3 /* <<< LAST MODIFIED ON 08-16-74 >>> */ 3 4 3 5 /* 3 6*An initial value extension is included in a type 9 data name token when the 3 7*description of the data name includes a value clause. An initial value 3 8*extension is also included in a type 11 condition name token for each 3 9*value specified for the condition name. 3 10*An initial value extension has one of two formats, depending on the class 3 11*of the literal specified as a value. The first seven bits of each of the 3 12*two formats have the same meaning, and identify the format. 3 13**/ 3 14 3 15 /* The Numeric Initial Value Structure */ 3 16 3 17 3 18 /* ***STRUCTURE SIZE INFORMATION*** */ 3 19 /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE 3 20* LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: 3 21* 3 22* HARDWARE | SIZE (BYTES) 3 23* --------------------------------- 3 24* 6180 | 20 3 25* P7 | 12 3 26* --------------------------------- 3 27**/ 3 28 3 29 dcl num_init_ptr ptr; 3 30 3 31 dcl 1 num_init based (num_init_ptr), 3 32 2 numeric bit (1), 3 33 2 non_numeric bit (1), 3 34 2 fig_con bit (1), 3 35 2 all_lit bit (1), 3 36 2 single bit (1), 3 37 2 thru1 bit (1), 3 38 2 thru2 bit (1), 3 39 2 filler1 bit (1), 3 40 2 integral bit (1), 3 41 2 floating bit (1), 3 42 2 filler2 bit (6), 3 43 2 sign char (1), 3 44 2 exp_sign char (1), 3 45 2 exp_places fixed bin (15), 3 46 2 places_left fixed bin (15), 3 47 2 places_right fixed bin (15), 3 48 2 places fixed bin (15), 3 49 2 literal char (30); 3 50 3 51 3 52 /* 3 53* 3 54*FIELD CONTENTS 3 55* 3 56*numeric "1"b 3 57*non_numeric "0"b 3 58*fig_con Set to "1"b when this literal is a figurative constant. 3 59* If the literal is of the form ALL literal, this field 3 60* is set to "1"b only when the literal following ALL is 3 61* itself a figurative constant. 3 62*all_lit Set to "1"b when this literal is a figurative constant 3 63* of the form ALL literal. 3 64*single Set to "1"b when this literal is a value of a condition 3 65* name but is not part of a thru phrase. 3 66*thru1 Set to "1"b when this is the first literal in a thru 3 67* phrase. 3 68*thru2 Set to "1"b when this is the second literal in a thru 3 69* phrase. 3 70*filler1 Available for future use. 3 71*integral Set to "1"b when this literal is an integer. 3 72*floating Set to "1"b when this is a floating-point literal. Set 3 73* to "0"b when this is a fixed-point literal. 3 74*filler2 Available for future use. 3 75*sign The sign of the fixed-point part (as opposed to the 3 76* exponent) of the literal. The possible values of this 3 77* field are "+", "-", and a space. 3 78*exp_sign The sign of the exponent of the literal. The possible 3 79* values of this field are "+", "-", and a space. This 3 80* field is significant only when floating is "1"b. 3 81*exp_places The number of digits in the exponent of the literal. 3 82*places_left The number of digits to the left of the decimal point 3 83* in the fixed-point part of the literal. 3 84*places_right The number of digits to the right of the decimal point 3 85* in the fixed-point part of the literal. 3 86*places The number of digits in the literal, including the 3 87* exponent. 3 88*literal The digits of the literal. 3 89* 3 90**/ 3 91 3 92 3 93 3 94 3 95 /* The Alphanumeric Initial Value Structure */ 3 96 3 97 /* ***STRUCTURE SIZE INFORMATION*** */ 3 98 /* THE SIZE OF THIS STRUCTURE IN BYTES, (EXCLUDING VARIABLE 3 99* LENGTH ENTITIES), FOR EACH HARDWARE IMPLEMENTATION IS: 3 100* 3 101* HARDWARE | SIZE (BYTES) 3 102* --------------------------------- 3 103* 6180 | 8 3 104* P7 | 4 3 105* --------------------------------- 3 106**/ 3 107 3 108 dcl alp_init_ptr ptr; 3 109 3 110 dcl 1 alpha_init based (alp_init_ptr), 3 111 2 numeric bit (1), 3 112 2 non_numeric bit (1), 3 113 2 fig_con bit (1), 3 114 2 all_lit bit (1), 3 115 2 single bit (1), 3 116 2 thru1 bit (1), 3 117 2 thru2 bit (1), 3 118 2 filler1 bit (1), 3 119 2 bit_string bit (1), 3 120 2 fig_con_index bit (7), 3 121 2 lit_size fixed bin (15), 3 122 2 string char (770); 3 123 3 124 3 125 /* 3 126* 3 127*FIELD CONTENTS 3 128* 3 129*numeric "0"b 3 130*non_numeric "1"b 3 131*fig_con Set to "1"b when this literal is a figurative constant. 3 132*all_lit Set to "1"b when this literal is a figurative constant 3 133* of the form ALL literal. 3 134*single Set to "1"b when this literal is a value of a condition 3 135* name but is not part of a thru phrase. 3 136*thru1 Set to "1"b when this is the first literal in a thru 3 137* phrase. 3 138*thru2 Set to "1"b when this is the second literal in a thru 3 139* phrase. 3 140*filler1 Available for future use. 3 141*bit_string Set to "1"b when this is a boolean literal. 3 142*fig_con_index A binary value identifying this figurative constant. 3 143* This field is significant only when fig_con is "1"b. 3 144* 1 = zero, zeros, zeroes 3 145* 2 = space, spaces 3 146* 3 = upper-bound, upper-bounds 3 147* 4 = lower-bound, lower-bounds 3 148* 5 = high-value, high-values 3 149* 6 = low-value, low-values 3 150* 7 = quote, quotes 3 151*lit_size The number of characters in the literal, excluding 3 152* delimiting quotation marks. 3 153*string The literal character-string. 3 154* 3 155**/ 3 156 3 157 /* <<< END OF INITIAL VALUE EXTENSION INCLUDE FILE >>> */ 151 152 153 154 end cobol_opch_is; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0834.3 cobol_opch_is.pl1 >spec>install>MR12.3-1048>cobol_opch_is.pl1 148 1 03/27/82 0439.9 cobol_type9.incl.pl1 >ldd>include>cobol_type9.incl.pl1 1-17 2 11/11/82 1712.7 cobol_TYPE9.incl.pl1 >ldd>include>cobol_TYPE9.incl.pl1 151 3 03/27/82 0439.7 cobol_init_val_ext.incl.pl1 >ldd>include>cobol_init_val_ext.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. addr builtin function dcl 55 ref 94 95 98 addrel builtin function dcl 54 ref 96 cobol_opch_init 000010 constant entry external dcl 50 ref 143 data_name based structure level 1 unaligned dcl 1-16 fig_con 0(02) based bit(1) level 2 packed packed unaligned dcl 3-31 ref 101 initial_ptr 25 based fixed bin(17,0) level 2 dcl 1-16 ref 96 item_length 16 based fixed bin(24,0) level 2 dcl 1-16 ref 141 literal 5 based char(30) level 2 packed packed unaligned dcl 3-31 ref 123 num_init based structure level 1 unaligned dcl 3-31 num_init_ptr 000126 automatic pointer dcl 3-29 set ref 96* 101 101 101 107 109 123 123 123 125 125 127 127 129 130 places 4 based fixed bin(15,0) level 2 dcl 3-31 ref 123 123 125 127 130 places_left 2 based fixed bin(15,0) level 2 in structure "num_init" dcl 3-31 in procedure "cobol_opch_is" ref 101 places_left 17 based fixed bin(17,0) level 2 in structure "data_name" dcl 1-16 in procedure "cobol_opch_is" ref 101 112 places_right 20 based fixed bin(17,0) level 2 in structure "data_name" dcl 1-16 in procedure "cobol_opch_is" ref 101 140 places_right 3 based fixed bin(15,0) level 2 in structure "num_init" dcl 3-31 in procedure "cobol_opch_is" ref 101 129 precision 0(18) 000114 automatic fixed bin(17,0) level 2 in structure "s_scale" packed packed unaligned dcl 67 in procedure "cobol_opch_is" set ref 115* 130* precision 0(18) 000115 automatic fixed bin(17,0) level 2 in structure "t_scale" packed packed unaligned dcl 71 in procedure "cobol_opch_is" set ref 141* s_code 000117 automatic fixed bin(35,0) dcl 76 set ref 134* 143* s_scale 000114 automatic structure level 1 dcl 67 set ref 94 s_scale_ptr 000122 automatic pointer dcl 82 set ref 94* 143 scale 000114 automatic fixed bin(17,0) level 2 in structure "s_scale" packed packed unaligned dcl 67 in procedure "cobol_opch_is" set ref 114* 129* scale 000115 automatic fixed bin(17,0) level 2 in structure "t_scale" packed packed unaligned dcl 71 in procedure "cobol_opch_is" set ref 140* sign 0(18) based char(1) level 2 packed packed unaligned dcl 3-31 ref 107 109 125 127 sign_type 22(13) based bit(3) level 2 packed packed unaligned dcl 1-16 ref 136 source_ptr parameter pointer dcl 34 ref 23 96 96 101 101 112 136 140 141 source_scale based bit(36) packed unaligned dcl 79 set ref 143* substr builtin function dcl 59 set ref 106* 107* 109* 123* 123 125* 127* t_code 000120 automatic fixed bin(35,0) dcl 77 set ref 136* 138* 143* t_scale 000115 automatic structure level 1 dcl 71 set ref 95 t_scale_ptr 000124 automatic pointer dcl 83 set ref 95* 143 target_ptr parameter pointer dcl 35 set ref 23 143* target_scale based bit(36) packed unaligned dcl 80 set ref 143* temp_precision 000116 automatic fixed bin(17,0) dcl 75 set ref 112* 114 work_ptr 000100 automatic pointer dcl 64 set ref 98* 143* work_space 000102 automatic char(40) packed unaligned dcl 65 set ref 98 106* 107* 109* 123* 125* 127* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. alp_init_ptr automatic pointer dcl 3-108 alpha_init based structure level 1 unaligned dcl 3-110 bin builtin function dcl 56 bit builtin function dcl 57 dn_ptr automatic pointer dcl 85 fixed builtin function dcl 58 NAME DECLARED BY EXPLICIT CONTEXT. cobol_opch_is 000005 constant entry external dcl 23 NAME DECLARED BY CONTEXT OR IMPLICATION. divide builtin function ref 96 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 216 230 161 226 Length 444 161 12 177 34 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_opch_is 104 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_opch_is 000100 work_ptr cobol_opch_is 000102 work_space cobol_opch_is 000114 s_scale cobol_opch_is 000115 t_scale cobol_opch_is 000116 temp_precision cobol_opch_is 000117 s_code cobol_opch_is 000120 t_code cobol_opch_is 000122 s_scale_ptr cobol_opch_is 000124 t_scale_ptr cobol_opch_is 000126 num_init_ptr cobol_opch_is THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_opch_init NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000001 94 000012 95 000014 96 000016 98 000026 101 000030 106 000043 107 000045 109 000056 112 000060 114 000063 115 000065 117 000067 123 000070 125 000074 127 000106 129 000111 130 000114 134 000117 136 000121 138 000131 140 000133 141 000136 143 000140 154 000160 ----------------------------------------------------------- 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