COMPILATION LISTING OF SEGMENT rcm_update_by_spec Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1534.7 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This routine is the sibling of rcm_get_by_spec, this implementing 10* update operations of records selected by a specification. This 11* routine is not used and is not fully implemented. It is kept as part 12* of the record_manager_ so that we get around to implementing the 13* operations (post MR11), most of the job will already be done. 14* 15* This subroutine examines a range of records, selecting records 16* according to a sequential specification. The records selected are 17* processed according to the entrypoint used to enter the subroutine: 18* delete deletes each record which satisfies the specification; 19* modify changes the value of each record which satisfies the specification 20* by changing the value of each field specified in the modify_vector to 21* the value in the modify_vector. 22**/ 23 24 /* HISTORY: 25* 26*Written by Matthew Pierret, 12/03/84. 27* (Extracted from rcm_process_records.pl1) 28*Modified: 29**/ 30 31 /* format: style2,ind3,ll79,^indnoniterdo,indnoniterend,^indprocbody,comcol50*/ 32 /* format: indblkcom,indcomtxt */ 33 34 rcm_update_by_spec: 35 proc (); 36 37 call sub_err_ (dm_error_$programming_error, MYNAME, ACTION_CANT_RESTART, 38 null, 0, "^/^a$^a is not a valid entrypoint", MYNAME, MYNAME); 39 40 /* START OF DECLARATIONS */ 41 /* Parameter */ 42 43 dcl p_record_cursor_ptr ptr parameter; 44 dcl p_field_table_ptr ptr parameter; 45 dcl p_specification_ptr ptr parameter; 46 dcl p_direction_to_process fixed bin parameter; 47 dcl p_first_record_to_process 48 bit (36) aligned parameter; 49 dcl p_last_record_to_process 50 bit (36) aligned parameter; 51 dcl p_spec_is_always_satisfied 52 bit (1) aligned parameter; 53 dcl p_maximum_number_of_records 54 fixed bin (35) parameter; 55 dcl p_number_of_records_accepted 56 fixed bin (35) parameter; 57 dcl p_modify_vector_ptr ptr parameter; 58 dcl p_code fixed bin (35) parameter; 59 60 /* Automatic */ 61 62 dcl (delete, modify) bit (1) aligned init ("0"b); 63 dcl (get_each_record, record_satisfies_spec, spec_is_always_satisfied) 64 bit (1) aligned init ("0"b); 65 66 dcl code fixed bin (35); 67 dcl current_ci_ptr ptr init (null ()); 68 dcl direction_to_process fixed bin (17); 69 dcl field_table_ptr ptr init (null ()); 70 dcl first_record_to_process 71 bit (36) aligned; 72 dcl highest_accepted_record 73 bit (36) aligned; 74 dcl last_record_to_process bit (36) aligned; 75 dcl maximum_number_of_records 76 fixed bin (35); 77 dcl number_of_records_accepted 78 fixed bin (35); 79 dcl previous_record_id bit (36) aligned; 80 dcl record_count fixed bin (35); 81 dcl record_buffer_length fixed bin (35); 82 dcl record_buffer_ptr ptr init (null ()); 83 dcl record_id bit (36) aligned; 84 dcl record_string_length fixed bin (35); 85 dcl record_string_ptr ptr init (null ()); 86 dcl specification_ptr ptr init (null ()); 87 dcl modify_vector_ptr ptr init (null ()); 88 dcl work_area_ptr ptr init (null ()); 89 dcl local_record_buffer (DOUBLE_WORDS_PER_PAGE) fixed bin (71); 90 91 /* Based */ 92 93 dcl record_string bit (record_string_length) 94 based (record_string_ptr); 95 dcl record_buffer bit (record_buffer_length) aligned 96 based (record_buffer_ptr); 97 98 /* Builtin */ 99 100 dcl null builtin; 101 102 /* Condition */ 103 104 dcl cleanup condition; 105 106 /* Constant */ 107 108 dcl MYNAME init ("rcm_update_by_spec") char (32) 109 varying internal static options (constant); 110 dcl ( 111 BACKWARD_DIRECTION init (-1) fixed bin, 112 BITS_PER_PAGE init (1024 * 36) fixed bin, 113 DEFAULT_AND_GROUP_ID_LIST_PTR 114 init (null ()) ptr, 115 DEFAULT_NUMBER_OF_FULLY_STRUCTURAL_FIELDS 116 init (0) fixed bin, 117 DEFAULT_PARTIAL_STRUCTURAL_FIELD 118 init (0) fixed bin, 119 DEFAULT_RECORD_ID_FIELD_ID 120 init (-1) fixed bin, 121 DOUBLE_WORDS_PER_PAGE init (512) fixed bin, 122 ELEMENT_ID_LIST_INCREMENT 123 init (100) fixed bin, 124 FALSE init ("0"b) bit (1) aligned, 125 FREE_OLD_TYPED_VECTOR_ARRAY 126 init ("1"b) bit (1) aligned, 127 GET_CURRENT init (0) fixed bin, 128 IS_RELATIVE init ("0"b) bit (1) aligned, 129 LIMIT_TO_STOP_INFINITE_LOOPING 130 init (1e6) fixed bin (35), 131 NO_RECORD init ("0"b) bit (36) aligned, 132 TRUE init ("1"b) bit (1) aligned, 133 VECTOR_SLOT_INCREMENT init (50) fixed bin 134 ) internal static options (constant); 135 136 /* Entry */ 137 138 dcl data_format_util_$compare_sequential 139 entry (ptr, ptr, ptr, fixed bin, fixed bin, 140 bit (*), bit (1) aligned, fixed bin (35)); 141 dcl sub_err_ entry options (variable); 142 dcl get_system_free_area_ entry () returns (ptr); 143 dcl data_format_util_$cv_table_to_typed_array 144 entry (ptr, ptr, ptr, fixed bin (35), ptr, 145 fixed bin (35)); 146 dcl data_format_util_$new_cv_string_to_vector 147 entry (ptr, ptr, ptr, fixed bin (35), ptr, 148 ptr, fixed bin (35)); 149 150 /* External */ 151 152 dcl ( 153 error_table_$unimplemented_version, 154 dm_error_$long_return_element, 155 dm_error_$beginning_of_collection, 156 dm_error_$end_of_collection, 157 dm_error_$record_not_found, 158 dm_error_$programming_error 159 ) fixed bin (35) ext; 160 161 162 /* END OF DECLARATIONS */ 163 164 delete: 165 entry (p_record_cursor_ptr, p_field_table_ptr, p_specification_ptr, 166 p_first_record_to_process, p_last_record_to_process, 167 p_spec_is_always_satisfied, p_direction_to_process, 168 p_maximum_number_of_records, p_number_of_records_accepted, p_code); 169 170 delete = TRUE; 171 modify_vector_ptr = null; 172 173 go to JOIN; 174 175 modify: 176 entry (p_record_cursor_ptr, p_field_table_ptr, p_specification_ptr, 177 p_first_record_to_process, p_last_record_to_process, 178 p_spec_is_always_satisfied, p_direction_to_process, 179 p_maximum_number_of_records, p_modify_vector_ptr, 180 p_number_of_records_accepted, p_code); 181 182 183 modify = TRUE; 184 modify_vector_ptr = p_modify_vector_ptr; 185 if modify_vector_ptr -> general_typed_vector.type 186 ^= GENERAL_TYPED_VECTOR_TYPE 187 then call sub_err_ (error_table_$unimplemented_version, MYNAME, null (), 0, 188 "^/Expected type ^d typed_vector. Received type ^d.", 189 GENERAL_TYPED_VECTOR_TYPE, 190 modify_vector_ptr -> general_typed_vector.type); 191 192 go to JOIN; 193 194 JOIN: 195 maximum_number_of_records = p_maximum_number_of_records; 196 field_table_ptr = p_field_table_ptr; 197 work_area_ptr = get_system_free_area_ (); 198 p_code, code = 0; 199 record_cursor_ptr = p_record_cursor_ptr; 200 call CHECK_VERSION ((record_cursor.version), (RECORD_CURSOR_VERSION_2), 201 "record_cursor"); 202 specification_ptr = p_specification_ptr; 203 spec_is_always_satisfied = p_spec_is_always_satisfied; 204 direction_to_process = p_direction_to_process; 205 first_record_to_process = p_first_record_to_process; 206 last_record_to_process = p_last_record_to_process; 207 208 record_buffer_ptr = addr (local_record_buffer); 209 current_ci_ptr = null; 210 211 if modify | ^spec_is_always_satisfied 212 then get_each_record = TRUE; 213 else get_each_record = FALSE; 214 215 record_id = first_record_to_process; 216 highest_accepted_record = NO_RECORD; 217 number_of_records_accepted = 0; 218 219 if get_each_record 220 then call GET_RECORD (current_ci_ptr, record_id, GET_CURRENT, 221 record_buffer_ptr, record_buffer_length, record_string_ptr, 222 record_string_length, record_id); 223 224 RECORD_LOOP: 225 do record_count = 1 to LIMIT_TO_STOP_INFINITE_LOOPING 226 while (record_id ^= NO_RECORD); 227 228 if spec_is_always_satisfied 229 then record_satisfies_spec = TRUE; 230 else 231 COMPARE: 232 do; 233 record_satisfies_spec = FALSE; 234 call data_format_util_$compare_sequential (field_table_ptr, 235 specification_ptr, DEFAULT_AND_GROUP_ID_LIST_PTR, 236 DEFAULT_NUMBER_OF_FULLY_STRUCTURAL_FIELDS, 237 DEFAULT_PARTIAL_STRUCTURAL_FIELD, record_string, 238 record_satisfies_spec, code); 239 if code ^= 0 240 then call ERROR_RETURN (code); 241 end COMPARE; 242 243 if record_satisfies_spec 244 then 245 ACCEPT_THIS_RECORD: 246 do; 247 number_of_records_accepted = number_of_records_accepted + 1; 248 if direction_to_process = BACKWARD_DIRECTION 249 then if highest_accepted_record = NO_RECORD 250 then highest_accepted_record = record_id; 251 else ; 252 else highest_accepted_record = record_id; 253 254 if delete 255 then call DELETE_RECORD (); 256 else if modify 257 then call MODIFY_RECORD (); 258 259 end ACCEPT_THIS_RECORD; 260 261 if number_of_records_accepted >= maximum_number_of_records 262 | record_id = last_record_to_process 263 then record_id = NO_RECORD; /* Finished */ 264 else 265 GET_NEXT: 266 do; /* More records to look at */ 267 previous_record_id = record_id; 268 if get_each_record 269 then call GET_RECORD (current_ci_ptr, previous_record_id, 270 direction_to_process, record_buffer_ptr, 271 record_buffer_length, record_string_ptr, 272 record_string_length, record_id); 273 else call GET_RECORD_ID (previous_record_id, direction_to_process, 274 record_id); 275 end GET_NEXT; 276 end RECORD_LOOP; 277 278 if record_count > LIMIT_TO_STOP_INFINITE_LOOPING 279 then call sub_err_ (dm_error_$programming_error, MYNAME, 280 ACTION_CANT_RESTART, null, 0, 281 "^/The search algorithm was apparently looping indefinitely."); 282 283 if number_of_records_accepted <= 0 284 then call ERROR_RETURN (dm_error_$record_not_found); 285 286 p_number_of_records_accepted = number_of_records_accepted; 287 288 record_cursor.record_id = highest_accepted_record; 289 record_cursor.flags.position_is_valid = TRUE; 290 291 292 MAIN_RETURN: 293 return; 294 295 CHECK_VERSION: 296 proc (cv_p_received_version, cv_p_expected_version, cv_p_structure_name); 297 298 dcl cv_p_received_version fixed bin (35); 299 dcl cv_p_expected_version fixed bin (35); 300 dcl cv_p_structure_name char (*); 301 302 if cv_p_received_version ^= cv_p_expected_version 303 then call sub_err_ (error_table_$unimplemented_version, MYNAME, 304 ACTION_CANT_RESTART, null, 0, 305 "^/Expected version ^d of the ^a structure. Received version ^d.", 306 cv_p_expected_version, cv_p_structure_name, cv_p_received_version) 307 ; 308 309 end CHECK_VERSION; 310 311 FINISH: 312 proc (); 313 314 if record_buffer_ptr ^= addr (local_record_buffer) 315 & record_buffer_ptr ^= null () 316 then free record_buffer; 317 318 end FINISH; 319 320 ERROR_RETURN: 321 proc (er_p_code); 322 323 dcl er_p_code fixed bin (35); 324 325 p_code = er_p_code; 326 call FINISH; 327 go to MAIN_RETURN; 328 329 end ERROR_RETURN; 330 331 GET_RECORD: 332 proc (gr_p_ci_ptr, gr_p_previous_record_id, gr_p_direction, 333 gr_p_record_buffer_ptr, gr_p_record_buffer_length, 334 gr_p_record_string_ptr, gr_p_record_string_length, gr_p_record_id); 335 336 dcl gr_p_ci_ptr ptr parameter; 337 dcl gr_p_previous_record_id 338 bit (36) aligned parameter; 339 dcl gr_p_record_id bit (36) aligned parameter; 340 dcl gr_p_record_string_ptr ptr parameter; 341 dcl gr_p_direction fixed bin (17) parameter; 342 dcl gr_p_record_string_length 343 fixed bin (35) parameter; 344 dcl gr_p_record_buffer_ptr ptr parameter; 345 dcl gr_p_record_buffer_length 346 fixed bin (35) parameter; 347 dcl gr_p_record_buffer bit (gr_p_record_buffer_length) aligned 348 based (gr_p_record_buffer_ptr); 349 350 dcl gr_code fixed bin (35); 351 dcl gr_new_ci_ptr ptr; 352 353 gr_code = 0; 354 gr_new_ci_ptr = null (); 355 call collection_manager_$get_by_ci_ptr (gr_p_ci_ptr, 356 record_cursor.file_opening_id, record_cursor.collection_id, 357 gr_p_previous_record_id, gr_p_direction, gr_p_record_buffer_ptr, 358 gr_p_record_buffer_length, work_area_ptr, ("0"b), 359 gr_p_record_string_ptr, gr_p_record_string_length, gr_new_ci_ptr, 360 gr_code); 361 if gr_code ^= 0 362 then 363 do; 364 if gr_code = dm_error_$end_of_collection 365 | gr_code = dm_error_$beginning_of_collection 366 then gr_p_record_id = NO_RECORD; 367 else if gr_code = dm_error_$long_return_element 368 then call ERROR_RETURN (gr_code); 369 else call sub_err_ (gr_code, MYNAME, ACTION_CANT_RESTART, null, 0, 370 "^/This error, which occurred while retrieving record ^3bo, indicates that^/record collection ^3bo is damaged." 371 , gr_p_record_id, record_cursor.collection_id); 372 end; 373 374 if gr_p_ci_ptr ^= null & gr_p_ci_ptr ^= gr_new_ci_ptr 375 then call RESET_CI_PTR (gr_new_ci_ptr, gr_p_ci_ptr); 376 else /* gr_p_ci_ptr remains the same */ 377 ; 378 379 if gr_p_record_string_ptr ^= gr_p_record_buffer_ptr 380 then 381 do; 382 if gr_p_record_buffer_ptr ^= addr (local_record_buffer) 383 then free gr_p_record_buffer; 384 gr_p_record_buffer_ptr = gr_p_record_string_ptr; 385 gr_p_record_buffer_length = gr_p_record_string_length; 386 end; 387 388 return; 389 390 end GET_RECORD; 391 392 GET_RECORD_ID: 393 proc (gri_p_previous_record_id, gri_p_direction, gri_p_record_id); 394 395 dcl gri_p_previous_record_id 396 bit (36) aligned parameter; 397 dcl gri_p_record_id bit (36) aligned parameter; 398 dcl gri_p_direction fixed bin (17) parameter; 399 400 dcl gri_code fixed bin (35); 401 402 403 call collection_manager_$get_id (record_cursor.file_opening_id, 404 record_cursor.collection_id, gri_p_previous_record_id, gri_p_direction, 405 IS_RELATIVE, gri_p_record_id, gri_code); 406 if gri_code ^= 0 407 then if gri_code = dm_error_$beginning_of_collection 408 | gri_code = dm_error_$end_of_collection 409 then gri_p_record_id = NO_RECORD; 410 else call ERROR_RETURN (gri_code); 411 412 return; 413 414 end GET_RECORD_ID; 415 416 RESET_CI_PTR: 417 proc (rcp_p_new_ci_ptr, rcp_p_ci_ptr); 418 419 /* Releases the ci_ptr held in rcp_p_ci_ptr, if non-null, then resets */ 420 /* rcp_p_ci_ptr with the value of rcp_p_new_ci_ptr. */ 421 422 dcl rcp_p_ci_ptr ptr parameter; 423 dcl rcp_p_new_ci_ptr ptr parameter; 424 425 if rcp_p_ci_ptr ^= null 426 then /* After MR11, should call collection_manager_$release_ci_ptr */ 427 ; 428 429 rcp_p_ci_ptr = rcp_p_new_ci_ptr; 430 431 return; 432 433 end RESET_CI_PTR; 434 435 DELETE_RECORD: 436 proc (); 437 end DELETE_RECORD; 438 439 MODIFY_RECORD: 440 proc (); 441 end MODIFY_RECORD; 442 1 1 /* BEGIN INCLUDE FILE - dm_rcm_cursor.incl.pl1 */ 1 2 1 3 /* HISTORY: 1 4*Written by Matthew Pierret, 04/05/82. 1 5*Modified: 1 6*08/19/82 by Matthew Pierret: Version 2. Changed collection_id to 1 7* bit (36) aligned. 1 8*07/28/83 by Matthew Pierret: Changed name from dm_rm_cursor.incl.pl1 to 1 9* dm_rcm_cursor.incl.pl1. 1 10*04/13/84 by Lee Baldwin: Renamed pf_opening_id to file_opening_id to coincide 1 11* with the naming conventions used in the rcm_XX routines. 1 12**/ 1 13 1 14 /* format: style2,ind3 */ 1 15 dcl 1 record_cursor aligned based (record_cursor_ptr), 1 16 2 type fixed bin (17) unaligned, 1 17 2 version fixed bin (17) unaligned, 1 18 2 flags, 1 19 3 position_is_valid 1 20 bit (1) unal, 1 21 3 pad bit (35) unal, 1 22 2 area_ptr ptr, 1 23 2 file_opening_id bit (36) aligned, 1 24 2 collection_id bit (36) aligned, 1 25 2 record_id bit (36) aligned, 1 26 2 record_check_value bit (36) aligned; 1 27 1 28 dcl record_cursor_ptr ptr; 1 29 dcl RECORD_CURSOR_VERSION_2 1 30 init (2) fixed bin int static options (constant); 1 31 dcl RECORD_CURSOR_TYPE init (1) fixed bin int static options (constant); 1 32 dcl BEGINNING_OF_COLLECTION_RECORD_ID 1 33 init ("0"b) bit (36) aligned int static options (constant); 1 34 1 35 /* END INCLUDE FILE - dm_rcm_cursor.incl.pl1 */ 443 444 2 1 /* *********************************************************** 2 2* * * 2 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 2 4* * * 2 5* *********************************************************** */ 2 6 /* BEGIN INCLUDE FILE - vu_typed_vector.incl.pl1 */ 2 7 2 8 /* Written by Lindsey Spratt, 04/02/82. 2 9*Modified: 2 10*09/01/82 by Lindsey Spratt: Changed value_ptr in simple_typed_vector to be 2 11* unaligned. Changed the type number of the simple_typed_vector to 2 12* "3" from "1". The OLD_SIMPLE_TYPED_VECTOR_TYPE is now an invalid 2 13* type. 2 14**/ 2 15 2 16 /* format: style2,ind3 */ 2 17 dcl 1 simple_typed_vector based (simple_typed_vector_ptr), 2 18 2 type fixed bin (17) unal, 2 19 2 number_of_dimensions 2 20 fixed bin (17) unal, 2 21 2 dimension (stv_number_of_dimensions refer (simple_typed_vector.number_of_dimensions)), 2 22 3 value_ptr ptr unaligned; 2 23 2 24 dcl 1 general_typed_vector based (general_typed_vector_ptr), 2 25 2 type fixed bin (17) unal, 2 26 2 number_of_dimensions 2 27 fixed bin (17) unal, 2 28 2 dimension (gtv_number_of_dimensions refer (general_typed_vector.number_of_dimensions)), 2 29 3 identifier fixed bin (17) unal, 2 30 3 pad bit (18) unal, 2 31 3 value_ptr ptr unal; 2 32 2 33 dcl simple_typed_vector_ptr 2 34 ptr; 2 35 dcl stv_number_of_dimensions 2 36 fixed bin (17); 2 37 2 38 dcl general_typed_vector_ptr 2 39 ptr; 2 40 dcl gtv_number_of_dimensions 2 41 fixed bin (17); 2 42 2 43 dcl ( 2 44 OLD_SIMPLE_TYPED_VECTOR_TYPE 2 45 init (1), /* value_ptr was aligned. */ 2 46 GENERAL_TYPED_VECTOR_TYPE 2 47 init (2), 2 48 SIMPLE_TYPED_VECTOR_TYPE 2 49 init (3) 2 50 ) fixed bin (17) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE - vu_typed_vector.incl.pl1 */ 445 446 3 1 /* BEGIN INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* This include file contains declarations of all collection_manager_ 3 5* entrypoints. 3 6**/ 3 7 3 8 /* HISTORY: 3 9*Written by Matthew Pierret 3 10*Modified: 3 11*04/14/82 by Lindsey Spratt: Changed the control_interval_id parameter of the 3 12* allocate_control_interval operation to be unaligned, as well as 3 13* unsigned. 3 14*06/17/82 by Matthew Pierret: Added the put_element_portion opertion and 3 15* removed the beginning_location parameter from the put_element 3 16* operation. Added the create_page_file_operation. 3 17*08/09/82 by Matthew Pierret: Changed "fixed bin (17)"s to "bit (36) aligned"s 3 18* wherever collection_id was required. 3 19* Also changed the control_interval_id parameter of the 3 20* allocate_control_interval operation back to be aligned. So there. 3 21*10/20/82 by Matthew Pierret: Changed $create_page_file to $create_file, 3 22* added the argument file_create_info_ptr to $create_file. 3 23*12/13/82 by Lindsey Spratt: Corrected $free_control_interval to 3 24* include the zero_on_free bit. 3 25*12/17/82 by Matthew Pierret: Added cm_$get_id. 3 26*01/07/83 by Matthew Pierret: Added cm_$put_element_buffered, 3 27* cm_$allocate_element_buffered, cm_$free_element_buffered. 3 28*04/27/83 by Matthew Pierret: Added cm_$put_unprotected_element, 3 29* cm_$put_unprotected_header. 3 30*11/07/83 by Matthew Pierret: Added $get_element_portion_buffered, 3 31* $simple_get_buffered_element. 3 32*02/08/84 by Matthew Pierret: Changed $get_id to have only one bit(1)aligned 3 33* parameter for specifying absolute/relative nature of search. 3 34*03/16/84 by Matthew Pierret: Added cm_$get_control_interval_ptr, 3 35* $get_element_ptr, $get_element_portion_ptr, $simple_get_element_ptr 3 36*04/03/84 by Matthew Pierret: Added cm_$compact_control_interval. 3 37*06/06/84 by Matthew Pierret: Re-named free_element* to delete and 3 38* delete_from_ci_buffer. 3 39* Re-named *_buffered_ci to =_ci_buffer. 3 40* get entries. 3 41* modify entries. 3 42* Changed calling sequence of modify entries to have a ptr/length 3 43* instead of length/ptr parameter pair. 3 44*03/11/85 by R. Michael Tague: Added $postcommit_increments. 3 45**/ 3 46 3 47 /* This include file contains declarations of collection_manager_ entrypoints */ 3 48 3 49 /* format: style2,ind3 */ 3 50 dcl collection_manager_$allocate_control_interval 3 51 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, fixed bin (35)); 3 52 dcl collection_manager_$compact_control_interval 3 53 entry (bit (36) aligned, fixed bin (24) uns, fixed bin (35)); 3 54 dcl collection_manager_$create_collection 3 55 entry (bit (36) aligned, ptr, ptr, bit (36) aligned, fixed bin (35)); 3 56 dcl collection_manager_$create_file 3 57 entry (char (*), char (*), ptr, bit (36) aligned, fixed bin (35)); 3 58 dcl collection_manager_$destroy_collection 3 59 entry (bit (36) aligned, bit (36) aligned, fixed bin (35)); 3 60 dcl collection_manager_$free_control_interval 3 61 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, bit (1) aligned, 3 62 fixed bin (35)); 3 63 3 64 dcl collection_manager_$delete 3 65 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 3 66 fixed bin (35)); 3 67 dcl collection_manager_$delete_from_ci_buffer 3 68 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 3 69 fixed bin (35)); 3 70 3 71 dcl collection_manager_$get 3 72 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), ptr, 3 73 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 3 74 dcl collection_manager_$get_control_interval_ptr 3 75 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, ptr, 3 76 fixed bin (35)); 3 77 dcl collection_manager_$get_from_ci_buffer 3 78 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 79 ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 3 80 dcl collection_manager_$get_by_ci_ptr 3 81 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 3 82 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), ptr, fixed bin (35)); 3 83 dcl collection_manager_$get_header 3 84 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (17), ptr, bit (1) aligned, 3 85 ptr, fixed bin (35), fixed bin (35)); 3 86 dcl collection_manager_$get_id 3 87 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), 3 88 bit (1) aligned, bit (36) aligned, fixed bin (35)); 3 89 dcl collection_manager_$get_portion 3 90 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 3 91 fixed bin (35), ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, 3 92 fixed bin (35), fixed bin (35)); 3 93 dcl collection_manager_$get_portion_from_ci_buffer 3 94 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 95 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 3 96 fixed bin (35)); 3 97 dcl collection_manager_$get_portion_by_ci_ptr 3 98 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 99 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 3 100 fixed bin (35)); 3 101 dcl collection_manager_$modify 3 102 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 103 fixed bin (35), fixed bin (35)); 3 104 dcl collection_manager_$modify_unprotected 3 105 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 106 fixed bin (35), fixed bin (35)); 3 107 dcl collection_manager_$modify_in_ci_buffer 3 108 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 109 fixed bin (35), fixed bin (35)); 3 110 dcl collection_manager_$modify_portion 3 111 entry (bit (36) aligned, bit (36) aligned, fixed bin (35), fixed bin (35), ptr, 3 112 fixed bin (35), bit (36) aligned, fixed bin (35), fixed bin (35)); 3 113 dcl collection_manager_$postcommit_increments 3 114 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35)); 3 115 dcl collection_manager_$put 3 116 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 117 fixed bin (35), fixed bin (35)); 3 118 dcl collection_manager_$put_in_ci_buffer 3 119 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 120 fixed bin (35), fixed bin (35)); 3 121 dcl collection_manager_$put_header 3 122 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 3 123 dcl collection_manager_$put_unprotected_header 3 124 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 3 125 3 126 dcl collection_manager_$replace_ci_buffer 3 127 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 3 128 fixed bin (35)); 3 129 dcl collection_manager_$setup_ci_buffer 3 130 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 3 131 fixed bin (35)); 3 132 dcl collection_manager_$simple_get_by_ci_ptr 3 133 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 3 134 fixed bin (35)); 3 135 dcl collection_manager_$simple_get_from_ci_buffer 3 136 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 3 137 fixed bin (35)); 3 138 3 139 /* END INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 447 448 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 */ 449 450 5 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 5 2* 5 3* James R. Davis 1 Mar 79 */ 5 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 5 5 5 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 5 7 2 flag bit (1) unal, 5 8 2 type fixed bin (6) unsigned unal, 5 9 2 packed bit (1) unal, 5 10 2 number_dims fixed bin (4) unsigned unal, 5 11 2 size fixed bin (24) unsigned unal; 5 12 5 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 5 14 2 flag bit (1) unal, 5 15 2 type fixed bin (6) unsigned unal, 5 16 2 packed bit (1) unal, 5 17 2 number_dims fixed bin (4) unsigned unal, 5 18 2 scale fixed bin (11) unal, 5 19 2 precision fixed bin (12) unsigned unal; 5 20 5 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 5 22 2 flag bit (1) unal, /* = "1"b */ 5 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 5 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 5 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 5 26 2 size bit (24) unal, 5 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 5 28 3 low fixed bin (35), 5 29 3 high fixed bin (35), 5 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 5 31 2 real_type fixed bin (18) unsigned unal, 5 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 5 33 5 34 dcl arg_descriptor_ptr ptr; 5 35 5 36 dcl extended_arg_type fixed bin init (58); 5 37 5 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 451 452 6 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 6 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 6 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 6 8* Objects of this type are PASCAL string types. 6 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 6 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 6 11* Added the new C types. 6 12* END HISTORY COMMENTS */ 6 13 6 14 /* This include file defines mnemonic names for the Multics 6 15* standard descriptor types, using both pl1 and cobol terminology. 6 16* PG 780613 6 17* JRD 790530 6 18* JRD 791016 6 19* MBW 810731 6 20* TGO 830614 Add hex types. 6 21* Modified June 83 JMAthane to add PASCAL data types 6 22* TGO 840120 Add float dec extended and generic, float binary generic 6 23**/ 6 24 6 25 dcl (real_fix_bin_1_dtype init (1), 6 26 real_fix_bin_2_dtype init (2), 6 27 real_flt_bin_1_dtype init (3), 6 28 real_flt_bin_2_dtype init (4), 6 29 cplx_fix_bin_1_dtype init (5), 6 30 cplx_fix_bin_2_dtype init (6), 6 31 cplx_flt_bin_1_dtype init (7), 6 32 cplx_flt_bin_2_dtype init (8), 6 33 real_fix_dec_9bit_ls_dtype init (9), 6 34 real_flt_dec_9bit_dtype init (10), 6 35 cplx_fix_dec_9bit_ls_dtype init (11), 6 36 cplx_flt_dec_9bit_dtype init (12), 6 37 pointer_dtype init (13), 6 38 offset_dtype init (14), 6 39 label_dtype init (15), 6 40 entry_dtype init (16), 6 41 structure_dtype init (17), 6 42 area_dtype init (18), 6 43 bit_dtype init (19), 6 44 varying_bit_dtype init (20), 6 45 char_dtype init (21), 6 46 varying_char_dtype init (22), 6 47 file_dtype init (23), 6 48 real_fix_dec_9bit_ls_overp_dtype init (29), 6 49 real_fix_dec_9bit_ts_overp_dtype init (30), 6 50 real_fix_bin_1_uns_dtype init (33), 6 51 real_fix_bin_2_uns_dtype init (34), 6 52 real_fix_dec_9bit_uns_dtype init (35), 6 53 real_fix_dec_9bit_ts_dtype init (36), 6 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 6 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 6 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 6 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 6 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 6 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 6 60 real_flt_dec_4bit_bytealigned_dtype init (44), 6 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 6 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 6 63 real_flt_hex_1_dtype init (47), 6 64 real_flt_hex_2_dtype init (48), 6 65 cplx_flt_hex_1_dtype init (49), 6 66 cplx_flt_hex_2_dtype init (50), 6 67 c_typeref_dtype init (54), 6 68 c_enum_dtype init (55), 6 69 c_enum_const_dtype init (56), 6 70 c_union_dtype init (57), 6 71 algol68_straight_dtype init (59), 6 72 algol68_format_dtype init (60), 6 73 algol68_array_descriptor_dtype init (61), 6 74 algol68_union_dtype init (62), 6 75 6 76 cobol_comp_6_dtype init (1), 6 77 cobol_comp_7_dtype init (1), 6 78 cobol_display_ls_dtype init (9), 6 79 cobol_structure_dtype init (17), 6 80 cobol_char_string_dtype init (21), 6 81 cobol_display_ls_overp_dtype init (29), 6 82 cobol_display_ts_overp_dtype init (30), 6 83 cobol_display_uns_dtype init (35), 6 84 cobol_display_ts_dtype init (36), 6 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 6 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 6 87 cobol_comp_5_uns_dtype init (40), 6 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 6 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 6 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 6 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 6 92 cplx_flt_dec_generic_dtype init (84), 6 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 6 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 6 95 6 96 dcl (ft_integer_dtype init (1), 6 97 ft_real_dtype init (3), 6 98 ft_double_dtype init (4), 6 99 ft_complex_dtype init (7), 6 100 ft_complex_double_dtype init (8), 6 101 ft_external_dtype init (16), 6 102 ft_logical_dtype init (19), 6 103 ft_char_dtype init (21), 6 104 ft_hex_real_dtype init (47), 6 105 ft_hex_double_dtype init (48), 6 106 ft_hex_complex_dtype init (49), 6 107 ft_hex_complex_double_dtype init (50) 6 108 ) fixed bin internal static options (constant); 6 109 6 110 dcl (algol68_short_int_dtype init (1), 6 111 algol68_int_dtype init (1), 6 112 algol68_long_int_dtype init (2), 6 113 algol68_real_dtype init (3), 6 114 algol68_long_real_dtype init (4), 6 115 algol68_compl_dtype init (7), 6 116 algol68_long_compl_dtype init (8), 6 117 algol68_bits_dtype init (19), 6 118 algol68_bool_dtype init (19), 6 119 algol68_char_dtype init (21), 6 120 algol68_byte_dtype init (21), 6 121 algol68_struct_struct_char_dtype init (22), 6 122 algol68_struct_struct_bool_dtype init (20) 6 123 ) fixed bin internal static options (constant); 6 124 6 125 dcl (label_constant_runtime_dtype init (24), 6 126 int_entry_runtime_dtype init (25), 6 127 ext_entry_runtime_dtype init (26), 6 128 ext_procedure_runtime_dtype init (27), 6 129 picture_runtime_dtype init (63) 6 130 ) fixed bin internal static options (constant); 6 131 6 132 dcl (pascal_integer_dtype init (1), 6 133 pascal_real_dtype init (4), 6 134 pascal_label_dtype init (24), 6 135 pascal_internal_procedure_dtype init (25), 6 136 pascal_exportable_procedure_dtype init (26), 6 137 pascal_imported_procedure_dtype init (27), 6 138 pascal_typed_pointer_type_dtype init (64), 6 139 pascal_char_dtype init (65), 6 140 pascal_boolean_dtype init (66), 6 141 pascal_record_file_type_dtype init (67), 6 142 pascal_record_type_dtype init (68), 6 143 pascal_set_dtype init (69), 6 144 pascal_enumerated_type_dtype init (70), 6 145 pascal_enumerated_type_element_dtype init (71), 6 146 pascal_enumerated_type_instance_dtype init (72), 6 147 pascal_user_defined_type_dtype init (73), 6 148 pascal_user_defined_type_instance_dtype init (74), 6 149 pascal_text_file_dtype init (75), 6 150 pascal_procedure_type_dtype init (76), 6 151 pascal_variable_formal_parameter_dtype init (77), 6 152 pascal_value_formal_parameter_dtype init (78), 6 153 pascal_entry_formal_parameter_dtype init (79), 6 154 pascal_parameter_procedure_dtype init (80), 6 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 6 156 6 157 6 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 453 454 end rcm_update_by_spec; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.0 rcm_update_by_spec.pl1 >special_ldd>install>MR12.2-1184>rcm_update_by_spec.pl1 443 1 01/07/85 0859.4 dm_rcm_cursor.incl.pl1 >ldd>include>dm_rcm_cursor.incl.pl1 445 2 10/14/83 1609.1 vu_typed_vector.incl.pl1 >ldd>include>vu_typed_vector.incl.pl1 447 3 04/05/85 0924.4 dm_collmgr_entry_dcls.incl.pl1 >ldd>include>dm_collmgr_entry_dcls.incl.pl1 449 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 451 5 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 453 6 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 4-7 set ref 37* 278* 302* 369* BACKWARD_DIRECTION 001522 constant fixed bin(17,0) initial dcl 110 ref 248 DEFAULT_AND_GROUP_ID_LIST_PTR 000002 constant pointer initial dcl 110 set ref 234* DEFAULT_NUMBER_OF_FULLY_STRUCTURAL_FIELDS 000027 constant fixed bin(17,0) initial dcl 110 set ref 234* DEFAULT_PARTIAL_STRUCTURAL_FIELD 000027 constant fixed bin(17,0) initial dcl 110 set ref 234* DOUBLE_WORDS_PER_PAGE constant fixed bin(17,0) initial dcl 110 ref 89 FALSE constant bit(1) initial dcl 110 ref 213 233 GENERAL_TYPED_VECTOR_TYPE 000035 constant fixed bin(17,0) initial dcl 2-43 set ref 185 185* GET_CURRENT constant fixed bin(17,0) initial dcl 110 set ref 219* IS_RELATIVE 000027 constant bit(1) initial dcl 110 set ref 403* LIMIT_TO_STOP_INFINITE_LOOPING 000001 constant fixed bin(35,0) initial dcl 110 ref 224 278 MYNAME 000004 constant varying char(32) initial dcl 108 set ref 37* 37* 37* 185* 278* 302* 369* NO_RECORD constant bit(36) initial dcl 110 ref 216 224 248 261 364 406 RECORD_CURSOR_VERSION_2 constant fixed bin(17,0) initial dcl 1-29 ref 200 TRUE 000000 constant bit(1) initial dcl 110 ref 170 183 211 228 289 code 000105 automatic fixed bin(35,0) dcl 66 set ref 198* 234* 239 239* collection_id 5 based bit(36) level 2 dcl 1-15 set ref 355* 369* 403* collection_manager_$get_by_ci_ptr 000032 constant entry external dcl 3-80 ref 355 collection_manager_$get_id 000034 constant entry external dcl 3-86 ref 403 current_ci_ptr 000106 automatic pointer initial dcl 67 set ref 67* 209* 219* 268* cv_p_expected_version parameter fixed bin(35,0) dcl 299 set ref 295 302 302* cv_p_received_version parameter fixed bin(35,0) dcl 298 set ref 295 302 302* cv_p_structure_name parameter char packed unaligned dcl 300 set ref 295 302* data_format_util_$compare_sequential 000010 constant entry external dcl 138 ref 234 delete 000100 automatic bit(1) initial dcl 62 set ref 62* 170* 254 direction_to_process 000110 automatic fixed bin(17,0) dcl 68 set ref 204* 248 268* 273* dm_error_$beginning_of_collection 000022 external static fixed bin(35,0) dcl 152 ref 364 406 dm_error_$end_of_collection 000024 external static fixed bin(35,0) dcl 152 ref 364 406 dm_error_$long_return_element 000020 external static fixed bin(35,0) dcl 152 ref 367 dm_error_$programming_error 000030 external static fixed bin(35,0) dcl 152 set ref 37* 278* dm_error_$record_not_found 000026 external static fixed bin(35,0) dcl 152 set ref 283* er_p_code parameter fixed bin(35,0) dcl 323 ref 320 325 error_table_$unimplemented_version 000016 external static fixed bin(35,0) dcl 152 set ref 185* 302* extended_arg_type 000142 automatic fixed bin(17,0) initial dcl 5-36 set ref 5-36* field_table_ptr 000112 automatic pointer initial dcl 69 set ref 69* 196* 234* file_opening_id 4 based bit(36) level 2 dcl 1-15 set ref 355* 403* first_record_to_process 000114 automatic bit(36) dcl 70 set ref 205* 215 flags 1 based structure level 2 dcl 1-15 general_typed_vector based structure level 1 packed packed unaligned dcl 2-24 get_each_record 000102 automatic bit(1) initial dcl 63 set ref 63* 211* 213* 219 268 get_system_free_area_ 000014 constant entry external dcl 142 ref 197 gr_code 000206 automatic fixed bin(35,0) dcl 350 set ref 353* 355* 361 364 364 367 367* 369* gr_new_ci_ptr 000210 automatic pointer dcl 351 set ref 354* 355* 374 374* gr_p_ci_ptr parameter pointer dcl 336 set ref 331 355* 374 374 374* gr_p_direction parameter fixed bin(17,0) dcl 341 set ref 331 355* gr_p_previous_record_id parameter bit(36) dcl 337 set ref 331 355* gr_p_record_buffer based bit dcl 347 ref 382 gr_p_record_buffer_length parameter fixed bin(35,0) dcl 345 set ref 331 355* 382 382 385* gr_p_record_buffer_ptr parameter pointer dcl 344 set ref 331 355* 379 382 382 384* gr_p_record_id parameter bit(36) dcl 339 set ref 331 364* 369* gr_p_record_string_length parameter fixed bin(35,0) dcl 342 set ref 331 355* 385 gr_p_record_string_ptr parameter pointer dcl 340 set ref 331 355* 379 384 gri_code 000220 automatic fixed bin(35,0) dcl 400 set ref 403* 406 406 406 410* gri_p_direction parameter fixed bin(17,0) dcl 398 set ref 392 403* gri_p_previous_record_id parameter bit(36) dcl 395 set ref 392 403* gri_p_record_id parameter bit(36) dcl 397 set ref 392 403* 406* highest_accepted_record 000115 automatic bit(36) dcl 72 set ref 216* 248 248* 252* 288 last_record_to_process 000116 automatic bit(36) dcl 74 set ref 206* 261 local_record_buffer 000140 automatic fixed bin(71,0) array dcl 89 set ref 208 314 382 maximum_number_of_records 000117 automatic fixed bin(35,0) dcl 75 set ref 194* 261 modify 000101 automatic bit(1) initial dcl 62 set ref 62* 183* 211 256 modify_vector_ptr 000134 automatic pointer initial dcl 87 set ref 87* 171* 184* 185 185 null builtin function dcl 100 ref 37 37 67 69 82 85 86 87 88 171 185 185 209 278 278 302 302 314 354 369 369 374 425 number_of_records_accepted 000120 automatic fixed bin(35,0) dcl 77 set ref 217* 247* 247 261 283 286 p_code parameter fixed bin(35,0) dcl 58 set ref 164 175 198* 325* p_direction_to_process parameter fixed bin(17,0) dcl 46 ref 164 175 204 p_field_table_ptr parameter pointer dcl 44 ref 164 175 196 p_first_record_to_process parameter bit(36) dcl 47 ref 164 175 205 p_last_record_to_process parameter bit(36) dcl 49 ref 164 175 206 p_maximum_number_of_records parameter fixed bin(35,0) dcl 53 ref 164 175 194 p_modify_vector_ptr parameter pointer dcl 57 ref 175 184 p_number_of_records_accepted parameter fixed bin(35,0) dcl 55 set ref 164 175 286* p_record_cursor_ptr parameter pointer dcl 43 ref 164 175 199 p_spec_is_always_satisfied parameter bit(1) dcl 51 ref 164 175 203 p_specification_ptr parameter pointer dcl 45 ref 164 175 202 position_is_valid 1 based bit(1) level 3 packed packed unaligned dcl 1-15 set ref 289* previous_record_id 000121 automatic bit(36) dcl 79 set ref 267* 268* 273* rcp_p_ci_ptr parameter pointer dcl 422 set ref 416 425 429* rcp_p_new_ci_ptr parameter pointer dcl 423 ref 416 429 record_buffer based bit dcl 95 ref 314 record_buffer_length 000123 automatic fixed bin(35,0) dcl 81 set ref 219* 268* 314 314 record_buffer_ptr 000124 automatic pointer initial dcl 82 set ref 82* 208* 219* 268* 314 314 314 record_count 000122 automatic fixed bin(35,0) dcl 80 set ref 224* 278 record_cursor based structure level 1 dcl 1-15 record_cursor_ptr 000140 automatic pointer dcl 1-28 set ref 199* 200 288 289 355 355 369 403 403 record_id 000126 automatic bit(36) dcl 83 in procedure "rcm_update_by_spec" set ref 215* 219* 219* 224 248 252 261 261* 267 268* 273* record_id 6 based bit(36) level 2 in structure "record_cursor" dcl 1-15 in procedure "rcm_update_by_spec" set ref 288* record_satisfies_spec 000103 automatic bit(1) initial dcl 63 set ref 63* 228* 233* 234* 243 record_string based bit packed unaligned dcl 93 set ref 234* record_string_length 000127 automatic fixed bin(35,0) dcl 84 set ref 219* 234 234 268* record_string_ptr 000130 automatic pointer initial dcl 85 set ref 85* 219* 234 268* spec_is_always_satisfied 000104 automatic bit(1) initial dcl 63 set ref 63* 203* 211 228 specification_ptr 000132 automatic pointer initial dcl 86 set ref 86* 202* 234* sub_err_ 000012 constant entry external dcl 141 ref 37 185 278 302 369 type based fixed bin(17,0) level 2 packed packed unaligned dcl 2-24 set ref 185 185* version 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 1-15 ref 200 work_area_ptr 000136 automatic pointer initial dcl 88 set ref 88* 197* 355* 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 BEGINNING_OF_COLLECTION_RECORD_ID internal static bit(36) initial dcl 1-32 BITS_PER_PAGE internal static fixed bin(17,0) initial dcl 110 DEFAULT_RECORD_ID_FIELD_ID internal static fixed bin(17,0) initial dcl 110 ELEMENT_ID_LIST_INCREMENT internal static fixed bin(17,0) initial dcl 110 FREE_OLD_TYPED_VECTOR_ARRAY internal static bit(1) initial dcl 110 OLD_SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 2-43 RECORD_CURSOR_TYPE internal static fixed bin(17,0) initial dcl 1-31 SIMPLE_TYPED_VECTOR_TYPE internal static fixed bin(17,0) initial dcl 2-43 VECTOR_SLOT_INCREMENT internal static fixed bin(17,0) initial dcl 110 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 6-25 area_dtype internal static fixed bin(17,0) initial dcl 6-25 arg_descriptor based structure level 1 dcl 5-6 arg_descriptor_ptr automatic pointer dcl 5-34 bit_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 6-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 6-25 c_union_dtype internal static fixed bin(17,0) initial dcl 6-25 char_dtype internal static fixed bin(17,0) initial dcl 6-25 cleanup 000000 stack reference condition dcl 104 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 6-25 collection_manager_$allocate_control_interval 000000 constant entry external dcl 3-50 collection_manager_$compact_control_interval 000000 constant entry external dcl 3-52 collection_manager_$create_collection 000000 constant entry external dcl 3-54 collection_manager_$create_file 000000 constant entry external dcl 3-56 collection_manager_$delete 000000 constant entry external dcl 3-64 collection_manager_$delete_from_ci_buffer 000000 constant entry external dcl 3-67 collection_manager_$destroy_collection 000000 constant entry external dcl 3-58 collection_manager_$free_control_interval 000000 constant entry external dcl 3-60 collection_manager_$get 000000 constant entry external dcl 3-71 collection_manager_$get_control_interval_ptr 000000 constant entry external dcl 3-74 collection_manager_$get_from_ci_buffer 000000 constant entry external dcl 3-77 collection_manager_$get_header 000000 constant entry external dcl 3-83 collection_manager_$get_portion 000000 constant entry external dcl 3-89 collection_manager_$get_portion_by_ci_ptr 000000 constant entry external dcl 3-97 collection_manager_$get_portion_from_ci_buffer 000000 constant entry external dcl 3-93 collection_manager_$modify 000000 constant entry external dcl 3-101 collection_manager_$modify_in_ci_buffer 000000 constant entry external dcl 3-107 collection_manager_$modify_portion 000000 constant entry external dcl 3-110 collection_manager_$modify_unprotected 000000 constant entry external dcl 3-104 collection_manager_$postcommit_increments 000000 constant entry external dcl 3-113 collection_manager_$put 000000 constant entry external dcl 3-115 collection_manager_$put_header 000000 constant entry external dcl 3-121 collection_manager_$put_in_ci_buffer 000000 constant entry external dcl 3-118 collection_manager_$put_unprotected_header 000000 constant entry external dcl 3-123 collection_manager_$replace_ci_buffer 000000 constant entry external dcl 3-126 collection_manager_$setup_ci_buffer 000000 constant entry external dcl 3-129 collection_manager_$simple_get_by_ci_ptr 000000 constant entry external dcl 3-132 collection_manager_$simple_get_from_ci_buffer 000000 constant entry external dcl 3-135 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 data_format_util_$cv_table_to_typed_array 000000 constant entry external dcl 143 data_format_util_$new_cv_string_to_vector 000000 constant entry external dcl 146 entry_dtype internal static fixed bin(17,0) initial dcl 6-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 extended_arg_descriptor based structure level 1 dcl 5-21 file_dtype internal static fixed bin(17,0) initial dcl 6-25 fixed_arg_descriptor based structure level 1 dcl 5-13 ft_char_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 6-96 general_typed_vector_ptr automatic pointer dcl 2-38 gtv_number_of_dimensions automatic fixed bin(17,0) dcl 2-40 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_dtype internal static fixed bin(17,0) initial dcl 6-25 offset_dtype internal static fixed bin(17,0) initial dcl 6-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 pointer_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 simple_typed_vector based structure level 1 packed packed unaligned dcl 2-17 simple_typed_vector_ptr automatic pointer dcl 2-33 structure_dtype internal static fixed bin(17,0) initial dcl 6-25 stv_number_of_dimensions automatic fixed bin(17,0) dcl 2-35 varying_bit_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 6-25 NAMES DECLARED BY EXPLICIT CONTEXT. ACCEPT_THIS_RECORD 000635 constant label dcl 243 CHECK_VERSION 000775 constant entry internal dcl 295 ref 200 COMPARE 000560 constant label dcl 230 DELETE_RECORD 001407 constant entry internal dcl 435 ref 254 ERROR_RETURN 001112 constant entry internal dcl 320 ref 239 283 367 410 FINISH 001071 constant entry internal dcl 311 ref 326 GET_NEXT 000672 constant label dcl 264 GET_RECORD 001120 constant entry internal dcl 331 ref 219 268 GET_RECORD_ID 001331 constant entry internal dcl 392 ref 273 JOIN 000441 constant label dcl 194 ref 173 192 MAIN_RETURN 000774 constant label dcl 292 set ref 327 MODIFY_RECORD 001411 constant entry internal dcl 439 ref 256 RECORD_LOOP 000542 constant label dcl 224 RESET_CI_PTR 001375 constant entry internal dcl 416 ref 374 delete 000311 constant entry external dcl 164 modify 000341 constant entry external dcl 175 rcm_update_by_spec 000222 constant entry external dcl 34 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 208 314 382 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1732 1770 1523 1742 Length 2324 1523 36 317 206 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcm_update_by_spec 384 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure rcm_update_by_spec. FINISH internal procedure shares stack frame of external procedure rcm_update_by_spec. ERROR_RETURN internal procedure shares stack frame of external procedure rcm_update_by_spec. GET_RECORD internal procedure shares stack frame of external procedure rcm_update_by_spec. GET_RECORD_ID internal procedure shares stack frame of external procedure rcm_update_by_spec. RESET_CI_PTR internal procedure shares stack frame of external procedure rcm_update_by_spec. DELETE_RECORD internal procedure shares stack frame of external procedure rcm_update_by_spec. MODIFY_RECORD internal procedure shares stack frame of external procedure rcm_update_by_spec. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcm_update_by_spec 000100 delete rcm_update_by_spec 000101 modify rcm_update_by_spec 000102 get_each_record rcm_update_by_spec 000103 record_satisfies_spec rcm_update_by_spec 000104 spec_is_always_satisfied rcm_update_by_spec 000105 code rcm_update_by_spec 000106 current_ci_ptr rcm_update_by_spec 000110 direction_to_process rcm_update_by_spec 000112 field_table_ptr rcm_update_by_spec 000114 first_record_to_process rcm_update_by_spec 000115 highest_accepted_record rcm_update_by_spec 000116 last_record_to_process rcm_update_by_spec 000117 maximum_number_of_records rcm_update_by_spec 000120 number_of_records_accepted rcm_update_by_spec 000121 previous_record_id rcm_update_by_spec 000122 record_count rcm_update_by_spec 000123 record_buffer_length rcm_update_by_spec 000124 record_buffer_ptr rcm_update_by_spec 000126 record_id rcm_update_by_spec 000127 record_string_length rcm_update_by_spec 000130 record_string_ptr rcm_update_by_spec 000132 specification_ptr rcm_update_by_spec 000134 modify_vector_ptr rcm_update_by_spec 000136 work_area_ptr rcm_update_by_spec 000140 record_cursor_ptr rcm_update_by_spec 000140 local_record_buffer rcm_update_by_spec 000142 extended_arg_type rcm_update_by_spec 000206 gr_code GET_RECORD 000210 gr_new_ci_ptr GET_RECORD 000220 gri_code GET_RECORD_ID THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac alloc_auto_adj ext_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. collection_manager_$get_by_ci_ptr collection_manager_$get_id data_format_util_$compare_sequential get_system_free_area_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$beginning_of_collection dm_error_$end_of_collection dm_error_$long_return_element dm_error_$programming_error dm_error_$record_not_found error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 62 000172 63 000174 67 000177 69 000201 82 000202 85 000203 86 000204 87 000205 88 000206 89 000207 5 36 000215 34 000221 37 000230 164 000300 170 000324 171 000326 173 000330 175 000331 183 000354 184 000356 185 000362 192 000440 194 000441 196 000444 197 000447 198 000456 199 000460 200 000464 202 000501 203 000505 204 000510 205 000512 206 000514 208 000516 209 000520 211 000522 213 000531 215 000532 216 000534 217 000535 219 000536 224 000542 228 000553 233 000560 234 000561 239 000626 243 000632 247 000635 248 000641 251 000650 252 000651 254 000653 256 000657 261 000662 267 000672 268 000673 273 000700 276 000702 278 000707 283 000754 286 000765 288 000767 289 000772 292 000774 295 000775 302 001006 309 001070 311 001071 314 001072 318 001111 320 001112 325 001114 326 001116 327 001117 331 001120 353 001122 354 001123 355 001125 361 001170 364 001172 367 001202 369 001207 374 001261 379 001302 382 001307 384 001322 385 001326 388 001330 392 001331 403 001333 406 001360 410 001372 412 001374 416 001375 425 001377 429 001403 431 001406 435 001407 437 001410 439 001411 441 001412 ----------------------------------------------------------- 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