COMPILATION LISTING OF SEGMENT dfu_cv_field_to_dim_table Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/03/85 1641.3 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* Given a pointer to a field_table, convert that field_table into a 10* dimension_table. The caller supplies the area in which to allocate the 11* dimension_table.. The caller also supplies an id_list to specify which 12* fields to convert into dimensions. 13**/ 14 15 /* HISTORY: 16* 17*Written by Matthew Pierret, 08/25/83. 18*Modified: 19*05/03/84 by Matthew Pierret: Changed to FIELD_TABLE_VERSION_3. 20*12/07/84 by M. Sharpe to correct format and the call to CHECK_VERSION_FB 21* to pass appropriate arg by reference. 22**/ 23 24 /* format: style2,ind3 */ 25 26 dfu_cv_field_to_dim_table: 27 proc (p_work_area_ptr, p_field_table_ptr, p_id_list_ptr, p_dimension_table_ptr); 28 29 30 /* START OF DECLARATIONS */ 31 /* Parameter */ 32 33 dcl p_work_area_ptr ptr; /* is a pointer to an area in which to */ 34 /* allocate dimension_table*/ 35 dcl p_field_table_ptr ptr; /* is a pointer to the input */ 36 /* field_table to convert*/ 37 dcl p_id_list_ptr ptr; /* is a pointer to the input */ 38 /* id_list which selects the fields to convert*/ 39 dcl p_dimension_table_ptr ptr; /* is the pointer to the */ 40 /* returned dimension_table*/ 41 42 /* Automatic */ 43 44 dcl (dimension_idx, field_id) 45 fixed bin (17) init (-1); 46 47 /* Based */ 48 49 dcl p_work_area area (10000) based (p_work_area_ptr); 50 51 /* Builtin */ 52 53 dcl (addr, hbound, max, null, substr) 54 builtin; 55 56 /* Condition */ 57 58 dcl cleanup condition; 59 60 /* Constant */ 61 62 dcl myname init ("dfu_cv_field_to_dim_table") char (32) varying internal static 63 options (constant); 64 65 /* Entry */ 66 67 dcl sub_err_ entry () options (variable); 68 69 /* External */ 70 71 dcl dm_error_$programming_error 72 fixed bin (35) ext; 73 dcl error_table_$unimplemented_version 74 fixed bin (35) ext; 75 76 /* END OF DECLARATIONS */ 77 78 p_dimension_table_ptr = null; 79 80 field_table_ptr = p_field_table_ptr; 81 call CHECK_VERSION ((field_table.version), (FIELD_TABLE_VERSION_3), "field_table"); 82 if p_id_list_ptr = null 83 then dt_number_of_dimensions = hbound (field_table.field, 1); 84 else 85 do; 86 id_list_ptr = p_id_list_ptr; 87 call CHECK_VERSION_FB (id_list.version, (ID_LIST_VERSION_1), "id_list"); 88 dt_number_of_dimensions = hbound (id_list.id, 1); 89 end; 90 91 dt_maximum_dimension_name_length = 0; 92 do dimension_idx = 1 to dt_number_of_dimensions; 93 dt_maximum_dimension_name_length = 94 max (dt_maximum_dimension_name_length, field_table.field (dimension_idx).length_of_name); 95 end; 96 97 on cleanup call FINISH (); 98 99 alloc dimension_table in (p_work_area); 100 101 do dimension_idx = 1 to hbound (dimension_table.dimension, 1); 102 103 if p_id_list_ptr = null 104 then field_id = dimension_idx; 105 else field_id = id_list.id (dimension_idx); 106 107 if field_id >= 1 /* If field_id <1, leave dimension_table entryempty */ 108 then 109 do; 110 dimension_table.dimension (dimension_idx).name = 111 substr (field_table.field_names, field_table.field (field_id).location_of_name, 112 field_table.field (field_id).length_of_name); 113 if field_table.field (field_id).flags.descriptor_is_varying 114 then call 115 sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 116 "^/The capability to handle varying length descriptors is not yet implemented."); 117 /* FOR DM_ERROR_UTIL_: Replace preceding statement with following 118* 119* dm_error_util_$signal (dm_error_$programming_error, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 120* "^/The capability to handle varying length descriptors is not yet implemented."); 121**/ 122 dimension_table.dimension (dimension_idx).descriptor_ptr = 123 addr (dimension_table.dimension (dimension_idx).descriptor_string); 124 dimension_table.dimension (dimension_idx).descriptor_string = field_table.field (field_id).descriptor; 125 end; 126 end; 127 128 p_dimension_table_ptr = dimension_table_ptr; 129 130 return; 131 132 FINISH: 133 proc (); 134 135 if dimension_table_ptr ^= null & p_dimension_table_ptr ^= dimension_table_ptr 136 then free dimension_table; 137 138 end FINISH; 139 140 CHECK_VERSION: 141 proc (p_received_version, p_expected_version, p_structure_name); 142 dcl p_received_version char (*); 143 dcl p_expected_version char (*); 144 dcl p_structure_name char (*); 145 146 if p_received_version ^= p_expected_version 147 then call 148 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 149 "^/Expected version ^a of the ^a structure. 150 Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 151 /* FOR DM_ERROR_UTIL_: Replace preceding statement with following 152* 153* dm_error_util_$signal (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 154* "^/Expected version ^a of the ^a structure. 155*Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 156**/ 157 158 end CHECK_VERSION; 159 160 161 162 CHECK_VERSION_FB: 163 proc (p_received_version, p_expected_version, p_structure_name); 164 dcl p_received_version fixed bin (35); 165 dcl p_expected_version fixed bin (35); 166 dcl p_structure_name char (*); 167 168 if p_received_version ^= p_expected_version 169 then call 170 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 171 "^/Expected version ^d of the ^a structure. 172 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 173 /* FOR DM_ERROR_UTIL_: Replace preceding statement with following 174* 175* dm_error_util_$signal (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART || NO_ANCILLARY_ACTIONS, 176* "^/Expected version ^d of the ^a structure. 177*Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 178**/ 179 180 end CHECK_VERSION_FB; 181 1 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* The field_table describes the layout of a set of fields in a 1 6* formatted data string. Such a string is the stored representation of a 1 7* record or a key. Fields are placed side-by-side in the string in the 1 8* order they appear in the field_table.field array. The string is divided 1 9* into the fixed portion and the varying portion. In the fixed portion 1 10* appear fixed-length fields and fixed-size length-fields for 1 11* varying-length fields. In the varying portion appear varying length 1 12* fields. The length-field for a varying-length field contains the length 1 13* of the field values either in bits or in characters, depending on the 1 14* data type of the field. 1 15**/ 1 16 1 17 /* HISTORY: 1 18*Written by Matthew Pierret, 04/01/82. 1 19*Modified: 1 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 1 21* that if the field is varying, its length is expressed in 1 22* bytes/characters. 1 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 1 24* of 17, changed version to 2, changed version field to char(8) from 1 25* fixed bin (17). 1 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 1 27* put field names in one string (field_names) at the end of the 1 28* structure. Added field.location_of_name and field.length_of_name 1 29* for locating the field name in field_names. Aligned all "fixed bin" 1 30* structure elements. Changed maximum_field_name_length to 1 31* length_of_field_names. 1 32**/ 1 33 1 34 /* format: style2 */ 1 35 1 36 dcl 1 field_table aligned based (field_table_ptr), 1 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 1 38 2 number_of_fields fixed bin (17), 1 39 2 length_of_field_names 1 40 fixed bin (17), /* length of field_names in characters */ 1 41 2 location_of_first_varying_field 1 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 1 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 1 44 3 flags aligned, 1 45 4 descriptor_is_varying 1 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 1 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 1 48 /* containing the id of the element in which the descriptor is stored. */ 1 49 4 length_is_in_characters 1 50 bit (1) unal, /* if field is varying, the length field describes its length */ 1 51 /* in characters instead of in bits */ 1 52 4 must_be_zero bit (34) unal, 1 53 3 descriptor bit (36) aligned, 1 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 1 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 1 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 1 57 3 length_of_name fixed bin (17), /* length of name in characters */ 1 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 1 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 1 60 3 varying_field_index 1 61 fixed bin (17), /* ordinality among varying fields of field N */ 1 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 1 63 1 64 1 65 dcl field_table_ptr ptr; 1 66 dcl ft_length_of_field_names 1 67 fixed bin; 1 68 dcl ft_number_of_fields fixed bin; 1 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 1 70 1 71 dcl field_name char (field_name_length) based (field_name_ptr); 1 72 1 73 dcl field_name_length fixed bin; 1 74 dcl field_name_ptr ptr; 1 75 1 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 182 183 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 2 4* * * 2 5* *********************************************************** */ 2 6 2 7 /* ***** BEGIN INCLUDE FILE vu_dimension_table.incl.pl1 ****** */ 2 8 2 9 /* format: style2,ind3 */ 2 10 2 11 /* HISTORY: 2 12*Written by Matthew Pierret, 08/24/83. 2 13*Modified: 2 14**/ 2 15 2 16 dcl 1 dimension_table aligned based (dimension_table_ptr), 2 17 /* This structure describes a set of dimensions. */ 2 18 /* These dimensions are primarily used in association */ 2 19 /* with a vector_list structure. */ 2 20 2 version char (8) init (DIMENSION_TABLE_VERSION_1), 2 21 2 maximum_dimension_name_length 2 22 fixed bin (35), /* length of the dimension.name field */ 2 23 2 number_of_dimensions 2 24 fixed bin (35), /* extent of the dimension array */ 2 25 2 dimension (dt_number_of_dimensions refer (dimension_table.number_of_dimensions)), 2 26 3 name char (dt_maximum_dimension_name_length 2 27 refer (dimension_table.maximum_dimension_name_length)) varying init (""), 2 28 /* name of a dimension */ 2 29 3 descriptor_string 2 30 bit (36) aligned init ("0"b), 2 31 /* One-word Multics descriptor. */ 2 32 3 descriptor_ptr ptr init (null), /* points to the Multics descriptor for this dimension. */ 2 33 /* For one-word descriptors, the value is usually */ 2 34 /* addr (dimension_table.dimension.descriptor_string) */ 2 35 /* Multi-word descriptors must be allocated in */ 2 36 /* separate storage */ 2 37 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 2 38 /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 2 39 /* temp_seg_ptr, max_length_for_print_value, */ 2 40 /* print_value, code) */ 2 41 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)); 2 42 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 2 43 /* print_value_ptr, typed_value_ptr, code) */ 2 44 2 45 dcl dimension_table_ptr ptr init (null); 2 46 dcl dt_maximum_dimension_name_length 2 47 fixed bin (35) init (-1); 2 48 dcl dt_number_of_dimensions 2 49 fixed bin (35) init (-1); 2 50 dcl DIMENSION_TABLE_VERSION_1 2 51 char (8) init ("DimTbl_1") internal static options (constant); 2 52 2 53 2 54 /* ******* END INCLUDE FILE vu_dimension_table.incl.pl1 ****** */ 184 185 3 1 /* BEGIN INCLUDE FILE - dm_id_list.incl.pl1 */ 3 2 3 3 /* DESCRIPTION 3 4* The id_list structure is used to identify attributes, fields and 3 5* dimensions by various modules of the Data Management System. 3 6**/ 3 7 3 8 /* HISTORY: 3 9*Written by Matthew Pierret, '82. 3 10*Modified: 3 11*08/17/83 by Matthew Pierret: Made version constant 'internal static options 3 12* (constant)' and to initialize automatic variables. 3 13**/ 3 14 3 15 /* format: style2,ind3 */ 3 16 dcl 1 id_list aligned based (id_list_ptr), 3 17 2 version fixed bin (35), 3 18 2 number_of_ids fixed bin (17), 3 19 2 id (il_number_of_ids refer (id_list.number_of_ids)) fixed bin (17); 3 20 3 21 dcl id_list_ptr ptr init (null); 3 22 dcl il_number_of_ids fixed bin (17) init (-1); 3 23 dcl ID_LIST_VERSION_1 fixed bin (17) init (1) internal static options (constant); 3 24 3 25 /* END INCLUDE FILE - dm_id_list.incl.pl1 */ 186 187 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 188 189 end dfu_cv_field_to_dim_table; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1149.7 dfu_cv_field_to_dim_table.pl1 >spec>temp>famis1>dfu_cv_field_to_dim_table.pl1 182 1 01/03/85 1003.3 dm_field_table.incl.pl1 >spec>temp>famis1>dm_field_table.incl.pl1 184 2 01/03/85 1005.8 vu_dimension_table.incl.pl1 >spec>temp>famis1>vu_dimension_table.incl.pl1 186 3 10/14/83 1609.1 dm_id_list.incl.pl1 >ldd>include>dm_id_list.incl.pl1 188 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>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 000000 constant bit(36) initial dcl 4-7 set ref 113* 146* 168* DIMENSION_TABLE_VERSION_1 000002 constant char(8) initial unaligned dcl 2-50 ref 99 FIELD_TABLE_VERSION_3 000004 constant char(8) initial dcl 1-69 ref 81 ID_LIST_VERSION_1 constant fixed bin(17,0) initial dcl 3-23 ref 87 addr builtin function dcl 53 ref 122 cleanup 000102 stack reference condition dcl 58 ref 97 descriptor 6 based bit(36) array level 3 dcl 1-36 ref 124 descriptor_is_varying 5 based bit(1) array level 4 packed unaligned dcl 1-36 ref 113 descriptor_ptr based pointer initial array level 3 dcl 2-16 set ref 99* 122* descriptor_string based bit(36) initial array level 3 dcl 2-16 set ref 99* 122 124* dimension 4 based structure array level 2 dcl 2-16 set ref 101 dimension_idx 000100 automatic fixed bin(17,0) initial dcl 44 set ref 44* 92* 93* 101* 103 105 110 122 122 124* dimension_table based structure level 1 dcl 2-16 set ref 99 135 dimension_table_ptr 000112 automatic pointer initial dcl 2-45 set ref 99* 101 110 122 122 124 128 2-45* 135 135 135 dm_error_$programming_error 000012 external static fixed bin(35,0) dcl 71 set ref 113* dt_maximum_dimension_name_length 000114 automatic fixed bin(35,0) initial dcl 2-46 set ref 91* 93* 93 99 99 2-46* dt_number_of_dimensions 000115 automatic fixed bin(35,0) initial dcl 2-48 set ref 82* 88* 92 99 99 2-48* error_table_$unimplemented_version 000014 external static fixed bin(35,0) dcl 73 set ref 146* 168* field 5 based structure array level 2 dcl 1-36 ref 82 field_id 000101 automatic fixed bin(17,0) initial dcl 44 set ref 44* 103* 105* 107 110 110 113 124 field_names based char level 2 dcl 1-36 ref 110 field_table based structure level 1 dcl 1-36 field_table_ptr 000110 automatic pointer dcl 1-65 set ref 80* 81 82 93 110 110 110 113 124 flags 5 based structure array level 3 dcl 1-36 hbound builtin function dcl 53 ref 82 88 101 id 2 based fixed bin(17,0) array level 2 dcl 3-16 ref 88 105 id_list based structure level 1 dcl 3-16 id_list_ptr 000116 automatic pointer initial dcl 3-21 set ref 86* 87 88 105 3-21* il_number_of_ids 000120 automatic fixed bin(17,0) initial dcl 3-22 set ref 3-22* length_of_field_names 3 based fixed bin(17,0) level 2 dcl 1-36 ref 110 length_of_name 12 based fixed bin(17,0) array level 3 dcl 1-36 ref 93 110 location_of_name 11 based fixed bin(17,0) array level 3 dcl 1-36 ref 110 max builtin function dcl 53 ref 93 maximum_dimension_name_length 2 based fixed bin(35,0) level 2 dcl 2-16 set ref 99* 99 99 99 99 99 99 99 99 99 110 110 110 122 122 122 122 122 122 124 124 124 135 myname 000006 constant varying char(32) initial dcl 62 set ref 113* 146* 168* name 4 based varying char initial array level 3 dcl 2-16 set ref 99* 110* null builtin function dcl 53 ref 78 82 99 103 113 113 2-45 3-21 135 146 146 168 168 number_of_dimensions 3 based fixed bin(35,0) level 2 dcl 2-16 set ref 99* 101 135 number_of_fields 2 based fixed bin(17,0) level 2 dcl 1-36 ref 82 110 110 number_of_ids 1 based fixed bin(17,0) level 2 dcl 3-16 ref 88 p_dimension_table_ptr parameter pointer dcl 39 set ref 26 78* 128* 135 p_expected_version parameter char unaligned dcl 143 in procedure "CHECK_VERSION" set ref 140 146 146* p_expected_version parameter fixed bin(35,0) dcl 165 in procedure "CHECK_VERSION_FB" set ref 162 168 168* p_field_table_ptr parameter pointer dcl 35 ref 26 80 p_id_list_ptr parameter pointer dcl 37 ref 26 82 86 103 p_received_version parameter char unaligned dcl 142 in procedure "CHECK_VERSION" set ref 140 146 146* p_received_version parameter fixed bin(35,0) dcl 164 in procedure "CHECK_VERSION_FB" set ref 162 168 168* p_structure_name parameter char unaligned dcl 166 in procedure "CHECK_VERSION_FB" set ref 162 168* p_structure_name parameter char unaligned dcl 144 in procedure "CHECK_VERSION" set ref 140 146* p_work_area based area(10000) dcl 49 ref 99 p_work_area_ptr parameter pointer dcl 33 ref 26 99 sub_err_ 000010 constant entry external dcl 67 ref 113 146 168 substr builtin function dcl 53 ref 110 version based char(8) initial level 2 in structure "dimension_table" dcl 2-16 in procedure "dfu_cv_field_to_dim_table" set ref 99* version based fixed bin(35,0) level 2 in structure "id_list" dcl 3-16 in procedure "dfu_cv_field_to_dim_table" set ref 87* version based char(8) initial level 2 in structure "field_table" dcl 1-36 in procedure "dfu_cv_field_to_dim_table" ref 81 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 field_name based char unaligned dcl 1-71 field_name_length automatic fixed bin(17,0) dcl 1-73 field_name_ptr automatic pointer dcl 1-74 ft_length_of_field_names automatic fixed bin(17,0) dcl 1-66 ft_number_of_fields automatic fixed bin(17,0) dcl 1-68 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000647 constant entry internal dcl 140 ref 81 CHECK_VERSION_FB 000764 constant entry internal dcl 162 ref 87 FINISH 000615 constant entry internal dcl 132 ref 97 dfu_cv_field_to_dim_table 000140 constant entry external dcl 26 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1172 1210 1076 1202 Length 1462 1076 16 236 74 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dfu_cv_field_to_dim_table 294 external procedure is an external procedure. on unit on line 97 70 on unit FINISH internal procedure shares stack frame of on unit on line 97. CHECK_VERSION internal procedure shares stack frame of external procedure dfu_cv_field_to_dim_table. CHECK_VERSION_FB internal procedure shares stack frame of external procedure dfu_cv_field_to_dim_table. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dfu_cv_field_to_dim_table 000100 dimension_idx dfu_cv_field_to_dim_table 000101 field_id dfu_cv_field_to_dim_table 000110 field_table_ptr dfu_cv_field_to_dim_table 000112 dimension_table_ptr dfu_cv_field_to_dim_table 000114 dt_maximum_dimension_name_length dfu_cv_field_to_dim_table 000115 dt_number_of_dimensions dfu_cv_field_to_dim_table 000116 id_list_ptr dfu_cv_field_to_dim_table 000120 il_number_of_ids dfu_cv_field_to_dim_table THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return enable ext_entry int_entry alloc_based free_based 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 CONSTANTS 001060 aa 000006000000 001061 aa 000006000000 001062 aa 600000000041 001063 aa 000142000000 001064 aa 600000000041 001065 aa 000144000000 001066 aa 600000000041 001067 aa 000146000000 001070 ta 000030000000 001071 aa 000000000000 001072 ta 000030000000 001073 aa 000000000000 001074 ta 000027000000 001075 aa 000000000000 000000 aa 400000000000 000002 aa 104 151 155 124 DimT 000003 aa 142 154 137 061 bl_1 000004 aa 106 154 144 124 FldT 000005 aa 142 154 040 063 bl 3 000006 aa 000000000031 000007 aa 144 146 165 137 dfu_ 000010 aa 143 166 137 146 cv_f 000011 aa 151 145 154 144 ield 000012 aa 137 164 157 137 _to_ 000013 aa 144 151 155 137 dim_ 000014 aa 164 141 142 154 tabl 000015 aa 145 040 040 040 e 000016 aa 040 040 040 040 000017 aa 524000000107 000020 aa 526077777777 000021 aa 524000000115 000022 aa 404000000005 000023 aa 514000000044 000024 aa 530000000040 000025 aa 524000000007 000026 aa 404000000043 000027 aa 524000000013 000030 aa 524000000010 000031 aa 464000000000 000032 aa 151 144 137 154 id_l 000033 aa 151 163 164 000 ist 000034 aa 077777000043 000035 aa 000001000000 000036 aa 143 154 145 141 clea 000037 aa 156 165 160 000 nup 000040 aa 146 151 145 154 fiel 000041 aa 144 137 164 141 d_ta 000042 aa 142 154 145 000 ble 000043 aa 136 057 105 170 ^/Ex 000044 aa 160 145 143 164 pect 000045 aa 145 144 040 166 ed v 000046 aa 145 162 163 151 ersi 000047 aa 157 156 040 136 on ^ 000050 aa 144 040 157 146 d of 000051 aa 040 164 150 145 the 000052 aa 040 136 141 040 ^a 000053 aa 163 164 162 165 stru 000054 aa 143 164 165 162 ctur 000055 aa 145 056 012 122 e. R 000056 aa 145 143 145 151 ecei 000057 aa 166 145 144 040 ved 000060 aa 166 145 162 163 vers 000061 aa 151 157 156 040 ion 000062 aa 136 144 040 151 ^d i 000063 aa 156 163 164 145 nste 000064 aa 141 144 056 000 ad. 000065 aa 136 057 105 170 ^/Ex 000066 aa 160 145 143 164 pect 000067 aa 145 144 040 166 ed v 000070 aa 145 162 163 151 ersi 000071 aa 157 156 040 136 on ^ 000072 aa 141 040 157 146 a of 000073 aa 040 164 150 145 the 000074 aa 040 136 141 040 ^a 000075 aa 163 164 162 165 stru 000076 aa 143 164 165 162 ctur 000077 aa 145 056 012 122 e. R 000100 aa 145 143 145 151 ecei 000101 aa 166 145 144 040 ved 000102 aa 166 145 162 163 vers 000103 aa 151 157 156 040 ion 000104 aa 136 141 040 151 ^a i 000105 aa 156 163 164 145 nste 000106 aa 141 144 056 000 ad. 000107 aa 136 057 124 150 ^/Th 000110 aa 145 040 143 141 e ca 000111 aa 160 141 142 151 pabi 000112 aa 154 151 164 171 lity 000113 aa 040 164 157 040 to 000114 aa 150 141 156 144 hand 000115 aa 154 145 040 166 le v 000116 aa 141 162 171 151 aryi 000117 aa 156 147 040 154 ng l 000120 aa 145 156 147 164 engt 000121 aa 150 040 144 145 h de 000122 aa 163 143 162 151 scri 000123 aa 160 164 157 162 ptor 000124 aa 163 040 151 163 s is 000125 aa 040 156 157 164 not 000126 aa 040 171 145 164 yet 000127 aa 040 151 155 160 imp 000130 aa 154 145 155 145 leme 000131 aa 156 164 145 144 nted 000132 aa 056 000 000 000 . BEGIN PROCEDURE dfu_cv_field_to_dim_table ENTRY TO dfu_cv_field_to_dim_table STATEMENT 1 ON LINE 26 dfu_cv_field_to_dim_table: proc (p_work_area_ptr, p_field_table_ptr, p_id_list_ptr, p_dimension_table_ptr); 000133 at 000004000031 000134 tt 000031000031 000135 ta 000031000000 000136 ta 000133000000 000137 da 000062300000 000140 aa 000460 6270 00 eax7 304 000141 aa 7 00034 3521 20 epp2 pr7|28,* 000142 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000143 aa 000010000000 000144 aa 000000000000 STATEMENT 1 ON LINE 44 000145 aa 000001 3360 07 lcq 1,dl 000146 aa 6 00100 7561 00 stq pr6|64 dimension_idx 000147 aa 6 00101 7561 00 stq pr6|65 field_id STATEMENT 1 ON LINE 45 OF FILE 2 000150 aa 777664 2370 04 ldaq -76,ic 000034 = 077777000043 000001000000 000151 aa 6 00112 7571 00 staq pr6|74 dimension_table_ptr STATEMENT 1 ON LINE 46 OF FILE 2 000152 aa 000001 3360 07 lcq 1,dl 000153 aa 6 00114 7561 00 stq pr6|76 dt_maximum_dimension_name_length STATEMENT 1 ON LINE 48 OF FILE 2 000154 aa 6 00115 7561 00 stq pr6|77 dt_number_of_dimensions STATEMENT 1 ON LINE 21 OF FILE 3 000155 aa 777657 2370 04 ldaq -81,ic 000034 = 077777000043 000001000000 000156 aa 6 00116 7571 00 staq pr6|78 id_list_ptr STATEMENT 1 ON LINE 22 OF FILE 3 000157 aa 000001 3360 07 lcq 1,dl 000160 aa 6 00120 7561 00 stq pr6|80 il_number_of_ids STATEMENT 1 ON LINE 78 p_dimension_table_ptr = null; 000161 aa 777653 2370 04 ldaq -85,ic 000034 = 077777000043 000001000000 000162 aa 6 00032 3735 20 epp7 pr6|26,* 000163 aa 7 00010 7571 20 staq pr7|8,* p_dimension_table_ptr STATEMENT 1 ON LINE 80 field_table_ptr = p_field_table_ptr; 000164 aa 7 00004 3715 20 epp5 pr7|4,* p_field_table_ptr 000165 aa 5 00000 3715 20 epp5 pr5|0,* p_field_table_ptr 000166 aa 6 00110 6515 00 spri5 pr6|72 field_table_ptr STATEMENT 1 ON LINE 81 call CHECK_VERSION ((field_table.version), (FIELD_TABLE_VERSION_3), "field_table"); 000167 aa 5 00000 2351 00 lda pr5|0 field_table.version 000170 aa 5 00001 2361 00 ldq pr5|1 field_table.version 000171 aa 6 00142 7571 00 staq pr6|98 000172 aa 777612 2370 04 ldaq -118,ic 000004 = 106154144124 142154040063 000173 aa 6 00144 7571 00 staq pr6|100 000174 aa 777644 2370 04 ldaq -92,ic 000040 = 146151145154 144137164141 000175 aa 6 00146 7571 00 staq pr6|102 000176 aa 777644 2350 04 lda -92,ic 000042 = 142154145000 000177 aa 6 00150 7551 00 sta pr6|104 000200 aa 000660 3520 04 epp2 432,ic 001060 = 000006000000 000201 aa 2 00000 2351 00 lda pr2|0 000202 aa 000445 6700 04 tsp4 293,ic 000647 STATEMENT 1 ON LINE 82 if p_id_list_ptr = null then dt_number_of_dimensions = hbound (field_table.field, 1); 000203 aa 6 00032 3735 20 epp7 pr6|26,* 000204 aa 7 00006 2371 20 ldaq pr7|6,* p_id_list_ptr 000205 aa 777627 6770 04 eraq -105,ic 000034 = 077777000043 000001000000 000206 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000207 aa 000005 6010 04 tnz 5,ic 000214 000210 aa 6 00110 3715 20 epp5 pr6|72,* field_table_ptr 000211 aa 5 00002 2361 00 ldq pr5|2 field_table.number_of_fields 000212 aa 6 00115 7561 00 stq pr6|77 dt_number_of_dimensions 000213 aa 000032 7100 04 tra 26,ic 000245 STATEMENT 1 ON LINE 84 else do; STATEMENT 1 ON LINE 86 id_list_ptr = p_id_list_ptr; 000214 aa 7 00006 3715 20 epp5 pr7|6,* p_id_list_ptr 000215 aa 5 00000 3715 20 epp5 pr5|0,* p_id_list_ptr 000216 aa 6 00116 6515 00 spri5 pr6|78 id_list_ptr STATEMENT 1 ON LINE 87 call CHECK_VERSION_FB (id_list.version, (ID_LIST_VERSION_1), "id_list"); 000217 aa 000001 2360 07 ldq 1,dl 000220 aa 6 00151 7561 00 stq pr6|105 000221 aa 777611 2370 04 ldaq -119,ic 000032 = 151144137154 151163164000 000222 aa 6 00144 7571 00 staq pr6|100 000223 aa 5 00000 3521 00 epp2 pr5|0 id_list.version 000224 aa 6 00154 2521 00 spri2 pr6|108 000225 aa 6 00151 3521 00 epp2 pr6|105 000226 aa 6 00156 2521 00 spri2 pr6|110 000227 aa 6 00144 3521 00 epp2 pr6|100 000230 aa 6 00160 2521 00 spri2 pr6|112 000231 aa 777575 3520 04 epp2 -131,ic 000026 = 404000000043 000232 aa 6 00162 2521 00 spri2 pr6|114 000233 aa 6 00164 2521 00 spri2 pr6|116 000234 aa 777571 3520 04 epp2 -135,ic 000025 = 524000000007 000235 aa 6 00166 2521 00 spri2 pr6|118 000236 aa 6 00152 3521 00 epp2 pr6|106 000237 aa 014000 4310 07 fld 6144,dl 000240 aa 2 00000 7571 00 staq pr2|0 000241 aa 000523 6700 04 tsp4 339,ic 000764 STATEMENT 1 ON LINE 88 dt_number_of_dimensions = hbound (id_list.id, 1); 000242 aa 6 00116 3735 20 epp7 pr6|78,* id_list_ptr 000243 aa 7 00001 2361 00 ldq pr7|1 id_list.number_of_ids 000244 aa 6 00115 7561 00 stq pr6|77 dt_number_of_dimensions STATEMENT 1 ON LINE 89 end; STATEMENT 1 ON LINE 91 dt_maximum_dimension_name_length = 0; 000245 aa 6 00114 4501 00 stz pr6|76 dt_maximum_dimension_name_length STATEMENT 1 ON LINE 92 do dimension_idx = 1 to dt_number_of_dimensions; 000246 aa 6 00121 7561 00 stq pr6|81 000247 aa 000001 2360 07 ldq 1,dl 000250 aa 6 00100 7561 00 stq pr6|64 dimension_idx 000251 aa 000000 0110 03 nop 0,du 000252 aa 6 00100 2361 00 ldq pr6|64 dimension_idx 000253 aa 6 00121 1161 00 cmpq pr6|81 000254 aa 000013 6054 04 tpnz 11,ic 000267 STATEMENT 1 ON LINE 93 dt_maximum_dimension_name_length = max (dt_maximum_dimension_name_length, field_table.field (dimension_idx).length_of_name); 000255 aa 000006 4020 07 mpy 6,dl 000256 aa 000000 6270 06 eax7 0,ql 000257 aa 6 00114 2361 00 ldq pr6|76 dt_maximum_dimension_name_length 000260 aa 6 00110 3735 20 epp7 pr6|72,* field_table_ptr 000261 aa 7 00004 1161 17 cmpq pr7|4,7 field_table.length_of_name 000262 aa 000002 6050 04 tpl 2,ic 000264 000263 aa 7 00004 2361 17 ldq pr7|4,7 field_table.length_of_name 000264 aa 6 00114 7561 00 stq pr6|76 dt_maximum_dimension_name_length STATEMENT 1 ON LINE 95 end; 000265 aa 6 00100 0541 00 aos pr6|64 dimension_idx 000266 aa 777764 7100 04 tra -12,ic 000252 STATEMENT 1 ON LINE 97 on cleanup call FINISH (); 000267 aa 000007 7260 07 lxl6 7,dl 000270 aa 777546 3520 04 epp2 -154,ic 000036 = 143154145141 000271 aa 0 00717 7001 00 tsx0 pr0|463 enable 000272 aa 000004 7100 04 tra 4,ic 000276 000273 aa 000102000000 000274 aa 000011 7100 04 tra 9,ic 000305 BEGIN CONDITION cleanup.1 ENTRY TO cleanup.1 STATEMENT 1 ON LINE 97 on cleanup call FINISH (); 000275 da 000070200000 000276 aa 000120 6270 00 eax7 80 000277 aa 7 00034 3521 20 epp2 pr7|28,* 000300 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000301 aa 000000000000 000302 aa 000000000000 000303 aa 000312 6700 04 tsp4 202,ic 000615 000304 aa 0 00631 7101 00 tra pr0|409 return END CONDITION cleanup.1 STATEMENT 1 ON LINE 99 alloc dimension_table in (p_work_area); 000305 aa 6 00114 2361 00 ldq pr6|76 dt_maximum_dimension_name_length 000306 aa 000003 0760 07 adq 3,dl 000307 aa 000002 7320 00 qrs 2 000310 aa 000002 0760 07 adq 2,dl 000311 aa 000001 0760 07 adq 1,dl 000312 aa 777776 3760 07 anq 262142,dl 000313 aa 000012 0760 07 adq 10,dl 000314 aa 000001 0760 07 adq 1,dl 000315 aa 777776 3760 07 anq 262142,dl 000316 aa 6 00115 4021 00 mpy pr6|77 dt_number_of_dimensions 000317 aa 000004 0330 07 adl 4,dl 000320 aa 6 00032 3735 20 epp7 pr6|26,* 000321 aa 7 00002 3715 20 epp5 pr7|2,* p_work_area_ptr 000322 aa 5 00000 3521 20 epp2 pr5|0,* p_work_area 000323 aa 0 01402 7001 00 tsx0 pr0|770 alloc_based 000324 aa 777761 7100 04 tra -15,ic 000305 000325 aa 6 00112 2521 00 spri2 pr6|74 dimension_table_ptr 000326 aa 777454 2370 04 ldaq -212,ic 000002 = 104151155124 142154137061 000327 aa 2 00000 7551 00 sta pr2|0 dimension_table.version 000330 aa 2 00001 7561 00 stq pr2|1 dimension_table.version 000331 aa 6 00115 2361 00 ldq pr6|77 dt_number_of_dimensions 000332 aa 2 00003 7561 00 stq pr2|3 dimension_table.number_of_dimensions 000333 aa 6 00114 2361 00 ldq pr6|76 dt_maximum_dimension_name_length 000334 aa 2 00002 7561 00 stq pr2|2 dimension_table.maximum_dimension_name_length 000335 aa 6 00122 4501 00 stz pr6|82 000336 aa 6 00122 0541 00 aos pr6|82 000337 aa 000003 0760 07 adq 3,dl 000340 aa 000002 7320 00 qrs 2 000341 aa 6 00151 7561 00 stq pr6|105 000342 aa 000002 0760 07 adq 2,dl 000343 aa 000001 0760 07 adq 1,dl 000344 aa 777776 3760 07 anq 262142,dl 000345 aa 6 00172 7561 00 stq pr6|122 000346 aa 000012 0760 07 adq 10,dl 000347 aa 000001 0760 07 adq 1,dl 000350 aa 777776 3760 07 anq 262142,dl 000351 aa 6 00173 7561 00 stq pr6|123 000352 aa 6 00122 2361 00 ldq pr6|82 000353 aa 000001 1760 07 sbq 1,dl 000354 aa 6 00173 4021 00 mpy pr6|123 000355 aa 2 00004 4501 06 stz pr2|4,ql dimension_table.name 000356 aa 6 00123 4501 00 stz pr6|83 000357 aa 6 00123 0541 00 aos pr6|83 000360 aa 6 00173 2361 00 ldq pr6|123 000361 aa 6 00123 4021 00 mpy pr6|83 000362 aa 6 00173 1761 00 sbq pr6|123 000363 aa 6 00174 7561 00 stq pr6|124 000364 aa 6 00151 2361 00 ldq pr6|105 000365 aa 000005 0760 07 adq 5,dl 000366 aa 6 00174 0761 00 adq pr6|124 000367 aa 2 00000 4501 06 stz pr2|0,ql dimension_table.descriptor_string 000370 aa 6 00124 4501 00 stz pr6|84 000371 aa 6 00124 0541 00 aos pr6|84 000372 aa 6 00173 2361 00 ldq pr6|123 000373 aa 6 00124 4021 00 mpy pr6|84 000374 aa 6 00173 1761 00 sbq pr6|123 000375 aa 6 00173 7561 00 stq pr6|123 000376 aa 6 00172 2361 00 ldq pr6|122 000377 aa 000004 0760 07 adq 4,dl 000400 aa 6 00173 0761 00 adq pr6|123 000401 aa 000000 6270 06 eax7 0,ql 000402 aa 777432 2370 04 ldaq -230,ic 000034 = 077777000043 000001000000 000403 aa 2 00000 7571 17 staq pr2|0,7 dimension_table.descriptor_ptr STATEMENT 1 ON LINE 101 do dimension_idx = 1 to hbound (dimension_table.dimension, 1); 000404 aa 2 00003 2361 00 ldq pr2|3 dimension_table.number_of_dimensions 000405 aa 6 00125 7561 00 stq pr6|85 000406 aa 000001 2360 07 ldq 1,dl 000407 aa 6 00100 7561 00 stq pr6|64 dimension_idx 000410 aa 6 00100 2361 00 ldq pr6|64 dimension_idx 000411 aa 6 00125 1161 00 cmpq pr6|85 000412 aa 000177 6054 04 tpnz 127,ic 000611 STATEMENT 1 ON LINE 103 if p_id_list_ptr = null then field_id = dimension_idx; 000413 aa 6 00032 3735 20 epp7 pr6|26,* 000414 aa 7 00006 2371 20 ldaq pr7|6,* p_id_list_ptr 000415 aa 777417 6770 04 eraq -241,ic 000034 = 077777000043 000001000000 000416 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000417 aa 000004 6010 04 tnz 4,ic 000423 000420 aa 6 00100 2361 00 ldq pr6|64 dimension_idx 000421 aa 6 00101 7561 00 stq pr6|65 field_id 000422 aa 000005 7100 04 tra 5,ic 000427 STATEMENT 1 ON LINE 105 else field_id = id_list.id (dimension_idx); 000423 aa 6 00100 7271 00 lxl7 pr6|64 dimension_idx 000424 aa 6 00116 3715 20 epp5 pr6|78,* id_list_ptr 000425 aa 5 00001 2361 17 ldq pr5|1,7 id_list.id 000426 aa 6 00101 7561 00 stq pr6|65 field_id STATEMENT 1 ON LINE 107 if field_id >= 1 /* If field_id <1, leave dimension_table entryempty */ then do; 000427 aa 000001 1160 07 cmpq 1,dl 000430 aa 000157 6040 04 tmi 111,ic 000607 STATEMENT 1 ON LINE 110 dimension_table.dimension (dimension_idx).name = substr (field_table.field_names, field_table.field (field_id).location_of_name, field_table.field (field_id).length_of_name); 000431 aa 6 00112 3715 20 epp5 pr6|74,* dimension_table_ptr 000432 aa 5 00002 2361 00 ldq pr5|2 dimension_table.maximum_dimension_name_length 000433 aa 000003 0760 07 adq 3,dl 000434 aa 000002 7320 00 qrs 2 000435 aa 000002 0760 07 adq 2,dl 000436 aa 000001 0760 07 adq 1,dl 000437 aa 777776 3760 07 anq 262142,dl 000440 aa 000012 0760 07 adq 10,dl 000441 aa 000001 0760 07 adq 1,dl 000442 aa 777776 3760 07 anq 262142,dl 000443 aa 6 00173 7561 00 stq pr6|123 000444 aa 6 00100 2361 00 ldq pr6|64 dimension_idx 000445 aa 000001 1760 07 sbq 1,dl 000446 aa 6 00173 4021 00 mpy pr6|123 000447 aa 000000 6260 06 eax6 0,ql 000450 aa 6 00101 2361 00 ldq pr6|65 field_id 000451 aa 000006 4020 07 mpy 6,dl 000452 aa 6 00110 3535 20 epp3 pr6|72,* field_table_ptr 000453 aa 000000 6270 06 eax7 0,ql 000454 aa 3 00003 2361 06 ldq pr3|3,ql field_table.location_of_name 000455 aa 000001 1760 07 sbq 1,dl 000456 aa 6 00174 7561 00 stq pr6|124 000457 aa 3 00002 2361 00 ldq pr3|2 field_table.number_of_fields 000460 aa 000001 7360 00 qls 1 000461 aa 6 00151 7561 00 stq pr6|105 000462 aa 3 00002 2361 00 ldq pr3|2 field_table.number_of_fields 000463 aa 000006 4020 07 mpy 6,dl 000464 aa 000005 0760 07 adq 5,dl 000465 aa 6 00151 0761 00 adq pr6|105 000466 aa 000002 7360 00 qls 2 000467 aa 6 00174 0761 00 adq pr6|124 000470 aa 6 00172 7561 00 stq pr6|122 000471 aa 3 00004 2361 17 ldq pr3|4,7 field_table.length_of_name 000472 aa 5 00002 1161 00 cmpq pr5|2 dimension_table.maximum_dimension_name_length 000473 aa 000002 6040 04 tmi 2,ic 000475 000474 aa 5 00002 2361 00 ldq pr5|2 dimension_table.maximum_dimension_name_length 000475 aa 6 00172 2351 00 lda pr6|122 000476 aa 5 00004 7561 16 stq pr5|4,6 dimension_table.name 000477 aa 5 00005 3515 16 epp1 pr5|5,6 dimension_table.name 000500 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 000501 aa 3 00000 00 0006 desc9a pr3|0,ql field_table.field_names 000502 aa 1 00000 00 0006 desc9a pr1|0,ql dimension_table.name STATEMENT 1 ON LINE 113 if field_table.field (field_id).flags.descriptor_is_varying then call sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, "^/The capability to handle varying length descriptors is not yet implemented."); 000503 aa 3 77777 2351 17 lda pr3|-1,7 field_table.descriptor_is_varying 000504 aa 400000 3150 03 cana 131072,du 000505 aa 000044 6000 04 tze 36,ic 000551 000506 aa 777326 3514 24 epp1 -298,ic* 000507 aa 6 00144 2515 00 spri1 pr6|100 000510 aa 6 00172 4501 00 stz pr6|122 000511 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000512 aa 777376 00 0120 desc9a -258,80 000107 = 136057124150 000513 aa 6 00176 00 0120 desc9a pr6|126,80 000514 aa 6 00044 3701 20 epp4 pr6|36,* 000515 la 4 00012 3521 20 epp2 pr4|10,* dm_error_$programming_error 000516 aa 6 00224 2521 00 spri2 pr6|148 000517 aa 777270 3520 04 epp2 -328,ic 000007 = 144146165137 000520 aa 6 00226 2521 00 spri2 pr6|150 000521 aa 777257 3520 04 epp2 -337,ic 000000 = 400000000000 000522 aa 6 00230 2521 00 spri2 pr6|152 000523 aa 6 00144 3521 00 epp2 pr6|100 000524 aa 6 00232 2521 00 spri2 pr6|154 000525 aa 6 00172 3521 00 epp2 pr6|122 000526 aa 6 00234 2521 00 spri2 pr6|156 000527 aa 6 00176 3521 00 epp2 pr6|126 000530 aa 6 00236 2521 00 spri2 pr6|158 000531 aa 777275 3520 04 epp2 -323,ic 000026 = 404000000043 000532 aa 6 00240 2521 00 spri2 pr6|160 000533 aa 777271 3520 04 epp2 -327,ic 000024 = 530000000040 000534 aa 6 00242 2521 00 spri2 pr6|162 000535 aa 777266 3520 04 epp2 -330,ic 000023 = 514000000044 000536 aa 6 00244 2521 00 spri2 pr6|164 000537 aa 777272 3520 04 epp2 -326,ic 000031 = 464000000000 000540 aa 6 00246 2521 00 spri2 pr6|166 000541 aa 777261 3520 04 epp2 -335,ic 000022 = 404000000005 000542 aa 6 00250 2521 00 spri2 pr6|168 000543 aa 777256 3520 04 epp2 -338,ic 000021 = 524000000115 000544 aa 6 00252 2521 00 spri2 pr6|170 000545 aa 6 00222 6211 00 eax1 pr6|146 000546 aa 030000 4310 07 fld 12288,dl 000547 la 4 00010 3521 20 epp2 pr4|8,* sub_err_ 000550 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 122 dimension_table.dimension (dimension_idx).descriptor_ptr = addr (dimension_table.dimension (dimension_idx).descriptor_string); 000551 aa 6 00112 3735 20 epp7 pr6|74,* dimension_table_ptr 000552 aa 7 00002 2361 00 ldq pr7|2 dimension_table.maximum_dimension_name_length 000553 aa 000003 0760 07 adq 3,dl 000554 aa 000002 7320 00 qrs 2 000555 aa 6 00172 7561 00 stq pr6|122 000556 aa 000002 0760 07 adq 2,dl 000557 aa 000001 0760 07 adq 1,dl 000560 aa 777776 3760 07 anq 262142,dl 000561 aa 6 00175 7561 00 stq pr6|125 000562 aa 000012 0760 07 adq 10,dl 000563 aa 000001 0760 07 adq 1,dl 000564 aa 777776 3760 07 anq 262142,dl 000565 aa 6 00173 7561 00 stq pr6|123 000566 aa 6 00100 4021 00 mpy pr6|64 dimension_idx 000567 aa 6 00173 1761 00 sbq pr6|123 000570 aa 6 00173 7561 00 stq pr6|123 000571 aa 6 00175 2361 00 ldq pr6|125 000572 aa 000004 0760 07 adq 4,dl 000573 aa 6 00173 0761 00 adq pr6|123 000574 aa 000000 6270 06 eax7 0,ql 000575 aa 6 00172 2361 00 ldq pr6|122 000576 aa 000005 0760 07 adq 5,dl 000577 aa 6 00173 0761 00 adq pr6|123 000600 aa 7 00000 3715 06 epp5 pr7|0,ql dimension_table.descriptor_string 000601 aa 7 00000 6515 17 spri5 pr7|0,7 dimension_table.descriptor_ptr STATEMENT 1 ON LINE 124 dimension_table.dimension (dimension_idx).descriptor_string = field_table.field (field_id).descriptor; 000602 aa 000000 6260 06 eax6 0,ql 000603 aa 6 00101 2361 00 ldq pr6|65 field_id 000604 aa 000006 4020 07 mpy 6,dl 000605 aa 6 00110 2351 66 lda pr6|72,*ql field_table.descriptor 000606 aa 7 00000 7551 16 sta pr7|0,6 dimension_table.descriptor_string STATEMENT 1 ON LINE 125 end; STATEMENT 1 ON LINE 126 end; 000607 aa 6 00100 0541 00 aos pr6|64 dimension_idx 000610 aa 777600 7100 04 tra -128,ic 000410 STATEMENT 1 ON LINE 128 p_dimension_table_ptr = dimension_table_ptr; 000611 aa 6 00112 3735 20 epp7 pr6|74,* dimension_table_ptr 000612 aa 6 00032 3715 20 epp5 pr6|26,* 000613 aa 5 00010 6535 20 spri7 pr5|8,* p_dimension_table_ptr STATEMENT 1 ON LINE 130 return; 000614 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 189 end dfu_cv_field_to_dim_table; BEGIN PROCEDURE FINISH ENTRY TO FINISH STATEMENT 1 ON LINE 132 FINISH: proc (); 000615 aa 6 00100 6501 00 spri4 pr6|64 STATEMENT 1 ON LINE 135 if dimension_table_ptr ^= null & p_dimension_table_ptr ^= dimension_table_ptr then free dimension_table; 000616 aa 6 00040 3735 20 epp7 pr6|32,* 000617 aa 7 00112 2371 00 ldaq pr7|74 dimension_table_ptr 000620 aa 777214 6770 04 eraq -372,ic 000034 = 077777000043 000001000000 000621 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000622 aa 000024 6000 04 tze 20,ic 000646 000623 aa 7 00032 3715 20 epp5 pr7|26,* 000624 aa 5 00010 2371 20 ldaq pr5|8,* p_dimension_table_ptr 000625 aa 7 00112 6771 00 eraq pr7|74 dimension_table_ptr 000626 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 000627 aa 000017 6000 04 tze 15,ic 000646 000630 aa 7 00112 3535 20 epp3 pr7|74,* dimension_table_ptr 000631 aa 3 00002 2361 00 ldq pr3|2 dimension_table.maximum_dimension_name_length 000632 aa 000003 0760 07 adq 3,dl 000633 aa 000002 7320 00 qrs 2 000634 aa 000002 0760 07 adq 2,dl 000635 aa 000001 0760 07 adq 1,dl 000636 aa 777776 3760 07 anq 262142,dl 000637 aa 000012 0760 07 adq 10,dl 000640 aa 000001 0760 07 adq 1,dl 000641 aa 777776 3760 07 anq 262142,dl 000642 aa 3 00003 4021 00 mpy pr3|3 dimension_table.number_of_dimensions 000643 aa 000004 0330 07 adl 4,dl 000644 aa 7 00112 3715 00 epp5 pr7|74 dimension_table_ptr 000645 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 138 end FINISH; 000646 aa 6 00100 6101 00 rtcd pr6|64 END PROCEDURE FINISH BEGIN PROCEDURE CHECK_VERSION ENTRY TO CHECK_VERSION STATEMENT 1 ON LINE 140 CHECK_VERSION: proc (p_received_version, p_expected_version, p_structure_name); 000647 aa 6 00126 6501 00 spri4 pr6|86 000650 aa 6 00130 2521 00 spri2 pr6|88 000651 aa 2 00002 3521 01 epp2 pr2|2,au 000652 aa 6 00132 2521 00 spri2 pr6|90 000653 aa 2 00000 2361 20 ldq pr2|0,* 000654 aa 000002 6040 04 tmi 2,ic 000656 000655 aa 777777 3760 07 anq 262143,dl 000656 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000657 aa 6 00254 7561 00 stq pr6|172 000660 aa 2 00002 2361 20 ldq pr2|2,* 000661 aa 000002 6040 04 tmi 2,ic 000663 000662 aa 777777 3760 07 anq 262143,dl 000663 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000664 aa 6 00255 7561 00 stq pr6|173 000665 aa 2 00004 2361 20 ldq pr2|4,* 000666 aa 000002 6040 04 tmi 2,ic 000670 000667 aa 777777 3760 07 anq 262143,dl 000670 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000671 aa 6 00256 7561 00 stq pr6|174 STATEMENT 1 ON LINE 146 if p_received_version ^= p_expected_version then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, "^/Expected version ^a of the ^a structure. Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 000672 aa 6 00130 3735 20 epp7 pr6|88,* 000673 aa 7 00002 3715 20 epp5 pr7|2,* 000674 aa 7 00004 3535 20 epp3 pr7|4,* 000675 aa 6 00254 2351 00 lda pr6|172 000676 aa 6 00255 2361 00 ldq pr6|173 000677 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 000700 aa 5 00000 00 0005 desc9a pr5|0,al p_received_version 000701 aa 3 00000 00 0006 desc9a pr3|0,ql p_expected_version 000702 aa 000061 6000 04 tze 49,ic 000763 000703 aa 777131 3514 24 epp1 -423,ic* 000704 aa 6 00260 2515 00 spri1 pr6|176 000705 aa 6 00257 4501 00 stz pr6|175 000706 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000707 aa 777157 00 0110 desc9a -401,72 000065 = 136057105170 000710 aa 6 00262 00 0110 desc9a pr6|178,72 000711 aa 6 00044 3701 20 epp4 pr6|36,* 000712 la 4 00014 3521 20 epp2 pr4|12,* error_table_$unimplemented_version 000713 aa 6 00306 2521 00 spri2 pr6|198 000714 aa 777073 3520 04 epp2 -453,ic 000007 = 144146165137 000715 aa 6 00310 2521 00 spri2 pr6|200 000716 aa 777062 3520 04 epp2 -462,ic 000000 = 400000000000 000717 aa 6 00312 2521 00 spri2 pr6|202 000720 aa 6 00260 3521 00 epp2 pr6|176 000721 aa 6 00314 2521 00 spri2 pr6|204 000722 aa 6 00257 3521 00 epp2 pr6|175 000723 aa 6 00316 2521 00 spri2 pr6|206 000724 aa 6 00262 3521 00 epp2 pr6|178 000725 aa 6 00320 2521 00 spri2 pr6|208 000726 aa 7 00004 3521 20 epp2 pr7|4,* p_expected_version 000727 aa 6 00322 2521 00 spri2 pr6|210 000730 aa 7 00006 3521 20 epp2 pr7|6,* p_structure_name 000731 aa 6 00324 2521 00 spri2 pr6|212 000732 aa 7 00002 3521 20 epp2 pr7|2,* p_received_version 000733 aa 6 00326 2521 00 spri2 pr6|214 000734 aa 777072 3520 04 epp2 -454,ic 000026 = 404000000043 000735 aa 6 00330 2521 00 spri2 pr6|216 000736 aa 777066 3520 04 epp2 -458,ic 000024 = 530000000040 000737 aa 6 00332 2521 00 spri2 pr6|218 000740 aa 777063 3520 04 epp2 -461,ic 000023 = 514000000044 000741 aa 6 00334 2521 00 spri2 pr6|220 000742 aa 777067 3520 04 epp2 -457,ic 000031 = 464000000000 000743 aa 6 00336 2521 00 spri2 pr6|222 000744 aa 777056 3520 04 epp2 -466,ic 000022 = 404000000005 000745 aa 6 00340 2521 00 spri2 pr6|224 000746 aa 777051 3520 04 epp2 -471,ic 000017 = 524000000107 000747 aa 6 00342 2521 00 spri2 pr6|226 000750 aa 6 00132 3535 20 epp3 pr6|90,* 000751 aa 3 00002 3521 20 epp2 pr3|2,* 000752 aa 6 00344 2521 00 spri2 pr6|228 000753 aa 3 00004 3521 20 epp2 pr3|4,* 000754 aa 6 00346 2521 00 spri2 pr6|230 000755 aa 3 00000 3521 20 epp2 pr3|0,* 000756 aa 6 00350 2521 00 spri2 pr6|232 000757 aa 6 00304 6211 00 eax1 pr6|196 000760 aa 044000 4310 07 fld 18432,dl 000761 la 4 00010 3521 20 epp2 pr4|8,* sub_err_ 000762 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 158 end CHECK_VERSION; 000763 aa 6 00126 6101 00 rtcd pr6|86 END PROCEDURE CHECK_VERSION BEGIN PROCEDURE CHECK_VERSION_FB ENTRY TO CHECK_VERSION_FB STATEMENT 1 ON LINE 162 CHECK_VERSION_FB: proc (p_received_version, p_expected_version, p_structure_name); 000764 aa 6 00134 6501 00 spri4 pr6|92 000765 aa 6 00136 2521 00 spri2 pr6|94 000766 aa 2 00002 3521 01 epp2 pr2|2,au 000767 aa 6 00140 2521 00 spri2 pr6|96 000770 aa 2 00004 2361 20 ldq pr2|4,* 000771 aa 000002 6040 04 tmi 2,ic 000773 000772 aa 777777 3760 07 anq 262143,dl 000773 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000774 aa 6 00352 7561 00 stq pr6|234 STATEMENT 1 ON LINE 168 if p_received_version ^= p_expected_version then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, "^/Expected version ^d of the ^a structure. Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 000775 aa 6 00136 3735 20 epp7 pr6|94,* 000776 aa 7 00002 2361 20 ldq pr7|2,* p_received_version 000777 aa 7 00004 1161 20 cmpq pr7|4,* p_expected_version 001000 aa 000057 6000 04 tze 47,ic 001057 001001 aa 777033 3714 24 epp5 -485,ic* 001002 aa 6 00354 6515 00 spri5 pr6|236 001003 aa 6 00353 4501 00 stz pr6|235 001004 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001005 aa 777037 00 0110 desc9a -481,72 000043 = 136057105170 001006 aa 6 00356 00 0110 desc9a pr6|238,72 001007 aa 6 00044 3701 20 epp4 pr6|36,* 001010 la 4 00014 3521 20 epp2 pr4|12,* error_table_$unimplemented_version 001011 aa 6 00402 2521 00 spri2 pr6|258 001012 aa 776775 3520 04 epp2 -515,ic 000007 = 144146165137 001013 aa 6 00404 2521 00 spri2 pr6|260 001014 aa 776764 3520 04 epp2 -524,ic 000000 = 400000000000 001015 aa 6 00406 2521 00 spri2 pr6|262 001016 aa 6 00354 3521 00 epp2 pr6|236 001017 aa 6 00410 2521 00 spri2 pr6|264 001020 aa 6 00353 3521 00 epp2 pr6|235 001021 aa 6 00412 2521 00 spri2 pr6|266 001022 aa 6 00356 3521 00 epp2 pr6|238 001023 aa 6 00414 2521 00 spri2 pr6|268 001024 aa 7 00004 3521 20 epp2 pr7|4,* p_expected_version 001025 aa 6 00416 2521 00 spri2 pr6|270 001026 aa 7 00006 3521 20 epp2 pr7|6,* p_structure_name 001027 aa 6 00420 2521 00 spri2 pr6|272 001030 aa 7 00002 3521 20 epp2 pr7|2,* p_received_version 001031 aa 6 00422 2521 00 spri2 pr6|274 001032 aa 776774 3520 04 epp2 -516,ic 000026 = 404000000043 001033 aa 6 00424 2521 00 spri2 pr6|276 001034 aa 6 00440 2521 00 spri2 pr6|288 001035 aa 6 00444 2521 00 spri2 pr6|292 001036 aa 776766 3520 04 epp2 -522,ic 000024 = 530000000040 001037 aa 6 00426 2521 00 spri2 pr6|278 001040 aa 776763 3520 04 epp2 -525,ic 000023 = 514000000044 001041 aa 6 00430 2521 00 spri2 pr6|280 001042 aa 776767 3520 04 epp2 -521,ic 000031 = 464000000000 001043 aa 6 00432 2521 00 spri2 pr6|282 001044 aa 776756 3520 04 epp2 -530,ic 000022 = 404000000005 001045 aa 6 00434 2521 00 spri2 pr6|284 001046 aa 776751 3520 04 epp2 -535,ic 000017 = 524000000107 001047 aa 6 00436 2521 00 spri2 pr6|286 001050 aa 6 00140 3535 20 epp3 pr6|96,* 001051 aa 3 00004 3521 20 epp2 pr3|4,* 001052 aa 6 00442 2521 00 spri2 pr6|290 001053 aa 6 00400 6211 00 eax1 pr6|256 001054 aa 044000 4310 07 fld 18432,dl 001055 la 4 00010 3521 20 epp2 pr4|8,* sub_err_ 001056 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 180 end CHECK_VERSION_FB; 001057 aa 6 00134 6101 00 rtcd pr6|92 END PROCEDURE CHECK_VERSION_FB END PROCEDURE dfu_cv_field_to_dim_table ----------------------------------------------------------- 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