COMPILATION LISTING OF SEGMENT ioa_util_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1557.5 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added format control comment to make the source more readable. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 22 23 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 ioa_util_: 26 proc (P_code); 27 28 return; 29 30 /* * This procedure includes a small handful of entries for calling ioa_ in ways that ioa_ 31* * itself doesn't support. In particular, it provides an equivalent to ioa_$ioa_switch 32* * which operates on a supplied string and IOCB pointer, and also part of an arglist, 33* * much like ioa_$general_rs. */ 34 35 dcl ( 36 P_string_ptr pointer, 37 P_string_lth fixed bin (21), 38 P_arg_list_ptr pointer, 39 P_first_arg fixed bin, 40 P_output_switch pointer, 41 P_output_str char (*) varying, 42 P_code 43 ) parameter; 44 45 dcl (new_arg_list_ptr, old_arg_list_ptr) 46 pointer; 47 dcl (new_argno, new_arg_count) 48 fixed bin; 49 dcl (old_argno, old_arg_count) 50 fixed bin; 51 dcl output_lth fixed bin (21); 52 dcl output_switch pointer; 53 dcl ioa_entry entry variable options (variable); 54 dcl ioa_str_ptr pointer; 55 dcl (pad_sw, nl_sw, iocb_sw) 56 bit (1) aligned; 57 dcl code fixed bin (35); 58 dcl based_fb35 fixed bin (35) based; 59 dcl based_string_ptr pointer; 60 dcl based_string_lth fixed bin (21); 61 dcl based_string char (based_string_lth) 62 based (based_string_ptr); 63 64 dcl 1 new_arg_list aligned based (new_arg_list_ptr), 65 2 header, 66 ( 67 3 twice_nargs, 68 3 code, 69 3 twice_ndescs, 70 3 pad1 71 ) fixed bin (17) unaligned, 72 2 arg_ptr (new_arg_count) pointer aligned, 73 2 desc_ptr (new_arg_count) pointer aligned; 74 75 dcl 1 old_arg_list aligned based (old_arg_list_ptr), 76 2 header, 77 ( 78 3 twice_nargs, 79 3 code, 80 3 twice_ndescs, 81 3 pad1 82 ) fixed bin (17) unaligned, 83 2 arg_ptr (old_arg_count) pointer aligned, 84 2 desc_ptr (old_arg_count) pointer aligned; 85 86 dcl 1 descriptor aligned based, 87 2 version_2 bit (1) unaligned, 88 /* should be "1"b */ 89 2 type fixed bin (6) unsigned unaligned, 90 /* see std_descriptor_types.incl.pl1 for a list */ 91 2 packed bit (1) unaligned, 92 2 dimensions fixed bin (4) unsigned unaligned, 93 2 size fixed bin (24) unsigned unaligned; 94 95 dcl 1 arith_descriptor aligned based, 96 2 version_2 bit (1) unaligned, 97 2 type fixed bin (6) unsigned unaligned, 98 2 packed bit (1) unaligned, 99 2 dimensions fixed bin (4) unsigned unaligned, 100 2 scale fixed bin (11) unaligned, 101 2 precision fixed bin (11) unaligned; 102 103 dcl 1 ptr_desc aligned like arith_descriptor; 104 dcl 1 ioa_str_desc aligned like descriptor; 105 106 dcl ioa_$ioa_switch entry options (variable); 107 dcl ioa_$ioa_switch_nnl entry options (variable); 108 dcl ioa_$general_rs entry (pointer, fixed bin, fixed bin, char (*), 109 fixed bin (21), bit (1) aligned, 110 bit (1) aligned); 111 dcl cu_$generate_call entry (entry, pointer); 112 dcl cu_$grow_stack_frame entry (fixed bin (18), ptr, fixed bin (35)); 113 114 dcl iox_$user_output pointer external static; 115 116 dcl ioa_error condition; 117 118 dcl (addr, currentsize, divide, maxlength, null, substr, unspec) 119 builtin; 120 121 /* */ 122 123 ioa_util_$switch_with_string: 124 entry (P_string_ptr, P_string_lth, P_arg_list_ptr, P_first_arg, 125 P_output_switch); 126 127 pad_sw = "0"b; 128 nl_sw = "0"b; 129 iocb_sw = "1"b; 130 goto COMMON; 131 132 133 ioa_util_$switch_nnl_with_string: 134 entry (P_string_ptr, P_string_lth, P_arg_list_ptr, P_first_arg, 135 P_output_switch); 136 137 pad_sw = "0"b; 138 nl_sw = "1"b; 139 iocb_sw = "1"b; 140 goto COMMON; 141 142 143 ioa_util_$rs_with_string: 144 entry (P_string_ptr, P_string_lth, P_arg_list_ptr, P_first_arg, 145 P_output_str); 146 147 pad_sw = "0"b; 148 nl_sw = "0"b; 149 iocb_sw = "0"b; 150 goto COMMON; 151 152 153 ioa_util_$rsnnl_with_string: 154 entry (P_string_ptr, P_string_lth, P_arg_list_ptr, P_first_arg, 155 P_output_str); 156 157 pad_sw = "0"b; 158 nl_sw = "1"b; 159 iocb_sw = "0"b; 160 goto COMMON; 161 162 163 /* * First, figure out how big the new arg list will be, make room 164* * for it, and fill in the header */ 165 166 167 COMMON: 168 old_arg_list_ptr = P_arg_list_ptr; /* find out about arg list we've been given */ 169 old_arg_count = divide (old_arg_list.twice_nargs, 2, 17, 0); 170 171 new_arg_count = old_arg_count - P_first_arg + 1; 172 /* new_arg_count is now exactly number of args as */ 173 /* are in desired portion of old_arg_list */ 174 175 if iocb_sw 176 then /* if we have to put an IOCB pointer at the beginning, */ 177 new_arg_count = new_arg_count + 1; 178 /* make room for one more argument */ 179 new_arg_count = new_arg_count + 1; /* also increment it to make room for the ioa_ string */ 180 181 call cu_$grow_stack_frame (currentsize (new_arg_list), new_arg_list_ptr, 182 code); 183 if code ^= 0 184 then /* make room for the new arg list, then fill it in */ 185 signal ioa_error; /* a reasonablke thing to do, I think */ 186 187 new_arg_list.twice_nargs = 2 * new_arg_count; 188 /* fill in new arg list header */ 189 new_arg_list.twice_ndescs = 2 * new_arg_count; 190 new_arg_list.code = 4; /* Intersegment, external call type */ 191 new_arg_list.pad1 = 0; 192 193 194 /* * This next section of code constructs descriptors and sets various pointers 195* * which will be inserted into the newly created argument list */ 196 197 198 unspec (ioa_str_desc) = ""b; /* construct descriptor for ioa_ control string */ 199 ioa_str_desc.version_2 = "1"b; 200 ioa_str_desc.type = char_dtype; 201 ioa_str_desc.packed = "0"b; 202 ioa_str_desc.dimensions = 0; 203 ioa_str_desc.size = P_string_lth; /* length of ioa_ control string */ 204 205 ioa_str_ptr = P_string_ptr; /* pointer to input string */ 206 207 if iocb_sw then do; /* construct various stuff to describe the output IOCB */ 208 if P_output_switch ^= null () 209 then /* null IOCB pointer means user_output, of course */ 210 output_switch = P_output_switch; 211 else output_switch = iox_$user_output; 212 213 unspec (ptr_desc) = ""b; 214 ptr_desc.version_2 = "1"b; /* construct the descriptor for the IOCB pointer */ 215 ptr_desc.type = pointer_dtype; 216 ptr_desc.packed = "0"b; 217 ptr_desc.dimensions = 0; 218 ptr_desc.scale = 0; /* I don't know what scale and precision should be for */ 219 ptr_desc.precision = 72; /* a pointer, but hopefully my callee won't, either. */ 220 end; 221 222 223 /* * Now, fill in the argument pointers and descriptors in the new argument 224* * list -- for the entries which are designed to do output, an IOCB pointer 225* * must be inserted at the beginning */ 226 227 228 new_argno = 1; /* the current argno in the new arg list */ 229 230 if iocb_sw then do; 231 new_arg_list.arg_ptr (new_argno) = addr (output_switch); 232 new_arg_list.desc_ptr (new_argno) = addr (ptr_desc); 233 new_argno = new_argno + 1; /* so we'll start packing it at the right arg */ 234 end; 235 236 new_arg_list.arg_ptr (new_argno) = ioa_str_ptr; 237 new_arg_list.desc_ptr (new_argno) = addr (ioa_str_desc); 238 new_argno = new_argno + 1; /* now it's the index of the first arg to be copied into */ 239 240 old_argno = P_first_arg; /* now copy useful part of old arg list */ 241 242 do new_argno = new_argno to new_arg_count; 243 /* now go through all the ones that are left */ 244 new_arg_list.arg_ptr (new_argno) = old_arg_list.arg_ptr (old_argno); 245 new_arg_list.desc_ptr (new_argno) = old_arg_list.desc_ptr (old_argno); 246 old_argno = old_argno + 1; /* point at the next arg, and loop again */ 247 end; 248 249 250 /* * Now, we can finally call ioa_. We call ioa_$general_rs if we can, otherwise 251* * we have to call ioa_$ioa_switch or ioa_$ioa_switch_nnl */ 252 253 254 if iocb_sw then do; /* must call ioa_$ioa_switch directly, since there is nothing */ 255 if nl_sw 256 then /* like ioa_$general_rs for doing output */ 257 ioa_entry = ioa_$ioa_switch; 258 else ioa_entry = ioa_$ioa_switch_nnl; 259 call cu_$generate_call (ioa_entry, new_arg_list_ptr); 260 /* DO IT */ 261 end; 262 263 else do; /* for this, we perform complicated machinations */ 264 based_string_ptr = addr (substr (P_output_str, 1, 1)); 265 /* must fake a char (*) argument for ioa_$general_rs */ 266 based_string_lth = maxlength (P_output_str); 267 268 call ioa_$general_rs (new_arg_list_ptr, 269 1, /* note that control string is always first arg in new arglist */ 270 2, /* and that first ioa_ arg is always number 2 */ 271 based_string, output_lth, pad_sw, nl_sw); 272 273 addr (P_output_str) -> based_fb35 = output_lth; 274 /* KLUDGE to stick length back into varying string */ 275 end; 276 277 return; /* Goddamn, am I glad this is finally over */ 278 279 /* */ 280 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 */ 281 282 283 end; /* ioa_util_ external procedure */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1340.3 ioa_util_.pl1 >special_ldd>install>MR12.2-1184>ioa_util_.pl1 281 1 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. P_arg_list_ptr parameter pointer dcl 35 ref 123 133 143 153 167 P_code parameter fixed bin(17,0) dcl 35 ref 25 P_first_arg parameter fixed bin(17,0) dcl 35 ref 123 133 143 153 171 240 P_output_str parameter varying char dcl 35 set ref 143 153 264 266 273 P_output_switch parameter pointer dcl 35 ref 123 133 208 208 P_string_lth parameter fixed bin(21,0) dcl 35 ref 123 133 143 153 203 P_string_ptr parameter pointer dcl 35 ref 123 133 143 153 205 addr builtin function dcl 118 ref 231 232 237 264 273 arg_ptr 2 based pointer array level 2 in structure "new_arg_list" dcl 64 in procedure "ioa_util_" set ref 231* 236* 244* arg_ptr 2 based pointer array level 2 in structure "old_arg_list" dcl 75 in procedure "ioa_util_" ref 244 arith_descriptor based structure level 1 dcl 95 based_fb35 based fixed bin(35,0) dcl 58 set ref 273* based_string based char packed unaligned dcl 61 set ref 268* based_string_lth 000130 automatic fixed bin(21,0) dcl 60 set ref 266* 268 268 based_string_ptr 000126 automatic pointer dcl 59 set ref 264* 268 char_dtype constant fixed bin(17,0) initial dcl 1-25 ref 200 code 0(18) based fixed bin(17,0) level 3 in structure "new_arg_list" packed packed unaligned dcl 64 in procedure "ioa_util_" set ref 190* code 000125 automatic fixed bin(35,0) dcl 57 in procedure "ioa_util_" set ref 181* 183 cu_$generate_call 000016 constant entry external dcl 111 ref 259 cu_$grow_stack_frame 000020 constant entry external dcl 112 ref 181 currentsize builtin function dcl 118 ref 181 181 desc_ptr based pointer array level 2 in structure "old_arg_list" dcl 75 in procedure "ioa_util_" ref 245 desc_ptr based pointer array level 2 in structure "new_arg_list" dcl 64 in procedure "ioa_util_" set ref 232* 237* 245* descriptor based structure level 1 dcl 86 dimensions 0(08) 000131 automatic fixed bin(4,0) level 2 in structure "ptr_desc" packed packed unsigned unaligned dcl 103 in procedure "ioa_util_" set ref 217* dimensions 0(08) 000132 automatic fixed bin(4,0) level 2 in structure "ioa_str_desc" packed packed unsigned unaligned dcl 104 in procedure "ioa_util_" set ref 202* divide builtin function dcl 118 ref 169 header based structure level 2 in structure "new_arg_list" dcl 64 in procedure "ioa_util_" header based structure level 2 in structure "old_arg_list" dcl 75 in procedure "ioa_util_" ioa_$general_rs 000014 constant entry external dcl 108 ref 268 ioa_$ioa_switch 000010 constant entry external dcl 106 ref 255 ioa_$ioa_switch_nnl 000012 constant entry external dcl 107 ref 258 ioa_entry 000114 automatic entry variable dcl 53 set ref 255* 258* 259* ioa_error 000134 stack reference condition dcl 116 ref 183 ioa_str_desc 000132 automatic structure level 1 dcl 104 set ref 198* 237 ioa_str_ptr 000120 automatic pointer dcl 54 set ref 205* 236 iocb_sw 000124 automatic bit(1) dcl 55 set ref 129* 139* 149* 159* 175 207 230 254 iox_$user_output 000022 external static pointer dcl 114 ref 211 maxlength builtin function dcl 118 ref 266 new_arg_count 000105 automatic fixed bin(17,0) dcl 47 set ref 171* 175* 175 179* 179 181 181 181 181 187 189 232 237 242 245 new_arg_list based structure level 1 dcl 64 set ref 181 181 new_arg_list_ptr 000100 automatic pointer dcl 45 set ref 181 181 181* 187 189 190 191 231 232 236 237 244 245 259* 268* new_argno 000104 automatic fixed bin(17,0) dcl 47 set ref 228* 231 232 233* 233 236 237 238* 238 242* 242* 244 245* nl_sw 000123 automatic bit(1) dcl 55 set ref 128* 138* 148* 158* 255 268* null builtin function dcl 118 ref 208 old_arg_count 000107 automatic fixed bin(17,0) dcl 49 set ref 169* 171 245 old_arg_list based structure level 1 dcl 75 old_arg_list_ptr 000102 automatic pointer dcl 45 set ref 167* 169 244 245 old_argno 000106 automatic fixed bin(17,0) dcl 49 set ref 240* 244 245 246* 246 output_lth 000110 automatic fixed bin(21,0) dcl 51 set ref 268* 273 output_switch 000112 automatic pointer dcl 52 set ref 208* 211* 231 packed 0(07) 000131 automatic bit(1) level 2 in structure "ptr_desc" packed packed unaligned dcl 103 in procedure "ioa_util_" set ref 216* packed 0(07) 000132 automatic bit(1) level 2 in structure "ioa_str_desc" packed packed unaligned dcl 104 in procedure "ioa_util_" set ref 201* pad1 1(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 64 set ref 191* pad_sw 000122 automatic bit(1) dcl 55 set ref 127* 137* 147* 157* 268* pointer_dtype constant fixed bin(17,0) initial dcl 1-25 ref 215 precision 0(24) 000131 automatic fixed bin(11,0) level 2 packed packed unaligned dcl 103 set ref 219* ptr_desc 000131 automatic structure level 1 dcl 103 set ref 213* 232 scale 0(12) 000131 automatic fixed bin(11,0) level 2 packed packed unaligned dcl 103 set ref 218* size 0(12) 000132 automatic fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 104 set ref 203* substr builtin function dcl 118 ref 264 twice_nargs based fixed bin(17,0) level 3 in structure "old_arg_list" packed packed unaligned dcl 75 in procedure "ioa_util_" ref 169 twice_nargs based fixed bin(17,0) level 3 in structure "new_arg_list" packed packed unaligned dcl 64 in procedure "ioa_util_" set ref 187* twice_ndescs 1 based fixed bin(17,0) level 3 packed packed unaligned dcl 64 set ref 189* type 0(01) 000132 automatic fixed bin(6,0) level 2 in structure "ioa_str_desc" packed packed unsigned unaligned dcl 104 in procedure "ioa_util_" set ref 200* type 0(01) 000131 automatic fixed bin(6,0) level 2 in structure "ptr_desc" packed packed unsigned unaligned dcl 103 in procedure "ioa_util_" set ref 215* unspec builtin function dcl 118 set ref 198* 213* version_2 000131 automatic bit(1) level 2 in structure "ptr_desc" packed packed unaligned dcl 103 in procedure "ioa_util_" set ref 214* version_2 000132 automatic bit(1) level 2 in structure "ioa_str_desc" packed packed unaligned dcl 104 in procedure "ioa_util_" set ref 199* 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 area_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 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 entry_dtype internal static fixed bin(17,0) initial dcl 1-25 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 file_dtype internal static fixed bin(17,0) initial dcl 1-25 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 label_dtype internal static fixed bin(17,0) initial dcl 1-25 offset_dtype internal static fixed bin(17,0) initial dcl 1-25 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_dtype internal static fixed bin(17,0) initial dcl 1-25 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 000125 constant label dcl 167 ref 130 140 150 160 ioa_util_ 000016 constant entry external dcl 25 ioa_util_$rs_with_string 000064 constant entry external dcl 143 ioa_util_$rsnnl_with_string 000105 constant entry external dcl 153 ioa_util_$switch_nnl_with_string 000045 constant entry external dcl 133 ioa_util_$switch_with_string 000031 constant entry external dcl 123 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 716 742 501 726 Length 1156 501 24 200 214 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ioa_util_ 142 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ioa_util_ 000100 new_arg_list_ptr ioa_util_ 000102 old_arg_list_ptr ioa_util_ 000104 new_argno ioa_util_ 000105 new_arg_count ioa_util_ 000106 old_argno ioa_util_ 000107 old_arg_count ioa_util_ 000110 output_lth ioa_util_ 000112 output_switch ioa_util_ 000114 ioa_entry ioa_util_ 000120 ioa_str_ptr ioa_util_ 000122 pad_sw ioa_util_ 000123 nl_sw ioa_util_ 000124 iocb_sw ioa_util_ 000125 code ioa_util_ 000126 based_string_ptr ioa_util_ 000130 based_string_lth ioa_util_ 000131 ptr_desc ioa_util_ 000132 ioa_str_desc ioa_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac signal_op ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$generate_call cu_$grow_stack_frame ioa_$general_rs ioa_$ioa_switch ioa_$ioa_switch_nnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 25 000013 28 000023 123 000024 127 000036 128 000037 129 000040 130 000042 133 000043 137 000052 138 000053 139 000055 140 000056 143 000057 147 000077 148 000100 149 000101 150 000102 153 000103 157 000120 158 000121 159 000123 160 000124 167 000125 169 000131 171 000135 175 000140 179 000143 181 000144 183 000165 187 000172 189 000176 190 000202 191 000204 198 000206 199 000207 200 000211 201 000215 202 000217 203 000223 205 000226 207 000231 208 000233 211 000243 213 000247 214 000250 215 000252 216 000256 217 000260 218 000264 219 000266 228 000270 230 000272 231 000274 232 000277 233 000306 236 000307 237 000312 238 000321 240 000322 242 000324 244 000333 245 000342 246 000362 247 000363 254 000365 255 000367 258 000400 259 000405 261 000415 264 000416 266 000421 268 000423 273 000470 277 000474 ----------------------------------------------------------- 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