COMPILATION LISTING OF SEGMENT dmu_compare_vector_to_str Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1529.6 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* format: style2,ind3 */ 8 9 dmu_compare_vector_to_str: 10 proc (p_field_table_ptr, p_simple_typed_vector_ptr, p_key_string_ptr, p_key_string_length, p_last_field_idx, 11 p_first_inequal_field_id, p_vector_equal_to_key, p_vector_less_than_key, p_code); 12 13 /* DESCRIPTION: 14* This program compares the value of a simple_typed_vector and a key. 15* It is responsible for "parsing" the key bit string into its constituent 16* fields, using the information provided by the field_table. Dimension I 17* of the simple_typed_vector is assumed to be the same field as field I of 18* the key. 19* The comparison is done a-field-at-a-time, starting with field 1 and 20* continuing with field 2, field 3, etc. until either an inequality is 21* found or all of the fields have been compared. 22* 23* All of the code is in the internal procedure 24* COMPARE_VECTOR_TO_STRING, which is in the include file 25* dm_comp_vec_str_proc.incl.pl1. This is so that other procedures can 26* get the same functionality this module provides without the expense of 27* an external call. 28* 29* COMPARE_VECTOR_TO_STRING takes no arguments. It assumes that 30* the main procedure has declared and set a set of global variables which 31* COMPARE_VECTOR_TO_STRING will use as if they were parameters. These 32* variables are described in the Parameters section of 33* COMPARE_VECTOR_TO_STRING. 34**/ 35 36 /* HISTORY: 37* 38*Written by Lindsey Spratt, 03/30/82. 39*Modified: 40*04/22/82 by Lindsey Spratt: Added the maximum_field_idx to allow for 41* comparisons against branch keys which are less than full length. 42* Extended the calling sequence to allow for the last_field_idx, as 43* well. 44*05/17/82 by Lindsey Spratt: Changed to use the 45* field_table.varying_field_map.varying_field_index to determine if 46* a field is a varying string. 47*06/30/82 by Lindsey Spratt: Changed to accept simple_typed_vectors which are 48* less than full length. The "maximum_field_idx" is set to the 49* minimum of the number of dimensions in the simple_typed_vector and 50* either the p_last_field_idx (if greater than 0) or the number of 51* the fields in the field table. 52*08/02/82 by Lindsey Spratt: Changed to set the p_first_inequal_field_id. 53*09/01/82 by Lindsey Spratt: Changed to use simple_typed_vectors which have 54* packed value ptrs. 55*10/27/82 by Lindsey Spratt: Changed to return the "true" 56* first_inequal_field_id. It is possible for this value to be one 57* greater than the maximum_field_idx, which in turn may mean that it 58* is one greater than the number of fields in the key. 59*11/04/82 by Lindsey Spratt: Fixed comparison for the last field to not return 60* "equal" if the last field is truncated to a value which 61* is shorter than the vector value. 62*11/22/82 by Matthew Pierret: Changed an if-then statement to an if-then if-then 63* statement. One of the components of the if-clause contains a 64* pointer that is not set if the other components are not true. 65* This test is the one that determines if vector and key are not 66* equal based on differing lengths. 67*12/08/82 by Lindsey Spratt: Fixed code which looks at varying field lengths 68* to cope with any size field length variable (currently 9, 18 and 69* 36 bit length variables are possible). 70*01/12/83 by Lindsey Spratt: Fixed the offset calculation for varying length 71* fields to take into account whether the length value is in bits or 72* characters. Streamlined this code to make use of the previous 73* calculation for the previous varying length field, rather than add 74* up the lengths of all varying length fields prior to the field 75* being looked at. 76*06/29/83 by Lindsey L. Spratt: Fixed to set the 77* location_of_first_varying_field correctly when p_last_field_idx > 78* 0 but field_table.field(p_last_field_idx) is not a truncated 79* field. 80*11/16/83 by Lindsey L. Spratt: Fixed to always set the 81* last_field_is_truncated flag correctly. 82*04/10/84 by Matthew Pierret: Changed to use local copies of parameters for 83* enhanced performance. Also changed to set pointers to locatins 84* in the key_string using the addbitno builtin instead of 85* addr(key_bit_array,...). Changed to test the descriptor type for 86* varying_char_dtype or varying_bit_dtype instead of looking in the 87* varying_field_map to determine if a field is varying. 88*04/20/84 by Matthew Pierret: Moved code into the internal subroutine 89* COMPARE_VECTOR_TO_STRING which is contained in the include file 90* dm_comp_vec_str_proc.incl.pl1. 91*05/03/84 by Matthew Pierret: Changed to use FIELD_TABLE_VERSION_3. 92**/ 93 94 /* START OF DECLARATIONS */ 95 /* Parameter */ 96 97 dcl p_field_table_ptr ptr; 98 dcl p_simple_typed_vector_ptr 99 ptr; 100 dcl p_key_string_ptr ptr; 101 dcl p_key_string_length fixed bin (24); 102 dcl p_last_field_idx fixed bin (17) unaligned; 103 dcl p_first_inequal_field_id 104 fixed bin (17) parameter; 105 dcl p_vector_equal_to_key bit (1) aligned; 106 dcl p_vector_less_than_key bit (1) aligned; 107 dcl p_code fixed bin (35); 108 109 /* Automatic */ 110 111 dcl cvs_p_field_table_ptr ptr; 112 dcl cvs_p_simple_typed_vector_ptr 113 ptr; 114 dcl cvs_p_key_string_ptr ptr; 115 dcl cvs_p_key_string_length 116 fixed bin (35); 117 dcl cvs_p_last_field_idx fixed bin (17); 118 dcl cvs_p_first_inequal_field_id 119 fixed bin (17); 120 dcl cvs_p_vector_equal_to_key 121 bit (1) aligned; 122 dcl cvs_p_vector_less_than_key 123 bit (1) aligned; 124 dcl cvs_p_code fixed bin (35); 125 126 /* Based */ 127 /* Builtin */ 128 /* Controlled */ 129 /* Constant */ 130 131 dcl myname init ("dmu_compare_vector_to_str") char (32) varying internal static 132 options (constant); 133 ; 134 135 /* Entry */ 136 /* External */ 137 138 /* END OF DECLARATIONS */ 139 140 cvs_p_field_table_ptr = p_field_table_ptr; 141 cvs_p_simple_typed_vector_ptr = p_simple_typed_vector_ptr; 142 cvs_p_key_string_ptr = p_key_string_ptr; 143 cvs_p_key_string_length = p_key_string_length; 144 cvs_p_last_field_idx = p_last_field_idx; 145 146 call COMPARE_VECTOR_TO_STRING (); 147 148 p_first_inequal_field_id = cvs_p_first_inequal_field_id; 149 p_vector_equal_to_key = cvs_p_vector_equal_to_key; 150 p_vector_less_than_key = cvs_p_vector_less_than_key; 151 p_code = cvs_p_code; 152 153 return; 154 1 1 /* BEGIN INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* This program compares the value of a simple_typed_vector and a key. 1 6* It is responsible for "parsing" the key bit string into its constituent 1 7* fields, using the information provided by the field_table. Dimension I 1 8* of the simple_typed_vector is assumed to be the same field as field I of 1 9* the key. 1 10* The comparison is done a-field-at-a-time, starting with field 1 and 1 11* continuing with field 2, field 3, etc. until either an inequality is 1 12* found or all of the fields have been compared. 1 13* 1 14* Global variables are assumed to be in the main procedure so as to 1 15* simulate the calling sequence: 1 16* 1 17* call COMPARE_VECTOR_TO_STRING 1 18* (cvs_p_field_table_ptr, cvs_p_simple_typed_vector_ptr, 1 19* cvs_p_key_string_ptr, cvs_p_key_string_length, 1 20* cvs_p_last_field_idx, cvs_p_first_inequal_field_id, 1 21* cvs_p_vector_equal_to_key, cvs_p_vector_less_than_key, cvs_p_code); 1 22* 1 23* They must be declared as follows described under Parameters. 1 24**/ 1 25 1 26 /* HISTORY: 1 27* 1 28*Written by Matthew Pierret, 04/19/84. 1 29* (Extracted from dmu_compare_vector_to_str.pl1.) 1 30*Modified: 1 31*05/03/84 by Matthew Pierret: Changed to FIELD_TABLE_VERSION_3. 1 32*12/07/84 by M. Sharpe: to correct format and dcls. 1 33**/ 1 34 1 35 1 36 /****^ HISTORY COMMENTS: 1 37* 1) change(86-12-17,Dupuis), approve(87-04-01,MCR7632), audit(87-01-13,Blair), 1 38* install(87-04-02,MR12.1-1020): 1 39* Corrected a bug (phx20420) where the cvs_location_of_first_varying_field 1 40* was being set incorrectly when it was a bit varying or char varying field, 1 41* and all of the fields weren't present. 1 42* END HISTORY COMMENTS */ 1 43 1 44 1 45 /* format: style2,ind3 */ 1 46 1 47 1 48 1 49 COMPARE_VECTOR_TO_STRING: 1 50 proc (); 1 51 1 52 /* START OF DECLARATIONS */ 1 53 /* Parameter */ 1 54 1 55 /* 1 56* 1 57* dcl cvs_p_field_table_ptr ptr; /* points to a field_table 1 58* dcl cvs_p_simple_typed_vector_ptr /* points to the simple_typed_vector 1 59* ptr; /* to be compared with ... 1 60* dcl cvs_p_key_string_ptr ptr; /* (points to) the string 1 61* dcl cvs_p_key_string_length fixed bin (24); 1 62* /* length of the string in bits 1 63* dcl cvs_p_last_field_idx fixed bin (17); 1 64* /* the index of the last field 1 65* /* contained in the string. This last 1 66* /* field have a truncated value. If 1 67* /* this is -1, all fields are present 1 68* /* in full form. 1 69* dcl cvs_p_first_inequal_field_id 1 70* fixed bin (17); 1 71* /* is set by this routine to be the id 1 72* /* of the first field which did not 1 73* /* compare equal. 1 74* dcl cvs_p_vector_equal_to_key bit (1) aligned; 1 75* /* is set by this routine to ON if the 1 76* /* vector and string are equal. 1 77* dcl cvs_p_vector_less_than_key bit (1) aligned; 1 78* /* is set by this routine to ON if the 1 79* /* vector is less than the key 1 80* dcl cvs_p_code fixed bin (35); 1 81**/ 1 82 1 83 /* Automatic */ 1 84 1 85 dcl cv_p_code fixed bin (35); 1 86 dcl cv_p_descriptor_ptr ptr; 1 87 dcl cv_p_field_value_length 1 88 fixed bin (35); 1 89 dcl cv_p_field_value_ptr ptr; 1 90 dcl cv_p_vector_equal_to_key 1 91 bit (1) aligned; 1 92 dcl cv_p_vector_less_than_key 1 93 bit (1) aligned; 1 94 dcl cv_p_vector_value_length 1 95 fixed bin (35); 1 96 dcl cv_p_vector_value_ptr ptr; 1 97 1 98 dcl cvs_current_field_id fixed bin (35); 1 99 dcl cvs_field_idx fixed bin; 1 100 dcl cvs_field_value_offset fixed bin (24); 1 101 dcl cvs_key_string_length fixed bin (35); 1 102 dcl cvs_key_string_ptr ptr; 1 103 dcl cvs_last_field_idx fixed bin; 1 104 dcl cvs_last_field_is_truncated 1 105 bit (1) aligned init ("0"b); 1 106 dcl cvs_last_field_length_in_bits 1 107 fixed bin (35); 1 108 dcl cvs_last_field_length_ptr 1 109 ptr; 1 110 dcl cvs_last_field_value_ptr 1 111 ptr; 1 112 dcl cvs_length_field_length 1 113 fixed bin (35); 1 114 dcl cvs_length_field_ptr ptr; 1 115 dcl cvs_location_of_first_varying_field 1 116 fixed bin (35); 1 117 dcl cvs_maximum_field_idx fixed bin (17); 1 118 dcl 1 cvs_truncated_field_descriptor 1 119 like arg_descriptor; 1 120 dcl cvs_varying_field_idx fixed bin; 1 121 dcl cvs_varying_field_value_offset 1 122 fixed bin (24); 1 123 1 124 /* Based */ 1 125 1 126 dcl cvs_based_real_fix_bin_1u 1 127 based fixed bin (35) unaligned; 1 128 1 129 dcl cvs_key_string based (cvs_key_string_ptr) bit (cvs_key_string_length); 1 130 dcl cvs_length_field_string 1 131 based (cvs_length_field_ptr) bit (cvs_length_field_length); 1 132 1 133 /* Builtin */ 1 134 1 135 dcl (addbitno, addr, bin, hbound, min, null) 1 136 builtin; 1 137 1 138 /* Controlled */ 1 139 /* Constant */ 1 140 1 141 dcl ( 1 142 BITS_PER_WORD init (36), 1 143 BITS_PER_BYTE init (9), 1 144 BYTES_PER_WORD init (4) 1 145 ) internal static options (constant) fixed bin (17); 1 146 dcl VECTOR_VALUE_IS_IN_VECTOR_FORMAT 1 147 init ("0"b) bit (1) aligned internal static options (constant); 1 148 1 149 /* Entry */ 1 150 1 151 dcl sub_err_ entry () options (variable); 1 152 1 153 /* External */ 1 154 1 155 dcl error_table_$unimplemented_version 1 156 fixed bin (35) ext; 1 157 1 158 /* END OF DECLARATIONS */ 1 159 1 160 cvs_key_string_ptr = cvs_p_key_string_ptr; 1 161 cvs_key_string_length = cvs_p_key_string_length; 1 162 cvs_last_field_idx = cvs_p_last_field_idx; 1 163 1 164 simple_typed_vector_ptr = cvs_p_simple_typed_vector_ptr; 1 165 if simple_typed_vector.type ^= SIMPLE_TYPED_VECTOR_TYPE 1 166 then call 1 167 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 1 168 "^/Expected the simple_typed_vector structure, type ^d;^/Received type ^d instead.", 1 169 SIMPLE_TYPED_VECTOR_TYPE, simple_typed_vector.type); 1 170 field_table_ptr = cvs_p_field_table_ptr; 1 171 if field_table.version ^= FIELD_TABLE_VERSION_3 1 172 then call 1 173 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 1 174 "^/Expected version ^a of the field_table structure;^/Received ^a instead.", FIELD_TABLE_VERSION_3, 1 175 field_table.version); 1 176 1 177 cv_p_code = 0; 1 178 cv_p_vector_equal_to_key = "1"b; 1 179 cv_p_vector_less_than_key = "0"b; 1 180 1 181 if cvs_last_field_idx = -1 /* not truncated */ 1 182 then 1 183 do; 1 184 cvs_maximum_field_idx = min (hbound (simple_typed_vector.dimension, 1), hbound (field_table.field, 1)); 1 185 cvs_location_of_first_varying_field = field_table.location_of_first_varying_field; 1 186 cvs_last_field_is_truncated = "0"b; 1 187 end; 1 188 else if cvs_last_field_idx > 0 1 189 then 1 190 do; 1 191 cvs_maximum_field_idx = min (cvs_last_field_idx, hbound (simple_typed_vector.dimension, 1)); 1 192 arg_descriptor_ptr = addr (field_table.field (cvs_last_field_idx).descriptor); 1 193 1 194 if (arg_descriptor.type = varying_char_dtype) | (arg_descriptor.type = varying_bit_dtype) 1 195 then cvs_last_field_is_truncated = "0"b; 1 196 else if arg_descriptor.type = bit_dtype 1 197 then 1 198 do; 1 199 if arg_descriptor.size > BITS_PER_WORD + BITS_PER_BYTE 1 200 then 1 201 do; 1 202 cvs_last_field_length_ptr = 1 203 addbitno (cvs_key_string_ptr, field_table.field (cvs_last_field_idx).location - 1); 1 204 cvs_last_field_value_ptr = addbitno (cvs_last_field_length_ptr, BITS_PER_WORD); 1 205 1 206 cvs_truncated_field_descriptor.packed = "1"b; 1 207 cvs_truncated_field_descriptor.flag = "1"b; 1 208 cvs_truncated_field_descriptor.type = bit_dtype; 1 209 cvs_truncated_field_descriptor.size = cvs_last_field_length_ptr -> cvs_based_real_fix_bin_1u; 1 210 1 211 cvs_last_field_length_in_bits = cvs_truncated_field_descriptor.size + BITS_PER_WORD; 1 212 cvs_last_field_is_truncated = "1"b; 1 213 end; 1 214 end; 1 215 else if arg_descriptor.type = char_dtype 1 216 then 1 217 do; 1 218 if arg_descriptor.size > BYTES_PER_WORD + 1 1 219 then 1 220 do; 1 221 cvs_last_field_length_ptr = 1 222 addbitno (cvs_key_string_ptr, field_table.field (cvs_last_field_idx).location - 1); 1 223 cvs_last_field_value_ptr = addbitno (cvs_last_field_length_ptr, BITS_PER_WORD); 1 224 1 225 cvs_truncated_field_descriptor.packed = "1"b; 1 226 cvs_truncated_field_descriptor.flag = "1"b; 1 227 cvs_truncated_field_descriptor.type = char_dtype; 1 228 cvs_truncated_field_descriptor.size = cvs_last_field_length_ptr -> cvs_based_real_fix_bin_1u; 1 229 1 230 cvs_last_field_length_in_bits = 1 231 cvs_truncated_field_descriptor.size * BITS_PER_BYTE + BITS_PER_WORD; 1 232 cvs_last_field_is_truncated = "1"b; 1 233 end; 1 234 end; 1 235 else cvs_last_field_is_truncated = "0"b; 1 236 1 237 if cvs_last_field_is_truncated 1 238 then cvs_location_of_first_varying_field = 1 239 field_table.field (cvs_last_field_idx).location + cvs_last_field_length_in_bits; 1 240 else cvs_location_of_first_varying_field = field_table.location_of_first_varying_field; 1 241 end; 1 242 1 243 cvs_varying_field_value_offset = cvs_location_of_first_varying_field - 1; 1 244 /* 1 is subtracted because locations are */ 1 245 /* 1-based, offsets are 0-based. */ 1 246 1 247 FIELD_LOOP: 1 248 do cvs_field_idx = 1 to cvs_maximum_field_idx while (cv_p_code = 0 & cv_p_vector_equal_to_key); 1 249 if cvs_last_field_is_truncated & cvs_field_idx = cvs_last_field_idx 1 250 then 1 251 do; 1 252 cv_p_field_value_ptr = cvs_last_field_value_ptr; 1 253 cv_p_field_value_length = -1; 1 254 cv_p_descriptor_ptr = addr (cvs_truncated_field_descriptor); 1 255 end; 1 256 else 1 257 do; 1 258 cv_p_descriptor_ptr = addr (field_table.field (cvs_field_idx).descriptor); 1 259 /* Is field varying or non-varying? */ 1 260 if ^(cv_p_descriptor_ptr -> arg_descriptor.type = varying_char_dtype 1 261 | cv_p_descriptor_ptr -> arg_descriptor.type = varying_bit_dtype) 1 262 then 1 263 PREPARE_NONVARYING_FIELD: 1 264 do; 1 265 cv_p_field_value_length = -1; 1 266 cv_p_field_value_ptr = addbitno (cvs_key_string_ptr, field_table.field (cvs_field_idx).location - 1); 1 267 end PREPARE_NONVARYING_FIELD; 1 268 else 1 269 PREPARE_VARYING_FIELD: 1 270 do; 1 271 cvs_length_field_length = field_table.field (cvs_field_idx).length_in_bits; 1 272 cvs_length_field_ptr = addbitno (cvs_key_string_ptr, field_table.field (cvs_field_idx).location - 1); 1 273 cv_p_field_value_length = bin (cvs_length_field_string, 35, 0); 1 274 1 275 cvs_field_value_offset = cvs_varying_field_value_offset; 1 276 1 277 if field_table.field (cvs_field_idx).flags.length_is_in_characters 1 278 then cvs_varying_field_value_offset = 1 279 cvs_varying_field_value_offset + cv_p_field_value_length * BITS_PER_BYTE; 1 280 else cvs_varying_field_value_offset = cvs_varying_field_value_offset + cv_p_field_value_length; 1 281 1 282 cv_p_field_value_ptr = addbitno (cvs_key_string_ptr, cvs_field_value_offset); 1 283 1 284 end PREPARE_VARYING_FIELD; 1 285 end; 1 286 1 287 cv_p_vector_value_ptr = simple_typed_vector.dimension (cvs_field_idx).value_ptr; 1 288 cv_p_vector_value_length = -1; /* length is only needed if vector is in field format */ 1 289 1 290 call COMPARE_VALUES (VECTOR_VALUE_IS_IN_VECTOR_FORMAT); 1 291 1 292 /* Actually uses global variables to simulate: 1 293* 1 294* call COMPARE_VALUES 1 295* (VECTOR_VALUE_IS_IN_VECTOR_FORMAT, 1 296* cv_p_descriptor_ptr, 1 297* cv_p_vector_value_ptr, 1 298* cv_p_field_value_ptr, cv_p_field_value_length, 1 299* cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 300**/ 1 301 1 302 if cv_p_vector_equal_to_key 1 303 then if cvs_last_field_is_truncated & cvs_field_idx = cvs_last_field_idx 1 304 then if cvs_truncated_field_descriptor.size < arg_descriptor.size 1 305 then cv_p_vector_equal_to_key = "0"b; 1 306 1 307 end FIELD_LOOP; 1 308 1 309 cvs_p_first_inequal_field_id = cvs_field_idx - bin (^cv_p_vector_equal_to_key); 1 310 1 311 if cvs_maximum_field_idx < hbound (simple_typed_vector.dimension, 1) 1 312 then cvs_p_vector_equal_to_key = "0"b; /* The vector is longer than the key, so the */ 1 313 /* comparison cannot be equal. */ 1 314 else cvs_p_vector_equal_to_key = cv_p_vector_equal_to_key; 1 315 1 316 cvs_p_vector_less_than_key = cv_p_vector_less_than_key; 1 317 cvs_p_code = cv_p_code; 1 318 1 319 return; 1 320 2 1 /* BEGIN INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(87-05-06,Dupuis), approve(87-05-29,MCR7695), audit(87-06-02,Blair), 2 7* install(87-07-17,MR12.1-1042): 2 8* Added a check to determine if the values were aligned correctly before 2 9* doing the comparisons. Although the calling program was supposed to take 2 10* care of alignment, this wasn't always the case (phx20843). This check can 2 11* be taken out in the future (for performance reasons) once we know we are 2 12* bug free. 2 13* END HISTORY COMMENTS */ 2 14 2 15 2 16 /* DESCRIPTION: 2 17* 2 18* This internal routine is contained in an include file so that critical 2 19* execution paths may save the time that would have been spent on the 2 20* overhead of making an external call. The time to execute this routine is 2 21* very small, much less than the time required in making an external call and 2 22* setting up an argument list. 2 23* 2 24* Modules which include this routine must follow strict guidelines in the 2 25* naming of certain variables, as this internal routine assumes the caller 2 26* has global variables set up so as to simulate the calling sequence: 2 27* 2 28* call COMPARE_VALUES_INTERNAL_PROC 2 29* (cv_p_descriptor_ptr, cv_p_vector_value_ptr, 2 30* cv_p_field_value_ptr, cv_p_field_value_length, 2 31* cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 2 32* 2 33* These variables must be declared in the calling routine as described 2 34* under Parameters. 2 35* 2 36* This routine compares two values and returns information about whether the 2 37* first is less than, equal to, or greater than, the second. Both values 2 38* must be of the same data-type, however the storage conventions for varying 2 39* string data for the second value are slightly different from the Multics 2 40* standard format. This difference consists solely in that the length of the 2 41* varying string is not stored as the initial piece of information in the 2 42* string. The length of varying string values in fields is passed in as a 2 43* parameter. 2 44* 2 45* The first value is referred to as the "vector" value, since it usually is 2 46* the value of a dimension of a typed_vector. The second value is referred 2 47* to as the "field" value, since it is usually the value of a field of a key. 2 48* If cv_p_vector_value_is_in_field_format is OFF, the vector value is in the 2 49* Multics standard format; if ON, the vector value is in same format as the 2 50* field value. The field value format is the format described above. 2 51**/ 2 52 2 53 /* HISTORY: 2 54*Written by Matthew Pierret, 04/18/84. 2 55* (Extracted from dmu_compare_values.pl1) 2 56*Modified: 2 57*05/14/84 by Matthew Pierret: Changed to assume that values in field format 2 58* are properly aligned. 2 59*12/07/84 by M. Sharpe: to correct format and dcls. 2 60**/ 2 61 2 62 /* format: style2,ind3 */ 2 63 2 64 2 65 COMPARE_VALUES: 2 66 proc (cv_p_vector_value_is_in_field_format); 2 67 2 68 /* START OF DECLARATIONS */ 2 69 2 70 /* Parameter */ 2 71 2 72 dcl cv_p_vector_value_is_in_field_format 2 73 bit (1) aligned; 2 74 2 75 /* The following must be declared in the calling routine: 2 76* 2 77* dcl cv_p_descriptor_ptr /* points to the descriptor for 2 78* ptr; /* the vector/field value 2 79* dcl cv_p_vector_value_ptr ptr; /* points to the vector value 2 80* dcl cv_p_vector_value_length fixed bin (35); 2 81* /* length of vector value in bits 2 82* dcl cv_p_field_value_ptr ptr; /* points to the field value 2 83* dcl cv_p_field_value_length fixed bin (35); 2 84* /* length of field value in bits 2 85* dcl cv_p_vector_equal_to_key bit (1) aligned; 2 86* /* is set by this routine to ON 2 87* /* if the values are equal 2 88* dcl cv_p_vector_less_than_key bit (1) aligned; 2 89* /* is set by this routine to ON 2 90* /* if the vector value is less 2 91* /* than the field value. 2 92* dcl cv_p_code fixed bin (35); 2 93* 2 94**/ 2 95 2 96 /* Automatic */ 2 97 dcl cv_local_vector_real_fix_bin_1 2 98 fixed bin (35) aligned; 2 99 dcl cv_local_field_real_fix_bin_1 2 100 fixed bin (35) aligned; 2 101 dcl cv_local_vector_real_fix_bin_2 2 102 fixed bin (71) aligned; 2 103 dcl cv_local_field_real_fix_bin_2 2 104 fixed bin (71) aligned; 2 105 2 106 dcl cv_local_vector_real_flt_bin_1 2 107 float bin (27) aligned; 2 108 dcl cv_local_field_real_flt_bin_1 2 109 float bin (27) aligned; 2 110 dcl cv_local_vector_real_flt_bin_2 2 111 float bin (63) aligned; 2 112 dcl cv_local_field_real_flt_bin_2 2 113 float bin (63) aligned; 2 114 2 115 dcl cv_local_vector_real_fix_bin_1_uns 2 116 fixed bin (35) aligned unsigned; 2 117 dcl cv_local_field_real_fix_bin_1_uns 2 118 fixed bin (35) aligned unsigned; 2 119 dcl cv_local_vector_real_fix_bin_2_uns 2 120 fixed bin (71) aligned unsigned; 2 121 dcl cv_local_field_real_fix_bin_2_uns 2 122 fixed bin (71) aligned unsigned; 2 123 2 124 dcl (cv_vector_real_part_value_ptr, cv_vector_imaginary_part_value_ptr, cv_field_real_part_value_ptr, 2 125 cv_field_imaginary_part_value_ptr) 2 126 ptr init (null); 2 127 2 128 dcl 1 cv_local_arg_descriptor 2 129 like arg_descriptor; 2 130 dcl 1 cv_local_fixed_arg_descriptor 2 131 like fixed_arg_descriptor; 2 132 2 133 /* Based */ 2 134 2 135 dcl cv_bit_string bit (sys_info$max_seg_size * 36) based; 2 136 dcl cv_char_string char (sys_info$max_seg_size * 4) based; 2 137 2 138 dcl cv_based_real_fix_bin_1a 2 139 fixed bin (35) based aligned; 2 140 dcl cv_based_real_fix_bin_2a 2 141 fixed bin (71) based aligned; 2 142 dcl cv_based_real_fix_bin_1u 2 143 fixed bin (35) based unaligned; 2 144 dcl cv_based_real_fix_bin_2u 2 145 fixed bin (71) based unaligned; 2 146 2 147 dcl cv_based_real_flt_bin_1a 2 148 float bin (27) based aligned; 2 149 dcl cv_based_real_flt_bin_2a 2 150 float bin (63) based aligned; 2 151 dcl cv_based_real_flt_bin_1u 2 152 float bin (27) based unaligned; 2 153 dcl cv_based_real_flt_bin_2u 2 154 float bin (63) based unaligned; 2 155 2 156 dcl cv_based_real_fix_bin_1_unsa 2 157 fixed bin (35) based aligned unsigned; 2 158 dcl cv_based_real_fix_bin_2_unsa 2 159 fixed bin (71) based aligned unsigned; 2 160 dcl cv_based_real_fix_bin_1_unsu 2 161 fixed bin (35) based unaligned unsigned; 2 162 dcl cv_based_real_fix_bin_2_unsu 2 163 fixed bin (71) based unaligned unsigned; 2 164 2 165 /* Builtin */ 2 166 2 167 dcl (addbitno, addcharno, ceil, copy, substr, null, unspec) 2 168 builtin; 2 169 2 170 /* Constant */ 2 171 2 172 dcl myname init ("dmu_compare_values") char (32) varying internal static options (constant); 2 173 2 174 dcl ( 2 175 BITS_PER_WORD init (36), 2 176 BYTES_PER_WORD init (4), 2 177 BITS_PER_EXPONENT init (8), 2 178 BIT4_DECIMAL_EXPONENT init (2), 2 179 BIT9_DECIMAL_EXPONENT init (1), 2 180 SIGN init (1), 2 181 DEFAULT_LENGTH init (-1), 2 182 HIGHEST_SUPPORTED_DATA_TYPE 2 183 init (44) 2 184 ) fixed bin (17) internal static options (constant); 2 185 dcl NEED_TO_CHECK_FOR_ALIGNMENT (46) bit (1) internal static options (constant) init ( 2 186 "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, "1"b, /* 1 to 12 */ 2 187 "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, /* 13 to 19 */ 2 188 "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, /* 20 to 32 */ 2 189 "1"b, "1"b, /* 33 to 34 */ "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, /* 35 to 42 */ 2 190 "1"b, "1"b, "1"b, "1"b /* 43 to 46 */); 2 191 2 192 dcl REQUIRED_ALIGNMENT (46) fixed bin internal static options (constant) init ( 2 193 36, 72, 36, 72, 72, 72, 72, 72, 36, 36, 36, 36, /* 1 to 12 */ 2 194 0, 0, 0, 0, 0, 0, 0, /* 13 to 19 */ 2 195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 to 32 */ 2 196 36, 72, /* 33 to 34 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 35 to 42 */ 2 197 36, 36, 36, 36 ); /* 43 to 46 */ 2 198 2 199 /* Entry */ 2 200 2 201 dcl dmu_compare_values entry (ptr, ptr, ptr, fixed bin (35), bit (1) aligned, bit (1) aligned, 2 202 fixed bin (35)); 2 203 dcl dmu_compare_decimal_values$dmu_compare_dec9ls 2 204 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 2 205 dcl dmu_compare_decimal_values$dmu_compare_dec9fl 2 206 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 2 207 dcl dmu_compare_decimal_values$dmu_compare_dec4fl 2 208 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 2 209 dcl dmu_compare_decimal_values$dmu_compare_dec4ls 2 210 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 2 211 dcl sub_err_ entry () options (variable); 2 212 2 213 /* External */ 2 214 2 215 dcl sys_info$max_seg_size fixed bin (35) ext static; 2 216 dcl error_table_$bad_arg fixed bin (35) ext; 2 217 dcl dm_error_$unimplemented_data_type 2 218 fixed bin (35) ext; 2 219 2 220 /* END OF DECLARATIONS */ 2 221 2 222 cv_p_code = 0; 2 223 2 224 arg_descriptor_ptr = cv_p_descriptor_ptr; 2 225 2 226 if arg_descriptor.type < 1 | arg_descriptor.type > HIGHEST_SUPPORTED_DATA_TYPE 2 227 then call 2 228 sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 2 229 "^/The caller-provided descriptor has an invalid type, ^d. Valid types 2 230 are between 1 and ^d.", arg_descriptor.type, HIGHEST_SUPPORTED_DATA_TYPE); 2 231 2 232 if ^arg_descriptor.packed & NEED_TO_CHECK_FOR_ALIGNMENT (arg_descriptor.type) 2 233 then if mod (bitno (cv_p_vector_value_ptr), REQUIRED_ALIGNMENT (arg_descriptor.type)) ^= 0 2 234 then call sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 2 235 "^/The vector_value pointer (^p) has an invalid alignment.^/It's address should have been divisible by ^d.", 2 236 cv_p_vector_value_ptr, REQUIRED_ALIGNMENT (arg_descriptor.type)); 2 237 else if mod (bitno (cv_p_field_value_ptr), REQUIRED_ALIGNMENT (arg_descriptor.type)) ^= 0 2 238 then call sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 2 239 "^/The field_value pointer (^p) has an invalid alignment.^/It's address should have been divisible by ^d.", 2 240 cv_p_field_value_ptr, REQUIRED_ALIGNMENT (arg_descriptor.type)); 2 241 2 242 goto CV_TYPE (arg_descriptor.type); 2 243 CV_TYPE (1): /* real_fix_bin_1 (short) */ 2 244 if arg_descriptor.packed 2 245 then 2 246 do; 2 247 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, 1) 2 248 then unspec (cv_local_vector_real_fix_bin_1) = 2 249 copy ("1"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 250 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 251 else unspec (cv_local_vector_real_fix_bin_1) = 2 252 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 253 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 254 if substr (cv_p_field_value_ptr -> cv_bit_string, 1, 1) 2 255 then unspec (cv_local_field_real_fix_bin_1) = 2 256 copy ("1"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 257 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 258 else unspec (cv_local_field_real_fix_bin_1) = 2 259 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 260 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 261 if cv_local_vector_real_fix_bin_1 = cv_local_field_real_fix_bin_1 2 262 then goto CV_RETURN_EQUAL; 2 263 else if cv_local_vector_real_fix_bin_1 < cv_local_field_real_fix_bin_1 2 264 then goto CV_RETURN_LESS; 2 265 else goto CV_RETURN_GREATER; 2 266 end; 2 267 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_1a = cv_p_field_value_ptr -> cv_based_real_fix_bin_1a 2 268 then goto CV_RETURN_EQUAL; 2 269 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_1a < cv_p_field_value_ptr -> cv_based_real_fix_bin_1a 2 270 then goto CV_RETURN_LESS; 2 271 else goto CV_RETURN_GREATER; 2 272 2 273 2 274 CV_TYPE (2): /* real_fix_bin_2 (long) */ 2 275 if arg_descriptor.packed 2 276 then 2 277 do; 2 278 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, 1) 2 279 then unspec (cv_local_vector_real_fix_bin_2) = 2 280 copy ("1"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 281 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 282 else unspec (cv_local_vector_real_fix_bin_2) = 2 283 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 284 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 285 if substr (cv_p_field_value_ptr -> cv_bit_string, 1, 1) 2 286 then unspec (cv_local_field_real_fix_bin_2) = 2 287 copy ("1"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 288 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 289 else unspec (cv_local_field_real_fix_bin_2) = 2 290 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 291 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 2 292 if cv_local_vector_real_fix_bin_2 = cv_local_field_real_fix_bin_2 2 293 then goto CV_RETURN_EQUAL; 2 294 else if cv_local_vector_real_fix_bin_2 < cv_local_field_real_fix_bin_2 2 295 then goto CV_RETURN_LESS; 2 296 else goto CV_RETURN_GREATER; 2 297 end; 2 298 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_2a = cv_p_field_value_ptr -> cv_based_real_fix_bin_2a 2 299 then goto CV_RETURN_EQUAL; 2 300 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_2a < cv_p_field_value_ptr -> cv_based_real_fix_bin_2a 2 301 then goto CV_RETURN_LESS; 2 302 else goto CV_RETURN_GREATER; 2 303 2 304 2 305 CV_TYPE (3): /* real_flt_bin_1 (short) */ 2 306 if arg_descriptor.packed 2 307 then 2 308 do; 2 309 unspec (cv_local_vector_real_flt_bin_1) = 2 310 substr (cv_p_vector_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 2 311 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 2 312 unspec (cv_local_field_real_flt_bin_1) = 2 313 substr (cv_p_field_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 2 314 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 2 315 2 316 2 317 if cv_local_vector_real_flt_bin_1 = cv_local_field_real_flt_bin_1 2 318 then goto CV_RETURN_EQUAL; 2 319 else if cv_local_vector_real_flt_bin_1 < cv_local_field_real_flt_bin_1 2 320 then goto CV_RETURN_LESS; 2 321 else goto CV_RETURN_GREATER; 2 322 end; 2 323 else if cv_p_vector_value_ptr -> cv_based_real_flt_bin_1a = cv_p_field_value_ptr -> cv_based_real_flt_bin_1a 2 324 then goto CV_RETURN_EQUAL; 2 325 else if cv_p_vector_value_ptr -> cv_based_real_flt_bin_1a < cv_p_field_value_ptr -> cv_based_real_flt_bin_1a 2 326 then goto CV_RETURN_LESS; 2 327 else goto CV_RETURN_GREATER; 2 328 2 329 CV_TYPE (4): /* real_flt_bin_2 (long) */ 2 330 if arg_descriptor.packed 2 331 then 2 332 do; 2 333 unspec (cv_local_vector_real_flt_bin_2) = 2 334 substr (cv_p_vector_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 2 335 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 2 336 unspec (cv_local_field_real_flt_bin_2) = 2 337 substr (cv_p_field_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 2 338 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 2 339 2 340 if cv_local_vector_real_flt_bin_2 = cv_local_field_real_flt_bin_2 2 341 then goto CV_RETURN_EQUAL; 2 342 else if cv_local_vector_real_flt_bin_2 < cv_local_field_real_flt_bin_2 2 343 then goto CV_RETURN_LESS; 2 344 else goto CV_RETURN_GREATER; 2 345 end; 2 346 else if cv_p_vector_value_ptr -> cv_based_real_flt_bin_2a = cv_p_field_value_ptr -> cv_based_real_flt_bin_2a 2 347 then goto CV_RETURN_EQUAL; 2 348 else if cv_p_vector_value_ptr -> cv_based_real_flt_bin_2a < cv_p_field_value_ptr -> cv_based_real_flt_bin_2a 2 349 then goto CV_RETURN_LESS; 2 350 else goto CV_RETURN_GREATER; 2 351 2 352 CV_TYPE (5): /*cplx_fix_bin_1*/ 2 353 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 354 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 355 if arg_descriptor.packed 2 356 then 2 357 do; 2 358 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 359 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 360 end; 2 361 else 2 362 do; 2 363 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, BITS_PER_WORD); 2 364 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, BITS_PER_WORD); 2 365 end; 2 366 cv_local_fixed_arg_descriptor = fixed_arg_descriptor; 2 367 cv_local_fixed_arg_descriptor.type = real_fix_bin_1_dtype; 2 368 call 2 369 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_real_part_value_ptr, 2 370 cv_field_real_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 2 371 if cv_p_code ^= 0 2 372 then return; 2 373 if cv_p_vector_equal_to_key 2 374 then call 2 375 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_imaginary_part_value_ptr, 2 376 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 2 377 cv_p_code); 2 378 return; 2 379 2 380 CV_TYPE (6): /*cplx_fix_bin_2*/ 2 381 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 382 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 383 if arg_descriptor.packed 2 384 then 2 385 do; 2 386 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 387 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 388 end; 2 389 else 2 390 do; 2 391 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, 2 * BITS_PER_WORD); 2 392 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, 2 * BITS_PER_WORD); 2 393 end; 2 394 cv_local_fixed_arg_descriptor = fixed_arg_descriptor; 2 395 cv_local_fixed_arg_descriptor.type = real_fix_bin_2_dtype; 2 396 call 2 397 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_real_part_value_ptr, 2 398 cv_field_real_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 2 399 if cv_p_code ^= 0 2 400 then return; 2 401 if cv_p_vector_equal_to_key 2 402 then call 2 403 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_imaginary_part_value_ptr, 2 404 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 2 405 cv_p_code); 2 406 return; 2 407 2 408 CV_TYPE (7): /*cplx_flt_bin_1*/ 2 409 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 410 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 411 if arg_descriptor.packed 2 412 then 2 413 do; 2 414 cv_vector_imaginary_part_value_ptr = 2 415 addbitno (cv_p_vector_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 2 416 cv_field_imaginary_part_value_ptr = 2 417 addbitno (cv_p_field_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 2 418 end; 2 419 else 2 420 do; 2 421 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, BITS_PER_WORD); 2 422 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, BITS_PER_WORD); 2 423 end; 2 424 cv_local_arg_descriptor = arg_descriptor; 2 425 cv_local_arg_descriptor.type = real_flt_bin_1_dtype; 2 426 call 2 427 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, 2 428 (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 2 429 if cv_p_code ^= 0 2 430 then return; 2 431 if cv_p_vector_equal_to_key 2 432 then call 2 433 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_imaginary_part_value_ptr, 2 434 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 2 435 cv_p_code); 2 436 return; 2 437 2 438 CV_TYPE (8): /*cplx_flt_bin_2*/ 2 439 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 440 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 441 if arg_descriptor.packed 2 442 then 2 443 do; 2 444 cv_vector_imaginary_part_value_ptr = 2 445 addbitno (cv_p_vector_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 2 446 cv_field_imaginary_part_value_ptr = 2 447 addbitno (cv_p_field_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 2 448 end; 2 449 else 2 450 do; 2 451 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, 2 * BITS_PER_WORD); 2 452 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, 2 * BITS_PER_WORD); 2 453 end; 2 454 cv_local_arg_descriptor = arg_descriptor; 2 455 cv_local_arg_descriptor.type = real_flt_bin_2_dtype; 2 456 call 2 457 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, 2 458 (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 2 459 if cv_p_code ^= 0 2 460 then return; 2 461 if cv_p_vector_equal_to_key 2 462 then call 2 463 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_imaginary_part_value_ptr, 2 464 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 2 465 cv_p_code); 2 466 return; 2 467 2 468 CV_TYPE (9): /* real_fix_dec_9bit_ls */ 2 469 call 2 470 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), cv_p_vector_value_ptr, 2 471 cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 2 472 return; 2 473 2 474 CV_TYPE (10): /* real_flt_dec_9bit */ 2 475 call 2 476 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 2 477 cv_p_vector_value_ptr, cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 2 478 return; 2 479 2 480 CV_TYPE (11): /* cplx_fix_dec_9bit_ls */ 2 481 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 482 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 483 cv_vector_imaginary_part_value_ptr = addcharno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 484 cv_field_imaginary_part_value_ptr = addcharno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 2 485 call 2 486 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), 2 487 cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key) 2 488 ; 2 489 if cv_p_vector_equal_to_key 2 490 then call 2 491 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), 2 492 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 2 493 cv_p_vector_less_than_key); 2 494 return; 2 495 2 496 CV_TYPE (12): /* cplx_flt_dec_9bit */ 2 497 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 498 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 499 cv_vector_imaginary_part_value_ptr = 2 500 addcharno (cv_p_vector_value_ptr, arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT); 2 501 cv_field_imaginary_part_value_ptr = 2 502 addcharno (cv_p_field_value_ptr, arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT); 2 503 2 504 call 2 505 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 2 506 cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key) 2 507 ; 2 508 if cv_p_vector_equal_to_key 2 509 then call 2 510 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 2 511 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 2 512 cv_p_vector_less_than_key); 2 513 return; 2 514 2 515 CV_TYPE (19): /* bit (nonvarying) */ 2 516 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 2 517 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 2 518 then goto CV_RETURN_EQUAL; 2 519 else if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 2 520 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 2 521 then goto CV_RETURN_LESS; 2 522 else goto CV_RETURN_GREATER; 2 523 2 524 2 525 CV_TYPE (20): /* varying_bit */ 2 526 if cv_p_vector_value_is_in_field_format 2 527 then if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, cv_p_vector_value_length) 2 528 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 2 529 then goto CV_RETURN_EQUAL; 2 530 else if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, cv_p_vector_value_length) 2 531 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 2 532 then goto CV_RETURN_LESS; 2 533 else goto CV_RETURN_GREATER; 2 534 else if substr (cv_p_vector_value_ptr -> cv_bit_string, BITS_PER_WORD + 1, 2 535 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 2 536 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 2 537 then goto CV_RETURN_EQUAL; 2 538 else if substr (cv_p_vector_value_ptr -> cv_bit_string, BITS_PER_WORD + 1, 2 539 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 2 540 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 2 541 then goto CV_RETURN_LESS; 2 542 else goto CV_RETURN_GREATER; 2 543 2 544 CV_TYPE (21): /* char (nonvarying) */ 2 545 if substr (cv_p_vector_value_ptr -> cv_char_string, 1, arg_descriptor.size) 2 546 = substr (cv_p_field_value_ptr -> cv_char_string, 1, arg_descriptor.size) 2 547 then goto CV_RETURN_EQUAL; 2 548 else if substr (cv_p_vector_value_ptr -> cv_char_string, 1, arg_descriptor.size) 2 549 < substr (cv_p_field_value_ptr -> cv_char_string, 1, arg_descriptor.size) 2 550 then goto CV_RETURN_LESS; 2 551 else goto CV_RETURN_GREATER; 2 552 2 553 CV_TYPE (22): /* varying_char */ 2 554 if cv_p_vector_value_is_in_field_format 2 555 then if substr (cv_p_vector_value_ptr -> cv_char_string, 1, cv_p_vector_value_length) 2 556 = substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 2 557 then goto CV_RETURN_EQUAL; 2 558 else if substr (cv_p_vector_value_ptr -> cv_char_string, 1, cv_p_vector_value_length) 2 559 < substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 2 560 then goto CV_RETURN_LESS; 2 561 else goto CV_RETURN_GREATER; 2 562 else if substr (cv_p_vector_value_ptr -> cv_char_string, BYTES_PER_WORD + 1, 2 563 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 2 564 = substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 2 565 then goto CV_RETURN_EQUAL; 2 566 else if substr (cv_p_vector_value_ptr -> cv_char_string, BYTES_PER_WORD + 1, 2 567 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 2 568 < substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 2 569 then goto CV_RETURN_LESS; 2 570 else goto CV_RETURN_GREATER; 2 571 2 572 CV_TYPE (33): /* real_fix_bin_1_uns */ 2 573 if arg_descriptor.packed 2 574 then 2 575 do; 2 576 unspec (cv_local_vector_real_fix_bin_1_uns) = 2 577 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 578 || substr (cv_p_vector_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 2 579 unspec (cv_local_field_real_fix_bin_1_uns) = 2 580 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 2 581 || substr (cv_p_field_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 2 582 if cv_local_vector_real_fix_bin_1_uns = cv_local_field_real_fix_bin_1_uns 2 583 then goto CV_RETURN_EQUAL; 2 584 else if cv_local_vector_real_fix_bin_1_uns < cv_local_field_real_fix_bin_1_uns 2 585 then goto CV_RETURN_LESS; 2 586 else goto CV_RETURN_GREATER; 2 587 end; 2 588 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_1_unsa = cv_p_field_value_ptr -> cv_based_real_fix_bin_1_unsa 2 589 then goto CV_RETURN_EQUAL; 2 590 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_1_unsa < cv_p_field_value_ptr -> cv_based_real_fix_bin_1_unsa 2 591 then goto CV_RETURN_LESS; 2 592 else goto CV_RETURN_GREATER; 2 593 2 594 CV_TYPE (34): /* real_fix_bin_2_uns */ 2 595 if arg_descriptor.packed 2 596 then 2 597 do; 2 598 unspec (cv_local_vector_real_fix_bin_2_uns) = 2 599 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 600 || substr (cv_p_vector_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 2 601 unspec (cv_local_field_real_fix_bin_2_uns) = 2 602 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 2 603 || substr (cv_p_field_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 2 604 if cv_local_vector_real_fix_bin_2_uns = cv_local_field_real_fix_bin_2_uns 2 605 then goto CV_RETURN_EQUAL; 2 606 else if cv_local_vector_real_fix_bin_2_uns < cv_local_field_real_fix_bin_2_uns 2 607 then goto CV_RETURN_LESS; 2 608 else goto CV_RETURN_GREATER; 2 609 end; 2 610 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_2_unsa = cv_p_field_value_ptr -> cv_based_real_fix_bin_2_unsa 2 611 then goto CV_RETURN_EQUAL; 2 612 else if cv_p_vector_value_ptr -> cv_based_real_fix_bin_2_unsa < cv_p_field_value_ptr -> cv_based_real_fix_bin_2_unsa 2 613 then goto CV_RETURN_LESS; 2 614 else goto CV_RETURN_GREATER; 2 615 2 616 CV_TYPE (43): /* real_fix_dec_4bit_bytealigned_ls */ 2 617 call 2 618 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, cv_p_vector_value_ptr, 2 619 cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 2 620 return; 2 621 2 622 CV_TYPE (44): /* real_flt_dec_4bit_byte_alig ned_dtype */ 2 623 call 2 624 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 2 625 cv_p_vector_value_ptr, cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 2 626 return; 2 627 2 628 CV_TYPE (45): /* cplx_fix_dec_4bit_bytealigned_ls */ 2 629 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 630 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 631 2 632 cv_vector_imaginary_part_value_ptr = 2 633 addcharno (cv_p_vector_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 2, 2, 35, 18))); 2 634 cv_field_imaginary_part_value_ptr = 2 635 addcharno (cv_p_field_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 2, 2, 35, 18))); 2 636 2 637 call 2 638 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, 2 639 cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key) 2 640 ; 2 641 if cv_p_vector_equal_to_key 2 642 then call 2 643 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, 2 644 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 2 645 cv_p_vector_less_than_key); 2 646 2 647 return; 2 648 2 649 CV_TYPE (46): /* cplx_flt_dec_4bit_bytealigned */ 2 650 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 2 651 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 2 652 2 653 cv_vector_imaginary_part_value_ptr = 2 654 addcharno (cv_p_vector_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 4, 2, 35, 18))); 2 655 cv_field_imaginary_part_value_ptr = 2 656 addcharno (cv_p_field_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 4, 2, 35, 18))); 2 657 2 658 call 2 659 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 2 660 cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key) 2 661 ; 2 662 if cv_p_vector_equal_to_key 2 663 then call 2 664 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 2 665 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 2 666 cv_p_vector_less_than_key); 2 667 2 668 return; 2 669 2 670 2 671 CV_TYPE (13): 2 672 CV_TYPE (14): 2 673 CV_TYPE (15): 2 674 CV_TYPE (16): 2 675 CV_TYPE (17): 2 676 CV_TYPE (18): 2 677 CV_TYPE (23): 2 678 CV_TYPE (24): 2 679 CV_TYPE (25): 2 680 CV_TYPE (26): 2 681 CV_TYPE (27): 2 682 CV_TYPE (28): 2 683 CV_TYPE (29): 2 684 CV_TYPE (30): 2 685 CV_TYPE (31): 2 686 CV_TYPE (32): 2 687 CV_TYPE (35): 2 688 CV_TYPE (36): 2 689 CV_TYPE (37): 2 690 CV_TYPE (38): 2 691 CV_TYPE (39): 2 692 CV_TYPE (40): 2 693 CV_TYPE (41): 2 694 CV_TYPE (42): 2 695 cv_p_code = dm_error_$unimplemented_data_type; 2 696 return; 2 697 2 698 CV_RETURN_EQUAL: 2 699 cv_p_vector_equal_to_key = "1"b; 2 700 cv_p_vector_less_than_key = "0"b; 2 701 return; 2 702 2 703 CV_RETURN_LESS: 2 704 cv_p_vector_equal_to_key = "0"b; 2 705 cv_p_vector_less_than_key = "1"b; 2 706 return; 2 707 2 708 CV_RETURN_GREATER: 2 709 cv_p_vector_equal_to_key = "0"b; 2 710 cv_p_vector_less_than_key = "0"b; 2 711 return; 2 712 3 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 3 2* 3 3* James R. Davis 1 Mar 79 */ 3 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 3 5 3 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 3 7 2 flag bit (1) unal, 3 8 2 type fixed bin (6) unsigned unal, 3 9 2 packed bit (1) unal, 3 10 2 number_dims fixed bin (4) unsigned unal, 3 11 2 size fixed bin (24) unsigned unal; 3 12 3 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 3 14 2 flag bit (1) unal, 3 15 2 type fixed bin (6) unsigned unal, 3 16 2 packed bit (1) unal, 3 17 2 number_dims fixed bin (4) unsigned unal, 3 18 2 scale fixed bin (11) unal, 3 19 2 precision fixed bin (12) unsigned unal; 3 20 3 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 3 22 2 flag bit (1) unal, /* = "1"b */ 3 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 3 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 3 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 3 26 2 size bit (24) unal, 3 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 3 28 3 low fixed bin (35), 3 29 3 high fixed bin (35), 3 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 3 31 2 real_type fixed bin (18) unsigned unal, 3 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 3 33 3 34 dcl arg_descriptor_ptr ptr; 3 35 3 36 dcl extended_arg_type fixed bin init (58); 3 37 3 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 2 713 2 714 4 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 4 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 4 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 4 8* Objects of this type are PASCAL string types. 4 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 11* Added the new C types. 4 12* END HISTORY COMMENTS */ 4 13 4 14 /* This include file defines mnemonic names for the Multics 4 15* standard descriptor types, using both pl1 and cobol terminology. 4 16* PG 780613 4 17* JRD 790530 4 18* JRD 791016 4 19* MBW 810731 4 20* TGO 830614 Add hex types. 4 21* Modified June 83 JMAthane to add PASCAL data types 4 22* TGO 840120 Add float dec extended and generic, float binary generic 4 23**/ 4 24 4 25 dcl (real_fix_bin_1_dtype init (1), 4 26 real_fix_bin_2_dtype init (2), 4 27 real_flt_bin_1_dtype init (3), 4 28 real_flt_bin_2_dtype init (4), 4 29 cplx_fix_bin_1_dtype init (5), 4 30 cplx_fix_bin_2_dtype init (6), 4 31 cplx_flt_bin_1_dtype init (7), 4 32 cplx_flt_bin_2_dtype init (8), 4 33 real_fix_dec_9bit_ls_dtype init (9), 4 34 real_flt_dec_9bit_dtype init (10), 4 35 cplx_fix_dec_9bit_ls_dtype init (11), 4 36 cplx_flt_dec_9bit_dtype init (12), 4 37 pointer_dtype init (13), 4 38 offset_dtype init (14), 4 39 label_dtype init (15), 4 40 entry_dtype init (16), 4 41 structure_dtype init (17), 4 42 area_dtype init (18), 4 43 bit_dtype init (19), 4 44 varying_bit_dtype init (20), 4 45 char_dtype init (21), 4 46 varying_char_dtype init (22), 4 47 file_dtype init (23), 4 48 real_fix_dec_9bit_ls_overp_dtype init (29), 4 49 real_fix_dec_9bit_ts_overp_dtype init (30), 4 50 real_fix_bin_1_uns_dtype init (33), 4 51 real_fix_bin_2_uns_dtype init (34), 4 52 real_fix_dec_9bit_uns_dtype init (35), 4 53 real_fix_dec_9bit_ts_dtype init (36), 4 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 4 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 4 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 4 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 4 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 4 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 4 60 real_flt_dec_4bit_bytealigned_dtype init (44), 4 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 4 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 4 63 real_flt_hex_1_dtype init (47), 4 64 real_flt_hex_2_dtype init (48), 4 65 cplx_flt_hex_1_dtype init (49), 4 66 cplx_flt_hex_2_dtype init (50), 4 67 c_typeref_dtype init (54), 4 68 c_enum_dtype init (55), 4 69 c_enum_const_dtype init (56), 4 70 c_union_dtype init (57), 4 71 algol68_straight_dtype init (59), 4 72 algol68_format_dtype init (60), 4 73 algol68_array_descriptor_dtype init (61), 4 74 algol68_union_dtype init (62), 4 75 4 76 cobol_comp_6_dtype init (1), 4 77 cobol_comp_7_dtype init (1), 4 78 cobol_display_ls_dtype init (9), 4 79 cobol_structure_dtype init (17), 4 80 cobol_char_string_dtype init (21), 4 81 cobol_display_ls_overp_dtype init (29), 4 82 cobol_display_ts_overp_dtype init (30), 4 83 cobol_display_uns_dtype init (35), 4 84 cobol_display_ts_dtype init (36), 4 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 4 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 4 87 cobol_comp_5_uns_dtype init (40), 4 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 4 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 4 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 4 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 4 92 cplx_flt_dec_generic_dtype init (84), 4 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 4 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 4 95 4 96 dcl (ft_integer_dtype init (1), 4 97 ft_real_dtype init (3), 4 98 ft_double_dtype init (4), 4 99 ft_complex_dtype init (7), 4 100 ft_complex_double_dtype init (8), 4 101 ft_external_dtype init (16), 4 102 ft_logical_dtype init (19), 4 103 ft_char_dtype init (21), 4 104 ft_hex_real_dtype init (47), 4 105 ft_hex_double_dtype init (48), 4 106 ft_hex_complex_dtype init (49), 4 107 ft_hex_complex_double_dtype init (50) 4 108 ) fixed bin internal static options (constant); 4 109 4 110 dcl (algol68_short_int_dtype init (1), 4 111 algol68_int_dtype init (1), 4 112 algol68_long_int_dtype init (2), 4 113 algol68_real_dtype init (3), 4 114 algol68_long_real_dtype init (4), 4 115 algol68_compl_dtype init (7), 4 116 algol68_long_compl_dtype init (8), 4 117 algol68_bits_dtype init (19), 4 118 algol68_bool_dtype init (19), 4 119 algol68_char_dtype init (21), 4 120 algol68_byte_dtype init (21), 4 121 algol68_struct_struct_char_dtype init (22), 4 122 algol68_struct_struct_bool_dtype init (20) 4 123 ) fixed bin internal static options (constant); 4 124 4 125 dcl (label_constant_runtime_dtype init (24), 4 126 int_entry_runtime_dtype init (25), 4 127 ext_entry_runtime_dtype init (26), 4 128 ext_procedure_runtime_dtype init (27), 4 129 picture_runtime_dtype init (63) 4 130 ) fixed bin internal static options (constant); 4 131 4 132 dcl (pascal_integer_dtype init (1), 4 133 pascal_real_dtype init (4), 4 134 pascal_label_dtype init (24), 4 135 pascal_internal_procedure_dtype init (25), 4 136 pascal_exportable_procedure_dtype init (26), 4 137 pascal_imported_procedure_dtype init (27), 4 138 pascal_typed_pointer_type_dtype init (64), 4 139 pascal_char_dtype init (65), 4 140 pascal_boolean_dtype init (66), 4 141 pascal_record_file_type_dtype init (67), 4 142 pascal_record_type_dtype init (68), 4 143 pascal_set_dtype init (69), 4 144 pascal_enumerated_type_dtype init (70), 4 145 pascal_enumerated_type_element_dtype init (71), 4 146 pascal_enumerated_type_instance_dtype init (72), 4 147 pascal_user_defined_type_dtype init (73), 4 148 pascal_user_defined_type_instance_dtype init (74), 4 149 pascal_text_file_dtype init (75), 4 150 pascal_procedure_type_dtype init (76), 4 151 pascal_variable_formal_parameter_dtype init (77), 4 152 pascal_value_formal_parameter_dtype init (78), 4 153 pascal_entry_formal_parameter_dtype init (79), 4 154 pascal_parameter_procedure_dtype init (80), 4 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 4 156 4 157 4 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 2 715 2 716 5 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 5 2 /* format: style3 */ 5 3 5 4 /* These constants are to be used for the flags argument of sub_err_ */ 5 5 /* They are just "string (condition_info_header.action_flags)" */ 5 6 5 7 declare ( 5 8 ACTION_CAN_RESTART init (""b), 5 9 ACTION_CANT_RESTART init ("1"b), 5 10 ACTION_DEFAULT_RESTART 5 11 init ("01"b), 5 12 ACTION_QUIET_RESTART 5 13 init ("001"b), 5 14 ACTION_SUPPORT_SIGNAL 5 15 init ("0001"b) 5 16 ) bit (36) aligned internal static options (constant); 5 17 5 18 /* End include file */ 2 717 2 718 end COMPARE_VALUES; 2 719 2 720 /* END INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 1 321 1 322 6 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 6 2 6 3 /* DESCRIPTION: 6 4* 6 5* The field_table describes the layout of a set of fields in a 6 6* formatted data string. Such a string is the stored representation of a 6 7* record or a key. Fields are placed side-by-side in the string in the 6 8* order they appear in the field_table.field array. The string is divided 6 9* into the fixed portion and the varying portion. In the fixed portion 6 10* appear fixed-length fields and fixed-size length-fields for 6 11* varying-length fields. In the varying portion appear varying length 6 12* fields. The length-field for a varying-length field contains the length 6 13* of the field values either in bits or in characters, depending on the 6 14* data type of the field. 6 15**/ 6 16 6 17 /* HISTORY: 6 18*Written by Matthew Pierret, 04/01/82. 6 19*Modified: 6 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 6 21* that if the field is varying, its length is expressed in 6 22* bytes/characters. 6 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 6 24* of 17, changed version to 2, changed version field to char(8) from 6 25* fixed bin (17). 6 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 6 27* put field names in one string (field_names) at the end of the 6 28* structure. Added field.location_of_name and field.length_of_name 6 29* for locating the field name in field_names. Aligned all "fixed bin" 6 30* structure elements. Changed maximum_field_name_length to 6 31* length_of_field_names. 6 32**/ 6 33 6 34 /* format: style2 */ 6 35 6 36 dcl 1 field_table aligned based (field_table_ptr), 6 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 6 38 2 number_of_fields fixed bin (17), 6 39 2 length_of_field_names 6 40 fixed bin (17), /* length of field_names in characters */ 6 41 2 location_of_first_varying_field 6 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 6 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 6 44 3 flags aligned, 6 45 4 descriptor_is_varying 6 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 6 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 6 48 /* containing the id of the element in which the descriptor is stored. */ 6 49 4 length_is_in_characters 6 50 bit (1) unal, /* if field is varying, the length field describes its length */ 6 51 /* in characters instead of in bits */ 6 52 4 must_be_zero bit (34) unal, 6 53 3 descriptor bit (36) aligned, 6 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 6 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 6 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 6 57 3 length_of_name fixed bin (17), /* length of name in characters */ 6 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 6 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 6 60 3 varying_field_index 6 61 fixed bin (17), /* ordinality among varying fields of field N */ 6 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 6 63 6 64 6 65 dcl field_table_ptr ptr; 6 66 dcl ft_length_of_field_names 6 67 fixed bin; 6 68 dcl ft_number_of_fields fixed bin; 6 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 6 70 6 71 dcl field_name char (field_name_length) based (field_name_ptr); 6 72 6 73 dcl field_name_length fixed bin; 6 74 dcl field_name_ptr ptr; 6 75 6 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 1 323 1 324 7 1 /* *********************************************************** 7 2* * * 7 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 7 4* * * 7 5* *********************************************************** */ 7 6 /* BEGIN INCLUDE FILE - vu_typed_vector.incl.pl1 */ 7 7 7 8 /* Written by Lindsey Spratt, 04/02/82. 7 9*Modified: 7 10*09/01/82 by Lindsey Spratt: Changed value_ptr in simple_typed_vector to be 7 11* unaligned. Changed the type number of the simple_typed_vector to 7 12* "3" from "1". The OLD_SIMPLE_TYPED_VECTOR_TYPE is now an invalid 7 13* type. 7 14**/ 7 15 7 16 /* format: style2,ind3 */ 7 17 dcl 1 simple_typed_vector based (simple_typed_vector_ptr), 7 18 2 type fixed bin (17) unal, 7 19 2 number_of_dimensions 7 20 fixed bin (17) unal, 7 21 2 dimension (stv_number_of_dimensions refer (simple_typed_vector.number_of_dimensions)), 7 22 3 value_ptr ptr unaligned; 7 23 7 24 dcl 1 general_typed_vector based (general_typed_vector_ptr), 7 25 2 type fixed bin (17) unal, 7 26 2 number_of_dimensions 7 27 fixed bin (17) unal, 7 28 2 dimension (gtv_number_of_dimensions refer (general_typed_vector.number_of_dimensions)), 7 29 3 identifier fixed bin (17) unal, 7 30 3 pad bit (18) unal, 7 31 3 value_ptr ptr unal; 7 32 7 33 dcl simple_typed_vector_ptr 7 34 ptr; 7 35 dcl stv_number_of_dimensions 7 36 fixed bin (17); 7 37 7 38 dcl general_typed_vector_ptr 7 39 ptr; 7 40 dcl gtv_number_of_dimensions 7 41 fixed bin (17); 7 42 7 43 dcl ( 7 44 OLD_SIMPLE_TYPED_VECTOR_TYPE 7 45 init (1), /* value_ptr was aligned. */ 7 46 GENERAL_TYPED_VECTOR_TYPE 7 47 init (2), 7 48 SIMPLE_TYPED_VECTOR_TYPE 7 49 init (3) 7 50 ) fixed bin (17) internal static options (constant); 7 51 7 52 /* END INCLUDE FILE - vu_typed_vector.incl.pl1 */ 1 325 1 326 8 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 8 2* 8 3* James R. Davis 1 Mar 79 */ 8 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 8 5 8 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 8 7 2 flag bit (1) unal, 8 8 2 type fixed bin (6) unsigned unal, 8 9 2 packed bit (1) unal, 8 10 2 number_dims fixed bin (4) unsigned unal, 8 11 2 size fixed bin (24) unsigned unal; 8 12 8 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 8 14 2 flag bit (1) unal, 8 15 2 type fixed bin (6) unsigned unal, 8 16 2 packed bit (1) unal, 8 17 2 number_dims fixed bin (4) unsigned unal, 8 18 2 scale fixed bin (11) unal, 8 19 2 precision fixed bin (12) unsigned unal; 8 20 8 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 8 22 2 flag bit (1) unal, /* = "1"b */ 8 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 8 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 8 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 8 26 2 size bit (24) unal, 8 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 8 28 3 low fixed bin (35), 8 29 3 high fixed bin (35), 8 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 8 31 2 real_type fixed bin (18) unsigned unal, 8 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 8 33 8 34 dcl arg_descriptor_ptr ptr; 8 35 8 36 dcl extended_arg_type fixed bin init (58); 8 37 8 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 1 327 1 328 9 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 9 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 9 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 9 8* Objects of this type are PASCAL string types. 9 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 9 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 9 11* Added the new C types. 9 12* END HISTORY COMMENTS */ 9 13 9 14 /* This include file defines mnemonic names for the Multics 9 15* standard descriptor types, using both pl1 and cobol terminology. 9 16* PG 780613 9 17* JRD 790530 9 18* JRD 791016 9 19* MBW 810731 9 20* TGO 830614 Add hex types. 9 21* Modified June 83 JMAthane to add PASCAL data types 9 22* TGO 840120 Add float dec extended and generic, float binary generic 9 23**/ 9 24 9 25 dcl (real_fix_bin_1_dtype init (1), 9 26 real_fix_bin_2_dtype init (2), 9 27 real_flt_bin_1_dtype init (3), 9 28 real_flt_bin_2_dtype init (4), 9 29 cplx_fix_bin_1_dtype init (5), 9 30 cplx_fix_bin_2_dtype init (6), 9 31 cplx_flt_bin_1_dtype init (7), 9 32 cplx_flt_bin_2_dtype init (8), 9 33 real_fix_dec_9bit_ls_dtype init (9), 9 34 real_flt_dec_9bit_dtype init (10), 9 35 cplx_fix_dec_9bit_ls_dtype init (11), 9 36 cplx_flt_dec_9bit_dtype init (12), 9 37 pointer_dtype init (13), 9 38 offset_dtype init (14), 9 39 label_dtype init (15), 9 40 entry_dtype init (16), 9 41 structure_dtype init (17), 9 42 area_dtype init (18), 9 43 bit_dtype init (19), 9 44 varying_bit_dtype init (20), 9 45 char_dtype init (21), 9 46 varying_char_dtype init (22), 9 47 file_dtype init (23), 9 48 real_fix_dec_9bit_ls_overp_dtype init (29), 9 49 real_fix_dec_9bit_ts_overp_dtype init (30), 9 50 real_fix_bin_1_uns_dtype init (33), 9 51 real_fix_bin_2_uns_dtype init (34), 9 52 real_fix_dec_9bit_uns_dtype init (35), 9 53 real_fix_dec_9bit_ts_dtype init (36), 9 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 9 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 9 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 9 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 9 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 9 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 9 60 real_flt_dec_4bit_bytealigned_dtype init (44), 9 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 9 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 9 63 real_flt_hex_1_dtype init (47), 9 64 real_flt_hex_2_dtype init (48), 9 65 cplx_flt_hex_1_dtype init (49), 9 66 cplx_flt_hex_2_dtype init (50), 9 67 c_typeref_dtype init (54), 9 68 c_enum_dtype init (55), 9 69 c_enum_const_dtype init (56), 9 70 c_union_dtype init (57), 9 71 algol68_straight_dtype init (59), 9 72 algol68_format_dtype init (60), 9 73 algol68_array_descriptor_dtype init (61), 9 74 algol68_union_dtype init (62), 9 75 9 76 cobol_comp_6_dtype init (1), 9 77 cobol_comp_7_dtype init (1), 9 78 cobol_display_ls_dtype init (9), 9 79 cobol_structure_dtype init (17), 9 80 cobol_char_string_dtype init (21), 9 81 cobol_display_ls_overp_dtype init (29), 9 82 cobol_display_ts_overp_dtype init (30), 9 83 cobol_display_uns_dtype init (35), 9 84 cobol_display_ts_dtype init (36), 9 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 9 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 9 87 cobol_comp_5_uns_dtype init (40), 9 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 9 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 9 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 9 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 9 92 cplx_flt_dec_generic_dtype init (84), 9 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 9 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 9 95 9 96 dcl (ft_integer_dtype init (1), 9 97 ft_real_dtype init (3), 9 98 ft_double_dtype init (4), 9 99 ft_complex_dtype init (7), 9 100 ft_complex_double_dtype init (8), 9 101 ft_external_dtype init (16), 9 102 ft_logical_dtype init (19), 9 103 ft_char_dtype init (21), 9 104 ft_hex_real_dtype init (47), 9 105 ft_hex_double_dtype init (48), 9 106 ft_hex_complex_dtype init (49), 9 107 ft_hex_complex_double_dtype init (50) 9 108 ) fixed bin internal static options (constant); 9 109 9 110 dcl (algol68_short_int_dtype init (1), 9 111 algol68_int_dtype init (1), 9 112 algol68_long_int_dtype init (2), 9 113 algol68_real_dtype init (3), 9 114 algol68_long_real_dtype init (4), 9 115 algol68_compl_dtype init (7), 9 116 algol68_long_compl_dtype init (8), 9 117 algol68_bits_dtype init (19), 9 118 algol68_bool_dtype init (19), 9 119 algol68_char_dtype init (21), 9 120 algol68_byte_dtype init (21), 9 121 algol68_struct_struct_char_dtype init (22), 9 122 algol68_struct_struct_bool_dtype init (20) 9 123 ) fixed bin internal static options (constant); 9 124 9 125 dcl (label_constant_runtime_dtype init (24), 9 126 int_entry_runtime_dtype init (25), 9 127 ext_entry_runtime_dtype init (26), 9 128 ext_procedure_runtime_dtype init (27), 9 129 picture_runtime_dtype init (63) 9 130 ) fixed bin internal static options (constant); 9 131 9 132 dcl (pascal_integer_dtype init (1), 9 133 pascal_real_dtype init (4), 9 134 pascal_label_dtype init (24), 9 135 pascal_internal_procedure_dtype init (25), 9 136 pascal_exportable_procedure_dtype init (26), 9 137 pascal_imported_procedure_dtype init (27), 9 138 pascal_typed_pointer_type_dtype init (64), 9 139 pascal_char_dtype init (65), 9 140 pascal_boolean_dtype init (66), 9 141 pascal_record_file_type_dtype init (67), 9 142 pascal_record_type_dtype init (68), 9 143 pascal_set_dtype init (69), 9 144 pascal_enumerated_type_dtype init (70), 9 145 pascal_enumerated_type_element_dtype init (71), 9 146 pascal_enumerated_type_instance_dtype init (72), 9 147 pascal_user_defined_type_dtype init (73), 9 148 pascal_user_defined_type_instance_dtype init (74), 9 149 pascal_text_file_dtype init (75), 9 150 pascal_procedure_type_dtype init (76), 9 151 pascal_variable_formal_parameter_dtype init (77), 9 152 pascal_value_formal_parameter_dtype init (78), 9 153 pascal_entry_formal_parameter_dtype init (79), 9 154 pascal_parameter_procedure_dtype init (80), 9 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 9 156 9 157 9 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 1 329 1 330 10 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 10 2 /* format: style3 */ 10 3 10 4 /* These constants are to be used for the flags argument of sub_err_ */ 10 5 /* They are just "string (condition_info_header.action_flags)" */ 10 6 10 7 declare ( 10 8 ACTION_CAN_RESTART init (""b), 10 9 ACTION_CANT_RESTART init ("1"b), 10 10 ACTION_DEFAULT_RESTART 10 11 init ("01"b), 10 12 ACTION_QUIET_RESTART 10 13 init ("001"b), 10 14 ACTION_SUPPORT_SIGNAL 10 15 init ("0001"b) 10 16 ) bit (36) aligned internal static options (constant); 10 17 10 18 /* End include file */ 1 331 1 332 end COMPARE_VECTOR_TO_STRING; 1 333 1 334 /* END INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 155 156 157 end dmu_compare_vector_to_str; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1359.2 dmu_compare_vector_to_str.pl1 >special_ldd>install>MR12.2-1184>dmu_compare_vector_to_str.pl1 155 1 04/09/87 0850.7 dm_comp_vec_str_proc.incl.pl1 >ldd>include>dm_comp_vec_str_proc.incl.pl1 1-321 2 07/20/87 1749.7 dm_comp_values_proc.incl.pl1 >ldd>include>dm_comp_values_proc.incl.pl1 2-713 3 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 2-715 4 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 2-717 5 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 1-323 6 01/07/85 0858.8 dm_field_table.incl.pl1 >ldd>include>dm_field_table.incl.pl1 1-325 7 10/14/83 1609.1 vu_typed_vector.incl.pl1 >ldd>include>vu_typed_vector.incl.pl1 1-327 8 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 1-329 9 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 1-331 10 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 000167 constant bit(36) initial dcl 10-7 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-165* 1-171* ACTION_CANT_RESTART 000167 constant bit(36) initial dcl 5-7 in procedure "COMPARE_VALUES" set ref 2-226* 2-232* 2-237* BIT4_DECIMAL_EXPONENT constant fixed bin(17,0) initial dcl 2-174 ref 2-622 2-658 2-662 BIT9_DECIMAL_EXPONENT constant fixed bin(17,0) initial dcl 2-174 ref 2-474 2-499 2-501 2-504 2-508 BITS_PER_BYTE constant fixed bin(17,0) initial dcl 1-141 ref 1-199 1-230 1-277 BITS_PER_EXPONENT constant fixed bin(17,0) initial dcl 2-174 ref 2-309 2-309 2-312 2-312 2-333 2-333 2-336 2-336 2-414 2-416 2-444 2-446 BITS_PER_WORD constant fixed bin(17,0) initial dcl 2-174 in procedure "COMPARE_VALUES" ref 2-247 2-251 2-254 2-258 2-278 2-282 2-285 2-289 2-309 2-312 2-333 2-336 2-363 2-364 2-391 2-392 2-421 2-422 2-451 2-452 2-534 2-538 2-576 2-579 2-598 2-601 BITS_PER_WORD constant fixed bin(17,0) initial dcl 1-141 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-199 1-204 1-211 1-223 1-230 BYTES_PER_WORD constant fixed bin(17,0) initial dcl 1-141 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-218 BYTES_PER_WORD constant fixed bin(17,0) initial dcl 2-174 in procedure "COMPARE_VALUES" ref 2-562 2-566 DEFAULT_LENGTH constant fixed bin(17,0) initial dcl 2-174 ref 2-368 2-373 2-396 2-401 2-426 2-431 2-456 2-461 FIELD_TABLE_VERSION_3 000150 constant char(8) initial dcl 6-69 set ref 1-171 1-171* HIGHEST_SUPPORTED_DATA_TYPE 000136 constant fixed bin(17,0) initial dcl 2-174 set ref 2-226 2-226* NEED_TO_CHECK_FOR_ALIGNMENT 000134 constant bit(1) initial array packed unaligned dcl 2-185 ref 2-232 REQUIRED_ALIGNMENT 000056 constant fixed bin(17,0) initial array dcl 2-192 set ref 2-232 2-232* 2-237 2-237* SIGN constant fixed bin(17,0) initial dcl 2-174 ref 2-309 2-309 2-312 2-312 2-333 2-333 2-336 2-336 2-358 2-359 2-386 2-387 2-414 2-416 2-444 2-446 2-468 2-474 2-483 2-484 2-485 2-489 2-499 2-501 2-504 2-508 2-616 2-622 2-637 2-641 2-658 2-662 SIMPLE_TYPED_VECTOR_TYPE 000204 constant fixed bin(17,0) initial dcl 7-43 set ref 1-165 1-165* VECTOR_VALUE_IS_IN_VECTOR_FORMAT constant bit(1) initial dcl 1-146 set ref 1-290* addbitno builtin function dcl 1-135 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-202 1-204 1-221 1-223 1-266 1-272 1-282 addbitno builtin function dcl 2-167 in procedure "COMPARE_VALUES" ref 2-358 2-359 2-363 2-364 2-386 2-387 2-391 2-392 2-414 2-416 2-421 2-422 2-444 2-446 2-451 2-452 addcharno builtin function dcl 2-167 ref 2-483 2-484 2-499 2-501 2-632 2-634 2-653 2-655 addr builtin function dcl 1-135 ref 1-192 1-254 1-258 2-368 2-368 2-373 2-373 2-396 2-396 2-401 2-401 2-426 2-426 2-431 2-431 2-456 2-456 2-461 2-461 arg_descriptor based structure level 1 dcl 3-6 in procedure "COMPARE_VALUES" set ref 2-424 2-454 arg_descriptor based structure level 1 dcl 8-6 in procedure "COMPARE_VECTOR_TO_STRING" arg_descriptor_ptr 000172 automatic pointer dcl 8-34 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-192* 1-194 1-194 1-196 1-199 1-215 1-218 1-302 arg_descriptor_ptr 000240 automatic pointer dcl 3-34 in procedure "COMPARE_VALUES" set ref 2-224* 2-226 2-226 2-226 2-232 2-232 2-232 2-232 2-237 2-237 2-242 2-243 2-247 2-247 2-251 2-251 2-254 2-254 2-258 2-258 2-274 2-278 2-278 2-282 2-282 2-285 2-285 2-289 2-289 2-305 2-309 2-309 2-312 2-312 2-329 2-333 2-333 2-336 2-336 2-355 2-358 2-359 2-366 2-383 2-386 2-387 2-394 2-411 2-414 2-416 2-424 2-441 2-444 2-446 2-454 2-468 2-474 2-483 2-484 2-485 2-489 2-499 2-501 2-504 2-508 2-515 2-515 2-519 2-519 2-544 2-544 2-548 2-548 2-572 2-576 2-576 2-579 2-579 2-594 2-598 2-598 2-601 2-601 2-616 2-622 2-632 2-634 2-637 2-641 2-653 2-655 2-658 2-662 bin builtin function dcl 1-135 ref 1-273 1-309 bit_dtype constant fixed bin(17,0) initial dcl 9-25 ref 1-196 1-208 ceil builtin function dcl 2-167 ref 2-632 2-634 2-653 2-655 char_dtype constant fixed bin(17,0) initial dcl 9-25 ref 1-215 1-227 copy builtin function dcl 2-167 ref 2-247 2-251 2-254 2-258 2-278 2-282 2-285 2-289 2-309 2-312 2-333 2-336 2-576 2-579 2-598 2-601 cv_based_real_fix_bin_1_unsa based fixed bin(35,0) unsigned dcl 2-156 ref 2-588 2-588 2-590 2-590 cv_based_real_fix_bin_1a based fixed bin(35,0) dcl 2-138 ref 2-267 2-267 2-269 2-269 cv_based_real_fix_bin_1u based fixed bin(35,0) packed unaligned dcl 2-142 ref 2-534 2-538 2-562 2-566 cv_based_real_fix_bin_2_unsa based fixed bin(71,0) unsigned dcl 2-158 ref 2-610 2-610 2-612 2-612 cv_based_real_fix_bin_2a based fixed bin(71,0) dcl 2-140 ref 2-298 2-298 2-300 2-300 cv_based_real_flt_bin_1a based float bin(27) dcl 2-147 ref 2-323 2-323 2-325 2-325 cv_based_real_flt_bin_2a based float bin(63) dcl 2-149 ref 2-346 2-346 2-348 2-348 cv_bit_string based bit packed unaligned dcl 2-135 ref 2-247 2-247 2-251 2-254 2-254 2-258 2-278 2-278 2-282 2-285 2-285 2-289 2-309 2-312 2-333 2-336 2-515 2-515 2-519 2-519 2-525 2-525 2-530 2-530 2-534 2-534 2-538 2-538 2-576 2-579 2-598 2-601 cv_char_string based char packed unaligned dcl 2-136 ref 2-544 2-544 2-548 2-548 2-553 2-553 2-558 2-558 2-562 2-562 2-566 2-566 cv_field_imaginary_part_value_ptr 000234 automatic pointer initial dcl 2-124 set ref 2-124* 2-359* 2-364* 2-373* 2-387* 2-392* 2-401* 2-416* 2-422* 2-431* 2-446* 2-452* 2-461* 2-484* 2-489* 2-501* 2-508* 2-634* 2-641* 2-655* 2-662* cv_field_real_part_value_ptr 000232 automatic pointer initial dcl 2-124 set ref 2-124* 2-352* 2-368* 2-380* 2-396* 2-408* 2-426* 2-438* 2-456* 2-482* 2-485* 2-498* 2-504* 2-630* 2-637* 2-651* 2-658* cv_local_arg_descriptor 000236 automatic structure level 1 packed packed unaligned dcl 2-128 set ref 2-424* 2-426 2-426 2-431 2-431 2-454* 2-456 2-456 2-461 2-461 cv_local_field_real_fix_bin_1 000205 automatic fixed bin(35,0) dcl 2-99 set ref 2-254* 2-258* 2-261 2-263 cv_local_field_real_fix_bin_1_uns 000221 automatic fixed bin(35,0) unsigned dcl 2-117 set ref 2-579* 2-582 2-584 cv_local_field_real_fix_bin_2 000210 automatic fixed bin(71,0) dcl 2-103 set ref 2-285* 2-289* 2-292 2-294 cv_local_field_real_fix_bin_2_uns 000224 automatic fixed bin(71,0) unsigned dcl 2-121 set ref 2-601* 2-604 2-606 cv_local_field_real_flt_bin_1 000213 automatic float bin(27) dcl 2-108 set ref 2-312* 2-317 2-319 cv_local_field_real_flt_bin_2 000216 automatic float bin(63) dcl 2-112 set ref 2-336* 2-340 2-342 cv_local_fixed_arg_descriptor 000237 automatic structure level 1 packed packed unaligned dcl 2-130 set ref 2-366* 2-368 2-368 2-373 2-373 2-394* 2-396 2-396 2-401 2-401 cv_local_vector_real_fix_bin_1 000204 automatic fixed bin(35,0) dcl 2-97 set ref 2-247* 2-251* 2-261 2-263 cv_local_vector_real_fix_bin_1_uns 000220 automatic fixed bin(35,0) unsigned dcl 2-115 set ref 2-576* 2-582 2-584 cv_local_vector_real_fix_bin_2 000206 automatic fixed bin(71,0) dcl 2-101 set ref 2-278* 2-282* 2-292 2-294 cv_local_vector_real_fix_bin_2_uns 000222 automatic fixed bin(71,0) unsigned dcl 2-119 set ref 2-598* 2-604 2-606 cv_local_vector_real_flt_bin_1 000212 automatic float bin(27) dcl 2-106 set ref 2-309* 2-317 2-319 cv_local_vector_real_flt_bin_2 000214 automatic float bin(63) dcl 2-110 set ref 2-333* 2-340 2-342 cv_p_code 000122 automatic fixed bin(35,0) dcl 1-85 set ref 1-177* 1-247 1-317 2-222* 2-368* 2-371 2-373* 2-396* 2-399 2-401* 2-426* 2-429 2-431* 2-456* 2-459 2-461* 2-671* cv_p_descriptor_ptr 000124 automatic pointer dcl 1-86 set ref 1-254* 1-258* 1-260 1-260 2-224 cv_p_field_value_length 000126 automatic fixed bin(35,0) dcl 1-87 set ref 1-253* 1-265* 1-273* 1-277 1-280 2-525 2-530 2-534 2-538 2-553 2-558 2-562 2-566 cv_p_field_value_ptr 000130 automatic pointer dcl 1-89 set ref 1-252* 1-266* 1-282* 2-237 2-237* 2-254 2-254 2-258 2-267 2-269 2-285 2-285 2-289 2-298 2-300 2-312 2-323 2-325 2-336 2-346 2-348 2-352 2-359 2-364 2-380 2-387 2-392 2-408 2-416 2-422 2-438 2-446 2-452 2-468* 2-474* 2-482 2-484 2-498 2-501 2-515 2-519 2-525 2-530 2-534 2-538 2-544 2-548 2-553 2-558 2-562 2-566 2-579 2-588 2-590 2-601 2-610 2-612 2-616* 2-622* 2-630 2-634 2-651 2-655 cv_p_vector_equal_to_key 000132 automatic bit(1) dcl 1-90 set ref 1-178* 1-247 1-302 1-302* 1-309 1-314 2-368* 2-373 2-373* 2-396* 2-401 2-401* 2-426* 2-431 2-431* 2-456* 2-461 2-461* 2-468* 2-474* 2-485* 2-489 2-489* 2-504* 2-508 2-508* 2-616* 2-622* 2-637* 2-641 2-641* 2-658* 2-662 2-662* 2-698* 2-703* 2-708* cv_p_vector_less_than_key 000133 automatic bit(1) dcl 1-92 set ref 1-179* 1-316 2-368* 2-373* 2-396* 2-401* 2-426* 2-431* 2-456* 2-461* 2-468* 2-474* 2-485* 2-489* 2-504* 2-508* 2-616* 2-622* 2-637* 2-641* 2-658* 2-662* 2-700* 2-705* 2-710* cv_p_vector_value_is_in_field_format parameter bit(1) dcl 2-72 ref 2-65 2-525 2-553 cv_p_vector_value_length 000134 automatic fixed bin(35,0) dcl 1-94 set ref 1-288* 2-525 2-530 2-553 2-558 cv_p_vector_value_ptr 000136 automatic pointer dcl 1-96 set ref 1-287* 2-232 2-232* 2-247 2-247 2-251 2-267 2-269 2-278 2-278 2-282 2-298 2-300 2-309 2-323 2-325 2-333 2-346 2-348 2-354 2-358 2-363 2-382 2-386 2-391 2-410 2-414 2-421 2-440 2-444 2-451 2-468* 2-474* 2-480 2-483 2-496 2-499 2-515 2-519 2-525 2-530 2-534 2-534 2-538 2-538 2-544 2-548 2-553 2-558 2-562 2-562 2-566 2-566 2-576 2-588 2-590 2-598 2-610 2-612 2-616* 2-622* 2-628 2-632 2-649 2-653 cv_vector_imaginary_part_value_ptr 000230 automatic pointer initial dcl 2-124 set ref 2-124* 2-358* 2-363* 2-373* 2-386* 2-391* 2-401* 2-414* 2-421* 2-431* 2-444* 2-451* 2-461* 2-483* 2-489* 2-499* 2-508* 2-632* 2-641* 2-653* 2-662* cv_vector_real_part_value_ptr 000226 automatic pointer initial dcl 2-124 set ref 2-124* 2-354* 2-368* 2-382* 2-396* 2-410* 2-426* 2-440* 2-456* 2-480* 2-485* 2-496* 2-504* 2-628* 2-637* 2-649* 2-658* cvs_based_real_fix_bin_1u based fixed bin(35,0) packed unaligned dcl 1-126 ref 1-209 1-228 cvs_field_idx 000140 automatic fixed bin(17,0) dcl 1-99 set ref 1-247* 1-249 1-258 1-266 1-271 1-272 1-277 1-287 1-302* 1-309 cvs_field_value_offset 000141 automatic fixed bin(24,0) dcl 1-100 set ref 1-275* 1-282 cvs_key_string_length 000142 automatic fixed bin(35,0) dcl 1-101 set ref 1-161* cvs_key_string_ptr 000144 automatic pointer dcl 1-102 set ref 1-160* 1-202 1-221 1-266 1-272 1-282 cvs_last_field_idx 000146 automatic fixed bin(17,0) dcl 1-103 set ref 1-162* 1-181 1-188 1-191 1-192 1-202 1-221 1-237 1-249 1-302 cvs_last_field_is_truncated 000147 automatic bit(1) initial dcl 1-104 set ref 1-104* 1-186* 1-194* 1-212* 1-232* 1-235* 1-237 1-249 1-302 cvs_last_field_length_in_bits 000150 automatic fixed bin(35,0) dcl 1-106 set ref 1-211* 1-230* 1-237 cvs_last_field_length_ptr 000152 automatic pointer dcl 1-108 set ref 1-202* 1-204 1-209 1-221* 1-223 1-228 cvs_last_field_value_ptr 000154 automatic pointer dcl 1-110 set ref 1-204* 1-223* 1-252 cvs_length_field_length 000156 automatic fixed bin(35,0) dcl 1-112 set ref 1-271* 1-273 cvs_length_field_ptr 000160 automatic pointer dcl 1-114 set ref 1-272* 1-273 cvs_length_field_string based bit packed unaligned dcl 1-130 ref 1-273 cvs_location_of_first_varying_field 000162 automatic fixed bin(35,0) dcl 1-115 set ref 1-185* 1-237* 1-240* 1-243 cvs_maximum_field_idx 000163 automatic fixed bin(17,0) dcl 1-117 set ref 1-184* 1-191* 1-247 1-311 cvs_p_code 000113 automatic fixed bin(35,0) dcl 124 set ref 151 1-317* cvs_p_field_table_ptr 000100 automatic pointer dcl 111 set ref 140* 1-170 cvs_p_first_inequal_field_id 000110 automatic fixed bin(17,0) dcl 118 set ref 148 1-309* cvs_p_key_string_length 000106 automatic fixed bin(35,0) dcl 115 set ref 143* 1-161 cvs_p_key_string_ptr 000104 automatic pointer dcl 114 set ref 142* 1-160 cvs_p_last_field_idx 000107 automatic fixed bin(17,0) dcl 117 set ref 144* 1-162 cvs_p_simple_typed_vector_ptr 000102 automatic pointer dcl 112 set ref 141* 1-164 cvs_p_vector_equal_to_key 000111 automatic bit(1) dcl 120 set ref 149 1-311* 1-314* cvs_p_vector_less_than_key 000112 automatic bit(1) dcl 122 set ref 150 1-316* cvs_truncated_field_descriptor 000164 automatic structure level 1 packed packed unaligned dcl 1-118 set ref 1-254 cvs_varying_field_value_offset 000165 automatic fixed bin(24,0) dcl 1-121 set ref 1-243* 1-275 1-277* 1-277 1-280* 1-280 descriptor 6 based bit(36) array level 3 dcl 6-36 set ref 1-192 1-258 dimension 1 based structure array level 2 packed packed unaligned dcl 7-17 ref 1-184 1-191 1-311 dm_error_$unimplemented_data_type 000034 external static fixed bin(35,0) dcl 2-217 ref 2-671 dmu_compare_decimal_values$dmu_compare_dec4fl 000022 constant entry external dcl 2-207 ref 2-622 2-658 2-662 dmu_compare_decimal_values$dmu_compare_dec4ls 000024 constant entry external dcl 2-209 ref 2-616 2-637 2-641 dmu_compare_decimal_values$dmu_compare_dec9fl 000020 constant entry external dcl 2-205 ref 2-474 2-504 2-508 dmu_compare_decimal_values$dmu_compare_dec9ls 000016 constant entry external dcl 2-203 ref 2-468 2-485 2-489 dmu_compare_values 000014 constant entry external dcl 2-201 ref 2-368 2-373 2-396 2-401 2-426 2-431 2-456 2-461 error_table_$bad_arg 000032 external static fixed bin(35,0) dcl 2-216 set ref 2-226* 2-232* 2-237* error_table_$unimplemented_version 000012 external static fixed bin(35,0) dcl 1-155 set ref 1-165* 1-171* extended_arg_type 000242 automatic fixed bin(17,0) initial dcl 3-36 in procedure "COMPARE_VALUES" set ref 3-36* extended_arg_type 000174 automatic fixed bin(17,0) initial dcl 8-36 in procedure "COMPARE_VECTOR_TO_STRING" set ref 8-36* field 5 based structure array level 2 dcl 6-36 set ref 1-184 field_table based structure level 1 dcl 6-36 field_table_ptr 000166 automatic pointer dcl 6-65 set ref 1-170* 1-171 1-171 1-184 1-185 1-192 1-202 1-221 1-237 1-240 1-258 1-266 1-271 1-272 1-277 fixed_arg_descriptor based structure level 1 dcl 3-13 ref 2-366 2-394 flag 000164 automatic bit(1) level 2 packed packed unaligned dcl 1-118 set ref 1-207* 1-226* flags 5 based structure array level 3 dcl 6-36 hbound builtin function dcl 1-135 ref 1-184 1-184 1-191 1-311 length_in_bits 10 based fixed bin(35,0) array level 3 dcl 6-36 ref 1-271 length_is_in_characters 5(01) based bit(1) array level 4 packed packed unaligned dcl 6-36 ref 1-277 location 7 based fixed bin(35,0) array level 3 dcl 6-36 ref 1-202 1-221 1-237 1-266 1-272 location_of_first_varying_field 4 based fixed bin(35,0) level 2 dcl 6-36 ref 1-185 1-240 min builtin function dcl 1-135 ref 1-184 1-191 myname 000137 constant varying char(32) initial dcl 2-172 in procedure "COMPARE_VALUES" set ref 2-226* 2-232* 2-237* myname 000152 constant varying char(32) initial dcl 131 in procedure "dmu_compare_vector_to_str" set ref 1-165* 1-171* null builtin function dcl 1-135 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-165 1-165 1-171 1-171 null builtin function dcl 2-167 in procedure "COMPARE_VALUES" ref 2-124 2-124 2-124 2-124 2-226 2-226 2-232 2-232 2-237 2-237 number_of_dimensions 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 7-17 ref 1-184 1-191 1-311 number_of_fields 2 based fixed bin(17,0) level 2 dcl 6-36 ref 1-184 p_code parameter fixed bin(35,0) dcl 107 set ref 9 151* p_field_table_ptr parameter pointer dcl 97 ref 9 140 p_first_inequal_field_id parameter fixed bin(17,0) dcl 103 set ref 9 148* p_key_string_length parameter fixed bin(24,0) dcl 101 ref 9 143 p_key_string_ptr parameter pointer dcl 100 ref 9 142 p_last_field_idx parameter fixed bin(17,0) packed unaligned dcl 102 ref 9 144 p_simple_typed_vector_ptr parameter pointer dcl 98 ref 9 141 p_vector_equal_to_key parameter bit(1) dcl 105 set ref 9 149* p_vector_less_than_key parameter bit(1) dcl 106 set ref 9 150* packed 0(07) based bit(1) level 2 in structure "arg_descriptor" packed packed unaligned dcl 3-6 in procedure "COMPARE_VALUES" ref 2-232 2-243 2-274 2-305 2-329 2-355 2-383 2-411 2-441 2-572 2-594 packed 0(07) 000164 automatic bit(1) level 2 in structure "cvs_truncated_field_descriptor" packed packed unaligned dcl 1-118 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-206* 1-225* precision 0(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 3-13 ref 2-247 2-247 2-251 2-251 2-254 2-254 2-258 2-258 2-278 2-278 2-282 2-282 2-285 2-285 2-289 2-289 2-358 2-359 2-386 2-387 2-468 2-483 2-484 2-485 2-489 2-576 2-576 2-579 2-579 2-598 2-598 2-601 2-601 2-616 2-632 2-634 2-637 2-641 2-653 2-655 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 4-25 ref 2-367 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 4-25 ref 2-395 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 4-25 ref 2-425 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 4-25 ref 2-455 simple_typed_vector based structure level 1 packed packed unaligned dcl 7-17 simple_typed_vector_ptr 000170 automatic pointer dcl 7-33 set ref 1-164* 1-165 1-165 1-184 1-191 1-287 1-311 size 0(12) based fixed bin(24,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 3-6 in procedure "COMPARE_VALUES" ref 2-309 2-309 2-312 2-312 2-333 2-333 2-336 2-336 2-414 2-416 2-444 2-446 2-474 2-499 2-501 2-504 2-508 2-515 2-515 2-519 2-519 2-544 2-544 2-548 2-548 2-622 2-658 2-662 size 0(12) 000164 automatic fixed bin(24,0) level 2 in structure "cvs_truncated_field_descriptor" packed packed unsigned unaligned dcl 1-118 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-209* 1-211 1-228* 1-230 1-302 size 0(12) based fixed bin(24,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 8-6 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-199 1-218 1-302 sub_err_ 000026 constant entry external dcl 2-211 in procedure "COMPARE_VALUES" ref 2-226 2-232 2-237 sub_err_ 000010 constant entry external dcl 1-151 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-165 1-171 substr builtin function dcl 2-167 ref 2-247 2-247 2-251 2-254 2-254 2-258 2-278 2-278 2-282 2-285 2-285 2-289 2-309 2-312 2-333 2-336 2-515 2-515 2-519 2-519 2-525 2-525 2-530 2-530 2-534 2-534 2-538 2-538 2-544 2-544 2-548 2-548 2-553 2-553 2-558 2-558 2-562 2-562 2-566 2-566 2-576 2-579 2-598 2-601 sys_info$max_seg_size 000030 external static fixed bin(35,0) dcl 2-215 ref 2-247 2-247 2-251 2-254 2-254 2-258 2-278 2-278 2-282 2-285 2-285 2-289 2-309 2-312 2-333 2-336 2-515 2-515 2-519 2-519 2-525 2-525 2-530 2-530 2-534 2-534 2-538 2-538 2-544 2-544 2-548 2-548 2-553 2-553 2-558 2-558 2-562 2-562 2-566 2-566 2-576 2-579 2-598 2-601 type 0(01) based fixed bin(6,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 3-6 in procedure "COMPARE_VALUES" set ref 2-226 2-226 2-226* 2-232 2-232 2-232 2-237 2-237 2-242 type 0(01) 000236 automatic fixed bin(6,0) level 2 in structure "cv_local_arg_descriptor" packed packed unsigned unaligned dcl 2-128 in procedure "COMPARE_VALUES" set ref 2-425* 2-455* type 0(01) based fixed bin(6,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 8-6 in procedure "COMPARE_VECTOR_TO_STRING" ref 1-194 1-194 1-196 1-215 1-260 1-260 type based fixed bin(17,0) level 2 in structure "simple_typed_vector" packed packed unaligned dcl 7-17 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-165 1-165* type 0(01) 000237 automatic fixed bin(6,0) level 2 in structure "cv_local_fixed_arg_descriptor" packed packed unsigned unaligned dcl 2-130 in procedure "COMPARE_VALUES" set ref 2-367* 2-395* type 0(01) 000164 automatic fixed bin(6,0) level 2 in structure "cvs_truncated_field_descriptor" packed packed unsigned unaligned dcl 1-118 in procedure "COMPARE_VECTOR_TO_STRING" set ref 1-208* 1-227* unspec builtin function dcl 2-167 set ref 2-247* 2-251* 2-254* 2-258* 2-278* 2-282* 2-285* 2-289* 2-309* 2-312* 2-333* 2-336* 2-576* 2-579* 2-598* 2-601* value_ptr 1 based pointer array level 3 packed packed unaligned dcl 7-17 ref 1-287 varying_bit_dtype constant fixed bin(17,0) initial dcl 9-25 ref 1-194 1-260 varying_char_dtype constant fixed bin(17,0) initial dcl 9-25 ref 1-194 1-260 version based char(8) initial level 2 dcl 6-36 set ref 1-171 1-171* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 5-7 in procedure "COMPARE_VALUES" ACTION_CAN_RESTART internal static bit(36) initial dcl 10-7 in procedure "COMPARE_VECTOR_TO_STRING" ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 5-7 in procedure "COMPARE_VALUES" ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 10-7 in procedure "COMPARE_VECTOR_TO_STRING" ACTION_QUIET_RESTART internal static bit(36) initial dcl 10-7 in procedure "COMPARE_VECTOR_TO_STRING" ACTION_QUIET_RESTART internal static bit(36) initial dcl 5-7 in procedure "COMPARE_VALUES" ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 5-7 in procedure "COMPARE_VALUES" ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 10-7 in procedure "COMPARE_VECTOR_TO_STRING" GENERAL_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 7-43 OLD_SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 7-43 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" algol68_bits_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_bits_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_bool_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_bool_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_byte_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_byte_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_char_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_char_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_compl_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_compl_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_format_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" algol68_format_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" algol68_int_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_int_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_real_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_real_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_straight_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" algol68_straight_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 9-110 in procedure "COMPARE_VECTOR_TO_STRING" algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 4-110 in procedure "COMPARE_VALUES" algol68_union_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" algol68_union_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" area_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" area_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" bit_dtype internal static fixed bin(17,0) initial dcl 4-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" c_enum_const_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" c_enum_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" c_enum_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" c_typeref_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" c_typeref_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" c_union_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" c_union_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" char_dtype internal static fixed bin(17,0) initial dcl 4-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_structure_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cobol_structure_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" cv_based_real_fix_bin_1_unsu based fixed bin(35,0) packed unsigned unaligned dcl 2-160 cv_based_real_fix_bin_2_unsu based fixed bin(71,0) packed unsigned unaligned dcl 2-162 cv_based_real_fix_bin_2u based fixed bin(71,0) packed unaligned dcl 2-144 cv_based_real_flt_bin_1u based float bin(27) packed unaligned dcl 2-151 cv_based_real_flt_bin_2u based float bin(63) packed unaligned dcl 2-153 cvs_current_field_id automatic fixed bin(35,0) dcl 1-98 cvs_key_string based bit packed unaligned dcl 1-129 cvs_varying_field_idx automatic fixed bin(17,0) dcl 1-120 entry_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" entry_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 in procedure "COMPARE_VALUES" ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 9-125 in procedure "COMPARE_VECTOR_TO_STRING" ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 in procedure "COMPARE_VALUES" ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 9-125 in procedure "COMPARE_VECTOR_TO_STRING" extended_arg_descriptor based structure level 1 dcl 3-21 in procedure "COMPARE_VALUES" extended_arg_descriptor based structure level 1 dcl 8-21 in procedure "COMPARE_VECTOR_TO_STRING" field_name based char packed unaligned dcl 6-71 field_name_length automatic fixed bin(17,0) dcl 6-73 field_name_ptr automatic pointer dcl 6-74 file_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" file_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" fixed_arg_descriptor based structure level 1 dcl 8-13 ft_char_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_char_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_complex_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_complex_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_double_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_double_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_external_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_external_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_integer_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_integer_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_length_of_field_names automatic fixed bin(17,0) dcl 6-66 ft_logical_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" ft_logical_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_number_of_fields automatic fixed bin(17,0) dcl 6-68 ft_real_dtype internal static fixed bin(17,0) initial dcl 4-96 in procedure "COMPARE_VALUES" ft_real_dtype internal static fixed bin(17,0) initial dcl 9-96 in procedure "COMPARE_VECTOR_TO_STRING" general_typed_vector based structure level 1 packed packed unaligned dcl 7-24 general_typed_vector_ptr automatic pointer dcl 7-38 gtv_number_of_dimensions automatic fixed bin(17,0) dcl 7-40 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 in procedure "COMPARE_VALUES" int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 9-125 in procedure "COMPARE_VECTOR_TO_STRING" label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 9-125 in procedure "COMPARE_VECTOR_TO_STRING" label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 in procedure "COMPARE_VALUES" label_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" label_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" offset_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" offset_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_char_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_char_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_integer_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_integer_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_label_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_label_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_real_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_real_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_set_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_set_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 9-132 in procedure "COMPARE_VECTOR_TO_STRING" pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 4-132 in procedure "COMPARE_VALUES" picture_runtime_dtype internal static fixed bin(17,0) initial dcl 4-125 in procedure "COMPARE_VALUES" picture_runtime_dtype internal static fixed bin(17,0) initial dcl 9-125 in procedure "COMPARE_VECTOR_TO_STRING" pointer_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" pointer_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 9-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 9-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 9-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 9-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" structure_dtype internal static fixed bin(17,0) initial dcl 9-25 in procedure "COMPARE_VECTOR_TO_STRING" structure_dtype internal static fixed bin(17,0) initial dcl 4-25 in procedure "COMPARE_VALUES" stv_number_of_dimensions automatic fixed bin(17,0) dcl 7-35 varying_bit_dtype internal static fixed bin(17,0) initial dcl 4-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 4-25 NAMES DECLARED BY EXPLICIT CONTEXT. COMPARE_VALUES 001275 constant entry internal dcl 2-65 ref 1-290 COMPARE_VECTOR_TO_STRING 000446 constant entry internal dcl 1-49 ref 146 CV_RETURN_EQUAL 004203 constant label dcl 2-698 ref 2-261 2-267 2-292 2-298 2-317 2-323 2-340 2-346 2-515 2-525 2-534 2-544 2-553 2-562 2-582 2-588 2-604 2-610 CV_RETURN_GREATER 004213 constant label dcl 2-708 ref 2-265 2-271 2-296 2-302 2-321 2-327 2-344 2-350 2-522 2-533 2-542 2-551 2-561 2-570 2-586 2-592 2-608 2-614 CV_RETURN_LESS 004207 constant label dcl 2-703 set ref 2-263 2-269 2-294 2-300 2-319 2-325 2-342 2-348 2-519 2-530 2-538 2-548 2-558 2-566 2-584 2-590 2-606 2-612 CV_TYPE 000000 constant label array(46) dcl 2-243 ref 2-242 FIELD_LOOP 001061 constant label dcl 1-247 PREPARE_NONVARYING_FIELD 001127 constant label dcl 1-260 PREPARE_VARYING_FIELD 001144 constant label dcl 1-268 dmu_compare_vector_to_str 000403 constant entry external dcl 9 NAMES DECLARED BY CONTEXT OR IMPLICATION. bitno builtin function ref 2-232 2-237 divide builtin function ref 2-632 2-634 2-653 2-655 mod builtin function ref 2-232 2-237 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4414 4452 4224 4424 Length 5114 4224 36 425 170 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dmu_compare_vector_to_str 330 external procedure is an external procedure. COMPARE_VECTOR_TO_STRING internal procedure shares stack frame of external procedure dmu_compare_vector_to_str. COMPARE_VALUES internal procedure shares stack frame of external procedure dmu_compare_vector_to_str. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dmu_compare_vector_to_str 000100 cvs_p_field_table_ptr dmu_compare_vector_to_str 000102 cvs_p_simple_typed_vector_ptr dmu_compare_vector_to_str 000104 cvs_p_key_string_ptr dmu_compare_vector_to_str 000106 cvs_p_key_string_length dmu_compare_vector_to_str 000107 cvs_p_last_field_idx dmu_compare_vector_to_str 000110 cvs_p_first_inequal_field_id dmu_compare_vector_to_str 000111 cvs_p_vector_equal_to_key dmu_compare_vector_to_str 000112 cvs_p_vector_less_than_key dmu_compare_vector_to_str 000113 cvs_p_code dmu_compare_vector_to_str 000122 cv_p_code COMPARE_VECTOR_TO_STRING 000124 cv_p_descriptor_ptr COMPARE_VECTOR_TO_STRING 000126 cv_p_field_value_length COMPARE_VECTOR_TO_STRING 000130 cv_p_field_value_ptr COMPARE_VECTOR_TO_STRING 000132 cv_p_vector_equal_to_key COMPARE_VECTOR_TO_STRING 000133 cv_p_vector_less_than_key COMPARE_VECTOR_TO_STRING 000134 cv_p_vector_value_length COMPARE_VECTOR_TO_STRING 000136 cv_p_vector_value_ptr COMPARE_VECTOR_TO_STRING 000140 cvs_field_idx COMPARE_VECTOR_TO_STRING 000141 cvs_field_value_offset COMPARE_VECTOR_TO_STRING 000142 cvs_key_string_length COMPARE_VECTOR_TO_STRING 000144 cvs_key_string_ptr COMPARE_VECTOR_TO_STRING 000146 cvs_last_field_idx COMPARE_VECTOR_TO_STRING 000147 cvs_last_field_is_truncated COMPARE_VECTOR_TO_STRING 000150 cvs_last_field_length_in_bits COMPARE_VECTOR_TO_STRING 000152 cvs_last_field_length_ptr COMPARE_VECTOR_TO_STRING 000154 cvs_last_field_value_ptr COMPARE_VECTOR_TO_STRING 000156 cvs_length_field_length COMPARE_VECTOR_TO_STRING 000160 cvs_length_field_ptr COMPARE_VECTOR_TO_STRING 000162 cvs_location_of_first_varying_field COMPARE_VECTOR_TO_STRING 000163 cvs_maximum_field_idx COMPARE_VECTOR_TO_STRING 000164 cvs_truncated_field_descriptor COMPARE_VECTOR_TO_STRING 000165 cvs_varying_field_value_offset COMPARE_VECTOR_TO_STRING 000166 field_table_ptr COMPARE_VECTOR_TO_STRING 000170 simple_typed_vector_ptr COMPARE_VECTOR_TO_STRING 000172 arg_descriptor_ptr COMPARE_VECTOR_TO_STRING 000174 extended_arg_type COMPARE_VECTOR_TO_STRING 000204 cv_local_vector_real_fix_bin_1 COMPARE_VALUES 000205 cv_local_field_real_fix_bin_1 COMPARE_VALUES 000206 cv_local_vector_real_fix_bin_2 COMPARE_VALUES 000210 cv_local_field_real_fix_bin_2 COMPARE_VALUES 000212 cv_local_vector_real_flt_bin_1 COMPARE_VALUES 000213 cv_local_field_real_flt_bin_1 COMPARE_VALUES 000214 cv_local_vector_real_flt_bin_2 COMPARE_VALUES 000216 cv_local_field_real_flt_bin_2 COMPARE_VALUES 000220 cv_local_vector_real_fix_bin_1_uns COMPARE_VALUES 000221 cv_local_field_real_fix_bin_1_uns COMPARE_VALUES 000222 cv_local_vector_real_fix_bin_2_uns COMPARE_VALUES 000224 cv_local_field_real_fix_bin_2_uns COMPARE_VALUES 000226 cv_vector_real_part_value_ptr COMPARE_VALUES 000230 cv_vector_imaginary_part_value_ptr COMPARE_VALUES 000232 cv_field_real_part_value_ptr COMPARE_VALUES 000234 cv_field_imaginary_part_value_ptr COMPARE_VALUES 000236 cv_local_arg_descriptor COMPARE_VALUES 000237 cv_local_fixed_arg_descriptor COMPARE_VALUES 000240 arg_descriptor_ptr COMPARE_VALUES 000242 extended_arg_type COMPARE_VALUES THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_bit_temp cat_realloc_bits call_ext_out_desc call_ext_out return_mac longbs_to_fx2 mdfx1 shorten_stack ext_entry ceil_fx1 set_bits_eis divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dmu_compare_decimal_values$dmu_compare_dec4fl dmu_compare_decimal_values$dmu_compare_dec4ls dmu_compare_decimal_values$dmu_compare_dec9fl dmu_compare_decimal_values$dmu_compare_dec9ls dmu_compare_values sub_err_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$unimplemented_data_type error_table_$bad_arg error_table_$unimplemented_version sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000374 140 000410 141 000414 142 000417 143 000422 144 000424 146 000433 148 000434 149 000437 150 000441 151 000443 153 000445 1 49 000446 1 104 000447 8 36 000450 1 160 000452 1 161 000454 1 162 000456 1 164 000460 1 165 000462 1 170 000545 1 171 000547 1 177 000626 1 178 000627 1 179 000631 1 181 000632 1 184 000635 1 185 000652 1 186 000654 1 187 000655 1 188 000656 1 191 000660 1 192 000672 1 194 000676 1 196 000711 1 199 000713 1 202 000721 1 204 000733 1 206 000737 1 207 000741 1 208 000743 1 209 000747 1 211 000754 1 212 000760 1 214 000762 1 215 000763 1 218 000765 1 221 000773 1 223 001005 1 225 001011 1 226 001013 1 227 001015 1 228 001021 1 230 001026 1 232 001033 1 234 001035 1 235 001036 1 237 001037 1 240 001050 1 243 001053 1 247 001061 1 249 001076 1 252 001103 1 253 001105 1 254 001107 1 255 001111 1 258 001112 1 260 001116 1 265 001127 1 266 001131 1 267 001143 1 271 001144 1 272 001150 1 273 001160 1 275 001164 1 277 001166 1 280 001176 1 282 001202 1 287 001206 1 288 001215 1 290 001217 1 302 001221 1 307 001241 1 309 001243 1 311 001252 1 314 001264 1 316 001267 1 317 001272 1 319 001274 2 65 001275 2 124 001277 3 36 001304 2 222 001306 2 224 001307 2 226 001311 2 232 001376 2 237 001477 2 242 001562 2 243 001567 2 247 001572 2 251 001627 2 254 001657 2 258 001715 2 261 001745 2 263 001751 2 265 001752 2 267 001753 2 269 001756 2 271 001757 2 274 001760 2 278 001763 2 282 002020 2 285 002050 2 289 002106 2 292 002136 2 294 002142 2 296 002143 2 298 002144 2 300 002147 2 302 002150 2 305 002151 2 309 002154 2 312 002217 2 317 002245 2 319 002251 2 321 002252 2 323 002253 2 325 002256 2 327 002257 2 329 002260 2 333 002263 2 336 002326 2 340 002354 2 342 002360 2 344 002361 2 346 002362 2 348 002365 2 350 002366 2 352 002367 2 354 002371 2 355 002373 2 358 002376 2 359 002404 2 360 002407 2 363 002410 2 364 002414 2 366 002417 2 367 002443 2 368 002447 2 371 002476 2 373 002501 2 378 002533 2 380 002534 2 382 002536 2 383 002540 2 386 002543 2 387 002551 2 388 002554 2 391 002555 2 392 002561 2 394 002564 2 395 002610 2 396 002614 2 399 002643 2 401 002646 2 406 002700 2 408 002701 2 410 002703 2 411 002705 2 414 002710 2 416 002720 2 418 002723 2 421 002724 2 422 002730 2 424 002733 2 425 002756 2 426 002762 2 429 003011 2 431 003014 2 436 003046 2 438 003047 2 440 003051 2 441 003053 2 444 003056 2 446 003066 2 448 003071 2 451 003072 2 452 003076 2 454 003101 2 455 003124 2 456 003130 2 459 003157 2 461 003162 2 466 003214 2 468 003215 2 472 003240 2 474 003241 2 478 003264 2 480 003265 2 482 003267 2 483 003271 2 484 003300 2 485 003303 2 489 003325 2 494 003353 2 496 003354 2 498 003356 2 499 003360 2 501 003370 2 504 003373 2 508 003415 2 513 003443 2 515 003444 2 519 003454 2 522 003455 2 525 003456 2 530 003472 2 533 003473 2 534 003474 2 538 003511 2 542 003512 2 544 003513 2 548 003523 2 551 003524 2 553 003525 2 558 003541 2 561 003542 2 562 003543 2 566 003560 2 570 003561 2 572 003562 2 576 003565 2 579 003615 2 582 003635 2 584 003641 2 586 003642 2 588 003643 2 590 003646 2 592 003647 2 594 003650 2 598 003653 2 601 003703 2 604 003724 2 606 003730 2 608 003731 2 610 003732 2 612 003735 2 614 003736 2 616 003737 2 620 003762 2 622 003763 2 626 004006 2 628 004007 2 630 004011 2 632 004013 2 634 004027 2 637 004032 2 641 004054 2 647 004102 2 649 004103 2 651 004105 2 653 004107 2 655 004122 2 658 004125 2 662 004150 2 668 004176 2 671 004177 2 696 004202 2 698 004203 2 700 004205 2 701 004206 2 703 004207 2 705 004210 2 706 004212 2 708 004213 2 710 004214 2 711 004215 ----------------------------------------------------------- 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