COMPILATION LISTING OF SEGMENT dfu_cv_attr_to_dim_table Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1930.46_Mon_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This routine creates a dimension_table structure. The name and 10* descriptor for each dimension is gotten selectively from the supplied 11* attribute_info structure, with those attributes identified by the 12* supplied id_list structure being selected. If the 13* p_include_element_id_dimension flag is on, the last dimension is 14* constructed with the name "0" and a descriptor for a 'bit (36) aligned' 15* field. 16**/ 17 18 /* HISTORY: 19* 20*Written by Matthew Pierret, 08/24/83. 21*Modified: 22*11/28/83 by Matthew Pierret: Changed to interpret id_list.id of -1 as meaning 23* the element id. 24*12/07/84 by Maggie Sharpe: to correct format and dcls; to change 25* the call to CHANGE_VERSION_FB to pass appropriate arg 26* by reference instead of value. 27**/ 28 29 /* format: style2,ind3 */ 30 31 dfu_cv_attr_to_dim_table: 32 proc (p_work_area_ptr, p_attribute_info_ptr, p_id_list_ptr, p_add_element_id_dimension, p_dimension_table_ptr); 33 34 /* START OF DECLARATIONS */ 35 /* Parameter */ 36 37 dcl p_work_area_ptr ptr; /*is a pointer to a work area.*/ 38 dcl p_attribute_info_ptr ptr; /*is a pointer to an attribute_info structure.*/ 39 dcl p_id_list_ptr ptr; /*is a ponter to an id_list structure.*/ 40 dcl p_add_element_id_dimension 41 bit (1) aligned; /*if on indicates that the last dimension */ 42 /* is to be set up as for an element_id.*/ 43 dcl p_dimension_table_ptr ptr; /*is a pointer to the dimension_table structure */ 44 /* created.*/ 45 46 /* Automatic */ 47 48 dcl (attribute_idx, dimension_idx) 49 fixed bin (35) init (-1); 50 51 /* Based */ 52 53 dcl p_work_area area (10000) based (p_work_area_ptr); 54 55 /* Builtin */ 56 57 dcl (addr, fixed, hbound, 58 null, unspec) builtin; 59 60 /* Condition */ 61 62 dcl cleanup condition; 63 64 /* Constant */ 65 66 dcl myname init ("dfu_cv_attr_to_dim_table") char (32) varying internal static 67 options (constant); 68 dcl ELEMENT_ID_ID init (-1) fixed bin internal static options (constant); 69 70 /* Entry */ 71 72 dcl sub_err_ entry () options (variable); 73 74 /* External */ 75 76 dcl dm_error_$programming_error 77 fixed bin (35) ext; 78 dcl error_table_$unimplemented_version 79 fixed bin (35) ext; 80 81 /* END OF DECLARATIONS */ 82 83 p_dimension_table_ptr = null; 84 85 if p_work_area_ptr = null 86 then call 87 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 88 "^/The first argument, an area pointer, is null."); 89 /* FOR DM_ERROR_UTIL_: 90* 91* dm_error_util_$signal (dm_error_$programming_error, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 92* "^/The first argument, an area pointer, is null."); 93**/ 94 95 attribute_info_ptr = p_attribute_info_ptr; 96 call CHECK_VERSION ((attribute_info.version), (ATTRIBUTE_INFO_VERSION_1), "attribute_info"); 97 98 if p_id_list_ptr = null 99 then dt_number_of_dimensions = hbound (attribute_info.attribute, 1); 100 else 101 do; 102 id_list_ptr = p_id_list_ptr; 103 call CHECK_VERSION_FB (id_list.version, (ID_LIST_VERSION_1), "id_list"); 104 dt_number_of_dimensions = hbound (id_list.id, 1); 105 end; 106 107 if p_add_element_id_dimension 108 then dt_number_of_dimensions = dt_number_of_dimensions + 1; 109 110 dt_maximum_dimension_name_length = attribute_info.maximum_attribute_name_length; 111 112 on cleanup call FINISH (); 113 114 alloc dimension_table in (p_work_area); 115 116 do dimension_idx = 1 to hbound (dimension_table.dimension, 1) - fixed (p_add_element_id_dimension); 117 if id_list_ptr = null 118 then attribute_idx = dimension_idx; 119 else if id_list.id (dimension_idx) = ELEMENT_ID_ID 120 then call INIT_ELEMENT_ID_DIMENSION (dimension_idx); 121 else 122 do; 123 do attribute_idx = 1 to hbound (attribute_info.attribute, 1) 124 while (attribute_idx ^= id_list.id (dimension_idx)); 125 end; 126 if attribute_idx > hbound (attribute_info.attribute, 1) 127 then call 128 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 129 "^/The specified attribute id, ^d, is not recorded in attribute_info.", id_list.id (dimension_idx)) 130 ; /* FOR DM_ERROR_UTIL_: 131* 132* dm_error_util_$signal (dm_error_$programming_error, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 133* "^/The specified attribute id, ^d, is not recorded in attribute_info.", id_list.id (dimension_idx)) 134* ; 135**/ 136 end; 137 138 dimension_table.dimension (dimension_idx).name = attribute_info.attribute (attribute_idx).name; 139 dimension_table.dimension (dimension_idx).descriptor_ptr = 140 addr (dimension_table.dimension (dimension_idx).descriptor_string); 141 dimension_table.dimension (dimension_idx).descriptor_string = 142 attribute_info.attribute (attribute_idx).descriptor; 143 end; 144 145 if p_add_element_id_dimension 146 then call INIT_ELEMENT_ID_DIMENSION (dimension_idx); 147 148 p_dimension_table_ptr = dimension_table_ptr; 149 150 return; 151 152 FINISH: 153 proc (); 154 155 if dimension_table_ptr ^= null 156 then if p_dimension_table_ptr = null 157 then free dimension_table; 158 159 end FINISH; 160 161 CHECK_VERSION: 162 proc (p_received_version, p_expected_version, p_structure_name); 163 dcl p_received_version char (*); 164 dcl p_expected_version char (*); 165 dcl p_structure_name char (*); 166 167 if p_received_version ^= p_expected_version 168 then call 169 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 170 "^/Expected version ^a of the ^a structure. 171 Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 172 /* FOR DM_ERROR_UTIL_: 173* 174* dm_error_util_$signal (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS 175* "^/Expected version ^a of the ^a structure. 176*Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 177**/ 178 end CHECK_VERSION; 179 180 181 182 CHECK_VERSION_FB: 183 proc (p_received_version, p_expected_version, p_structure_name); 184 dcl p_received_version fixed bin (35); 185 dcl p_expected_version fixed bin (35); 186 dcl p_structure_name char (*); 187 188 if p_received_version ^= p_expected_version 189 then call 190 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 191 "^/Expected version ^d of the ^a structure. 192 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 193 /* FOR DM_ERROR_UTIL_: 194* 195* dm_error_util_$signal (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 196* "^/Expected version ^d of the ^a structure. 197*Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 198**/ 199 end CHECK_VERSION_FB; 200 201 INIT_ELEMENT_ID_DIMENSION: 202 proc (ieid_p_dimension_idx); 203 204 dcl ieid_p_dimension_idx fixed bin (35); 205 206 dimension_table.dimension (ieid_p_dimension_idx).name = "0"; 207 arg_descriptor_ptr = addr (dimension_table.dimension (ieid_p_dimension_idx).descriptor_string); 208 dimension_table.dimension (ieid_p_dimension_idx).descriptor_ptr = arg_descriptor_ptr; 209 unspec (arg_descriptor) = "0"b; 210 fixed_arg_descriptor.flag = "1"b; 211 fixed_arg_descriptor.type = bit_dtype; 212 fixed_arg_descriptor.precision = 36; 213 214 return; 215 216 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 1 5 1 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 7 2 flag bit (1) unal, 1 8 2 type fixed bin (6) unsigned unal, 1 9 2 packed bit (1) unal, 1 10 2 number_dims fixed bin (4) unsigned unal, 1 11 2 size fixed bin (24) unsigned unal; 1 12 1 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 14 2 flag bit (1) unal, 1 15 2 type fixed bin (6) unsigned unal, 1 16 2 packed bit (1) unal, 1 17 2 number_dims fixed bin (4) unsigned unal, 1 18 2 scale fixed bin (11) unal, 1 19 2 precision fixed bin (12) unsigned unal; 1 20 1 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 1 22 2 flag bit (1) unal, /* = "1"b */ 1 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 1 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 1 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 1 26 2 size bit (24) unal, 1 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 1 28 3 low fixed bin (35), 1 29 3 high fixed bin (35), 1 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 1 31 2 real_type fixed bin (18) unsigned unal, 1 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 1 33 1 34 dcl arg_descriptor_ptr ptr; 1 35 1 36 dcl extended_arg_type fixed bin init (58); 1 37 1 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 216 217 /* 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 */ 217 218 end INIT_ELEMENT_ID_DIMENSION; 219 3 1 /* BEGIN INCLUDE FILE dm_rlm_attribute_info.incl.pl1 */ 3 2 3 3 /* DESCRIPTION 3 4* 3 5* Relation attributes descriptor and name. This info is kept in the header 3 6* collection of existing files, therefore this incl should not be changed. 3 7**/ 3 8 3 9 /* HISTORY: 3 10*Written by Matthew Pierret, 02/25/83. 3 11*Modified: 3 12*10/29/84 by Stanford S. Cox: Changed to not init version. 3 13*12/14/84 by Stanford S. Cox: Backed out previous structure alignment changes 3 14* which were incompatible with existing DM files. 3 15**/ 3 16 3 17 /* format: style2,ind3 */ 3 18 dcl 1 attribute_info aligned based (attribute_info_ptr), 3 19 2 version char (8), 3 20 2 number_of_attributes 3 21 fixed bin (17) unal, 3 22 2 maximum_attribute_name_length 3 23 fixed bin (17) unal, 3 24 2 attribute (ai_number_of_attributes refer (attribute_info.number_of_attributes)), 3 25 3 descriptor bit (36) aligned, 3 26 3 name char (ai_maximum_attribute_name_length 3 27 refer (attribute_info.maximum_attribute_name_length)) varying; 3 28 3 29 dcl attribute_info_ptr ptr init (null); 3 30 dcl ai_maximum_attribute_name_length 3 31 fixed bin (17); 3 32 dcl ai_number_of_attributes 3 33 fixed bin (17); 3 34 dcl ATTRIBUTE_INFO_VERSION_1 3 35 init ("attrinf1") char (8) aligned internal static options (constant); 3 36 3 37 /* END INCLUDE FILE dm_rlm_attribute_info.incl.pl1 */ 3 38 220 221 4 1 /* BEGIN INCLUDE FILE - dm_id_list.incl.pl1 */ 4 2 4 3 /* DESCRIPTION 4 4* The id_list structure is used to identify attributes, fields and 4 5* dimensions by various modules of the Data Management System. 4 6**/ 4 7 4 8 /* HISTORY: 4 9*Written by Matthew Pierret, '82. 4 10*Modified: 4 11*08/17/83 by Matthew Pierret: Made version constant 'internal static options 4 12* (constant)' and to initialize automatic variables. 4 13**/ 4 14 4 15 /* format: style2,ind3 */ 4 16 dcl 1 id_list aligned based (id_list_ptr), 4 17 2 version fixed bin (35), 4 18 2 number_of_ids fixed bin (17), 4 19 2 id (il_number_of_ids refer (id_list.number_of_ids)) fixed bin (17); 4 20 4 21 dcl id_list_ptr ptr init (null); 4 22 dcl il_number_of_ids fixed bin (17) init (-1); 4 23 dcl ID_LIST_VERSION_1 fixed bin (17) init (1) internal static options (constant); 4 24 4 25 /* END INCLUDE FILE - dm_id_list.incl.pl1 */ 222 223 5 1 /* *********************************************************** 5 2* * * 5 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 5 4* * * 5 5* *********************************************************** */ 5 6 5 7 /* ***** BEGIN INCLUDE FILE vu_dimension_table.incl.pl1 ****** */ 5 8 5 9 /* format: style2,ind3 */ 5 10 5 11 /* HISTORY: 5 12*Written by Matthew Pierret, 08/24/83. 5 13*Modified: 5 14**/ 5 15 5 16 dcl 1 dimension_table aligned based (dimension_table_ptr), 5 17 /* This structure describes a set of dimensions. */ 5 18 /* These dimensions are primarily used in association */ 5 19 /* with a vector_list structure. */ 5 20 2 version char (8) init (DIMENSION_TABLE_VERSION_1), 5 21 2 maximum_dimension_name_length 5 22 fixed bin (35), /* length of the dimension.name field */ 5 23 2 number_of_dimensions 5 24 fixed bin (35), /* extent of the dimension array */ 5 25 2 dimension (dt_number_of_dimensions refer (dimension_table.number_of_dimensions)), 5 26 3 name char (dt_maximum_dimension_name_length 5 27 refer (dimension_table.maximum_dimension_name_length)) varying init (""), 5 28 /* name of a dimension */ 5 29 3 descriptor_string 5 30 bit (36) aligned init ("0"b), 5 31 /* One-word Multics descriptor. */ 5 32 3 descriptor_ptr ptr init (null), /* points to the Multics descriptor for this dimension. */ 5 33 /* For one-word descriptors, the value is usually */ 5 34 /* addr (dimension_table.dimension.descriptor_string) */ 5 35 /* Multi-word descriptors must be allocated in */ 5 36 /* separate storage */ 5 37 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 5 38 /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 5 39 /* temp_seg_ptr, max_length_for_print_value, */ 5 40 /* print_value, code) */ 5 41 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)); 5 42 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 5 43 /* print_value_ptr, typed_value_ptr, code) */ 5 44 5 45 dcl dimension_table_ptr ptr init (null); 5 46 dcl dt_maximum_dimension_name_length 5 47 fixed bin (35) init (-1); 5 48 dcl dt_number_of_dimensions 5 49 fixed bin (35) init (-1); 5 50 dcl DIMENSION_TABLE_VERSION_1 5 51 char (8) init ("DimTbl_1") internal static options (constant); 5 52 5 53 5 54 /* ******* END INCLUDE FILE vu_dimension_table.incl.pl1 ****** */ 224 225 6 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 6 2 /* format: style3 */ 6 3 6 4 /* These constants are to be used for the flags argument of sub_err_ */ 6 5 /* They are just "string (condition_info_header.action_flags)" */ 6 6 6 7 declare ( 6 8 ACTION_CAN_RESTART init (""b), 6 9 ACTION_CANT_RESTART init ("1"b), 6 10 ACTION_DEFAULT_RESTART 6 11 init ("01"b), 6 12 ACTION_QUIET_RESTART 6 13 init ("001"b), 6 14 ACTION_SUPPORT_SIGNAL 6 15 init ("0001"b) 6 16 ) bit (36) aligned internal static options (constant); 6 17 6 18 /* End include file */ 226 227 end dfu_cv_attr_to_dim_table; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1930.4 dfu_cv_attr_to_dim_table.pl1 >udd>sm>ds>w>ml>dfu_cv_attr_to_dim_table.pl1 216 1 11/02/83 1945.0 arg_descriptor.incl.pl1 >ldd>incl>arg_descriptor.incl.pl1 217 2 10/26/88 1355.5 std_descriptor_types.incl.pl1 >ldd>incl>std_descriptor_types.incl.pl1 220 3 01/07/85 1001.7 dm_rlm_attribute_info.incl.pl1 >ldd>incl>dm_rlm_attribute_info.incl.pl1 222 4 10/14/83 1709.1 dm_id_list.incl.pl1 >ldd>incl>dm_id_list.incl.pl1 224 5 01/07/85 1001.7 vu_dimension_table.incl.pl1 >ldd>incl>vu_dimension_table.incl.pl1 226 6 04/16/82 1058.1 sub_err_flags.incl.pl1 >ldd>incl>sub_err_flags.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 000015 constant bit(36) initial dcl 6-7 set ref 85* 126* 167* 188* ATTRIBUTE_INFO_VERSION_1 000002 constant char(8) initial dcl 3-34 ref 96 DIMENSION_TABLE_VERSION_1 000000 constant char(8) initial packed unaligned dcl 5-50 ref 114 ELEMENT_ID_ID 001304 constant fixed bin(17,0) initial dcl 68 ref 119 ID_LIST_VERSION_1 constant fixed bin(17,0) initial dcl 4-23 ref 103 addr builtin function dcl 57 ref 139 207 arg_descriptor based structure level 1 dcl 1-6 set ref 209* arg_descriptor_ptr 000154 automatic pointer dcl 1-34 set ref 207* 208 209 210 211 212 attribute 3 based structure array level 2 dcl 3-18 ref 98 123 126 attribute_idx 000100 automatic fixed bin(35,0) initial dcl 48 set ref 48* 117* 123* 123* 126 138 141 attribute_info based structure level 1 dcl 3-18 attribute_info_ptr 000110 automatic pointer initial dcl 3-29 set ref 95* 96 98 110 123 126 138 141 3-29* bit_dtype constant fixed bin(17,0) initial dcl 2-25 ref 211 cleanup 000102 stack reference condition dcl 62 ref 112 descriptor 3 based bit(36) array level 3 dcl 3-18 ref 141 descriptor_ptr based pointer initial array level 3 dcl 5-16 set ref 114* 139* 208* descriptor_string based bit(36) initial array level 3 dcl 5-16 set ref 114* 139 141* 207 dimension 4 based structure array level 2 dcl 5-16 set ref 116 dimension_idx 000101 automatic fixed bin(35,0) initial dcl 48 set ref 48* 116* 117 119 119* 123 126 138 139 139 141* 145* dimension_table based structure level 1 dcl 5-16 set ref 114 155 dimension_table_ptr 000116 automatic pointer initial dcl 5-45 set ref 114* 116 138 139 139 141 148 5-45* 155 155 206 207 208 dm_error_$programming_error 000012 external static fixed bin(35,0) dcl 76 set ref 85* 126* dt_maximum_dimension_name_length 000120 automatic fixed bin(35,0) initial dcl 5-46 set ref 110* 114 114 5-46* dt_number_of_dimensions 000121 automatic fixed bin(35,0) initial dcl 5-48 set ref 98* 104* 107* 107 114 114 5-48* error_table_$unimplemented_version 000014 external static fixed bin(35,0) dcl 78 set ref 167* 188* extended_arg_type 000156 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* fixed builtin function dcl 57 ref 116 fixed_arg_descriptor based structure level 1 dcl 1-13 flag based bit(1) level 2 packed packed unaligned dcl 1-13 set ref 210* hbound builtin function dcl 57 ref 98 104 116 123 126 id 2 based fixed bin(17,0) array level 2 dcl 4-16 set ref 104 119 123 126* id_list based structure level 1 dcl 4-16 id_list_ptr 000112 automatic pointer initial dcl 4-21 set ref 102* 103 104 117 119 123 126 4-21* ieid_p_dimension_idx parameter fixed bin(35,0) dcl 204 ref 201 206 207 208 il_number_of_ids 000114 automatic fixed bin(17,0) initial dcl 4-22 set ref 4-22* maximum_attribute_name_length 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 3-18 ref 110 138 138 141 141 maximum_dimension_name_length 2 based fixed bin(35,0) level 2 dcl 5-16 set ref 114* 114 114 114 114 114 114 114 114 114 138 138 138 139 139 139 139 139 139 141 141 141 155 206 206 206 207 207 207 208 208 208 myname 000004 constant varying char(32) initial dcl 66 set ref 85* 126* 167* 188* name 4 based varying char initial array level 3 in structure "dimension_table" dcl 5-16 in procedure "dfu_cv_attr_to_dim_table" set ref 114* 138* 206* name 4 based varying char array level 3 in structure "attribute_info" dcl 3-18 in procedure "dfu_cv_attr_to_dim_table" ref 138 null builtin function dcl 57 ref 83 85 85 85 98 114 117 126 126 3-29 4-21 5-45 155 155 167 167 188 188 number_of_attributes 2 based fixed bin(17,0) level 2 packed packed unaligned dcl 3-18 ref 98 123 126 number_of_dimensions 3 based fixed bin(35,0) level 2 dcl 5-16 set ref 114* 116 155 number_of_ids 1 based fixed bin(17,0) level 2 dcl 4-16 ref 104 p_add_element_id_dimension parameter bit(1) dcl 40 ref 31 107 116 145 p_attribute_info_ptr parameter pointer dcl 38 ref 31 95 p_dimension_table_ptr parameter pointer dcl 43 set ref 31 83* 148* 155 p_expected_version parameter char packed unaligned dcl 164 in procedure "CHECK_VERSION" set ref 161 167 167* p_expected_version parameter fixed bin(35,0) dcl 185 in procedure "CHECK_VERSION_FB" set ref 182 188 188* p_id_list_ptr parameter pointer dcl 39 ref 31 98 102 p_received_version parameter char packed unaligned dcl 163 in procedure "CHECK_VERSION" set ref 161 167 167* p_received_version parameter fixed bin(35,0) dcl 184 in procedure "CHECK_VERSION_FB" set ref 182 188 188* p_structure_name parameter char packed unaligned dcl 165 in procedure "CHECK_VERSION" set ref 161 167* p_structure_name parameter char packed unaligned dcl 186 in procedure "CHECK_VERSION_FB" set ref 182 188* p_work_area based area(10000) dcl 53 ref 114 p_work_area_ptr parameter pointer dcl 37 ref 31 85 114 precision 0(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 1-13 set ref 212* sub_err_ 000010 constant entry external dcl 72 ref 85 126 167 188 type 0(01) based fixed bin(6,0) level 2 packed packed unsigned unaligned dcl 1-13 set ref 211* unspec builtin function dcl 57 set ref 209* version based fixed bin(35,0) level 2 in structure "id_list" dcl 4-16 in procedure "dfu_cv_attr_to_dim_table" set ref 103* version based char(8) level 2 in structure "attribute_info" dcl 3-18 in procedure "dfu_cv_attr_to_dim_table" ref 96 version based char(8) initial level 2 in structure "dimension_table" dcl 5-16 in procedure "dfu_cv_attr_to_dim_table" set ref 114* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 6-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 6-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 6-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 6-7 ai_maximum_attribute_name_length automatic fixed bin(17,0) dcl 3-30 ai_number_of_attributes automatic fixed bin(17,0) dcl 3-32 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 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 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 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 extended_arg_descriptor based structure level 1 dcl 1-21 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_logical_dtype internal static fixed bin(17,0) initial dcl 2-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 2-96 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 offset_dtype internal static fixed bin(17,0) initial dcl 2-25 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 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 000763 constant entry internal dcl 161 ref 96 CHECK_VERSION_FB 001100 constant entry internal dcl 182 ref 103 FINISH 000731 constant entry internal dcl 152 ref 112 INIT_ELEMENT_ID_DIMENSION 001174 constant entry internal dcl 201 ref 119 145 dfu_cv_attr_to_dim_table 000154 constant entry external dcl 31 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1402 1420 1306 1412 Length 1716 1306 16 262 74 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dfu_cv_attr_to_dim_table 314 external procedure is an external procedure. on unit on line 112 70 on unit FINISH internal procedure shares stack frame of on unit on line 112. CHECK_VERSION internal procedure shares stack frame of external procedure dfu_cv_attr_to_dim_table. CHECK_VERSION_FB internal procedure shares stack frame of external procedure dfu_cv_attr_to_dim_table. INIT_ELEMENT_ID_DIMENSION internal procedure shares stack frame of external procedure dfu_cv_attr_to_dim_table. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dfu_cv_attr_to_dim_table 000100 attribute_idx dfu_cv_attr_to_dim_table 000101 dimension_idx dfu_cv_attr_to_dim_table 000110 attribute_info_ptr dfu_cv_attr_to_dim_table 000112 id_list_ptr dfu_cv_attr_to_dim_table 000114 il_number_of_ids dfu_cv_attr_to_dim_table 000116 dimension_table_ptr dfu_cv_attr_to_dim_table 000120 dt_maximum_dimension_name_length dfu_cv_attr_to_dim_table 000121 dt_number_of_dimensions dfu_cv_attr_to_dim_table 000154 arg_descriptor_ptr INIT_ELEMENT_ID_DIMENSION 000156 extended_arg_type INIT_ELEMENT_ID_DIMENSION THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac 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_$programming_error error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000147 48 000161 3 29 000164 4 21 000166 4 22 000167 5 45 000171 5 46 000173 5 48 000175 83 000176 85 000201 95 000246 96 000252 98 000266 102 000300 103 000303 104 000326 107 000331 110 000341 112 000346 114 000364 116 000463 117 000502 119 000511 123 000521 125 000537 126 000544 138 000624 139 000673 141 000710 143 000712 145 000717 148 000725 150 000730 152 000731 155 000732 159 000762 161 000763 167 001006 178 001077 182 001100 188 001111 199 001173 201 001174 1 36 001176 206 001200 207 001232 208 001243 209 001247 210 001250 211 001252 212 001256 214 001260 ----------------------------------------------------------- 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