COMPILATION LISTING OF SEGMENT convert_tsoapl_ws Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/24/84 1336.5 mst Mon Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 /* format: style3 */ 11 convert_tsoapl_ws: 12 ctw: 13 procedure; 14 15 /* Written by Bernard Greenberg, from display_aplsv_ws.pl1, 10/77 */ 16 /* Modified 771121 by PG to cleanup error handling and aborting. */ 17 /* Modified 771207 by PG to convert library_number and man_number */ 18 /* Modified 771209 by PG to make vput quick */ 19 /* Modified 771212 by PG to fix bug that was reversing vectors in functions, and speed up function 20* converter by processing only lines backwards, not the whole function. */ 21 /* Modified 771230 by PG to fix bug in which we forgot to use cv_fb17 on a 360 number. */ 22 /* Modified 771230 by PG to fix bug in fix of 771212...integers and floats were getting reversed. */ 23 /* Modified 781005 by PG to fix bug 347 in declaration of function line offsets, and to fix bug 346 whereby symbol_bead 24* for groups never pointed to the group_bead! 25* Modified 800212 by PG to fix 450 (unknown symbol types got counted in num_symbols, but not converted). 26* Modified 800227 by PG to add -relock_functions control argument. 27* Modified 840907 by C Spitzer. correct length of format string passed to dump_segment_ 28**/ 29 30 /* Ideas: 31* 1. All error messages should include name of ws. 32* 2. Option to suppress "too small/too large" msg. 33* 3. "Too small/too large" msg should give context (var name or fcn line number). 34**/ 35 36 /* automatic */ 37 38 dcl arg_len fixed bin (21), 39 arg_number fixed bin, 40 arg_ptr ptr, 41 bitcount fixed bin (24), 42 code fixed bin (35), 43 curr_component fixed bin, 44 curr_seglen fixed bin (18), 45 dname char (168), 46 ename char (32), 47 ename1 char (32), 48 ename2 char (32), 49 fcbp ptr, 50 idx fixed bin, 51 inpath_arg_len fixed bin (21), 52 inpath_arg_ptr ptr, 53 num_symbols fixed bin, 54 number_of_ptrs fixed bin, 55 outpath_arg_len fixed bin (21), 56 outpath_arg_ptr ptr, 57 pathx fixed bin, 58 q (3) ptr init ((3) null ()), 59 qr13stk fixed bin, 60 qsymbot fixed bin, 61 relock_functions bit (1) aligned, 62 saved_bead_table_ptr 63 ptr, 64 segptrs (0:15) ptr, 65 s360_trtblptr ptr, 66 suspbarf bit (1) aligned, 67 sx fixed bin, 68 symbolx fixed bin, 69 symtab_len fixed bin, 70 ten_digits picture "(9)z9", 71 this_rho fixed bin, 72 type bit (9) aligned; 73 74 /* internal static */ 75 76 dcl MaxSegSize fixed binary (21) internal static initial (65535); 77 /* used to be in apl_number_data.incl.pl1 */ 78 79 /* based */ 80 81 dcl arg_string char (arg_len) based (arg_ptr), 82 inpath char (inpath_arg_len) based (inpath_arg_ptr), 83 outpath char (outpath_arg_len) based (outpath_arg_ptr), 84 s360_trtbl (0:99999) fixed bin (21) based (s360_trtblptr), 85 saved_bead_table (saved_bead_count) ptr unal based (saved_bead_table_ptr); 86 87 /* builtins */ 88 89 dcl (abs, addr, addrel, baseno, baseptr, bin, binary, bit, copy, divide, fixed, length, ltrim, maxlength, mod, null, 90 ptr, rel, size, string, substr, unspec) 91 builtin; 92 93 /* conditions */ 94 95 dcl cleanup condition; 96 97 /* entries */ 98 99 dcl com_err_ entry options (variable), 100 (get_temp_segments_, release_temp_segments_) 101 entry (char (*), (*) ptr, fixed bin (35)), 102 convert_date_to_binary_ 103 entry (char (*), fixed bin (71), fixed bin (35)), 104 apl_zcode_to_ascii_ entry (char (*), char (*)), 105 dump_segment_ entry (ptr, ptr, fixed bin, fixed bin, fixed bin, bit (*)), 106 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 107 delete_$path entry (char (*), char (*), bit (6), char (*), fixed bin (35)), 108 expand_pathname_$add_suffix 109 entry (char (*), char (*), char (*), char (*), fixed bin (35)), 110 get_equal_name_ entry (char (*), char (*), char (32), fixed bin (35)), 111 hcs_$initiate_count entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), ptr, fixed bin (35)), 112 hcs_$terminate_noname 113 entry (ptr, fixed bin (35)), 114 hcs_$truncate_seg entry (ptr, fixed bin (18), fixed bin (35)), 115 ioa_ entry options (variable), 116 ioa_$nnl entry options (variable), 117 ioa_$rsnnl entry options (variable), 118 msf_manager_$open entry (char (*), char (*), ptr, fixed bin (35)), 119 msf_manager_$get_ptr 120 entry (ptr, fixed bin, bit (1), ptr, fixed bin (24), fixed bin (35)), 121 msf_manager_$adjust entry (ptr, fixed bin, fixed bin (24), bit (3), fixed bin (35)), 122 msf_manager_$close entry (ptr); 123 124 /* external static */ 125 126 dcl ( 127 error_table_$badopt fixed bin (35), 128 error_table_$too_many_args 129 fixed bin (35), 130 iox_$user_output ptr 131 ) external static; 132 133 /* internal static */ 134 135 dcl myname char (17) internal static initial ("convert_tsoapl_ws") options (constant); 136 dcl EQUALS char (1) unal internal static initial ("=") options (constant); 137 dcl NL char (1) varying internal static options (constant) init (" 138 "); 139 140 /* include files */ 141 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_number_data.incl.pl1 ================================== */ 1 2 1 3 /* 1 4* This include file contains information about the machine representation of numbers. 1 5* In all programs numbers should simply be declared 'float'. 1 6* All default statements should be in this include file. 1 7* 1 8* This is the binary version. The manifest constant Binary should be used by programs 1 9* that need to know whether we are using binary or decimal. 1 10* */ 1 11 1 12 /* format: style3,initlm0,idind30 */ 1 13 1 14 default (float & ^decimal & ^binary & ^precision & ^constant) float binary (63); 1 15 1 16 declare ( 1 17 TheBiggestNumberWeveGot float initial (0.1701411834604692317e+39), 1 18 TheSmallestNumberWeveGot float initial (.1469367938527859385e-38), 1 19 Binary bit (1) aligned initial ("1"b) 1 20 ) internal static options (constant); 1 21 1 22 /* Number of characters in a number datum entry; used for copying float number arrays as strings. 1 23* (Obsolete! use array copies!) */ 1 24 1 25 declare NumberSize fixed binary precision (4) internal static initial (8); 1 26 1 27 /* ------ END INCLUDE SEGMENT apl_number_data.incl.pl1 ---------------------------------- */ 142 2 1 /* BEGIN INCLUDE FILE ... tsoapl_dcls.incl.pl1 ... Written by PG and BSG 10/77 */ 2 2 2 3 /* automatic */ 2 4 2 5 dcl (aplsv_ws_ptr, aplsv_symtab_ptr, symptr, aplsv_function_ptr, aplsv_value_ptr, code_ptr) ptr; 2 6 dcl (aplsv_group_ptr) ptr; 2 7 dcl symlen fixed bin (21); 2 8 dcl symtbep ptr; 2 9 dcl array_ptr ptr, 2 10 data_elements fixed bin, 2 11 code_len fixed bin; 2 12 2 13 /* based */ 2 14 2 15 dcl 1 aplsv_ws based (aplsv_ws_ptr) aligned, 2 16 2 pad1 (32) bit (36), 2 17 2 qr13stk bit (36), 2 18 2 qsymbot bit (36), 2 19 2 mx bit (36), 2 20 2 svi bit (36), 2 21 2 pad2 (21) bit (36), 2 22 2 library_number bit (36), 2 23 2 wsname aligned, 2 24 3 len fixed bin (8) unal, 2 25 3 chars char (11) unal, 2 26 2 man_number bit (36), 2 27 2 password char (8) unal, /* encoded */ 2 28 2 date_saved char (8) unal, 2 29 2 time_saved bit (36), /* in 1/300 secs since date */ 2 30 2 pad4 (8) bit (36), 2 31 2 fuzz bit (36), 2 32 2 pad5 (2) bit (36), 2 33 2 index_origin bit (36), 2 34 2 seed bit (36), 2 35 2 pad6 (5) bit (36), 2 36 2 digits bit (36), 2 37 2 pad7 (126) bit (36), 2 38 2 printing_width bit (18) unal; 2 39 2 40 dcl 1 aplsv_symtab (1:1024) aligned based (aplsv_symtab_ptr), 2 41 2 type bit (9) unal, 2 42 2 value_offset bit (27) unal, 2 43 2 size fixed bin (8) unal, 2 44 2 name_or_offset bit (27) unal; 2 45 2 46 dcl 1 symbol_struc aligned based (symptr), 2 47 2 pad bit (36) unal, 2 48 2 size fixed bin (8) unal, 2 49 2 name char (1 refer (symbol_struc.size)) unal; 2 50 2 51 dcl 1 symtbe aligned based (symtbep) like aplsv_symtab; 2 52 2 53 dcl 1 aplsv_function aligned based (aplsv_function_ptr), 2 54 2 pad1 (2) bit (36), 2 55 2 pad2 bit (18) unal, 2 56 2 nlines fixed bin (17) unal, 2 57 2 nlocalvars fixed bin (17) unal, 2 58 2 nlabels_w_nargs fixed bin (17) unal, /* 14 bits of nlabels, 4 bits of nargs */ 2 59 2 pad3 bit (9) unal, 2 60 2 header_offset bit (27) unal, 2 61 2 line (1024) aligned, 2 62 3 flags bit (9) unal, 2 63 3 offset bit (27) unal; 2 64 2 65 dcl 1 aplsv_value aligned based (aplsv_value_ptr), 2 66 2 pad1 (2) bit (36) unal, 2 67 2 type bit (9) unal, 2 68 2 pad2 bit (9) unal, 2 69 2 rhorho_x4 fixed bin (17) unal, 2 70 2 rho (1:32) bit (36); 2 71 2 72 dcl 1 aplsv_group aligned based (aplsv_group_ptr), 2 73 2 pad1 (2) bit (36) aligned, 2 74 2 pad2 (2) bit (9) unaligned, 2 75 2 count fixed bin (17) unal, 2 76 2 symbp (0 refer (aplsv_group.count)) bit (36) aligned; 2 77 2 78 dcl 1 fun_code aligned based (code_ptr), 2 79 2 pad (2) bit (36) aligned, 2 80 2 size fixed bin (17) unal, 2 81 2 code (code_len refer (fun_code.size)) bit (9) unal; 2 82 2 83 dcl 1 bit_array based (array_ptr) aligned, 2 84 2 integral_elements dimension (data_elements/8) unaligned, 2 85 3 eight_nine_loss bit (1) unaligned, 2 86 3 data bit (8) unaligned, 2 87 2 tail bit (mod (data_elements, 8)) unal, 2 88 fixed_array bit (36) dim (data_elements) based (array_ptr) aligned, 2 89 float_array bit (72) dim (data_elements) based (array_ptr) aligned, 2 90 char_array char (data_elements) based (array_ptr); 2 91 2 92 /* internal static */ 2 93 2 94 dcl (CECONST init ("023"b3), /* fltg pt extended */ 2 95 CBCONST init ("025"b3), /* Boolean bits */ 2 96 CICONST init ("027"b3), /* Integers */ 2 97 CFCONST init ("031"b3), /* Float single */ 2 98 CCCONST init ("033"b3), /* Chars */ 2 99 CCEOT init ("0"b)) bit (9) static options (constant); 2 100 2 101 dcl (VARIABLE_TYPE init ("005"b3), 2 102 FUNCTION_TYPE init ("022"b3), 2 103 GROUP_TYPE init ("025"b3), 2 104 SYSTEM_VAR_TYPE init ("027"b3), 2 105 SYSTEM_FCN_TYPE init ("220"b3), 2 106 SUSP_TEMPVAR_TYPE init ("004"b3), 2 107 FUNCTIONZ_TYPE init ("023"b3), 2 108 UNUSED_TYPE init ("000"b3), 2 109 UNKNOWN1_TYPE init ("032"b3), /* hex 1A */ 2 110 UNKNOWN2_TYPE init ("231"b3), /* hex 99 */ 2 111 UNKNOWN3_TYPE init ("026"b3) /* hex 16 */ 2 112 ) bit (9) aligned internal static options (constant); 2 113 2 114 dcl type_names (0:4) char (7) varying aligned internal static options (constant) initial ( 2 115 "unknown", "bit", "fixed", "float", "char"); 2 116 2 117 dcl (BIT_TYPE init ("001"b3), 2 118 FIXED_TYPE init ("002"b3), 2 119 FLOAT_TYPE init ("003"b3), 2 120 CHAR_TYPE init ("004"b3) 2 121 ) bit (9) aligned internal static options (constant); 2 122 2 123 /* Internal procedures to convert from APLSV formats to Multics formats */ 2 124 2 125 cv_fb17: 2 126 procedure (aplsv_fb17) returns (fixed bin (17)); 2 127 2 128 /* parameters */ 2 129 2 130 dcl aplsv_fb17 fixed bin (17) unaligned; 2 131 2 132 /* automatic */ 2 133 2 134 dcl fb17 fixed bin (17); 2 135 dcl word bit (36) aligned; 2 136 2 137 /* builtins */ 2 138 2 139 declare (binary, bit, substr, unspec) builtin; 2 140 2 141 /* program */ 2 142 2 143 unspec (word) = bit (binary (aplsv_fb17, 36), 36); 2 144 word = pack (word); 2 145 2 146 if substr (word, 5, 1) = "1"b /* number is negative */ 2 147 then substr (word, 1, 4) = "1111"b; 2 148 2 149 unspec (fb17) = word; 2 150 return (fb17); 2 151 2 152 end cv_fb17; 2 153 2 154 cv_b18: 2 155 procedure (aplsv_b18) returns (bit (18)); 2 156 2 157 /* parameters */ 2 158 2 159 dcl aplsv_b18 bit (18) unal; 2 160 2 161 /* automatic */ 2 162 2 163 dcl b18 bit (18) aligned; 2 164 2 165 /* program */ 2 166 2 167 b18 = "00"b || substr (aplsv_b18, 2, 8) || substr (aplsv_b18, 11, 8); 2 168 return (b18); 2 169 2 170 end cv_b18; 2 171 2 172 pack: 2 173 procedure (aplsv_word) returns (bit (36) aligned); 2 174 2 175 /* parameters */ 2 176 2 177 dcl aplsv_word bit (36) aligned; 2 178 2 179 /* automatic */ 2 180 2 181 dcl word bit (36) aligned; 2 182 2 183 /* program */ 2 184 2 185 word = ""b; 2 186 substr (word, 5, 8) = substr (aplsv_word, 2, 8); 2 187 substr (word, 13, 8) = substr (aplsv_word, 11, 8); 2 188 substr (word, 21, 8) = substr (aplsv_word, 20, 8); 2 189 substr (word, 29, 8) = substr (aplsv_word, 29, 8); 2 190 return (word); 2 191 2 192 end pack; 2 193 2 194 cv_ascii: 2 195 procedure (zcode_chars) returns (char(*)); 2 196 2 197 /* parameters */ 2 198 2 199 dcl zcode_chars char (*) unaligned; 2 200 2 201 /* automatic */ 2 202 2 203 dcl ascii_chars char (length (zcode_chars)); 2 204 2 205 /* builtins */ 2 206 2 207 declare length builtin; 2 208 2 209 /* entries */ 2 210 2 211 dcl ioa_ entry options (variable), 2 212 apl_zcode_to_ascii_ entry (char (*), char (*)); 2 213 2 214 /* program */ 2 215 2 216 if length (zcode_chars) > length (ascii_chars) 2 217 then do; 2 218 call ioa_ ("max zcode-to-ascii length of ^d exceeded.", length (ascii_chars)); 2 219 end; 2 220 2 221 call apl_zcode_to_ascii_ (zcode_chars, ascii_chars); 2 222 return (ascii_chars); 2 223 2 224 end cv_ascii; 2 225 2 226 byteptr: 2 227 procedure (P_aplsv_byte_address) returns (ptr); 2 228 2 229 /* parameters */ 2 230 2 231 dcl P_aplsv_byte_address bit (36) aligned; 2 232 2 233 /* automatic */ 2 234 2 235 dcl aplsv_byte_address bit (36) aligned, 2 236 virtual_address ptr; 2 237 2 238 /* based */ 2 239 2 240 dcl bytearray char (1) dim (0:1044479) based unaligned; 2 241 2 242 2 243 /* program */ 2 244 2 245 /* Just like the 360, we must ignore the top byte. */ 2 246 2 247 aplsv_byte_address = P_aplsv_byte_address & "000777777777"b3; 2 248 virtual_address = addr (aplsv_ws_ptr -> bytearray (binary (pack (aplsv_byte_address)))); 2 249 return (virtual_address); 2 250 2 251 end byteptr; 2 252 2 253 cv_float: 2 254 procedure (aplsv_float) returns (float bin (63)); 2 255 2 256 go to xx; 2 257 2 258 cv_floatx: entry (aplsv_float) returns (float bin (63)); 2 259 2 260 word1 = "0000"b || substr (aplsv_float, 1, 32); 2 261 word2 = "0000"b || substr (aplsv_float, 33, 32); 2 262 go to yyy; 2 263 2 264 /* parameters */ 2 265 2 266 dcl aplsv_float bit (72) aligned; 2 267 2 268 /* auto */ 2 269 2 270 dcl float_result float bin (63); 2 271 dcl exponent fixed bin; 2 272 dcl 1 mfloat aligned auto, 2 273 2 exp fixed bin (7) unal, 2 274 2 mantissa bit (64) unal; 2 275 2 276 dcl s360mant bit (56), s360exp bit (7); 2 277 dcl s360mantf fixed bin (56), s360expf fixed bin (7); 2 278 2 279 dcl (word1, word2) bit (36) aligned; 2 280 2 281 /* builtins */ 2 282 2 283 declare float builtin; 2 284 2 285 /* program */ 2 286 2 287 xx: 2 288 word1 = pack (substr (aplsv_float, 1, 36)); 2 289 word2 = pack (substr (aplsv_float, 37, 36)); 2 290 2 291 yyy: 2 292 s360mant =substr (word1, 5 + 8) || substr (word2, 5); 2 293 s360mantf = fixed (s360mant, 56); 2 294 float_result = float (s360mantf); 2 295 if float_result = 0e0 then return (0e0); /* For any rep of zero, give 0 before barfs out */ 2 296 if substr (word1, 5, 1) then float_result = - float_result; 2 297 s360exp = substr (word1, 6, 7); 2 298 s360expf = fixed (s360exp, 7); 2 299 exponent = (s360expf -64) * 4 - 56; 2 300 unspec (mfloat) = unspec (float_result); 2 301 if mfloat.exp + exponent > 127 then do; 2 302 call ioa_ ("Number too large. ^f supplied.", TheBiggestNumberWeveGot); 2 303 call print_losing_flonum; 2 304 float_result = TheBiggestNumberWeveGot; 2 305 end; 2 306 else if mfloat.exp +exponent < -128 then do; 2 307 call ioa_ ("Number too small. ^f supplied.", TheSmallestNumberWeveGot); 2 308 call print_losing_flonum; 2 309 float_result = TheSmallestNumberWeveGot; 2 310 end; 2 311 else do; 2 312 mfloat.exp = mfloat.exp + exponent; 2 313 unspec (float_result) = unspec (mfloat); 2 314 end; 2 315 return (float_result); 2 316 2 317 print_losing_flonum: proc; 2 318 2 319 dcl flt_exponent float bin (63), 2 320 int_exponent fixed bin; 2 321 dcl (float, floor, log10) builtin; 2 322 2 323 flt_exponent = (s360expf - 64) * log10 (16e0); 2 324 int_exponent = floor (flt_exponent); 2 325 flt_exponent = flt_exponent - float (int_exponent); 2 326 2 327 call ioa_ ("Losing number = .^3.4b*16**^d = ^.5fe^d", 2 328 substr (s360mant, 1, 12), s360expf - 64, 2 329 float_result * (2e0 ** -56) * 10 ** flt_exponent, 2 330 int_exponent); 2 331 return; 2 332 2 333 end print_losing_flonum; 2 334 end cv_float; 2 335 2 336 cvf32: proc (bits32) returns (fixed bin (35)); 2 337 2 338 dcl bits32 bit (32); 2 339 dcl f35 fixed bin (35) aligned; 2 340 if substr (bits32, 1, 1) then unspec (f35) = "1111"b || bits32; 2 341 else unspec (f35) = "0000"b || bits32; 2 342 return (f35); 2 343 2 344 end cvf32; 2 345 2 346 cvb36f32: proc (bits36) returns (fixed bin (35)); 2 347 2 348 dcl bits36 bit (36) aligned; 2 349 2 350 return (fixed (pack (bits36), 35)); 2 351 2 352 end cvb36f32; 2 353 2 354 /* END INCLUDE FILE ... tsoapl_dcls.incl.pl1 */ 143 144 145 /* program */ 146 147 pathx = 0; 148 outpath_arg_ptr = addr (EQUALS); 149 outpath_arg_len = length (EQUALS); 150 relock_functions = "0"b; 151 152 arg_number = 1; 153 call cu_$arg_ptr (arg_number, arg_ptr, arg_len, code); 154 155 do while (code = 0); 156 if substr (arg_string, 1, 1) ^= "-" 157 then do; 158 go to pathcase (pathx); 159 160 pathcase (0): 161 inpath_arg_ptr = arg_ptr; 162 inpath_arg_len = arg_len; 163 pathx = pathx + 1; 164 go to end_pathcase; 165 166 pathcase (1): 167 outpath_arg_ptr = arg_ptr; 168 outpath_arg_len = arg_len; 169 pathx = pathx + 1; 170 go to end_pathcase; 171 172 pathcase (2): 173 call com_err_ (error_table_$too_many_args, myname, "Maximum of 2 pathnames permitted."); 174 go to usage; 175 176 end_pathcase: 177 end; 178 else if arg_string = "-relock_functions" | arg_string = "-relock_function" 179 then relock_functions = "1"b; 180 else if arg_string = "-unlock_functions" | arg_string = "-unlock_function" 181 then relock_functions = "0"b; 182 else do; 183 call com_err_ (error_table_$badopt, myname, "^a", arg_string); 184 return; 185 end; 186 187 arg_number = arg_number + 1; 188 call cu_$arg_ptr (arg_number, arg_ptr, arg_len, code); 189 end; 190 191 if pathx = 0 192 then do; 193 usage: 194 call com_err_ (code, myname, "Usage: ^a inpath {outpath} {-relock_functions|-unlock_functions}", myname); 195 return; 196 end; 197 198 call expand_pathname_$add_suffix (inpath, "sv.tsoapl", dname, ename, code); 199 if code ^= 0 200 then do; 201 call com_err_ (code, myname, "^a", inpath); 202 return; 203 end; 204 205 call hcs_$initiate_count (dname, ename, "", bitcount, 0, aplsv_ws_ptr, code); 206 if aplsv_ws_ptr = null 207 then do; 208 call com_err_ (code, myname, "^a>^a", dname, ename); 209 return; 210 end; 211 212 call expand_pathname_$add_suffix (outpath, "sv.apl", dname, ename1, code); 213 if code ^= 0 214 then do; 215 call com_err_ (code, myname, outpath); 216 go to termin_finale; 217 end; 218 219 call get_equal_name_ ((ename), ename1, ename2, code); 220 if code ^= 0 221 then do; 222 call com_err_ (code, myname, arg_string); 223 go to termin_finale; 224 end; 225 226 call msf_manager_$open (dname, ename2, fcbp, code); 227 if fcbp = null 228 then do; 229 call com_err_ (code, myname, "^a>^a", dname, ename2); 230 go to termin_finale; 231 end; 232 233 saved_bead_pointer = null (); 234 curr_component = -1; 235 curr_seglen = MaxSegSize + 2; 236 saved_ws_info_pointer = allocate (size (saved_ws_info)); 237 /* Get ball rolling */ 238 239 /* Get 360 symbol table parameters */ 240 241 qr13stk = cvb36f32 (aplsv_ws.qr13stk) / 4; 242 qsymbot = cvb36f32 (aplsv_ws.qsymbot) / 4; 243 244 aplsv_symtab_ptr = byteptr (aplsv_ws.qsymbot); 245 symtab_len = (qr13stk - qsymbot) / size (symtbe); 246 247 /* Allocate bead translation table */ 248 249 on cleanup call release_temp_segments_ (myname, q, (0)); 250 call get_temp_segments_ (myname, q, (0)); 251 saved_bead_table_ptr = q (1); 252 253 /* Set up 360 translate table */ 254 255 s360_trtblptr = q (2); 256 257 /* Count number of good symbols & allocate saved bead table */ 258 259 suspbarf = "0"b; 260 num_symbols = 0; 261 do sx = 1 to symtab_len; 262 type = aplsv_symtab (sx).type; 263 264 if type ^= UNUSED_TYPE 265 then if (type = VARIABLE_TYPE) | (type = FUNCTION_TYPE) | (type = FUNCTIONZ_TYPE) | (type = GROUP_TYPE) 266 then num_symbols = num_symbols + 1; 267 else if (type = SYSTEM_VAR_TYPE) | (type = SYSTEM_FCN_TYPE) 268 then ; 269 else if (type = SUSP_TEMPVAR_TYPE) 270 then do; 271 if ^suspbarf 272 then call ioa_ ("^a: Warning: suspended functions and values of ^a not being restored.", myname, 273 ename); 274 275 suspbarf = "1"b; 276 end; 277 else call report_bad_symbol (addr (aplsv_symtab (sx))); 278 end; 279 280 symbolx = 0; 281 saved_bead_count = num_symbols; 282 283 /* Process good symbols */ 284 285 do sx = 1 to symtab_len; 286 type = aplsv_symtab (sx).type; 287 288 if type ^= UNUSED_TYPE 289 then if (type = VARIABLE_TYPE) | (type = FUNCTION_TYPE) | (type = FUNCTIONZ_TYPE) | (type = GROUP_TYPE) 290 then call process_symbol (sx); 291 end; 292 293 /* Set up the parse frame and null latent expresson */ 294 295 number_of_ptrs = 0; 296 saved_frame_pointer = allocate (size (saved_pf)); 297 saved_pf.current_line_number = 1; 298 saved_pf.parse_frame_type = 1; /* SUSPENDED FRAME */ 299 saved_pf.last_parse_frame_ptr = null; 300 saved_ws_info.current_parse_frame_ptr = vp_ptr (saved_frame_pointer); 301 302 number_of_dimensions = 1; 303 saved_bead_pointer = allocate (size (saved_value_bead)); 304 saved_ws_info.latent_expression = beadno (vp_ptr (saved_bead_pointer)); 305 string (saved_value_bead.type) = character_value_type; 306 saved_value_bead.size = bit (fixed (size (value_bead), 18), 18); 307 saved_value_bead.total_data_elements = 0; 308 saved_value_bead.rhorho = 1; 309 saved_value_bead.data_pointer = null; 310 saved_value_bead.rho (1) = 0; 311 312 /* Allocate the master bead table */ 313 314 bead_description_pointer = allocate (size (bead_description_table)); 315 saved_ws_info.bead_table_pointer = vp_ptr (bead_description_pointer); 316 bead_description_table.bead_pointer (*) = saved_bead_table (*); 317 318 /* Fill in the workspace header. */ 319 320 saved_ws_info.save_version = 4; 321 saved_ws_info.lock = ""; 322 saved_ws_info.highest_segment = curr_component; 323 saved_ws_info.total_beads = saved_bead_count; 324 saved_ws_info.number_of_symbols = num_symbols; 325 saved_ws_info.integer_fuzz = 1.110223e-16; /* Multics default */ 326 saved_ws_info.fuzz = 1e-13; 327 ten_digits = cvb36f32 (aplsv_ws.library_number); 328 saved_ws_info.wsid = ltrim (ten_digits) || " " || cv_ascii (substr (aplsv_ws.wsname.chars, 1, aplsv_ws.wsname.len)); 329 saved_ws_info.float_index_origin = bin (aplsv_ws.index_origin, 17); 330 saved_ws_info.random_link = cvb36f32 (aplsv_ws.seed); 331 call convert_date_to_binary_ (cv_ascii (aplsv_ws.date_saved) || " 00:00", saved_ws_info.time_saved, (0)); 332 saved_ws_info.time_saved = saved_ws_info.time_saved + fixed (1e6 * cvb36f32 (aplsv_ws.time_saved) / 3e2, 71); 333 saved_ws_info.index_origin = bin (aplsv_ws.index_origin, 17); 334 saved_ws_info.digits = cvb36f32 (aplsv_ws.digits); 335 saved_ws_info.width = bin (cv_b18 (aplsv_ws.printing_width), 16); 336 saved_ws_info.user_number = cvb36f32 (aplsv_ws.man_number); 337 ten_digits = saved_ws_info.user_number; 338 saved_ws_info.user_name = "TSO user " || ltrim (ten_digits); 339 340 /* All done, close the workspace and quit */ 341 342 call msf_manager_$adjust (fcbp, curr_component, curr_seglen * 36, "111"b, code); 343 if code = 0 344 then call msf_manager_$close (fcbp); 345 else call com_err_ (code, myname, "Problem in closing msf"); 346 call release_temp_segments_ (myname, q, (0)); 347 348 termin_finale: 349 call hcs_$terminate_noname (aplsv_ws_ptr, code); 350 return; 351 352 abort: 353 call release_temp_segments_ (myname, q, (0)); 354 call hcs_$terminate_noname (aplsv_ws_ptr, code); 355 call msf_manager_$close (fcbp); 356 call delete_$path (dname, ename2, "100101"b, myname, code); 357 return; 358 359 process_symbol: 360 procedure (bv_symdex); 361 362 /* parameters */ 363 364 dcl bv_symdex fixed bin; 365 366 /* automatic */ 367 368 dcl bit72 bit (72) aligned; 369 dcl code bit (9); 370 dcl cx fixed bin; 371 dcl data_ptr ptr; 372 dcl dtype fixed bin; 373 dcl elmtct fixed bin; 374 dcl f17un fixed bin (17) unaligned; 375 dcl float_temp char (100) varying; 376 dcl floatbin63 float bin (63); 377 dcl fx35 fixed bin (35); 378 dcl (j, k) fixed bin; 379 dcl line char (3000) varying; 380 dcl mulsym_ptr ptr; 381 dcl nlines fixed bin; 382 dcl space_state bit (1); 383 dcl sx fixed bin; 384 dcl ten_digits picture "(9)z9"; 385 dcl varsymptr ptr; 386 dcl vtemp char (1000) varying; 387 388 /* based */ 389 390 dcl based_elmtct_charcons 391 char (elmtct) based (addr (fun_code.code (cx))); 392 dcl cxa (0:99999) bit (36) aligned based (aplsv_ws_ptr); 393 dcl funexp char (262143) based (q (3)) varying; 394 395 /* program */ 396 397 sx = bv_symdex; 398 symtbep = addr (aplsv_symtab (sx)); 399 mulsym_ptr = intern_360_sym (symtbep); 400 aplsv_value_ptr = byteptr ("000"b3 || symtbe.value_offset); 401 402 if symtbe.type = VARIABLE_TYPE 403 then do; 404 if symtbe.value_offset = "000000"b3 405 then return; /* intern did all work */ 406 number_of_dimensions = cv_fb17 (aplsv_value.rhorho_x4) / 4; 407 array_ptr = addr (aplsv_value.rho (number_of_dimensions + 1)); 408 saved_bead_pointer = allocate (size (saved_value_bead)); 409 mulsym_ptr -> saved_sb.meaning_pointer = beadno (vp_ptr (saved_bead_pointer)); 410 411 saved_value_bead.rhorho = number_of_dimensions; 412 data_elements = 1; 413 do idx = 1 to number_of_dimensions; 414 this_rho = binary (pack (aplsv_value.rho (idx))); 415 saved_value_bead.rho (idx) = this_rho; 416 data_elements = data_elements * this_rho; 417 end; 418 saved_value_bead.total_data_elements = data_elements; 419 dtype = binary (aplsv_value.type, 9); 420 421 (subrg): 422 go to data_type (dtype); 423 424 data_type (1): 425 data_ptr = allocate (size (saved_boolean_datum)); 426 do j = 1 to data_elements / 8; 427 substr (data_ptr -> saved_boolean_datum, j * 8 - 7, 8) = bit_array.data (j); 428 end; 429 j = mod (data_elements, 8); 430 if j ^= 0 431 then substr (data_ptr -> saved_boolean_datum, data_elements - j + 1) = bit_array.tail; 432 saved_general_bead.size = bit (fixed (size (saved_boolean_datum), 18), 18); 433 string (saved_general_bead.type) = zero_or_one_value_type; 434 go to end_data_type; 435 436 data_type (2): 437 curr_seglen = curr_seglen + mod (curr_seglen, 2); 438 data_ptr = allocate (size (numeric_datum)); 439 string (saved_general_bead.type) = integral_value_type; 440 saved_general_bead.size = bit (fixed (size (numeric_datum) + 1, 18), 18); 441 do idx = 1 to data_elements; 442 data_ptr -> numeric_datum (idx - 1) = binary (pack (fixed_array (idx))); 443 end; 444 go to end_data_type; 445 446 data_type (3): 447 curr_seglen = curr_seglen + mod (curr_seglen, 2); 448 data_ptr = allocate (size (numeric_datum)); 449 string (saved_general_bead.type) = numeric_value_type; 450 saved_general_bead.size = bit (fixed (size (numeric_datum) + 1, 18), 18); 451 do idx = 1 to data_elements; 452 data_ptr -> numeric_datum (idx - 1) = cv_float (float_array (idx)); 453 end; 454 go to end_data_type; 455 456 data_type (4): 457 data_ptr = allocate (size (character_data_structure)); 458 data_ptr -> character_string_overlay = cv_ascii (char_array); 459 saved_general_bead.size = bit (fixed (size (character_string_overlay), 18), 18); 460 string (saved_general_bead.type) = character_value_type; 461 end_data_type: 462 saved_general_bead.size = bit (fixed (size (value_bead) + fixed (saved_general_bead.size, 18), 18), 18); 463 saved_value_bead.data_pointer = vp_ptr (data_ptr); 464 end; 465 else if symtbe.type = FUNCTION_TYPE | symtbe.type = FUNCTIONZ_TYPE 466 then do; 467 aplsv_function_ptr = aplsv_value_ptr; 468 469 nlines = cv_fb17 (aplsv_function.nlines); 470 471 funexp = ""; 472 do idx = 0 to nlines - 1; /* the lines are built top-down, but each line is built right-to-left */ 473 line = NL; 474 if idx = 0 475 then code_ptr = byteptr ("000"b3 || aplsv_function.header_offset); 476 else code_ptr = byteptr ("000"b3 || aplsv_function.line (idx).offset); 477 code_len = cv_fb17 (fun_code.size); 478 space_state = "0"b; /* Assume operator */ 479 do cx = code_len to 1 by -1; 480 code = fun_code.code (cx); 481 482 if substr (code, 9, 1) = "1"b /* short syllable */ 483 then do; 484 485 if code = "003"b3 486 then ; /* unl sta */ 487 else if code = "005"b3 488 then ; /* labeled sta */ 489 else if code = CECONST | code = CBCONST | code = CICONST | code = CFCONST 490 | code = CCCONST 491 then do; 492 if code = CCCONST 493 then space_state = "0"b; 494 else do; 495 if space_state 496 then call vput (" "); 497 space_state = "1"b; 498 end; 499 elmtct = fixed (get_packs (2), 18); 500 if code = CCCONST 501 then do; /* chars */ 502 cx = cx - elmtct; 503 if fun_code.code (cx - 1) = "46"b4 || "1"b 504 /* lamp/comment */ 505 then vtemp = cv_ascii (based_elmtct_charcons); 506 else vtemp = requote (cv_ascii (based_elmtct_charcons)); 507 508 call vput (vtemp); 509 end; 510 else if code = CICONST 511 then do; /* INTEGER */ 512 vtemp = ""; 513 do j = 1 to elmtct; 514 fx35 = cvf32 (get_packs (4)); 515 ten_digits = abs (fx35); 516 517 if fx35 >= 0 518 then vtemp = ltrim (ten_digits); 519 else do; 520 vtemp = QUpperMinus; 521 vtemp = vtemp || ltrim (ten_digits); 522 end; 523 524 if j ^= 1 525 then vtemp = vtemp || " "; 526 527 call vput (vtemp); 528 end; 529 end; 530 else if code = CBCONST 531 then do; /* BOOLEAN */ 532 j = cx - divide (elmtct + 7, 8, 17, 0); 533 vtemp = ""; 534 do k = 1 to elmtct; 535 if mod (k, 8) = 1 536 then do; 537 code = fun_code.code (j); 538 j = j + 1; 539 end; 540 if k ^= 1 541 then vtemp = vtemp || " "; 542 543 if substr (code, 2, 1) = "0"b 544 then vtemp = vtemp || "0"; 545 else vtemp = vtemp || "1"; 546 code = substr (copy (code, 1), 2); 547 end; 548 call vput (vtemp); 549 cx = cx - divide (elmtct + 7, 8, 17, 0); 550 end; 551 else if code = CFCONST | code = CECONST 552 then do; /* FLOAT */ 553 if code = CECONST 554 then call com_err_ (0, myname, 555 "ECONST encountered. Please call Bernard Greenberg, 617-492-9300" 556 ); 557 vtemp = ""; 558 do j = 1 to elmtct; 559 bit72 = get_packs (8); 560 floatbin63 = cv_floatx (bit72); 561 call ioa_$rsnnl ("^[^e^;^f^]", float_temp, 0, code = CECONST, 562 abs (floatbin63)); 563 564 if floatbin63 >= 0e0 565 then vtemp = float_temp; 566 else do; 567 vtemp = QUpperMinus; 568 vtemp = vtemp || float_temp; 569 end; 570 571 if j ^= 1 572 then vtemp = vtemp || " "; 573 574 call vput (vtemp); 575 end; 576 end; 577 end; 578 else if code = "007"b3 579 then ; /* dummy */ 580 else do; /* zcode operator */ 581 call vput (cv_asciich (substr (code, 1, 8))); 582 space_state = "0"b; 583 end; 584 end; 585 else if code = "000"b3 & fun_code.code (cx - 1) = "000"b3 586 then cx = cx - 1; 587 else do; /* long syllable */ 588 if space_state = "1"b 589 then call vput (" "); 590 unspec (f17un) = "11"b || substr (fun_code.code (cx - 1), 2) || substr (code, 2); 591 cx = cx - 1; 592 vtemp = get_symname (addr (cxa (qr13stk + f17un))); 593 call vput (vtemp); 594 space_state = "1"b; /* name/num */ 595 end; 596 end; 597 funexp = funexp || line; 598 end; 599 data_elements = length (funexp); 600 saved_bead_pointer = allocate (size (saved_fb)); 601 mulsym_ptr -> saved_sb.meaning_pointer = beadno (vp_ptr (saved_bead_pointer)); 602 string (saved_general_bead.type) = function_type; 603 saved_general_bead.size = bit (fixed (size (function_bead), 18), 18); 604 605 if relock_functions & (symtbe.type = FUNCTIONZ_TYPE) 606 then saved_fb.class = 1; /* locked */ 607 else saved_fb.class = 0; /* unlocked */ 608 saved_fb.text_length = data_elements; 609 saved_fb.text = funexp; 610 end; 611 else if symtbe.type = GROUP_TYPE 612 then do; 613 aplsv_group_ptr = aplsv_value_ptr; 614 total_members = cv_fb17 (aplsv_group.count); 615 saved_bead_pointer = allocate (size (saved_gb)); 616 mulsym_ptr -> saved_sb.meaning_pointer = beadno (vp_ptr (saved_bead_pointer)); 617 saved_general_bead.size = bit (fixed (size (group_bead) + total_members, 18), 18); 618 /* UGH KLUDGE THANK LAMSON */ 619 string (saved_general_bead.type) = group_type; 620 saved_gb.number_of_members = total_members; 621 do idx = 1 to total_members; 622 varsymptr = byteptr (aplsv_group.symbp (idx)); 623 mulsym_ptr = intern_360_sym (varsymptr); 624 saved_gb.member (idx) = s360_trtbl (fixed (rel (varsymptr), 18)); 625 end; 626 end; 627 return; 628 629 /* Internal procedures for process_symbol */ 630 631 vput: 632 procedure (cs); 633 634 /* parameters */ 635 636 dcl cs char (*) varying; 637 638 /* program */ 639 640 if length (line) + length (cs) > maxlength (line) 641 then do; 642 call ioa_ ("^a: Buffer size exceeded.", myname); 643 return; 644 end; 645 646 line = cs || line; 647 648 end vput; 649 650 get_packs: 651 proc (n) returns (bit (*)); 652 653 dcl n fixed bin; 654 655 dcl btemp bit (100) varying; 656 dcl j fixed bin; 657 658 btemp = ""b; 659 do j = cx - n to cx - 1 by 1; 660 btemp = btemp || substr (fun_code.code (j), 2, 8); 661 end; 662 cx = cx - n; 663 return (btemp); 664 665 end get_packs; 666 667 end process_symbol; 668 669 allocate: 670 proc (sz) returns (ptr); /* Master allocator */ 671 672 dcl sz fixed bin; 673 674 if curr_seglen + sz > MaxSegSize + 1 675 then do; 676 curr_component = curr_component + 1; 677 call msf_manager_$get_ptr (fcbp, curr_component, "1"b, segptrs (curr_component), (0), code); 678 if segptrs (curr_component) = null 679 then do; 680 call com_err_ (code, myname, "Getting comp. #^d of msf.", curr_component); 681 go to abort; 682 end; 683 call hcs_$truncate_seg (segptrs (curr_component), 0, code); 684 if code ^= 0 685 then do; 686 call com_err_ (code, myname, "Truncating new ws seg #^d.", curr_component); 687 go to abort; 688 end; 689 curr_seglen = 0; 690 end; 691 curr_seglen = curr_seglen + sz; 692 return (ptr (segptrs (curr_component), curr_seglen - sz)); 693 end; 694 695 vp_ptr: 696 proc (pt) returns (ptr); /* cv ptr in CURRENT SEGMENT to virtual */ 697 698 dcl pt ptr; 699 700 return (ptr (baseptr (curr_component), rel (pt))); 701 end; 702 703 uvp_ptr: 704 proc (pt) returns (ptr); /* Unvirtualize ptr */ 705 706 dcl pt ptr; 707 708 return (ptr (segptrs (binary (baseno (pt), 15)), rel (pt))); 709 end; 710 711 beadno: 712 proc (vp) returns (fixed bin (21)); /* ASSIGN bead number */ 713 714 dcl vp ptr; 715 716 saved_bead_count = saved_bead_count + 1; 717 saved_bead_table (saved_bead_count) = vp; 718 return (saved_bead_count); 719 720 beadno$symbol: 721 entry (vp) returns (fixed bin (21)); 722 723 symbolx = symbolx + 1; 724 saved_bead_table (symbolx) = vp; 725 return (symbolx); 726 727 end; 728 729 get_symname: 730 proc (a_pt) returns (char (*)); 731 732 dcl (pt, a_pt) ptr; 733 734 pt = a_pt; 735 if pt -> symtbe.size >= 4 736 then pt = addrel (byteptr ("000"b3 || pt -> symtbe.name_or_offset), 1); 737 return (cv_ascii (pt -> symbol_struc.name)); 738 739 end; 740 741 requote: 742 proc (instring) returns (char (*)); 743 744 /* How difficult is PL/I for character string manipulation */ 745 /* B. Greenberg 5/31/77 */ 746 747 748 dcl instring char (*); 749 dcl outstringl fixed bin (21); 750 dcl QUOTE char (1) static init ("'") options (constant); 751 dcl QUOTEQUOTE char (2) static init ("''") options (constant); 752 dcl outstring char (2 * length (instring) + 2); 753 dcl (i, j) fixed bin (21); 754 755 dcl (index, length, substr) 756 builtin; 757 758 outstringl = 1; 759 substr (outstring, 1, 1) = QUOTE; 760 i = 1; 761 nextj: 762 j = index (substr (instring, i), QUOTE); 763 if j = 0 764 then do; 765 substr (outstring, outstringl + 1, length (instring) - i + 1) = substr (instring, i); 766 outstringl = outstringl + length (instring) - i + 2; 767 substr (outstring, outstringl, 1) = QUOTE; 768 return (substr (outstring, 1, outstringl)); 769 end; 770 substr (outstring, outstringl + 1, j - 1) = substr (instring, i, j - 1); 771 outstringl = outstringl + j; 772 substr (outstring, outstringl, 2) = QUOTEQUOTE; 773 outstringl = outstringl + 1; 774 i = i + j; 775 go to nextj; 776 end; 777 778 cv_asciich: 779 proc (zc) returns (char (1) varying); 780 781 dcl zc bit (8); 782 dcl asc char (1); 783 784 unspec (asc) = "0"b || zc; 785 call apl_zcode_to_ascii_ ((asc), asc); 786 return (asc); 787 788 end; 789 790 report_bad_symbol: 791 procedure (P_symtabe_ptr); 792 793 /* parameters */ 794 795 declare P_symtabe_ptr ptr parameter; 796 797 /* automatic */ 798 799 declare symtabe_ptr ptr; 800 801 /* program */ 802 803 symtabe_ptr = P_symtabe_ptr; 804 805 call ioa_ ("^a: Unknown symbol type ^2.4b hex for ""^a"".", substr (symtabe_ptr -> symtbe.type, 2), 806 get_symname (symtabe_ptr)); 807 call dumphex (symtabe_ptr, size (symtbe)); 808 return; 809 810 end report_bad_symbol; 811 812 dumphex: 813 proc (p, n); 814 dcl p ptr, 815 n fixed bin; 816 817 call ioa_$nnl ("^p:", p); 818 call dump_segment_ (iox_$user_output, p, 0, 0, n, "000001000010"b /*"0102"b3 */); 819 820 end; 821 822 intern_360_sym: 823 proc (s360sp) returns (ptr); 824 825 dcl s360relo fixed bin (18); 826 dcl savep ptr init (saved_bead_pointer); 827 dcl s360sp ptr; 828 829 s360relo = fixed (rel (s360sp), 18); 830 if s360_trtbl (s360relo) = 0 831 then do; 832 symbol_name_length = s360sp -> symtbe.size; 833 saved_bead_pointer = allocate (size (saved_sb)); 834 saved_sb.name_length = symbol_name_length; 835 saved_sb.name = get_symname (s360sp); 836 string (saved_general_bead.type) = symbol_type; 837 saved_general_bead.size = bit (fixed (size (symbol_bead), 18), 18); 838 s360_trtbl (s360relo) = beadno$symbol (vp_ptr (addr (saved_sb))); 839 end; 840 saved_bead_pointer = savep; 841 return (uvp_ptr ((saved_bead_table (s360_trtbl (s360relo))))); 842 end; 843 844 /* include files */ 845 3 1 /* ====== BEGIN INCLUDE SEGMENT apl_symbol_bead.incl.pl1 ================================== */ 3 2 3 3 /* Explanation of fields: 3 4* symbol_bead.hash_link_pointer points to next symbol in same hash bucket in the symbol table. 3 5* symbol_bead.meaning_pointer points to current "value" of this name: 3 6* = null => unused (e.g. undefined variable) 3 7* -> group bead => group name 3 8* -> value bead => variable with a value 3 9* -> function bead => function name 3 10* -> label bead => localized label value 3 11* -> shared var bead => shared variable */ 3 12 3 13 declare 1 symbol_bead aligned based, 3 14 2 header aligned like general_bead, 3 15 2 hash_link_pointer pointer unaligned, 3 16 2 meaning_pointer pointer unaligned, 3 17 2 name_length fixed binary, 3 18 2 name character (0 refer (symbol_bead.name_length)) unaligned; 3 19 3 20 /* ------ END INCLUDE SEGMENT apl_symbol_bead.incl.pl1 ---------------------------------- */ 846 4 1 /* ====== BEGIN INCLUDE SEGMENT apl_value_bead.incl.pl1 =================================== */ 4 2 4 3 declare 4 4 number_of_dimensions fixed bin, 4 5 4 6 1 value_bead aligned based, 4 7 2 header aligned like general_bead, 4 8 2 total_data_elements fixed binary (21), /* length of ,[value] in APL */ 4 9 2 rhorho fixed binary, /* number of dimensions of value */ 4 10 2 data_pointer pointer unaligned, /* packed pointer to the data in value */ 4 11 2 rho fixed binary (21) dimension (number_of_dimensions refer (value_bead.rhorho)); 4 12 /* dimensions of value (zero-origin) */ 4 13 4 14 4 15 declare 1 character_data_structure aligned based, /* alignment trick for PL/I compiler */ 4 16 2 character_datum character (1) unaligned dimension (0:data_elements - 1); 4 17 /* actual elements of character array */ 4 18 4 19 declare character_string_overlay character (data_elements) aligned based; 4 20 /* to overlay on above structure */ 4 21 4 22 4 23 declare numeric_datum float aligned dimension (0:data_elements - 1) based; 4 24 /* actual elements of numeric array */ 4 25 4 26 declare complex_datum complex float aligned dimension (0:data_elements -1) based; 4 27 4 28 declare MAX_VALUE_BEAD_SIZE fixed bin (19) init (261120) int static options (constant); 4 29 4 30 /* ------ END INCLUDE SEGMENT apl_value_bead.incl.pl1 ----------------------------------- */ 847 5 1 /* ====== BEGIN INCLUDE SEGMENT apl_function_bead.incl.pl1 ================================ */ 5 2 5 3 /* This bead is used by apl to store the source code for user-defined functions */ 5 4 5 5 declare 1 function_bead aligned based, 5 6 5 7 2 header aligned like general_bead, 5 8 5 9 2 lexed_function_bead_pointer unaligned pointer, /* null if unlexed or has errors, else -> lexed code */ 5 10 2 class fixed bin, /* 0=normal, 1=locked, 2=external zfn, 3=mfn, 4=dfn */ 5 11 2 stop_control_pointer unaligned ptr, /* points to stop value bead, or null (no stop control) */ 5 12 2 trace_control_pointer unaligned ptr, /* points to trace value bead, or null (no trace control) */ 5 13 2 text_length fixed bin(21), /* length of function text */ 5 14 2 text aligned char(data_elements refer (function_bead.text_length)); 5 15 /* the user's code exactly as typed in */ 5 16 5 17 /* ------ END INCLUDE SEGMENT apl_function_bead.incl.pl1 -------------------------------- */ 848 6 1 /* ====== BEGIN INCLUDE SEGMENT apl_saved_ws.incl.pl1 ===================================== */ 6 2 6 3 /* This include file describes the format of a saved workspace. */ 6 4 6 5 /* all packed pointer items are "pseudo-pointers" to other data items within the saved ws, identifying 6 6* the component and word offset within the MSF. 6 7* all fixed binary (21) items are "bead numbers", representing indicies into the bead_description_table. */ 6 8 6 9 declare current_save_version fixed binary internal static initial (4), 6 10 saved_ws_info_pointer pointer; 6 11 6 12 declare 1 saved_ws_info aligned based (saved_ws_info_pointer), 6 13 2 save_version fixed binary, /* Version number of this declaration. */ 6 14 2 highest_segment fixed binary, /* number of internal segments in ws. */ 6 15 2 bead_table_pointer pointer unaligned, /* pointer to bead_description_table */ 6 16 2 total_beads fixed binary (24), /* size of bead_description_table */ 6 17 2 padding fixed binary (35) dimension (4), /* reserved just in case. */ 6 18 2 other_ws_info aligned, 6 19 3 digits fixed bin, 6 20 3 width fixed bin, 6 21 3 index_origin fixed bin, 6 22 3 random_link fixed bin (35), 6 23 3 fuzz float, 6 24 3 float_index_origin float, 6 25 3 number_of_symbols fixed bin, 6 26 3 current_parse_frame_ptr pointer unaligned, 6 27 3 time_saved fixed binary (71), 6 28 3 integer_fuzz float, 6 29 3 user_number fixed bin (35), 6 30 3 latent_expression fixed bin (21), /* bead number of latent expression */ 6 31 3 lock char (32), 6 32 3 wsid char (100), 6 33 3 user_name char (32); 6 34 6 35 declare saved_bead_count fixed bin, 6 36 bead_description_pointer pointer; 6 37 6 38 declare 1 bead_description_table aligned based (bead_description_pointer) dimension (saved_bead_count), 6 39 2 bead_pointer pointer unaligned; /* pseudo pointer to bead */ 6 40 6 41 declare saved_bead_pointer pointer, 6 42 (symbol_name_length, total_members) fixed binary; 6 43 6 44 declare 1 saved_general_bead aligned based (saved_bead_pointer), 6 45 2 type unaligned like general_bead.type, 6 46 2 size unaligned bit (18); /* N.B.: this is the # of words in the original bead, */ 6 47 /* not the saved bead. */ 6 48 6 49 declare 1 saved_value_bead aligned based (saved_bead_pointer), 6 50 2 header aligned like saved_general_bead, 6 51 2 total_data_elements fixed binary (21), 6 52 2 rhorho fixed binary, 6 53 2 data_pointer unaligned pointer, 6 54 2 rho fixed binary (21) dimension (number_of_dimensions refer (saved_value_bead.rhorho)); 6 55 6 56 declare saved_boolean_datum bit (data_elements) aligned based; 6 57 6 58 6 59 declare 1 saved_sb aligned based (saved_bead_pointer), 6 60 2 header aligned like saved_general_bead, 6 61 2 meaning_pointer fixed binary (21), 6 62 2 name_length fixed binary, 6 63 2 name character (symbol_name_length refer (saved_sb.name_length)) unaligned; 6 64 6 65 6 66 6 67 declare 1 saved_lb aligned based (saved_bead_pointer), 6 68 2 header aligned like saved_general_bead, 6 69 2 number_of_members fixed bin, 6 70 2 members dim (total_members refer (saved_lb.number_of_members)) aligned, 6 71 3 member_ptr fixed binary (21), 6 72 3 bits unaligned like operator_bead.bits_for_parse; 6 73 6 74 6 75 6 76 declare 1 saved_gb aligned based (saved_bead_pointer), 6 77 2 header aligned like saved_general_bead, 6 78 2 number_of_members fixed binary, 6 79 2 member fixed binary (21) dimension (total_members refer (saved_gb.number_of_members)); 6 80 6 81 6 82 declare 1 saved_fb aligned based (saved_bead_pointer), 6 83 2 header aligned like saved_general_bead, 6 84 2 class fixed bin, 6 85 2 stop_control_pointer fixed bin (21), 6 86 2 trace_control_pointer fixed bin (21), 6 87 2 text_length fixed bin, 6 88 2 text aligned char (data_elements refer (saved_fb.text_length)); 6 89 6 90 declare (saved_frame_pointer, saved_reductions_pointer) pointer; 6 91 6 92 declare 6 93 1 saved_pf based(saved_frame_pointer) aligned, 6 94 2 last_parse_frame_ptr ptr unaligned, /* pseudo-pointer to last parse frame, or null */ 6 95 2 parse_frame_type fixed bin, 6 96 2 function_bead_ptr fixed bin (21), /* pseudo-pointer to function bead */ 6 97 2 current_parseme unal fixed bin (17), 6 98 2 current_lexeme unal fixed bin (17), 6 99 2 current_line_number unal fixed bin (17), 6 100 2 return_point unal fixed bin (17), 6 101 2 put_result unal fixed bin (17), 6 102 2 print_final_value unal bit, 6 103 2 re_lex_source unal bit, /* if 1, re-lex the source for this frame */ 6 104 2 pad unal bit (16), 6 105 2 number_of_ptrs fixed bin, 6 106 2 old_meaning_ptrs dim (number_of_ptrs refer (saved_pf.number_of_ptrs)) fixed bin (21); 6 107 /* old meanings for local variables */ 6 108 6 109 declare 6 110 1 v3_saved_pf based (saved_frame_pointer) aligned, 6 111 2 last_parse_frame_ptr ptr unaligned, /* pseudo-pointer to last parse frame, or null */ 6 112 2 parse_frame_type fixed bin, 6 113 2 function_bead_ptr fixed bin (21), /* pseudo-pointer to function bead */ 6 114 2 current_parseme unal fixed bin (17), 6 115 2 current_lexeme unal fixed bin (17), 6 116 2 current_line_number unal fixed bin (17), 6 117 2 return_point unal fixed bin (17), 6 118 2 put_result unal fixed bin (17), 6 119 2 print_final_value unal bit, 6 120 2 re_lex_source unal bit, /* if 1, re-lex the source for this frame */ 6 121 2 pad unal bit (16), 6 122 2 old_meaning_ptrs dim (number_of_ptrs) fixed bin (21); 6 123 /* old meanings for local variables */ 6 124 6 125 declare 6 126 1 saved_rs dim(1000) aligned based(saved_reductions_pointer), 6 127 2 type fixed bin, /* type of parseme */ 6 128 2 bits unaligned like operator_bead.bits_for_parse, 6 129 2 semantics fixed bin (21), /* pseudo-pointer */ 6 130 2 lexeme fixed bin, 6 131 6 132 1 saved_rs_for_op dim(1000) aligned based(saved_reductions_pointer), 6 133 2 type fixed bin, 6 134 2 bits unaligned like operator_bead.bits_for_parse, 6 135 2 semantics fixed bin, 6 136 2 lexeme fixed bin; 6 137 6 138 6 139 declare 1 saved_sf aligned based (saved_frame_pointer), 6 140 2 last_frame_pointer pointer unaligned, /* pointer to last parse frame, or null */ 6 141 2 frame_type fixed binary, /* = save_frame_type */ 6 142 2 saved_symbol_count fixed binary (29), 6 143 2 symbol_list aligned dimension (total_symbols refer (saved_sf.saved_symbol_count)), 6 144 3 symbol_pointer fixed binary (21), /* bead number of each symbol bead */ 6 145 3 saved_meaning_pointer fixed binary (21); /* bead number of meaning at the time frame is created */ 6 146 6 147 /* ------ END INCLUDE SEGMENT apl_saved_ws.incl.pl1 ------------------------------------- */ 849 7 1 /* ====== BEGIN INCLUDE SEGMENT apl_bead_format.incl.pl1 ================================== */ 7 2 7 3 declare 1 general_bead aligned based, /* The Venerable Bead */ 7 4 2 type unaligned, 7 5 3 bead_type unaligned, 7 6 4 operator bit (1), /* ON if operator bead */ 7 7 4 symbol bit (1), /* ON if symbol bead */ 7 8 4 value bit (1), /* ON if value bead */ 7 9 4 function bit (1), /* ON if function bead */ 7 10 4 group bit (1), /* ON if group bead */ 7 11 4 label bit (1), /* ON if label bead */ 7 12 4 shared_variable bit (1), /* ON if shared variable bead */ 7 13 4 lexed_function bit (1), /* ON if lexed function bead */ 7 14 3 data_type unaligned, 7 15 4 list_value bit (1), /* ON if a list value bead */ 7 16 4 character_value bit (1), /* ON if a character value bead */ 7 17 4 numeric_value bit (1), /* ON if a numeric value bead */ 7 18 4 integral_value bit (1), /* ON if an integral value bead */ 7 19 4 zero_or_one_value bit (1), /* ON if a boolean value bead */ 7 20 4 complex_value bit (1), /* ON if a complex, numeric value bead */ 7 21 3 unused_bits bit (4) unaligned, /* pad to 18 bits (for future use) */ 7 22 2 size bit (18) unaligned, /* Number of words this bead occupies 7 23* (used by bead storage manager) */ 7 24 2 reference_count fixed binary (29); /* Number of pointers which point 7 25* to this bead (used by bead manager) */ 7 26 7 27 7 28 /* constant strings for initing type field in various beads */ 7 29 7 30 declare ( 7 31 operator_type init("100000000000000000"b), 7 32 symbol_type init("010000000000000000"b), 7 33 value_type init("001000000000000000"b), 7 34 function_type init("000100000000000000"b), 7 35 group_type init("000010000000000000"b), 7 36 label_type init("001001000011000000"b), 7 37 shared_variable_type init("001000100000000000"b), 7 38 lexed_function_type init("000000010000000000"b), 7 39 7 40 list_value_type init("000000001000000000"b), 7 41 character_value_type init("001000000100000000"b), 7 42 numeric_value_type init("001000000010000000"b), 7 43 integral_value_type init("001000000011000000"b), 7 44 zero_or_one_value_type init("001000000011100000"b), 7 45 complex_value_type init("001000000000010000"b), 7 46 7 47 not_integer_mask init("111111111110011111"b), /* to clear integral, zero_or_one bits */ 7 48 not_zero_or_one_mask init("111111111111011111"b) /* to clear zero_or_one bit */ 7 49 ) bit(18) internal static; 7 50 7 51 /* ------ END INCLUDE SEGMENT apl_bead_format.incl.pl1 ---------------------------------- */ 850 8 1 /* ====== BEGIN INCLUDE SEGMENT apl_operator_bead.incl.pl1 ================================ */ 8 2 8 3 declare 8 4 1 operator_bead aligned based, 8 5 8 6 2 type unaligned like general_bead.type, 8 7 8 8 2 bits_for_lex unaligned, 8 9 3 allow_brackets bit(1), /* operator may have dimension info in brackets */ 8 10 3 allow_product bit(1), /* operator may be used in inner and outer product */ 8 11 3 allow_reduction bit(1), /* operator may be used in reduction and scan */ 8 12 3 special_assignment bit(1), /* doesn't use standard assignment operator */ 8 13 3 ignores_assignment bit(1), /* assignment has no effect */ 8 14 3 allow_subscripted_assignment 8 15 bit(1), /* system variable that can be subscripted assigned */ 8 16 3 pad bit(12), 8 17 8 18 2 bits_for_parse unaligned, 8 19 3 stop_trace_control bit(1), /* next lexeme is function being stopped/traced 8 20* (op1 tells which) */ 8 21 3 quad bit(1), /* this is a quad type */ 8 22 3 system_variable bit(1), /* this is a system variable, not an op */ 8 23 3 dyadic bit(1), /* operator may be dyadic */ 8 24 3 monadic bit(1), /* operator may be monadic */ 8 25 3 function bit(1), /* operator is a user defined function */ 8 26 3 semantics_valid bit(1), /* if semantics has been set */ 8 27 3 has_list bit(1), /* semantics is a list */ 8 28 3 inner_product bit(1), /* op2 is valid */ 8 29 3 semantics_on_stack bit(1), /* semantics points to value stack */ 8 30 3 is_external_function bit(1), /* semantics points to function bead for ext function */ 8 31 3 pad bit(7), 8 32 3 op2 fixed bin(8) unaligned, /* secondary operator code */ 8 33 3 op1 fixed bin(8) unaligned, /* primary operator code */ 8 34 2 type_code fixed bin; /* for parse */ 8 35 8 36 /* ------ END INCLUDE SEGMENT apl_operator_bead.incl.pl1 -------------------------------- */ 851 9 1 /* BEGIN INCLUDE FILE: apl_group_bead.incl.pl1 */ 9 2 9 3 /* Initial Version: 1973.06.18 9 4* Typed in by: Richard S. Lamson */ 9 5 9 6 9 7 declare 1 group_bead aligned based, /* Group: bead_type.group = "1"b */ 9 8 9 9 2 header aligned like general_bead, 9 10 9 11 2 number_of_members fixed binary, 9 12 9 13 2 member pointer unaligned dimension (0 refer (group_bead.number_of_members)); 9 14 /* Pointer to the symbol bead for each 9 15* member of the group */ 9 16 9 17 /* END INCLUDE FILE apl_group_bead.incl.pl1 */ 852 10 1 /* ====== BEGIN INCLUDE SEGMENT apl_characters.incl.pl1 =================================== */ 10 2 10 3 /* 10 4* * This include file contains all the characters in the APL character set, 10 5* * declared char(1) [Instead of fixed bin as in the apl_character_codes.incl.pl1 file] 10 6* * 10 7* Modified 780913 by PG to add CentSign 10 8* Modified 790319 by PG to add CommaHyphen 10 9* */ 10 10 10 11 declare ( 10 12 QBell init(""), 10 13 QBackSpace init(""), 10 14 QTab init(" "), 10 15 QNewLine init(" 10 16 "), 10 17 QSpace init(" "), 10 18 QExclamation init("!"), 10 19 QDollar init("$"), 10 20 QApostrophe init("'"), 10 21 QLeftParen init("("), 10 22 QRightParen init(")"), 10 23 QStar init("*"), 10 24 QPlus init("+"), 10 25 QComma init(","), 10 26 QMinus init("-"), 10 27 QPeriod init("."), 10 28 QSlash init("/"), 10 29 QZero init("0"), 10 30 QOne init("1"), 10 31 QTwo init("2"), 10 32 QThree init("3"), 10 33 QFour init("4"), 10 34 QFive init("5"), 10 35 QSix init("6"), 10 36 QSeven init("7"), 10 37 QEight init("8"), 10 38 QNine init("9"), 10 39 QColon init(":"), 10 40 QSemiColon init(";"), 10 41 QLessThan init("<"), 10 42 QEqual init("="), 10 43 QGreaterThan init(">"), 10 44 QQuestion init("?"), 10 45 QLetterA_ init("A"), 10 46 QLetterB_ init("B"), 10 47 QLetterC_ init("C"), 10 48 QLetterD_ init("D"), 10 49 QLetterE_ init("E"), 10 50 QLetterF_ init("F"), 10 51 QLetterG_ init("G"), 10 52 QLetterH_ init("H"), 10 53 QLetterI_ init("I"), 10 54 QLetterJ_ init("J"), 10 55 QLetterK_ init("K"), 10 56 QLetterL_ init("L"), 10 57 QLetterM_ init("M"), 10 58 QLetterN_ init("N"), 10 59 QLetterO_ init("O"), 10 60 QLetterP_ init("P"), 10 61 QLetterQ_ init("Q"), 10 62 QLetterR_ init("R"), 10 63 QLetterS_ init("S"), 10 64 QLetterT_ init("T"), 10 65 QLetterU_ init("U"), 10 66 QLetterV_ init("V"), 10 67 QLetterW_ init("W"), 10 68 QLetterX_ init("X"), 10 69 QLetterY_ init("Y"), 10 70 QLetterZ_ init("Z"), 10 71 QLeftBracket init("["), 10 72 QBackSlash init("\"), 10 73 QRightBracket init("]"), 10 74 QUnderLine init("_"), 10 75 QLetterA init("a"), 10 76 QLetterB init("b"), 10 77 QLetterC init("c"), 10 78 QLetterD init("d"), 10 79 QLetterE init("e"), 10 80 QLetterF init("f"), 10 81 QLetterG init("g"), 10 82 QLetterH init("h"), 10 83 QLetterI init("i"), 10 84 QLetterJ init("j"), 10 85 QLetterK init("k"), 10 86 QLetterL init("l"), 10 87 QLetterM init("m"), 10 88 QLetterN init("n"), 10 89 QLetterO init("o"), 10 90 QLetterP init("p"), 10 91 QLetterQ init("q"), 10 92 QLetterR init("r"), 10 93 QLetterS init("s"), 10 94 QLetterT init("t"), 10 95 QLetterU init("u"), 10 96 QLetterV init("v"), 10 97 QLetterW init("w"), 10 98 QLetterX init("x"), 10 99 QLetterY init("y"), 10 100 QLetterZ init("z"), 10 101 QLeftBrace init("{"), 10 102 QVerticalBar init("|"), 10 103 QRightBrace init("}"), 10 104 QTilde init("~"), 10 105 QLessOrEqual init("€"), 10 106 QGreaterOrEqual init(""), 10 107 QNotEqual init("‚"), 10 108 QOrSign init("ƒ"), 10 109 QAndSign init("„"), 10 110 QDivision init("…"), 10 111 QEpsilon init("†"), 10 112 QUpArrow init("‡"), 10 113 QDownArrow init("ˆ"), 10 114 QCircle init("‰"), 10 115 QCeiling init("Š"), 10 116 QFloor init("‹"), 10 117 QDelta init("Œ"), 10 118 QSmallCircle init(""), 10 119 QQuad init("Ž"), 10 120 QCap init(""), 10 121 QDeCode init(""), 10 122 QEnCode init("‘"), 10 123 QLeftLump init("’"), 10 124 QRightLump init("“"), 10 125 QCup init("”"), 10 126 QNorSign init("•"), 10 127 QNandSign init("–"), 10 128 QCircleHyphen init("—"), 10 129 QSlashHyphen init("˜"), 10 130 QDelTilde init("™"), 10 131 QCircleStar init("š"), 10 132 QCircleBar init("›"), 10 133 QCircleBackSlash init("œ"), 10 134 QCircleSlash init(""), 10 135 QGradeDown init("ž"), 10 136 QGradeUp init("Ÿ"), 10 137 QLamp init(" "), 10 138 QQuadQuote init("¡"), 10 139 QIBeam init("¢"), 10 140 QBackSlashHyphen init("£"), 10 141 QDomino init("¤"), 10 142 QDiaresis init("¥"), 10 143 QOmega init("¦"), 10 144 QIota init("§"), 10 145 QRho init("¨"), 10 146 QTimes init("©"), 10 147 QAlpha init("ª"), 10 148 QUpperMinus init("«"), 10 149 QDel init("¬"), 10 150 QLeftArrow init("­"), 10 151 QRightArrow init("®"), 10 152 QDiamond init("¯"), 10 153 QZero_ init("°"), 10 154 QOne_ init("±"), 10 155 QTwo_ init("²"), 10 156 QThree_ init("³"), 10 157 QFour_ init("´"), 10 158 QFive_ init("µ"), 10 159 QSix_ init("¶"), 10 160 QSeven_ init("·"), 10 161 QEight_ init("¸"), 10 162 QNine_ init("¹"), 10 163 QDelta_ init("º"), 10 164 QMarkError init("»"), 10 165 QExecuteSign init("¼"), 10 166 QFormatSign init("½"), 10 167 QLeftTack init("¾"), 10 168 QRightTack init("¿"), 10 169 QLineFeed init("À"), 10 170 QConditionalNewLine init("Á"), 10 171 QCentSign init("Â"), 10 172 QCommaHyphen init("Ã") 10 173 ) char(1) internal static options (constant); 10 174 10 175 /* ------ END INCLUDE SEGMENT apl_characters.incl.pl1 ----------------------------------- */ 853 854 855 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/24/84 1247.5 convert_tsoapl_ws.pl1 >spec>online>09/24/84>convert_tsoapl_ws.pl1 142 1 03/27/82 0429.8 apl_number_data.incl.pl1 >ldd>include>apl_number_data.incl.pl1 143 2 03/27/82 0429.8 tsoapl_dcls.incl.pl1 >ldd>include>tsoapl_dcls.incl.pl1 846 3 03/27/82 0439.2 apl_symbol_bead.incl.pl1 >ldd>include>apl_symbol_bead.incl.pl1 847 4 03/27/82 0439.2 apl_value_bead.incl.pl1 >ldd>include>apl_value_bead.incl.pl1 848 5 03/27/82 0438.7 apl_function_bead.incl.pl1 >ldd>include>apl_function_bead.incl.pl1 849 6 03/27/82 0439.1 apl_saved_ws.incl.pl1 >ldd>include>apl_saved_ws.incl.pl1 850 7 03/27/82 0438.5 apl_bead_format.incl.pl1 >ldd>include>apl_bead_format.incl.pl1 851 8 03/27/82 0439.0 apl_operator_bead.incl.pl1 >ldd>include>apl_operator_bead.incl.pl1 852 9 03/27/82 0438.7 apl_group_bead.incl.pl1 >ldd>include>apl_group_bead.incl.pl1 853 10 03/27/82 0438.6 apl_characters.incl.pl1 >ldd>include>apl_characters.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. CBCONST constant bit(9) initial unaligned dcl 2-94 ref 489 530 CCCONST constant bit(9) initial unaligned dcl 2-94 ref 489 492 500 CECONST constant bit(9) initial unaligned dcl 2-94 ref 489 551 553 561 CFCONST constant bit(9) initial unaligned dcl 2-94 ref 489 551 CICONST constant bit(9) initial unaligned dcl 2-94 ref 489 510 EQUALS 000016 constant char(1) initial unaligned dcl 136 set ref 148 149 FUNCTIONZ_TYPE constant bit(9) initial dcl 2-101 ref 264 288 465 605 FUNCTION_TYPE constant bit(9) initial dcl 2-101 ref 264 288 465 GROUP_TYPE constant bit(9) initial dcl 2-101 ref 264 288 611 MaxSegSize constant fixed bin(21,0) initial dcl 76 ref 235 674 NL 000014 constant varying char(1) initial dcl 137 ref 473 P_aplsv_byte_address parameter bit(36) dcl 2-231 ref 2-226 2-247 P_symtabe_ptr parameter pointer dcl 795 ref 790 803 QUOTE constant char(1) initial unaligned dcl 750 ref 759 761 767 QUOTEQUOTE constant char(2) initial unaligned dcl 751 ref 772 QUpperMinus constant char(1) initial unaligned dcl 10-11 ref 520 567 SUSP_TEMPVAR_TYPE constant bit(9) initial dcl 2-101 ref 269 SYSTEM_FCN_TYPE constant bit(9) initial dcl 2-101 ref 267 SYSTEM_VAR_TYPE constant bit(9) initial dcl 2-101 ref 267 TheBiggestNumberWeveGot 000012 constant float bin(63) initial dcl 1-16 set ref 2-302* 2-304 TheSmallestNumberWeveGot 000010 constant float bin(63) initial dcl 1-16 set ref 2-307* 2-309 UNUSED_TYPE constant bit(9) initial dcl 2-101 ref 264 288 VARIABLE_TYPE constant bit(9) initial dcl 2-101 ref 264 288 402 a_pt parameter pointer dcl 732 ref 729 734 abs builtin function dcl 89 ref 515 561 561 addr builtin function dcl 89 ref 148 277 277 2-248 398 407 503 506 592 592 838 838 838 838 addrel builtin function dcl 89 ref 735 apl_zcode_to_ascii_ 000020 constant entry external dcl 99 in procedure "ctw" ref 785 apl_zcode_to_ascii_ 000070 constant entry external dcl 2-211 in procedure "cv_ascii" ref 2-221 aplsv_b18 parameter bit(18) unaligned dcl 2-159 ref 2-154 2-167 2-167 aplsv_byte_address 000100 automatic bit(36) dcl 2-235 set ref 2-247* 2-248* aplsv_fb17 parameter fixed bin(17,0) unaligned dcl 2-130 ref 2-125 2-143 aplsv_float parameter bit(72) dcl 2-266 ref 2-253 2-258 2-260 2-261 2-287 2-287 2-289 2-289 aplsv_function based structure level 1 dcl 2-53 aplsv_function_ptr 000332 automatic pointer dcl 2-5 set ref 467* 469 474 476 aplsv_group based structure level 1 dcl 2-72 aplsv_group_ptr 000340 automatic pointer dcl 2-6 set ref 613* 614 622 aplsv_symtab based structure array level 1 dcl 2-40 set ref 277 277 398 aplsv_symtab_ptr 000330 automatic pointer dcl 2-5 set ref 244* 262 277 277 286 398 aplsv_value based structure level 1 dcl 2-65 aplsv_value_ptr 000334 automatic pointer dcl 2-5 set ref 400* 406 407 414 419 467 613 aplsv_word parameter bit(36) dcl 2-177 ref 2-172 2-186 2-187 2-188 2-189 aplsv_ws based structure level 1 dcl 2-15 aplsv_ws_ptr 000326 automatic pointer dcl 2-5 set ref 205* 206 241 242 244 327 328 328 328 328 329 330 331 332 333 334 335 336 348* 354* 2-248 592 592 arg_len 000100 automatic fixed bin(21,0) dcl 38 set ref 153* 156 162 168 178 178 180 180 183 183 188* 222 222 arg_number 000101 automatic fixed bin(17,0) dcl 38 set ref 152* 153* 187* 187 188* arg_ptr 000102 automatic pointer dcl 38 set ref 153* 156 160 166 178 178 180 180 183 188* 222 arg_string based char unaligned dcl 81 set ref 156 178 178 180 180 183* 222* array_ptr 000344 automatic pointer dcl 2-9 set ref 407* 427 430 442 452 458 asc 002612 automatic char(1) unaligned dcl 782 set ref 784* 785 785* 786 ascii_chars 000100 automatic char unaligned dcl 2-203 set ref 2-216 2-218 2-218 2-221* 2-222 b18 000410 automatic bit(18) dcl 2-163 set ref 2-167* 2-168 based_elmtct_charcons based char unaligned dcl 390 set ref 503* 506* baseno builtin function dcl 89 ref 708 baseptr builtin function dcl 89 ref 700 bead_description_pointer 000356 automatic pointer dcl 6-35 set ref 314* 314 314 315* 316 bead_description_table based structure array level 1 dcl 6-38 set ref 314 314 bead_pointer based pointer array level 2 packed unaligned dcl 6-38 set ref 316* bead_table_pointer 2 based pointer level 2 packed unaligned dcl 6-12 set ref 315* bin builtin function dcl 89 ref 329 333 335 binary builtin function dcl 2-139 in procedure "cv_fb17" ref 2-143 binary builtin function dcl 89 in procedure "ctw" ref 2-248 414 419 442 708 bit builtin function dcl 2-139 in procedure "cv_fb17" ref 2-143 bit builtin function dcl 89 in procedure "ctw" ref 306 432 440 450 459 461 603 617 837 bit72 000476 automatic bit(72) dcl 368 set ref 559* 560* bit_array based structure level 1 dcl 2-83 bitcount 000104 automatic fixed bin(24,0) dcl 38 set ref 205* bits32 parameter bit(32) unaligned dcl 2-338 ref 2-336 2-340 2-340 2-341 bits36 parameter bit(36) dcl 2-348 set ref 2-346 2-350* bits_for_parse 1 based structure level 2 packed unaligned dcl 8-3 btemp 000100 automatic varying bit(100) dcl 655 set ref 658* 660* 660 663 bv_symdex parameter fixed bin(17,0) dcl 364 ref 359 397 bytearray based char(1) array unaligned dcl 2-240 set ref 2-248 char_array based char unaligned dcl 2-83 set ref 458* character_data_structure based structure level 1 dcl 4-15 ref 456 456 character_string_overlay based char dcl 4-19 set ref 458* 459 character_value_type constant bit(18) initial unaligned dcl 7-30 ref 305 460 chars 72(09) based char(11) level 3 packed unaligned dcl 2-15 ref 328 328 class 1 based fixed bin(17,0) level 2 dcl 6-82 set ref 605* 607* cleanup 000320 stack reference condition dcl 95 ref 249 code 2(18) based bit(9) array level 2 in structure "fun_code" packed unaligned dcl 2-78 in procedure "ctw" set ref 480 503 503 506 537 585 590 660 code 000105 automatic fixed bin(35,0) dcl 38 in procedure "ctw" set ref 153* 155 188* 193* 198* 199 201* 205* 208* 212* 213 215* 219* 220 222* 226* 229* 342* 343 345* 348* 354* 356* 677* 680* 683* 684 686* code 000500 automatic bit(9) unaligned dcl 369 in procedure "process_symbol" set ref 480* 482 485 487 489 489 489 489 489 492 500 510 530 537* 543 546* 546 551 551 553 561 578 581 581 585 590 code_len 000347 automatic fixed bin(17,0) dcl 2-9 set ref 477* 479 code_ptr 000336 automatic pointer dcl 2-5 set ref 474* 476* 477 480 503 503 506 537 585 590 660 com_err_ 000010 constant entry external dcl 99 ref 172 183 193 201 208 215 222 229 345 553 680 686 convert_date_to_binary_ 000016 constant entry external dcl 99 ref 331 copy builtin function dcl 89 ref 546 count 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-72 set ref 614* cs parameter varying char dcl 636 ref 631 640 646 cu_$arg_ptr 000024 constant entry external dcl 99 ref 153 188 curr_component 000106 automatic fixed bin(17,0) dcl 38 set ref 234* 322 342* 676* 676 677* 677 678 680* 683 686* 692 700 curr_seglen 000107 automatic fixed bin(18,0) dcl 38 set ref 235* 342 436* 436 436 446* 446 446 674 689* 691* 691 692 current_line_number 4 based fixed bin(17,0) level 2 packed unaligned dcl 6-92 set ref 297* current_parse_frame_ptr 21 based pointer level 3 packed unaligned dcl 6-12 set ref 300* cx 000501 automatic fixed bin(17,0) dcl 370 set ref 479* 480 502* 502 503 503 506 532 549* 549 585 585* 585 590 591* 591* 659 659 662* 662 cxa based bit(36) array dcl 392 set ref 592 592 data 0(01) based bit(8) array level 3 packed unaligned dcl 2-83 ref 427 data_elements 000346 automatic fixed bin(17,0) dcl 2-9 set ref 412* 416* 416 418 424 424 424 424 426 427 429 430 430 430 430 432 432 438 438 440 441 448 448 450 451 456 456 458 458 458 459 459 599* 600 600 603 608 data_pointer 3 based pointer level 2 packed unaligned dcl 6-49 set ref 309* 463* data_ptr 000502 automatic pointer dcl 371 set ref 424* 427 430 438* 442 448* 452 456* 458 463* date_saved 100 based char(8) level 2 packed unaligned dcl 2-15 set ref 331* delete_$path 000026 constant entry external dcl 99 ref 356 digits 125 based bit(36) level 2 in structure "aplsv_ws" dcl 2-15 in procedure "ctw" set ref 334* digits 10 based fixed bin(17,0) level 3 in structure "saved_ws_info" dcl 6-12 in procedure "ctw" set ref 334* divide builtin function dcl 89 ref 532 549 dname 000110 automatic char(168) unaligned dcl 38 set ref 198* 205* 208* 212* 226* 229* 356* dtype 000504 automatic fixed bin(17,0) dcl 372 set ref 419* 421 dump_segment_ 000022 constant entry external dcl 99 ref 818 elmtct 000505 automatic fixed bin(17,0) dcl 373 set ref 499* 502 503 503 506 506 513 532 534 549 558 ename 000162 automatic char(32) unaligned dcl 38 set ref 198* 205* 208* 219 271* ename1 000172 automatic char(32) unaligned dcl 38 set ref 212* 219* ename2 000202 automatic char(32) unaligned dcl 38 set ref 219* 226* 229* 356* error_table_$badopt 000060 external static fixed bin(35,0) dcl 126 set ref 183* error_table_$too_many_args 000062 external static fixed bin(35,0) dcl 126 set ref 172* exp 000424 automatic fixed bin(7,0) level 2 packed unaligned dcl 2-272 set ref 2-301 2-306 2-312* 2-312 expand_pathname_$add_suffix 000030 constant entry external dcl 99 ref 198 212 exponent 000422 automatic fixed bin(17,0) dcl 2-271 set ref 2-299* 2-301 2-306 2-312 f17un 000506 automatic fixed bin(17,0) unaligned dcl 374 set ref 590* 592 592 f35 000460 automatic fixed bin(35,0) dcl 2-339 set ref 2-340* 2-341* 2-342 fb17 000400 automatic fixed bin(17,0) dcl 2-134 set ref 2-149* 2-150 fcbp 000212 automatic pointer dcl 38 set ref 226* 227 342* 343* 355* 677* fixed builtin function dcl 89 ref 306 332 2-293 2-298 2-350 432 440 450 459 461 461 499 603 617 624 829 837 fixed_array based bit(36) array dcl 2-83 set ref 442* float builtin function dcl 2-283 in procedure "cv_float" ref 2-294 float builtin function dcl 2-321 in procedure "print_losing_flonum" ref 2-325 float_array based bit(72) array dcl 2-83 set ref 452* float_index_origin 16 based float bin(63) level 3 dcl 6-12 set ref 329* float_result 000420 automatic float bin(63) dcl 2-270 set ref 2-294* 2-295 2-296* 2-296 2-300 2-304* 2-309* 2-313* 2-315 2-327 float_temp 000507 automatic varying char(100) dcl 375 set ref 561* 564 568 floatbin63 000542 automatic float bin(63) dcl 376 set ref 560* 561 561 564 floor builtin function dcl 2-321 ref 2-324 flt_exponent 000446 automatic float bin(63) dcl 2-319 set ref 2-323* 2-324 2-325* 2-325 2-327 fun_code based structure level 1 dcl 2-78 function_bead based structure level 1 dcl 5-5 ref 603 function_type constant bit(18) initial unaligned dcl 7-30 ref 602 funexp based varying char(262143) dcl 393 set ref 471* 597* 597 599 609 fuzz 14 based float bin(63) level 3 dcl 6-12 set ref 326* fx35 000544 automatic fixed bin(35,0) dcl 377 set ref 514* 515 517 general_bead based structure level 1 dcl 7-3 get_equal_name_ 000032 constant entry external dcl 99 ref 219 get_temp_segments_ 000012 constant entry external dcl 99 ref 250 group_bead based structure level 1 dcl 9-7 ref 617 group_type constant bit(18) initial unaligned dcl 7-30 ref 619 hcs_$initiate_count 000034 constant entry external dcl 99 ref 205 hcs_$terminate_noname 000036 constant entry external dcl 99 ref 348 354 hcs_$truncate_seg 000040 constant entry external dcl 99 ref 683 header based structure level 2 dcl 6-49 header_offset 4(09) based bit(27) level 2 packed unaligned dcl 2-53 ref 474 highest_segment 1 based fixed bin(17,0) level 2 dcl 6-12 set ref 322* i 000101 automatic fixed bin(21,0) dcl 753 set ref 760* 761 765 765 766 770 774* 774 idx 000214 automatic fixed bin(17,0) dcl 38 set ref 413* 414 415* 441* 442 442* 451* 452 452* 472* 474 476* 621* 622 624* index builtin function dcl 755 ref 761 index_origin 116 based bit(36) level 2 in structure "aplsv_ws" dcl 2-15 in procedure "ctw" ref 329 333 index_origin 12 based fixed bin(17,0) level 3 in structure "saved_ws_info" dcl 6-12 in procedure "ctw" set ref 333* inpath based char unaligned dcl 81 set ref 198* 201* inpath_arg_len 000215 automatic fixed bin(21,0) dcl 38 set ref 162* 198 198 201 201 inpath_arg_ptr 000216 automatic pointer dcl 38 set ref 160* 198 201 instring parameter char unaligned dcl 748 ref 741 752 761 765 765 766 770 int_exponent 000450 automatic fixed bin(17,0) dcl 2-319 set ref 2-324* 2-325 2-327* integer_fuzz 24 based float bin(63) level 3 dcl 6-12 set ref 325* integral_elements based structure array level 2 packed unaligned dcl 2-83 integral_value_type constant bit(18) initial unaligned dcl 7-30 ref 439 ioa_ 000042 constant entry external dcl 99 in procedure "ctw" ref 271 2-302 2-307 2-327 642 805 ioa_ 000066 constant entry external dcl 2-211 in procedure "cv_ascii" ref 2-218 ioa_$nnl 000044 constant entry external dcl 99 ref 817 ioa_$rsnnl 000046 constant entry external dcl 99 ref 561 iox_$user_output 000064 external static pointer dcl 126 set ref 818* j 000102 automatic fixed bin(21,0) dcl 753 in procedure "requote" set ref 761* 763 770 770 771 774 j 000104 automatic fixed bin(17,0) dcl 656 in procedure "get_packs" set ref 659* 660* j 000545 automatic fixed bin(17,0) dcl 378 in procedure "process_symbol" set ref 426* 427 427* 429* 430 430 513* 524* 532* 537 538* 538 558* 571* k 000546 automatic fixed bin(17,0) dcl 378 set ref 534* 535 540* last_parse_frame_ptr based pointer level 2 packed unaligned dcl 6-92 set ref 299* latent_expression 27 based fixed bin(21,0) level 3 dcl 6-12 set ref 304* len 72 based fixed bin(8,0) level 3 packed unaligned dcl 2-15 ref 328 328 length builtin function dcl 2-207 in procedure "cv_ascii" ref 2-203 2-216 2-216 2-218 2-218 length builtin function dcl 755 in procedure "requote" ref 752 765 766 length builtin function dcl 89 in procedure "ctw" ref 149 599 640 640 library_number 71 based bit(36) level 2 dcl 2-15 set ref 327* line 000547 automatic varying char(3000) dcl 379 in procedure "process_symbol" set ref 473* 597 640 640 646* 646 line 5 based structure array level 2 in structure "aplsv_function" dcl 2-53 in procedure "ctw" lock 30 based char(32) level 3 dcl 6-12 set ref 321* log10 builtin function dcl 2-321 ref 2-323 ltrim builtin function dcl 89 ref 328 338 517 521 man_number 75 based bit(36) level 2 dcl 2-15 set ref 336* maxlength builtin function dcl 89 ref 640 meaning_pointer 1 based fixed bin(21,0) level 2 dcl 6-59 set ref 409* 601* 616* member 2 based fixed bin(21,0) array level 2 dcl 6-76 set ref 624* mfloat 000424 automatic structure level 1 dcl 2-272 set ref 2-300* 2-313 mod builtin function dcl 89 ref 429 430 436 446 535 msf_manager_$adjust 000054 constant entry external dcl 99 ref 342 msf_manager_$close 000056 constant entry external dcl 99 ref 343 355 msf_manager_$get_ptr 000052 constant entry external dcl 99 ref 677 msf_manager_$open 000050 constant entry external dcl 99 ref 226 mulsym_ptr 002126 automatic pointer dcl 380 set ref 399* 409 601 616 623* myname 000017 constant char(17) initial unaligned dcl 135 set ref 172* 183* 193* 193* 201* 208* 215* 222* 229* 249* 250* 271* 345* 346* 352* 356* 553* 642* 680* 686* n parameter fixed bin(17,0) dcl 653 in procedure "get_packs" ref 650 659 662 n parameter fixed bin(17,0) dcl 814 in procedure "dumphex" set ref 812 818* name 1(09) based char level 2 in structure "symbol_struc" packed unaligned dcl 2-46 in procedure "ctw" set ref 737* name 3 based char level 2 in structure "saved_sb" packed unaligned dcl 6-59 in procedure "ctw" set ref 835* name_length 2 based fixed bin(17,0) level 2 dcl 6-59 set ref 834* 835 name_or_offset 1(09) based bit(27) level 2 packed unaligned dcl 2-51 ref 735 nlines 2(18) based fixed bin(17,0) level 2 in structure "aplsv_function" packed unaligned dcl 2-53 in procedure "ctw" set ref 469* nlines 002130 automatic fixed bin(17,0) dcl 381 in procedure "process_symbol" set ref 469* 472 null builtin function dcl 89 ref 38 38 38 206 227 233 299 309 678 num_symbols 000220 automatic fixed bin(17,0) dcl 38 set ref 260* 264* 264 281 324 number_of_dimensions 000350 automatic fixed bin(17,0) dcl 4-3 set ref 302* 303 303 306 406* 407 408 408 411 413 461 number_of_members 1 based fixed bin(17,0) level 2 dcl 6-76 set ref 620* number_of_ptrs 000221 automatic fixed bin(17,0) dcl 38 set ref 295* 296 296 number_of_symbols 20 based fixed bin(17,0) level 3 dcl 6-12 set ref 324* numeric_datum based float bin(63) array dcl 4-23 set ref 438 438 440 442* 448 448 450 452* numeric_value_type constant bit(18) initial unaligned dcl 7-30 ref 449 offset 5(09) based bit(27) array level 3 packed unaligned dcl 2-53 ref 476 operator_bead based structure level 1 dcl 8-3 other_ws_info 10 based structure level 2 dcl 6-12 outpath based char unaligned dcl 81 set ref 212* 215* outpath_arg_len 000222 automatic fixed bin(21,0) dcl 38 set ref 149* 168* 212 212 215 215 outpath_arg_ptr 000224 automatic pointer dcl 38 set ref 148* 166* 212 215 outstring 000101 automatic char unaligned dcl 752 set ref 759* 765* 767* 768 770* 772* outstringl 000100 automatic fixed bin(21,0) dcl 749 set ref 758* 765 766* 766 767 768 770 771* 771 772 773* 773 p parameter pointer dcl 814 set ref 812 817* 818* parse_frame_type 1 based fixed bin(17,0) level 2 dcl 6-92 set ref 298* pathx 000226 automatic fixed bin(17,0) dcl 38 set ref 147* 158 163* 163 169* 169 191 printing_width 324 based bit(18) level 2 packed unaligned dcl 2-15 set ref 335* pt parameter pointer dcl 706 in procedure "uvp_ptr" ref 703 708 708 pt parameter pointer dcl 698 in procedure "vp_ptr" ref 695 700 pt 000100 automatic pointer dcl 732 in procedure "get_symname" set ref 734* 735 735* 735 737 ptr builtin function dcl 89 ref 692 700 708 q 000230 automatic pointer initial array dcl 38 set ref 38* 38* 38* 249* 250* 251 255 346* 352* 471 597 597 599 609 qr13stk 40 based bit(36) level 2 in structure "aplsv_ws" dcl 2-15 in procedure "ctw" set ref 241* qr13stk 000236 automatic fixed bin(17,0) dcl 38 in procedure "ctw" set ref 241* 245 592 592 qsymbot 41 based bit(36) level 2 in structure "aplsv_ws" dcl 2-15 in procedure "ctw" set ref 242* 244* qsymbot 000237 automatic fixed bin(17,0) dcl 38 in procedure "ctw" set ref 242* 245 random_link 13 based fixed bin(35,0) level 3 dcl 6-12 set ref 330* rel builtin function dcl 89 ref 624 700 708 829 release_temp_segments_ 000014 constant entry external dcl 99 ref 249 346 352 relock_functions 000240 automatic bit(1) dcl 38 set ref 150* 178* 180* 605 rho 3 based bit(36) array level 2 in structure "aplsv_value" dcl 2-65 in procedure "ctw" set ref 407 414* rho 4 based fixed bin(21,0) array level 2 in structure "saved_value_bead" dcl 6-49 in procedure "ctw" set ref 310* 415* rhorho 2 based fixed bin(17,0) level 2 dcl 6-49 set ref 308* 411* rhorho_x4 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-65 set ref 406* s360_trtbl based fixed bin(21,0) array dcl 81 set ref 624 830 838* 841 s360_trtblptr 000304 automatic pointer dcl 38 set ref 255* 624 830 838 841 s360exp 000430 automatic bit(7) unaligned dcl 2-276 set ref 2-297* 2-298 s360expf 000434 automatic fixed bin(7,0) dcl 2-277 set ref 2-298* 2-299 2-323 2-327 s360mant 000426 automatic bit(56) unaligned dcl 2-276 set ref 2-291* 2-293 2-327 2-327 s360mantf 000432 automatic fixed bin(56,0) dcl 2-277 set ref 2-293* 2-294 s360relo 002640 automatic fixed bin(18,0) dcl 825 set ref 829* 830 838 841 s360sp parameter pointer dcl 827 set ref 822 829 832 835* save_version based fixed bin(17,0) level 2 dcl 6-12 set ref 320* saved_bead_count 000354 automatic fixed bin(17,0) dcl 6-35 set ref 281* 314 314 316 316 323 716* 716 717 718 saved_bead_pointer 000360 automatic pointer dcl 6-41 set ref 233* 303* 303 303 304* 304* 305 306 307 308 309 310 408* 408 408 409* 409* 411 415 418 432 433 439 440 449 450 459 460 461 461 463 600* 600 600 601* 601* 602 603 605 607 608 609 615* 615 615 616* 616* 617 619 620 624 826 833* 833 833 834 835 836 837 838 838 838 838 840* saved_bead_table based pointer array unaligned dcl 81 set ref 316 717* 724* 841 saved_bead_table_ptr 000242 automatic pointer dcl 38 set ref 251* 316 717 724 841 saved_boolean_datum based bit dcl 6-56 set ref 424 424 427* 430* 432 saved_fb based structure level 1 dcl 6-82 set ref 600 600 saved_frame_pointer 000364 automatic pointer dcl 6-90 set ref 296* 296 296 297 298 299 300* saved_gb based structure level 1 dcl 6-76 set ref 615 615 saved_general_bead based structure level 1 dcl 6-44 saved_pf based structure level 1 dcl 6-92 set ref 296 296 saved_sb based structure level 1 dcl 6-59 set ref 833 833 838 838 838 838 saved_value_bead based structure level 1 dcl 6-49 set ref 303 303 408 408 saved_ws_info based structure level 1 dcl 6-12 set ref 236 236 saved_ws_info_pointer 000352 automatic pointer dcl 6-9 set ref 236* 236 236 300 304 315 320 321 322 323 324 325 326 328 329 330 331 332 332 333 334 335 336 337 338 savep 002642 automatic pointer initial dcl 826 set ref 826* 840 seed 117 based bit(36) level 2 dcl 2-15 set ref 330* segptrs 000244 automatic pointer array dcl 38 set ref 677* 678 683* 692 708 size 0(18) based bit(18) level 2 in structure "saved_general_bead" packed unaligned dcl 6-44 in procedure "ctw" set ref 432* 440* 450* 459* 461* 461 603* 617* 837* size builtin function dcl 89 in procedure "ctw" ref 236 236 245 296 296 303 303 306 314 314 408 408 424 424 432 438 438 440 448 448 450 456 456 459 461 600 600 603 615 615 617 807 807 833 833 837 size 1 based fixed bin(8,0) level 2 in structure "symtbe" packed unaligned dcl 2-51 in procedure "ctw" ref 735 832 size 2 based fixed bin(17,0) level 2 in structure "fun_code" packed unaligned dcl 2-78 in procedure "ctw" set ref 477* size 0(18) based bit(18) level 3 in structure "saved_value_bead" packed unaligned dcl 6-49 in procedure "ctw" set ref 306* size 1 based fixed bin(8,0) level 2 in structure "symbol_struc" packed unaligned dcl 2-46 in procedure "ctw" ref 737 737 space_state 002131 automatic bit(1) unaligned dcl 382 set ref 478* 492* 495 497* 582* 588 594* string builtin function dcl 89 set ref 305* 433* 439* 449* 460* 602* 619* 836* substr builtin function dcl 2-139 in procedure "cv_fb17" set ref 2-146 2-146* substr builtin function dcl 89 in procedure "ctw" set ref 156 328 328 2-167 2-167 2-186* 2-186 2-187* 2-187 2-188* 2-188 2-189* 2-189 2-260 2-261 2-287 2-287 2-289 2-289 2-291 2-291 2-296 2-297 2-327 2-327 2-340 427* 430* 482 543 546 581 581 590 590 660 805 805 substr builtin function dcl 755 in procedure "requote" set ref 759* 761 765* 765 767* 768 770* 770 772* suspbarf 000306 automatic bit(1) dcl 38 set ref 259* 271 275* sx 000307 automatic fixed bin(17,0) dcl 38 in procedure "ctw" set ref 261* 262 277 277* 285* 286 288* sx 002132 automatic fixed bin(17,0) dcl 383 in procedure "process_symbol" set ref 397* 398 symbol_bead based structure level 1 dcl 3-13 ref 837 symbol_name_length 000362 automatic fixed bin(17,0) dcl 6-41 set ref 832* 833 833 834 symbol_struc based structure level 1 dcl 2-46 symbol_type constant bit(18) initial unaligned dcl 7-30 ref 836 symbolx 000310 automatic fixed bin(17,0) dcl 38 set ref 280* 723* 723 724 725 symbp 3 based bit(36) array level 2 dcl 2-72 set ref 622* symtab_len 000311 automatic fixed bin(17,0) dcl 38 set ref 245* 261 285 symtabe_ptr 002622 automatic pointer dcl 799 set ref 803* 805 805 805* 807* symtbe based structure level 1 dcl 2-51 ref 245 807 807 symtbep 000342 automatic pointer dcl 2-8 set ref 245 398* 399* 400 402 404 465 465 605 611 807 807 sz parameter fixed bin(17,0) dcl 672 ref 669 674 691 692 tail based bit level 2 packed unaligned dcl 2-83 ref 430 ten_digits 000312 automatic picture(10) unaligned dcl 38 in procedure "ctw" set ref 327* 328 337* 338 ten_digits 002133 automatic picture(10) unaligned dcl 384 in procedure "process_symbol" set ref 515* 517 521 text 5 based char level 2 dcl 6-82 set ref 609* text_length 4 based fixed bin(17,0) level 2 dcl 6-82 set ref 608* 609 this_rho 000315 automatic fixed bin(17,0) dcl 38 set ref 414* 415 416 time_saved 22 based fixed bin(71,0) level 3 in structure "saved_ws_info" dcl 6-12 in procedure "ctw" set ref 331* 332* 332 time_saved 102 based bit(36) level 2 in structure "aplsv_ws" dcl 2-15 in procedure "ctw" set ref 332* total_beads 3 based fixed bin(24,0) level 2 dcl 6-12 set ref 323* total_data_elements 1 based fixed bin(21,0) level 2 dcl 6-49 set ref 307* 418* total_members 000363 automatic fixed bin(17,0) dcl 6-41 set ref 614* 615 615 617 620 621 type based structure level 2 in structure "saved_general_bead" packed unaligned dcl 6-44 in procedure "ctw" set ref 433* 439* 449* 460* 602* 619* 836* type based structure level 3 in structure "symbol_bead" packed unaligned dcl 3-13 in procedure "ctw" type based structure level 3 in structure "group_bead" packed unaligned dcl 9-7 in procedure "ctw" type based structure level 3 in structure "saved_value_bead" packed unaligned dcl 6-49 in procedure "ctw" set ref 305* type 2 based bit(9) level 2 in structure "aplsv_value" packed unaligned dcl 2-65 in procedure "ctw" ref 419 type 000316 automatic bit(9) dcl 38 in procedure "ctw" set ref 262* 264 264 264 264 264 267 267 269 286* 288 288 288 288 288 type based bit(9) array level 2 in structure "aplsv_symtab" packed unaligned dcl 2-40 in procedure "ctw" set ref 262 286 type based structure level 3 in structure "value_bead" packed unaligned dcl 4-3 in procedure "ctw" type based bit(9) level 2 in structure "symtbe" packed unaligned dcl 2-51 in procedure "ctw" ref 402 465 465 605 611 805 805 type based structure level 2 in structure "general_bead" packed unaligned dcl 7-3 in procedure "ctw" type based structure level 3 in structure "function_bead" packed unaligned dcl 5-5 in procedure "ctw" unspec builtin function dcl 2-139 in procedure "cv_fb17" set ref 2-143* 2-149* unspec builtin function dcl 89 in procedure "ctw" set ref 2-300* 2-300 2-313* 2-313 2-340* 2-341* 590* 784* user_name 71 based char(32) level 3 dcl 6-12 set ref 338* user_number 26 based fixed bin(35,0) level 3 dcl 6-12 set ref 336* 337 value_bead based structure level 1 dcl 4-3 ref 306 461 value_offset 0(09) based bit(27) level 2 packed unaligned dcl 2-51 ref 400 404 varsymptr 002136 automatic pointer dcl 385 set ref 622* 623* 624 virtual_address 000102 automatic pointer dcl 2-235 set ref 2-248* 2-249 vp parameter pointer dcl 714 ref 711 717 720 724 vtemp 002140 automatic varying char(1000) dcl 386 set ref 503* 506* 508* 512* 517* 520* 521* 521 524* 524 527* 533* 540* 540 543* 543 545* 545 548* 557* 564* 567* 568* 568 571* 571 574* 592* 593* width 11 based fixed bin(17,0) level 3 dcl 6-12 set ref 335* word 000401 automatic bit(36) dcl 2-135 in procedure "cv_fb17" set ref 2-143* 2-144* 2-144* 2-146 2-146* 2-149 word 000100 automatic bit(36) dcl 2-181 in procedure "pack" set ref 2-185* 2-186* 2-187* 2-188* 2-189* 2-190 word1 000435 automatic bit(36) dcl 2-279 set ref 2-260* 2-287* 2-291 2-296 2-297 word2 000436 automatic bit(36) dcl 2-279 set ref 2-261* 2-289* 2-291 wsid 40 based char(100) level 3 dcl 6-12 set ref 328* wsname 72 based structure level 2 dcl 2-15 zc parameter bit(8) unaligned dcl 781 ref 778 784 zcode_chars parameter char unaligned dcl 2-199 set ref 2-194 2-203 2-216 2-221* zero_or_one_value_type constant bit(18) initial unaligned dcl 7-30 ref 433 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BIT_TYPE internal static bit(9) initial dcl 2-117 Binary internal static bit(1) initial dcl 1-16 CCEOT internal static bit(9) initial unaligned dcl 2-94 CHAR_TYPE internal static bit(9) initial dcl 2-117 FIXED_TYPE internal static bit(9) initial dcl 2-117 FLOAT_TYPE internal static bit(9) initial dcl 2-117 MAX_VALUE_BEAD_SIZE internal static fixed bin(19,0) initial dcl 4-28 NumberSize internal static fixed bin(4,0) initial dcl 1-25 QAlpha internal static char(1) initial unaligned dcl 10-11 QAndSign internal static char(1) initial unaligned dcl 10-11 QApostrophe internal static char(1) initial unaligned dcl 10-11 QBackSlash internal static char(1) initial unaligned dcl 10-11 QBackSlashHyphen internal static char(1) initial unaligned dcl 10-11 QBackSpace internal static char(1) initial unaligned dcl 10-11 QBell internal static char(1) initial unaligned dcl 10-11 QCap internal static char(1) initial unaligned dcl 10-11 QCeiling internal static char(1) initial unaligned dcl 10-11 QCentSign internal static char(1) initial unaligned dcl 10-11 QCircle internal static char(1) initial unaligned dcl 10-11 QCircleBackSlash internal static char(1) initial unaligned dcl 10-11 QCircleBar internal static char(1) initial unaligned dcl 10-11 QCircleHyphen internal static char(1) initial unaligned dcl 10-11 QCircleSlash internal static char(1) initial unaligned dcl 10-11 QCircleStar internal static char(1) initial unaligned dcl 10-11 QColon internal static char(1) initial unaligned dcl 10-11 QComma internal static char(1) initial unaligned dcl 10-11 QCommaHyphen internal static char(1) initial unaligned dcl 10-11 QConditionalNewLine internal static char(1) initial unaligned dcl 10-11 QCup internal static char(1) initial unaligned dcl 10-11 QDeCode internal static char(1) initial unaligned dcl 10-11 QDel internal static char(1) initial unaligned dcl 10-11 QDelTilde internal static char(1) initial unaligned dcl 10-11 QDelta internal static char(1) initial unaligned dcl 10-11 QDelta_ internal static char(1) initial unaligned dcl 10-11 QDiamond internal static char(1) initial unaligned dcl 10-11 QDiaresis internal static char(1) initial unaligned dcl 10-11 QDivision internal static char(1) initial unaligned dcl 10-11 QDollar internal static char(1) initial unaligned dcl 10-11 QDomino internal static char(1) initial unaligned dcl 10-11 QDownArrow internal static char(1) initial unaligned dcl 10-11 QEight internal static char(1) initial unaligned dcl 10-11 QEight_ internal static char(1) initial unaligned dcl 10-11 QEnCode internal static char(1) initial unaligned dcl 10-11 QEpsilon internal static char(1) initial unaligned dcl 10-11 QEqual internal static char(1) initial unaligned dcl 10-11 QExclamation internal static char(1) initial unaligned dcl 10-11 QExecuteSign internal static char(1) initial unaligned dcl 10-11 QFive internal static char(1) initial unaligned dcl 10-11 QFive_ internal static char(1) initial unaligned dcl 10-11 QFloor internal static char(1) initial unaligned dcl 10-11 QFormatSign internal static char(1) initial unaligned dcl 10-11 QFour internal static char(1) initial unaligned dcl 10-11 QFour_ internal static char(1) initial unaligned dcl 10-11 QGradeDown internal static char(1) initial unaligned dcl 10-11 QGradeUp internal static char(1) initial unaligned dcl 10-11 QGreaterOrEqual internal static char(1) initial unaligned dcl 10-11 QGreaterThan internal static char(1) initial unaligned dcl 10-11 QIBeam internal static char(1) initial unaligned dcl 10-11 QIota internal static char(1) initial unaligned dcl 10-11 QLamp internal static char(1) initial unaligned dcl 10-11 QLeftArrow internal static char(1) initial unaligned dcl 10-11 QLeftBrace internal static char(1) initial unaligned dcl 10-11 QLeftBracket internal static char(1) initial unaligned dcl 10-11 QLeftLump internal static char(1) initial unaligned dcl 10-11 QLeftParen internal static char(1) initial unaligned dcl 10-11 QLeftTack internal static char(1) initial unaligned dcl 10-11 QLessOrEqual internal static char(1) initial unaligned dcl 10-11 QLessThan internal static char(1) initial unaligned dcl 10-11 QLetterA internal static char(1) initial unaligned dcl 10-11 QLetterA_ internal static char(1) initial unaligned dcl 10-11 QLetterB internal static char(1) initial unaligned dcl 10-11 QLetterB_ internal static char(1) initial unaligned dcl 10-11 QLetterC internal static char(1) initial unaligned dcl 10-11 QLetterC_ internal static char(1) initial unaligned dcl 10-11 QLetterD internal static char(1) initial unaligned dcl 10-11 QLetterD_ internal static char(1) initial unaligned dcl 10-11 QLetterE internal static char(1) initial unaligned dcl 10-11 QLetterE_ internal static char(1) initial unaligned dcl 10-11 QLetterF internal static char(1) initial unaligned dcl 10-11 QLetterF_ internal static char(1) initial unaligned dcl 10-11 QLetterG internal static char(1) initial unaligned dcl 10-11 QLetterG_ internal static char(1) initial unaligned dcl 10-11 QLetterH internal static char(1) initial unaligned dcl 10-11 QLetterH_ internal static char(1) initial unaligned dcl 10-11 QLetterI internal static char(1) initial unaligned dcl 10-11 QLetterI_ internal static char(1) initial unaligned dcl 10-11 QLetterJ internal static char(1) initial unaligned dcl 10-11 QLetterJ_ internal static char(1) initial unaligned dcl 10-11 QLetterK internal static char(1) initial unaligned dcl 10-11 QLetterK_ internal static char(1) initial unaligned dcl 10-11 QLetterL internal static char(1) initial unaligned dcl 10-11 QLetterL_ internal static char(1) initial unaligned dcl 10-11 QLetterM internal static char(1) initial unaligned dcl 10-11 QLetterM_ internal static char(1) initial unaligned dcl 10-11 QLetterN internal static char(1) initial unaligned dcl 10-11 QLetterN_ internal static char(1) initial unaligned dcl 10-11 QLetterO internal static char(1) initial unaligned dcl 10-11 QLetterO_ internal static char(1) initial unaligned dcl 10-11 QLetterP internal static char(1) initial unaligned dcl 10-11 QLetterP_ internal static char(1) initial unaligned dcl 10-11 QLetterQ internal static char(1) initial unaligned dcl 10-11 QLetterQ_ internal static char(1) initial unaligned dcl 10-11 QLetterR internal static char(1) initial unaligned dcl 10-11 QLetterR_ internal static char(1) initial unaligned dcl 10-11 QLetterS internal static char(1) initial unaligned dcl 10-11 QLetterS_ internal static char(1) initial unaligned dcl 10-11 QLetterT internal static char(1) initial unaligned dcl 10-11 QLetterT_ internal static char(1) initial unaligned dcl 10-11 QLetterU internal static char(1) initial unaligned dcl 10-11 QLetterU_ internal static char(1) initial unaligned dcl 10-11 QLetterV internal static char(1) initial unaligned dcl 10-11 QLetterV_ internal static char(1) initial unaligned dcl 10-11 QLetterW internal static char(1) initial unaligned dcl 10-11 QLetterW_ internal static char(1) initial unaligned dcl 10-11 QLetterX internal static char(1) initial unaligned dcl 10-11 QLetterX_ internal static char(1) initial unaligned dcl 10-11 QLetterY internal static char(1) initial unaligned dcl 10-11 QLetterY_ internal static char(1) initial unaligned dcl 10-11 QLetterZ internal static char(1) initial unaligned dcl 10-11 QLetterZ_ internal static char(1) initial unaligned dcl 10-11 QLineFeed internal static char(1) initial unaligned dcl 10-11 QMarkError internal static char(1) initial unaligned dcl 10-11 QMinus internal static char(1) initial unaligned dcl 10-11 QNandSign internal static char(1) initial unaligned dcl 10-11 QNewLine internal static char(1) initial unaligned dcl 10-11 QNine internal static char(1) initial unaligned dcl 10-11 QNine_ internal static char(1) initial unaligned dcl 10-11 QNorSign internal static char(1) initial unaligned dcl 10-11 QNotEqual internal static char(1) initial unaligned dcl 10-11 QOmega internal static char(1) initial unaligned dcl 10-11 QOne internal static char(1) initial unaligned dcl 10-11 QOne_ internal static char(1) initial unaligned dcl 10-11 QOrSign internal static char(1) initial unaligned dcl 10-11 QPeriod internal static char(1) initial unaligned dcl 10-11 QPlus internal static char(1) initial unaligned dcl 10-11 QQuad internal static char(1) initial unaligned dcl 10-11 QQuadQuote internal static char(1) initial unaligned dcl 10-11 QQuestion internal static char(1) initial unaligned dcl 10-11 QRho internal static char(1) initial unaligned dcl 10-11 QRightArrow internal static char(1) initial unaligned dcl 10-11 QRightBrace internal static char(1) initial unaligned dcl 10-11 QRightBracket internal static char(1) initial unaligned dcl 10-11 QRightLump internal static char(1) initial unaligned dcl 10-11 QRightParen internal static char(1) initial unaligned dcl 10-11 QRightTack internal static char(1) initial unaligned dcl 10-11 QSemiColon internal static char(1) initial unaligned dcl 10-11 QSeven internal static char(1) initial unaligned dcl 10-11 QSeven_ internal static char(1) initial unaligned dcl 10-11 QSix internal static char(1) initial unaligned dcl 10-11 QSix_ internal static char(1) initial unaligned dcl 10-11 QSlash internal static char(1) initial unaligned dcl 10-11 QSlashHyphen internal static char(1) initial unaligned dcl 10-11 QSmallCircle internal static char(1) initial unaligned dcl 10-11 QSpace internal static char(1) initial unaligned dcl 10-11 QStar internal static char(1) initial unaligned dcl 10-11 QTab internal static char(1) initial unaligned dcl 10-11 QThree internal static char(1) initial unaligned dcl 10-11 QThree_ internal static char(1) initial unaligned dcl 10-11 QTilde internal static char(1) initial unaligned dcl 10-11 QTimes internal static char(1) initial unaligned dcl 10-11 QTwo internal static char(1) initial unaligned dcl 10-11 QTwo_ internal static char(1) initial unaligned dcl 10-11 QUnderLine internal static char(1) initial unaligned dcl 10-11 QUpArrow internal static char(1) initial unaligned dcl 10-11 QVerticalBar internal static char(1) initial unaligned dcl 10-11 QZero internal static char(1) initial unaligned dcl 10-11 QZero_ internal static char(1) initial unaligned dcl 10-11 UNKNOWN1_TYPE internal static bit(9) initial dcl 2-101 UNKNOWN2_TYPE internal static bit(9) initial dcl 2-101 UNKNOWN3_TYPE internal static bit(9) initial dcl 2-101 complex_datum based complex float bin(63) array dcl 4-26 complex_value_type internal static bit(18) initial unaligned dcl 7-30 current_save_version internal static fixed bin(17,0) initial dcl 6-9 label_type internal static bit(18) initial unaligned dcl 7-30 lexed_function_type internal static bit(18) initial unaligned dcl 7-30 list_value_type internal static bit(18) initial unaligned dcl 7-30 not_integer_mask internal static bit(18) initial unaligned dcl 7-30 not_zero_or_one_mask internal static bit(18) initial unaligned dcl 7-30 operator_type internal static bit(18) initial unaligned dcl 7-30 saved_lb based structure level 1 dcl 6-67 saved_reductions_pointer automatic pointer dcl 6-90 saved_rs based structure array level 1 dcl 6-125 saved_rs_for_op based structure array level 1 dcl 6-125 saved_sf based structure level 1 dcl 6-139 shared_variable_type internal static bit(18) initial unaligned dcl 7-30 symlen automatic fixed bin(21,0) dcl 2-7 symptr automatic pointer dcl 2-5 type_names internal static varying char(7) initial array dcl 2-114 v3_saved_pf based structure level 1 dcl 6-109 value_type internal static bit(18) initial unaligned dcl 7-30 NAMES DECLARED BY EXPLICIT CONTEXT. abort 002472 constant label dcl 352 ref 681 687 allocate 006026 constant entry internal dcl 669 ref 236 296 303 314 408 424 438 448 456 600 615 833 beadno 006243 constant entry internal dcl 711 ref 304 409 601 616 beadno$symbol 006262 constant entry internal dcl 720 ref 838 byteptr 003022 constant entry internal dcl 2-226 ref 244 400 474 476 622 735 convert_tsoapl_ws 000434 constant entry external dcl 11 ctw 000424 constant entry external dcl 11 cv_ascii 002716 constant entry internal dcl 2-194 ref 328 331 458 503 506 737 cv_asciich 006540 constant entry internal dcl 778 ref 581 cv_b18 002632 constant entry internal dcl 2-154 ref 335 cv_fb17 002570 constant entry internal dcl 2-125 ref 406 469 477 614 cv_float 003055 constant entry internal dcl 2-253 ref 452 cv_floatx 003060 constant entry internal dcl 2-258 ref 560 cvb36f32 003471 constant entry internal dcl 2-346 ref 241 242 327 330 332 334 336 cvf32 003441 constant entry internal dcl 2-336 ref 514 data_type 000003 constant label array(4) dcl 424 ref 421 dumphex 006660 constant entry internal dcl 812 ref 807 end_data_type 004216 constant label dcl 461 ref 434 444 454 end_pathcase 000540 constant label dcl 176 ref 164 170 get_packs 005747 constant entry internal dcl 650 ref 499 514 559 get_symname 006303 constant entry internal dcl 729 ref 592 805 835 intern_360_sym 006742 constant entry internal dcl 822 ref 399 623 nextj 006430 constant label dcl 761 ref 775 pack 002660 constant entry internal dcl 2-172 ref 2-144 2-248 2-287 2-289 2-350 414 442 pathcase 000000 constant label array(0:2) dcl 160 set ref 158 print_losing_flonum 003267 constant entry internal dcl 2-317 ref 2-303 2-308 process_symbol 003510 constant entry internal dcl 359 ref 288 report_bad_symbol 006601 constant entry internal dcl 790 ref 277 requote 006400 constant entry internal dcl 741 ref 506 termin_finale 002460 constant label dcl 348 ref 216 223 230 usage 000642 constant label dcl 193 ref 174 uvp_ptr 006226 constant entry internal dcl 703 ref 841 vp_ptr 006212 constant entry internal dcl 695 ref 300 304 304 315 409 409 463 601 601 616 616 838 838 vput 005661 constant entry internal dcl 631 ref 495 508 527 548 574 581 588 593 xx 003077 constant label dcl 2-287 ref 2-256 yyy 003125 constant label dcl 2-291 ref 2-262 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7732 10024 7357 7742 Length 10500 7357 72 437 353 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ctw 1922 external procedure is an external procedure. cv_fb17 internal procedure shares stack frame of external procedure ctw. cv_b18 internal procedure shares stack frame of external procedure ctw. pack 65 internal procedure is called by several nonquick procedures. cv_ascii 92 internal procedure uses auto adjustable storage, uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. byteptr 80 internal procedure is called by several nonquick procedures. cv_float internal procedure shares stack frame of external procedure ctw. print_losing_flonum internal procedure shares stack frame of external procedure ctw. cvf32 internal procedure shares stack frame of external procedure ctw. cvb36f32 internal procedure shares stack frame of external procedure ctw. on unit on line 249 80 on unit process_symbol internal procedure shares stack frame of external procedure ctw. vput internal procedure shares stack frame of external procedure ctw. get_packs 71 internal procedure uses returns(char(*)) or returns(bit(*)). allocate internal procedure shares stack frame of external procedure ctw. vp_ptr internal procedure shares stack frame of external procedure ctw. uvp_ptr internal procedure shares stack frame of external procedure ctw. beadno internal procedure shares stack frame of external procedure ctw. get_symname 91 internal procedure uses returns(char(*)) or returns(bit(*)). requote 75 internal procedure uses auto adjustable storage, uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. cv_asciich internal procedure shares stack frame of external procedure ctw. report_bad_symbol internal procedure shares stack frame of external procedure ctw. dumphex internal procedure shares stack frame of external procedure ctw. intern_360_sym internal procedure shares stack frame of external procedure ctw. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME byteptr 000100 aplsv_byte_address byteptr 000102 virtual_address byteptr ctw 000100 arg_len ctw 000101 arg_number ctw 000102 arg_ptr ctw 000104 bitcount ctw 000105 code ctw 000106 curr_component ctw 000107 curr_seglen ctw 000110 dname ctw 000162 ename ctw 000172 ename1 ctw 000202 ename2 ctw 000212 fcbp ctw 000214 idx ctw 000215 inpath_arg_len ctw 000216 inpath_arg_ptr ctw 000220 num_symbols ctw 000221 number_of_ptrs ctw 000222 outpath_arg_len ctw 000224 outpath_arg_ptr ctw 000226 pathx ctw 000230 q ctw 000236 qr13stk ctw 000237 qsymbot ctw 000240 relock_functions ctw 000242 saved_bead_table_ptr ctw 000244 segptrs ctw 000304 s360_trtblptr ctw 000306 suspbarf ctw 000307 sx ctw 000310 symbolx ctw 000311 symtab_len ctw 000312 ten_digits ctw 000315 this_rho ctw 000316 type ctw 000326 aplsv_ws_ptr ctw 000330 aplsv_symtab_ptr ctw 000332 aplsv_function_ptr ctw 000334 aplsv_value_ptr ctw 000336 code_ptr ctw 000340 aplsv_group_ptr ctw 000342 symtbep ctw 000344 array_ptr ctw 000346 data_elements ctw 000347 code_len ctw 000350 number_of_dimensions ctw 000352 saved_ws_info_pointer ctw 000354 saved_bead_count ctw 000356 bead_description_pointer ctw 000360 saved_bead_pointer ctw 000362 symbol_name_length ctw 000363 total_members ctw 000364 saved_frame_pointer ctw 000400 fb17 cv_fb17 000401 word cv_fb17 000410 b18 cv_b18 000420 float_result cv_float 000422 exponent cv_float 000424 mfloat cv_float 000426 s360mant cv_float 000430 s360exp cv_float 000432 s360mantf cv_float 000434 s360expf cv_float 000435 word1 cv_float 000436 word2 cv_float 000446 flt_exponent print_losing_flonum 000450 int_exponent print_losing_flonum 000460 f35 cvf32 000476 bit72 process_symbol 000500 code process_symbol 000501 cx process_symbol 000502 data_ptr process_symbol 000504 dtype process_symbol 000505 elmtct process_symbol 000506 f17un process_symbol 000507 float_temp process_symbol 000542 floatbin63 process_symbol 000544 fx35 process_symbol 000545 j process_symbol 000546 k process_symbol 000547 line process_symbol 002126 mulsym_ptr process_symbol 002130 nlines process_symbol 002131 space_state process_symbol 002132 sx process_symbol 002133 ten_digits process_symbol 002136 varsymptr process_symbol 002140 vtemp process_symbol 002612 asc cv_asciich 002622 symtabe_ptr report_bad_symbol 002640 s360relo intern_360_sym 002642 savep intern_360_sym cv_ascii 000100 ascii_chars cv_ascii get_packs 000100 btemp get_packs 000104 j get_packs get_symname 000100 pt get_symname pack 000100 word pack requote 000100 outstringl requote 000101 outstring requote 000101 i requote 000102 j requote THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_e_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return fl2_to_fx1 fl2_to_fx2 bs_to_fx2 alloc_auto_adj bound_check_signal mpfx2 mod_fx1 enable shorten_stack ext_entry int_entry int_entry_desc fetch_bits trunc_fx2 floor_fl repeat set_bs_eis return_chars_eis return_bits_eis real_to_real_rd divide_fx1 log10 dbl_p_dbl real_p_real THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_zcode_to_ascii_ apl_zcode_to_ascii_ com_err_ convert_date_to_binary_ cu_$arg_ptr delete_$path dump_segment_ expand_pathname_$add_suffix get_equal_name_ get_temp_segments_ hcs_$initiate_count hcs_$terminate_noname hcs_$truncate_seg ioa_ ioa_ ioa_$nnl ioa_$rsnnl msf_manager_$adjust msf_manager_$close msf_manager_$get_ptr msf_manager_$open release_temp_segments_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$too_many_args iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 38 000376 11 000423 147 000442 148 000443 149 000445 150 000447 152 000450 153 000452 155 000467 156 000472 158 000477 160 000501 162 000502 163 000504 164 000505 166 000506 168 000507 169 000511 170 000512 172 000513 174 000537 178 000540 180 000554 183 000566 184 000620 187 000621 188 000622 189 000637 191 000640 193 000642 195 000671 198 000672 199 000732 201 000734 202 000766 205 000767 206 001031 208 001035 209 001070 212 001071 213 001127 215 001131 216 001155 219 001156 220 001205 222 001207 223 001233 226 001234 227 001261 229 001265 230 001320 233 001321 234 001323 235 001325 236 001327 241 001333 242 001353 244 001373 245 001404 249 001414 250 001453 251 001475 255 001477 259 001501 260 001502 261 001503 262 001513 264 001521 267 001534 269 001541 271 001543 275 001571 276 001573 277 001574 278 001601 280 001603 281 001604 285 001606 286 001615 288 001622 291 001641 295 001643 296 001644 297 001651 298 001654 299 001656 300 001660 302 001665 303 001667 304 001673 305 001706 306 001711 307 001722 308 001724 309 001726 310 001730 314 001731 315 001735 316 001742 320 001762 321 001764 322 001770 323 001772 324 001774 325 001776 326 002000 327 002002 328 002022 329 002121 330 002127 331 002137 332 002221 333 002245 334 002251 335 002264 336 002301 337 002312 338 002322 342 002353 343 002400 345 002412 346 002436 348 002460 350 002471 352 002472 354 002514 355 002525 356 002534 357 002567 2 125 002570 2 143 002572 2 144 002606 2 146 002615 2 149 002624 2 150 002626 2 154 002632 2 167 002634 2 168 002652 2 172 002657 2 185 002665 2 186 002666 2 187 002674 2 188 002701 2 189 002706 2 190 002712 2 194 002715 2 203 002731 2 221 002743 2 216 002746 2 218 002751 2 221 002772 2 222 003011 2 226 003021 2 247 003027 2 248 003033 2 249 003052 2 253 003055 2 256 003057 2 258 003060 2 260 003062 2 261 003067 2 262 003076 2 287 003077 2 289 003111 2 291 003125 2 293 003136 2 294 003140 2 295 003143 2 296 003150 2 297 003156 2 298 003162 2 299 003164 2 300 003170 2 301 003172 2 302 003201 2 303 003221 2 304 003222 2 305 003224 2 306 003225 2 307 003227 2 308 003247 2 309 003250 2 310 003252 2 312 003253 2 313 003261 2 315 003263 2 317 003267 2 323 003270 2 324 003321 2 325 003324 2 327 003330 2 331 003440 2 336 003441 2 340 003443 2 341 003460 2 342 003466 2 346 003471 2 350 003473 359 003510 397 003512 398 003514 399 003520 400 003522 402 003535 404 003542 406 003546 407 003570 408 003573 409 003577 411 003612 412 003615 413 003617 414 003627 415 003643 416 003646 417 003650 418 003652 419 003655 421 003661 424 003670 426 003676 427 003712 428 003725 429 003727 430 003733 432 003764 433 003776 434 004001 436 004002 438 004006 439 004013 440 004016 441 004030 442 004037 443 004062 444 004064 446 004065 448 004071 449 004076 450 004101 451 004113 452 004123 453 004136 454 004140 456 004141 458 004147 459 004200 460 004213 461 004216 463 004233 464 004240 465 004241 467 004245 469 004247 471 004262 472 004263 473 004273 474 004300 476 004317 477 004333 478 004344 479 004345 480 004353 482 004361 485 004366 487 004372 489 004375 492 004407 495 004413 497 004424 499 004426 500 004454 502 004460 503 004462 506 004530 508 004603 509 004607 510 004610 512 004612 513 004613 514 004621 515 004652 517 004667 520 004713 521 004717 524 004744 527 004756 528 004761 529 004763 530 004764 532 004766 533 004774 534 004775 535 005005 537 005011 538 005020 540 005021 543 005033 545 005046 546 005055 547 005067 548 005072 549 005075 550 005103 551 005104 553 005110 557 005137 558 005140 559 005147 560 005175 561 005200 564 005246 567 005256 568 005262 571 005274 574 005306 575 005311 577 005313 578 005314 581 005317 582 005327 584 005330 585 005331 588 005344 590 005356 591 005376 592 005400 593 005435 594 005441 596 005443 597 005446 598 005461 599 005463 600 005465 601 005473 602 005506 603 005511 605 005524 607 005536 608 005540 609 005542 610 005547 611 005550 613 005552 614 005554 615 005567 616 005574 617 005607 619 005620 620 005623 621 005626 622 005635 623 005646 624 005650 625 005656 627 005660 631 005661 640 005672 642 005700 643 005720 646 005721 648 005744 650 005746 658 005754 659 005755 660 005771 661 006010 662 006012 663 006016 669 006026 674 006030 676 006036 677 006037 678 006065 680 006074 681 006124 683 006125 684 006142 686 006144 687 006174 689 006175 691 006176 692 006201 695 006212 700 006214 703 006226 708 006230 711 006243 716 006245 717 006246 718 006257 720 006262 723 006264 724 006265 725 006277 729 006302 734 006310 735 006314 737 006337 741 006377 752 006413 758 006423 759 006425 760 006427 761 006430 763 006452 765 006453 766 006474 767 006501 768 006505 770 006514 771 006527 772 006531 773 006535 774 006536 775 006537 778 006540 784 006542 785 006551 786 006571 790 006601 803 006603 805 006606 807 006652 808 006657 812 006660 817 006662 818 006702 820 006741 822 006742 826 006744 829 006746 830 006753 832 006755 833 006760 834 006766 835 006771 836 007020 837 007023 838 007034 840 007051 841 007053 ----------------------------------------------------------- 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