COMPILATION LISTING OF SEGMENT dmu_compare_values Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1530.7 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style2,ind3 */ 7 dmu_compare_values: 8 proc (p_descriptor_ptr, p_vector_value_ptr, p_field_value_ptr, p_field_value_length, p_vector_equal_to_key, 9 p_vector_less_than_key, p_code); 10 11 /* DESCRIPTION: 12* This module compares two values and returns information about 13* whether the first is less than, equal to, or greater than, the second. 14* Both values must be of the same data-type, however the storage 15* conventions for varying string data for the second value are slightly 16* different from the Multics standard format. This difference consists 17* solely in that the length of the varying string is not stored as the 18* initial piece of information in the string. The length of varying 19* string values in fields is passed in as a parameter. 20* The first value is referred to as the "vector" value, since it 21* usually is the value of a dimension of a typed_vector. The second value 22* is referred to as the "field" value, since it is usually the value of a 23* field of a key. 24* 25* All work is actually done in the internal subroutine 26* COMPARE_VALUES. This routine is part of the include file 27* dm_comp_values_proc.incl.pl1. It is in an include file so that 28* other modules may access it without the expense of an external call 29* and argument list preparation. 30* 31* No parameters are passed to from this module to the internal 32* subroutine. All data flow is done using global variables. The names of 33* the global variables are prefixed with "cv_p_". 34**/ 35 36 /* HISTORY: 37*Written by Lindsey Spratt, 03/30/82. 38*Modified: 39*04/24/82 by Lindsey Spratt: Added the field_to_field entry and the 40* vector_value_is_in_field_format protocol. Also, changed to use 41* unaligned (as opposed to aligned) based overlays for numeric 42* "field" format data. 43*06/03/82 by Lindsey Spratt: Changed the handling of unaligned numeric data 44* types to use the full word (or double word), they were using one 45* too few bits. Also, introduced the consistent use of named 46* constants instead of literals. 47*01/10/83 by Lindsey Spratt: Fixed to include the sign character in the length 48* of decimal data. 49*01/14/83 by Lindsey Spratt: Added data types 43 (real fixed decimal leading 50* sign 4-bit byte aligned) and 44 (real float decimal 4-bit byte 51* aligned). Also added unimplemented data type check. 52*01/17/83 by Lindsey Spratt: Fixed float decimal to include exponent in size. 53*01/18/83 by Lindsey Spratt: Fixed float binary to correctly copy packed data 54* into the local float binary variable. 55*03/02/83 by Lindsey Spratt: Added a check to ensure that the provided 56* descriptor type is between 1 and HIGHEST_SUPPORTED_DATA_TYPE. 57*03/15/83 by Lindsey Spratt: Added the 4 complex binary data types, 5 through 8. 58*03/17/83 by Lindsey Spratt: Added the 4 complex decimal data types, 11, 12, 59* 45 and 46. 60*03/28/83 by Lindsey Spratt: Changed all references to im_* to dmu_*. 61*06/08/83 by Matthew Pierret: Changed references to dmu_compare_dec* modules 62* to correctly be dmu_compare_decimal_values$dmu_compare_dec*. 63*04/19/84 by Matthew Pierret: Extracted code into the include file 64* dm_comp_values_proc.incl.pl1, which is written as two internal 65* subroutines: COMPARE_FIELD_VALUES (replaces $field_to_field) 66* and COMPARE_VALUES (replaces $dmu_compare_values). 67**/ 68 /* START OF DECLARATIONS */ 69 /* Parameter */ 70 71 dcl p_descriptor_ptr ptr; 72 dcl p_vector_value_ptr ptr; 73 dcl p_field_value_ptr ptr; 74 dcl p_field_value_length fixed bin (35); 75 dcl p_vector_equal_to_key bit (1) aligned; 76 dcl p_vector_less_than_key bit (1) aligned; 77 dcl p_code fixed bin (35); 78 79 dcl p_vector_value_length fixed bin (35); 80 81 /* Automatic */ 82 83 dcl cv_p_descriptor_ptr ptr; 84 dcl cv_p_vector_value_ptr ptr; 85 dcl cv_p_vector_value_length 86 fixed bin (35); 87 dcl cv_p_field_value_ptr ptr; 88 dcl cv_p_field_value_length 89 fixed bin (35); 90 dcl cv_p_vector_equal_to_key 91 bit (1) aligned; 92 dcl cv_p_vector_less_than_key 93 bit (1) aligned; 94 dcl cv_p_code fixed bin (35); 95 96 dcl vector_value_is_in_field_format 97 bit (1) aligned; 98 99 /* Based */ 100 /* Builtin */ 101 /* Constant */ 102 103 dcl myname init ("dmu_compare_values") char (32) varying internal static options (constant); 104 105 /* Entry */ 106 /* External */ 107 108 /* END OF DECLARATIONS */ 109 110 vector_value_is_in_field_format = "0"b; 111 cv_p_vector_value_length = -1; 112 113 goto CVS_JOIN; 114 115 116 field_to_field: 117 entry (p_descriptor_ptr, p_vector_value_ptr, p_vector_value_length, p_field_value_ptr, p_field_value_length, 118 p_vector_equal_to_key, p_vector_less_than_key, p_code); 119 120 vector_value_is_in_field_format = "1"b; 121 cv_p_vector_value_length = p_vector_value_length; 122 123 CVS_JOIN: /* Copy parameters into variables COMPARE_VALUES expects. */ 124 cv_p_descriptor_ptr = p_descriptor_ptr; 125 cv_p_vector_value_ptr = p_vector_value_ptr; 126 cv_p_field_value_ptr = p_field_value_ptr; 127 cv_p_field_value_length = p_field_value_length; 128 129 call COMPARE_VALUES (vector_value_is_in_field_format); 130 131 /* Copy output values into parameters to return to caller. */ 132 133 p_vector_equal_to_key = cv_p_vector_equal_to_key; 134 p_vector_less_than_key = cv_p_vector_less_than_key; 135 p_code = cv_p_code; 136 137 return; 138 1 1 /* BEGIN INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(87-05-06,Dupuis), approve(87-05-29,MCR7695), audit(87-06-02,Blair), 1 7* install(87-07-17,MR12.1-1042): 1 8* Added a check to determine if the values were aligned correctly before 1 9* doing the comparisons. Although the calling program was supposed to take 1 10* care of alignment, this wasn't always the case (phx20843). This check can 1 11* be taken out in the future (for performance reasons) once we know we are 1 12* bug free. 1 13* END HISTORY COMMENTS */ 1 14 1 15 1 16 /* DESCRIPTION: 1 17* 1 18* This internal routine is contained in an include file so that critical 1 19* execution paths may save the time that would have been spent on the 1 20* overhead of making an external call. The time to execute this routine is 1 21* very small, much less than the time required in making an external call and 1 22* setting up an argument list. 1 23* 1 24* Modules which include this routine must follow strict guidelines in the 1 25* naming of certain variables, as this internal routine assumes the caller 1 26* has global variables set up so as to simulate the calling sequence: 1 27* 1 28* call COMPARE_VALUES_INTERNAL_PROC 1 29* (cv_p_descriptor_ptr, cv_p_vector_value_ptr, 1 30* cv_p_field_value_ptr, cv_p_field_value_length, 1 31* cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 32* 1 33* These variables must be declared in the calling routine as described 1 34* under Parameters. 1 35* 1 36* This routine compares two values and returns information about whether the 1 37* first is less than, equal to, or greater than, the second. Both values 1 38* must be of the same data-type, however the storage conventions for varying 1 39* string data for the second value are slightly different from the Multics 1 40* standard format. This difference consists solely in that the length of the 1 41* varying string is not stored as the initial piece of information in the 1 42* string. The length of varying string values in fields is passed in as a 1 43* parameter. 1 44* 1 45* The first value is referred to as the "vector" value, since it usually is 1 46* the value of a dimension of a typed_vector. The second value is referred 1 47* to as the "field" value, since it is usually the value of a field of a key. 1 48* If cv_p_vector_value_is_in_field_format is OFF, the vector value is in the 1 49* Multics standard format; if ON, the vector value is in same format as the 1 50* field value. The field value format is the format described above. 1 51**/ 1 52 1 53 /* HISTORY: 1 54*Written by Matthew Pierret, 04/18/84. 1 55* (Extracted from dmu_compare_values.pl1) 1 56*Modified: 1 57*05/14/84 by Matthew Pierret: Changed to assume that values in field format 1 58* are properly aligned. 1 59*12/07/84 by M. Sharpe: to correct format and dcls. 1 60**/ 1 61 1 62 /* format: style2,ind3 */ 1 63 1 64 1 65 COMPARE_VALUES: 1 66 proc (cv_p_vector_value_is_in_field_format); 1 67 1 68 /* START OF DECLARATIONS */ 1 69 1 70 /* Parameter */ 1 71 1 72 dcl cv_p_vector_value_is_in_field_format 1 73 bit (1) aligned; 1 74 1 75 /* The following must be declared in the calling routine: 1 76* 1 77* dcl cv_p_descriptor_ptr /* points to the descriptor for 1 78* ptr; /* the vector/field value 1 79* dcl cv_p_vector_value_ptr ptr; /* points to the vector value 1 80* dcl cv_p_vector_value_length fixed bin (35); 1 81* /* length of vector value in bits 1 82* dcl cv_p_field_value_ptr ptr; /* points to the field value 1 83* dcl cv_p_field_value_length fixed bin (35); 1 84* /* length of field value in bits 1 85* dcl cv_p_vector_equal_to_key bit (1) aligned; 1 86* /* is set by this routine to ON 1 87* /* if the values are equal 1 88* dcl cv_p_vector_less_than_key bit (1) aligned; 1 89* /* is set by this routine to ON 1 90* /* if the vector value is less 1 91* /* than the field value. 1 92* dcl cv_p_code fixed bin (35); 1 93* 1 94**/ 1 95 1 96 /* Automatic */ 1 97 dcl cv_local_vector_real_fix_bin_1 1 98 fixed bin (35) aligned; 1 99 dcl cv_local_field_real_fix_bin_1 1 100 fixed bin (35) aligned; 1 101 dcl cv_local_vector_real_fix_bin_2 1 102 fixed bin (71) aligned; 1 103 dcl cv_local_field_real_fix_bin_2 1 104 fixed bin (71) aligned; 1 105 1 106 dcl cv_local_vector_real_flt_bin_1 1 107 float bin (27) aligned; 1 108 dcl cv_local_field_real_flt_bin_1 1 109 float bin (27) aligned; 1 110 dcl cv_local_vector_real_flt_bin_2 1 111 float bin (63) aligned; 1 112 dcl cv_local_field_real_flt_bin_2 1 113 float bin (63) aligned; 1 114 1 115 dcl cv_local_vector_real_fix_bin_1_uns 1 116 fixed bin (35) aligned unsigned; 1 117 dcl cv_local_field_real_fix_bin_1_uns 1 118 fixed bin (35) aligned unsigned; 1 119 dcl cv_local_vector_real_fix_bin_2_uns 1 120 fixed bin (71) aligned unsigned; 1 121 dcl cv_local_field_real_fix_bin_2_uns 1 122 fixed bin (71) aligned unsigned; 1 123 1 124 dcl (cv_vector_real_part_value_ptr, cv_vector_imaginary_part_value_ptr, cv_field_real_part_value_ptr, 1 125 cv_field_imaginary_part_value_ptr) 1 126 ptr init (null); 1 127 1 128 dcl 1 cv_local_arg_descriptor 1 129 like arg_descriptor; 1 130 dcl 1 cv_local_fixed_arg_descriptor 1 131 like fixed_arg_descriptor; 1 132 1 133 /* Based */ 1 134 1 135 dcl cv_bit_string bit (sys_info$max_seg_size * 36) based; 1 136 dcl cv_char_string char (sys_info$max_seg_size * 4) based; 1 137 1 138 dcl cv_based_real_fix_bin_1a 1 139 fixed bin (35) based aligned; 1 140 dcl cv_based_real_fix_bin_2a 1 141 fixed bin (71) based aligned; 1 142 dcl cv_based_real_fix_bin_1u 1 143 fixed bin (35) based unaligned; 1 144 dcl cv_based_real_fix_bin_2u 1 145 fixed bin (71) based unaligned; 1 146 1 147 dcl cv_based_real_flt_bin_1a 1 148 float bin (27) based aligned; 1 149 dcl cv_based_real_flt_bin_2a 1 150 float bin (63) based aligned; 1 151 dcl cv_based_real_flt_bin_1u 1 152 float bin (27) based unaligned; 1 153 dcl cv_based_real_flt_bin_2u 1 154 float bin (63) based unaligned; 1 155 1 156 dcl cv_based_real_fix_bin_1_unsa 1 157 fixed bin (35) based aligned unsigned; 1 158 dcl cv_based_real_fix_bin_2_unsa 1 159 fixed bin (71) based aligned unsigned; 1 160 dcl cv_based_real_fix_bin_1_unsu 1 161 fixed bin (35) based unaligned unsigned; 1 162 dcl cv_based_real_fix_bin_2_unsu 1 163 fixed bin (71) based unaligned unsigned; 1 164 1 165 /* Builtin */ 1 166 1 167 dcl (addbitno, addcharno, ceil, copy, substr, null, unspec) 1 168 builtin; 1 169 1 170 /* Constant */ 1 171 1 172 dcl myname init ("dmu_compare_values") char (32) varying internal static options (constant); 1 173 1 174 dcl ( 1 175 BITS_PER_WORD init (36), 1 176 BYTES_PER_WORD init (4), 1 177 BITS_PER_EXPONENT init (8), 1 178 BIT4_DECIMAL_EXPONENT init (2), 1 179 BIT9_DECIMAL_EXPONENT init (1), 1 180 SIGN init (1), 1 181 DEFAULT_LENGTH init (-1), 1 182 HIGHEST_SUPPORTED_DATA_TYPE 1 183 init (44) 1 184 ) fixed bin (17) internal static options (constant); 1 185 dcl NEED_TO_CHECK_FOR_ALIGNMENT (46) bit (1) internal static options (constant) init ( 1 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 */ 1 187 "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, /* 13 to 19 */ 1 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 */ 1 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 */ 1 190 "1"b, "1"b, "1"b, "1"b /* 43 to 46 */); 1 191 1 192 dcl REQUIRED_ALIGNMENT (46) fixed bin internal static options (constant) init ( 1 193 36, 72, 36, 72, 72, 72, 72, 72, 36, 36, 36, 36, /* 1 to 12 */ 1 194 0, 0, 0, 0, 0, 0, 0, /* 13 to 19 */ 1 195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20 to 32 */ 1 196 36, 72, /* 33 to 34 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 35 to 42 */ 1 197 36, 36, 36, 36 ); /* 43 to 46 */ 1 198 1 199 /* Entry */ 1 200 1 201 dcl dmu_compare_values entry (ptr, ptr, ptr, fixed bin (35), bit (1) aligned, bit (1) aligned, 1 202 fixed bin (35)); 1 203 dcl dmu_compare_decimal_values$dmu_compare_dec9ls 1 204 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 1 205 dcl dmu_compare_decimal_values$dmu_compare_dec9fl 1 206 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 1 207 dcl dmu_compare_decimal_values$dmu_compare_dec4fl 1 208 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 1 209 dcl dmu_compare_decimal_values$dmu_compare_dec4ls 1 210 entry (fixed bin (17), ptr, ptr, bit (1) aligned, bit (1) aligned); 1 211 dcl sub_err_ entry () options (variable); 1 212 1 213 /* External */ 1 214 1 215 dcl sys_info$max_seg_size fixed bin (35) ext static; 1 216 dcl error_table_$bad_arg fixed bin (35) ext; 1 217 dcl dm_error_$unimplemented_data_type 1 218 fixed bin (35) ext; 1 219 1 220 /* END OF DECLARATIONS */ 1 221 1 222 cv_p_code = 0; 1 223 1 224 arg_descriptor_ptr = cv_p_descriptor_ptr; 1 225 1 226 if arg_descriptor.type < 1 | arg_descriptor.type > HIGHEST_SUPPORTED_DATA_TYPE 1 227 then call 1 228 sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 1 229 "^/The caller-provided descriptor has an invalid type, ^d. Valid types 1 230 are between 1 and ^d.", arg_descriptor.type, HIGHEST_SUPPORTED_DATA_TYPE); 1 231 1 232 if ^arg_descriptor.packed & NEED_TO_CHECK_FOR_ALIGNMENT (arg_descriptor.type) 1 233 then if mod (bitno (cv_p_vector_value_ptr), REQUIRED_ALIGNMENT (arg_descriptor.type)) ^= 0 1 234 then call sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 1 235 "^/The vector_value pointer (^p) has an invalid alignment.^/It's address should have been divisible by ^d.", 1 236 cv_p_vector_value_ptr, REQUIRED_ALIGNMENT (arg_descriptor.type)); 1 237 else if mod (bitno (cv_p_field_value_ptr), REQUIRED_ALIGNMENT (arg_descriptor.type)) ^= 0 1 238 then call sub_err_ (error_table_$bad_arg, myname, ACTION_CANT_RESTART, null, 0, 1 239 "^/The field_value pointer (^p) has an invalid alignment.^/It's address should have been divisible by ^d.", 1 240 cv_p_field_value_ptr, REQUIRED_ALIGNMENT (arg_descriptor.type)); 1 241 1 242 goto CV_TYPE (arg_descriptor.type); 1 243 CV_TYPE (1): /* real_fix_bin_1 (short) */ 1 244 if arg_descriptor.packed 1 245 then 1 246 do; 1 247 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, 1) 1 248 then unspec (cv_local_vector_real_fix_bin_1) = 1 249 copy ("1"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 250 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 251 else unspec (cv_local_vector_real_fix_bin_1) = 1 252 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 253 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 254 if substr (cv_p_field_value_ptr -> cv_bit_string, 1, 1) 1 255 then unspec (cv_local_field_real_fix_bin_1) = 1 256 copy ("1"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 257 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 258 else unspec (cv_local_field_real_fix_bin_1) = 1 259 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 260 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 261 if cv_local_vector_real_fix_bin_1 = cv_local_field_real_fix_bin_1 1 262 then goto CV_RETURN_EQUAL; 1 263 else if cv_local_vector_real_fix_bin_1 < cv_local_field_real_fix_bin_1 1 264 then goto CV_RETURN_LESS; 1 265 else goto CV_RETURN_GREATER; 1 266 end; 1 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 1 268 then goto CV_RETURN_EQUAL; 1 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 1 270 then goto CV_RETURN_LESS; 1 271 else goto CV_RETURN_GREATER; 1 272 1 273 1 274 CV_TYPE (2): /* real_fix_bin_2 (long) */ 1 275 if arg_descriptor.packed 1 276 then 1 277 do; 1 278 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, 1) 1 279 then unspec (cv_local_vector_real_fix_bin_2) = 1 280 copy ("1"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 281 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 282 else unspec (cv_local_vector_real_fix_bin_2) = 1 283 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 284 || substr (cv_p_vector_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 285 if substr (cv_p_field_value_ptr -> cv_bit_string, 1, 1) 1 286 then unspec (cv_local_field_real_fix_bin_2) = 1 287 copy ("1"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 288 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 289 else unspec (cv_local_field_real_fix_bin_2) = 1 290 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 291 || substr (cv_p_field_value_ptr -> cv_bit_string, 2, fixed_arg_descriptor.precision); 1 292 if cv_local_vector_real_fix_bin_2 = cv_local_field_real_fix_bin_2 1 293 then goto CV_RETURN_EQUAL; 1 294 else if cv_local_vector_real_fix_bin_2 < cv_local_field_real_fix_bin_2 1 295 then goto CV_RETURN_LESS; 1 296 else goto CV_RETURN_GREATER; 1 297 end; 1 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 1 299 then goto CV_RETURN_EQUAL; 1 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 1 301 then goto CV_RETURN_LESS; 1 302 else goto CV_RETURN_GREATER; 1 303 1 304 1 305 CV_TYPE (3): /* real_flt_bin_1 (short) */ 1 306 if arg_descriptor.packed 1 307 then 1 308 do; 1 309 unspec (cv_local_vector_real_flt_bin_1) = 1 310 substr (cv_p_vector_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 1 311 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 1 312 unspec (cv_local_field_real_flt_bin_1) = 1 313 substr (cv_p_field_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 1 314 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 1 315 1 316 1 317 if cv_local_vector_real_flt_bin_1 = cv_local_field_real_flt_bin_1 1 318 then goto CV_RETURN_EQUAL; 1 319 else if cv_local_vector_real_flt_bin_1 < cv_local_field_real_flt_bin_1 1 320 then goto CV_RETURN_LESS; 1 321 else goto CV_RETURN_GREATER; 1 322 end; 1 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 1 324 then goto CV_RETURN_EQUAL; 1 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 1 326 then goto CV_RETURN_LESS; 1 327 else goto CV_RETURN_GREATER; 1 328 1 329 CV_TYPE (4): /* real_flt_bin_2 (long) */ 1 330 if arg_descriptor.packed 1 331 then 1 332 do; 1 333 unspec (cv_local_vector_real_flt_bin_2) = 1 334 substr (cv_p_vector_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 1 335 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 1 336 unspec (cv_local_field_real_flt_bin_2) = 1 337 substr (cv_p_field_value_ptr -> cv_bit_string, 1, BITS_PER_EXPONENT + SIGN + arg_descriptor.size) 1 338 || copy ("0"b, (BITS_PER_WORD - (BITS_PER_EXPONENT + arg_descriptor.size + SIGN))); 1 339 1 340 if cv_local_vector_real_flt_bin_2 = cv_local_field_real_flt_bin_2 1 341 then goto CV_RETURN_EQUAL; 1 342 else if cv_local_vector_real_flt_bin_2 < cv_local_field_real_flt_bin_2 1 343 then goto CV_RETURN_LESS; 1 344 else goto CV_RETURN_GREATER; 1 345 end; 1 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 1 347 then goto CV_RETURN_EQUAL; 1 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 1 349 then goto CV_RETURN_LESS; 1 350 else goto CV_RETURN_GREATER; 1 351 1 352 CV_TYPE (5): /*cplx_fix_bin_1*/ 1 353 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 354 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 355 if arg_descriptor.packed 1 356 then 1 357 do; 1 358 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 359 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 360 end; 1 361 else 1 362 do; 1 363 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, BITS_PER_WORD); 1 364 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, BITS_PER_WORD); 1 365 end; 1 366 cv_local_fixed_arg_descriptor = fixed_arg_descriptor; 1 367 cv_local_fixed_arg_descriptor.type = real_fix_bin_1_dtype; 1 368 call 1 369 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_real_part_value_ptr, 1 370 cv_field_real_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 371 if cv_p_code ^= 0 1 372 then return; 1 373 if cv_p_vector_equal_to_key 1 374 then call 1 375 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_imaginary_part_value_ptr, 1 376 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 1 377 cv_p_code); 1 378 return; 1 379 1 380 CV_TYPE (6): /*cplx_fix_bin_2*/ 1 381 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 382 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 383 if arg_descriptor.packed 1 384 then 1 385 do; 1 386 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 387 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 388 end; 1 389 else 1 390 do; 1 391 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, 2 * BITS_PER_WORD); 1 392 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, 2 * BITS_PER_WORD); 1 393 end; 1 394 cv_local_fixed_arg_descriptor = fixed_arg_descriptor; 1 395 cv_local_fixed_arg_descriptor.type = real_fix_bin_2_dtype; 1 396 call 1 397 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_real_part_value_ptr, 1 398 cv_field_real_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 399 if cv_p_code ^= 0 1 400 then return; 1 401 if cv_p_vector_equal_to_key 1 402 then call 1 403 dmu_compare_values (addr (cv_local_fixed_arg_descriptor), cv_vector_imaginary_part_value_ptr, 1 404 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 1 405 cv_p_code); 1 406 return; 1 407 1 408 CV_TYPE (7): /*cplx_flt_bin_1*/ 1 409 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 410 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 411 if arg_descriptor.packed 1 412 then 1 413 do; 1 414 cv_vector_imaginary_part_value_ptr = 1 415 addbitno (cv_p_vector_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 1 416 cv_field_imaginary_part_value_ptr = 1 417 addbitno (cv_p_field_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 1 418 end; 1 419 else 1 420 do; 1 421 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, BITS_PER_WORD); 1 422 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, BITS_PER_WORD); 1 423 end; 1 424 cv_local_arg_descriptor = arg_descriptor; 1 425 cv_local_arg_descriptor.type = real_flt_bin_1_dtype; 1 426 call 1 427 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, 1 428 (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 429 if cv_p_code ^= 0 1 430 then return; 1 431 if cv_p_vector_equal_to_key 1 432 then call 1 433 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_imaginary_part_value_ptr, 1 434 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 1 435 cv_p_code); 1 436 return; 1 437 1 438 CV_TYPE (8): /*cplx_flt_bin_2*/ 1 439 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 440 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 441 if arg_descriptor.packed 1 442 then 1 443 do; 1 444 cv_vector_imaginary_part_value_ptr = 1 445 addbitno (cv_p_vector_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 1 446 cv_field_imaginary_part_value_ptr = 1 447 addbitno (cv_p_field_value_ptr, BITS_PER_EXPONENT + SIGN + arg_descriptor.size); 1 448 end; 1 449 else 1 450 do; 1 451 cv_vector_imaginary_part_value_ptr = addbitno (cv_p_vector_value_ptr, 2 * BITS_PER_WORD); 1 452 cv_field_imaginary_part_value_ptr = addbitno (cv_p_field_value_ptr, 2 * BITS_PER_WORD); 1 453 end; 1 454 cv_local_arg_descriptor = arg_descriptor; 1 455 cv_local_arg_descriptor.type = real_flt_bin_2_dtype; 1 456 call 1 457 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_real_part_value_ptr, cv_field_real_part_value_ptr, 1 458 (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, cv_p_code); 1 459 if cv_p_code ^= 0 1 460 then return; 1 461 if cv_p_vector_equal_to_key 1 462 then call 1 463 dmu_compare_values (addr (cv_local_arg_descriptor), cv_vector_imaginary_part_value_ptr, 1 464 cv_field_imaginary_part_value_ptr, (DEFAULT_LENGTH), cv_p_vector_equal_to_key, cv_p_vector_less_than_key, 1 465 cv_p_code); 1 466 return; 1 467 1 468 CV_TYPE (9): /* real_fix_dec_9bit_ls */ 1 469 call 1 470 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), cv_p_vector_value_ptr, 1 471 cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 1 472 return; 1 473 1 474 CV_TYPE (10): /* real_flt_dec_9bit */ 1 475 call 1 476 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 1 477 cv_p_vector_value_ptr, cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 1 478 return; 1 479 1 480 CV_TYPE (11): /* cplx_fix_dec_9bit_ls */ 1 481 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 482 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 483 cv_vector_imaginary_part_value_ptr = addcharno (cv_p_vector_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 484 cv_field_imaginary_part_value_ptr = addcharno (cv_p_field_value_ptr, fixed_arg_descriptor.precision + SIGN); 1 485 call 1 486 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), 1 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) 1 488 ; 1 489 if cv_p_vector_equal_to_key 1 490 then call 1 491 dmu_compare_decimal_values$dmu_compare_dec9ls ((fixed_arg_descriptor.precision + SIGN), 1 492 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 1 493 cv_p_vector_less_than_key); 1 494 return; 1 495 1 496 CV_TYPE (12): /* cplx_flt_dec_9bit */ 1 497 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 498 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 499 cv_vector_imaginary_part_value_ptr = 1 500 addcharno (cv_p_vector_value_ptr, arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT); 1 501 cv_field_imaginary_part_value_ptr = 1 502 addcharno (cv_p_field_value_ptr, arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT); 1 503 1 504 call 1 505 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 1 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) 1 507 ; 1 508 if cv_p_vector_equal_to_key 1 509 then call 1 510 dmu_compare_decimal_values$dmu_compare_dec9fl ((arg_descriptor.size + SIGN + BIT9_DECIMAL_EXPONENT), 1 511 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 1 512 cv_p_vector_less_than_key); 1 513 return; 1 514 1 515 CV_TYPE (19): /* bit (nonvarying) */ 1 516 if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 1 517 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 1 518 then goto CV_RETURN_EQUAL; 1 519 else if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 1 520 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, arg_descriptor.size) 1 521 then goto CV_RETURN_LESS; 1 522 else goto CV_RETURN_GREATER; 1 523 1 524 1 525 CV_TYPE (20): /* varying_bit */ 1 526 if cv_p_vector_value_is_in_field_format 1 527 then if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, cv_p_vector_value_length) 1 528 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 1 529 then goto CV_RETURN_EQUAL; 1 530 else if substr (cv_p_vector_value_ptr -> cv_bit_string, 1, cv_p_vector_value_length) 1 531 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 1 532 then goto CV_RETURN_LESS; 1 533 else goto CV_RETURN_GREATER; 1 534 else if substr (cv_p_vector_value_ptr -> cv_bit_string, BITS_PER_WORD + 1, 1 535 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 1 536 = substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 1 537 then goto CV_RETURN_EQUAL; 1 538 else if substr (cv_p_vector_value_ptr -> cv_bit_string, BITS_PER_WORD + 1, 1 539 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 1 540 < substr (cv_p_field_value_ptr -> cv_bit_string, 1, cv_p_field_value_length) 1 541 then goto CV_RETURN_LESS; 1 542 else goto CV_RETURN_GREATER; 1 543 1 544 CV_TYPE (21): /* char (nonvarying) */ 1 545 if substr (cv_p_vector_value_ptr -> cv_char_string, 1, arg_descriptor.size) 1 546 = substr (cv_p_field_value_ptr -> cv_char_string, 1, arg_descriptor.size) 1 547 then goto CV_RETURN_EQUAL; 1 548 else if substr (cv_p_vector_value_ptr -> cv_char_string, 1, arg_descriptor.size) 1 549 < substr (cv_p_field_value_ptr -> cv_char_string, 1, arg_descriptor.size) 1 550 then goto CV_RETURN_LESS; 1 551 else goto CV_RETURN_GREATER; 1 552 1 553 CV_TYPE (22): /* varying_char */ 1 554 if cv_p_vector_value_is_in_field_format 1 555 then if substr (cv_p_vector_value_ptr -> cv_char_string, 1, cv_p_vector_value_length) 1 556 = substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 1 557 then goto CV_RETURN_EQUAL; 1 558 else if substr (cv_p_vector_value_ptr -> cv_char_string, 1, cv_p_vector_value_length) 1 559 < substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 1 560 then goto CV_RETURN_LESS; 1 561 else goto CV_RETURN_GREATER; 1 562 else if substr (cv_p_vector_value_ptr -> cv_char_string, BYTES_PER_WORD + 1, 1 563 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 1 564 = substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 1 565 then goto CV_RETURN_EQUAL; 1 566 else if substr (cv_p_vector_value_ptr -> cv_char_string, BYTES_PER_WORD + 1, 1 567 cv_p_vector_value_ptr -> cv_based_real_fix_bin_1u) 1 568 < substr (cv_p_field_value_ptr -> cv_char_string, 1, cv_p_field_value_length) 1 569 then goto CV_RETURN_LESS; 1 570 else goto CV_RETURN_GREATER; 1 571 1 572 CV_TYPE (33): /* real_fix_bin_1_uns */ 1 573 if arg_descriptor.packed 1 574 then 1 575 do; 1 576 unspec (cv_local_vector_real_fix_bin_1_uns) = 1 577 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 578 || substr (cv_p_vector_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 1 579 unspec (cv_local_field_real_fix_bin_1_uns) = 1 580 copy ("0"b, BITS_PER_WORD - fixed_arg_descriptor.precision) 1 581 || substr (cv_p_field_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 1 582 if cv_local_vector_real_fix_bin_1_uns = cv_local_field_real_fix_bin_1_uns 1 583 then goto CV_RETURN_EQUAL; 1 584 else if cv_local_vector_real_fix_bin_1_uns < cv_local_field_real_fix_bin_1_uns 1 585 then goto CV_RETURN_LESS; 1 586 else goto CV_RETURN_GREATER; 1 587 end; 1 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 1 589 then goto CV_RETURN_EQUAL; 1 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 1 591 then goto CV_RETURN_LESS; 1 592 else goto CV_RETURN_GREATER; 1 593 1 594 CV_TYPE (34): /* real_fix_bin_2_uns */ 1 595 if arg_descriptor.packed 1 596 then 1 597 do; 1 598 unspec (cv_local_vector_real_fix_bin_2_uns) = 1 599 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 600 || substr (cv_p_vector_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 1 601 unspec (cv_local_field_real_fix_bin_2_uns) = 1 602 copy ("0"b, 2 * BITS_PER_WORD - fixed_arg_descriptor.precision) 1 603 || substr (cv_p_field_value_ptr -> cv_bit_string, 1, fixed_arg_descriptor.precision); 1 604 if cv_local_vector_real_fix_bin_2_uns = cv_local_field_real_fix_bin_2_uns 1 605 then goto CV_RETURN_EQUAL; 1 606 else if cv_local_vector_real_fix_bin_2_uns < cv_local_field_real_fix_bin_2_uns 1 607 then goto CV_RETURN_LESS; 1 608 else goto CV_RETURN_GREATER; 1 609 end; 1 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 1 611 then goto CV_RETURN_EQUAL; 1 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 1 613 then goto CV_RETURN_LESS; 1 614 else goto CV_RETURN_GREATER; 1 615 1 616 CV_TYPE (43): /* real_fix_dec_4bit_bytealigned_ls */ 1 617 call 1 618 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, cv_p_vector_value_ptr, 1 619 cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 1 620 return; 1 621 1 622 CV_TYPE (44): /* real_flt_dec_4bit_byte_alig ned_dtype */ 1 623 call 1 624 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 1 625 cv_p_vector_value_ptr, cv_p_field_value_ptr, cv_p_vector_equal_to_key, cv_p_vector_less_than_key); 1 626 return; 1 627 1 628 CV_TYPE (45): /* cplx_fix_dec_4bit_bytealigned_ls */ 1 629 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 630 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 631 1 632 cv_vector_imaginary_part_value_ptr = 1 633 addcharno (cv_p_vector_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 2, 2, 35, 18))); 1 634 cv_field_imaginary_part_value_ptr = 1 635 addcharno (cv_p_field_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 2, 2, 35, 18))); 1 636 1 637 call 1 638 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, 1 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) 1 640 ; 1 641 if cv_p_vector_equal_to_key 1 642 then call 1 643 dmu_compare_decimal_values$dmu_compare_dec4ls (fixed_arg_descriptor.precision + SIGN, 1 644 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 1 645 cv_p_vector_less_than_key); 1 646 1 647 return; 1 648 1 649 CV_TYPE (46): /* cplx_flt_dec_4bit_bytealigned */ 1 650 cv_vector_real_part_value_ptr = cv_p_vector_value_ptr; 1 651 cv_field_real_part_value_ptr = cv_p_field_value_ptr; 1 652 1 653 cv_vector_imaginary_part_value_ptr = 1 654 addcharno (cv_p_vector_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 4, 2, 35, 18))); 1 655 cv_field_imaginary_part_value_ptr = 1 656 addcharno (cv_p_field_value_ptr, ceil (divide (fixed_arg_descriptor.precision + 4, 2, 35, 18))); 1 657 1 658 call 1 659 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 1 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) 1 661 ; 1 662 if cv_p_vector_equal_to_key 1 663 then call 1 664 dmu_compare_decimal_values$dmu_compare_dec4fl (arg_descriptor.size + SIGN + BIT4_DECIMAL_EXPONENT, 1 665 cv_vector_imaginary_part_value_ptr, cv_field_imaginary_part_value_ptr, cv_p_vector_equal_to_key, 1 666 cv_p_vector_less_than_key); 1 667 1 668 return; 1 669 1 670 1 671 CV_TYPE (13): 1 672 CV_TYPE (14): 1 673 CV_TYPE (15): 1 674 CV_TYPE (16): 1 675 CV_TYPE (17): 1 676 CV_TYPE (18): 1 677 CV_TYPE (23): 1 678 CV_TYPE (24): 1 679 CV_TYPE (25): 1 680 CV_TYPE (26): 1 681 CV_TYPE (27): 1 682 CV_TYPE (28): 1 683 CV_TYPE (29): 1 684 CV_TYPE (30): 1 685 CV_TYPE (31): 1 686 CV_TYPE (32): 1 687 CV_TYPE (35): 1 688 CV_TYPE (36): 1 689 CV_TYPE (37): 1 690 CV_TYPE (38): 1 691 CV_TYPE (39): 1 692 CV_TYPE (40): 1 693 CV_TYPE (41): 1 694 CV_TYPE (42): 1 695 cv_p_code = dm_error_$unimplemented_data_type; 1 696 return; 1 697 1 698 CV_RETURN_EQUAL: 1 699 cv_p_vector_equal_to_key = "1"b; 1 700 cv_p_vector_less_than_key = "0"b; 1 701 return; 1 702 1 703 CV_RETURN_LESS: 1 704 cv_p_vector_equal_to_key = "0"b; 1 705 cv_p_vector_less_than_key = "1"b; 1 706 return; 1 707 1 708 CV_RETURN_GREATER: 1 709 cv_p_vector_equal_to_key = "0"b; 1 710 cv_p_vector_less_than_key = "0"b; 1 711 return; 1 712 2 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 2 2* 2 3* James R. Davis 1 Mar 79 */ 2 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 2 5 2 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 2 7 2 flag bit (1) unal, 2 8 2 type fixed bin (6) unsigned unal, 2 9 2 packed bit (1) unal, 2 10 2 number_dims fixed bin (4) unsigned unal, 2 11 2 size fixed bin (24) unsigned unal; 2 12 2 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 2 14 2 flag bit (1) unal, 2 15 2 type fixed bin (6) unsigned unal, 2 16 2 packed bit (1) unal, 2 17 2 number_dims fixed bin (4) unsigned unal, 2 18 2 scale fixed bin (11) unal, 2 19 2 precision fixed bin (12) unsigned unal; 2 20 2 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 2 22 2 flag bit (1) unal, /* = "1"b */ 2 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 2 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 2 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 2 26 2 size bit (24) unal, 2 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 2 28 3 low fixed bin (35), 2 29 3 high fixed bin (35), 2 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 2 31 2 real_type fixed bin (18) unsigned unal, 2 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 2 33 2 34 dcl arg_descriptor_ptr ptr; 2 35 2 36 dcl extended_arg_type fixed bin init (58); 2 37 2 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 1 713 1 714 3 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 3 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 3 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 3 8* Objects of this type are PASCAL string types. 3 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 3 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 3 11* Added the new C types. 3 12* END HISTORY COMMENTS */ 3 13 3 14 /* This include file defines mnemonic names for the Multics 3 15* standard descriptor types, using both pl1 and cobol terminology. 3 16* PG 780613 3 17* JRD 790530 3 18* JRD 791016 3 19* MBW 810731 3 20* TGO 830614 Add hex types. 3 21* Modified June 83 JMAthane to add PASCAL data types 3 22* TGO 840120 Add float dec extended and generic, float binary generic 3 23**/ 3 24 3 25 dcl (real_fix_bin_1_dtype init (1), 3 26 real_fix_bin_2_dtype init (2), 3 27 real_flt_bin_1_dtype init (3), 3 28 real_flt_bin_2_dtype init (4), 3 29 cplx_fix_bin_1_dtype init (5), 3 30 cplx_fix_bin_2_dtype init (6), 3 31 cplx_flt_bin_1_dtype init (7), 3 32 cplx_flt_bin_2_dtype init (8), 3 33 real_fix_dec_9bit_ls_dtype init (9), 3 34 real_flt_dec_9bit_dtype init (10), 3 35 cplx_fix_dec_9bit_ls_dtype init (11), 3 36 cplx_flt_dec_9bit_dtype init (12), 3 37 pointer_dtype init (13), 3 38 offset_dtype init (14), 3 39 label_dtype init (15), 3 40 entry_dtype init (16), 3 41 structure_dtype init (17), 3 42 area_dtype init (18), 3 43 bit_dtype init (19), 3 44 varying_bit_dtype init (20), 3 45 char_dtype init (21), 3 46 varying_char_dtype init (22), 3 47 file_dtype init (23), 3 48 real_fix_dec_9bit_ls_overp_dtype init (29), 3 49 real_fix_dec_9bit_ts_overp_dtype init (30), 3 50 real_fix_bin_1_uns_dtype init (33), 3 51 real_fix_bin_2_uns_dtype init (34), 3 52 real_fix_dec_9bit_uns_dtype init (35), 3 53 real_fix_dec_9bit_ts_dtype init (36), 3 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 3 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 3 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 3 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 3 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 3 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 3 60 real_flt_dec_4bit_bytealigned_dtype init (44), 3 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 3 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 3 63 real_flt_hex_1_dtype init (47), 3 64 real_flt_hex_2_dtype init (48), 3 65 cplx_flt_hex_1_dtype init (49), 3 66 cplx_flt_hex_2_dtype init (50), 3 67 c_typeref_dtype init (54), 3 68 c_enum_dtype init (55), 3 69 c_enum_const_dtype init (56), 3 70 c_union_dtype init (57), 3 71 algol68_straight_dtype init (59), 3 72 algol68_format_dtype init (60), 3 73 algol68_array_descriptor_dtype init (61), 3 74 algol68_union_dtype init (62), 3 75 3 76 cobol_comp_6_dtype init (1), 3 77 cobol_comp_7_dtype init (1), 3 78 cobol_display_ls_dtype init (9), 3 79 cobol_structure_dtype init (17), 3 80 cobol_char_string_dtype init (21), 3 81 cobol_display_ls_overp_dtype init (29), 3 82 cobol_display_ts_overp_dtype init (30), 3 83 cobol_display_uns_dtype init (35), 3 84 cobol_display_ts_dtype init (36), 3 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 3 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 3 87 cobol_comp_5_uns_dtype init (40), 3 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 3 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 3 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 3 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 3 92 cplx_flt_dec_generic_dtype init (84), 3 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 3 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 3 95 3 96 dcl (ft_integer_dtype init (1), 3 97 ft_real_dtype init (3), 3 98 ft_double_dtype init (4), 3 99 ft_complex_dtype init (7), 3 100 ft_complex_double_dtype init (8), 3 101 ft_external_dtype init (16), 3 102 ft_logical_dtype init (19), 3 103 ft_char_dtype init (21), 3 104 ft_hex_real_dtype init (47), 3 105 ft_hex_double_dtype init (48), 3 106 ft_hex_complex_dtype init (49), 3 107 ft_hex_complex_double_dtype init (50) 3 108 ) fixed bin internal static options (constant); 3 109 3 110 dcl (algol68_short_int_dtype init (1), 3 111 algol68_int_dtype init (1), 3 112 algol68_long_int_dtype init (2), 3 113 algol68_real_dtype init (3), 3 114 algol68_long_real_dtype init (4), 3 115 algol68_compl_dtype init (7), 3 116 algol68_long_compl_dtype init (8), 3 117 algol68_bits_dtype init (19), 3 118 algol68_bool_dtype init (19), 3 119 algol68_char_dtype init (21), 3 120 algol68_byte_dtype init (21), 3 121 algol68_struct_struct_char_dtype init (22), 3 122 algol68_struct_struct_bool_dtype init (20) 3 123 ) fixed bin internal static options (constant); 3 124 3 125 dcl (label_constant_runtime_dtype init (24), 3 126 int_entry_runtime_dtype init (25), 3 127 ext_entry_runtime_dtype init (26), 3 128 ext_procedure_runtime_dtype init (27), 3 129 picture_runtime_dtype init (63) 3 130 ) fixed bin internal static options (constant); 3 131 3 132 dcl (pascal_integer_dtype init (1), 3 133 pascal_real_dtype init (4), 3 134 pascal_label_dtype init (24), 3 135 pascal_internal_procedure_dtype init (25), 3 136 pascal_exportable_procedure_dtype init (26), 3 137 pascal_imported_procedure_dtype init (27), 3 138 pascal_typed_pointer_type_dtype init (64), 3 139 pascal_char_dtype init (65), 3 140 pascal_boolean_dtype init (66), 3 141 pascal_record_file_type_dtype init (67), 3 142 pascal_record_type_dtype init (68), 3 143 pascal_set_dtype init (69), 3 144 pascal_enumerated_type_dtype init (70), 3 145 pascal_enumerated_type_element_dtype init (71), 3 146 pascal_enumerated_type_instance_dtype init (72), 3 147 pascal_user_defined_type_dtype init (73), 3 148 pascal_user_defined_type_instance_dtype init (74), 3 149 pascal_text_file_dtype init (75), 3 150 pascal_procedure_type_dtype init (76), 3 151 pascal_variable_formal_parameter_dtype init (77), 3 152 pascal_value_formal_parameter_dtype init (78), 3 153 pascal_entry_formal_parameter_dtype init (79), 3 154 pascal_parameter_procedure_dtype init (80), 3 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 3 156 3 157 3 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 1 715 1 716 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 1 717 1 718 end COMPARE_VALUES; 1 719 1 720 /* END INCLUDE FILE - dm_comp_vec_str_proc.incl.pl1 */ 139 140 141 end dmu_compare_values; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.2 dmu_compare_values.pl1 >special_ldd>install>MR12.2-1184>dmu_compare_values.pl1 139 1 07/20/87 1749.7 dm_comp_values_proc.incl.pl1 >ldd>include>dm_comp_values_proc.incl.pl1 1-713 2 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 1-715 3 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 1-717 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTION_CANT_RESTART 000160 constant bit(36) initial dcl 4-7 set ref 1-226* 1-232* 1-237* BIT4_DECIMAL_EXPONENT constant fixed bin(17,0) initial dcl 1-174 ref 1-622 1-658 1-662 BIT9_DECIMAL_EXPONENT constant fixed bin(17,0) initial dcl 1-174 ref 1-474 1-499 1-501 1-504 1-508 BITS_PER_EXPONENT constant fixed bin(17,0) initial dcl 1-174 ref 1-309 1-309 1-312 1-312 1-333 1-333 1-336 1-336 1-414 1-416 1-444 1-446 BITS_PER_WORD constant fixed bin(17,0) initial dcl 1-174 ref 1-247 1-251 1-254 1-258 1-278 1-282 1-285 1-289 1-309 1-312 1-333 1-336 1-363 1-364 1-391 1-392 1-421 1-422 1-451 1-452 1-534 1-538 1-576 1-579 1-598 1-601 BYTES_PER_WORD constant fixed bin(17,0) initial dcl 1-174 ref 1-562 1-566 DEFAULT_LENGTH constant fixed bin(17,0) initial dcl 1-174 ref 1-368 1-373 1-396 1-401 1-426 1-431 1-456 1-461 HIGHEST_SUPPORTED_DATA_TYPE 000136 constant fixed bin(17,0) initial dcl 1-174 set ref 1-226 1-226* NEED_TO_CHECK_FOR_ALIGNMENT 000134 constant bit(1) initial array packed unaligned dcl 1-185 ref 1-232 REQUIRED_ALIGNMENT 000056 constant fixed bin(17,0) initial array dcl 1-192 set ref 1-232 1-232* 1-237 1-237* SIGN constant fixed bin(17,0) initial dcl 1-174 ref 1-309 1-309 1-312 1-312 1-333 1-333 1-336 1-336 1-358 1-359 1-386 1-387 1-414 1-416 1-444 1-446 1-468 1-474 1-483 1-484 1-485 1-489 1-499 1-501 1-504 1-508 1-616 1-622 1-637 1-641 1-658 1-662 addbitno builtin function dcl 1-167 ref 1-358 1-359 1-363 1-364 1-386 1-387 1-391 1-392 1-414 1-416 1-421 1-422 1-444 1-446 1-451 1-452 addcharno builtin function dcl 1-167 ref 1-483 1-484 1-499 1-501 1-632 1-634 1-653 1-655 arg_descriptor based structure level 1 dcl 2-6 set ref 1-424 1-454 arg_descriptor_ptr 000172 automatic pointer dcl 2-34 set ref 1-224* 1-226 1-226 1-226 1-232 1-232 1-232 1-232 1-237 1-237 1-242 1-243 1-247 1-247 1-251 1-251 1-254 1-254 1-258 1-258 1-274 1-278 1-278 1-282 1-282 1-285 1-285 1-289 1-289 1-305 1-309 1-309 1-312 1-312 1-329 1-333 1-333 1-336 1-336 1-355 1-358 1-359 1-366 1-383 1-386 1-387 1-394 1-411 1-414 1-416 1-424 1-441 1-444 1-446 1-454 1-468 1-474 1-483 1-484 1-485 1-489 1-499 1-501 1-504 1-508 1-515 1-515 1-519 1-519 1-544 1-544 1-548 1-548 1-572 1-576 1-576 1-579 1-579 1-594 1-598 1-598 1-601 1-601 1-616 1-622 1-632 1-634 1-637 1-641 1-653 1-655 1-658 1-662 ceil builtin function dcl 1-167 ref 1-632 1-634 1-653 1-655 copy builtin function dcl 1-167 ref 1-247 1-251 1-254 1-258 1-278 1-282 1-285 1-289 1-309 1-312 1-333 1-336 1-576 1-579 1-598 1-601 cv_based_real_fix_bin_1_unsa based fixed bin(35,0) unsigned dcl 1-156 ref 1-588 1-588 1-590 1-590 cv_based_real_fix_bin_1a based fixed bin(35,0) dcl 1-138 ref 1-267 1-267 1-269 1-269 cv_based_real_fix_bin_1u based fixed bin(35,0) packed unaligned dcl 1-142 ref 1-534 1-538 1-562 1-566 cv_based_real_fix_bin_2_unsa based fixed bin(71,0) unsigned dcl 1-158 ref 1-610 1-610 1-612 1-612 cv_based_real_fix_bin_2a based fixed bin(71,0) dcl 1-140 ref 1-298 1-298 1-300 1-300 cv_based_real_flt_bin_1a based float bin(27) dcl 1-147 ref 1-323 1-323 1-325 1-325 cv_based_real_flt_bin_2a based float bin(63) dcl 1-149 ref 1-346 1-346 1-348 1-348 cv_bit_string based bit packed unaligned dcl 1-135 ref 1-247 1-247 1-251 1-254 1-254 1-258 1-278 1-278 1-282 1-285 1-285 1-289 1-309 1-312 1-333 1-336 1-515 1-515 1-519 1-519 1-525 1-525 1-530 1-530 1-534 1-534 1-538 1-538 1-576 1-579 1-598 1-601 cv_char_string based char packed unaligned dcl 1-136 ref 1-544 1-544 1-548 1-548 1-553 1-553 1-558 1-558 1-562 1-562 1-566 1-566 cv_field_imaginary_part_value_ptr 000166 automatic pointer initial dcl 1-124 set ref 1-124* 1-359* 1-364* 1-373* 1-387* 1-392* 1-401* 1-416* 1-422* 1-431* 1-446* 1-452* 1-461* 1-484* 1-489* 1-501* 1-508* 1-634* 1-641* 1-655* 1-662* cv_field_real_part_value_ptr 000164 automatic pointer initial dcl 1-124 set ref 1-124* 1-352* 1-368* 1-380* 1-396* 1-408* 1-426* 1-438* 1-456* 1-482* 1-485* 1-498* 1-504* 1-630* 1-637* 1-651* 1-658* cv_local_arg_descriptor 000170 automatic structure level 1 packed packed unaligned dcl 1-128 set ref 1-424* 1-426 1-426 1-431 1-431 1-454* 1-456 1-456 1-461 1-461 cv_local_field_real_fix_bin_1 000137 automatic fixed bin(35,0) dcl 1-99 set ref 1-254* 1-258* 1-261 1-263 cv_local_field_real_fix_bin_1_uns 000153 automatic fixed bin(35,0) unsigned dcl 1-117 set ref 1-579* 1-582 1-584 cv_local_field_real_fix_bin_2 000142 automatic fixed bin(71,0) dcl 1-103 set ref 1-285* 1-289* 1-292 1-294 cv_local_field_real_fix_bin_2_uns 000156 automatic fixed bin(71,0) unsigned dcl 1-121 set ref 1-601* 1-604 1-606 cv_local_field_real_flt_bin_1 000145 automatic float bin(27) dcl 1-108 set ref 1-312* 1-317 1-319 cv_local_field_real_flt_bin_2 000150 automatic float bin(63) dcl 1-112 set ref 1-336* 1-340 1-342 cv_local_fixed_arg_descriptor 000171 automatic structure level 1 packed packed unaligned dcl 1-130 set ref 1-366* 1-368 1-368 1-373 1-373 1-394* 1-396 1-396 1-401 1-401 cv_local_vector_real_fix_bin_1 000136 automatic fixed bin(35,0) dcl 1-97 set ref 1-247* 1-251* 1-261 1-263 cv_local_vector_real_fix_bin_1_uns 000152 automatic fixed bin(35,0) unsigned dcl 1-115 set ref 1-576* 1-582 1-584 cv_local_vector_real_fix_bin_2 000140 automatic fixed bin(71,0) dcl 1-101 set ref 1-278* 1-282* 1-292 1-294 cv_local_vector_real_fix_bin_2_uns 000154 automatic fixed bin(71,0) unsigned dcl 1-119 set ref 1-598* 1-604 1-606 cv_local_vector_real_flt_bin_1 000144 automatic float bin(27) dcl 1-106 set ref 1-309* 1-317 1-319 cv_local_vector_real_flt_bin_2 000146 automatic float bin(63) dcl 1-110 set ref 1-333* 1-340 1-342 cv_p_code 000113 automatic fixed bin(35,0) dcl 94 set ref 135 1-222* 1-368* 1-371 1-373* 1-396* 1-399 1-401* 1-426* 1-429 1-431* 1-456* 1-459 1-461* 1-671* cv_p_descriptor_ptr 000100 automatic pointer dcl 83 set ref 123* 1-224 cv_p_field_value_length 000110 automatic fixed bin(35,0) dcl 88 set ref 127* 1-525 1-530 1-534 1-538 1-553 1-558 1-562 1-566 cv_p_field_value_ptr 000106 automatic pointer dcl 87 set ref 126* 1-237 1-237* 1-254 1-254 1-258 1-267 1-269 1-285 1-285 1-289 1-298 1-300 1-312 1-323 1-325 1-336 1-346 1-348 1-352 1-359 1-364 1-380 1-387 1-392 1-408 1-416 1-422 1-438 1-446 1-452 1-468* 1-474* 1-482 1-484 1-498 1-501 1-515 1-519 1-525 1-530 1-534 1-538 1-544 1-548 1-553 1-558 1-562 1-566 1-579 1-588 1-590 1-601 1-610 1-612 1-616* 1-622* 1-630 1-634 1-651 1-655 cv_p_vector_equal_to_key 000111 automatic bit(1) dcl 90 set ref 133 1-368* 1-373 1-373* 1-396* 1-401 1-401* 1-426* 1-431 1-431* 1-456* 1-461 1-461* 1-468* 1-474* 1-485* 1-489 1-489* 1-504* 1-508 1-508* 1-616* 1-622* 1-637* 1-641 1-641* 1-658* 1-662 1-662* 1-698* 1-703* 1-708* cv_p_vector_less_than_key 000112 automatic bit(1) dcl 92 set ref 134 1-368* 1-373* 1-396* 1-401* 1-426* 1-431* 1-456* 1-461* 1-468* 1-474* 1-485* 1-489* 1-504* 1-508* 1-616* 1-622* 1-637* 1-641* 1-658* 1-662* 1-700* 1-705* 1-710* cv_p_vector_value_is_in_field_format parameter bit(1) dcl 1-72 ref 1-65 1-525 1-553 cv_p_vector_value_length 000104 automatic fixed bin(35,0) dcl 85 set ref 111* 121* 1-525 1-530 1-553 1-558 cv_p_vector_value_ptr 000102 automatic pointer dcl 84 set ref 125* 1-232 1-232* 1-247 1-247 1-251 1-267 1-269 1-278 1-278 1-282 1-298 1-300 1-309 1-323 1-325 1-333 1-346 1-348 1-354 1-358 1-363 1-382 1-386 1-391 1-410 1-414 1-421 1-440 1-444 1-451 1-468* 1-474* 1-480 1-483 1-496 1-499 1-515 1-519 1-525 1-530 1-534 1-534 1-538 1-538 1-544 1-548 1-553 1-558 1-562 1-562 1-566 1-566 1-576 1-588 1-590 1-598 1-610 1-612 1-616* 1-622* 1-628 1-632 1-649 1-653 cv_vector_imaginary_part_value_ptr 000162 automatic pointer initial dcl 1-124 set ref 1-124* 1-358* 1-363* 1-373* 1-386* 1-391* 1-401* 1-414* 1-421* 1-431* 1-444* 1-451* 1-461* 1-483* 1-489* 1-499* 1-508* 1-632* 1-641* 1-653* 1-662* cv_vector_real_part_value_ptr 000160 automatic pointer initial dcl 1-124 set ref 1-124* 1-354* 1-368* 1-382* 1-396* 1-410* 1-426* 1-440* 1-456* 1-480* 1-485* 1-496* 1-504* 1-628* 1-637* 1-649* 1-658* dm_error_$unimplemented_data_type 000030 external static fixed bin(35,0) dcl 1-217 ref 1-671 dmu_compare_decimal_values$dmu_compare_dec4fl 000016 constant entry external dcl 1-207 ref 1-622 1-658 1-662 dmu_compare_decimal_values$dmu_compare_dec4ls 000020 constant entry external dcl 1-209 ref 1-616 1-637 1-641 dmu_compare_decimal_values$dmu_compare_dec9fl 000014 constant entry external dcl 1-205 ref 1-474 1-504 1-508 dmu_compare_decimal_values$dmu_compare_dec9ls 000012 constant entry external dcl 1-203 ref 1-468 1-485 1-489 dmu_compare_values 000010 constant entry external dcl 1-201 ref 1-368 1-373 1-396 1-401 1-426 1-431 1-456 1-461 error_table_$bad_arg 000026 external static fixed bin(35,0) dcl 1-216 set ref 1-226* 1-232* 1-237* extended_arg_type 000174 automatic fixed bin(17,0) initial dcl 2-36 set ref 2-36* fixed_arg_descriptor based structure level 1 dcl 2-13 ref 1-366 1-394 myname 000137 constant varying char(32) initial dcl 1-172 set ref 1-226* 1-232* 1-237* null builtin function dcl 1-167 ref 1-124 1-124 1-124 1-124 1-226 1-226 1-232 1-232 1-237 1-237 p_code parameter fixed bin(35,0) dcl 77 set ref 7 116 135* p_descriptor_ptr parameter pointer dcl 71 ref 7 116 123 p_field_value_length parameter fixed bin(35,0) dcl 74 ref 7 116 127 p_field_value_ptr parameter pointer dcl 73 ref 7 116 126 p_vector_equal_to_key parameter bit(1) dcl 75 set ref 7 116 133* p_vector_less_than_key parameter bit(1) dcl 76 set ref 7 116 134* p_vector_value_length parameter fixed bin(35,0) dcl 79 ref 116 121 p_vector_value_ptr parameter pointer dcl 72 ref 7 116 125 packed 0(07) based bit(1) level 2 packed packed unaligned dcl 2-6 ref 1-232 1-243 1-274 1-305 1-329 1-355 1-383 1-411 1-441 1-572 1-594 precision 0(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 2-13 ref 1-247 1-247 1-251 1-251 1-254 1-254 1-258 1-258 1-278 1-278 1-282 1-282 1-285 1-285 1-289 1-289 1-358 1-359 1-386 1-387 1-468 1-483 1-484 1-485 1-489 1-576 1-576 1-579 1-579 1-598 1-598 1-601 1-601 1-616 1-632 1-634 1-637 1-641 1-653 1-655 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-367 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-395 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-425 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 3-25 ref 1-455 size 0(12) based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 2-6 ref 1-309 1-309 1-312 1-312 1-333 1-333 1-336 1-336 1-414 1-416 1-444 1-446 1-474 1-499 1-501 1-504 1-508 1-515 1-515 1-519 1-519 1-544 1-544 1-548 1-548 1-622 1-658 1-662 sub_err_ 000022 constant entry external dcl 1-211 ref 1-226 1-232 1-237 substr builtin function dcl 1-167 ref 1-247 1-247 1-251 1-254 1-254 1-258 1-278 1-278 1-282 1-285 1-285 1-289 1-309 1-312 1-333 1-336 1-515 1-515 1-519 1-519 1-525 1-525 1-530 1-530 1-534 1-534 1-538 1-538 1-544 1-544 1-548 1-548 1-553 1-553 1-558 1-558 1-562 1-562 1-566 1-566 1-576 1-579 1-598 1-601 sys_info$max_seg_size 000024 external static fixed bin(35,0) dcl 1-215 ref 1-247 1-247 1-251 1-254 1-254 1-258 1-278 1-278 1-282 1-285 1-285 1-289 1-309 1-312 1-333 1-336 1-515 1-515 1-519 1-519 1-525 1-525 1-530 1-530 1-534 1-534 1-538 1-538 1-544 1-544 1-548 1-548 1-553 1-553 1-558 1-558 1-562 1-562 1-566 1-566 1-576 1-579 1-598 1-601 type 0(01) 000171 automatic fixed bin(6,0) level 2 in structure "cv_local_fixed_arg_descriptor" packed packed unsigned unaligned dcl 1-130 in procedure "COMPARE_VALUES" set ref 1-367* 1-395* type 0(01) based fixed bin(6,0) level 2 in structure "arg_descriptor" packed packed unsigned unaligned dcl 2-6 in procedure "COMPARE_VALUES" set ref 1-226 1-226 1-226* 1-232 1-232 1-232 1-237 1-237 1-242 type 0(01) 000170 automatic fixed bin(6,0) level 2 in structure "cv_local_arg_descriptor" packed packed unsigned unaligned dcl 1-128 in procedure "COMPARE_VALUES" set ref 1-425* 1-455* unspec builtin function dcl 1-167 set ref 1-247* 1-251* 1-254* 1-258* 1-278* 1-282* 1-285* 1-289* 1-309* 1-312* 1-333* 1-336* 1-576* 1-579* 1-598* 1-601* vector_value_is_in_field_format 000114 automatic bit(1) dcl 96 set ref 110* 120* 129* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 3-25 area_dtype internal static fixed bin(17,0) initial dcl 3-25 bit_dtype internal static fixed bin(17,0) initial dcl 3-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 3-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 3-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 3-25 c_union_dtype internal static fixed bin(17,0) initial dcl 3-25 char_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 cv_based_real_fix_bin_1_unsu based fixed bin(35,0) packed unsigned unaligned dcl 1-160 cv_based_real_fix_bin_2_unsu based fixed bin(71,0) packed unsigned unaligned dcl 1-162 cv_based_real_fix_bin_2u based fixed bin(71,0) packed unaligned dcl 1-144 cv_based_real_flt_bin_1u based float bin(27) packed unaligned dcl 1-151 cv_based_real_flt_bin_2u based float bin(63) packed unaligned dcl 1-153 entry_dtype internal static fixed bin(17,0) initial dcl 3-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 extended_arg_descriptor based structure level 1 dcl 2-21 file_dtype internal static fixed bin(17,0) initial dcl 3-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 3-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 label_dtype internal static fixed bin(17,0) initial dcl 3-25 myname internal static varying char(32) initial dcl 103 offset_dtype internal static fixed bin(17,0) initial dcl 3-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 pointer_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 structure_dtype internal static fixed bin(17,0) initial dcl 3-25 varying_bit_dtype internal static fixed bin(17,0) initial dcl 3-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 3-25 NAMES DECLARED BY EXPLICIT CONTEXT. COMPARE_VALUES 000416 constant entry internal dcl 1-65 ref 129 CVS_JOIN 000370 constant label dcl 123 ref 113 CV_RETURN_EQUAL 003324 constant label dcl 1-698 ref 1-261 1-267 1-292 1-298 1-317 1-323 1-340 1-346 1-515 1-525 1-534 1-544 1-553 1-562 1-582 1-588 1-604 1-610 CV_RETURN_GREATER 003334 constant label dcl 1-708 ref 1-265 1-271 1-296 1-302 1-321 1-327 1-344 1-350 1-522 1-533 1-542 1-551 1-561 1-570 1-586 1-592 1-608 1-614 CV_RETURN_LESS 003330 constant label dcl 1-703 set ref 1-263 1-269 1-294 1-300 1-319 1-325 1-342 1-348 1-519 1-530 1-538 1-548 1-558 1-566 1-584 1-590 1-606 1-612 CV_TYPE 000000 constant label array(46) dcl 1-243 ref 1-242 dmu_compare_values 000310 constant entry external dcl 7 field_to_field 000343 constant entry external dcl 116 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 1-368 1-368 1-373 1-373 1-396 1-396 1-401 1-401 1-426 1-426 1-431 1-431 1-456 1-456 1-461 1-461 bitno builtin function ref 1-232 1-237 divide builtin function ref 1-632 1-634 1-653 1-655 mod builtin function ref 1-232 1-237 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3522 3554 3345 3532 Length 4056 3345 32 266 154 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dmu_compare_values 232 external procedure is an external procedure. COMPARE_VALUES internal procedure shares stack frame of external procedure dmu_compare_values. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dmu_compare_values 000100 cv_p_descriptor_ptr dmu_compare_values 000102 cv_p_vector_value_ptr dmu_compare_values 000104 cv_p_vector_value_length dmu_compare_values 000106 cv_p_field_value_ptr dmu_compare_values 000110 cv_p_field_value_length dmu_compare_values 000111 cv_p_vector_equal_to_key dmu_compare_values 000112 cv_p_vector_less_than_key dmu_compare_values 000113 cv_p_code dmu_compare_values 000114 vector_value_is_in_field_format dmu_compare_values 000136 cv_local_vector_real_fix_bin_1 COMPARE_VALUES 000137 cv_local_field_real_fix_bin_1 COMPARE_VALUES 000140 cv_local_vector_real_fix_bin_2 COMPARE_VALUES 000142 cv_local_field_real_fix_bin_2 COMPARE_VALUES 000144 cv_local_vector_real_flt_bin_1 COMPARE_VALUES 000145 cv_local_field_real_flt_bin_1 COMPARE_VALUES 000146 cv_local_vector_real_flt_bin_2 COMPARE_VALUES 000150 cv_local_field_real_flt_bin_2 COMPARE_VALUES 000152 cv_local_vector_real_fix_bin_1_uns COMPARE_VALUES 000153 cv_local_field_real_fix_bin_1_uns COMPARE_VALUES 000154 cv_local_vector_real_fix_bin_2_uns COMPARE_VALUES 000156 cv_local_field_real_fix_bin_2_uns COMPARE_VALUES 000160 cv_vector_real_part_value_ptr COMPARE_VALUES 000162 cv_vector_imaginary_part_value_ptr COMPARE_VALUES 000164 cv_field_real_part_value_ptr COMPARE_VALUES 000166 cv_field_imaginary_part_value_ptr COMPARE_VALUES 000170 cv_local_arg_descriptor COMPARE_VALUES 000171 cv_local_fixed_arg_descriptor COMPARE_VALUES 000172 arg_descriptor_ptr COMPARE_VALUES 000174 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 mdfx1 shorten_stack ext_entry ceil_fx1 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_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$unimplemented_data_type error_table_$bad_arg sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000302 110 000330 111 000331 113 000333 116 000334 120 000363 121 000365 123 000370 125 000373 126 000376 127 000401 129 000403 133 000405 134 000410 135 000413 137 000415 1 65 000416 1 124 000420 2 36 000425 1 222 000427 1 224 000430 1 226 000432 1 232 000517 1 237 000620 1 242 000703 1 243 000710 1 247 000713 1 251 000750 1 254 001000 1 258 001036 1 261 001066 1 263 001072 1 265 001073 1 267 001074 1 269 001077 1 271 001100 1 274 001101 1 278 001104 1 282 001141 1 285 001171 1 289 001227 1 292 001257 1 294 001263 1 296 001264 1 298 001265 1 300 001270 1 302 001271 1 305 001272 1 309 001275 1 312 001340 1 317 001366 1 319 001372 1 321 001373 1 323 001374 1 325 001377 1 327 001400 1 329 001401 1 333 001404 1 336 001447 1 340 001475 1 342 001501 1 344 001502 1 346 001503 1 348 001506 1 350 001507 1 352 001510 1 354 001512 1 355 001514 1 358 001517 1 359 001525 1 360 001530 1 363 001531 1 364 001535 1 366 001540 1 367 001564 1 368 001570 1 371 001617 1 373 001622 1 378 001654 1 380 001655 1 382 001657 1 383 001661 1 386 001664 1 387 001672 1 388 001675 1 391 001676 1 392 001702 1 394 001705 1 395 001731 1 396 001735 1 399 001764 1 401 001767 1 406 002021 1 408 002022 1 410 002024 1 411 002026 1 414 002031 1 416 002041 1 418 002044 1 421 002045 1 422 002051 1 424 002054 1 425 002077 1 426 002103 1 429 002132 1 431 002135 1 436 002167 1 438 002170 1 440 002172 1 441 002174 1 444 002177 1 446 002207 1 448 002212 1 451 002213 1 452 002217 1 454 002222 1 455 002245 1 456 002251 1 459 002300 1 461 002303 1 466 002335 1 468 002336 1 472 002361 1 474 002362 1 478 002405 1 480 002406 1 482 002410 1 483 002412 1 484 002421 1 485 002424 1 489 002446 1 494 002474 1 496 002475 1 498 002477 1 499 002501 1 501 002511 1 504 002514 1 508 002536 1 513 002564 1 515 002565 1 519 002575 1 522 002576 1 525 002577 1 530 002613 1 533 002614 1 534 002615 1 538 002632 1 542 002633 1 544 002634 1 548 002644 1 551 002645 1 553 002646 1 558 002662 1 561 002663 1 562 002664 1 566 002701 1 570 002702 1 572 002703 1 576 002706 1 579 002736 1 582 002756 1 584 002762 1 586 002763 1 588 002764 1 590 002767 1 592 002770 1 594 002771 1 598 002774 1 601 003024 1 604 003045 1 606 003051 1 608 003052 1 610 003053 1 612 003056 1 614 003057 1 616 003060 1 620 003103 1 622 003104 1 626 003127 1 628 003130 1 630 003132 1 632 003134 1 634 003150 1 637 003153 1 641 003175 1 647 003223 1 649 003224 1 651 003226 1 653 003230 1 655 003243 1 658 003246 1 662 003271 1 668 003317 1 671 003320 1 696 003323 1 698 003324 1 700 003326 1 701 003327 1 703 003330 1 705 003331 1 706 003333 1 708 003334 1 710 003335 1 711 003336 ----------------------------------------------------------- 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