COMPILATION LISTING OF SEGMENT dmu_cv_typed_array_to_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 1643.4 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* Given a pointer to a typed vector array, this module builds a 9* field_table, allocated in the provided area, by converting the dimension 10* descriptions in the dimension_table into field descriptions in the 11* field_table. 12* 13* A field_table describes how fields are layed out in a record 14* string or key string, generically known as data strings. A data 15* string is divided into two parts, the fixed part and the varying 16* part. There is a fixed-size field for each field of the 17* record/key in the fixed part, whether the field is varying or 18* nonvarying. These fixed-sized fields are in the order specified 19* in typed_vector_array.dimension_table. These fixed-sized fields 20* are aligned according to their data types. 21* 22* Nonvarying fields are kept in their entirety in their 23* corresponding fixed-sized field in the fixed part. Varying fields 24* have the lengths of the varying fields kept in their corresponding 25* fixed-sized fileds in the fixed part. The contents of the varying 26* fields are kept in the varying part. 27**/ 28 29 /* HISTORY: 30*Written by Matthew Pierret 04/05/82. 31*Modified: 32*04/14/82 by Lindsey Spratt: Changed the field_table location to be 1-originned 33* instead of 0-originned. ft_maximum_field_name_length is no longer 34* calculated but is simply set to 35* typed_vector_array.maximum_dimension_name_length. Also, the 36* descriptor_string based variable was changed from unaligned to 37* aligned. 38*05/19/82 by Lindsey Spratt: Changed to always set the 39* location_of_first_varying_field to reflect the length of the fixed 40* portion of the data string, whether or not there are any varying 41* fields. 42*03/22/83 by Lindsey Spratt: Changed to use version 2 of the field_table 43* structure. 44*05/03/84 by Matthew Pierret: Changed to FIELD_TABLE_VERSION_3, which includes 45* laying out the field names in a single string at the end of the 46* structure (field_names). Also changed to align fields within the 47* data string. 48*09/12/84 by Matthew C. Pierret: Changed the SET_FIELD_LOCATIONS loop to set 49* the location after calculating what the location should be, 50* instead of before. Upper-cased the internal subroutine names and 51* added a prefix before each variable local to an internal 52* subroutine. Changed the format style from style2,ind3, so 53* reformat before comparing with the old version. 54**/ 55 56 /* format: style2,ind3 */ 57 /* format: ll79,comcol50,indcomtxt,^indnoniterdo,indnoniterend */ 58 59 dmu_cv_typed_array_to_table: 60 proc (p_typed_vector_array_ptr, p_area_ptr, p_field_table_ptr, 61 p_maximum_record_length, p_code); 62 63 /* START OF DECLARATIONS */ 64 /* Parameter */ 65 66 dcl p_area_ptr ptr; 67 dcl p_typed_vector_array_ptr 68 ptr; 69 dcl p_field_table_ptr ptr; 70 dcl p_maximum_record_length 71 fixed bin (35); 72 dcl p_code fixed bin (35); 73 74 /* Automatic */ 75 76 dcl code fixed bin (35); 77 dcl alignment fixed bin; 78 dcl bits_past_alignment_boundary 79 fixed bin; 80 dcl dimension_idx fixed bin; 81 dcl field_idx fixed bin; 82 dcl location_of_next_field fixed bin (35); 83 dcl varying_field_portion_length 84 fixed bin (35); 85 dcl field_length_in_bits fixed bin (35); 86 dcl position_in_varying_fields 87 fixed bin; 88 dcl area_ptr ptr; 89 90 /* Based */ 91 92 dcl area area (sys_info$max_seg_size) 93 based (area_ptr); 94 dcl descriptor_string aligned bit (36) based; 95 96 /* Builtin */ 97 98 dcl (hbound, null, length, string, addr) 99 builtin; 100 101 /* Controlled */ 102 /* Constant */ 103 104 dcl myname init ("dmu_cv_typed_array_to_table") 105 char (32) varying int static 106 options (constant); 107 dcl MAXIMUM_LENGTH_HELD_IN_ONE_BYTE 108 fixed bin (35) int static 109 options (constant) 110 init (511 /* 2 ** 9 - 1 */); 111 dcl MAXIMUM_LENGTH_HELD_IN_TWO_BYTES 112 fixed bin (35) int static 113 options (constant) 114 init (262143511 /* 2 ** 18 - 1 */); 115 dcl ONE_BYTE fixed bin int static 116 options (constant) init (9); 117 dcl TWO_BYTES fixed bin int static 118 options (constant) init (18); 119 dcl FOUR_BYTES fixed bin int static 120 options (constant) init (36); 121 122 /* Entry */ 123 124 dcl sub_err_ entry options (variable); 125 dcl dmu_get_data_bit_length$alignment 126 entry (bit (36) aligned, fixed bin (35), 127 fixed bin (17), fixed bin (35)); 128 129 /* External */ 130 131 dcl error_table_$unimplemented_version 132 ext fixed bin (35); 133 dcl sys_info$max_seg_size ext fixed bin (35); 134 135 /* END OF DECLARATIONS */ 136 137 typed_vector_array_ptr = p_typed_vector_array_ptr; 138 area_ptr = p_area_ptr; 139 p_code = 0; 140 141 if typed_vector_array.version ^= TYPED_VECTOR_ARRAY_VERSION_2 142 then call sub_err_ (error_table_$unimplemented_version, myname, 143 ACTION_CANT_RESTART, null, 0, 144 "^/Expecting version ^d of the typed_vector_array structure, received version ^d." 145 , TYPED_VECTOR_ARRAY_VERSION_2, typed_vector_array.version); 146 147 ft_number_of_fields = typed_vector_array.number_of_dimensions; 148 ft_length_of_field_names = 0; 149 SET_LENGTH_OF_FIELD_NAMES: 150 do field_idx = 1 to ft_number_of_fields; 151 ft_length_of_field_names = 152 ft_length_of_field_names 153 + 154 length ( 155 rtrim (typed_vector_array.dimension_table (field_idx).name)); 156 end SET_LENGTH_OF_FIELD_NAMES; 157 158 alloc field_table in (area); 159 field_table.field_names = ""; 160 161 SET_NAME_AND_DESCRIPTOR: 162 do field_idx = 1 to field_table.number_of_fields; 163 field_table.field (field_idx).location_of_name = 164 length (rtrim (field_table.field_names)) + 1; 165 field_table.field (field_idx).length_of_name = 166 length ( 167 rtrim (typed_vector_array.dimension_table (field_idx).name)); 168 field_table.field_names = 169 rtrim (field_table.field_names) 170 || rtrim (typed_vector_array.dimension_table (field_idx).name); 171 172 field_table.field (field_idx).descriptor = 173 typed_vector_array.dimension_table (field_idx).descriptor_ptr 174 -> descriptor_string; 175 string (field_table.field (field_idx).flags) = "0"b; 176 end SET_NAME_AND_DESCRIPTOR; 177 178 position_in_varying_fields = 0; 179 SETUP_VARYING_FIELD_MAP: 180 do field_idx = 1 to hbound (field_table.field, 1); 181 if FIELD_IS_VARYING (field_table.field (field_idx).descriptor) 182 then 183 do; 184 field_table.field (field_idx).flags.length_is_in_characters = 185 FIELD_IS_CHARACTER_VARYING (field_table.field (field_idx) 186 .descriptor); 187 position_in_varying_fields = position_in_varying_fields + 1; 188 field_table.varying_field_map (position_in_varying_fields) 189 .field_id = field_idx; 190 field_table.varying_field_map (field_idx).varying_field_index = 191 position_in_varying_fields; 192 end; 193 end SETUP_VARYING_FIELD_MAP; 194 195 location_of_next_field = 1; 196 varying_field_portion_length = 0; 197 SET_FIELD_LOCATIONS: 198 do field_idx = 1 to hbound (field_table.field, 1); 199 call dmu_get_data_bit_length$alignment (field_table.field (field_idx) 200 .descriptor, field_length_in_bits, alignment, code); 201 if code ^= 0 202 then call sub_err_ (code, myname, ACTION_CANT_RESTART, null, 0, 203 "^/Could not get bit-length of filed with descriptor ^3bo.", 204 field_table.field (field_idx).descriptor); 205 206 bits_past_alignment_boundary = 207 mod (location_of_next_field - 1, alignment); 208 if bits_past_alignment_boundary > 0 209 then location_of_next_field = 210 location_of_next_field + alignment 211 - bits_past_alignment_boundary; 212 213 if field_table.varying_field_map (field_idx).varying_field_index = 0 214 then field_table.field (field_idx).length_in_bits = 215 field_length_in_bits; 216 else 217 do; 218 if field_length_in_bits < MAXIMUM_LENGTH_HELD_IN_ONE_BYTE 219 then field_table.field (field_idx).length_in_bits = ONE_BYTE; 220 else if field_length_in_bits < MAXIMUM_LENGTH_HELD_IN_TWO_BYTES 221 then field_table.field (field_idx).length_in_bits = TWO_BYTES; 222 else field_table.field (field_idx).length_in_bits = FOUR_BYTES; 223 224 varying_field_portion_length = 225 varying_field_portion_length + field_length_in_bits; 226 end; 227 field_table.field (field_idx).location = location_of_next_field; 228 location_of_next_field = 229 location_of_next_field 230 + field_table.field (field_idx).length_in_bits; 231 232 end SET_FIELD_LOCATIONS; 233 field_table.location_of_first_varying_field = location_of_next_field; 234 235 p_field_table_ptr = field_table_ptr; 236 p_maximum_record_length = 237 location_of_next_field + varying_field_portion_length; 238 239 return; 240 241 FIELD_IS_VARYING: 242 proc (fiv_p_descriptor_string) returns (bit (1) aligned); 243 244 dcl fiv_p_descriptor_string 245 bit (36) aligned; 246 dcl 1 fiv_descriptor_type unal 247 based (addr (fiv_p_descriptor_string)), 248 2 unused1 bit (1) unal, 249 2 type fixed bin (6) unsigned unal, 250 2 unused2 bit (29) unal; 251 dcl BIT_VARYING fixed bin (6) unsigned init (20); 252 dcl CHAR_VARYING fixed bin (6) init (22); 253 254 if fiv_descriptor_type.type = BIT_VARYING 255 | fiv_descriptor_type.type = CHAR_VARYING 256 then return ("1"b); 257 else return ("0"b); 258 259 end FIELD_IS_VARYING; 260 261 FIELD_IS_CHARACTER_VARYING: 262 proc (ficv_p_descriptor_string) returns (bit (1) aligned); 263 264 dcl ficv_p_descriptor_string 265 bit (36) aligned; 266 dcl 1 ficv_descriptor_type unal 267 based (addr (ficv_p_descriptor_string)), 268 2 unused1 bit (1) unal, 269 2 type fixed bin (6) unsigned unal, 270 2 unused2 bit (29) unal; 271 dcl BIT_VARYING fixed bin (6) unsigned init (20); 272 dcl CHAR_VARYING fixed bin (6) init (22); 273 274 if ficv_descriptor_type.type = CHAR_VARYING 275 then return ("1"b); 276 else return ("0"b); 277 278 end FIELD_IS_CHARACTER_VARYING; 279 1 1 /* *********************************************************** 1 2* * * 1 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 1 4* * * 1 5* *********************************************************** */ 1 6 /* BEGIN INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 1 7 1 8 /* Written by Lindsey Spratt, 03/04/82. 1 9*Modified: 1 10*06/23/82 by Lindsey Spratt: Changed to version 2. The cv entry declarations 1 11* were altered. cv_to_typed now takes ptr to the descriptor, ptr to 1 12* the print_vector value (char varying), ptr to the typed_vector 1 13* value location, and a code. cv_to_print now takes ptr to the 1 14* descriptor, ptr to the typed_vector value, the print_vector value 1 15* (char(*) varying), the maximum allowed length for the print_vector 1 16* value, a temp_seg to put the value in if its to big to fit into 1 17* the print_vector, and a code. 1 18**/ 1 19 1 20 /* format: style2,ind3 */ 1 21 dcl 1 typed_vector_array based (typed_vector_array_ptr) aligned, 1 22 2 version fixed bin (35), 1 23 2 number_of_dimensions 1 24 fixed bin (17), 1 25 2 number_of_vectors fixed bin (17), 1 26 2 number_of_vector_slots 1 27 fixed bin (17), 1 28 2 maximum_dimension_name_length 1 29 fixed bin (17), 1 30 2 dimension_table (tva_number_of_dimensions refer (typed_vector_array.number_of_dimensions)), 1 31 3 name char (tva_maximum_dimension_name_length 1 32 refer (typed_vector_array.maximum_dimension_name_length)) varying, 1 33 3 descriptor_ptr ptr, /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 1 34 /* temp_seg_ptr, max_length_for_print_value, */ 1 35 /* print_value, code) */ 1 36 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 1 37 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 1 38 /* print_value_ptr, typed_value_ptr, code) */ 1 39 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)), 1 40 2 vector_slot (tva_number_of_vector_slots refer (typed_vector_array.number_of_vector_slots)) 1 41 pointer; 1 42 1 43 dcl typed_vector_array_ptr ptr; 1 44 dcl tva_number_of_vector_slots 1 45 fixed bin; 1 46 dcl tva_number_of_dimensions 1 47 fixed bin; 1 48 dcl tva_maximum_dimension_name_length 1 49 fixed bin; 1 50 dcl TYPED_VECTOR_ARRAY_VERSION_2 1 51 fixed bin (35) int static options (constant) init (2); 1 52 1 53 /* END INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 280 281 2 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* The field_table describes the layout of a set of fields in a 2 6* formatted data string. Such a string is the stored representation of a 2 7* record or a key. Fields are placed side-by-side in the string in the 2 8* order they appear in the field_table.field array. The string is divided 2 9* into the fixed portion and the varying portion. In the fixed portion 2 10* appear fixed-length fields and fixed-size length-fields for 2 11* varying-length fields. In the varying portion appear varying length 2 12* fields. The length-field for a varying-length field contains the length 2 13* of the field values either in bits or in characters, depending on the 2 14* data type of the field. 2 15**/ 2 16 2 17 /* HISTORY: 2 18*Written by Matthew Pierret, 04/01/82. 2 19*Modified: 2 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 2 21* that if the field is varying, its length is expressed in 2 22* bytes/characters. 2 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 2 24* of 17, changed version to 2, changed version field to char(8) from 2 25* fixed bin (17). 2 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 2 27* put field names in one string (field_names) at the end of the 2 28* structure. Added field.location_of_name and field.length_of_name 2 29* for locating the field name in field_names. Aligned all "fixed bin" 2 30* structure elements. Changed maximum_field_name_length to 2 31* length_of_field_names. 2 32**/ 2 33 2 34 /* format: style2 */ 2 35 2 36 dcl 1 field_table aligned based (field_table_ptr), 2 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 2 38 2 number_of_fields fixed bin (17), 2 39 2 length_of_field_names 2 40 fixed bin (17), /* length of field_names in characters */ 2 41 2 location_of_first_varying_field 2 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 2 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 2 44 3 flags aligned, 2 45 4 descriptor_is_varying 2 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 2 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 2 48 /* containing the id of the element in which the descriptor is stored. */ 2 49 4 length_is_in_characters 2 50 bit (1) unal, /* if field is varying, the length field describes its length */ 2 51 /* in characters instead of in bits */ 2 52 4 must_be_zero bit (34) unal, 2 53 3 descriptor bit (36) aligned, 2 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 2 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 2 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 2 57 3 length_of_name fixed bin (17), /* length of name in characters */ 2 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 2 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 2 60 3 varying_field_index 2 61 fixed bin (17), /* ordinality among varying fields of field N */ 2 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 2 63 2 64 2 65 dcl field_table_ptr ptr; 2 66 dcl ft_length_of_field_names 2 67 fixed bin; 2 68 dcl ft_number_of_fields fixed bin; 2 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 2 70 2 71 dcl field_name char (field_name_length) based (field_name_ptr); 2 72 2 73 dcl field_name_length fixed bin; 2 74 dcl field_name_ptr ptr; 2 75 2 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 282 283 3 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 3 2 /* format: style3 */ 3 3 3 4 /* These constants are to be used for the flags argument of sub_err_ */ 3 5 /* They are just "string (condition_info_header.action_flags)" */ 3 6 3 7 declare ( 3 8 ACTION_CAN_RESTART init (""b), 3 9 ACTION_CANT_RESTART init ("1"b), 3 10 ACTION_DEFAULT_RESTART 3 11 init ("01"b), 3 12 ACTION_QUIET_RESTART 3 13 init ("001"b), 3 14 ACTION_SUPPORT_SIGNAL 3 15 init ("0001"b) 3 16 ) bit (36) aligned internal static options (constant); 3 17 3 18 /* End include file */ 284 285 end dmu_cv_typed_array_to_table; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1150.0 dmu_cv_typed_array_to_table.pl1 >spec>temp>famis1>dmu_cv_typed_array_to_table.pl1 280 1 10/14/83 1609.1 vu_typed_vector_array.incl.pl1 >ldd>include>vu_typed_vector_array.incl.pl1 282 2 01/03/85 1003.3 dm_field_table.incl.pl1 >spec>temp>famis1>dm_field_table.incl.pl1 284 3 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 000014 constant bit(36) initial dcl 3-7 set ref 141* 201* BIT_VARYING 000142 automatic fixed bin(6,0) initial unsigned dcl 271 in procedure "FIELD_IS_CHARACTER_VARYING" set ref 271* BIT_VARYING 000132 automatic fixed bin(6,0) initial unsigned dcl 251 in procedure "FIELD_IS_VARYING" set ref 251* 254 CHAR_VARYING 000133 automatic fixed bin(6,0) initial dcl 252 in procedure "FIELD_IS_VARYING" set ref 252* 254 CHAR_VARYING 000143 automatic fixed bin(6,0) initial dcl 272 in procedure "FIELD_IS_CHARACTER_VARYING" set ref 272* 274 FIELD_TABLE_VERSION_3 000000 constant char(8) initial dcl 2-69 ref 158 FOUR_BYTES constant fixed bin(17,0) initial dcl 119 ref 222 MAXIMUM_LENGTH_HELD_IN_ONE_BYTE constant fixed bin(35,0) initial dcl 107 ref 218 MAXIMUM_LENGTH_HELD_IN_TWO_BYTES 000002 constant fixed bin(35,0) initial dcl 111 ref 220 ONE_BYTE constant fixed bin(17,0) initial dcl 115 ref 218 TWO_BYTES constant fixed bin(17,0) initial dcl 117 ref 220 TYPED_VECTOR_ARRAY_VERSION_2 000024 constant fixed bin(35,0) initial dcl 1-50 set ref 141 141* addr builtin function dcl 98 ref 254 254 274 alignment 000101 automatic fixed bin(17,0) dcl 77 set ref 199* 206 208 area based area dcl 92 ref 158 area_ptr 000110 automatic pointer dcl 88 set ref 138* 158 bits_past_alignment_boundary 000102 automatic fixed bin(17,0) dcl 78 set ref 206* 208 208 code 000100 automatic fixed bin(35,0) dcl 76 set ref 199* 201 201* descriptor 6 based bit(36) array level 3 dcl 2-36 set ref 172* 181* 184* 199* 201* descriptor_ptr based pointer array level 3 dcl 1-21 ref 172 descriptor_string based bit(36) dcl 94 ref 172 dimension_table 6 based structure array level 2 dcl 1-21 dmu_get_data_bit_length$alignment 000012 constant entry external dcl 125 ref 199 error_table_$unimplemented_version 000014 external static fixed bin(35,0) dcl 131 set ref 141* ficv_descriptor_type based structure level 1 packed unaligned dcl 266 ficv_p_descriptor_string parameter bit(36) dcl 264 set ref 261 274 field 5 based structure array level 2 dcl 2-36 set ref 179 197 field_id based fixed bin(17,0) array level 3 dcl 2-36 set ref 188* field_idx 000103 automatic fixed bin(17,0) dcl 81 set ref 149* 151* 161* 163 165 165 168 172 172 175* 179* 181 184 184 188 190* 197* 199 201 213 213 218 220 222 227 228* field_length_in_bits 000106 automatic fixed bin(35,0) dcl 85 set ref 199* 213 218 220 224 field_names based char level 2 dcl 2-36 set ref 159* 163 168* 168 field_table based structure level 1 dcl 2-36 set ref 158 field_table_ptr 000114 automatic pointer dcl 2-65 set ref 158* 159 161 163 163 165 168 168 172 175 179 181 184 184 188 190 197 199 201 213 213 218 220 222 227 228 233 235 fiv_descriptor_type based structure level 1 packed unaligned dcl 246 fiv_p_descriptor_string parameter bit(36) dcl 244 set ref 241 254 254 flags 5 based structure array level 3 dcl 2-36 set ref 175* ft_length_of_field_names 000116 automatic fixed bin(17,0) dcl 2-66 set ref 148* 151* 151 158 158 ft_number_of_fields 000117 automatic fixed bin(17,0) dcl 2-68 set ref 147* 149 158 158 158 hbound builtin function dcl 98 ref 179 197 length builtin function dcl 98 ref 151 163 165 length_in_bits 10 based fixed bin(35,0) array level 3 dcl 2-36 set ref 213* 218* 220* 222* 228 length_is_in_characters 5(01) based bit(1) array level 4 packed unaligned dcl 2-36 set ref 184* length_of_field_names 3 based fixed bin(17,0) level 2 dcl 2-36 set ref 158* 159 163 168 168 length_of_name 12 based fixed bin(17,0) array level 3 dcl 2-36 set ref 165* location 7 based fixed bin(35,0) array level 3 dcl 2-36 set ref 227* location_of_first_varying_field 4 based fixed bin(35,0) level 2 dcl 2-36 set ref 233* location_of_name 11 based fixed bin(17,0) array level 3 dcl 2-36 set ref 163* location_of_next_field 000104 automatic fixed bin(35,0) dcl 82 set ref 195* 206 208* 208 227 228* 228 233 236 maximum_dimension_name_length 4 based fixed bin(17,0) level 2 dcl 1-21 ref 151 151 165 165 168 168 172 172 172 myname 000003 constant varying char(32) initial dcl 104 set ref 141* 201* name 6 based varying char array level 3 dcl 1-21 ref 151 165 168 null builtin function dcl 98 ref 141 141 201 201 number_of_dimensions 1 based fixed bin(17,0) level 2 dcl 1-21 ref 147 number_of_fields 2 based fixed bin(17,0) level 2 dcl 2-36 set ref 158* 159 159 161 163 163 168 168 168 168 179 188 190 197 213 p_area_ptr parameter pointer dcl 66 ref 59 138 p_code parameter fixed bin(35,0) dcl 72 set ref 59 139* p_field_table_ptr parameter pointer dcl 69 set ref 59 235* p_maximum_record_length parameter fixed bin(35,0) dcl 70 set ref 59 236* p_typed_vector_array_ptr parameter pointer dcl 67 ref 59 137 position_in_varying_fields 000107 automatic fixed bin(17,0) dcl 86 set ref 178* 187* 187 188 190 string builtin function dcl 98 set ref 175* sub_err_ 000010 constant entry external dcl 124 ref 141 201 type 0(01) based fixed bin(6,0) level 2 in structure "fiv_descriptor_type" packed unsigned unaligned dcl 246 in procedure "FIELD_IS_VARYING" ref 254 254 type 0(01) based fixed bin(6,0) level 2 in structure "ficv_descriptor_type" packed unsigned unaligned dcl 266 in procedure "FIELD_IS_CHARACTER_VARYING" ref 274 typed_vector_array based structure level 1 dcl 1-21 typed_vector_array_ptr 000112 automatic pointer dcl 1-43 set ref 137* 141 141 147 151 165 168 172 varying_field_index based fixed bin(17,0) array level 3 dcl 2-36 set ref 190* 213 varying_field_map based structure array level 2 dcl 2-36 varying_field_portion_length 000105 automatic fixed bin(35,0) dcl 83 set ref 196* 224* 224 236 version based fixed bin(35,0) level 2 in structure "typed_vector_array" dcl 1-21 in procedure "dmu_cv_typed_array_to_table" set ref 141 141* version based char(8) initial level 2 in structure "field_table" dcl 2-36 in procedure "dmu_cv_typed_array_to_table" set ref 158* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 3-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 3-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 3-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 3-7 dimension_idx automatic fixed bin(17,0) dcl 80 field_name based char unaligned dcl 2-71 field_name_length automatic fixed bin(17,0) dcl 2-73 field_name_ptr automatic pointer dcl 2-74 sys_info$max_seg_size external static fixed bin(35,0) dcl 133 tva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 1-48 tva_number_of_dimensions automatic fixed bin(17,0) dcl 1-46 tva_number_of_vector_slots automatic fixed bin(17,0) dcl 1-44 NAMES DECLARED BY EXPLICIT CONTEXT. FIELD_IS_CHARACTER_VARYING 001103 constant entry internal dcl 261 ref 184 FIELD_IS_VARYING 001060 constant entry internal dcl 241 ref 181 SETUP_VARYING_FIELD_MAP 000546 constant label dcl 179 SET_FIELD_LOCATIONS 000651 constant label dcl 197 SET_LENGTH_OF_FIELD_NAMES 000174 constant label dcl 149 SET_NAME_AND_DESCRIPTOR 000310 constant label dcl 161 dmu_cv_typed_array_to_table 000100 constant entry external dcl 59 NAMES DECLARED BY CONTEXT OR IMPLICATION. mod builtin function ref 206 rtrim builtin function ref 151 163 165 168 168 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1212 1230 1123 1222 Length 1464 1123 16 217 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dmu_cv_typed_array_to_table 168 external procedure is an external procedure. FIELD_IS_VARYING internal procedure shares stack frame of external procedure dmu_cv_typed_array_to_table. FIELD_IS_CHARACTER_VARYING internal procedure shares stack frame of external procedure dmu_cv_typed_array_to_table. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dmu_cv_typed_array_to_table 000100 code dmu_cv_typed_array_to_table 000101 alignment dmu_cv_typed_array_to_table 000102 bits_past_alignment_boundary dmu_cv_typed_array_to_table 000103 field_idx dmu_cv_typed_array_to_table 000104 location_of_next_field dmu_cv_typed_array_to_table 000105 varying_field_portion_length dmu_cv_typed_array_to_table 000106 field_length_in_bits dmu_cv_typed_array_to_table 000107 position_in_varying_fields dmu_cv_typed_array_to_table 000110 area_ptr dmu_cv_typed_array_to_table 000112 typed_vector_array_ptr dmu_cv_typed_array_to_table 000114 field_table_ptr dmu_cv_typed_array_to_table 000116 ft_length_of_field_names dmu_cv_typed_array_to_table 000117 ft_number_of_fields dmu_cv_typed_array_to_table 000132 BIT_VARYING FIELD_IS_VARYING 000133 CHAR_VARYING FIELD_IS_VARYING 000142 BIT_VARYING FIELD_IS_CHARACTER_VARYING 000143 CHAR_VARYING FIELD_IS_CHARACTER_VARYING THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return mpfx2 mod_fx3 shorten_stack ext_entry alloc_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dmu_get_data_bit_length$alignment sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version CONSTANTS 000000 aa 106 154 144 124 FldT 000001 aa 142 154 040 063 bl 3 000002 aa 001747777027 000003 aa 000000000033 000004 aa 144 155 165 137 dmu_ 000005 aa 143 166 137 164 cv_t 000006 aa 171 160 145 144 yped 000007 aa 137 141 162 162 _arr 000010 aa 141 171 137 164 ay_t 000011 aa 157 137 164 141 o_ta 000012 aa 142 154 145 040 ble 000013 aa 040 040 040 040 000014 aa 400000000000 000015 aa 524000000071 000016 aa 524000000120 000017 aa 404000000005 000020 aa 514000000044 000021 aa 530000000040 000022 aa 514000000001 000023 aa 404000000043 000024 aa 000000000002 000025 aa 464000000000 000026 aa 077777000043 000027 aa 000001000000 000030 aa 136 057 103 157 ^/Co 000031 aa 165 154 144 040 uld 000032 aa 156 157 164 040 not 000033 aa 147 145 164 040 get 000034 aa 142 151 164 055 bit- 000035 aa 154 145 156 147 leng 000036 aa 164 150 040 157 th o 000037 aa 146 040 146 151 f fi 000040 aa 154 145 144 040 led 000041 aa 167 151 164 150 with 000042 aa 040 144 145 163 des 000043 aa 143 162 151 160 crip 000044 aa 164 157 162 040 tor 000045 aa 136 063 142 157 ^3bo 000046 aa 056 000 000 000 . 000047 aa 136 057 105 170 ^/Ex 000050 aa 160 145 143 164 pect 000051 aa 151 156 147 040 ing 000052 aa 166 145 162 163 vers 000053 aa 151 157 156 040 ion 000054 aa 136 144 040 157 ^d o 000055 aa 146 040 164 150 f th 000056 aa 145 040 164 171 e ty 000057 aa 160 145 144 137 ped_ 000060 aa 166 145 143 164 vect 000061 aa 157 162 137 141 or_a 000062 aa 162 162 141 171 rray 000063 aa 040 163 164 162 str 000064 aa 165 143 164 165 uctu 000065 aa 162 145 054 040 re, 000066 aa 162 145 143 145 rece 000067 aa 151 166 145 144 ived 000070 aa 040 166 145 162 ver 000071 aa 163 151 157 156 sion 000072 aa 040 136 144 056 ^d. BEGIN PROCEDURE dmu_cv_typed_array_to_table ENTRY TO dmu_cv_typed_array_to_table STATEMENT 1 ON LINE 59 dmu_cv_typed_array_to_table: proc (p_typed_vector_array_ptr, p_area_ptr, p_field_table_ptr, p_maximum_record_length, p_code); 000073 at 000005000025 000074 tt 000025000025 000075 tt 000023000023 000076 ta 000073000000 000077 da 000063300000 000100 aa 000260 6270 00 eax7 176 000101 aa 7 00034 3521 20 epp2 pr7|28,* 000102 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000103 aa 000012000000 000104 aa 000000000000 STATEMENT 1 ON LINE 137 typed_vector_array_ptr = p_typed_vector_array_ptr; 000105 aa 6 00032 3735 20 epp7 pr6|26,* 000106 aa 7 00002 3715 20 epp5 pr7|2,* p_typed_vector_array_ptr 000107 aa 5 00000 3715 20 epp5 pr5|0,* p_typed_vector_array_ptr 000110 aa 6 00112 6515 00 spri5 pr6|74 typed_vector_array_ptr STATEMENT 1 ON LINE 138 area_ptr = p_area_ptr; 000111 aa 7 00004 3535 20 epp3 pr7|4,* p_area_ptr 000112 aa 3 00000 3535 20 epp3 pr3|0,* p_area_ptr 000113 aa 6 00110 2535 00 spri3 pr6|72 area_ptr STATEMENT 1 ON LINE 139 p_code = 0; 000114 aa 7 00012 4501 20 stz pr7|10,* p_code STATEMENT 1 ON LINE 141 if typed_vector_array.version ^= TYPED_VECTOR_ARRAY_VERSION_2 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, "^/Expecting version ^d of the typed_vector_array structure, received version ^d." , TYPED_VECTOR_ARRAY_VERSION_2, typed_vector_array.version); 000115 aa 5 00000 2361 00 ldq pr5|0 typed_vector_array.version 000116 aa 000002 1160 07 cmpq 2,dl 000117 aa 000051 6000 04 tze 41,ic 000170 000120 aa 777706 3514 24 epp1 -58,ic* 000121 aa 6 00144 2515 00 spri1 pr6|100 000122 aa 6 00146 4501 00 stz pr6|102 000123 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000124 aa 777724 00 0120 desc9a -44,80 000047 = 136057105170 000125 aa 6 00150 00 0120 desc9a pr6|104,80 000126 la 4 00014 3521 20 epp2 pr4|12,* error_table_$unimplemented_version 000127 aa 6 00176 2521 00 spri2 pr6|126 000130 aa 777654 3520 04 epp2 -84,ic 000004 = 144155165137 000131 aa 6 00200 2521 00 spri2 pr6|128 000132 aa 777662 3520 04 epp2 -78,ic 000014 = 400000000000 000133 aa 6 00202 2521 00 spri2 pr6|130 000134 aa 6 00144 3521 00 epp2 pr6|100 000135 aa 6 00204 2521 00 spri2 pr6|132 000136 aa 6 00146 3521 00 epp2 pr6|102 000137 aa 6 00206 2521 00 spri2 pr6|134 000140 aa 6 00150 3521 00 epp2 pr6|104 000141 aa 6 00210 2521 00 spri2 pr6|136 000142 aa 777662 3520 04 epp2 -78,ic 000024 = 000000000002 000143 aa 6 00212 2521 00 spri2 pr6|138 000144 aa 5 00000 3521 00 epp2 pr5|0 typed_vector_array.version 000145 aa 6 00214 2521 00 spri2 pr6|140 000146 aa 777655 3520 04 epp2 -83,ic 000023 = 404000000043 000147 aa 6 00216 2521 00 spri2 pr6|142 000150 aa 6 00232 2521 00 spri2 pr6|154 000151 aa 6 00234 2521 00 spri2 pr6|156 000152 aa 777647 3520 04 epp2 -89,ic 000021 = 530000000040 000153 aa 6 00220 2521 00 spri2 pr6|144 000154 aa 777644 3520 04 epp2 -92,ic 000020 = 514000000044 000155 aa 6 00222 2521 00 spri2 pr6|146 000156 aa 777647 3520 04 epp2 -89,ic 000025 = 464000000000 000157 aa 6 00224 2521 00 spri2 pr6|148 000160 aa 777637 3520 04 epp2 -97,ic 000017 = 404000000005 000161 aa 6 00226 2521 00 spri2 pr6|150 000162 aa 777634 3520 04 epp2 -100,ic 000016 = 524000000120 000163 aa 6 00230 2521 00 spri2 pr6|152 000164 aa 6 00174 6211 00 eax1 pr6|124 000165 aa 040000 4310 07 fld 16384,dl 000166 la 4 00010 3521 20 epp2 pr4|8,* sub_err_ 000167 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 147 ft_number_of_fields = typed_vector_array.number_of_dimensions; 000170 aa 6 00112 3735 20 epp7 pr6|74,* typed_vector_array_ptr 000171 aa 7 00001 2361 00 ldq pr7|1 typed_vector_array.number_of_dimensions 000172 aa 6 00117 7561 00 stq pr6|79 ft_number_of_fields STATEMENT 1 ON LINE 148 ft_length_of_field_names = 0; 000173 aa 6 00116 4501 00 stz pr6|78 ft_length_of_field_names STATEMENT 1 ON LINE 149 SET_LENGTH_OF_FIELD_NAMES: do field_idx = 1 to ft_number_of_fields; 000174 aa 6 00120 7561 00 stq pr6|80 000175 aa 000001 2360 07 ldq 1,dl 000176 aa 6 00103 7561 00 stq pr6|67 field_idx 000177 aa 000000 0110 03 nop 0,du 000200 aa 6 00103 2361 00 ldq pr6|67 field_idx 000201 aa 6 00120 1161 00 cmpq pr6|80 000202 aa 000043 6054 04 tpnz 35,ic 000245 STATEMENT 1 ON LINE 151 ft_length_of_field_names = ft_length_of_field_names + length ( rtrim (typed_vector_array.dimension_table (field_idx).name)); 000203 aa 6 00103 3361 00 lcq pr6|67 field_idx 000204 aa 000044 7770 00 llr 36 000205 aa 000044 7330 00 lrs 36 000206 aa 000001 0330 07 adl 1,dl 000207 aa 000000 5330 00 negl 0 000210 aa 6 00144 7571 00 staq pr6|100 000211 aa 6 00112 3735 20 epp7 pr6|74,* typed_vector_array_ptr 000212 aa 7 00004 2361 00 ldq pr7|4 typed_vector_array.maximum_dimension_name_length 000213 aa 000003 0760 07 adq 3,dl 000214 aa 000002 7320 00 qrs 2 000215 aa 000001 0760 07 adq 1,dl 000216 aa 000001 0760 07 adq 1,dl 000217 aa 777776 3760 07 anq 262142,dl 000220 aa 000012 0760 07 adq 10,dl 000221 aa 000001 0760 07 adq 1,dl 000222 aa 777776 3760 07 anq 262142,dl 000223 aa 6 00144 3521 00 epp2 pr6|100 000224 aa 0 00671 7001 00 tsx0 pr0|441 mpfx2 000225 aa 7 00007 3715 06 epp5 pr7|7,ql typed_vector_array.name 000226 aa 5 77777 2351 00 lda pr5|-1 typed_vector_array.name 000227 aa 6 00146 7561 00 stq pr6|102 000230 aa 000 000 165 540 tctr (pr,rl) 000231 aa 5 00000 00 0005 desc9a pr5|0,al typed_vector_array.name 000232 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000233 aa 6 00056 0001 00 arg pr6|46 000234 aa 6 00056 2361 00 ldq pr6|46 000235 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000236 aa 6 00147 7561 00 stq pr6|103 000237 aa 6 00146 7271 00 lxl7 pr6|102 000240 aa 7 00006 2361 17 ldq pr7|6,7 typed_vector_array.name 000241 aa 6 00147 1761 00 sbq pr6|103 000242 aa 6 00116 0561 00 asq pr6|78 ft_length_of_field_names STATEMENT 1 ON LINE 156 end SET_LENGTH_OF_FIELD_NAMES; 000243 aa 6 00103 0541 00 aos pr6|67 field_idx 000244 aa 777734 7100 04 tra -36,ic 000200 STATEMENT 1 ON LINE 158 alloc field_table in (area); 000245 aa 6 00116 2361 00 ldq pr6|78 ft_length_of_field_names 000246 aa 000003 0760 07 adq 3,dl 000247 aa 000002 7320 00 qrs 2 000250 aa 6 00147 7561 00 stq pr6|103 000251 aa 6 00117 2361 00 ldq pr6|79 ft_number_of_fields 000252 aa 000001 7360 00 qls 1 000253 aa 6 00236 7561 00 stq pr6|158 000254 aa 6 00117 2361 00 ldq pr6|79 ft_number_of_fields 000255 aa 000006 4020 07 mpy 6,dl 000256 aa 000005 0760 07 adq 5,dl 000257 aa 6 00236 0761 00 adq pr6|158 000260 aa 6 00147 0761 00 adq pr6|103 000261 aa 6 00110 3521 20 epp2 pr6|72,* area 000262 aa 0 01402 7001 00 tsx0 pr0|770 alloc_based 000263 aa 777762 7100 04 tra -14,ic 000245 000264 aa 6 00114 2521 00 spri2 pr6|76 field_table_ptr 000265 aa 777513 2370 04 ldaq -181,ic 000000 = 106154144124 142154040063 000266 aa 2 00000 7551 00 sta pr2|0 field_table.version 000267 aa 2 00001 7561 00 stq pr2|1 field_table.version 000270 aa 6 00117 2361 00 ldq pr6|79 ft_number_of_fields 000271 aa 2 00002 7561 00 stq pr2|2 field_table.number_of_fields 000272 aa 6 00116 2361 00 ldq pr6|78 ft_length_of_field_names 000273 aa 2 00003 7561 00 stq pr2|3 field_table.length_of_field_names STATEMENT 1 ON LINE 159 field_table.field_names = ""; 000274 aa 2 00002 2361 00 ldq pr2|2 field_table.number_of_fields 000275 aa 000001 7360 00 qls 1 000276 aa 6 00147 7561 00 stq pr6|103 000277 aa 2 00002 2361 00 ldq pr2|2 field_table.number_of_fields 000300 aa 000006 4020 07 mpy 6,dl 000301 aa 000005 0760 07 adq 5,dl 000302 aa 6 00147 0761 00 adq pr6|103 000303 aa 2 00000 3735 06 epp7 pr2|0,ql field_table.field_names 000304 aa 2 00003 7271 00 lxl7 pr2|3 field_table.length_of_field_names 000305 aa 040 140 100 400 mlr (),(pr,rl),fill(040) 000306 aa 000000 00 0000 desc9a 0,0 000307 aa 7 00000 00 0017 desc9a pr7|0,x7 field_table.field_names STATEMENT 1 ON LINE 161 SET_NAME_AND_DESCRIPTOR: do field_idx = 1 to field_table.number_of_fields; 000310 aa 2 00002 2361 00 ldq pr2|2 field_table.number_of_fields 000311 aa 6 00121 7561 00 stq pr6|81 000312 aa 000001 2360 07 ldq 1,dl 000313 aa 6 00103 7561 00 stq pr6|67 field_idx 000314 aa 6 00103 2361 00 ldq pr6|67 field_idx 000315 aa 6 00121 1161 00 cmpq pr6|81 000316 aa 000227 6054 04 tpnz 151,ic 000545 STATEMENT 1 ON LINE 163 field_table.field (field_idx).location_of_name = length (rtrim (field_table.field_names)) + 1; 000317 aa 000006 4020 07 mpy 6,dl 000320 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 000321 aa 000000 6260 06 eax6 0,ql 000322 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000323 aa 000001 7360 00 qls 1 000324 aa 6 00236 7561 00 stq pr6|158 000325 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000326 aa 000006 4020 07 mpy 6,dl 000327 aa 000005 0760 07 adq 5,dl 000330 aa 6 00236 0761 00 adq pr6|158 000331 aa 7 00000 3715 06 epp5 pr7|0,ql field_table.field_names 000332 aa 7 00003 7271 00 lxl7 pr7|3 field_table.length_of_field_names 000333 aa 6 00236 7561 00 stq pr6|158 000334 aa 000 000 165 540 tctr (pr,rl) 000335 aa 5 00000 00 0017 desc9a pr5|0,x7 field_table.field_names 000336 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000337 aa 6 00056 0001 00 arg pr6|46 000340 aa 6 00056 2361 00 ldq pr6|46 000341 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000342 aa 6 00237 7561 00 stq pr6|159 000343 aa 7 00003 2361 00 ldq pr7|3 field_table.length_of_field_names 000344 aa 6 00237 1761 00 sbq pr6|159 000345 aa 000001 0760 07 adq 1,dl 000346 aa 7 00003 7561 16 stq pr7|3,6 field_table.location_of_name STATEMENT 1 ON LINE 165 field_table.field (field_idx).length_of_name = length ( rtrim (typed_vector_array.dimension_table (field_idx).name)); 000347 aa 6 00103 3361 00 lcq pr6|67 field_idx 000350 aa 000044 7770 00 llr 36 000351 aa 000044 7330 00 lrs 36 000352 aa 000001 0330 07 adl 1,dl 000353 aa 000000 5330 00 negl 0 000354 aa 6 00144 7571 00 staq pr6|100 000355 aa 6 00112 3535 20 epp3 pr6|74,* typed_vector_array_ptr 000356 aa 3 00004 2361 00 ldq pr3|4 typed_vector_array.maximum_dimension_name_length 000357 aa 000003 0760 07 adq 3,dl 000360 aa 000002 7320 00 qrs 2 000361 aa 000001 0760 07 adq 1,dl 000362 aa 000001 0760 07 adq 1,dl 000363 aa 777776 3760 07 anq 262142,dl 000364 aa 000012 0760 07 adq 10,dl 000365 aa 000001 0760 07 adq 1,dl 000366 aa 777776 3760 07 anq 262142,dl 000367 aa 6 00144 3521 00 epp2 pr6|100 000370 aa 0 00671 7001 00 tsx0 pr0|441 mpfx2 000371 aa 3 00007 3515 06 epp1 pr3|7,ql typed_vector_array.name 000372 aa 1 77777 2351 00 lda pr1|-1 typed_vector_array.name 000373 aa 6 00147 7561 00 stq pr6|103 000374 aa 000 000 165 540 tctr (pr,rl) 000375 aa 1 00000 00 0005 desc9a pr1|0,al typed_vector_array.name 000376 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000377 aa 6 00056 0001 00 arg pr6|46 000400 aa 6 00056 2361 00 ldq pr6|46 000401 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000402 aa 6 00237 7561 00 stq pr6|159 000403 aa 6 00147 7251 00 lxl5 pr6|103 000404 aa 3 00006 2361 15 ldq pr3|6,5 typed_vector_array.name 000405 aa 6 00237 1761 00 sbq pr6|159 000406 aa 7 00004 7561 16 stq pr7|4,6 field_table.length_of_name STATEMENT 1 ON LINE 168 field_table.field_names = rtrim (field_table.field_names) || rtrim (typed_vector_array.dimension_table (field_idx).name); 000407 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000410 aa 000001 7360 00 qls 1 000411 aa 6 00237 7561 00 stq pr6|159 000412 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000413 aa 000006 4020 07 mpy 6,dl 000414 aa 000005 0760 07 adq 5,dl 000415 aa 6 00237 0761 00 adq pr6|159 000416 aa 000000 6220 06 eax2 0,ql 000417 aa 3 00004 2361 00 ldq pr3|4 typed_vector_array.maximum_dimension_name_length 000420 aa 000003 0760 07 adq 3,dl 000421 aa 000002 7320 00 qrs 2 000422 aa 000001 0760 07 adq 1,dl 000423 aa 000001 0760 07 adq 1,dl 000424 aa 777776 3760 07 anq 262142,dl 000425 aa 6 00240 7561 00 stq pr6|160 000426 aa 000012 0760 07 adq 10,dl 000427 aa 000001 0760 07 adq 1,dl 000430 aa 777776 3760 07 anq 262142,dl 000431 aa 6 00241 7561 00 stq pr6|161 000432 aa 0 00671 7001 00 tsx0 pr0|441 mpfx2 000433 aa 3 00007 3715 06 epp5 pr3|7,ql typed_vector_array.name 000434 aa 5 77777 2351 00 lda pr5|-1 typed_vector_array.name 000435 aa 6 00242 7561 00 stq pr6|162 000436 aa 000 000 165 540 tctr (pr,rl) 000437 aa 5 00000 00 0005 desc9a pr5|0,al typed_vector_array.name 000440 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000441 aa 6 00056 0001 00 arg pr6|46 000442 aa 6 00056 2361 00 ldq pr6|46 000443 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000444 aa 6 00243 7561 00 stq pr6|163 000445 aa 6 00242 7241 00 lxl4 pr6|162 000446 aa 3 00006 2361 14 ldq pr3|6,4 typed_vector_array.name 000447 aa 6 00243 1761 00 sbq pr6|163 000450 aa 6 00243 7561 00 stq pr6|163 000451 aa 6 00242 2361 00 ldq pr6|162 000452 aa 000002 7360 00 qls 2 000453 aa 6 00242 7561 00 stq pr6|162 000454 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000455 aa 000001 7360 00 qls 1 000456 aa 6 00244 7561 00 stq pr6|164 000457 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000460 aa 000006 4020 07 mpy 6,dl 000461 aa 000005 0760 07 adq 5,dl 000462 aa 6 00244 0761 00 adq pr6|164 000463 aa 7 00000 3515 06 epp1 pr7|0,ql field_table.field_names 000464 aa 7 00003 7231 00 lxl3 pr7|3 field_table.length_of_field_names 000465 aa 6 00244 7561 00 stq pr6|164 000466 aa 000 000 165 540 tctr (pr,rl) 000467 aa 1 00000 00 0013 desc9a pr1|0,x3 field_table.field_names 000470 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 000471 aa 6 00056 0001 00 arg pr6|46 000472 aa 6 00056 2361 00 ldq pr6|46 000473 aa 0 00242 3761 00 anq pr0|162 = 000777777777 000474 aa 6 00245 7561 00 stq pr6|165 000475 aa 7 00003 2361 00 ldq pr7|3 field_table.length_of_field_names 000476 aa 6 00245 1761 00 sbq pr6|165 000477 aa 6 00245 7561 00 stq pr6|165 000500 aa 6 00244 2361 00 ldq pr6|164 000501 aa 000002 7360 00 qls 2 000502 aa 6 00244 7561 00 stq pr6|164 000503 aa 6 00245 2361 00 ldq pr6|165 000504 aa 6 00243 0761 00 adq pr6|163 000505 aa 0 00551 7001 00 tsx0 pr0|361 alloc_cs 000506 aa 6 00244 2351 00 lda pr6|164 000507 aa 6 00246 7561 00 stq pr6|166 000510 aa 6 00245 2361 00 ldq pr6|165 000511 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 000512 aa 7 00000 00 0006 desc9a pr7|0,ql field_table.field_names 000513 aa 2 00000 00 0006 desc9a pr2|0,ql 000514 aa 6 00242 2351 00 lda pr6|162 000515 aa 3 00007 3715 00 epp5 pr3|7 typed_vector_array.name 000516 aa 5 00000 5005 05 a9bd pr5|0,al 000517 aa 6 00243 2351 00 lda pr6|163 000520 aa 040 146 100 540 mlr (pr,rl),(pr,rl,ql),fill(040) 000521 aa 5 00000 00 0005 desc9a pr5|0,al typed_vector_array.name 000522 aa 2 00000 00 0005 desc9a pr2|0,al 000523 aa 7 00000 3515 12 epp1 pr7|0,2 field_table.field_names 000524 aa 6 00246 2361 00 ldq pr6|166 000525 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000526 aa 2 00000 00 0006 desc9a pr2|0,ql 000527 aa 1 00000 00 0013 desc9a pr1|0,x3 field_table.field_names STATEMENT 1 ON LINE 172 field_table.field (field_idx).descriptor = typed_vector_array.dimension_table (field_idx).descriptor_ptr -> descriptor_string; 000530 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000531 aa 6 00241 2361 00 ldq pr6|161 000532 aa 6 00103 4021 00 mpy pr6|67 field_idx 000533 aa 6 00241 1761 00 sbq pr6|161 000534 aa 6 00241 7561 00 stq pr6|161 000535 aa 6 00240 2361 00 ldq pr6|160 000536 aa 000006 0760 07 adq 6,dl 000537 aa 6 00241 0761 00 adq pr6|161 000540 aa 3 00000 2351 26 lda pr3|0,ql* descriptor_string 000541 aa 7 00000 7551 16 sta pr7|0,6 field_table.descriptor STATEMENT 1 ON LINE 175 string (field_table.field (field_idx).flags) = "0"b; 000542 aa 7 77777 4501 16 stz pr7|-1,6 STATEMENT 1 ON LINE 176 end SET_NAME_AND_DESCRIPTOR; 000543 aa 6 00103 0541 00 aos pr6|67 field_idx 000544 aa 777550 7100 04 tra -152,ic 000314 STATEMENT 1 ON LINE 178 position_in_varying_fields = 0; 000545 aa 6 00107 4501 00 stz pr6|71 position_in_varying_fields STATEMENT 1 ON LINE 179 SETUP_VARYING_FIELD_MAP: do field_idx = 1 to hbound (field_table.field, 1); 000546 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 000547 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000550 aa 6 00122 7561 00 stq pr6|82 000551 aa 000001 2360 07 ldq 1,dl 000552 aa 6 00103 7561 00 stq pr6|67 field_idx 000553 aa 000000 0110 03 nop 0,du 000554 aa 6 00103 2361 00 ldq pr6|67 field_idx 000555 aa 6 00122 1161 00 cmpq pr6|82 000556 aa 000070 6054 04 tpnz 56,ic 000646 STATEMENT 1 ON LINE 181 if FIELD_IS_VARYING (field_table.field (field_idx).descriptor) then do; 000557 aa 000006 4020 07 mpy 6,dl 000560 aa 6 00114 3521 66 epp2 pr6|76,*ql field_table.descriptor 000561 aa 6 00152 2521 00 spri2 pr6|106 000562 aa 6 00241 3521 00 epp2 pr6|161 000563 aa 6 00154 2521 00 spri2 pr6|108 000564 aa 6 00150 3521 00 epp2 pr6|104 000565 aa 010000 4310 07 fld 4096,dl 000566 aa 2 00000 7571 00 staq pr2|0 000567 aa 000271 6700 04 tsp4 185,ic 001060 000570 aa 6 00241 2351 00 lda pr6|161 000571 aa 400000 3150 03 cana 131072,du 000572 aa 000052 6000 04 tze 42,ic 000644 STATEMENT 1 ON LINE 184 field_table.field (field_idx).flags.length_is_in_characters = FIELD_IS_CHARACTER_VARYING (field_table.field (field_idx) .descriptor); 000573 aa 6 00103 2361 00 ldq pr6|67 field_idx 000574 aa 000006 4020 07 mpy 6,dl 000575 aa 6 00241 7561 00 stq pr6|161 000576 aa 6 00103 2361 00 ldq pr6|67 field_idx 000577 aa 000006 4020 07 mpy 6,dl 000600 aa 6 00114 3521 66 epp2 pr6|76,*ql field_table.descriptor 000601 aa 6 00152 2521 00 spri2 pr6|106 000602 aa 6 00240 3521 00 epp2 pr6|160 000603 aa 6 00154 2521 00 spri2 pr6|108 000604 aa 6 00150 3521 00 epp2 pr6|104 000605 aa 010000 4310 07 fld 4096,dl 000606 aa 2 00000 7571 00 staq pr2|0 000607 aa 000274 6700 04 tsp4 188,ic 001103 000610 aa 6 00240 2351 00 lda pr6|160 000611 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 000612 aa 000001 7730 00 lrl 1 000613 aa 6 00241 7271 00 lxl7 pr6|161 000614 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 000615 aa 7 77777 6751 17 era pr7|-1,7 field_table.length_is_in_characters 000616 aa 200000 3750 03 ana 65536,du 000617 aa 7 77777 6551 17 ersa pr7|-1,7 field_table.length_is_in_characters STATEMENT 1 ON LINE 187 position_in_varying_fields = position_in_varying_fields + 1; 000620 aa 6 00107 0541 00 aos pr6|71 position_in_varying_fields STATEMENT 1 ON LINE 188 field_table.varying_field_map (position_in_varying_fields) .field_id = field_idx; 000621 aa 6 00107 2361 00 ldq pr6|71 position_in_varying_fields 000622 aa 000001 7360 00 qls 1 000623 aa 6 00241 7561 00 stq pr6|161 000624 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000625 aa 000006 4020 07 mpy 6,dl 000626 aa 000005 0760 07 adq 5,dl 000627 aa 6 00241 0761 00 adq pr6|161 000630 aa 000000 6260 06 eax6 0,ql 000631 aa 6 00103 2361 00 ldq pr6|67 field_idx 000632 aa 7 77776 7561 16 stq pr7|-2,6 field_table.field_id STATEMENT 1 ON LINE 190 field_table.varying_field_map (field_idx).varying_field_index = position_in_varying_fields; 000633 aa 000001 7360 00 qls 1 000634 aa 6 00241 7561 00 stq pr6|161 000635 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000636 aa 000006 4020 07 mpy 6,dl 000637 aa 000006 0760 07 adq 6,dl 000640 aa 6 00241 0761 00 adq pr6|161 000641 aa 000000 6250 06 eax5 0,ql 000642 aa 6 00107 2361 00 ldq pr6|71 position_in_varying_fields 000643 aa 7 77776 7561 15 stq pr7|-2,5 field_table.varying_field_index STATEMENT 1 ON LINE 192 end; STATEMENT 1 ON LINE 193 end SETUP_VARYING_FIELD_MAP; 000644 aa 6 00103 0541 00 aos pr6|67 field_idx 000645 aa 777707 7100 04 tra -57,ic 000554 STATEMENT 1 ON LINE 195 location_of_next_field = 1; 000646 aa 000001 2360 07 ldq 1,dl 000647 aa 6 00104 7561 00 stq pr6|68 location_of_next_field STATEMENT 1 ON LINE 196 varying_field_portion_length = 0; 000650 aa 6 00105 4501 00 stz pr6|69 varying_field_portion_length STATEMENT 1 ON LINE 197 SET_FIELD_LOCATIONS: do field_idx = 1 to hbound (field_table.field, 1); 000651 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 000652 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000653 aa 6 00123 7561 00 stq pr6|83 000654 aa 000001 2360 07 ldq 1,dl 000655 aa 6 00103 7561 00 stq pr6|67 field_idx 000656 aa 6 00103 2361 00 ldq pr6|67 field_idx 000657 aa 6 00123 1161 00 cmpq pr6|83 000660 aa 000166 6054 04 tpnz 118,ic 001046 STATEMENT 1 ON LINE 199 call dmu_get_data_bit_length$alignment (field_table.field (field_idx) .descriptor, field_length_in_bits, alignment, code); 000661 aa 000006 4020 07 mpy 6,dl 000662 aa 6 00114 3521 66 epp2 pr6|76,*ql field_table.descriptor 000663 aa 6 00152 2521 00 spri2 pr6|106 000664 aa 6 00106 3521 00 epp2 pr6|70 field_length_in_bits 000665 aa 6 00154 2521 00 spri2 pr6|108 000666 aa 6 00101 3521 00 epp2 pr6|65 alignment 000667 aa 6 00156 2521 00 spri2 pr6|110 000670 aa 6 00100 3521 00 epp2 pr6|64 code 000671 aa 6 00160 2521 00 spri2 pr6|112 000672 aa 6 00241 7561 00 stq pr6|161 000673 aa 6 00150 6211 00 eax1 pr6|104 000674 aa 020000 4310 07 fld 8192,dl 000675 aa 6 00044 3701 20 epp4 pr6|36,* 000676 la 4 00012 3521 20 epp2 pr4|10,* dmu_get_data_bit_length$alignment 000677 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 201 if code ^= 0 then call sub_err_ (code, myname, ACTION_CANT_RESTART, null, 0, "^/Could not get bit-length of filed with descriptor ^3bo.", field_table.field (field_idx).descriptor); 000700 aa 6 00100 2361 00 ldq pr6|64 code 000701 aa 000053 6000 04 tze 43,ic 000754 000702 aa 777116 2360 04 ldq -434,ic 000020 = 514000000044 000703 aa 6 00240 7561 00 stq pr6|160 000704 aa 777122 3734 24 epp7 -430,ic* 000705 aa 6 00144 6535 00 spri7 pr6|100 000706 aa 6 00246 4501 00 stz pr6|166 000707 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000710 aa 777121 00 0074 desc9a -431,60 000030 = 136057103157 000711 aa 6 00150 00 0074 desc9a pr6|104,60 000712 aa 6 00100 3521 00 epp2 pr6|64 code 000713 aa 6 00176 2521 00 spri2 pr6|126 000714 aa 777070 3520 04 epp2 -456,ic 000004 = 144155165137 000715 aa 6 00200 2521 00 spri2 pr6|128 000716 aa 777076 3520 04 epp2 -450,ic 000014 = 400000000000 000717 aa 6 00202 2521 00 spri2 pr6|130 000720 aa 6 00144 3521 00 epp2 pr6|100 000721 aa 6 00204 2521 00 spri2 pr6|132 000722 aa 6 00246 3521 00 epp2 pr6|166 000723 aa 6 00206 2521 00 spri2 pr6|134 000724 aa 6 00150 3521 00 epp2 pr6|104 000725 aa 6 00210 2521 00 spri2 pr6|136 000726 aa 6 00241 7271 00 lxl7 pr6|161 000727 aa 6 00114 3521 77 epp2 pr6|76,*7 field_table.descriptor 000730 aa 6 00212 2521 00 spri2 pr6|138 000731 aa 777072 3520 04 epp2 -454,ic 000023 = 404000000043 000732 aa 6 00214 2521 00 spri2 pr6|140 000733 aa 777066 3520 04 epp2 -458,ic 000021 = 530000000040 000734 aa 6 00216 2521 00 spri2 pr6|142 000735 aa 777063 3520 04 epp2 -461,ic 000020 = 514000000044 000736 aa 6 00220 2521 00 spri2 pr6|144 000737 aa 777066 3520 04 epp2 -458,ic 000025 = 464000000000 000740 aa 6 00222 2521 00 spri2 pr6|146 000741 aa 777056 3520 04 epp2 -466,ic 000017 = 404000000005 000742 aa 6 00224 2521 00 spri2 pr6|148 000743 aa 777052 3520 04 epp2 -470,ic 000015 = 524000000071 000744 aa 6 00226 2521 00 spri2 pr6|150 000745 aa 6 00240 3521 00 epp2 pr6|160 000746 aa 6 00230 2521 00 spri2 pr6|152 000747 aa 6 00174 6211 00 eax1 pr6|124 000750 aa 034000 4310 07 fld 14336,dl 000751 aa 6 00044 3701 20 epp4 pr6|36,* 000752 la 4 00010 3521 20 epp2 pr4|8,* sub_err_ 000753 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 206 bits_past_alignment_boundary = mod (location_of_next_field - 1, alignment); 000754 aa 6 00104 3361 00 lcq pr6|68 location_of_next_field 000755 aa 000044 7770 00 llr 36 000756 aa 000044 7330 00 lrs 36 000757 aa 000001 0330 07 adl 1,dl 000760 aa 000000 5330 00 negl 0 000761 aa 6 00101 3521 00 epp2 pr6|65 alignment 000762 aa 0 00706 7001 00 tsx0 pr0|454 mod_fx3 000763 aa 6 00102 7561 00 stq pr6|66 bits_past_alignment_boundary STATEMENT 1 ON LINE 208 if bits_past_alignment_boundary > 0 then location_of_next_field = location_of_next_field + alignment - bits_past_alignment_boundary; 000764 aa 000010 6044 04 tmoz 8,ic 000774 000765 aa 6 00104 2351 00 lda pr6|68 location_of_next_field 000766 aa 000044 7330 00 lrs 36 000767 aa 2 00000 0331 00 adl pr2|0 alignment 000770 aa 000000 5330 00 negl 0 000771 aa 6 00102 0331 00 adl pr6|66 bits_past_alignment_boundary 000772 aa 000000 5330 00 negl 0 000773 aa 6 00104 7561 00 stq pr6|68 location_of_next_field STATEMENT 1 ON LINE 213 if field_table.varying_field_map (field_idx).varying_field_index = 0 then field_table.field (field_idx).length_in_bits = field_length_in_bits; 000774 aa 6 00103 2361 00 ldq pr6|67 field_idx 000775 aa 000001 7360 00 qls 1 000776 aa 6 00240 7561 00 stq pr6|160 000777 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 001000 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 001001 aa 000006 4020 07 mpy 6,dl 001002 aa 000006 0760 07 adq 6,dl 001003 aa 6 00240 0761 00 adq pr6|160 001004 aa 7 77776 2361 06 ldq pr7|-2,ql field_table.varying_field_index 001005 aa 000005 6010 04 tnz 5,ic 001012 001006 aa 6 00106 2361 00 ldq pr6|70 field_length_in_bits 001007 aa 6 00241 7271 00 lxl7 pr6|161 001010 aa 7 00002 7561 17 stq pr7|2,7 field_table.length_in_bits 001011 aa 000025 7100 04 tra 21,ic 001036 STATEMENT 1 ON LINE 216 else do; STATEMENT 1 ON LINE 218 if field_length_in_bits < MAXIMUM_LENGTH_HELD_IN_ONE_BYTE then field_table.field (field_idx).length_in_bits = ONE_BYTE; 001012 aa 6 00106 2361 00 ldq pr6|70 field_length_in_bits 001013 aa 000777 1160 07 cmpq 511,dl 001014 aa 000005 6050 04 tpl 5,ic 001021 001015 aa 000011 2360 07 ldq 9,dl 001016 aa 6 00241 7271 00 lxl7 pr6|161 001017 aa 7 00002 7561 17 stq pr7|2,7 field_table.length_in_bits 001020 aa 000012 7100 04 tra 10,ic 001032 STATEMENT 1 ON LINE 220 else if field_length_in_bits < MAXIMUM_LENGTH_HELD_IN_TWO_BYTES then field_table.field (field_idx).length_in_bits = TWO_BYTES; 001021 aa 776761 1160 04 cmpq -527,ic 000002 = 001747777027 001022 aa 000005 6050 04 tpl 5,ic 001027 001023 aa 000022 2360 07 ldq 18,dl 001024 aa 6 00241 7271 00 lxl7 pr6|161 001025 aa 7 00002 7561 17 stq pr7|2,7 field_table.length_in_bits 001026 aa 000004 7100 04 tra 4,ic 001032 STATEMENT 1 ON LINE 222 else field_table.field (field_idx).length_in_bits = FOUR_BYTES; 001027 aa 000044 2360 07 ldq 36,dl 001030 aa 6 00241 7271 00 lxl7 pr6|161 001031 aa 7 00002 7561 17 stq pr7|2,7 field_table.length_in_bits STATEMENT 1 ON LINE 224 varying_field_portion_length = varying_field_portion_length + field_length_in_bits; 001032 aa 6 00105 2351 00 lda pr6|69 varying_field_portion_length 001033 aa 000044 7330 00 lrs 36 001034 aa 6 00106 0331 00 adl pr6|70 field_length_in_bits 001035 aa 6 00105 7561 00 stq pr6|69 varying_field_portion_length STATEMENT 1 ON LINE 226 end; STATEMENT 1 ON LINE 227 field_table.field (field_idx).location = location_of_next_field; 001036 aa 6 00104 2361 00 ldq pr6|68 location_of_next_field 001037 aa 7 00001 7561 17 stq pr7|1,7 field_table.location STATEMENT 1 ON LINE 228 location_of_next_field = location_of_next_field + field_table.field (field_idx).length_in_bits; 001040 aa 000044 7770 00 llr 36 001041 aa 000044 7330 00 lrs 36 001042 aa 7 00002 0331 17 adl pr7|2,7 field_table.length_in_bits 001043 aa 6 00104 7561 00 stq pr6|68 location_of_next_field STATEMENT 1 ON LINE 232 end SET_FIELD_LOCATIONS; 001044 aa 6 00103 0541 00 aos pr6|67 field_idx 001045 aa 777611 7100 04 tra -119,ic 000656 STATEMENT 1 ON LINE 233 field_table.location_of_first_varying_field = location_of_next_field; 001046 aa 6 00104 2361 00 ldq pr6|68 location_of_next_field 001047 aa 6 00114 3735 20 epp7 pr6|76,* field_table_ptr 001050 aa 7 00004 7561 00 stq pr7|4 field_table.location_of_first_varying_field STATEMENT 1 ON LINE 235 p_field_table_ptr = field_table_ptr; 001051 aa 6 00032 3715 20 epp5 pr6|26,* 001052 aa 5 00006 6535 20 spri7 pr5|6,* p_field_table_ptr STATEMENT 1 ON LINE 236 p_maximum_record_length = location_of_next_field + varying_field_portion_length; 001053 aa 000044 7770 00 llr 36 001054 aa 000044 7330 00 lrs 36 001055 aa 6 00105 0331 00 adl pr6|69 varying_field_portion_length 001056 aa 5 00010 7561 20 stq pr5|8,* p_maximum_record_length STATEMENT 1 ON LINE 239 return; 001057 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 285 end dmu_cv_typed_array_to_table; BEGIN PROCEDURE FIELD_IS_VARYING ENTRY TO FIELD_IS_VARYING STATEMENT 1 ON LINE 241 FIELD_IS_VARYING: proc (fiv_p_descriptor_string) returns (bit (1) aligned); 001060 aa 6 00124 6501 00 spri4 pr6|84 001061 aa 6 00126 2521 00 spri2 pr6|86 STATEMENT 1 ON LINE 251 001062 aa 000024 2360 07 ldq 20,dl 001063 aa 6 00132 7561 00 stq pr6|90 BIT_VARYING STATEMENT 1 ON LINE 252 001064 aa 000026 2360 07 ldq 22,dl 001065 aa 6 00133 7561 00 stq pr6|91 CHAR_VARYING STATEMENT 1 ON LINE 254 if fiv_descriptor_type.type = BIT_VARYING | fiv_descriptor_type.type = CHAR_VARYING then return ("1"b); 001066 aa 2 00002 2351 20 lda pr2|2,* fiv_descriptor_type.type 001067 aa 000001 7350 00 als 1 001070 aa 000102 7730 00 lrl 66 001071 aa 6 00247 7561 00 stq pr6|167 fiv_descriptor_type.type 001072 aa 6 00132 1161 00 cmpq pr6|90 BIT_VARYING 001073 aa 000003 6000 04 tze 3,ic 001076 001074 aa 6 00133 1161 00 cmpq pr6|91 CHAR_VARYING 001075 aa 000004 6010 04 tnz 4,ic 001101 001076 aa 400000 2350 03 lda 131072,du 001077 aa 2 00004 7551 20 sta pr2|4,* 001100 aa 6 00124 6101 00 rtcd pr6|84 STATEMENT 1 ON LINE 257 else return ("0"b); 001101 aa 2 00004 4501 20 stz pr2|4,* 001102 aa 6 00124 6101 00 rtcd pr6|84 STATEMENT 1 ON LINE 259 end FIELD_IS_VARYING; END PROCEDURE FIELD_IS_VARYING BEGIN PROCEDURE FIELD_IS_CHARACTER_VARYING ENTRY TO FIELD_IS_CHARACTER_VARYING STATEMENT 1 ON LINE 261 FIELD_IS_CHARACTER_VARYING: proc (ficv_p_descriptor_string) returns (bit (1) aligned); 001103 aa 6 00134 6501 00 spri4 pr6|92 001104 aa 6 00136 2521 00 spri2 pr6|94 STATEMENT 1 ON LINE 271 001105 aa 000024 2360 07 ldq 20,dl 001106 aa 6 00142 7561 00 stq pr6|98 BIT_VARYING STATEMENT 1 ON LINE 272 001107 aa 000026 2360 07 ldq 22,dl 001110 aa 6 00143 7561 00 stq pr6|99 CHAR_VARYING STATEMENT 1 ON LINE 274 if ficv_descriptor_type.type = CHAR_VARYING then return ("1"b); 001111 aa 2 00002 2351 20 lda pr2|2,* ficv_descriptor_type.type 001112 aa 000001 7350 00 als 1 001113 aa 000102 7730 00 lrl 66 001114 aa 6 00143 1161 00 cmpq pr6|99 CHAR_VARYING 001115 aa 000004 6010 04 tnz 4,ic 001121 001116 aa 400000 2350 03 lda 131072,du 001117 aa 2 00004 7551 20 sta pr2|4,* 001120 aa 6 00134 6101 00 rtcd pr6|92 STATEMENT 1 ON LINE 276 else return ("0"b); 001121 aa 2 00004 4501 20 stz pr2|4,* 001122 aa 6 00134 6101 00 rtcd pr6|92 STATEMENT 1 ON LINE 278 end FIELD_IS_CHARACTER_VARYING; END PROCEDURE FIELD_IS_CHARACTER_VARYING END PROCEDURE dmu_cv_typed_array_to_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