COMPILATION LISTING OF SEGMENT dmu_cv_vector_to_string Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1529.4 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* Converts data in the form of a typed vector into a varying bit 9* string, formatted according to the supplied field_table. The bit string 10* is placed in the caller supplied string_buffer if it will fit. If it 11* doesn't fit, then the bit string is allocated in the caller-supplied 12* work_area. If it doesn't fit there (or no work_area was supplied), then 13* and error is returned. 14**/ 15 16 /* HISTORY: 17*Written by Lindsey Spratt, 04/02/82. 18*Modified: 19*04/14/82 by Lindsey Spratt: Changed to set the length word of the "p_string" 20* returned to the caller. A new variable, p_string_length, is 21* defined which is based on the first word of the storage pointed at 22* by p_string_ptr. Also, varying size length value for varying 23* strings are now handled. The old technology was to assume that 24* all length values for varying character strings were one word (36 25* bits). Now, the "length_in_bits" of the field_table is used to 26* get the size of the length value. 27*05/17/82 by Lindsey Spratt: Changed to use 28* field_table.varying_field_map.varying_field_index to determine if 29* a field is a varying string. Was (incorrectly) using the 30* descriptor_is_varying bit. 31*12/22/82 by Lindsey Spratt: Extended to support allocating new buffers at 32* need. Added the p_return_string_buffer_length parameter. 33*01/03/83 by Lindsey Spratt: Corrected setting of the buffer_string.length 34* value. Was being set to buffer_string_length regardless of actual 35* string length, in some cases. 36*01/06/83 by Lindsey Spratt: Fixed varying case to not use the p_string_ptr -> 37* based_varying_bit_string construct, but rather 38* buffer_string.contents. 39*03/23/83 by Lindsey Spratt: Fixed to use version 2 field_table structure, 40* and changed to check the version of the field_table structure and 41* the type of the simple_typed_vector. 42*05/03/84 by Matthew Pierret: Changed to FIELD_TABLE_VERSION_3. 43*11/08/84 by Lindsey L. Spratt: Changed to use ERROR_RETURN technique. Minor 44* format changes. Corrected arguments for an error message. 45* Changed CHECK_VERSION_CHAR to have char(8) aligned parameters for 46* the versions. 47**/ 48 49 /* format: style2,ind3 */ 50 dmu_cv_vector_to_string: 51 cv_vector_to_string: 52 proc (p_field_table_ptr, p_typed_vector_ptr, p_string_buffer_ptr, p_string_buffer_length, p_work_area_ptr, 53 p_string_ptr, p_return_string_buffer_length, p_code); 54 55 /* START OF DECLARATIONS */ 56 /* Parameter */ 57 58 dcl p_field_table_ptr ptr; 59 dcl p_typed_vector_ptr ptr; 60 dcl p_string_buffer_ptr ptr; 61 dcl p_string_buffer_length fixed bin (35); 62 dcl p_work_area_ptr ptr; 63 dcl p_string_ptr ptr; 64 dcl p_return_string_buffer_length 65 fixed bin (35); 66 dcl p_code fixed bin (35); 67 68 /* Automatic */ 69 70 dcl (buffer_string_ptr, new_buffer_string_ptr, old_buffer_string_ptr) 71 ptr init (null); 72 dcl (buffer_string_length, new_buffer_string_length, old_buffer_string_length) 73 fixed bin (35) init (0); 74 dcl work_area_ptr ptr init (null); 75 76 dcl current_length_in_bits fixed bin (35); 77 dcl data_type fixed bin (17); 78 dcl field_idx fixed bin (17); 79 dcl current_varying_field_bit_offset 80 fixed bin (35); 81 dcl local_real_fix_bin_1a fixed bin (35) aligned; 82 83 /* Based */ 84 85 dcl based_real_fix_bin_1u fixed bin (35) unaligned based; 86 dcl based_bit_string bit (sys_info$max_seg_size * 36) based; 87 dcl p_string_length fixed bin (35) based (p_string_ptr) unaligned; 88 dcl 1 buffer_string based (buffer_string_ptr) unaligned, 89 2 length fixed bin (35), 90 2 contents bit (buffer_string_length refer (buffer_string.length)); 91 dcl work_area area based (work_area_ptr); 92 93 /* Builtin */ 94 95 dcl (null, addr, length, copy) 96 builtin; 97 98 /* Condition */ 99 100 dcl (cleanup, area) condition; 101 102 /* Constant */ 103 104 dcl ( 105 BITS_PER_WORD init (36), 106 BITS_PER_BYTE init (9) 107 ) fixed bin (17) int static options (constant); 108 dcl myname init ("dmu_cv_vector_to_string") char (32) varying internal static 109 options (constant); 110 111 /* Entry */ 112 113 dcl decode_descriptor_ entry (ptr, fixed bin, fixed bin, bit (1) aligned, fixed bin, fixed bin, fixed bin); 114 dcl sub_err_ entry () options (variable); 115 116 /* External */ 117 118 dcl sys_info$max_seg_size fixed bin (35) ext static; 119 dcl ( 120 dm_error_$short_buffer, 121 error_table_$bad_arg, 122 error_table_$unimplemented_version, 123 dm_error_$bad_vector_type 124 ) fixed bin (35) ext; 125 126 127 /* END OF DECLARATIONS */ 128 129 p_code = 0; 130 p_string_ptr = null; 131 p_return_string_buffer_length = p_string_buffer_length; 132 field_table_ptr = p_field_table_ptr; 133 call CHECK_VERSION_CHAR (field_table.version, FIELD_TABLE_VERSION_3, "field_table"); 134 135 simple_typed_vector_ptr = p_typed_vector_ptr; 136 if simple_typed_vector.type ^= SIMPLE_TYPED_VECTOR_TYPE 137 then call sub_err_ (dm_error_$bad_vector_type, myname, ACTION_CANT_RESTART, null, 0, 138 "^/Expected a simple_typed_vector type structure (type ^d). 139 Received a structure with type ^d instead.", SIMPLE_TYPED_VECTOR_TYPE, simple_typed_vector.type); 140 141 work_area_ptr = p_work_area_ptr; 142 143 if p_string_buffer_length <= 0 144 then call sub_err_ (error_table_$bad_arg, myname, "h", null, 0, 145 "^/The length of the string_buffer must be greater than 0. The length 146 provided was ^d.", p_string_buffer_length); 147 148 on cleanup call FINISH; 149 150 on area call ERROR_RETURN (dm_error_$short_buffer); 151 152 buffer_string_ptr = p_string_buffer_ptr; 153 current_varying_field_bit_offset = field_table.location_of_first_varying_field; 154 buffer_string_length = p_string_buffer_length - BITS_PER_WORD; 155 buffer_string.length = field_table.location_of_first_varying_field - 1; 156 157 /* If the fixed length of the string is going to be larger than the entire 158*buffer, then either return the short buffer error or allocate a new, 159*sufficiently large buffer. 160**/ 161 162 if buffer_string.length > buffer_string_length 163 then if work_area_ptr = null 164 then call ERROR_RETURN (dm_error_$short_buffer); 165 else 166 do; 167 old_buffer_string_ptr = buffer_string_ptr; 168 old_buffer_string_length = buffer_string_length; 169 buffer_string_length = max (2 * buffer_string_length, buffer_string.length); 170 alloc buffer_string in (work_area); 171 buffer_string.length = old_buffer_string_ptr -> buffer_string.length; 172 end; 173 174 FIELD_LOOP: 175 do field_idx = 1 to field_table.number_of_fields; 176 if field_table.varying_field_map (field_idx).varying_field_index > 0 177 then 178 VARYING_FIELD: 179 do; 180 substr (buffer_string.contents, field_table.field (field_idx).location, 181 field_table.field (field_idx).length_in_bits) = 182 substr (simple_typed_vector.dimension (field_idx).value_ptr -> based_bit_string, 183 BITS_PER_WORD - field_table.field (field_idx).length_in_bits + 1, 184 field_table.field (field_idx).length_in_bits); 185 186 if field_table.field (field_idx).length_is_in_characters 187 then current_length_in_bits = 188 simple_typed_vector.dimension (field_idx).value_ptr -> based_real_fix_bin_1u * BITS_PER_BYTE; 189 else current_length_in_bits = simple_typed_vector.dimension (field_idx).value_ptr -> based_real_fix_bin_1u; 190 191 buffer_string.length = buffer_string.length + current_length_in_bits; 192 193 if buffer_string.length > buffer_string_length 194 then if work_area_ptr = null 195 then call ERROR_RETURN (dm_error_$short_buffer); 196 else 197 do; 198 new_buffer_string_length = max (2 * buffer_string_length, buffer_string.length); 199 buffer_string.length = buffer_string.length - current_length_in_bits; 200 old_buffer_string_length = buffer_string_length; 201 old_buffer_string_ptr = buffer_string_ptr; 202 buffer_string_length = new_buffer_string_length; 203 alloc buffer_string in (work_area); 204 buffer_string = old_buffer_string_ptr -> buffer_string; 205 buffer_string.length = buffer_string.length + current_length_in_bits; 206 old_buffer_string_ptr -> buffer_string.length = old_buffer_string_length; 207 if old_buffer_string_ptr ^= p_string_buffer_ptr 208 then free old_buffer_string_ptr -> buffer_string in (work_area); 209 end; 210 211 substr (buffer_string.contents, current_varying_field_bit_offset, current_length_in_bits) = 212 substr (simple_typed_vector.dimension (field_idx).value_ptr -> based_bit_string, 37, 213 current_length_in_bits); 214 current_varying_field_bit_offset = current_varying_field_bit_offset + current_length_in_bits; 215 end VARYING_FIELD; 216 else 217 do; 218 substr (buffer_string.contents, field_table.field (field_idx).location, 219 field_table.field (field_idx).length_in_bits) = 220 substr (simple_typed_vector.dimension (field_idx).value_ptr -> based_bit_string, 1, 221 field_table.field (field_idx).length_in_bits); 222 end; 223 end FIELD_LOOP; 224 p_string_ptr = buffer_string_ptr; 225 buffer_string_ptr = null; 226 p_return_string_buffer_length = buffer_string_length + BITS_PER_WORD; 227 228 call FINISH; 229 230 MAIN_RETURN: 231 return; 232 233 FINISH: 234 proc; 235 if buffer_string_ptr ^= p_string_buffer_ptr & buffer_string_ptr ^= null 236 then 237 do; 238 buffer_string.length = buffer_string_length; 239 free buffer_string in (work_area); 240 end; 241 end FINISH; 242 243 ERROR_RETURN: 244 proc (er_p_code); 245 dcl er_p_code fixed bin (35) parameter; 246 call FINISH (); 247 p_code = er_p_code; 248 goto MAIN_RETURN; 249 end ERROR_RETURN; 250 251 CHECK_VERSION_CHAR: 252 proc (p_expected_version, p_received_version, p_structure_name); 253 dcl (p_expected_version, p_received_version) 254 char (8) aligned parameter; 255 dcl p_structure_name char (*) parameter; 256 if p_expected_version ^= p_received_version 257 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 258 "^/Expected version ^a of the ^a structure. 259 Received version ^a, instead.", p_expected_version, p_structure_name, p_received_version); 260 end CHECK_VERSION_CHAR; 261 1 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 1 2 /* format: style3 */ 1 3 1 4 /* These constants are to be used for the flags argument of sub_err_ */ 1 5 /* They are just "string (condition_info_header.action_flags)" */ 1 6 1 7 declare ( 1 8 ACTION_CAN_RESTART init (""b), 1 9 ACTION_CANT_RESTART init ("1"b), 1 10 ACTION_DEFAULT_RESTART 1 11 init ("01"b), 1 12 ACTION_QUIET_RESTART 1 13 init ("001"b), 1 14 ACTION_SUPPORT_SIGNAL 1 15 init ("0001"b) 1 16 ) bit (36) aligned internal static options (constant); 1 17 1 18 /* End include file */ 262 263 2 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 2 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 2 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 2 8* Objects of this type are PASCAL string types. 2 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 2 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 2 11* Added the new C types. 2 12* END HISTORY COMMENTS */ 2 13 2 14 /* This include file defines mnemonic names for the Multics 2 15* standard descriptor types, using both pl1 and cobol terminology. 2 16* PG 780613 2 17* JRD 790530 2 18* JRD 791016 2 19* MBW 810731 2 20* TGO 830614 Add hex types. 2 21* Modified June 83 JMAthane to add PASCAL data types 2 22* TGO 840120 Add float dec extended and generic, float binary generic 2 23**/ 2 24 2 25 dcl (real_fix_bin_1_dtype init (1), 2 26 real_fix_bin_2_dtype init (2), 2 27 real_flt_bin_1_dtype init (3), 2 28 real_flt_bin_2_dtype init (4), 2 29 cplx_fix_bin_1_dtype init (5), 2 30 cplx_fix_bin_2_dtype init (6), 2 31 cplx_flt_bin_1_dtype init (7), 2 32 cplx_flt_bin_2_dtype init (8), 2 33 real_fix_dec_9bit_ls_dtype init (9), 2 34 real_flt_dec_9bit_dtype init (10), 2 35 cplx_fix_dec_9bit_ls_dtype init (11), 2 36 cplx_flt_dec_9bit_dtype init (12), 2 37 pointer_dtype init (13), 2 38 offset_dtype init (14), 2 39 label_dtype init (15), 2 40 entry_dtype init (16), 2 41 structure_dtype init (17), 2 42 area_dtype init (18), 2 43 bit_dtype init (19), 2 44 varying_bit_dtype init (20), 2 45 char_dtype init (21), 2 46 varying_char_dtype init (22), 2 47 file_dtype init (23), 2 48 real_fix_dec_9bit_ls_overp_dtype init (29), 2 49 real_fix_dec_9bit_ts_overp_dtype init (30), 2 50 real_fix_bin_1_uns_dtype init (33), 2 51 real_fix_bin_2_uns_dtype init (34), 2 52 real_fix_dec_9bit_uns_dtype init (35), 2 53 real_fix_dec_9bit_ts_dtype init (36), 2 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 2 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 2 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 2 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 2 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 2 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 2 60 real_flt_dec_4bit_bytealigned_dtype init (44), 2 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 2 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 2 63 real_flt_hex_1_dtype init (47), 2 64 real_flt_hex_2_dtype init (48), 2 65 cplx_flt_hex_1_dtype init (49), 2 66 cplx_flt_hex_2_dtype init (50), 2 67 c_typeref_dtype init (54), 2 68 c_enum_dtype init (55), 2 69 c_enum_const_dtype init (56), 2 70 c_union_dtype init (57), 2 71 algol68_straight_dtype init (59), 2 72 algol68_format_dtype init (60), 2 73 algol68_array_descriptor_dtype init (61), 2 74 algol68_union_dtype init (62), 2 75 2 76 cobol_comp_6_dtype init (1), 2 77 cobol_comp_7_dtype init (1), 2 78 cobol_display_ls_dtype init (9), 2 79 cobol_structure_dtype init (17), 2 80 cobol_char_string_dtype init (21), 2 81 cobol_display_ls_overp_dtype init (29), 2 82 cobol_display_ts_overp_dtype init (30), 2 83 cobol_display_uns_dtype init (35), 2 84 cobol_display_ts_dtype init (36), 2 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 2 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 2 87 cobol_comp_5_uns_dtype init (40), 2 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 2 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 2 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 2 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 2 92 cplx_flt_dec_generic_dtype init (84), 2 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 2 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 2 95 2 96 dcl (ft_integer_dtype init (1), 2 97 ft_real_dtype init (3), 2 98 ft_double_dtype init (4), 2 99 ft_complex_dtype init (7), 2 100 ft_complex_double_dtype init (8), 2 101 ft_external_dtype init (16), 2 102 ft_logical_dtype init (19), 2 103 ft_char_dtype init (21), 2 104 ft_hex_real_dtype init (47), 2 105 ft_hex_double_dtype init (48), 2 106 ft_hex_complex_dtype init (49), 2 107 ft_hex_complex_double_dtype init (50) 2 108 ) fixed bin internal static options (constant); 2 109 2 110 dcl (algol68_short_int_dtype init (1), 2 111 algol68_int_dtype init (1), 2 112 algol68_long_int_dtype init (2), 2 113 algol68_real_dtype init (3), 2 114 algol68_long_real_dtype init (4), 2 115 algol68_compl_dtype init (7), 2 116 algol68_long_compl_dtype init (8), 2 117 algol68_bits_dtype init (19), 2 118 algol68_bool_dtype init (19), 2 119 algol68_char_dtype init (21), 2 120 algol68_byte_dtype init (21), 2 121 algol68_struct_struct_char_dtype init (22), 2 122 algol68_struct_struct_bool_dtype init (20) 2 123 ) fixed bin internal static options (constant); 2 124 2 125 dcl (label_constant_runtime_dtype init (24), 2 126 int_entry_runtime_dtype init (25), 2 127 ext_entry_runtime_dtype init (26), 2 128 ext_procedure_runtime_dtype init (27), 2 129 picture_runtime_dtype init (63) 2 130 ) fixed bin internal static options (constant); 2 131 2 132 dcl (pascal_integer_dtype init (1), 2 133 pascal_real_dtype init (4), 2 134 pascal_label_dtype init (24), 2 135 pascal_internal_procedure_dtype init (25), 2 136 pascal_exportable_procedure_dtype init (26), 2 137 pascal_imported_procedure_dtype init (27), 2 138 pascal_typed_pointer_type_dtype init (64), 2 139 pascal_char_dtype init (65), 2 140 pascal_boolean_dtype init (66), 2 141 pascal_record_file_type_dtype init (67), 2 142 pascal_record_type_dtype init (68), 2 143 pascal_set_dtype init (69), 2 144 pascal_enumerated_type_dtype init (70), 2 145 pascal_enumerated_type_element_dtype init (71), 2 146 pascal_enumerated_type_instance_dtype init (72), 2 147 pascal_user_defined_type_dtype init (73), 2 148 pascal_user_defined_type_instance_dtype init (74), 2 149 pascal_text_file_dtype init (75), 2 150 pascal_procedure_type_dtype init (76), 2 151 pascal_variable_formal_parameter_dtype init (77), 2 152 pascal_value_formal_parameter_dtype init (78), 2 153 pascal_entry_formal_parameter_dtype init (79), 2 154 pascal_parameter_procedure_dtype init (80), 2 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 2 156 2 157 2 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 264 265 3 1 /* *********************************************************** 3 2* * * 3 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 3 4* * * 3 5* *********************************************************** */ 3 6 /* BEGIN INCLUDE FILE - vu_typed_vector.incl.pl1 */ 3 7 3 8 /* Written by Lindsey Spratt, 04/02/82. 3 9*Modified: 3 10*09/01/82 by Lindsey Spratt: Changed value_ptr in simple_typed_vector to be 3 11* unaligned. Changed the type number of the simple_typed_vector to 3 12* "3" from "1". The OLD_SIMPLE_TYPED_VECTOR_TYPE is now an invalid 3 13* type. 3 14**/ 3 15 3 16 /* format: style2,ind3 */ 3 17 dcl 1 simple_typed_vector based (simple_typed_vector_ptr), 3 18 2 type fixed bin (17) unal, 3 19 2 number_of_dimensions 3 20 fixed bin (17) unal, 3 21 2 dimension (stv_number_of_dimensions refer (simple_typed_vector.number_of_dimensions)), 3 22 3 value_ptr ptr unaligned; 3 23 3 24 dcl 1 general_typed_vector based (general_typed_vector_ptr), 3 25 2 type fixed bin (17) unal, 3 26 2 number_of_dimensions 3 27 fixed bin (17) unal, 3 28 2 dimension (gtv_number_of_dimensions refer (general_typed_vector.number_of_dimensions)), 3 29 3 identifier fixed bin (17) unal, 3 30 3 pad bit (18) unal, 3 31 3 value_ptr ptr unal; 3 32 3 33 dcl simple_typed_vector_ptr 3 34 ptr; 3 35 dcl stv_number_of_dimensions 3 36 fixed bin (17); 3 37 3 38 dcl general_typed_vector_ptr 3 39 ptr; 3 40 dcl gtv_number_of_dimensions 3 41 fixed bin (17); 3 42 3 43 dcl ( 3 44 OLD_SIMPLE_TYPED_VECTOR_TYPE 3 45 init (1), /* value_ptr was aligned. */ 3 46 GENERAL_TYPED_VECTOR_TYPE 3 47 init (2), 3 48 SIMPLE_TYPED_VECTOR_TYPE 3 49 init (3) 3 50 ) fixed bin (17) internal static options (constant); 3 51 3 52 /* END INCLUDE FILE - vu_typed_vector.incl.pl1 */ 266 267 4 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 4 2 4 3 /* DESCRIPTION: 4 4* 4 5* The field_table describes the layout of a set of fields in a 4 6* formatted data string. Such a string is the stored representation of a 4 7* record or a key. Fields are placed side-by-side in the string in the 4 8* order they appear in the field_table.field array. The string is divided 4 9* into the fixed portion and the varying portion. In the fixed portion 4 10* appear fixed-length fields and fixed-size length-fields for 4 11* varying-length fields. In the varying portion appear varying length 4 12* fields. The length-field for a varying-length field contains the length 4 13* of the field values either in bits or in characters, depending on the 4 14* data type of the field. 4 15**/ 4 16 4 17 /* HISTORY: 4 18*Written by Matthew Pierret, 04/01/82. 4 19*Modified: 4 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 4 21* that if the field is varying, its length is expressed in 4 22* bytes/characters. 4 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 4 24* of 17, changed version to 2, changed version field to char(8) from 4 25* fixed bin (17). 4 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 4 27* put field names in one string (field_names) at the end of the 4 28* structure. Added field.location_of_name and field.length_of_name 4 29* for locating the field name in field_names. Aligned all "fixed bin" 4 30* structure elements. Changed maximum_field_name_length to 4 31* length_of_field_names. 4 32**/ 4 33 4 34 /* format: style2 */ 4 35 4 36 dcl 1 field_table aligned based (field_table_ptr), 4 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 4 38 2 number_of_fields fixed bin (17), 4 39 2 length_of_field_names 4 40 fixed bin (17), /* length of field_names in characters */ 4 41 2 location_of_first_varying_field 4 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 4 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 4 44 3 flags aligned, 4 45 4 descriptor_is_varying 4 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 4 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 4 48 /* containing the id of the element in which the descriptor is stored. */ 4 49 4 length_is_in_characters 4 50 bit (1) unal, /* if field is varying, the length field describes its length */ 4 51 /* in characters instead of in bits */ 4 52 4 must_be_zero bit (34) unal, 4 53 3 descriptor bit (36) aligned, 4 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 4 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 4 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 4 57 3 length_of_name fixed bin (17), /* length of name in characters */ 4 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 4 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 4 60 3 varying_field_index 4 61 fixed bin (17), /* ordinality among varying fields of field N */ 4 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 4 63 4 64 4 65 dcl field_table_ptr ptr; 4 66 dcl ft_length_of_field_names 4 67 fixed bin; 4 68 dcl ft_number_of_fields fixed bin; 4 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 4 70 4 71 dcl field_name char (field_name_length) based (field_name_ptr); 4 72 4 73 dcl field_name_length fixed bin; 4 74 dcl field_name_ptr ptr; 4 75 4 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 268 269 end dmu_cv_vector_to_string; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.2 dmu_cv_vector_to_string.pl1 >special_ldd>install>MR12.2-1184>dmu_cv_vector_to_string.pl1 262 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 264 2 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 266 3 10/14/83 1609.1 vu_typed_vector.incl.pl1 >ldd>include>vu_typed_vector.incl.pl1 268 4 01/07/85 0858.8 dm_field_table.incl.pl1 >ldd>include>dm_field_table.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. ACTION_CANT_RESTART 000002 constant bit(36) initial dcl 1-7 set ref 136* 256* BITS_PER_BYTE constant fixed bin(17,0) initial dcl 104 ref 186 BITS_PER_WORD constant fixed bin(17,0) initial dcl 104 ref 154 180 226 FIELD_TABLE_VERSION_3 000000 constant char(8) initial dcl 4-69 set ref 133* SIMPLE_TYPED_VECTOR_TYPE 000032 constant fixed bin(17,0) initial dcl 3-43 set ref 136 136* area 000126 stack reference condition dcl 100 ref 150 based_bit_string based bit packed unaligned dcl 86 ref 180 211 218 based_real_fix_bin_1u based fixed bin(35,0) packed unaligned dcl 85 ref 186 189 buffer_string based structure level 1 packed packed unaligned dcl 88 set ref 170 203 204* 204 207 239 buffer_string_length 000106 automatic fixed bin(35,0) initial dcl 72 set ref 72* 154* 162 168 169* 169 170 170 193 198 200 202* 203 203 226 238 buffer_string_ptr 000100 automatic pointer initial dcl 70 set ref 70* 152* 155 162 167 169 170* 171 180 191 191 193 198 199 199 201 203* 204 205 205 211 218 224 225* 235 235 238 239 cleanup 000120 stack reference condition dcl 100 ref 148 contents 1 based bit level 2 packed packed unaligned dcl 88 set ref 180* 211* 218* current_length_in_bits 000114 automatic fixed bin(35,0) dcl 76 set ref 186* 189* 191 199 205 211 211 214 current_varying_field_bit_offset 000116 automatic fixed bin(35,0) dcl 79 set ref 153* 211 214* 214 dimension 1 based structure array level 2 packed packed unaligned dcl 3-17 dm_error_$bad_vector_type 000022 external static fixed bin(35,0) dcl 119 set ref 136* dm_error_$short_buffer 000014 external static fixed bin(35,0) dcl 119 set ref 150* 162* 193* er_p_code parameter fixed bin(35,0) dcl 245 ref 243 247 error_table_$bad_arg 000016 external static fixed bin(35,0) dcl 119 set ref 143* error_table_$unimplemented_version 000020 external static fixed bin(35,0) dcl 119 set ref 256* field 5 based structure array level 2 dcl 4-36 field_idx 000115 automatic fixed bin(17,0) dcl 78 set ref 174* 176 180 180 180 180 180 186 186 189 211 218 218 218 218* field_table based structure level 1 dcl 4-36 field_table_ptr 000136 automatic pointer dcl 4-65 set ref 132* 133 153 155 174 176 180 180 180 180 186 218 218 218 flags 5 based structure array level 3 dcl 4-36 length based fixed bin(35,0) level 2 packed packed unaligned dcl 88 set ref 155* 162 169 170* 171* 171 180 191* 191 193 198 199* 199 203* 204 205* 205 206* 207 211 218 238* 239 length_in_bits 10 based fixed bin(35,0) array level 3 dcl 4-36 ref 180 180 180 218 218 length_is_in_characters 5(01) based bit(1) array level 4 packed packed unaligned dcl 4-36 ref 186 location 7 based fixed bin(35,0) array level 3 dcl 4-36 ref 180 218 location_of_first_varying_field 4 based fixed bin(35,0) level 2 dcl 4-36 ref 153 155 myname 000003 constant varying char(32) initial dcl 108 set ref 136* 143* 256* new_buffer_string_length 000107 automatic fixed bin(35,0) initial dcl 72 set ref 72* 198* 202 new_buffer_string_ptr 000102 automatic pointer initial dcl 70 set ref 70* null builtin function dcl 95 ref 70 70 70 74 130 136 136 143 143 162 193 225 235 256 256 number_of_fields 2 based fixed bin(17,0) level 2 dcl 4-36 ref 174 176 old_buffer_string_length 000110 automatic fixed bin(35,0) initial dcl 72 set ref 72* 168* 200* 206 old_buffer_string_ptr 000104 automatic pointer initial dcl 70 set ref 70* 167* 171 201* 204 206 207 207 p_code parameter fixed bin(35,0) dcl 66 set ref 50 50 129* 247* p_expected_version parameter char(8) dcl 253 set ref 251 256 256* p_field_table_ptr parameter pointer dcl 58 ref 50 50 132 p_received_version parameter char(8) dcl 253 set ref 251 256 256* p_return_string_buffer_length parameter fixed bin(35,0) dcl 64 set ref 50 50 131* 226* p_string_buffer_length parameter fixed bin(35,0) dcl 61 set ref 50 50 131 143 143* 154 p_string_buffer_ptr parameter pointer dcl 60 ref 50 50 152 207 235 p_string_ptr parameter pointer dcl 63 set ref 50 50 130* 224* p_structure_name parameter char packed unaligned dcl 255 set ref 251 256* p_typed_vector_ptr parameter pointer dcl 59 ref 50 50 135 p_work_area_ptr parameter pointer dcl 62 ref 50 50 141 simple_typed_vector based structure level 1 packed packed unaligned dcl 3-17 simple_typed_vector_ptr 000134 automatic pointer dcl 3-33 set ref 135* 136 136 180 186 189 211 218 sub_err_ 000010 constant entry external dcl 114 ref 136 143 256 sys_info$max_seg_size 000012 external static fixed bin(35,0) dcl 118 ref 180 211 218 type based fixed bin(17,0) level 2 packed packed unaligned dcl 3-17 set ref 136 136* value_ptr 1 based pointer array level 3 packed packed unaligned dcl 3-17 ref 180 186 189 211 218 varying_field_index based fixed bin(17,0) array level 3 dcl 4-36 ref 176 varying_field_map based structure array level 2 dcl 4-36 version based char(8) initial level 2 dcl 4-36 set ref 133* work_area based area(1024) dcl 91 ref 170 203 207 239 work_area_ptr 000112 automatic pointer initial dcl 74 set ref 74* 141* 162 170 193 203 207 239 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 1-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 1-7 GENERAL_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 3-43 OLD_SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 3-43 addr builtin function dcl 95 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 2-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 2-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 2-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 2-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 2-25 area_dtype internal static fixed bin(17,0) initial dcl 2-25 bit_dtype internal static fixed bin(17,0) initial dcl 2-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 2-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 2-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 2-25 c_union_dtype internal static fixed bin(17,0) initial dcl 2-25 char_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 2-25 copy builtin function dcl 95 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 2-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 2-25 data_type automatic fixed bin(17,0) dcl 77 decode_descriptor_ 000000 constant entry external dcl 113 entry_dtype internal static fixed bin(17,0) initial dcl 2-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 2-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 2-125 field_name based char packed unaligned dcl 4-71 field_name_length automatic fixed bin(17,0) dcl 4-73 field_name_ptr automatic pointer dcl 4-74 file_dtype internal static fixed bin(17,0) initial dcl 2-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_length_of_field_names automatic fixed bin(17,0) dcl 4-66 ft_logical_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_number_of_fields automatic fixed bin(17,0) dcl 4-68 ft_real_dtype internal static fixed bin(17,0) initial dcl 2-96 general_typed_vector based structure level 1 packed packed unaligned dcl 3-24 general_typed_vector_ptr automatic pointer dcl 3-38 gtv_number_of_dimensions automatic fixed bin(17,0) dcl 3-40 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 2-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 2-125 label_dtype internal static fixed bin(17,0) initial dcl 2-25 length builtin function dcl 95 local_real_fix_bin_1a automatic fixed bin(35,0) dcl 81 offset_dtype internal static fixed bin(17,0) initial dcl 2-25 p_string_length based fixed bin(35,0) packed unaligned dcl 87 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 2-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 2-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 2-125 pointer_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 2-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 2-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 2-25 structure_dtype internal static fixed bin(17,0) initial dcl 2-25 stv_number_of_dimensions automatic fixed bin(17,0) dcl 3-35 varying_bit_dtype internal static fixed bin(17,0) initial dcl 2-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 2-25 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION_CHAR 001165 constant entry internal dcl 251 ref 133 ERROR_RETURN 001143 constant entry internal dcl 243 ref 150 162 193 FIELD_LOOP 000557 constant label dcl 174 FINISH 001105 constant entry internal dcl 233 ref 148 228 246 MAIN_RETURN 001103 constant label dcl 230 ref 248 VARYING_FIELD 000600 constant label dcl 176 cv_vector_to_string 000170 constant entry external dcl 50 dmu_cv_vector_to_string 000201 constant entry external dcl 50 NAMES DECLARED BY CONTEXT OR IMPLICATION. max builtin function ref 169 198 substr builtin function set ref 180 180 211* 211 218* 218 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1440 1464 1267 1450 Length 1754 1267 24 254 151 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cv_vector_to_string 250 external procedure is an external procedure. on unit on line 148 64 on unit on unit on line 150 70 on unit FINISH 64 internal procedure is called by several nonquick procedures. ERROR_RETURN 64 internal procedure is called by several nonquick procedures. CHECK_VERSION_CHAR internal procedure shares stack frame of external procedure cv_vector_to_string. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cv_vector_to_string 000100 buffer_string_ptr cv_vector_to_string 000102 new_buffer_string_ptr cv_vector_to_string 000104 old_buffer_string_ptr cv_vector_to_string 000106 buffer_string_length cv_vector_to_string 000107 new_buffer_string_length cv_vector_to_string 000110 old_buffer_string_length cv_vector_to_string 000112 work_area_ptr cv_vector_to_string 000114 current_length_in_bits cv_vector_to_string 000115 field_idx cv_vector_to_string 000116 current_varying_field_bit_offset cv_vector_to_string 000134 simple_typed_vector_ptr cv_vector_to_string 000136 field_table_ptr cv_vector_to_string THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_int_this call_int_other return_mac tra_ext_1 enable_op ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$bad_vector_type dm_error_$short_buffer error_table_$bad_arg error_table_$unimplemented_version sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 70 000147 72 000153 74 000156 50 000161 129 000207 130 000211 131 000213 132 000215 133 000220 135 000243 136 000247 141 000331 143 000335 148 000407 150 000431 152 000455 153 000461 154 000464 155 000472 162 000503 167 000522 168 000523 169 000525 170 000535 171 000553 174 000557 176 000567 180 000600 186 000624 189 000640 191 000646 193 000662 198 000701 199 000712 200 000723 201 000725 202 000726 203 000730 204 000746 205 000762 206 000776 207 001003 211 001024 214 001040 215 001044 218 001045 223 001064 224 001066 225 001071 226 001073 228 001077 230 001103 233 001104 235 001112 238 001124 239 001132 241 001141 243 001142 246 001150 247 001155 248 001162 251 001165 256 001176 260 001266 ----------------------------------------------------------- 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