COMPILATION LISTING OF SEGMENT vu_append_general_print Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/16/84 1305.1 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style2,ind3 */ 7 vu_append_general_print: 8 append_general_print_vector: 9 proc (); 10 11 /* DESCRIPTION: 12* 13* This entry appends a print vector to a print vector array. 14**/ 15 16 /* HISTORY: 17*Written by Lindsey Spratt, sometime in 1980? 18*Modified: 19*03/10/83 by Lindsey Spratt: Added a new parameter (now the 4th one) which is 20* used to specify that an existing print_vector is to be added onto. 21*03/15/83 by Lindsey Spratt: Added a nosubrg prefix to avoid a compiler bug in 22* assigning from one array to another when the arrays have different 23* extents. 24*08/30/83 by Lindsey L. Spratt: Fixed to use vd_error_$dim_already_in_vector. 25**/ 26 27 /* START OF DECLARATIONS */ 28 /* Parameter */ 29 /* Automatic */ 30 31 dcl dimension_name_ptr ptr; 32 dcl dimension_name_length fixed bin; 33 34 35 dcl CODE_ARG_IDX fixed bin; 36 dcl PVA_PTR_ARG_IDX fixed bin; 37 dcl (dim_idx, temp_dim_idx) 38 fixed bin; 39 dcl values_given bit (1) aligned init ("0"b); 40 dcl is_dimension_value bit (1) aligned; 41 dcl old_pva_ptr ptr; 42 dcl vector_idx fixed bin; 43 dcl (vector_slot_idx_ptr, old_print_vector_ptr) 44 ptr init (null); 45 dcl free_old_print_vector_array_ptr 46 ptr; 47 dcl arg_list_arg_count fixed bin; 48 dcl arg_list_ptr ptr; 49 dcl type fixed bin; 50 dcl packed bit (1) aligned; 51 dcl size fixed bin; 52 dcl ndims fixed bin; 53 dcl scale fixed bin; 54 dcl p_code_ptr ptr; 55 dcl nargs fixed bin; 56 dcl arg_idx fixed bin; 57 dcl work_area_ptr ptr; 58 59 /* Based */ 60 61 dcl vector_slot_idx fixed bin (35) based (vector_slot_idx_ptr) aligned; 62 dcl free_old_print_vector_array 63 bit (1) aligned based (free_old_print_vector_array_ptr); 64 dcl work_area area based (work_area_ptr); 65 dcl s_fixed_real_template based fixed bin; 66 dcl ptr_template based ptr; 67 dcl dimension_name based (dimension_name_ptr) char (dimension_name_length); 68 dcl v_char_template based char (size) varying; 69 dcl char_template based char (size); 70 71 dcl p_code based (p_code_ptr) fixed bin (35); 72 73 74 /* Builtin */ 75 76 dcl null builtin; 77 78 /* Controlled */ 79 /* Constant */ 80 81 dcl MYNAME init ("vu_append_general_print") char (40) varying internal static 82 options (constant); 83 84 dcl ( 85 AREA_PTR_ARG_IDX init (1), 86 SLOT_INCREASE_ARG_IDX init (2), 87 FREE_OLD_PVA_ARG_IDX init (3), 88 VECTOR_SLOT_IDX_ARG_IDX 89 init (4), 90 NUMBER_OF_DIMENSIONS_ARG_IDX 91 init (5), 92 MAXIMUM_VALUE_LENGTH_ARG_IDX 93 init (6), 94 NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING 95 init (4), 96 PVA_PTR_ARG_OFFSET_FROM_END 97 init (1), 98 NUMBER_OF_NONVALUE_ARGS_AT_END 99 init (2) 100 ) fixed bin internal static options (constant); 101 102 103 /* Entry */ 104 105 dcl cu_$arg_list_ptr entry (ptr); 106 dcl decode_descriptor_ entry (ptr, fixed bin, fixed bin, bit (1) aligned, fixed bin, fixed bin, fixed bin); 107 dcl cu_$arg_count entry (fixed bin); 108 dcl sub_err_ entry () options (variable); 109 110 /* External */ 111 112 dcl error_table_$bad_arg fixed bin (35) ext; 113 dcl error_table_$fatal_error 114 fixed bin (35) ext; 115 dcl vd_error_$dim_already_in_vector 116 fixed bin (35) ext; 117 118 /* END OF DECLARATIONS */ 119 120 call cu_$arg_count (nargs); 121 arg_list_arg_count = nargs; 122 call cu_$arg_list_ptr (arg_list_ptr); 123 124 CODE_ARG_IDX = nargs; 125 PVA_PTR_ARG_IDX = nargs - PVA_PTR_ARG_OFFSET_FROM_END; 126 127 call decode_descriptor_ (arg_list_ptr, CODE_ARG_IDX, type, packed, ndims, size, scale); 128 if type ^= s_fixed_real_desc 129 then call 130 sub_err_ (error_table_$fatal_error, MYNAME, "s", null, 0, 131 "^/^a was called incorrectly.^/The final argument must be fixed bin(35).", MYNAME); 132 133 p_code_ptr = arg_list_ptr -> arg_list.arg_ptrs (CODE_ARG_IDX); 134 135 call decode_descriptor_ (arg_list_ptr, AREA_PTR_ARG_IDX, type, packed, ndims, size, scale); 136 137 if type ^= pointer_desc 138 then 139 do; 140 p_code = error_table_$bad_arg; 141 return; 142 end; 143 144 work_area_ptr = arg_list_ptr -> arg_list.arg_ptrs (AREA_PTR_ARG_IDX) -> ptr_template; 145 146 call decode_descriptor_ (arg_list_ptr, PVA_PTR_ARG_IDX, type, packed, ndims, size, scale); 147 148 if type ^= pointer_desc 149 then 150 do; 151 p_code = error_table_$bad_arg; 152 return; 153 end; 154 155 print_vector_array_ptr = arg_list_ptr -> arg_list.arg_ptrs (PVA_PTR_ARG_IDX) -> ptr_template; 156 157 call decode_descriptor_ (arg_list_ptr, SLOT_INCREASE_ARG_IDX, type, packed, ndims, size, scale); 158 159 if type ^= s_fixed_real_desc 160 then 161 do; 162 p_code = error_table_$bad_arg; 163 return; 164 end; 165 166 167 pva_number_of_vector_slots = 168 print_vector_array.number_of_vector_slots 169 + arg_list_ptr -> arg_list.arg_ptrs (SLOT_INCREASE_ARG_IDX) -> s_fixed_real_template; 170 call decode_descriptor_ (arg_list_ptr, FREE_OLD_PVA_ARG_IDX, type, packed, ndims, size, scale); 171 172 if type ^= bit_desc | packed | size ^= 1 173 then 174 do; 175 p_code = error_table_$bad_arg; 176 return; 177 end; 178 179 free_old_print_vector_array_ptr = arg_list_ptr -> arg_list.arg_ptrs (FREE_OLD_PVA_ARG_IDX); 180 181 call decode_descriptor_ (arg_list_ptr, VECTOR_SLOT_IDX_ARG_IDX, type, packed, ndims, size, scale); 182 if type ^= s_fixed_real_desc | packed 183 then 184 do; 185 p_code = error_table_$bad_arg; 186 return; 187 end; 188 vector_slot_idx_ptr = arg_list_ptr -> arg_list.arg_ptrs (VECTOR_SLOT_IDX_ARG_IDX); 189 if vector_slot_idx = 0 | vector_slot_idx < -1 | vector_slot_idx > print_vector_array.number_of_vectors 190 then 191 do; 192 p_code = error_table_$bad_arg; 193 return; 194 end; 195 else if vector_slot_idx = -1 196 then old_print_vector_ptr = null; 197 else old_print_vector_ptr = print_vector_array.vector_slot (vector_slot_idx); 198 199 200 call decode_descriptor_ (arg_list_ptr, NUMBER_OF_DIMENSIONS_ARG_IDX, type, packed, ndims, size, scale); 201 if type = s_fixed_real_desc 202 then if ^packed 203 then 204 do; 205 values_given = "0"b; 206 pv_number_of_dimensions = 207 arg_list_ptr -> arg_list.arg_ptrs (NUMBER_OF_DIMENSIONS_ARG_IDX) -> s_fixed_real_template; 208 call decode_descriptor_ (arg_list_ptr, MAXIMUM_VALUE_LENGTH_ARG_IDX, type, packed, ndims, size, scale); 209 if type = s_fixed_real_desc 210 then if ^packed 211 then pv_maximum_value_length = 212 arg_list_ptr -> arg_list.arg_ptrs (MAXIMUM_VALUE_LENGTH_ARG_IDX) -> s_fixed_real_template; 213 else 214 do; 215 p_code = error_table_$bad_arg; 216 return; 217 end; 218 219 end; 220 else 221 do; 222 p_code = error_table_$bad_arg; 223 return; 224 end; 225 else 226 do; 227 values_given = "1"b; 228 pv_number_of_dimensions = 229 (nargs - (NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING + NUMBER_OF_NONVALUE_ARGS_AT_END)) / 2; 230 pv_maximum_value_length = 0; 231 232 do arg_idx = NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING + 2 to nargs - NUMBER_OF_NONVALUE_ARGS_AT_END by 2; 233 234 call decode_descriptor_ (arg_list_ptr, arg_idx, type, packed, ndims, size, scale); 235 236 if type = v_char_desc | type = char_desc 237 then 238 do; 239 240 pv_maximum_value_length = 241 max (pv_maximum_value_length, 242 length (rtrim (arg_list_ptr -> arg_list.arg_ptrs (arg_idx) -> char_template))); 243 end; 244 else 245 do; 246 p_code = error_table_$bad_arg; 247 return; 248 end; 249 end; 250 end; 251 252 if old_print_vector_ptr = null 253 then 254 do; 255 alloc print_vector in (work_area); 256 print_vector_array.number_of_vectors = print_vector_array.number_of_vectors + 1; 257 if print_vector_array.number_of_vectors > print_vector_array.number_of_vector_slots 258 then 259 do; 260 pva_maximum_dimension_name_length = print_vector_array.maximum_dimension_name_length; 261 pva_number_of_dimensions = print_vector_array.number_of_dimensions; 262 old_pva_ptr = print_vector_array_ptr; 263 alloc print_vector_array in (work_area); 264 arg_list_ptr -> arg_list.arg_ptrs (PVA_PTR_ARG_IDX) -> ptr_template = print_vector_array_ptr; 265 print_vector_array.version = PRINT_VECTOR_ARRAY_VERSION_2; 266 print_vector_array.dimension_table = old_pva_ptr -> print_vector_array.dimension_table; 267 print_vector_array.number_of_vectors = old_pva_ptr -> print_vector_array.number_of_vectors; 268 /* This number includes the newly created print_vector. */ 269 do vector_idx = 1 to print_vector_array.number_of_vectors - 1; 270 (nosubrg): 271 print_vector_array.vector_slot (vector_idx) = 272 old_pva_ptr -> print_vector_array.vector_slot (vector_idx); 273 end; 274 if free_old_print_vector_array 275 then free old_pva_ptr -> print_vector_array in (work_area); 276 end; 277 print_vector_array.vector_slot (print_vector_array.number_of_vectors) = print_vector_ptr; 278 279 dim_idx = 0; 280 end; 281 else 282 do; 283 pv_number_of_dimensions = pv_number_of_dimensions + old_print_vector_ptr -> print_vector.number_of_dimensions; 284 pv_maximum_value_length = 285 max (pv_maximum_value_length, old_print_vector_ptr -> print_vector.maximum_value_length); 286 alloc print_vector in (work_area); 287 do dim_idx = 1 to old_print_vector_ptr -> print_vector.number_of_dimensions; 288 (nosubrg): 289 print_vector.dimension (dim_idx) = old_print_vector_ptr -> print_vector.dimension (dim_idx); 290 end; 291 dim_idx = old_print_vector_ptr -> print_vector.number_of_dimensions; 292 end; 293 294 is_dimension_value = "1"b; 295 if values_given 296 then 297 do arg_idx = NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING + 1 to nargs - NUMBER_OF_NONVALUE_ARGS_AT_END; 298 is_dimension_value = (mod (arg_idx - NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING, 2) = 0); 299 call decode_descriptor_ (arg_list_ptr, arg_idx, type, packed, ndims, size, scale); 300 if type ^= v_char_desc & type ^= char_desc 301 then 302 do; 303 p_code = error_table_$bad_arg; 304 return; 305 end; 306 else if is_dimension_value 307 then 308 do; 309 print_vector_array.dimension_table (print_vector.dimension (dim_idx).identifier).maximum_value_length = 310 max (print_vector_array.dimension_table (print_vector.dimension (dim_idx).identifier) 311 .maximum_value_length, size); 312 print_vector.dimension (dim_idx).value = 313 rtrim (arg_list_ptr -> arg_list.arg_ptrs (arg_idx) -> char_template); 314 end; 315 else 316 do; 317 dim_idx = dim_idx + 1; 318 dimension_name_ptr = arg_list_ptr -> arg_list.arg_ptrs (arg_idx); 319 dimension_name_length = size; 320 do print_vector.dimension (dim_idx).identifier = 1 to print_vector_array.number_of_dimensions 321 while (print_vector_array.dimension_table (print_vector.dimension (dim_idx).identifier).name 322 ^= dimension_name); 323 end; 324 if print_vector.dimension (dim_idx).identifier > print_vector_array.number_of_dimensions 325 then call 326 vector_util_$append_dimension_print (work_area_ptr, free_old_print_vector_array, dimension_name, 327 print_vector_array_ptr, null, print_vector.dimension (dim_idx).identifier, p_code); 328 329 do temp_dim_idx = 1 to dim_idx - 1 330 while (print_vector.dimension (temp_dim_idx).identifier 331 ^= print_vector.dimension (dim_idx).identifier); 332 end; 333 if temp_dim_idx < dim_idx 334 then 335 do; 336 p_code = vd_error_$dim_already_in_vector; 337 return; 338 end; 339 340 end; 341 end; 342 else 343 do; 344 do dim_idx = dim_idx + 1 to print_vector.number_of_dimensions; 345 print_vector.dimension (dim_idx).value = ""; 346 print_vector.dimension (dim_idx).identifier = 0; 347 end; 348 end; 349 if old_print_vector_ptr ^= null 350 then 351 do; 352 print_vector_array.vector_slot (vector_slot_idx) = print_vector_ptr; 353 free old_print_vector_ptr -> print_vector in (work_area); 354 old_print_vector_ptr = null; 355 end; 356 return; 357 1 1 /* *********************************************************** 1 2* * * 1 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 1 4* * * 1 5* *********************************************************** */ 1 6 /* BEGIN INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 1 7 /* Written by Matthew C. Pierret, 01/21/82 1 8*Modified: 1 9**/ 1 10 1 11 /* format: style2,ind3 */ 1 12 dcl 1 print_vector_array based (print_vector_array_ptr), 1 13 2 version fixed bin (35), 1 14 2 number_of_dimensions 1 15 fixed bin (17), 1 16 2 maximum_dimension_name_length 1 17 fixed bin (17), 1 18 2 number_of_vectors fixed bin (17), 1 19 2 number_of_vector_slots 1 20 fixed bin (17), 1 21 2 dimension_table (pva_number_of_dimensions refer (print_vector_array.number_of_dimensions)), 1 22 3 name char (pva_maximum_dimension_name_length 1 23 refer (print_vector_array.maximum_dimension_name_length)) varying, 1 24 3 descriptor_ptr ptr, 1 25 3 cv_to_print entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 1 26 3 cv_to_typed entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 1 27 3 maximum_value_length 1 28 fixed bin (17), 1 29 2 vector_slot (pva_number_of_vector_slots refer (print_vector_array.number_of_vector_slots)) ptr; 1 30 1 31 dcl 1 print_vector based (print_vector_ptr), 1 32 2 number_of_dimensions 1 33 fixed bin (17), 1 34 2 maximum_value_length 1 35 fixed bin (35), 1 36 2 dimension (pv_number_of_dimensions refer (print_vector.number_of_dimensions)), 1 37 3 identifier fixed bin (17), 1 38 3 value char (pv_maximum_value_length refer (print_vector.maximum_value_length)) varying; 1 39 1 40 dcl pva_number_of_dimensions 1 41 fixed bin; 1 42 dcl pva_number_of_vector_slots 1 43 fixed bin; 1 44 dcl pva_maximum_dimension_name_length 1 45 fixed bin; 1 46 dcl pv_number_of_dimensions 1 47 fixed bin; 1 48 dcl pv_maximum_value_length 1 49 fixed bin; 1 50 1 51 dcl print_vector_array_ptr ptr; 1 52 dcl print_vector_ptr ptr; 1 53 dcl PRINT_VECTOR_ARRAY_VERSION_2 1 54 fixed bin (35) init (2) internal static options (constant); 1 55 1 56 /* END INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 358 359 2 1 dcl ( s_fixed_real_desc init( 1), 2 2 d_fixed_real_desc init( 2), 2 3 s_float_real_desc init( 3), 2 4 d_float_real_desc init( 4), 2 5 s_fixed_cplx_desc init( 5), 2 6 d_fixed_cplx_desc init( 6), 2 7 s_float_cplx_desc init( 7), 2 8 d_float_cplx_desc init( 8), 2 9 2 10 D_fixed_real_desc init( 9), 2 11 D_float_real_desc init(10), 2 12 D_fixed_cplx_desc init(11), 2 13 D_float_cplx_desc init(12), 2 14 2 15 pointer_desc init(13), 2 16 offset_desc init(14), 2 17 label_desc init(15), 2 18 entry_desc init(16), 2 19 structure_desc init(17), 2 20 area_desc init(18), 2 21 2 22 bit_desc init(19), 2 23 v_bit_desc init(20), 2 24 2 25 char_desc init(21), 2 26 v_char_desc init(22), 2 27 2 28 file_desc init(23) 2 29 ) fixed bin int static options(constant); 360 361 3 1 /* BEGIN INCLUDE FILE ... descriptor.incl.pl1 */ 3 2 3 3 dcl 1 desc_ aligned, 3 4 2 version2_ bit(1) unal, 3 5 2 type_ fixed bin(6) unsigned unal, 3 6 2 pack_ bit(1) unal, 3 7 2 dimension_ bit(4) unal, 3 8 2 scale_ fixed bin(11) unal, 3 9 2 precision_ fixed bin(11) unal; 3 10 3 11 /* END INCLUDE FILE ... descriptor.incl.pl1 */ 362 363 4 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 4 2* 4 3* James R. Davis 10 May 79 */ 4 4 4 5 dcl 1 arg_list aligned based, 4 6 2 header, 4 7 3 arg_count fixed bin (17) unsigned unal, 4 8 3 pad1 bit (1) unal, 4 9 3 call_type fixed bin (18) unsigned unal, 4 10 3 desc_count fixed bin (17) unsigned unal, 4 11 3 pad2 bit (19) unal, 4 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 4 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 4 14 4 15 4 16 4 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 4 18 2 header, 4 19 3 arg_count fixed bin (17) unsigned unal, 4 20 3 pad1 bit (1) unal, 4 21 3 call_type fixed bin (18) unsigned unal, 4 22 3 desc_count fixed bin (17) unsigned unal, 4 23 3 pad2 bit (19) unal, 4 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 4 25 2 envptr ptr, 4 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 4 27 4 28 4 29 dcl ( 4 30 Quick_call_type init (0), 4 31 Interseg_call_type init (4), 4 32 Envptr_supplied_call_type 4 33 init (8) 4 34 ) fixed bin (18) unsigned unal int static options (constant); 4 35 4 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 4 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 4 38* an argument list of the proper size in the user's stack 4 39* 4 40**/ 4 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 364 365 5 1 /* *********************************************************** 5 2* * * 5 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 5 4* * * 5 5* *********************************************************** */ 5 6 /* BEGIN INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 5 7 5 8 /* Written 03/01/82 by Lindsey Spratt. 5 9*Modified: 5 10*09/23/82 by Lindsey Spratt: Added the append_simple_typed_vector, 5 11* free_typed_vector_array, and free_typed_vector entries. 5 12*07/24/83 by Lindsey Spratt: Added $cv_pva_to_string and $cv_string_to_pva. 5 13**/ 5 14 5 15 /* format: style2,ind3 */ 5 16 dcl vector_util_$display entry (ptr, ptr, fixed bin (35)); 5 17 dcl vector_util_$sort_print 5 18 entry (ptr, ptr, fixed bin (35)); 5 19 5 20 dcl vector_util_$init_print_vector_array 5 21 entry options (variable); 5 22 dcl vector_util_$init_typed_vector_array 5 23 entry options (variable); 5 24 5 25 dcl vector_util_$append_dimension_print 5 26 entry (ptr, bit (1) aligned, char (*), ptr, ptr, fixed bin, fixed bin (35)); 5 27 5 28 dcl vector_util_$append_simple_print_vector 5 29 entry options (variable); 5 30 dcl vector_util_$append_general_print_vector 5 31 entry options (variable); 5 32 5 33 dcl vector_util_$append_simple_typed_vector 5 34 entry options (variable); 5 35 5 36 /* call vector_util_$free_typed_vector_array (work_area_ptr, typed_vector_array_ptr, code) */ 5 37 dcl vector_util_$free_typed_vector_array 5 38 entry (ptr, ptr, fixed bin (35)); 5 39 5 40 /* call vector_util_$free_typed_vector (work_area_ptr,typed_vector_array_ptr,typed_vector_ptr,code) */ 5 41 dcl vector_util_$free_typed_vector 5 42 entry (ptr, ptr, ptr, fixed bin (35)); 5 43 5 44 dcl vector_util_$cv_typed_to_print 5 45 entry (ptr, ptr, ptr, fixed bin (35)); 5 46 dcl vector_util_$cv_any_to_print_dimension 5 47 entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)); 5 48 5 49 dcl vector_util_$cv_pva_to_string 5 50 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 5 51 dcl vector_util_$cv_string_to_pva 5 52 entry (ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 5 53 5 54 dcl vector_util_$err_no_operation 5 55 entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)); 5 56 5 57 /* END INCLUDE FILE - vu_entry_dcls.incl.pl1 */ 5 58 366 367 end vu_append_general_print; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/84 1249.9 vu_append_general_print.pl1 >spec>on>mtape>vu_append_general_print.pl1 358 1 02/16/84 1230.3 vu_print_vector_array.incl.pl1 >spec>on>mtape>vu_print_vector_array.incl.pl1 360 2 01/12/79 1059.7 desc_types.incl.pl1 >ldd>include>desc_types.incl.pl1 362 3 11/30/78 1227.5 descriptor.incl.pl1 >ldd>include>descriptor.incl.pl1 364 4 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 366 5 02/16/84 1230.3 vu_entry_dcls.incl.pl1 >spec>on>mtape>vu_entry_dcls.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. AREA_PTR_ARG_IDX 000031 constant fixed bin(17,0) initial dcl 84 set ref 135* 144 CODE_ARG_IDX 000103 automatic fixed bin(17,0) dcl 35 set ref 124* 127* 133 FREE_OLD_PVA_ARG_IDX 000017 constant fixed bin(17,0) initial dcl 84 set ref 170* 179 MAXIMUM_VALUE_LENGTH_ARG_IDX 000027 constant fixed bin(17,0) initial dcl 84 set ref 208* 209 MYNAME 000001 constant varying char(40) initial dcl 81 set ref 128* 128* NUMBER_OF_DIMENSIONS_ARG_IDX 000000 constant fixed bin(17,0) initial dcl 84 set ref 200* 206 NUMBER_OF_NONVALUE_ARGS_AT_BEGINNING constant fixed bin(17,0) initial dcl 84 ref 228 232 295 298 NUMBER_OF_NONVALUE_ARGS_AT_END constant fixed bin(17,0) initial dcl 84 ref 228 232 295 PRINT_VECTOR_ARRAY_VERSION_2 constant fixed bin(35,0) initial dcl 1-53 ref 265 PVA_PTR_ARG_IDX 000104 automatic fixed bin(17,0) dcl 36 set ref 125* 146* 155 264 PVA_PTR_ARG_OFFSET_FROM_END constant fixed bin(17,0) initial dcl 84 ref 125 SLOT_INCREASE_ARG_IDX 000030 constant fixed bin(17,0) initial dcl 84 set ref 157* 167 VECTOR_SLOT_IDX_ARG_IDX 000026 constant fixed bin(17,0) initial dcl 84 set ref 181* 188 arg_idx 000141 automatic fixed bin(17,0) dcl 56 set ref 232* 234* 240* 295* 298 299* 312 318* arg_list based structure level 1 dcl 4-5 arg_list_arg_count 000124 automatic fixed bin(17,0) dcl 47 set ref 121* arg_list_ptr 000126 automatic pointer dcl 48 set ref 122* 127* 133 135* 144 146* 155 157* 167 170* 179 181* 188 200* 206 208* 209 234* 240 264 299* 312 318 arg_ptrs 2 based pointer array level 2 dcl 4-5 ref 133 144 155 167 179 188 206 209 240 264 312 318 bit_desc constant fixed bin(17,0) initial dcl 2-1 ref 172 char_desc constant fixed bin(17,0) initial dcl 2-1 ref 236 300 char_template based char unaligned dcl 69 ref 240 312 cu_$arg_count 000014 constant entry external dcl 107 ref 120 cu_$arg_list_ptr 000010 constant entry external dcl 105 ref 122 decode_descriptor_ 000012 constant entry external dcl 106 ref 127 135 146 157 170 181 200 208 234 299 dim_idx 000105 automatic fixed bin(17,0) dcl 37 set ref 279* 287* 288 288* 291* 309 309 312 317* 317 320 320 324 324 329 329 333 344* 344* 345 346* dimension 2 based structure array level 2 unaligned dcl 1-31 set ref 288* 288 dimension_name based char unaligned dcl 67 set ref 320 324* dimension_name_length 000102 automatic fixed bin(17,0) dcl 32 set ref 319* 320 324 324 dimension_name_ptr 000100 automatic pointer dcl 31 set ref 318* 320 324 dimension_table 6 based structure array level 2 unaligned dcl 1-12 set ref 266* 266 error_table_$bad_arg 000020 external static fixed bin(35,0) dcl 112 ref 140 151 162 175 185 192 215 222 246 303 error_table_$fatal_error 000022 external static fixed bin(35,0) dcl 113 set ref 128* free_old_print_vector_array based bit(1) dcl 62 set ref 274 324* free_old_print_vector_array_ptr 000122 automatic pointer dcl 45 set ref 179* 274 324 identifier 2 based fixed bin(17,0) array level 3 dcl 1-31 set ref 309 309 320* 320* 324 324* 329 329 346* is_dimension_value 000110 automatic bit(1) dcl 40 set ref 294* 298* 306 maximum_dimension_name_length 2 based fixed bin(17,0) level 2 dcl 1-12 set ref 197 260 263* 266 270 270 274 277 309 309 309 309 309 309 320 320 352 maximum_value_length based fixed bin(17,0) array level 3 in structure "print_vector_array" dcl 1-12 in procedure "append_general_print_vector" set ref 309* 309 maximum_value_length 1 based fixed bin(35,0) level 2 in structure "print_vector" dcl 1-31 in procedure "append_general_print_vector" set ref 255* 284 286* 288 288 288 288 288 309 309 309 309 312 312 312 320 320 320 320 324 324 324 324 329 329 329 329 345 345 345 346 346 353 name 6 based varying char array level 3 dcl 1-12 set ref 320 nargs 000140 automatic fixed bin(17,0) dcl 55 set ref 120* 121 124 125 228 232 295 ndims 000133 automatic fixed bin(17,0) dcl 52 set ref 127* 135* 146* 157* 170* 181* 200* 208* 234* 299* null builtin function dcl 76 ref 43 43 128 128 195 252 324 324 349 354 number_of_dimensions based fixed bin(17,0) level 2 in structure "print_vector" dcl 1-31 in procedure "append_general_print_vector" set ref 255* 283 286* 287 291 344 353 number_of_dimensions 1 based fixed bin(17,0) level 2 in structure "print_vector_array" dcl 1-12 in procedure "append_general_print_vector" set ref 197 261 263* 266 270 270 274 277 320 324 352 number_of_vector_slots 4 based fixed bin(17,0) level 2 dcl 1-12 set ref 167 257 263* 274 number_of_vectors 3 based fixed bin(17,0) level 2 dcl 1-12 set ref 189 256* 256 257 267* 267 269 277 old_print_vector_ptr 000120 automatic pointer initial dcl 43 set ref 43* 195* 197* 252 283 284 287 288 291 349 353 354* old_pva_ptr 000112 automatic pointer dcl 41 set ref 262* 266 267 270 274 p_code based fixed bin(35,0) dcl 71 set ref 140* 151* 162* 175* 185* 192* 215* 222* 246* 303* 324* 336* p_code_ptr 000136 automatic pointer dcl 54 set ref 133* 140 151 162 175 185 192 215 222 246 303 324 336 packed 000131 automatic bit(1) dcl 50 set ref 127* 135* 146* 157* 170* 172 181* 182 200* 201 208* 209 234* 299* pointer_desc constant fixed bin(17,0) initial dcl 2-1 ref 137 148 print_vector based structure level 1 unaligned dcl 1-31 set ref 255 286 353 print_vector_array based structure level 1 unaligned dcl 1-12 set ref 263 274 print_vector_array_ptr 000152 automatic pointer dcl 1-51 set ref 155* 167 189 197 256 256 257 257 260 261 262 263* 264 265 266 267 269 270 277 277 309 309 320 320 324 324* 352 print_vector_ptr 000154 automatic pointer dcl 1-52 set ref 255* 277 286* 288 309 309 312 320 320 324 324 329 329 344 345 346 352 ptr_template based pointer dcl 66 set ref 144 155 264* pv_maximum_value_length 000150 automatic fixed bin(17,0) dcl 1-48 set ref 209* 230* 240* 240 255 255 284* 284 286 286 pv_number_of_dimensions 000147 automatic fixed bin(17,0) dcl 1-46 set ref 206* 228* 255 255 283* 283 286 286 pva_maximum_dimension_name_length 000146 automatic fixed bin(17,0) dcl 1-44 set ref 260* 263 263 pva_number_of_dimensions 000144 automatic fixed bin(17,0) dcl 1-40 set ref 261* 263 263 pva_number_of_vector_slots 000145 automatic fixed bin(17,0) dcl 1-42 set ref 167* 263 263 s_fixed_real_desc constant fixed bin(17,0) initial dcl 2-1 ref 128 159 182 201 209 s_fixed_real_template based fixed bin(17,0) dcl 65 ref 167 206 209 scale 000134 automatic fixed bin(17,0) dcl 53 set ref 127* 135* 146* 157* 170* 181* 200* 208* 234* 299* size 000132 automatic fixed bin(17,0) dcl 51 set ref 127* 135* 146* 157* 170* 172 181* 200* 208* 234* 240 299* 309 312 319 sub_err_ 000016 constant entry external dcl 108 ref 128 temp_dim_idx 000106 automatic fixed bin(17,0) dcl 37 set ref 329* 329* 333 type 000130 automatic fixed bin(17,0) dcl 49 set ref 127* 128 135* 137 146* 148 157* 159 170* 172 181* 182 200* 201 208* 209 234* 236 236 299* 300 300 v_char_desc constant fixed bin(17,0) initial dcl 2-1 ref 236 300 value 3 based varying char array level 3 dcl 1-31 set ref 312* 345* values_given 000107 automatic bit(1) initial dcl 39 set ref 39* 205* 227* 295 vd_error_$dim_already_in_vector 000024 external static fixed bin(35,0) dcl 115 ref 336 vector_idx 000114 automatic fixed bin(17,0) dcl 42 set ref 269* 270 270* vector_slot based pointer array level 2 dcl 1-12 set ref 197 270* 270 277* 352* vector_slot_idx based fixed bin(35,0) dcl 61 ref 189 189 189 195 197 352 vector_slot_idx_ptr 000116 automatic pointer initial dcl 43 set ref 43* 188* 189 189 189 195 197 352 vector_util_$append_dimension_print 000026 constant entry external dcl 5-25 ref 324 version based fixed bin(35,0) level 2 dcl 1-12 set ref 265* work_area based area(1024) dcl 64 ref 255 263 274 286 353 work_area_ptr 000142 automatic pointer dcl 57 set ref 144* 255 263 274 286 324* 353 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. D_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 D_fixed_real_desc internal static fixed bin(17,0) initial dcl 2-1 D_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 D_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 area_desc internal static fixed bin(17,0) initial dcl 2-1 arg_list_with_envptr based structure level 1 dcl 4-17 d_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 d_fixed_real_desc internal static fixed bin(17,0) initial dcl 2-1 d_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 d_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 desc_ automatic structure level 1 dcl 3-3 entry_desc internal static fixed bin(17,0) initial dcl 2-1 file_desc internal static fixed bin(17,0) initial dcl 2-1 label_desc internal static fixed bin(17,0) initial dcl 2-1 offset_desc internal static fixed bin(17,0) initial dcl 2-1 s_fixed_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 s_float_cplx_desc internal static fixed bin(17,0) initial dcl 2-1 s_float_real_desc internal static fixed bin(17,0) initial dcl 2-1 structure_desc internal static fixed bin(17,0) initial dcl 2-1 v_bit_desc internal static fixed bin(17,0) initial dcl 2-1 v_char_template based varying char dcl 68 vector_util_$append_general_print_vector 000000 constant entry external dcl 5-30 vector_util_$append_simple_print_vector 000000 constant entry external dcl 5-28 vector_util_$append_simple_typed_vector 000000 constant entry external dcl 5-33 vector_util_$cv_any_to_print_dimension 000000 constant entry external dcl 5-46 vector_util_$cv_pva_to_string 000000 constant entry external dcl 5-49 vector_util_$cv_string_to_pva 000000 constant entry external dcl 5-51 vector_util_$cv_typed_to_print 000000 constant entry external dcl 5-44 vector_util_$display 000000 constant entry external dcl 5-16 vector_util_$err_no_operation 000000 constant entry external dcl 5-54 vector_util_$free_typed_vector 000000 constant entry external dcl 5-41 vector_util_$free_typed_vector_array 000000 constant entry external dcl 5-37 vector_util_$init_print_vector_array 000000 constant entry external dcl 5-20 vector_util_$init_typed_vector_array 000000 constant entry external dcl 5-22 vector_util_$sort_print 000000 constant entry external dcl 5-17 NAMES DECLARED BY EXPLICIT CONTEXT. append_general_print_vector 000066 constant entry external dcl 7 vu_append_general_print 000076 constant entry external dcl 7 NAMES DECLARED BY CONTEXT OR IMPLICATION. length builtin function ref 240 max builtin function ref 240 284 309 mod builtin function ref 298 rtrim builtin function ref 240 312 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2212 2242 2045 2222 Length 2542 2045 30 263 145 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME append_general_print_vector 195 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME append_general_print_vector 000100 dimension_name_ptr append_general_print_vector 000102 dimension_name_length append_general_print_vector 000103 CODE_ARG_IDX append_general_print_vector 000104 PVA_PTR_ARG_IDX append_general_print_vector 000105 dim_idx append_general_print_vector 000106 temp_dim_idx append_general_print_vector 000107 values_given append_general_print_vector 000110 is_dimension_value append_general_print_vector 000112 old_pva_ptr append_general_print_vector 000114 vector_idx append_general_print_vector 000116 vector_slot_idx_ptr append_general_print_vector 000120 old_print_vector_ptr append_general_print_vector 000122 free_old_print_vector_array_ptr append_general_print_vector 000124 arg_list_arg_count append_general_print_vector 000126 arg_list_ptr append_general_print_vector 000130 type append_general_print_vector 000131 packed append_general_print_vector 000132 size append_general_print_vector 000133 ndims append_general_print_vector 000134 scale append_general_print_vector 000136 p_code_ptr append_general_print_vector 000140 nargs append_general_print_vector 000141 arg_idx append_general_print_vector 000142 work_area_ptr append_general_print_vector 000144 pva_number_of_dimensions append_general_print_vector 000145 pva_number_of_vector_slots append_general_print_vector 000146 pva_maximum_dimension_name_length append_general_print_vector 000147 pv_number_of_dimensions append_general_print_vector 000150 pv_maximum_value_length append_general_print_vector 000152 print_vector_array_ptr append_general_print_vector 000154 print_vector_ptr append_general_print_vector THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return mod_fx1 ext_entry trunc_fx2 divide_fx1 alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_count cu_$arg_list_ptr decode_descriptor_ sub_err_ vector_util_$append_dimension_print THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$fatal_error vd_error_$dim_already_in_vector LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 39 000057 43 000060 7 000065 120 000104 121 000113 122 000115 124 000124 125 000126 127 000130 128 000153 133 000226 135 000233 137 000256 140 000261 141 000264 144 000265 146 000272 148 000315 151 000320 152 000323 155 000324 157 000332 159 000355 162 000360 163 000363 167 000364 170 000373 172 000416 175 000427 176 000432 179 000433 181 000437 182 000462 185 000470 186 000473 188 000474 189 000500 192 000507 193 000512 195 000513 197 000520 200 000544 201 000567 205 000575 206 000576 208 000602 209 000625 215 000640 216 000643 219 000644 222 000645 223 000650 224 000651 227 000652 228 000654 230 000666 232 000667 234 000701 236 000724 240 000731 243 000754 246 000755 247 000760 249 000761 252 000764 255 000770 256 001006 257 001010 260 001013 261 001015 262 001017 263 001020 264 001055 265 001061 266 001063 267 001102 269 001104 270 001113 273 001162 274 001164 277 001215 279 001243 280 001244 283 001245 284 001247 286 001255 287 001273 288 001303 290 001336 291 001340 294 001342 295 001344 298 001357 299 001364 300 001407 303 001414 304 001417 306 001420 309 001422 312 001465 314 001514 317 001515 318 001516 319 001523 320 001525 323 001614 324 001617 329 001704 332 001736 333 001740 336 001743 337 001746 341 001747 344 001752 345 001761 346 001773 347 001774 349 001776 352 002002 353 002030 354 002041 356 002043 ----------------------------------------------------------- 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