COMPILATION LISTING OF SEGMENT arg_assign_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1433.5 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(87-07-09,Parisek), approve(87-07-09,MCR7746), 12* audit(87-07-16,Fawcett), install(87-07-28,MR12.1-1049): 13* Correct condition handling. 14* END HISTORY COMMENTS */ 15 16 17 arg_assign_: proc (); 18 19 return; /* not an entrypoint */ 20 21 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend,ifthendo,ifthen,^thendo */ 22 23 /* * ARG_ASSIGN_ -- Utility procedure for options (variable) programs. 24* * 25* * This procedure is used to assign values to and from references in an 26* * argument list. This is useful for options (variable) procedures, in that 27* * it allows the program to readily extract values from its argument list 28* * and assign them to its own variables. 29* * 30* * All entries in arg_assign_ are declared options (variable), since the 31* * third argument may be of any type. 32* * 33* * 09/07/80, W. Olin Sibert, with a lot of help from probe_assign_value_. 34**/ 35 36 dcl from_sw bit (1) aligned; 37 dcl check_sw bit (1) aligned; 38 39 dcl caller_alp pointer; 40 dcl caller_argno fixed bin; /* arg list info from our caller */ 41 dcl my_alp pointer; 42 dcl my_arg_count fixed bin; 43 dcl code fixed bin (35); 44 dcl myname char (32); 45 46 dcl 1 arg_info aligned based, 47 2 ndims fixed bin, 48 2 comp_data aligned like computational_data; 49 50 dcl 1 arg1 aligned like arg_info; 51 dcl 1 arg2 aligned like arg_info; 52 dcl 1 to_arg aligned like arg_info; 53 dcl 1 from_arg aligned like arg_info; 54 55 dcl ( 56 error_table_$bad_conversion, 57 error_table_$noarg 58 ) fixed bin (35) external static; 59 60 dcl area_assign_ entry (pointer, pointer); 61 dcl arg_assign_$to_arg entry options (variable); 62 dcl assign_ entry (pointer, fixed bin, fixed bin (35), pointer, fixed bin, fixed bin (35)); 63 dcl assign_$computational_ entry (pointer, pointer, fixed bin (35)); 64 dcl cu_$arg_count entry (fixed bin); 65 dcl based_ptr pointer aligned based; /* overlays for various data types */ 66 dcl based_integer fixed bin (35) aligned based; 67 dcl based_packed_ptr pointer unaligned based; 68 dcl based_label label based; 69 dcl based_entry entry based; 70 dcl based_file file based; 71 72 dcl temp_ptr pointer; 73 74 dcl cu_$arg_list_ptr entry (pointer); 75 dcl cu_$arg_ptr_rel entry (fixed bin, pointer, fixed bin (21), fixed bin (35), pointer); 76 dcl decode_descriptor_ entry (pointer, fixed bin, fixed bin, bit (1) aligned, fixed bin, fixed bin (24), fixed bin (35)); 77 dcl sub_err_ entry options (variable); 78 79 dcl WHOAMI char (32) internal static options (constant) init ("arg_assign_"); 80 dcl STOP char (1) unaligned internal static options (constant) init ("s"); 81 82 dcl (size, conversion, stringsize) condition; 83 84 dcl (addr, addrel, binary, string, null) builtin; 85 86 87 88 arg_assign_$from_arg: 89 entry () options (variable); 90 91 /* call arg_assign_$from_arg (arg_list_ptr, arg_index, TARGET); */ 92 93 from_sw = "1"b; 94 check_sw = "0"b; 95 myname = "arg_assign_$from_arg"; 96 goto COMMON; 97 98 99 arg_assign_$to_arg: 100 entry () options (variable); 101 102 /* call arg_assign_$to_arg (arg_list_ptr, arg_index, SOURCE); */ 103 104 from_sw = "0"b; 105 check_sw = "0"b; 106 myname = "arg_assign_$to_arg"; 107 goto COMMON; 108 109 110 arg_assign_$from_arg_check: 111 entry () options (variable); 112 113 /* call arg_assign_$from_arg_check (arg_list_ptr, arg_index, TARGET, code); */ 114 115 from_sw = "1"b; 116 check_sw = "1"b; 117 myname = "arg_assign_$from_arg_check"; 118 goto COMMON; 119 120 121 arg_assign_$to_arg_check: 122 entry () options (variable); 123 124 /* call arg_assign_$to_arg_check (arg_list_ptr, arg_index, SOURCE, code); */ 125 126 from_sw = "0"b; 127 check_sw = "1"b; 128 myname = "arg_assign_$to_arg_check"; 129 goto COMMON; 130 131 132 COMMON: 133 134 call cu_$arg_count (my_arg_count); /* find out whether the arg count is proper */ 135 if (check_sw & (my_arg_count ^= 4)) | (^check_sw & (my_arg_count ^= 3)) then 136 call sub_err_ (0, WHOAMI, STOP, (null ()), 0, "^a: Invalid calling sequence. ^[4^;3^] arguments required.", 137 myname, check_sw); 138 139 call cu_$arg_list_ptr (my_alp); 140 141 142 143 call get_arg_info (my_alp, 1, arg1); /* get the arg_list_ptr argument */ 144 call get_arg_info (my_alp, 2, arg2); /* and the arg_count argument */ 145 146 if (arg1.data_type ^= pointer_dtype) | (arg1.ndims ^= 0) then 147 call sub_err_ (0, WHOAMI, STOP, (null ()), (0), "^a: First argument must be a pointer", myname); 148 149 if arg1.packed then /* assign the arg list pointer */ 150 caller_alp = arg1.address -> based_packed_ptr; 151 else caller_alp = arg1.address -> based_ptr; 152 153 if (^data_type_info_$info (arg2.data_type).arithmetic) | (arg2.ndims ^= 0) then 154 call sub_err_ (0, WHOAMI, STOP, (null ()), (0), "^a: Second argument must be a number.", myname); 155 156 if arg2.data_type = real_fix_bin_1_dtype then /* optimize the anticipated case */ 157 caller_argno = arg2.address -> based_integer; 158 159 else call assign_ (arg2.address, /* otherwise, call assign_ to do the job */ 160 ((2 * arg2.data_type) + binary (arg2.packed, 1)), ((262144 * arg2.scale) + arg2.prec_or_length), 161 addr (caller_argno), (2 * real_fix_bin_1_dtype), 35); 162 163 if from_sw then do; /* assigning from arg in arglist to our third arg */ 164 call get_arg_info (caller_alp, caller_argno, from_arg); 165 call get_arg_info (my_alp, 3, to_arg); 166 end; 167 168 else do; /* assigning from our third arg to caller argument */ 169 call get_arg_info (caller_alp, caller_argno, to_arg); 170 call get_arg_info (my_alp, 3, from_arg); 171 end; 172 173 174 175 if (from_arg.ndims > 0) | (to_arg.ndims > 0) then 176 call sub_err_ (0, WHOAMI, STOP, (null ()), (0), "^a: Array assignment not supported.", myname); 177 178 /* set up condition handlers */ 179 180 on condition (size) 181 begin; 182 code = error_table_$bad_conversion; 183 goto ERROR_RETURN; 184 end; 185 186 on condition (stringsize) 187 begin; 188 code = error_table_$bad_conversion; 189 goto ERROR_RETURN; 190 end; 191 192 on condition (conversion) 193 begin; 194 code = error_table_$bad_conversion; 195 goto ERROR_RETURN; 196 end; 197 198 199 if data_type_info_$info (to_arg.data_type).computational then do; 200 if ^data_type_info_$info (from_arg.data_type).computational then signal condition (conversion); 201 /* Sorry, we only take tunas that taste good. */ 202 203 if (to_arg.data_type = real_fix_bin_1_dtype) & (from_arg.data_type = real_fix_bin_1_dtype) then 204 to_arg.address -> based_integer = from_arg.address -> based_integer; 205 /* optimize common case */ 206 207 /* We could productively optimize some other assignments here, like char strings and the like, 208* but it's not worth the trouble in the initial version. */ 209 210 else do; /* otherwise, call for Phillip Morris */ 211 call assign_$computational_ (addr (to_arg.comp_data), addr (from_arg.comp_data), code); 212 if code ^= 0 then 213 if check_sw then 214 goto ERROR_RETURN; 215 else signal condition (conversion); 216 end; /* of calling assign_ */ 217 end; /* of handling computational data */ 218 219 220 221 else if (to_arg.data_type = pointer_dtype) then do; 222 if from_arg.data_type ^= pointer_dtype then signal condition (conversion); 223 224 if from_arg.packed then 225 temp_ptr = from_arg.address -> based_packed_ptr; 226 else temp_ptr = from_arg.address -> based_ptr; 227 228 if to_arg.packed then 229 to_arg.address -> based_packed_ptr = temp_ptr; 230 else to_arg.address -> based_ptr = temp_ptr; 231 end; /* of poiner assignment */ 232 233 else if (to_arg.data_type = offset_dtype) | (from_arg.data_type = offset_dtype) then 234 call sub_err_ (0, WHOAMI, STOP, (null ()), (0), "^a: Assignment of offsets not supported.", myname); 235 236 /* Actually, we COULD support assignments of null offsets to pointers, and null pointers to 237* offsets, but it hardly seems worthwhile. Nobody uses offsets, anyway. */ 238 239 /* I do not know whether this procedure should be in the business of dealing with 240* label_runtime_dtype and entry_runtime_dtype; probe_assign_value_ is, but I think 241* that's because it deals with stu_. As far as I know, anything which appears in an 242* argument list ought to be either label_dtype or entry_dtype. 243**/ 244 245 246 else if (to_arg.data_type = label_dtype) then do; 247 if from_arg.data_type ^= label_dtype then signal condition (conversion); 248 249 to_arg.address -> based_label = from_arg.address -> based_label; 250 end; 251 252 else if (to_arg.data_type = entry_dtype) then do; 253 if from_arg.data_type ^= entry_dtype then signal condition (conversion); 254 255 to_arg.address -> based_entry = from_arg.address -> based_entry; 256 end; 257 258 else if (to_arg.data_type = file_dtype) then do; 259 if from_arg.data_type ^= file_dtype then signal condition (conversion); 260 261 to_arg.address -> based_file = from_arg.address -> based_file; 262 end; 263 264 else if (to_arg.data_type = area_dtype) then do; 265 if from_arg.data_type ^= area_dtype then signal condition (conversion); 266 267 call area_assign_ (to_arg.address, from_arg.address); 268 end; 269 270 else call sub_err_ (0, WHOAMI, STOP, (null ()), (0), "^a: Cannot assign from type ^d to type ^d.", 271 from_arg.data_type, to_arg.data_type); 272 273 code = 0; /* successful */ 274 275 ERROR_RETURN: /* come here for error exit */ 276 if check_sw then do; 277 revert condition (size); 278 revert condition (stringsize); 279 revert condition (conversion); 280 end; 281 282 if check_sw then /* assign the code */ call arg_assign_$to_arg (my_alp, 4, code); 283 /* we can do this since this call doesn't have a fourth arg */ 284 285 return; /* all done */ 286 287 288 289 get_arg_info: 290 proc (P_alp, P_argno, P_arg_info); 291 292 /* This procedure fills in the arg_info structure for the specified argument. */ 293 294 dcl ( 295 P_alp pointer, 296 P_argno fixed bin 297 ) parameter; 298 299 dcl 1 P_arg_info aligned like arg_info parameter; 300 301 dcl packed_bit bit (1) aligned; 302 303 304 call cu_$arg_ptr_rel (P_argno, P_arg_info.address, (0), code, P_alp); 305 if check_sw & (code = error_table_$noarg) then goto ERROR_RETURN; 306 /* be silent about this one */ 307 if code ^= 0 then call sub_err_ (code, "arg_assign_", STOP, (null ()), 0, "^a: Argument ^d.", myname, P_argno); 308 309 call decode_descriptor_ (P_alp, P_argno, P_arg_info.data_type, packed_bit, P_arg_info.ndims, 310 P_arg_info.prec_or_length, P_arg_info.scale); 311 312 string (P_arg_info.flags) = ""b; 313 P_arg_info.packed = packed_bit; 314 P_arg_info.picture_image_ptr = null (); 315 316 /* I do not know whether it is necessary for this procedure to deal with pictures. If it is, 317* I surely don't know how to do it. I will therefore leave it out for now. */ 318 319 if data_type_info_$info (P_arg_info.data_type).varying then 320 /* KLUDGE to adjust varying string arg ptr */ 321 P_arg_info.address = addrel (P_arg_info.address, -1); 322 323 return; 324 end get_arg_info; 325 326 1 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 1 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 1 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 1 8* Objects of this type are PASCAL string types. 1 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 1 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 1 11* Added the new C types. 1 12* END HISTORY COMMENTS */ 1 13 1 14 /* This include file defines mnemonic names for the Multics 1 15* standard descriptor types, using both pl1 and cobol terminology. 1 16* PG 780613 1 17* JRD 790530 1 18* JRD 791016 1 19* MBW 810731 1 20* TGO 830614 Add hex types. 1 21* Modified June 83 JMAthane to add PASCAL data types 1 22* TGO 840120 Add float dec extended and generic, float binary generic 1 23**/ 1 24 1 25 dcl (real_fix_bin_1_dtype init (1), 1 26 real_fix_bin_2_dtype init (2), 1 27 real_flt_bin_1_dtype init (3), 1 28 real_flt_bin_2_dtype init (4), 1 29 cplx_fix_bin_1_dtype init (5), 1 30 cplx_fix_bin_2_dtype init (6), 1 31 cplx_flt_bin_1_dtype init (7), 1 32 cplx_flt_bin_2_dtype init (8), 1 33 real_fix_dec_9bit_ls_dtype init (9), 1 34 real_flt_dec_9bit_dtype init (10), 1 35 cplx_fix_dec_9bit_ls_dtype init (11), 1 36 cplx_flt_dec_9bit_dtype init (12), 1 37 pointer_dtype init (13), 1 38 offset_dtype init (14), 1 39 label_dtype init (15), 1 40 entry_dtype init (16), 1 41 structure_dtype init (17), 1 42 area_dtype init (18), 1 43 bit_dtype init (19), 1 44 varying_bit_dtype init (20), 1 45 char_dtype init (21), 1 46 varying_char_dtype init (22), 1 47 file_dtype init (23), 1 48 real_fix_dec_9bit_ls_overp_dtype init (29), 1 49 real_fix_dec_9bit_ts_overp_dtype init (30), 1 50 real_fix_bin_1_uns_dtype init (33), 1 51 real_fix_bin_2_uns_dtype init (34), 1 52 real_fix_dec_9bit_uns_dtype init (35), 1 53 real_fix_dec_9bit_ts_dtype init (36), 1 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 1 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 1 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 1 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 1 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 1 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 1 60 real_flt_dec_4bit_bytealigned_dtype init (44), 1 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 1 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 1 63 real_flt_hex_1_dtype init (47), 1 64 real_flt_hex_2_dtype init (48), 1 65 cplx_flt_hex_1_dtype init (49), 1 66 cplx_flt_hex_2_dtype init (50), 1 67 c_typeref_dtype init (54), 1 68 c_enum_dtype init (55), 1 69 c_enum_const_dtype init (56), 1 70 c_union_dtype init (57), 1 71 algol68_straight_dtype init (59), 1 72 algol68_format_dtype init (60), 1 73 algol68_array_descriptor_dtype init (61), 1 74 algol68_union_dtype init (62), 1 75 1 76 cobol_comp_6_dtype init (1), 1 77 cobol_comp_7_dtype init (1), 1 78 cobol_display_ls_dtype init (9), 1 79 cobol_structure_dtype init (17), 1 80 cobol_char_string_dtype init (21), 1 81 cobol_display_ls_overp_dtype init (29), 1 82 cobol_display_ts_overp_dtype init (30), 1 83 cobol_display_uns_dtype init (35), 1 84 cobol_display_ts_dtype init (36), 1 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 1 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 1 87 cobol_comp_5_uns_dtype init (40), 1 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 1 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 1 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 1 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 1 92 cplx_flt_dec_generic_dtype init (84), 1 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 1 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 1 95 1 96 dcl (ft_integer_dtype init (1), 1 97 ft_real_dtype init (3), 1 98 ft_double_dtype init (4), 1 99 ft_complex_dtype init (7), 1 100 ft_complex_double_dtype init (8), 1 101 ft_external_dtype init (16), 1 102 ft_logical_dtype init (19), 1 103 ft_char_dtype init (21), 1 104 ft_hex_real_dtype init (47), 1 105 ft_hex_double_dtype init (48), 1 106 ft_hex_complex_dtype init (49), 1 107 ft_hex_complex_double_dtype init (50) 1 108 ) fixed bin internal static options (constant); 1 109 1 110 dcl (algol68_short_int_dtype init (1), 1 111 algol68_int_dtype init (1), 1 112 algol68_long_int_dtype init (2), 1 113 algol68_real_dtype init (3), 1 114 algol68_long_real_dtype init (4), 1 115 algol68_compl_dtype init (7), 1 116 algol68_long_compl_dtype init (8), 1 117 algol68_bits_dtype init (19), 1 118 algol68_bool_dtype init (19), 1 119 algol68_char_dtype init (21), 1 120 algol68_byte_dtype init (21), 1 121 algol68_struct_struct_char_dtype init (22), 1 122 algol68_struct_struct_bool_dtype init (20) 1 123 ) fixed bin internal static options (constant); 1 124 1 125 dcl (label_constant_runtime_dtype init (24), 1 126 int_entry_runtime_dtype init (25), 1 127 ext_entry_runtime_dtype init (26), 1 128 ext_procedure_runtime_dtype init (27), 1 129 picture_runtime_dtype init (63) 1 130 ) fixed bin internal static options (constant); 1 131 1 132 dcl (pascal_integer_dtype init (1), 1 133 pascal_real_dtype init (4), 1 134 pascal_label_dtype init (24), 1 135 pascal_internal_procedure_dtype init (25), 1 136 pascal_exportable_procedure_dtype init (26), 1 137 pascal_imported_procedure_dtype init (27), 1 138 pascal_typed_pointer_type_dtype init (64), 1 139 pascal_char_dtype init (65), 1 140 pascal_boolean_dtype init (66), 1 141 pascal_record_file_type_dtype init (67), 1 142 pascal_record_type_dtype init (68), 1 143 pascal_set_dtype init (69), 1 144 pascal_enumerated_type_dtype init (70), 1 145 pascal_enumerated_type_element_dtype init (71), 1 146 pascal_enumerated_type_instance_dtype init (72), 1 147 pascal_user_defined_type_dtype init (73), 1 148 pascal_user_defined_type_instance_dtype init (74), 1 149 pascal_text_file_dtype init (75), 1 150 pascal_procedure_type_dtype init (76), 1 151 pascal_variable_formal_parameter_dtype init (77), 1 152 pascal_value_formal_parameter_dtype init (78), 1 153 pascal_entry_formal_parameter_dtype init (79), 1 154 pascal_parameter_procedure_dtype init (80), 1 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 1 156 1 157 1 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 327 328 2 1 /* BEGIN INCLUDE FILE ... data_type_info_.incl.pl1 2 2* 2 3* attributes of each Multics data type. You may not rely on the dimension never exceeding 64 2 4* James R. Davis 6 Apr 79 2 5* Modified JMAthane June 83 to add "type" bit field 2 6* Upped bound from 64 to 80 10/18/83 S. Herbst 2 7* Added "hex" and "generic" bits 01/23/84 S. Herbst 2 8* Upped bound from 80 to 86 01/81/84 R. Gray 2 9* Upper bound from 86 to 87 JMAthane (for Pascal strings type dtype) 2 10**/ 2 11 2 12 2 13 /****^ HISTORY COMMENTS: 2 14* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 2 15* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 2 16* The data_type_info array now has 87 entries instead of 86 due to 2 17* introduction of pascal_string_type_dtype. 2 18* END HISTORY COMMENTS */ 2 19 2 20 dcl data_type_info_$version_number fixed bin external static; 2 21 dcl data_type_info_this_version fixed bin internal static options (constant) init (1); 2 22 2 23 dcl 1 data_type_info_$info (87) aligned external static, 2 24 2 computational bit (1) unal, 2 25 2 arithmetic bit (1) unal, 2 26 2 arithmetic_attributes unal, /* only valid if arithmetic */ 2 27 3 fixed bit (1) unal, /* PL/I type */ 2 28 3 complex bit (1) unal, /* PL/I mode */ 2 29 3 decimal bit (1) unal, /* PL/I base */ 2 30 3 signed bit (1) unal, 2 31 3 trailing_sign bit (1) unal, /* only valid if signed */ 2 32 3 decimal_attributes unal, /* only valid if decimal */ 2 33 4 packed_dec bit (1) unal, /* 4 bits per digit or 9 */ 2 34 4 digit_aligned bit (1) unal, /* valid for packed_dec only */ 2 35 4 overpunched bit (1) unal, 2 36 2 char_string bit (1) unal, /* valid for non-arithmetic */ 2 37 2 bit_string bit (1) unal, /* valid for non-arithmetic */ 2 38 2 varying bit (1) unal, /* for bit or char only */ 2 39 2 type bit (1) unal, /* this symbol is a type */ 2 40 2 hex bit (1) unal, /* a hexadecimal type (eg., hex floating point) */ 2 41 2 generic bit (1) unal, /* eg., real_flt_dec_generic_dtype */ 2 42 2 pad bit (20) unal; 2 43 2 44 dcl data_type_info_$ninebit_sign_chars char (2) external static; 2 45 dcl data_type_info_$ninebit_digit_chars char (10) external static; 2 46 dcl data_type_info_$ninebit_overpunched_sign_chars char (22) external static; 2 47 2 48 dcl data_type_info_$max_decimal_precision fixed bin external static; 2 49 dcl data_type_info_$max_float_binary_precision fixed bin external static; 2 50 dcl data_type_info_$max_fixed_binary_precision fixed bin external static; 2 51 2 52 2 53 /* END INCLUDE FILE ... data_type_info_.incl.pl1 */ 329 330 3 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 3 2* 3 3* 12 July 79 JRDavis */ 3 4 3 5 /* this is the format of the structure given to assign_$computational_ 3 6* that describes the data to be assigned */ 3 7 3 8 dcl 1 computational_data aligned based, 3 9 2 address ptr aligned, /* to data */ 3 10 2 data_type fixed bin (17), /* standard descriptor type */ 3 11 2 flags aligned, 3 12 3 packed bit (1) unal, 3 13 3 pad bit (35) unal, 3 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 3 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 3 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 3 17 3 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 331 332 333 end arg_assign_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1401.2 arg_assign_.pl1 >special_ldd>install>MR12.2-1184>arg_assign_.pl1 327 1 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 329 2 11/12/86 1748.0 data_type_info_.incl.pl1 >ldd>include>data_type_info_.incl.pl1 331 3 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.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. P_alp parameter pointer dcl 294 set ref 289 304* 309* P_arg_info parameter structure level 1 dcl 299 set ref 289 P_argno parameter fixed bin(17,0) dcl 294 set ref 289 304* 307* 309* STOP 000000 constant char(1) initial packed unaligned dcl 80 set ref 135* 146* 153* 175* 233* 270* 307* WHOAMI 000001 constant char(32) initial packed unaligned dcl 79 set ref 135* 146* 153* 175* 233* 270* addr builtin function dcl 84 ref 159 159 211 211 211 211 addrel builtin function dcl 84 ref 319 address 2 000160 automatic pointer level 3 in structure "from_arg" dcl 53 in procedure "arg_assign_" set ref 203 224 226 249 255 261 267* address 2 000146 automatic pointer level 3 in structure "to_arg" dcl 52 in procedure "arg_assign_" set ref 203 228 230 249 255 261 267* address 2 000134 automatic pointer level 3 in structure "arg2" dcl 51 in procedure "arg_assign_" set ref 156 159* address 2 parameter pointer level 3 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 304* 319* 319 address 2 000122 automatic pointer level 3 in structure "arg1" dcl 50 in procedure "arg_assign_" set ref 149 151 area_assign_ 000014 constant entry external dcl 60 ref 267 area_dtype constant fixed bin(17,0) initial dcl 1-25 ref 264 265 arg1 000122 automatic structure level 1 dcl 50 set ref 143* arg2 000134 automatic structure level 1 dcl 51 set ref 144* arg_assign_$to_arg 000016 constant entry external dcl 61 ref 282 arg_info based structure level 1 dcl 46 arithmetic 0(01) 000036 external static bit(1) array level 2 packed packed unaligned dcl 2-23 ref 153 assign_ 000020 constant entry external dcl 62 ref 159 assign_$computational_ 000022 constant entry external dcl 63 ref 211 based_entry based entry variable dcl 69 set ref 255* 255 based_file based file variable dcl 70 set ref 261* 261 based_integer based fixed bin(35,0) dcl 66 set ref 156 203* 203 based_label based label variable dcl 68 set ref 249* 249 based_packed_ptr based pointer packed unaligned dcl 67 set ref 149 224 228* based_ptr based pointer dcl 65 set ref 151 226 230* binary builtin function dcl 84 ref 159 caller_alp 000102 automatic pointer dcl 39 set ref 149* 151* 164* 169* caller_argno 000104 automatic fixed bin(17,0) dcl 40 set ref 156* 159 159 164* 169* check_sw 000101 automatic bit(1) dcl 37 set ref 94* 105* 116* 127* 135 135 135* 212 275 282 305 code 000111 automatic fixed bin(35,0) dcl 43 set ref 182* 188* 194* 211* 212 273* 282* 304* 305 307 307* comp_data 2 parameter structure level 2 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" comp_data 2 000122 automatic structure level 2 in structure "arg1" dcl 50 in procedure "arg_assign_" comp_data 2 000160 automatic structure level 2 in structure "from_arg" dcl 53 in procedure "arg_assign_" set ref 211 211 comp_data 2 000134 automatic structure level 2 in structure "arg2" dcl 51 in procedure "arg_assign_" comp_data 2 000146 automatic structure level 2 in structure "to_arg" dcl 52 in procedure "arg_assign_" set ref 211 211 computational 000036 external static bit(1) array level 2 packed packed unaligned dcl 2-23 ref 199 200 computational_data based structure level 1 dcl 3-8 conversion 000202 stack reference condition dcl 82 ref 192 200 215 222 247 253 259 265 279 cu_$arg_count 000024 constant entry external dcl 64 ref 132 cu_$arg_list_ptr 000026 constant entry external dcl 74 ref 139 cu_$arg_ptr_rel 000030 constant entry external dcl 75 ref 304 data_type 4 000122 automatic fixed bin(17,0) level 3 in structure "arg1" dcl 50 in procedure "arg_assign_" set ref 146 data_type 4 000160 automatic fixed bin(17,0) level 3 in structure "from_arg" dcl 53 in procedure "arg_assign_" set ref 200 203 222 233 247 253 259 265 270* data_type 4 parameter fixed bin(17,0) level 3 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 309* 319 data_type 4 000134 automatic fixed bin(17,0) level 3 in structure "arg2" dcl 51 in procedure "arg_assign_" set ref 153 156 159 data_type 4 000146 automatic fixed bin(17,0) level 3 in structure "to_arg" dcl 52 in procedure "arg_assign_" set ref 199 203 221 233 246 252 258 264 270* data_type_info_$info 000036 external static structure array level 1 dcl 2-23 decode_descriptor_ 000032 constant entry external dcl 76 ref 309 entry_dtype constant fixed bin(17,0) initial dcl 1-25 ref 252 253 error_table_$bad_conversion 000010 external static fixed bin(35,0) dcl 55 ref 182 188 194 error_table_$noarg 000012 external static fixed bin(35,0) dcl 55 ref 305 file_dtype constant fixed bin(17,0) initial dcl 1-25 ref 258 259 flags 5 000160 automatic structure level 3 in structure "from_arg" dcl 53 in procedure "arg_assign_" flags 5 000122 automatic structure level 3 in structure "arg1" dcl 50 in procedure "arg_assign_" flags 5 000134 automatic structure level 3 in structure "arg2" dcl 51 in procedure "arg_assign_" flags 5 000146 automatic structure level 3 in structure "to_arg" dcl 52 in procedure "arg_assign_" flags 5 parameter structure level 3 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 312* from_arg 000160 automatic structure level 1 dcl 53 set ref 164* 170* from_sw 000100 automatic bit(1) dcl 36 set ref 93* 104* 115* 126* 163 label_dtype constant fixed bin(17,0) initial dcl 1-25 ref 246 247 my_alp 000106 automatic pointer dcl 41 set ref 139* 143* 144* 165* 170* 282* my_arg_count 000110 automatic fixed bin(17,0) dcl 42 set ref 132* 135 135 myname 000112 automatic char(32) packed unaligned dcl 44 set ref 95* 106* 117* 128* 135* 146* 153* 175* 233* 307* ndims 000160 automatic fixed bin(17,0) level 2 in structure "from_arg" dcl 53 in procedure "arg_assign_" set ref 175 ndims 000134 automatic fixed bin(17,0) level 2 in structure "arg2" dcl 51 in procedure "arg_assign_" set ref 153 ndims 000146 automatic fixed bin(17,0) level 2 in structure "to_arg" dcl 52 in procedure "arg_assign_" set ref 175 ndims 000122 automatic fixed bin(17,0) level 2 in structure "arg1" dcl 50 in procedure "arg_assign_" set ref 146 ndims parameter fixed bin(17,0) level 2 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 309* null builtin function dcl 84 ref 135 146 153 175 233 270 307 314 offset_dtype constant fixed bin(17,0) initial dcl 1-25 ref 233 233 packed 5 000134 automatic bit(1) level 4 in structure "arg2" packed packed unaligned dcl 51 in procedure "arg_assign_" set ref 159 packed 5 000146 automatic bit(1) level 4 in structure "to_arg" packed packed unaligned dcl 52 in procedure "arg_assign_" set ref 228 packed 5 000122 automatic bit(1) level 4 in structure "arg1" packed packed unaligned dcl 50 in procedure "arg_assign_" set ref 149 packed 5 parameter bit(1) level 4 in structure "P_arg_info" packed packed unaligned dcl 299 in procedure "get_arg_info" set ref 313* packed 5 000160 automatic bit(1) level 4 in structure "from_arg" packed packed unaligned dcl 53 in procedure "arg_assign_" set ref 224 packed_bit 000224 automatic bit(1) dcl 301 set ref 309* 313 picture_image_ptr 10 parameter pointer level 3 dcl 299 set ref 314* pointer_dtype constant fixed bin(17,0) initial dcl 1-25 ref 146 221 222 prec_or_length 6 parameter fixed bin(24,0) level 3 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 309* prec_or_length 6 000134 automatic fixed bin(24,0) level 3 in structure "arg2" dcl 51 in procedure "arg_assign_" set ref 159 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 1-25 ref 156 159 203 203 scale 7 parameter fixed bin(35,0) level 3 in structure "P_arg_info" dcl 299 in procedure "get_arg_info" set ref 309* scale 7 000134 automatic fixed bin(35,0) level 3 in structure "arg2" dcl 51 in procedure "arg_assign_" set ref 159 size 000174 stack reference condition dcl 82 ref 180 277 string builtin function dcl 84 set ref 312* stringsize 000210 stack reference condition dcl 82 ref 186 278 sub_err_ 000034 constant entry external dcl 77 ref 135 146 153 175 233 270 307 temp_ptr 000172 automatic pointer dcl 72 set ref 224* 226* 228 230 to_arg 000146 automatic structure level 1 dcl 52 set ref 165* 169* varying 0(12) 000036 external static bit(1) array level 2 packed packed unaligned dcl 2-23 ref 319 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 1-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 1-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 1-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 1-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 1-25 bit_dtype internal static fixed bin(17,0) initial dcl 1-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 1-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 1-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 1-25 c_union_dtype internal static fixed bin(17,0) initial dcl 1-25 char_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 1-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 1-25 data_type_info_$max_decimal_precision external static fixed bin(17,0) dcl 2-48 data_type_info_$max_fixed_binary_precision external static fixed bin(17,0) dcl 2-50 data_type_info_$max_float_binary_precision external static fixed bin(17,0) dcl 2-49 data_type_info_$ninebit_digit_chars external static char(10) packed unaligned dcl 2-45 data_type_info_$ninebit_overpunched_sign_chars external static char(22) packed unaligned dcl 2-46 data_type_info_$ninebit_sign_chars external static char(2) packed unaligned dcl 2-44 data_type_info_$version_number external static fixed bin(17,0) dcl 2-20 data_type_info_this_version internal static fixed bin(17,0) initial dcl 2-21 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 1-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 1-125 ft_char_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 1-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 1-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 1-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 1-125 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 1-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 1-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 1-125 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 1-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 1-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 1-25 structure_dtype internal static fixed bin(17,0) initial dcl 1-25 varying_bit_dtype internal static fixed bin(17,0) initial dcl 1-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 1-25 NAMES DECLARED BY EXPLICIT CONTEXT. COMMON 000305 constant label dcl 132 ref 96 107 118 129 ERROR_RETURN 001362 constant label dcl 275 ref 183 189 195 212 305 arg_assign_ 000214 constant entry external dcl 17 arg_assign_$from_arg 000223 constant entry external dcl 88 arg_assign_$from_arg_check 000254 constant entry external dcl 110 arg_assign_$to_arg 000240 constant entry external dcl 99 arg_assign_$to_arg_check 000271 constant entry external dcl 121 get_arg_info 001416 constant entry internal dcl 289 ref 143 144 164 165 169 170 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2154 2214 1666 2164 Length 2504 1666 40 254 266 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME arg_assign_ 264 external procedure is an external procedure. on unit on line 180 64 on unit on unit on line 186 64 on unit on unit on line 192 64 on unit get_arg_info internal procedure shares stack frame of external procedure arg_assign_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME arg_assign_ 000100 from_sw arg_assign_ 000101 check_sw arg_assign_ 000102 caller_alp arg_assign_ 000104 caller_argno arg_assign_ 000106 my_alp arg_assign_ 000110 my_arg_count arg_assign_ 000111 code arg_assign_ 000112 myname arg_assign_ 000122 arg1 arg_assign_ 000134 arg2 arg_assign_ 000146 to_arg arg_assign_ 000160 from_arg arg_assign_ 000172 temp_ptr arg_assign_ 000224 packed_bit get_arg_info THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac tra_ext_1 signal_op enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. area_assign_ arg_assign_$to_arg assign_ assign_$computational_ cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel decode_descriptor_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. data_type_info_$info error_table_$bad_conversion error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000213 19 000221 88 000222 93 000230 94 000232 95 000233 96 000236 99 000237 104 000245 105 000246 106 000247 107 000252 110 000253 115 000261 116 000263 117 000264 118 000267 121 000270 126 000276 127 000277 128 000301 129 000304 132 000305 135 000314 139 000401 143 000410 144 000414 146 000420 149 000473 151 000505 153 000510 156 000565 159 000573 163 000635 164 000637 165 000641 166 000645 169 000646 170 000650 175 000654 180 000726 182 000742 183 000745 186 000750 188 000764 189 000767 192 000772 194 001006 195 001011 199 001014 200 001022 203 001031 211 001042 212 001061 215 001066 217 001071 221 001072 222 001075 224 001103 226 001115 228 001120 230 001132 231 001134 233 001135 246 001210 247 001213 249 001221 250 001227 252 001230 253 001232 255 001240 256 001246 258 001247 259 001251 261 001257 262 001265 264 001266 265 001270 267 001276 268 001307 270 001310 273 001361 275 001362 277 001365 278 001366 279 001367 282 001370 285 001415 289 001416 304 001420 305 001442 307 001451 309 001536 312 001563 313 001566 314 001572 319 001574 323 001605 ----------------------------------------------------------- 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