COMPILATION LISTING OF SEGMENT arithmetic_to_ascii_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1528.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* 12* Modified in July 1977 by R.J.C. Kissel to handle new data types. When any_to_any_ is 13* updated to handle all data types, all references to probe_assign_ should be changed to references 14* to assign_ and probe_assign_ and probe_convert_ should be deleted. 15* Modified 11 Apr 79 JRDavis for proper handling of unaligned dec -use data_type_info_ 16* Modified 20 June 79 JRDavis to use assign_$computational_ instead of probe_assign_ 17* Modified 2 Feb 84 JRGray to use generic_decimal types and to remove call to numeric_to_ascii_ 18**/ 19 arithmetic_to_ascii_: proc (p, type, packed, precision, scale, ans); 20 21 dcl p ptr parameter, /* input: to the arithmetic data to convert */ 22 type fixed bin parameter, /* input: data type of the input: data */ 23 packed bit (1) aligned parameter, /* input: is it packed? */ 24 precision fixed bin parameter, /* input: precision of the data */ 25 scale fixed bin parameter, /* input: scale factor (if fixed) */ 26 ans char (132) varying parameter; /* output: ASCII rep of data */ 27 28 dcl 01 generic_decimal_struc aligned based, 29 02 exponent fixed bin(35) aligned, 30 02 sign char(1) unaligned, 31 02 mantissa char(k) unaligned; 32 33 dcl 01 number aligned based(addr(number_block)), /* temp to convert all types to */ 34 02 (real, imaginary) like generic_decimal_struc aligned; 35 36 dcl number_block bit(36 * 32) aligned; /* storage for temporary */ 37 38 dcl k fixed bin; 39 dcl 1 src_str aligned like computational_data; 40 dcl 1 tar_str aligned like computational_data; 41 dcl code fixed bin (35); 42 43 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 44 dcl (addr, ceil, char, copy, divide, hbound, length, ltrim, null, rtrim, substr) builtin; 45 46 if type < 1 | type > hbound (data_type_info_$info, 1) /* bad data type */ 47 then do; 48 ans = "(bad data type)"; 49 return; 50 end; 51 52 if ^data_type_info_$info (type).arithmetic /* not arithmetic type */ 53 then do; 54 ans = "(not arithmetic type)"; 55 return; 56 end; 57 58 /* Get decimal precision corresponding to input 59* Note: assign_$computational will take care of rounding/truncation */ 60 61 if precision < 1 then k = data_type_info_$max_decimal_precision; 62 else if data_type_info_$info (type).decimal then k = precision; 63 else k = ceil (divide (precision * 100, 332, 17, 0)) + 1; 64 65 /* convert to internal storage - complex generic dec */ 66 tar_str.address = addr (number_block); 67 tar_str.data_type = cplx_flt_dec_generic_dtype; 68 tar_str.flags = "0"b; 69 tar_str.prec_or_length = k; 70 tar_str.scale = 0; 71 tar_str.picture_image_ptr = null (); /* superfluous, but be safe */ 72 73 src_str.address = p; 74 src_str.data_type = type; 75 src_str.flags = "0"b; 76 src_str.packed = packed; 77 src_str.prec_or_length = precision; 78 src_str.scale = scale; 79 80 /* let assign_$computational_ do rounding/truncation */ 81 call assign_$computational_ (addr (tar_str), addr (src_str), code); 82 83 ans = ltrim(simplify(addr(number.real), k), "+"); 84 if data_type_info_$info (type).complex /* has complex part */ 85 then ans = ans || simplify (addr(number.imaginary), k) || "i"; 86 return; 87 88 /* simplify returns a compact form of a generic number. 89* Note: simplify leaves on the sign "+" or "-" */ 90 91 simplify: proc(NUMBER_ptr, precision) returns(char(72) varying); 92 dcl (NUMBER_ptr, number_ptr) ptr; 93 dcl 01 number aligned based(number_ptr), 94 02 exponent fixed bin(35), 95 02 sign char(1) unaligned, 96 02 mantissa char(precision) unaligned; 97 98 dcl mantissa char(72) varying; 99 dcl exponent fixed bin(35); 100 dcl (precision, digits) fixed bin; 101 102 /* force normalization */ 103 number_ptr = NUMBER_ptr; 104 mantissa = ltrim(number.mantissa, "0"); 105 if mantissa="" then return("+0"); 106 exponent = number.exponent + length(mantissa) -1; 107 mantissa = rtrim(mantissa, "0"); 108 digits = length(mantissa); 109 110 if 2-exponent > precision | exponent+1 > precision /* exponential form */ 111 then return(sign || substr(mantissa, 1, 1) || rtrim("." || substr(mantissa, 2), ".") 112 || "e" || ltrim(char(exponent)) ); 113 114 /* use real form */ 115 if exponent < 0 then return(sign || "0." || copy("0", -exponent-1) || mantissa); 116 if exponent+1 >= digits then return(sign || mantissa || copy("0", exponent-digits+1)); 117 return(sign || substr(mantissa, 1, exponent+1) || "." || substr(mantissa, exponent+2)); 118 end simplify; 119 1 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 1 2* 1 3* 12 July 79 JRDavis */ 1 4 1 5 /* this is the format of the structure given to assign_$computational_ 1 6* that describes the data to be assigned */ 1 7 1 8 dcl 1 computational_data aligned based, 1 9 2 address ptr aligned, /* to data */ 1 10 2 data_type fixed bin (17), /* standard descriptor type */ 1 11 2 flags aligned, 1 12 3 packed bit (1) unal, 1 13 3 pad bit (35) unal, 1 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 1 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 1 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 1 17 1 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 120 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 */ 121 3 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 3 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 3 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 3 8* Objects of this type are PASCAL string types. 3 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 3 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 3 11* Added the new C types. 3 12* END HISTORY COMMENTS */ 3 13 3 14 /* This include file defines mnemonic names for the Multics 3 15* standard descriptor types, using both pl1 and cobol terminology. 3 16* PG 780613 3 17* JRD 790530 3 18* JRD 791016 3 19* MBW 810731 3 20* TGO 830614 Add hex types. 3 21* Modified June 83 JMAthane to add PASCAL data types 3 22* TGO 840120 Add float dec extended and generic, float binary generic 3 23**/ 3 24 3 25 dcl (real_fix_bin_1_dtype init (1), 3 26 real_fix_bin_2_dtype init (2), 3 27 real_flt_bin_1_dtype init (3), 3 28 real_flt_bin_2_dtype init (4), 3 29 cplx_fix_bin_1_dtype init (5), 3 30 cplx_fix_bin_2_dtype init (6), 3 31 cplx_flt_bin_1_dtype init (7), 3 32 cplx_flt_bin_2_dtype init (8), 3 33 real_fix_dec_9bit_ls_dtype init (9), 3 34 real_flt_dec_9bit_dtype init (10), 3 35 cplx_fix_dec_9bit_ls_dtype init (11), 3 36 cplx_flt_dec_9bit_dtype init (12), 3 37 pointer_dtype init (13), 3 38 offset_dtype init (14), 3 39 label_dtype init (15), 3 40 entry_dtype init (16), 3 41 structure_dtype init (17), 3 42 area_dtype init (18), 3 43 bit_dtype init (19), 3 44 varying_bit_dtype init (20), 3 45 char_dtype init (21), 3 46 varying_char_dtype init (22), 3 47 file_dtype init (23), 3 48 real_fix_dec_9bit_ls_overp_dtype init (29), 3 49 real_fix_dec_9bit_ts_overp_dtype init (30), 3 50 real_fix_bin_1_uns_dtype init (33), 3 51 real_fix_bin_2_uns_dtype init (34), 3 52 real_fix_dec_9bit_uns_dtype init (35), 3 53 real_fix_dec_9bit_ts_dtype init (36), 3 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 3 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 3 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 3 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 3 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 3 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 3 60 real_flt_dec_4bit_bytealigned_dtype init (44), 3 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 3 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 3 63 real_flt_hex_1_dtype init (47), 3 64 real_flt_hex_2_dtype init (48), 3 65 cplx_flt_hex_1_dtype init (49), 3 66 cplx_flt_hex_2_dtype init (50), 3 67 c_typeref_dtype init (54), 3 68 c_enum_dtype init (55), 3 69 c_enum_const_dtype init (56), 3 70 c_union_dtype init (57), 3 71 algol68_straight_dtype init (59), 3 72 algol68_format_dtype init (60), 3 73 algol68_array_descriptor_dtype init (61), 3 74 algol68_union_dtype init (62), 3 75 3 76 cobol_comp_6_dtype init (1), 3 77 cobol_comp_7_dtype init (1), 3 78 cobol_display_ls_dtype init (9), 3 79 cobol_structure_dtype init (17), 3 80 cobol_char_string_dtype init (21), 3 81 cobol_display_ls_overp_dtype init (29), 3 82 cobol_display_ts_overp_dtype init (30), 3 83 cobol_display_uns_dtype init (35), 3 84 cobol_display_ts_dtype init (36), 3 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 3 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 3 87 cobol_comp_5_uns_dtype init (40), 3 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 3 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 3 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 3 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 3 92 cplx_flt_dec_generic_dtype init (84), 3 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 3 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 3 95 3 96 dcl (ft_integer_dtype init (1), 3 97 ft_real_dtype init (3), 3 98 ft_double_dtype init (4), 3 99 ft_complex_dtype init (7), 3 100 ft_complex_double_dtype init (8), 3 101 ft_external_dtype init (16), 3 102 ft_logical_dtype init (19), 3 103 ft_char_dtype init (21), 3 104 ft_hex_real_dtype init (47), 3 105 ft_hex_double_dtype init (48), 3 106 ft_hex_complex_dtype init (49), 3 107 ft_hex_complex_double_dtype init (50) 3 108 ) fixed bin internal static options (constant); 3 109 3 110 dcl (algol68_short_int_dtype init (1), 3 111 algol68_int_dtype init (1), 3 112 algol68_long_int_dtype init (2), 3 113 algol68_real_dtype init (3), 3 114 algol68_long_real_dtype init (4), 3 115 algol68_compl_dtype init (7), 3 116 algol68_long_compl_dtype init (8), 3 117 algol68_bits_dtype init (19), 3 118 algol68_bool_dtype init (19), 3 119 algol68_char_dtype init (21), 3 120 algol68_byte_dtype init (21), 3 121 algol68_struct_struct_char_dtype init (22), 3 122 algol68_struct_struct_bool_dtype init (20) 3 123 ) fixed bin internal static options (constant); 3 124 3 125 dcl (label_constant_runtime_dtype init (24), 3 126 int_entry_runtime_dtype init (25), 3 127 ext_entry_runtime_dtype init (26), 3 128 ext_procedure_runtime_dtype init (27), 3 129 picture_runtime_dtype init (63) 3 130 ) fixed bin internal static options (constant); 3 131 3 132 dcl (pascal_integer_dtype init (1), 3 133 pascal_real_dtype init (4), 3 134 pascal_label_dtype init (24), 3 135 pascal_internal_procedure_dtype init (25), 3 136 pascal_exportable_procedure_dtype init (26), 3 137 pascal_imported_procedure_dtype init (27), 3 138 pascal_typed_pointer_type_dtype init (64), 3 139 pascal_char_dtype init (65), 3 140 pascal_boolean_dtype init (66), 3 141 pascal_record_file_type_dtype init (67), 3 142 pascal_record_type_dtype init (68), 3 143 pascal_set_dtype init (69), 3 144 pascal_enumerated_type_dtype init (70), 3 145 pascal_enumerated_type_element_dtype init (71), 3 146 pascal_enumerated_type_instance_dtype init (72), 3 147 pascal_user_defined_type_dtype init (73), 3 148 pascal_user_defined_type_instance_dtype init (74), 3 149 pascal_text_file_dtype init (75), 3 150 pascal_procedure_type_dtype init (76), 3 151 pascal_variable_formal_parameter_dtype init (77), 3 152 pascal_value_formal_parameter_dtype init (78), 3 153 pascal_entry_formal_parameter_dtype init (79), 3 154 pascal_parameter_procedure_dtype init (80), 3 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 3 156 3 157 3 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 122 123 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1400.3 arithmetic_to_ascii_.pl1 >special_ldd>install>MR12.2-1184>arithmetic_to_ascii_.pl1 120 1 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.incl.pl1 121 2 11/12/86 1748.0 data_type_info_.incl.pl1 >ldd>include>data_type_info_.incl.pl1 122 3 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. NUMBER_ptr parameter pointer dcl 92 ref 91 103 addr builtin function dcl 44 ref 66 81 81 81 81 83 83 83 83 84 84 84 84 address 000142 automatic pointer level 2 in structure "src_str" dcl 39 in procedure "arithmetic_to_ascii_" set ref 73* address 000152 automatic pointer level 2 in structure "tar_str" dcl 40 in procedure "arithmetic_to_ascii_" set ref 66* ans parameter varying char(132) dcl 21 set ref 19 48* 54* 83* 84* 84 arithmetic 0(01) 000012 external static bit(1) array level 2 packed packed unaligned dcl 2-23 ref 52 arithmetic_attributes 0(02) 000012 external static structure array level 2 packed packed unaligned dcl 2-23 assign_$computational_ 000010 constant entry external dcl 43 ref 81 ceil builtin function dcl 44 ref 63 char builtin function dcl 44 ref 110 code 000162 automatic fixed bin(35,0) dcl 41 set ref 81* complex 0(03) 000012 external static bit(1) array level 3 packed packed unaligned dcl 2-23 ref 84 computational_data based structure level 1 dcl 1-8 copy builtin function dcl 44 ref 115 116 cplx_flt_dec_generic_dtype constant fixed bin(17,0) initial dcl 3-25 ref 67 data_type 2 000152 automatic fixed bin(17,0) level 2 in structure "tar_str" dcl 40 in procedure "arithmetic_to_ascii_" set ref 67* data_type 2 000142 automatic fixed bin(17,0) level 2 in structure "src_str" dcl 39 in procedure "arithmetic_to_ascii_" set ref 74* data_type_info_$info 000012 external static structure array level 1 dcl 2-23 ref 46 data_type_info_$max_decimal_precision 000014 external static fixed bin(17,0) dcl 2-48 ref 61 decimal 0(04) 000012 external static bit(1) array level 3 packed packed unaligned dcl 2-23 ref 62 digits 000220 automatic fixed bin(17,0) dcl 100 set ref 108* 116 116 divide builtin function dcl 44 ref 63 exponent 000217 automatic fixed bin(35,0) dcl 99 in procedure "simplify" set ref 106* 110 110 110 115 115 116 116 117 117 exponent based fixed bin(35,0) level 2 in structure "number" dcl 93 in procedure "simplify" ref 106 flags 3 000152 automatic structure level 2 in structure "tar_str" dcl 40 in procedure "arithmetic_to_ascii_" set ref 68* flags 3 000142 automatic structure level 2 in structure "src_str" dcl 39 in procedure "arithmetic_to_ascii_" set ref 75* generic_decimal_struc based structure level 1 dcl 28 hbound builtin function dcl 44 ref 46 imaginary based structure level 2 dcl 33 set ref 84 84 k 000140 automatic fixed bin(17,0) dcl 38 set ref 61* 62* 63* 69 83* 84 84 84* length builtin function dcl 44 ref 106 108 ltrim builtin function dcl 44 ref 83 104 110 mantissa 000174 automatic varying char(72) dcl 98 in procedure "simplify" set ref 104* 105 106 107* 107 108 110 110 115 116 117 117 mantissa 1(09) based char level 2 in structure "number" packed packed unaligned dcl 93 in procedure "simplify" ref 104 null builtin function dcl 44 ref 71 number based structure level 1 dcl 33 in procedure "arithmetic_to_ascii_" number based structure level 1 dcl 93 in procedure "simplify" number_block 000100 automatic bit(1152) dcl 36 set ref 66 83 83 84 84 number_ptr 000172 automatic pointer dcl 92 set ref 103* 104 106 110 115 116 117 p parameter pointer dcl 21 ref 19 73 packed parameter bit(1) dcl 21 in procedure "arithmetic_to_ascii_" ref 19 76 packed 3 000142 automatic bit(1) level 3 in structure "src_str" packed packed unaligned dcl 39 in procedure "arithmetic_to_ascii_" set ref 76* picture_image_ptr 6 000152 automatic pointer level 2 dcl 40 set ref 71* prec_or_length 4 000152 automatic fixed bin(24,0) level 2 in structure "tar_str" dcl 40 in procedure "arithmetic_to_ascii_" set ref 69* prec_or_length 4 000142 automatic fixed bin(24,0) level 2 in structure "src_str" dcl 39 in procedure "arithmetic_to_ascii_" set ref 77* precision parameter fixed bin(17,0) dcl 100 in procedure "simplify" ref 91 104 110 110 precision parameter fixed bin(17,0) dcl 21 in procedure "arithmetic_to_ascii_" ref 19 61 62 63 77 real based structure level 2 dcl 33 set ref 83 83 rtrim builtin function dcl 44 ref 107 110 scale parameter fixed bin(17,0) dcl 21 in procedure "arithmetic_to_ascii_" ref 19 78 scale 5 000152 automatic fixed bin(35,0) level 2 in structure "tar_str" dcl 40 in procedure "arithmetic_to_ascii_" set ref 70* scale 5 000142 automatic fixed bin(35,0) level 2 in structure "src_str" dcl 39 in procedure "arithmetic_to_ascii_" set ref 78* sign 1 based char(1) level 2 packed packed unaligned dcl 93 ref 110 115 116 117 src_str 000142 automatic structure level 1 dcl 39 set ref 81 81 substr builtin function dcl 44 ref 110 110 117 117 tar_str 000152 automatic structure level 1 dcl 40 set ref 81 81 type parameter fixed bin(17,0) dcl 21 ref 19 46 46 52 62 74 84 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 3-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 3-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 3-25 area_dtype internal static fixed bin(17,0) initial dcl 3-25 bit_dtype internal static fixed bin(17,0) initial dcl 3-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 3-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 3-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 3-25 c_union_dtype internal static fixed bin(17,0) initial dcl 3-25 char_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 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 entry_dtype internal static fixed bin(17,0) initial dcl 3-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 file_dtype internal static fixed bin(17,0) initial dcl 3-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 3-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 3-96 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 label_dtype internal static fixed bin(17,0) initial dcl 3-25 offset_dtype internal static fixed bin(17,0) initial dcl 3-25 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 3-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 3-125 pointer_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 3-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 3-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 3-25 structure_dtype internal static fixed bin(17,0) initial dcl 3-25 varying_bit_dtype internal static fixed bin(17,0) initial dcl 3-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 3-25 NAMES DECLARED BY EXPLICIT CONTEXT. arithmetic_to_ascii_ 000030 constant entry external dcl 19 simplify 000267 constant entry internal dcl 91 ref 83 84 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1074 1112 1012 1104 Length 1350 1012 16 222 62 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME arithmetic_to_ascii_ 204 external procedure is an external procedure. simplify internal procedure shares stack frame of external procedure arithmetic_to_ascii_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME arithmetic_to_ascii_ 000100 number_block arithmetic_to_ascii_ 000140 k arithmetic_to_ascii_ 000142 src_str arithmetic_to_ascii_ 000152 tar_str arithmetic_to_ascii_ 000162 code arithmetic_to_ascii_ 000172 number_ptr simplify 000174 mantissa simplify 000217 exponent simplify 000220 digits simplify THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_$computational_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. data_type_info_$info data_type_info_$max_decimal_precision LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000022 46 000035 48 000043 49 000051 52 000052 54 000056 55 000064 61 000065 62 000073 63 000101 66 000105 67 000107 68 000111 69 000115 70 000117 71 000120 73 000122 74 000125 75 000127 76 000133 77 000137 78 000141 81 000143 83 000161 84 000211 86 000265 91 000267 103 000271 104 000274 105 000316 106 000331 107 000340 108 000356 110 000360 115 000535 116 000624 117 000706 ----------------------------------------------------------- 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