THIS FILE IS DAMAGED COMPILATION LISTING OF SEGMENT probe_eval_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1552.8 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 13 14 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /****^ HISTORY COMMENTS: 17* 1) change(87-06-18,RWaters), approve(87-06-18,MCR7687), audit(87-06-24,Huen), 18* install(87-07-15,MR12.1-1040): 19* Probe error #110: correctly decode lengths of char (*) parameters. 20* 2) change(88-05-31,WAAnderson), approve(88-09-30,MCR7952), 21* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 22* Extracted a chunk of code in the main body of the program and made 23* it into an internal procedure called 'do_subscripts'. This was done 24* because the code may now be executed in two different locations. 25* Changed code so it accepts the first subscript of a two dimensional 26* character array. This facilitates the printing of character strings 27* by row. Of course both subscripts may be supplied, but that implies 28* only a single character is desired. 29* 3) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 30* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 31* Added format control comment to make the source more readable. 32* 4) change(88-09-28,WAAnderson), approve(88-09-30,MCR7952), 33* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 34* Added code that allows pointers to be referenced with subscripts. 35* If the pointer points to character data and subrange is specified, 36* the values will be displayed in string format. Any other data type 37* will be displayed in array format. 38* 5) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 39* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 40* Added code to evaluate character pointers as decribed in the MTB. 41* 42* Consider the following declaration: 43* 44* char *ptr; 45* 46* The following are possible references to the pointer 'ptr' and the 47* manner in which the reference is interpreted by probe: 48* 49* *ptr - refers to a single character at the address specified 50* by the contents of 'ptr'. 51* ptr - refers to the address in 'ptr'. 52* ptr[] - refers to the contiguous series of characters beginning 53* with the character specified by the address in 'ptr' 54* and ending with the first occurence of a null. 55* ptr[N] - refers to the single character whose address is computed 56* by taking the contents of 'ptr' and adding N bytes to that 57* address. 58* ptr[N:M] - refers to the characters from ptr+N to ptr+M where 59* N and M are byte offsets. 60* END HISTORY COMMENTS */ 61 62 probe_eval_$evaluate: 63 proc (P_probe_info_ptr, P_reference, P_switches, P_value_wanted, P_code); 64 65 /* given a reference_node, and some info about how to evaluate it, get a pointer to its storage, 66* and its symbol node - for use by get_value only 67* 68* modified 13 Sept 79 JRD 69* modified 19 Feb 80 JRd for probe variables */ 70 /* Changed to accept first 3 bits of P_switches 08/26/81 S. Herbst */ 71 /* Changed to test explicit/implicit qualifiers before indirecting 09/18/81 S. Herbst */ 72 /* Fixed 'symbol' request to not check for null qualifier 08/11/82 S. Herbst */ 73 /* Fixed references to program-declared external procedures 09/22/82 S. Herbst */ 74 /* Modified June 83 JMAthane for PASCAL : 75* - replaced when necessary references to runtime_symbol structure by calls to runtime_symbol_info_ subroutine. 76* - modified to know types. 77* - modified to add "builtin" bit in reference structure. */ 78 /* Added version string to runtime_symbol_info_ structures 10/06/83 S. Herbst */ 79 /* Fixed to translate "-" to "_" in COBOL identifiers before looking up in symbol table 09/20/84 Steve Herbst */ 80 /* Fixed to special-case address of a varying string parameter 02/27/85 Steve herbst */ 81 /* Fixed to correctly decode lengths of char (*) parameters 05/21/87 by RWaters */ 82 83 84 dcl P_probe_info_ptr ptr parameter; 85 dcl 1 P_reference structure aligned like reference_node parameter; 86 dcl P_switches bit (36) aligned parameter; 87 dcl P_value_wanted bit (1) aligned parameter; 88 dcl P_code fixed bin (35) parameter; 89 90 dcl CLASS_PARAMETER fixed bin int static options (constant) 91 init (8); 92 93 dcl switches bit (36); 94 dcl want_external_sw bit (1) unaligned defined (switches) pos (1); 95 dcl default_external_sw bit (1) unaligned defined (switches) pos (2); 96 dcl default_offset_zero_sw bit (1) unaligned defined (switches) pos (3); 97 98 dcl 1 ref_subscripts aligned like reference_subscripts 99 based (P_reference.subscript_ptr); 100 dcl 1 ref_arg_list aligned like reference_arg_list 101 based (P_reference.argument_list); 102 dcl 1 ref_source_info aligned like source_info 103 based (P_reference.source_info_ptr); 104 dcl 1 sub_refs aligned like subscript_reference_ptrs 105 aligned based (P_reference.subscript_refs_ptr); 106 107 dcl 1 subscript aligned based like reference_node; 108 /* dummy for subscript */ 109 110 dcl 1 type_info like runtime_type_info; 111 dcl 1 address_info like runtime_address_info; 112 113 dcl code fixed bin (35); 114 dcl ext_name char (256) varying; 115 dcl containing_block pointer; /* to block in which symbol found */ 116 dcl (i, j) fixed bin (35); 117 dcl tp pointer; 118 dcl sub pointer; 119 dcl dimensions fixed bin;/* how many dims the symbol has */ 120 dcl real_bounds (2, 16) fixed bin (24); 121 dcl temp (2) fixed bin (35); 122 dcl steps fixed bin; 123 dcl translated_name char (256) unaligned varying; 124 125 dcl ( 126 probe_et_$bad_section, 127 probe_et_$bad_subscript, 128 probe_et_$not_based, 129 probe_et_$no_address, 130 probe_et_$null_ptr, 131 probe_et_$recorded_message, 132 probe_et_$wrong_dims 133 ) fixed bin (35) external static; 134 135 dcl ioa_$ioa_switch entry options (variable); 136 dcl probe_operate_$infix entry (ptr, char (1) aligned, 137 1 structure aligned like reference_node, 138 1 structure aligned like reference_node, 139 1 structure aligned like reference_node, 140 fixed bin (35)); 141 142 dcl stu_$find_runtime_symbol 143 entry (pointer, char (*), pointer, fixed bin) 144 returns (pointer); 145 dcl stu_$get_runtime_address 146 entry (ptr, ptr, ptr, ptr, ptr, ptr, ptr) 147 returns (ptr); 148 dcl probe_get_c_address_ 149 entry (ptr, fixed bin (6) unsigned, ptr, ptr) 150 returns (ptr); 151 dcl stu_$get_implicit_qualifier 152 entry (ptr, ptr, ptr, ptr, ptr) returns (ptr); 153 154 dcl probe_request_mgr_$find_builtin 155 entry (ptr, char (*), 156 entry () options (variable), ptr, 157 fixed bin (35)); 158 dcl builtin_entry entry variable options (variable); 159 dcl probe_variable_mgr_$find_variable 160 entry (ptr, ptr, fixed bin (35)); 161 162 dcl probe_check_ptr_$indirectable 163 entry (ptr, fixed bin (35)); 164 dcl probe_error_$record entry options (variable); 165 dcl probe_find_procedure_ entry (ptr, char (*), bit (36) aligned, ptr, 166 fixed bin (35)); 167 dcl probe_array_bounds_ entry (ptr, ptr, 1 aligned like reference_node, 168 1 aligned like source_info, ptr, fixed bin (35)) 169 returns ((2, 16) fixed bin (24)); 170 dcl probe_stack_trace_$find_previous_invocation 171 entry (ptr, ptr, fixed bin); 172 dcl probe_stack_trace_$find_block_frame 173 entry (ptr, ptr); 174 175 dcl probe_invoke_$function entry (pointer, 1 aligned like reference_node, 176 1 aligned like reference_node, fixed bin (35)); 177 dcl probe_cv_stu_code_ entry (fixed bin (35)); 178 179 180 dcl new_size fixed bin; 181 dcl (first_sub, replace_sub) 182 fixed bin; 183 dcl special_entry bit (1); 184 dcl make_this_ref_node_a_constant 185 bit (1); 186 dcl must_add_in_ptr_subscript 187 bit (1); 188 189 dcl (abs, addr, addrel, convert, divide, fixed, index, mod, null, 190 substr, translate, unspec) 191 builtin; 192 /* */ 193 194 probe_info_ptr = P_probe_info_ptr; 195 switches = P_switches; 196 P_code = 0; 197 198 if P_reference.constant then do; /* fill in information */ 199 tp = P_reference.constant_token_ptr; 200 /* get pointer to token containing constant */ 201 P_reference.address_ptr = tp -> constant.data_ptr; 202 P_reference.descriptor = tp -> constant.data_type; 203 P_reference.type = divide (tp -> constant.data_type, 2, 17, 0); 204 P_reference.type_ptr = null; 205 P_reference.packed = (mod (P_reference.descriptor, 2) = 1); 206 P_reference.precision = tp -> constant.scale_and_precision; 207 return; 208 end; 209 210 if ^probe_info.flags.execute then do; /* just syntax checking */ 211 if P_reference.n_arguments > 0 212 then /* may be, can't tell till execute time */ 213 P_reference.function = "1"b; 214 return; 215 end; 216 217 /* could optimize some builtins and probe variables by checking for leading 218* % or $ in name, since no user variable could have such a thing. 219**/ 220 221 if P_reference.path 222 then go to GET_EXTERNAL; 223 224 if ^P_reference.have_generation then do; 225 ref_source_info = current_source; 226 ref_source_info.stmnt_map_entry_index = 0; 227 /* haven't found the line yet */ 228 end; 229 230 if probe_info.language_type = COBOL_lang_type 231 then translated_name = translate (P_reference.name, "_", "-"); 232 else translated_name = P_reference.name; 233 234 P_reference.symbol_ptr = 235 stu_$find_runtime_symbol (ref_source_info.block_ptr, (translated_name), 236 containing_block, steps); 237 238 if P_reference.symbol_ptr ^= null then do; 239 /* symbol found */ 240 241 type_info.version = RUNTIME_TYPE_INFO_VERSION_1; 242 243 call runtime_symbol_info_$type (P_reference.symbol_ptr, 244 addr (type_info), code); 245 if code ^= 0 246 then go to SOME_ERROR; 247 248 address_info.version = RUNTIME_ADDRESS_INFO_VERSION_1; 249 250 call runtime_symbol_info_$address (P_reference.symbol_ptr, 251 addr (address_info), code); 252 if code ^= 0 253 then go to SOME_ERROR; 254 255 P_reference.type = type_info.type; 256 P_reference.type_ptr = type_info.type_addr; 257 P_reference.packed = type_info.packed; 258 P_reference.descriptor = type_info.type * 2; 259 260 if type_info.packed 261 then P_reference.descriptor = P_reference.descriptor + 1; 262 263 if data_type_info_$info (P_reference.type).computational 264 | probe_info.language_type = PASCAL_lang_type 265 then P_reference.precision = 266 decode (type_info.size, type_info.size_is_encoded); 267 268 if type_info.scale ^= 0 /* does type have a scale */ 269 then addr (P_reference.precision) -> encoded_precision.scale 270 = type_info.scale; 271 272 273 if P_reference.type = ext_procedure_runtime_dtype then do; 274 if probe_info.language_type = PASCAL_lang_type then do; 275 end; 276 else go to GET_EXTERNAL; 277 end; 278 279 280 /* get proper stack frame and generation */ 281 282 if P_reference.type = ext_entry_runtime_dtype then do; 283 /* entry, found in root block, want son */ 284 containing_block = 285 addrel (containing_block, 286 containing_block -> runtime_block.son); 287 steps = steps - 1; 288 end; 289 290 if ref_source_info.block_ptr ^= containing_block then do; 291 /* symbol found in father block */ 292 ref_source_info.block_ptr = containing_block; 293 /* remember correct frame */ 294 if ref_source_info.stack_ptr ^= null 295 then 296 do i = 1 to steps; /* chase display to get correct frame */ 297 if (probe_info.language_type = C_lang_type) 298 then 299 ref_source_info.stack_ptr = 300 ref_source_info.stack_ptr -> frame.back; 301 else 302 ref_source_info.stack_ptr = 303 ref_source_info.stack_ptr -> frame.display; 304 end; 305 else call probe_stack_trace_$find_block_frame (probe_info_ptr, 306 addr (ref_source_info)); 307 end; /* entry ptr is diff., leave others to handle it */ 308 309 /* User wants N'th previous invocation of this variable - 310* This is only meaningful for automatic storage, 311* although I suppose one could define a meaning for controlled, 312* and involves searching the stack from here back. 313* It is used with static types (labels, entries) as a convenient way to specify a block, 314* which is allowed in a generation. i.e. v foo [label[-4]] 315**/ 316 if P_reference.invocation_level > 0 317 then if P_reference.type >= label_constant_runtime_dtype 318 & P_reference.type <= ext_procedure_runtime_dtype 319 then P_reference.precision = P_reference.invocation_level; 320 /* must be [label[-N]] */ 321 else call probe_stack_trace_$find_previous_invocation ( 322 probe_0AWTaylor $8 AWTaylor awt Multics {R; TآJT%mnoneVIP7400_DTR NݞMZAllen ކ ކ Allen NMLPROD QvQvQnoneWY50_80C QjEBHas  Smith as Develcon KY L&iFKiwnoneVIP7400_DTR ve set up subscripts, but no subsidiary reference_nodes exists. 419* sub_refs are all null. This should not be a problem, as there is no other reason to 420* look at the sub_refs 421**/ 422 end; /* assuming ref to whole */ 423 /* Time to handle C strings. A C string is actually a 2 dim array. We want 424* to print out all the elements of the specified row. */ 425 426 else if (probe_info.language_type = C_lang_type & 427 P_reference.type = 21 & 428 P_reference.n_subscripts = 1 & 429 dimensions = 2) then do; 430 sub_refs.ptr (1, 2) = null (); 431 call do_subscripts; 432 ref_subscripts.value (1, 2) = 0; 433 P_reference.n_subscripts = 2; 434 P_reference.precision = 256; 435 make_this_ref_node_a_constant = "1"b; 436 end; 437 else do; /* have at least one, but not enough -fail */ 438 call probe_error_$record (probe_info_ptr, 0, 439 "^a needs ^d subscripts", P_reference.name, dimensions); 440 goto RECORDED_MESSAGE; 441 end; 442 end; /* too few subscripts case */ 443 else call do_subscripts; /* have proper number */ 444 445 if ref_source_info.block_ptr -> runtime_block.fortran 446 then /* must reverse subscript array */ 447 do i = 1 to divide (dimensions, 2, 17, 0); 448 temp (1) = ref_subscripts.value (1, i); 449 temp (2) = ref_subscripts.value (2, i); 450 ref_subscripts.value (1, i) = 451 ref_subscripts.value (1, dimensions + 1 - i); 452 ref_subscripts.value (2, i) = 453 ref_subscripts.value (2, dimensions + 1 - i); 454 ref_subscripts.value (1, dimensions + 1 - i) = temp (1); 455 ref_subscripts.value (2, dimensions + 1 - i) = temp (2); 456 end; 457 end; 458 459 /* Now that we have the subscripts and the base ptr and the stack frame, it is possible to 460* get the address of the symbol itself 461**/ 462 463 if data_type_info_$info (P_reference.type).type 464 then 465 P_reference.address_ptr = null; 466 else do; 467 if (special_entry | P_reference.address_ptr ^= null ()) 468 then 469 P_reference.address_ptr = 470 probe_get_c_address_ (P_reference.address_ptr, 471 original_class, 472 P_reference.symbol_ptr, 473 addr (ref_subscripts.value)); 474 else 475 P_reference.address_ptr = 476 stu_$get_runtime_address (ref_source_info.block_ptr, 477 P_reference.symbol_ptr, 478 ref_source_info.stack_ptr, 479 (ref_source_info.seg_info_ptr -> seg_info.linkage_ptr), 480 ref_source_info.block_ptr, P_reference.base_addr, 481 addr (ref_subscripts.value)); 482 483 484 if (must_add_in_ptr_subscript) then do; 485 new_size = 0; 486 487 if (fixed (P_reference.symbol_ptr -> runtime_symbol.ndims) 488 < P_reference.n_subscripts) then do; 489 begin; 490 491 dcl (suber1, suber2) fixed bin; 492 dcl temp_inx fixed bin; 493 dcl temp_ptr ptr; 494 495 temp_ptr = P_reference.symbol_ptr; 496 do while (fixed (temp_ptr -> runtime_symbol.type) 497 = pointer_dtype | 498 fixed (temp_ptr -> runtime_symbol.type) 499 = c_typeref_dtype); 500 temp_ptr = 501 addrel (temp_ptr, 502 fixed (temp_ptr -> runtime_symbol.son)); 503 end; 504 505 if (fixed (temp_ptr -> runtime_symbol.type) = char_dtype) 506 then do; 507 first_sub = 508 fixed (P_reference.symbol_ptr 509 -> runtime_symbol.n vVh6P SNetwork_Server Daemon Ovz+Scavenger @$ l, Scavenger SysDaemon if address_info.class = CLASS_PARAMETER 616 & /* special-case varying string parameter: */ 617 (type_info.type = varying_bit_dtype 618 | type_info.type = varying_char_dtype) 619 then 620 /* parameter ptr points to string portion */ 621 /* make it point to the length word */ 622 P_reference.address_ptr = 623 addrel (P_reference.address_ptr, -1); 624 end; 625 626 if (make_this_ref_node_a_constant) then do; 627 if (P_reference.c_symbol_ptr = null ()) 628 then 629 P_reference.symbol_ptr = null (); 630 P_reference.flags.cross_section = "0"b; 631 P_reference.flags.constant = "1"b; 632 P_reference.optional_info.n_subscripts = 0; 633 P_reference.optional_info.n_arguments = 0; 634 end; 635 if P_reference.function then do; 636 if P_reference.n_subscripts - P_reference.n_arguments ^= dimensions 637 then do; 638 call probe_error_$record (probe_info_ptr, probe_et_$wrong_dims, 639 P_reference.name); 640 goto RECORDED_MESSAGE; 641 end; 642 643 if P_reference.type ^= entry_dtype 644 & P_reference.type ^= int_entry_runtime_dtype 645 & P_reference.type ^= ext_entry_runtime_dtype 646 & P_reference.type ^= ext_procedure_runtime_dtype then do; 647 648 call probe_error_$record (probe_info_ptr, probe_et_$wrong_dims, 649 P_reference.name); 650 goto RECORDED_MESSAGE; 651 end; 652 653 if P_reference.cross_section 654 then goto BAD_CROSS_SECTION; 655 ref_arg_list.number = P_reference.n_arguments; 656 do i = 1 to P_reference.n_arguments; 657 ref_arg_list.node (i) = sub_refs.ptr (1, dimensions + i); 658 end; 659 660 if ^want_external_sw 661 then call probe_invoke_$function (probe_info_ptr, P_reference, 662 P_reference, P_code); 663 return; 664 end; 665 return; 666 667 end; 668 669 670 if steps = -4 | steps = -1 then do; 671 672 /* Symbol not found - but it may be a probe variable, or a builtin reference or a function call to an external entry */ 673 674 675 /* first look for probe variable */ 676 677 call probe_variable_mgr_$find_variable (probe_info_ptr, 678 addr (P_reference), code); 679 if code = 0 680 then 681 return; 682 683 /* next try for a builtin */ 684 685 call probe_request_mgr_$find_builtin (probe_info_ptr, 686 (P_reference.name), builtin_entry, (null), code); 687 if code = 0 then do; 688 call builtin_entry (probe_info_ptr, addr (P_reference), code); 689 if code ^= 0 690 then goto SOME_ERROR; 691 P_reference.builtin = "1"b; 692 return; 693 end; 694 695 696 /* that didn't work, so try for an external */ 697 698 if ^default_external_sw & index (P_reference.name, "$") = 0 699 then go to NOT_FOUND; 700 GET_EXTERNAL: 701 ref_source_info.entry_ptr = null (); 702 call probe_find_procedure_ (probe_info_ptr, (P_reference.name), 703 (switches), addr (ref_source_info), (0)); 704 P_reference.address_ptr = ref_source_info.entry_ptr; 705 CHECK_EXTERNAL: 706 if P_reference.address_ptr ^= null then do; 707 708 P_reference.flags.constant = "1"b; 709 if P_reference.n_arguments ^= P_reference.n_subscripts then do; 710 call probe_error_$record (probe_info_ptr, 0, 711 "The external entry ^a may not be subscripted", 712 P_reference.name); 713 goto RECORDED_MESSAGE; 714 end; 715 if P_reference.n_arguments > 0 | P_reference.function then do; 716 P_reference.function = "1"b; 717 /* just in case */ 718 ref_arg_list.number = P_reference.n_arguments; 719 do i = 1 to P_reference.n_arguments; 720 ref_arg_list.node (i) = sub_refs.ptr (1, i); 721 end; 722 end; 723 else if P_reference.invocation_level < 0 724 then P_reference.precision = P_reference.invocation_level; 725 P_reference.type = ext_procedure_runtime_dtype; 726 /* external procedure */ 727 P_reference.descriptor = ext_procedure_runtime_dtype * 2; 728 if ^want_external_sw 729 then /* want a value of a function, not an entry ref for call */ 730 call probe_invoke_$function (probe_info_ptr, P_reference, 731 P_reference, P_code); 732 return; 733 end; 734 735 end; /* symbol not declared */ 736 737 738 /* fall through - hopeless symbol */ 739 740 NOT_FOUND: 741 code = steps; /* need a fixed bi (35) */ 742 call probe_cv_stu_code_ (code); 743 call probe_error_$record (probe_info_ptr, code, P_reference.name); 744 goto RECORDED_MESSAGE; 745 746 747 BAD_CROSS_SECTION: /* general exit for bad cross sections */ 748 code = probe_et_$bad_section; 749 goto SOME_ERROR; 750 751 752 RECORDED_MESSAGE: /* general exit when we have recorded a message */ 753 code = probe_et_$recorded_message; 754 goto SOME_ERROR; 755 756 SOME_ERROR: /* general error exit */ 757 P_code = code; 758 return; /* end of main code for probe_eval_ */ 759 760 do_subscripts: 761 proc; 762 763 do j = 1 to 1 + fixed (P_reference.cross_section, 1, 0); 764 do i = 1 to dimensions; 765 sub = sub_refs.ptr (j, i); 766 /* presumably top of _n:_m */ 767 if sub = null 768 then 769 ref_subscripts.value (j, i) = ref_subscripts.value (1, i); 770 /* convert to fixed bin(24) */ 771 else do; 772 if sub -> subscript.cross_section 773 then 774 goto BAD_CROSS_SECTION; 775 if sub -> subscript.star_extent 776 then 777 ref_subscripts.value (j, i) = real_bounds (j, i); 778 else do; 779 ref_subscripts (j, i).value = convert_subscript (sub); 780 if ref_subscripts.value (j, i) < real_bounds (1, i) | 781 ref_subscripts.value (j, i) > real_bounds (2, i) 782 then 783 call ioa_$ioa_switch (probe_info.output_switch, 784 "subscript ^d outside range (^d:^d)", 785 i, 786 real_bounds (1, i), 787 real_bounds (2, i)); 788 end; 789 end; 790 end; 791 end; 792 793 end do_subscripts; 794 795 convert_subscript: 796 proc (refp) returns (fixed bin (24)); 797 798 /* given a pointer to a reference_node that is to be used in a subscript, convert its 799* value to fixed bin (24), suitable for addressing the array --- or die trying */ 800 801 dcl refp ptr parameter; 802 803 dcl subv fixed bin (24); 804 dcl 1 subref aligned like reference_node based (refp); 805 806 dcl 1 eprec aligned like encoded_precision; 807 dcl ( 808 1 tar_str, 809 1 src_str 810 ) aligned like computational_data; 811 812 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 813 814 dcl unspec builtin; 815 816 dcl code fixed bin (35); 817 818 819 tar_str.address = addr (subv); 820 tar_str.data_type = real_fix_bin_1_dtype; 821 tar_str.flags = "0"b; 822 tar_str.prec_or_length = 24; 823 tar_str.scale = 0; 824 825 unspec (eprec) = unspec (subref.precision); 826 827 src_str.address = subref.address_ptr; 828 src_str.data_type = subref.type; 829 src_str.flags = "0"b; 830 src_str.flags.packed = subref.flags.packed; 831 src_str.prec_or_length = eprec.prec; 832 src_str.scale = eprec.scale; 833 834 call assign_$computational_ (addr (tar_str), addr (src_str), code); 835 836 if code ^= 0 then do; 837 call probe_error_$record (probe_info_ptr, probe_et_$bad_subscript, 838 subref.name); 839 goto RECORDED_MESSAGE; 840 end; 841 return (subv); 842 843 end convert_subscript; 844 845 decode: 846 proc (value, encoded) returns (fixed bin (35)); 847 848 dcl value fixed bin (35); 849 dcl encoded bit (1); 850 851 dcl stu_$decode_runtime_value_extended 852 entry (fixed bin (35), ptr, ptr, ptr, ptr, ptr, 853 ptr, fixed bin (35)) returns (fixed bin (35)); 854 dcl result fixed bin (35); 855 dcl stu_$decode_runtime_value 856 entry (fixed bin (35), ptr, ptr, ptr, ptr, ptr, 857 fixed bin (35)) returns (fixed bin (35)); 858 859 if ^encoded 860 then 861 return (value); 862 863 if data_type_info_$info (P_reference.type).computational 864 then 865 result = 866 stu_$decode_runtime_value (P_reference.symbol_ptr 867 -> runtime_symbol.size, ref_source_info.block_ptr, 868 ref_source_info.stack_ptr, 869 (ref_source_info.seg_info_ptr -> seg_info.linkage_ptr), 870 P_reference.base_addr, P_reference.symbol_ptr, code); 871 else /* PASCAL extended encoded */ 872 result = 873 stu_$decode_runtime_value_extended (P_reference.precision, 874 ref_source_info.block_ptr, 875 ref_source_info.stack_ptr, 876 (ref_source_info.seg_info_ptr -> seg_info.linkage_ptr), 877 ref_source_info.block_ptr, P_reference.base_addr, 878 P_reference.symbol_ptr, code); 879 880 if code ^= 0 881 then go to SOME_ERROR; 882 return (result); 883 end decode; 884 885 qualifier_name: 886 proc (P_ptr) returns (char (256) varying); 887 888 dcl (P_ptr, p) ptr; 889 dcl name char (256) varying; 890 891 /* Note that we don't call here runtime_symbol_info_ : there are no based variables in PASCAL */ 892 893 p = addrel (P_ptr, P_ptr -> runtime_symbol.location); 894 name = addrel (p, p -> runtime_symbol.name) -> acc.string; 895 do while (fixed (p -> runtime_symbol.level, 6) > 1); 896 /* print fathers */ 897 p = addrel (p, p -> runtime_symbol.father); 898 name = addrel (p, p -> runtime_symbol.name) -> acc.string || "." || name; 899 end; 900 return (name); 901 902 end qualifier_name; 903 904 905 /* INCLUDE FILES */ 906 1 1 /* BEGIN INCLUDE FILE ... probe_lang_types.incl.pl1 1 2* 1 3* JRD 26 June 79 1 4* MBW 31 July 1981 to add algol68 */ 1 5 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 1 9* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 1 10* Added C Language type. 1 11* END HISTORY COMMENTS */ 1 12 1 13 1 14 /* Modified June 83 JMAthane to add PASCAL language type */ 1 15 /* Modified April 88 Hinatsu to add C language type */ 1 16 1 17 dcl (UNKNOWN_lang_type init (1), 1 18 OTHER_lang_type init (2), 1 19 PL1_lang_type init (3), 1 20 FORTRAN_lang_type init (4), 1 21 COBOL_lang_type init (5), 1 22 ALM_lang_type init (6), 1 23 ALGOL68_lang_type init (7), 1 24 PASCAL_lang_type init (8), 1 25 C_lang_type init (9)) fixed bin internal static options (constant); 1 26 1 27 dcl official_language_names (9) char (32) internal static options (constant) init 1 28 ("Unknown", "other", "PL/I", "FORTRAN", "COBOL", "ALM", "Algol 68", "Pascal", "C"); 1 29 1 30 dcl palatable_language_names (9) char (32) internal static options (constant) init 1 31 ("Unknown", "Other", "pl1", "fortran", "cobol", "alm", "algol68", "pascal", "c"); 1 32 1 33 /* END INCLUDE FILE ... probe_lang_types.incl.pl1 */ 907 2 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 2 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 2 8* Added field 'retry_using_main' to add new C feature. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 2 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 2 14* Added flags.setting_break 08/22/83 Steve Herbst 2 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 2 16**/ 2 17 2 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 2 19 2 probe_info_version fixed bin, /* version of this structure */ 2 20 2 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 2 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 2 23 2 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 2 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 2 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 2 27 2 28 2 token_info aligned, /* information about token chain currently being processed */ 2 29 3 first_token pointer unaligned, /* first token in chain */ 2 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 2 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 2 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 2 33 3 buffer_lth fixed bin (21), /* and length */ 2 34 2 35 2 random_info aligned, 2 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 2 37 3 input_type fixed bin, /* current input type */ 2 38 3 language_type fixed bin, /* current language being processed */ 2 39 3 return_method fixed bin, /* how we should return after exiting probe */ 2 40 3 entry_method fixed bin, /* how we got here in the first place */ 2 41 3 pad1 (19) bit (36) aligned, 2 42 2 43 2 break_info, /* break info -- only interesting if we got here via a break */ 2 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 2 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 2 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 2 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 2 48 2 49 2 probe_area_info, /* information about various probe areas */ 2 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 2 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 2 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 2 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 2 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 2 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 2 56 2 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 2 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 2 59 3 in_listener, /* ON => in probe listener loop */ 2 60 3 executing_request, /* ON => executing a request */ 2 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 2 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 2 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 2 64 3 pad (30)) bit (1) unaligned, 2 65 2 66 2 io_switches, /* switches probe will do normal I/O on */ 2 67 3 input_switch pointer, 2 68 3 output_switch pointer, 2 69 2 70 2 error_info, /* information about the last error saved for later printing */ 2 71 3 error_code fixed bin (35), 2 72 3 error_message char (300) varying, 2 73 2 74 2 listener_info, /* internal use by probe listener */ 2 75 3 request_name character (32) varying, /* primary name of the request being processed */ 2 76 3 abort_probe_label label variable, 2 77 3 abort_line_label label variable, 2 78 3 depth fixed binary, /* count of active invocations of probe */ 2 79 3 previous pointer unaligned, /* -> previous invocation's info */ 2 80 3 next pointer unaligned, 2 81 2 82 2 end_of_probe_info pointer aligned, 2 83 2 retry_using_main fixed bin aligned; 2 84 2 85 2 86 dcl probe_info_ptr pointer; 2 87 2 88 dcl probe_info_version fixed bin static options (constant) initial (1); 2 89 2 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 2 91 2 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 2 93 dcl probe_area area based (probe_info.probe_area_ptr); 2 94 dcl work_area area based (probe_info.work_area_ptr); 2 95 dcl expression_area area based (probe_info.expression_area_ptr); 2 96 2 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 908 909 910 /* ;;;;;;; */ 911 3 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 3 2* 3 3* 12 July 79 JRDavis */ 3 4 3 5 /* this is the format of the structure given to assign_$computational_ 3 6* that describes the data to be assigned */ 3 7 3 8 dcl 1 computational_data aligned based, 3 9 2 address ptr aligned, /* to data */ 3 10 2 data_type fixed bin (17), /* standard descriptor type */ 3 11 2 flags aligned, 3 12 3 packed bit (1) unal, 3 13 3 pad bit (35) unal, 3 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 3 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 3 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 3 17 3 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 912 913 914 /* ;;;;;;; */ 915 4 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 6* Added new field (c_symbol) for C-Probe support. 4 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 4 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 4 9* Added new field (c_sub_c_ptr) for C-Probe_support. 4 10* END HISTORY COMMENTS */ 4 11 4 12 /* Split out of probe_tokens, 04/22/79 WOS */ 4 13 /* modified for probe variables Feb 19 80 JRD */ 4 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 4 15 4 16 dcl 1 reference_node aligned based, /* information about a reference */ 4 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 4 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 4 19 2 address_ptr pointer aligned, /* to location of variable */ 4 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 4 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 4 22 4 23 2 name char (256) unaligned varying, /* symbol name */ 4 24 4 25 2 type fixed bin (35), /* data type */ 4 26 2 descriptor fixed bin (35), /* type || packed */ 4 27 2 precision fixed bin (35), /* scale and precision */ 4 28 2 flags, 4 29 3 packed bit (1) unal, /* data is in packed format */ 4 30 3 constant bit (1) unal, /* data is really a constant */ 4 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 4 32 3 function bit (1) unal, /* reference is function value */ 4 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 4 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 4 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 4 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 4 37 3 probe_variable bit (1) unal, 4 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 4 39 3 builtin bit (1) unal, /* probe builtinvalue */ 4 40 3 c_ptr_to_char bit (1) unal, 4 41 3 c_sub_c_ptr bit (1) unal, 4 42 3 pad2 bit (23) unal, 4 43 4 44 2 optional_info, /* information which may or may not be present */ 4 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 4 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 4 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 4 48 3 n_subscripts fixed bin, /* number of subscripts present */ 4 49 4 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 4 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 4 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 4 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 4 54 2 c_symbol_ptr ptr unal, 4 55 2 pad1 (9) pointer unaligned, 4 56 2 end_of_reference_node pointer aligned; 4 57 4 58 4 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 4 60 2 number fixed bin, /* number of arguments actually present */ 4 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 4 62 4 63 4 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 4 65 2 number fixed bin, /* number actually present */ 4 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 4 67 4 68 4 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 4 70 2 ptr (2, 16) pointer aligned; 4 71 4 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 916 917 918 /* ;;;;;;; */ 919 5 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 5 2* 5 3* James R. Davis 2 July 79 */ 5 4 5 5 dcl 1 source_info based aligned, 5 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 5 7 2 instruction_ptr ptr, /* to last instruction executed */ 5 8 2 block_ptr ptr, /* to runtime_block node */ 5 9 2 stack_ptr ptr, /* to a stack frame */ 5 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 5 11 2 seg_info_ptr ptr; /* to seg_info */ 5 12 5 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 5 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 5 15 5 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 920 921 922 /* ;;;;;;; */ 923 6 1 /* BEGIN INCLUDE FILE probe_tokens.incl.pl1 */ 6 2 /* Split up into probe_tokens and probe_references, 04/22/79 WOS */ 6 3 6 4 dcl 1 token_header aligned based, /* header information common to all tokens */ 6 5 2 next pointer unaligned, /* pointer to next token in chain */ 6 6 2 prev pointer unaligned, /* same for previous token */ 6 7 2 type bit (18) aligned, 6 8 2 buffer_ptr pointer unaligned, /* pointer to beginning of input buffer */ 6 9 2 location fixed bin (17) unal, /* offset in input buffer */ 6 10 2 length fixed bin (17) unal, 6 11 2 flags aligned, 6 12 (3 leading_whitespace, /* there is whitespace before thios token */ 6 13 3 trailing_whitespace) bit (1) unaligned, /* and same for after */ 6 14 3 pad1 bit (34) unaligned; 6 15 6 16 dcl 1 token aligned based, /* produced by scan_probe_input_ */ 6 17 2 header aligned like token_header; /* that's all there is */ 6 18 6 19 dcl 1 identifier aligned based, /* keyword or identifier token */ 6 20 2 header aligned like token_header, 6 21 2 length fixed bin, /* length of name */ 6 22 2 name pointer unaligned; /* to string in buffer containing name */ 6 23 6 24 dcl 1 operator aligned based, /* for punctuation */ 6 25 2 header aligned like token_header; /* nothing but a header here */ 6 26 6 27 dcl 1 constant aligned based, /* for strings pointers numbers etc */ 6 28 2 header aligned like token_header, 6 29 2 encoded_precision aligned, /* encoded precision kludge for assign_ */ 6 30 3 scale fixed bin (17) unaligned, /* arithmetic scale */ 6 31 3 precision fixed bin (17) unaligned, /* arithmetic precision or other size */ 6 32 2 scale_and_precision fixed bin (35), /* An identical copy of the two values above */ 6 33 2 data_type fixed bin, /* standard data type code + packed bit */ 6 34 2 data_ptr pointer unaligned; 6 35 6 36 6 37 dcl (OPERATOR_TYPE init ("100"b), /* types for above */ 6 38 NAME_TYPE init ("010"b), 6 39 CONSTANT_TYPE init ("001"b)) bit (18) internal static options (constant); 6 40 6 41 6 42 dcl current_identifier_name /* Overlays for looking at the current tokens */ 6 43 char (probe_info.ct -> identifier.length) based (probe_info.ct -> identifier.name); 6 44 dcl 1 current_constant aligned like constant based (probe_info.ct); 6 45 dcl 1 current_token aligned like token based (probe_info.ct); 6 46 6 47 /* END INCLUDE FILE probe_tokens.incl.pl1 */ 924 925 926 /* ;;;;;;; */ 927 7 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 7 2 7 3 dcl 1 runtime_symbol aligned based, 7 4 2 flag unal bit(1), /* always "1"b for Version II */ 7 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 7 6 2 array_units unal bit(2), 7 7 2 units unal bit(2), /* addressing units */ 7 8 2 type unal bit(6), /* data type */ 7 9 2 level unal bit(6), /* structure level */ 7 10 2 ndims unal bit(6), /* number of dimensions */ 7 11 2 bits unal, 7 12 3 aligned bit(1), 7 13 3 packed bit(1), 7 14 3 simple bit(1), 7 15 2 skip unal bit(1), 7 16 2 scale unal bit(8), /* arithmetic scale factor */ 7 17 2 name unal bit(18), /* rel ptr to acc name */ 7 18 2 brother unal bit(18), /* rel ptr to brother entry */ 7 19 2 father unal bit(18), /* rel ptr to father entry */ 7 20 2 son unal bit(18), /* rel ptr to son entry */ 7 21 2 address unal, 7 22 3 location bit(18), /* location in storage class */ 7 23 3 class bit(4), /* storage class */ 7 24 3 next bit(14), /* rel ptr to next of same class */ 7 25 2 size fixed bin(35), /* encoded string|arith size */ 7 26 2 offset fixed bin(35), /* encoded offset from address */ 7 27 2 virtual_org fixed bin(35), 7 28 2 bounds(1), 7 29 3 lower fixed bin(35), /* encoded lower bound */ 7 30 3 upper fixed bin(35), /* encoded upper bound */ 7 31 3 multiplier fixed bin(35); /* encoded multiplier */ 7 32 7 33 dcl 1 runtime_bound based, 7 34 2 lower fixed bin(35), 7 35 2 upper fixed bin(35), 7 36 2 multiplier fixed bin(35); 7 37 7 38 dcl 1 runtime_block aligned based, 7 39 2 flag unal bit(1), /* always "1"b for Version II */ 7 40 2 quick unal bit(1), /* "1"b if quick block */ 7 41 2 fortran unal bit(1), /* "1"b if fortran program */ 7 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 7 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 7 44 2 skip unal bit(1), 7 45 2 type unal bit(6), /* = 0 for a block node */ 7 46 2 number unal bit(6), /* begin block number */ 7 47 2 start unal bit(18), /* rel ptr to start of symbols */ 7 48 2 name unal bit(18), /* rel ptr to name of proc */ 7 49 2 brother unal bit(18), /* rel ptr to brother block */ 7 50 2 father unal bit(18), /* rel ptr to father block */ 7 51 2 son unal bit(18), /* rel ptr to son block */ 7 52 2 map unal, 7 53 3 first bit(18), /* rel ptr to first word of map */ 7 54 3 last bit(18), /* rel ptr to last word of map */ 7 55 2 entry_info unal bit(18), /* info about entry of quick block */ 7 56 2 header unal bit(18), /* rel ptr to symbol header */ 7 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 7 58* on start list with length >= 2**i */ 7 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 7 60* on list with length >= 2 ** i */ 7 61 2 owner unal bit(18); /* rel ptr to owner block */ 7 62 7 63 dcl 1 runtime_token aligned based, 7 64 2 next unal bit(18), /* rel ptr to next token */ 7 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 7 66 2 name, /* ACC */ 7 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 7 68 3 string unal char(n refer(runtime_token.size)); 7 69 7 70 dcl 1 encoded_value aligned based, 7 71 2 flag bit (2) unal, 7 72 2 code bit (4) unal, 7 73 2 n1 bit (6) unal, 7 74 2 n2 bit (6) unal, 7 75 2 n3 bit (18) unal; 7 76 7 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 928 929 930 /* ;;;;;;; */ 931 932 8 1 /* BEGIN INCLUDE FILE --- acc.incl.pl1 8 2* 8 3*James R. Davis 21 Nov 78 8 4**/ 8 5 8 6 dcl 1 acc based aligned, 8 7 2 num_chars fixed bin (9) unsigned unaligned, 8 8 2 string char (0 refer (acc.num_chars)) unaligned; 8 9 8 10 /* END INCLUDE FILE --- acc.incl.pl1 */ 933 934 935 /* ;;;;;;; */ 936 937 9 1 /* BEGIN INCLUDE FILE ... encoded_precision.incl.pl1 9 2* 9 3* This is the format used by assign_ to encode the precision and scale of 9 4* arithmetic data into one word. This structure should be assigned (use unspec) 9 5* to a fixed bin (35). 9 6**/ 9 7 9 8 dcl 1 encoded_precision based aligned, 9 9 2 scale fixed bin (17) unal, 9 10 2 prec fixed bin (18) unsigned unal; 9 11 9 12 /* END INCLUDE FILE ... encoded_precision.incl.pl1 */ 938 939 940 /* ;;;;;;; */ 941 10 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 10 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 10 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 10 8* Objects of this type are PASCAL string types. 10 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 10 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 10 11* Added the new C types. 10 12* END HISTORY COMMENTS */ 10 13 10 14 /* This include file defines mnemonic names for the Multics 10 15* standard descriptor types, using both pl1 and cobol terminology. 10 16* PG 780613 10 17* JRD 790530 10 18* JRD 791016 10 19* MBW 810731 10 20* TGO 830614 Add hex types. 10 21* Modified June 83 JMAthane to add PASCAL data types 10 22* TGO 840120 Add float dec extended and generic, float binary generic 10 23**/ 10 24 10 25 dcl (real_fix_bin_1_dtype init (1), 10 26 real_fix_bin_2_dtype init (2), 10 27 real_flt_bin_1_dtype init (3), 10 28 real_flt_bin_2_dtype init (4), 10 29 cplx_fix_bin_1_dtype init (5), 10 30 cplx_fix_bin_2_dtype init (6), 10 31 cplx_flt_bin_1_dtype init (7), 10 32 cplx_flt_bin_2_dtype init (8), 10 33 real_fix_dec_9bit_ls_dtype init (9), 10 34 real_flt_dec_9bit_dtype init (10), 10 35 cplx_fix_dec_9bit_ls_dtype init (11), 10 36 cplx_flt_dec_9bit_dtype init (12), 10 37 pointer_dtype init (13), 10 38 offset_dtype init (14), 10 39 label_dtype init (15), 10 40 entry_dtype init (16), 10 41 structure_dtype init (17), 10 42 area_dtype init (18), 10 43 bit_dtype init (19), 10 44 varying_bit_dtype init (20), 10 45 char_dtype init (21), 10 46 varying_char_dtype init (22), 10 47 file_dtype init (23), 10 48 real_fix_dec_9bit_ls_overp_dtype init (29), 10 49 real_fix_dec_9bit_ts_overp_dtype init (30), 10 50 real_fix_bin_1_uns_dtype init (33), 10 51 real_fix_bin_2_uns_dtype init (34), 10 52 real_fix_dec_9bit_uns_dtype init (35), 10 53 real_fix_dec_9bit_ts_dtype init (36), 10 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 10 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 10 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 10 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 10 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 10 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 10 60 real_flt_dec_4bit_bytealigned_dtype init (44), 10 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 10 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 10 63 real_flt_hex_1_dtype init (47), 10 64 real_flt_hex_2_dtype init (48), 10 65 cplx_flt_hex_1_dtype init (49), 10 66 cplx_flt_hex_2_dtype init (50), 10 67 c_typeref_dtype init (54), 10 68 c_enum_dtype init (55), 10 69 c_enum_const_dtype init (56), 10 70 c_union_dtype init (57), 10 71 algol68_straight_dtype init (59), 10 72 algol68_format_dtype init (60), 10 73 algol68_array_descriptor_dtype init (61), 10 74 algol68_union_dtype init (62), 10 75 10 76 cobol_comp_6_dtype init (1), 10 77 cobol_comp_7_dtype init (1), 10 78 cobol_display_ls_dtype init (9), 10 79 cobol_structure_dtype init (17), 10 80 cobol_char_string_dtype init (21), 10 81 cobol_display_ls_overp_dtype init (29), 10 82 cobol_display_ts_overp_dtype init (30), 10 83 cobol_display_uns_dtype init (35), 10 84 cobol_display_ts_dtype init (36), 10 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 10 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 10 87 cobol_comp_5_uns_dtype init (40), 10 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 10 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 10 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 10 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 10 92 cplx_flt_dec_generic_dtype init (84), 10 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 10 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 10 95 10 96 dcl (ft_integer_dtype init (1), 10 97 ft_real_dtype init (3), 10 98 ft_double_dtype init (4), 10 99 ft_complex_dtype init (7), 10 100 ft_complex_double_dtype init (8), 10 101 ft_external_dtype init (16), 10 102 ft_logical_dtype init (19), 10 103 ft_char_dtype init (21), 10 104 ft_hex_real_dtype init (47), 10 105 ft_hex_double_dtype init (48), 10 106 ft_hex_complex_dtype init (49), 10 107 ft_hex_complex_double_dtype init (50) 10 108 ) fixed bin internal static options (constant); 10 109 10 110 dcl (algol68_short_int_dtype init (1), 10 111 algol68_int_dtype init (1), 10 112 algol68_long_int_dtype init (2), 10 113 algol68_real_dtype init (3), 10 114 algol68_long_real_dtype init (4), 10 115 algol68_compl_dtype init (7), 10 116 algol68_long_compl_dtype init (8), 10 117 algol68_bits_dtype init (19), 10 118 algol68_bool_dtype init (19), 10 119 algol68_char_dtype init (21), 10 120 algol68_byte_dtype init (21), 10 121 algol68_struct_struct_char_dtype init (22), 10 122 algol68_struct_struct_bool_dtype init (20) 10 123 ) fixed bin internal static options (constant); 10 124 10 125 dcl (label_constant_runtime_dtype init (24), 10 126 int_entry_runtime_dtype init (25), 10 127 ext_entry_runtime_dtype init (26), 10 128 ext_procedure_runtime_dtype init (27), 10 129 picture_runtime_dtype init (63) 10 130 ) fixed bin internal static options (constant); 10 131 10 132 dcl (pascal_integer_dtype init (1), 10 133 pascal_real_dtype init (4), 10 134 pascal_label_dtype init (24), 10 135 pascal_internal_procedure_dtype init (25), 10 136 pascal_exportable_procedure_dtype init (26), 10 137 pascal_imported_procedure_dtype init (27), 10 138 pascal_typed_pointer_type_dtype init (64), 10 139 pascal_char_dtype init (65), 10 140 pascal_boolean_dtype init (66), 10 141 pascal_record_file_type_dtype init (67), 10 142 pascal_record_type_dtype init (68), 10 143 pascal_set_dtype init (69), 10 144 pascal_enumerated_type_dtype init (70), 10 145 pascal_enumerated_type_element_dtype init (71), 10 146 pascal_enumerated_type_instance_dtype init (72), 10 147 pascal_user_defined_type_dtype init (73), 10 148 pascal_user_defined_type_instance_dtype init (74), 10 149 pascal_text_file_dtype init (75), 10 150 pascal_procedure_type_dtype init (76), 10 151 pascal_variable_formal_parameter_dtype init (77), 10 152 pascal_value_formal_parameter_dtype init (78), 10 153 pascal_entry_formal_parameter_dtype init (79), 10 154 pascal_parameter_procedure_dtype init (80), 10 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 10 156 10 157 10 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 942 943 944 /* ;;;;;;; */ 945 11 1 dcl 1 frame aligned based, 11 2 2 pointers(0:7) ptr, 11 3 2 back ptr, 11 4 2 next ptr, 11 5 2 return ptr, 11 6 2 entry ptr, 11 7 2 operator ptr, 11 8 2 argptr ptr, 11 9 2 skip1(2) fixed bin, 11 10 2 on_unit_info(2) bit(18) unaligned, 11 11 2 translator_id bit(18) unaligned, 11 12 2 operator_return bit(18) unaligned, 11 13 2 display ptr, 11 14 2 skip2(2) fixed bin, 11 15 2 linkage ptr; 946 947 12 1 /* BEGIN INCLUDE FILE ... probe_seg_info.incl.pl1 12 2* 12 3* 25 June 79 JRDavis 12 4* 12 5* Modified 7 April 1983, TO - Add fields for character offset/line 12 6* correction per file. 12 7**/ 12 8 12 9 dcl 1 seg_info based aligned, /* place to remember information about object seg */ 12 10 2 language_type fixed bin, /* language of source program */ 12 11 2 bits aligned, 12 12 3 ignore_case bit (1) unal, 12 13 3 bound_segment bit (1) unaligned, 12 14 3 component bit (1) unaligned, 12 15 3 pad bit (33) unal, 12 16 2 names, /* where to find it */ 12 17 3 directory_name character (168) unal, /* what directory */ 12 18 3 entry_name character (32) unal, /* what segment */ 12 19 3 segname character (32) unal, /* procedure segname definition */ 12 20 2 identifier fixed bin (71), /* time of object creation */ 12 21 2 pointers, /* location of various parts of segment */ 12 22 3 symbol_header_ptr ptr unal, /* to symbol section */ 12 23 3 original_source_ptr ptr unal, /* to segment source map */ 12 24 3 statement_map_ptr ptr unal, /* to segment statement map */ 12 25 3 break_info ptr unal, /* for unbound segments, and start of chain for 12 26* bound ones, -> break_map !obsolete, I think! */ 12 27 3 chain ptr unal, /* to entry for next component if bound */ 12 28 3 linkage_ptr ptr unal, /* to linkage section */ 12 29 2 bounds aligned, /* structure of bounds information */ 12 30 3 text_bounds, 12 31 4 start fixed bin (35), 12 32 4 end fixed bin (35), 12 33 3 symbol_bounds, 12 34 4 start fixed bin (35), 12 35 4 end fixed bin (35), 12 36 2 map_size fixed bin, /* size of statement map */ 12 37 2 error_code fixed bin (35), /* errors encoutered while getting info, are recorded here */ 12 38 2 bound_create_time fixed bin (71), /* time seg containing was bound or compiled. */ 12 39 2 bound_sym_header ptr unal, /* to sym. section header for bound seg */ 12 40 2 pad (1) fixed bin (35), 12 41 12 42 2 nfiles fixed bin, 12 43 2 per_file (seg_info_nfiles refer (seg_info.nfiles)), 12 44 3 file_pointers ptr unal, 12 45 3 break_line (0:3) fixed bin (18) unsigned unaligned; 12 46 12 47 dcl seg_info_nfiles fixed bin; /* for allocation purposes */ 12 48 12 49 12 50 /* END INCLUDE FILE ... probe_seg_info.incl.pl1 */ 948 949 13 1 /* BEGIN INCLUDE FILE ... data_type_info_.incl.pl1 13 2* 13 3* attributes of each Multics data type. You may not rely on the dimension never exceeding 64 13 4* James R. Davis 6 Apr 79 13 5* Modified JMAthane June 83 to add "type" bit field 13 6* Upped bound from 64 to 80 10/18/83 S. Herbst 13 7* Added "hex" and "generic" bits 01/23/84 S. Herbst 13 8* Upped bound from 80 to 86 01/81/84 R. Gray 13 9* Upper bound from 86 to 87 JMAthane (for Pascal strings type dtype) 13 10**/ 13 11 13 12 13 13 /****^ HISTORY COMMENTS: 13 14* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 13 15* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 13 16* The data_type_info array now has 87 entries instead of 86 due to 13 17* introduction of pascal_string_type_dtype. 13 18* END HISTORY COMMENTS */ 13 19 13 20 dcl data_type_info_$version_number fixed bin external static; 13 21 dcl data_type_info_this_version fixed bin internal static options (constant) init (1); 13 22 13 23 dcl 1 data_type_info_$info (87) aligned external static, 13 24 2 computational bit (1) unal, 13 25 2 arithmetic bit (1) unal, 13 26 2 arithmetic_attributes unal, /* only valid if arithmetic */ 13 27 3 fixed bit (1) unal, /* PL/I type */ 13 28 3 complex bit (1) unal, /* PL/I mode */ 13 29 3 decimal bit (1) unal, /* PL/I base */ 13 30 3 signed bit (1) unal, 13 31 3 trailing_sign bit (1) unal, /* only valid if signed */ 13 32 3 decimal_attributes unal, /* only valid if decimal */ 13 33 4 packed_dec bit (1) unal, /* 4 bits per digit or 9 */ 13 34 4 digit_aligned bit (1) unal, /* valid for packed_dec only */ 13 35 4 overpunched bit (1) unal, 13 36 2 char_string bit (1) unal, /* valid for non-arithmetic */ 13 37 2 bit_string bit (1) unal, /* valid for non-arithmetic */ 13 38 2 varying bit (1) unal, /* for bit or char only */ 13 39 2 type bit (1) unal, /* this symbol is a type */ 13 40 2 hex bit (1) unal, /* a hexadecimal type (eg., hex floating point) */ 13 41 2 generic bit (1) unal, /* eg., real_flt_dec_generic_dtype */ 13 42 2 pad bit (20) unal; 13 43 13 44 dcl data_type_info_$ninebit_sign_chars char (2) external static; 13 45 dcl data_type_info_$ninebit_digit_chars char (10) external static; 13 46 dcl data_type_info_$ninebit_overpunched_sign_chars char (22) external static; 13 47 13 48 dcl data_type_info_$max_decimal_precision fixed bin external static; 13 49 dcl data_type_info_$max_float_binary_precision fixed bin external static; 13 50 dcl data_type_info_$max_fixed_binary_precision fixed bin external static; 13 51 13 52 13 53 /* END INCLUDE FILE ... data_type_info_.incl.pl1 */ 950 951 14 1 /* BEGIN INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 14 2 14 3 14 4 /****^ HISTORY COMMENTS: 14 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 14 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 14 7* Added runtime_symbol_info_$subrange entry which was missing. Added 14 8* has_dimensions and has subrange_limits fields in type_info record. 14 9* Structure version numbers have not been changed since this change does not 14 10* affect existing programs. 14 11* END HISTORY COMMENTS */ 14 12 14 13 /* Declarations for using the various entry points in runtime_symbol_info_ */ 14 14 /* NOTE: These entries do not support PL/1 version 1. */ 14 15 14 16 /* Made structures aligned, removed variable extent from runtime_array_info.bounds 08/25/83 S. Herbst */ 14 17 /* Added version strings to structures 10/05/83 S. Herbst */ 14 18 /* Added has_dimensions and has_subrange_limits bits in type_info 14 19*Added subrange entry. JMAthane 08/31/84 */ 14 20 14 21 14 22 dcl runtime_symbol_info_$type entry (ptr, ptr, fixed bin (35)); 14 23 14 24 dcl 1 runtime_type_info aligned based, 14 25 2 version char (8), /* = "RUNTYP_1" */ 14 26 2 flags, 14 27 3 aligned bit (1) unal, 14 28 3 packed bit (1) unal, 14 29 3 size_is_encoded bit (1) unal, 14 30 3 has_dimensions bit (1) unal, 14 31 3 has_subrange_limits bit (1) unal, 14 32 3 pad bit (23) unal, 14 33 2 scale fixed bin (7) unal, 14 34 2 (type, base_type) fixed bin (18) unsigned unal, 14 35 2 (type_addr, base_type_addr) ptr, 14 36 2 size fixed bin (35); 14 37 14 38 dcl runtime_symbol_info_$father entry (ptr) returns (ptr); 14 39 14 40 dcl runtime_symbol_info_$brother entry (ptr) returns (ptr); 14 41 14 42 dcl runtime_symbol_info_$father_type entry (ptr) returns (ptr); 14 43 14 44 dcl runtime_symbol_info_$son entry (ptr) returns (ptr); 14 45 14 46 dcl runtime_symbol_info_$successor entry (ptr) returns (ptr); 14 47 14 48 dcl runtime_symbol_info_$name entry (ptr) returns (ptr); 14 49 14 50 dcl runtime_symbol_info_$level entry (ptr) returns (fixed bin); 14 51 14 52 dcl runtime_symbol_info_$next entry (ptr) returns (ptr); 14 53 14 54 dcl runtime_symbol_info_$address entry (ptr, ptr, fixed bin (35)); 14 55 14 56 dcl 1 runtime_address_info aligned based, 14 57 2 version char (8), /* = "RUNADR_1" */ 14 58 2 location fixed bin (18) unsigned unal, 14 59 2 class fixed bin (6) unsigned unal, 14 60 2 use_digit fixed bin (1) unsigned unal, 14 61 2 units fixed bin (2) unsigned unal, 14 62 2 offset_is_encoded bit (1) unal, 14 63 2 pad bit (8) unal, 14 64 2 offset fixed bin (35); 14 65 14 66 dcl runtime_symbol_info_$array_dims entry (ptr) returns (fixed bin); 14 67 14 68 dcl runtime_symbol_info_$array entry (ptr, ptr, fixed bin (35)); 14 69 14 70 dcl 1 runtime_array_info aligned based, 14 71 2 version char (8), /* = "RUNARY_1" */ 14 72 2 access_info aligned, 14 73 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 14 74 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 14 75* units are really digits */ 14 76 3 array_units fixed bin (2) unsigned unaligned, 14 77 3 virtual_origin_is_encoded 14 78 bit (1) unaligned, 14 79 3 pad bit (26) unaligned, 14 80 2 virtual_origin fixed bin (35), 14 81 2 bounds (16) 14 82 aligned, 14 83 3 flags aligned, 14 84 4 lower_is_encoded 14 85 bit (1) unaligned, 14 86 4 upper_is_encoded 14 87 bit (1) unaligned, 14 88 4 multiplier_is_encoded 14 89 bit (1) unaligned, 14 90 4 pad bit (33) unaligned, 14 91 3 lower fixed bin (35), 14 92 3 upper fixed bin (35), 14 93 3 multiplier fixed bin (35), 14 94 3 subscript_type fixed bin (35), 14 95 3 subscript_type_addr ptr; 14 96 14 97 dcl n_dims fixed bin; 14 98 14 99 dcl runtime_symbol_info_$n_variants entry (ptr) returns (fixed bin (35)); 14 100 14 101 dcl runtime_symbol_info_$variant entry (ptr, ptr, fixed bin (35)); 14 102 14 103 dcl 1 runtime_variant_info aligned based, 14 104 2 version char (8), /* = "RUNVAR_1" */ 14 105 2 number_of_variants fixed bin, 14 106 2 first_value_in_set fixed bin (35), /* value corresponding to the first bit in set stings */ 14 107 2 case (n_variants), 14 108 3 set_addr ptr, /* bit string specifies cases; 14 109* set's base type is this node's type */ 14 110 3 brother_addr ptr; /* ptr to brother for this variant */ 14 111 14 112 dcl n_variants fixed bin (35); 14 113 14 114 dcl runtime_symbol_info_$subrange entry (ptr, ptr, fixed bin (35)); 14 115 14 116 dcl 1 runtime_subrange_info based, 14 117 2 version char (8), /* = "RUNSUB_1" */ 14 118 2 flags aligned, 14 119 3 has_subrange_limits bit (1) unal, 14 120 3 lower_bound_is_encoded bit (1) unal, 14 121 3 upper_bound_is_encoded bit (1) unal, 14 122 3 pad bit (33) unal, 14 123 2 subrange_lower_bound fixed bin (35), 14 124 2 subrange_upper_bound fixed bin (35); 14 125 14 126 14 127 dcl RUNTIME_TYPE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNTYP_1"); 14 128 dcl RUNTIME_ADDRESS_INFO_VERSION_1 char (8) int static options (constant) init ("RUNADR_1"); 14 129 dcl RUNTIME_ARRAY_INFO_VERSION_1 char (8) int static options (constant) init ("RUNARY_1"); 14 130 dcl RUNTIME_VARIANT_INFO_VERSION_1 char (8) int static options (constant) init ("RUNVAR_1"); 14 131 dcl RUNTIME_SUBRANGE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNSUB_1"); 14 132 14 133 14 134 /* END INCLUDE FILE runtime_symbol_info_.incl.pl1 */ 952 953 end; /* probe_evaluate_ external procedure */ 954 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1541.3 probe_eval_.pl1 >spec>install>MR12.2-1210>probe_eval_.pl1 907 1 10/26/88 1255.5 probe_lang_types.incl.pl1 >ldd>include>probe_lang_types.incl.pl1 908 2 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 912 3 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.incl.pl1 916 4 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 920 5 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 924 6 11/26/79 1320.6 probe_tokens.incl.pl1 >ldd>include>probe_tokens.incl.pl1 928 7 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 933 8 01/15/79 2202.9 acc.incl.pl1 >ldd>include>acc.incl.pl1 938 9 07/11/79 1711.3 encoded_precision.incl.pl1 >ldd>include>encoded_precision.incl.pl1 942 10 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 946 11 05/06/74 1752.6 stu_frame.incl.pl1 >ldd>include>stu_frame.incl.pl1 948 12 11/02/83 1845.0 probe_seg_info.incl.pl1 >ldd>include>probe_seg_info.incl.pl1 950 13 11/12/86 1748.0 data_type_info_.incl.pl1 >ldd>include>data_type_info_.incl.pl1 952 14 11/12/86 1748.0 runtime_symbol_info_.incl.pl1 >ldd>include>runtime_symbol_info_.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. CLASS_PARAMETER constant fixed bin(17,0) initial dcl 90 ref 615 COBOL_lang_type constant fixed bin(17,0) initial dcl 1-17 ref 230 C_lang_type constant fixed bin(17,0) initial dcl 1-17 ref 297 393 426 PASCAL_lang_type constant fixed bin(17,0) initial dcl 1-17 ref 263 274 P_code parameter fixed bin(35,0) dcl 88 set ref 62 196* 374 380* 660* 728* 756* P_probe_info_ptr parameter pointer dcl 84 set ref 62 194 374 382 602* P_ptr parameter pointer dcl 888 ref 885 893 893 P_reference parameter structure level 1 dcl 85 set ref 62 374 404* 602* 602* 660* 660* 677 677 688 688 728* 728* P_switches parameter bit(36) dcl 86 ref 62 195 374 381 P_value_wanted parameter bit(1) dcl 87 ref 62 365 374 RUNTIME_ADDRESS_INFO_VERSION_1 000000 constant char(8) initial packed unaligned dcl 14-128 ref 248 RUNTIME_TYPE_INFO_VERSION_1 000002 constant char(8) initial packed unaligned dcl 14-127 ref 241 abs builtin function dcl 189 ref 321 acc based structure level 1 dcl 8-6 addr builtin function dcl 189 ref 243 243 250 250 268 305 305 467 467 474 474 677 677 688 688 702 702 819 834 834 834 834 addrel builtin function dcl 189 ref 284 500 615 893 894 897 898 address 000346 automatic pointer level 2 in structure "tar_str" dcl 807 in procedure "convert_subscript" set ref 819* address 000356 automatic pointer level 2 in structure "src_str" dcl 807 in procedure "convert_subscript" set ref 827* address 3 based structure level 2 in structure "runtime_symbol" packed packed unaligned dcl 7-3 in procedure "probe_eval_$evaluate" address_info 000113 automatic structure level 1 unaligned dcl 111 set ref 250 250 address_ptr 4 parameter pointer level 2 in structure "P_reference" dcl 85 in procedure "probe_eval_$evaluate" set ref 201* 366* 463* 467 467* 467* 474* 608 615* 615 704* 705 address_ptr 4 based pointer level 2 in structure "subscript" dcl 107 in procedure "probe_eval_$evaluate" set ref 536 541 545 573 579 583 address_ptr 4 based pointer level 2 in structure "subref" dcl 804 in procedure "convert_subscript" ref 827 argument_list 117 parameter pointer level 3 packed packed unaligned dcl 85 set ref 655 657 718 720 assign_$computational_ 000076 constant entry external dcl 812 ref 834 back 20 based pointer level 2 dcl 11-1 ref 297 base_addr 6 parameter pointer level 2 dcl 85 set ref 329 333* 339* 346 346 346 346 358 366 404* 474* 863* 871* based_l_int based fixed bin(71,0) dcl 559 in begin block on line 552 ref 583 based_l_int based fixed bin(71,0) dcl 523 in begin block on line 517 ref 545 based_s_int based fixed bin(35,0) dcl 518 in begin block on line 517 ref 541 based_s_int based fixed bin(35,0) dcl 553 in begin block on line 552 ref 579 based_str based char packed unaligned dcl 528 in begin block on line 517 ref 536 based_str based char packed unaligned dcl 565 in begin block on line 552 ref 573 block_ptr 4 based pointer level 2 dcl 102 set ref 234* 290 292* 333* 333* 445 474* 474* 863* 871* 871* builtin 116(10) parameter bit(1) level 3 packed packed unaligned dcl 85 set ref 691* builtin_entry 000276 automatic entry variable dcl 158 set ref 685* 688 c_sub_c_ptr 116(12) parameter bit(1) level 3 packed packed unaligned dcl 85 set ref 605* c_symbol_ptr 127 parameter pointer level 2 packed packed unaligned dcl 85 set ref 627 c_typeref_dtype constant fixed bin(17,0) initial dcl 10-25 ref 496 char_dtype constant fixed bin(17,0) initial dcl 10-25 ref 505 class 2(18) 000113 automatic fixed bin(6,0) level 2 packed packed unsigned unaligned dcl 111 set ref 329 615 code 000117 automatic fixed bin(35,0) dcl 113 in procedure "probe_eval_$evaluate" set ref 243* 245 250* 252 339* 341 342 346* 404* 407 602* 677* 679 685* 687 688* 689 740* 742* 743* 747* 752* 756 863* 871* 880 code 000366 automatic fixed bin(35,0) dcl 816 in procedure "convert_subscript" set ref 834* 836 computational 000066 external static bit(1) array level 2 packed packed unaligned dcl 13-23 ref 263 863 computational_data based structure level 1 dcl 3-8 constant 116(01) parameter bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 85 in procedure "probe_eval_$evaluate" set ref 198 631* 708* constant based structure level 1 dcl 6-27 in procedure "probe_eval_$evaluate" constant_token_ptr 123 parameter pointer level 2 packed packed unaligned dcl 85 set ref 199 containing_block 000120 automatic pointer dcl 115 set ref 234* 284* 284 284 290 292 convert builtin function dcl 189 ref 536 541 545 573 579 583 cross_section 116(02) based bit(1) level 3 in structure "subscript" packed packed unaligned dcl 107 in procedure "probe_eval_$evaluate" set ref 772 cross_section 116(02) parameter bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 85 in procedure "probe_eval_$evaluate" set ref 414* 630* 653 763 current_source based structure level 1 dcl 5-13 ref 225 data_ptr 11 based pointer level 2 packed packed unaligned dcl 6-27 ref 201 data_type 10 based fixed bin(17,0) level 2 in structure "constant" dcl 6-27 in procedure "probe_eval_$evaluate" ref 202 203 data_type 2 000346 automatic fixed bin(17,0) level 2 in structure "tar_str" dcl 807 in procedure "convert_subscript" set ref 820* data_type 2 000356 automatic fixed bin(17,0) level 2 in structure "src_str" dcl 807 in procedure "convert_subscript" set ref 828* data_type_info_$info 000066 external static structure array level 1 dcl 13-23 default_external_sw defined bit(1) packed unaligned dcl 95 ref 698 descriptor 114 parameter fixed bin(35,0) level 2 dcl 85 set ref 202* 205 258* 260* 260 727* dimensions 000130 automatic fixed bin(17,0) dcl 119 set ref 386* 391 402 403 410 426 438* 445 450 452 454 455 636 657 764 display 40 based pointer level 2 dcl 11-1 ref 301 divide builtin function dcl 189 ref 203 445 encoded parameter bit(1) packed unaligned dcl 849 ref 845 859 encoded_precision based structure level 1 dcl 9-8 entry_dtype constant fixed bin(17,0) initial dcl 10-25 ref 643 entry_ptr 10 based pointer level 2 dcl 102 set ref 700* 704 eprec 000345 automatic structure level 1 dcl 806 set ref 825* execute 64 based bit(1) level 3 packed packed unaligned dcl 2-18 ref 210 ext_entry_runtime_dtype constant fixed bin(17,0) initial dcl 10-125 ref 282 643 ext_procedure_runtime_dtype constant fixed bin(17,0) initial dcl 10-125 ref 273 316 643 725 727 father 2 based bit(18) level 2 packed packed unaligned dcl 7-3 ref 897 first_sub 000303 automatic fixed bin(17,0) dcl 181 set ref 507* 511 fixed builtin function dcl 189 ref 487 496 496 500 505 507 763 895 flags 3 000346 automatic structure level 2 in structure "tar_str" dcl 807 in procedure "convert_subscript" set ref 821* flags 116 based structure level 2 in structure "subref" dcl 804 in procedure "convert_subscript" flags 64 based structure level 2 in structure "probe_info" dcl 2-18 in procedure "probe_eval_$evaluate" flags 3 000356 automatic structure level 2 in structure "src_str" dcl 807 in procedure "convert_subscript" set ref 829* flags 2 000102 automatic structure level 2 in structure "type_info" packed packed unaligned dcl 110 in procedure "probe_eval_$evaluate" flags 116 parameter structure level 2 in structure "P_reference" dcl 85 in procedure "probe_eval_$evaluate" flags 116 based structure level 2 in structure "subscript" dcl 107 in procedure "probe_eval_$evaluate" fortran 0(02) based bit(1) level 2 packed packed unaligned dcl 7-38 ref 445 frame based structure level 1 dcl 11-1 function 116(03) parameter bit(1) level 3 packed packed unaligned dcl 85 set ref 211* 397* 635 715 716* have_generation 116(06) parameter bit(1) level 3 packed packed unaligned dcl 85 set ref 224 i 000122 automatic fixed bin(35,0) dcl 116 set ref 294* 445* 448 449 450 450 452 452 454 455* 656* 657 657* 719* 720 720* 764* 765 767 767 775 775 779 780 780 780 780 780* 780 780* index builtin function dcl 189 ref 698 int_entry_runtime_dtype constant fixed bin(17,0) initial dcl 10-125 ref 643 invocation_level 125 parameter fixed bin(17,0) level 2 dcl 85 set ref 316 316 321 723 723 io_switches 66 based structure level 2 dcl 2-18 ioa_$ioa_switch 000026 constant entry external dcl 135 ref 780 j 000123 automatic fixed bin(35,0) dcl 116 set ref 763* 765 767 775 775 779 780 780* label_constant_runtime_dtype constant fixed bin(17,0) initial dcl 10-125 ref 316 language_type 21 based fixed bin(17,0) level 3 dcl 2-18 ref 230 263 274 297 393 426 level 0(12) based bit(6) level 2 packed packed unaligned dcl 7-3 ref 895 linkage_ptr 103 based pointer level 3 packed packed unaligned dcl 12-9 ref 333 474 863 871 listener_info 210 based structure level 2 dcl 2-18 location 3 based bit(18) level 3 packed packed unalign*@| (v*@ ?T *@T*@ml &LRo8&&m842440 L c  xmbY0 *@LL*@m*@TL*@|v *@3R&mRo8tt0ml842955.firm m  L0mbYL*@`\8 *@|*@`\ ^0*@L*@`\ l&|Ro9 0m842955 |Ÿz\0mbY *@`+ 2 "*@` p*@$ f *@)@*@`\ 6*@L *@T*@T x ^*@LL*@ ?D*@L*@| `*@`\ &$Ro8PPvaHBSQ100.001 $2 vabY h *@` d*@3R 2*@T*@mL0*@m*@m \0*@|LD;91340C.firm L*@`+ Pa ~fsamo2 abY *@`+ *@*@`\*@| x*@`q\XP#a " fsampl u :abY@*@N>L*@N>P*@N>0*@N>8*@N>OaXaeos S]babY*@S]L*@S]*@S]~*@S]*@S]*@m8*@|L*@`q\*@m *@u*@S] SmartColorControl (;IFMCTL_1 Skeet Multics # zhV00Mallmes Multics s2T G?Skeet Multics mHnS`@ Vu Multics R|<玲`p@ ^Westcott m_Multics R]o| 22B~H@0Wright P.Multics RɊN`?@ $>Smith CDC CSZ}|?@ A Thompson P.Multics PS }P@ Oke Multics QkXeFx RWaters Multics ݌hySUia\ C ?J Samanani P.Multics ,!SGn4F. @ Maryniuk Multics g@jSbtt  Miko P.Multics PS C ~ Flegel Multics mHqS Hussein Multics @eT5ZvdKittlitz Multics Rk3,,HP 6Lee P.Multics USlOZHZ@ Gee Multics 3#wvB S־mv~H@Huen P.Multics R@@Donaldson Multics oI S*@L 6 F*@L > N*@L F V*@L N ^*@L VL*@L*@*@PGeorge \SmartColorMeasurement H &3RRo8 a 91340fx 3R P * abY v*@3R *@3R~*@T T&TRo9 m U832155.firm T  "mbY  *@ ?spec builtin function dcl 814 in procedure "convert_subscript" set ref 825* 825 unspec builtin function dcl 189 in procedure "probe_eval_$evaluate" ref 346 346 346 346 value parameter fixed bin(35,0) dcl 848 in procedure "decode" ref 845 859 value 1 based fixed bin(24,0) array level 2 in structure "ref_subscripts" dcl 98 in procedure "probe_eval_$evaluate" set ref 415* 432* 448 449 450* 450 452* 452 454* 455* 467 467 474 474 767* 767 775* 779* 780 780 varying_bit_dtype constant fixed bin(17,0) initial dcl 10-25 ref 615 varying_char_dtype constant fixed bin(17,0) initial dcl 10-25 ref 615 version 000102 automatic char(8) level 2 in structure "type_info" packed packed unaligned dcl 110 in procedure "probe_eval_$evaluate" set ref 241* version 000113 automatic char(8) level 2 in structure "address_info" packed packed unaligned dcl 111 in procedure "probe_eval_$evaluate" set ref 248* want_external_sw defined bit(1) packed unaligned dcl 94 ref 660 728 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALGOL68_lang_type internal static fixed bin(17,0) initial dcl 1-17 ALM_lang_type internal static fixed bin(17,0) initial dcl 1-17 CONSTANT_TYPE internal static bit(18) initial packed unaligned dcl 6-37 FORTRAN_lang_type internal static fixed bin(17,0) initial dcl 1-17 NAME_TYPE internal static bit(18) initial packed unaligned dcl 6-37 OPERATOR_TYPE internal static bit(18) initial packed unaligned dcl 6-37 OTHER_lang_type internal static fixed bin(17,0) initial dcl 1-17 PL1_lang_type internal static fixed bin(17,0) initial dcl 1-17 RUNTIME_ARRAY_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 14-129 RUNTIME_SUBRANGE_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 14-131 RUNTIME_VARIANT_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 14-130 UNKNOWN_lang_type internal static fixed bin(17,0) initial dcl 1-17 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 10-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 10-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 10-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 10-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 10-25 area_dtype internal static fixed bin(17,0) initial dcl 10-25 bit_dtype internal static fixed bin(17,0) initial dcl 10-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 10-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 10-25 c_union_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 10-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 10-25 current_constant based structure level 1 dcl 6-44 current_identifier_name based char packed unaligned dcl 6-42 current_token based structure level 1 dcl 6-45 data_type_info_$max_decimal_precision external static fixed bin(17,0) dcl 13-48 data_type_info_$max_fixed_binary_precision external static fixed bin(17,0) dcl 13-50 data_type_info_$max_float_binary_precision external static fixed bin(17,0) dcl 13-49 data_type_info_$ninebit_digit_chars external static char(10) packed unaligned dcl 13-45 data_type_info_$ninebit_overpunched_sign_chars external static char(22) packed unaligned dcl 13-46 data_type_info_$ninebit_sign_chars external static char(2) packed unaligned dcl 13-44 data_type_info_$version_number external static fixed bin(17,0) dcl 13-20 data_type_info_this_version internal static fixed bin(17,0) initial dcl 13-21 default_offset_zero_sw defined bit(1) packed unaligned dcl 96 encoded_value based structure level 1 dcl 7-70 expression_area based area(1024) dcl 2-95 ext_name automatic varying char(256) dcl 114 file_dtype internal static fixed bin(17,0) initial dcl 10-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 10-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 10-96 identifier based structure level 1 dcl 6-19 initial_source based structure level 1 dcl 5-14 label_dtype internal static fixed bin(17,0) initial dcl 10-25 n_dims automatic fixed bin(17,0) dcl 14-97 n_variants automatic fixed bin(35,0) dcl 14-112 official_language_names internal static char(32) initial array packed unaligned dcl 1-27 offset_dtype internal static fixed bin(17,0) initial dcl 10-25 operator based structure level 1 dcl 6-24 palatable_language_names internal static char(32) initial array packed unaligned dcl 1-30 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 10-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 10-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 10-125 probe_area based area(1024) dcl 2-93 probe_info_version internal static fixed bin(17,0) initial dcl 2-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 2-90 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 10-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 10-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 10-25 runtime_array_info based structure level 1 dcl 14-70 runtime_bound based structure level 1 unaligned dcl 7-33 runtime_subrange_info based structure level 1 unaligned dcl 14-116 runtime_symbol_info_$array 000000 constant entry external dcl 14-68 runtime_symbol_info_$brother 000000 constant entry external dcl 14-40 runtime_symbol_info_$father 000000 constant entry external dcl 14-38 runtime_symbol_info_$father_type 000000 constant entry external dcl 14-42 runtime_symbol_info_$level 000000 constant entry external dcl 14-50 runtime_symbol_info_$n_variants 000000 constant entry external dcl 14-99 runtime_symbol_info_$name 000000 constant entry external dcl 14-48 runtime_symbol_info_$next 000000 constant entry external dcl 14-52 runtime_symbol_info_$son 000000 constant entry external dcl 14-44 runtime_symbol_info_$subrange 000000 constant entry external dcl 14-114 runtime_symbol_info_$successor 000000 constant entry external dcl 14-46 runtime_symbol_info_$variant 000000 constant entry external dcl 14-101 runtime_token based structure level 1 dcl 7-63 runtime_variant_info based structure level 1 dcl 14-103 scratch_area based area(1024) dcl 2-92 seg_info_nfiles automatic fixed bin(17,0) dcl 12-47 structure_dtype internal static fixed bin(17,0) initial dcl 10-25 work_area based area(1024) dcl 2-94 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_CROSS_SECTION 002667 constant label dcl 747 ref 653 772 CHECK_EXTERNAL 002477 constant label dcl 705 GET_EXTERNAL 002417 constant label dcl 700 ref 221 274 NOT_FOUND 002632 constant label dcl 740 ref 698 RECORDED_MESSAGE 002673 constant label dcl 752 ref 353 362 440 612 640 650 713 744 839 SKIPPER 001156 constant label dcl 386 ref 372 SOME_ERROR 002677 constant label dcl 756 ref 245 252 407 689 749 754 880 add_c_dims 001140 constant entry external dcl 374 convert_subscript 003075 constant entry internal dcl 795 ref 779 decode 003214 constant entry internal dcl 845 ref 263 do_subscripts 002703 constant entry internal dcl 760 ref 431 443 probe_eval_$evaluate 000170 constant entry external dcl 62 qualifier_name 003333 constant entry internal dcl 885 ref 342 346 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4334 4440 3655 4344 Length 5176 3655 104 521 456 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_eval_$evaluate 914 external procedure is an external procedure. begin block on line 489 begin block shares stack frame of external procedure probe_eval_$evaluate. begin block on line 517 begin block shares stack frame of external procedure probe_eval_$evaluate. begin block on line 552 begin block shares stack frame of external procedure probe_eval_$evaluate. do_subscripts internal procedure shares stack frame of external procedure probe_eval_$evaluate. convert_subscript internal procedure shares stack frame of external procedure probe_eval_$evaluate. decode internal procedure shares stack frame of external procedure probe_eval_$evaluate. qualifier_name internal procedure shares stack frame of external procedure probe_eval_$evaluate. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_eval_$evaluate 000100 switches probe_eval_$evaluate 000102 type_info probe_eval_$evaluate 000113 address_info probe_eval_$evaluate 000117 code probe_eval_$evaluate 000120 containing_block probe_eval_$evaluate 000122 i probe_eval_$evaluate 000123 j probe_eval_$evaluate 000124 tp probe_eval_$evaluate 000126 sub probe_eval_$evaluate 000130 dimensions probe_eval_$evaluate 000131 real_bounds probe_eval_$evaluate 000172 temp probe_eval_$evaluate 000174 steps probe_eval_$evaluate 000175 translated_name probe_eval_$evaluate 000276 builtin_entry probe_eval_$evaluate 000302 new_size probe_eval_$evaluate 000303 first_sub probe_eval_$evaluate 000304 replace_sub probe_eval_$evaluate 000305 special_entry probe_eval_$evaluate 000306 make_this_ref_node_a_constant probe_eval_$evaluate 000307 must_add_in_ptr_subscript probe_eval_$evaluate 000310 probe_info_ptr probe_eval_$evaluate 000316 suber1 begin block on line 489 000317 suber2 begin block on line 489 000320 temp_inx begin block on line 489 000322 temp_ptr begin block on line 489 000344 subv convert_subscript 000345 eprec convert_subscript 000346 tar_str convert_subscript 000356 src_str convert_subscript 000366 code convert_subscript 000376 result decode 000406 p qualifier_name 000410 name qualifier_name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_$computational_ ioa_$ioa_switch probe_array_bounds_ probe_check_ptr_$indirectable probe_cv_stu_code_ probe_error_$record probe_find_procedure_ probe_get_c_address_ probe_invoke_$function probe_operate_$infix probe_request_mgr_$find_builtin probe_stack_trace_$find_block_frame probe_stack_trace_$find_previous_invocation probe_variable_mgr_$find_variable runtime_symbol_info_$address runtime_symbol_info_$array_dims runtime_symbol_info_$type stu_$decode_runtime_value stu_$decode_runtime_value_extended stu_$find_runtime_symbol stu_$get_implicit_qualifier stu_$get_runtime_address THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. data_type_info_$info probe_et_$bad_section probe_et_$bad_subscript probe_et_$no_address probe_et_$not_based probe_et_$null_ptr probe_et_$recorded_message probe_et_$wrong_dims LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 62 000163 194 000175 195 000201 196 000203 198 000204 199 000210 201 000212 202 000214 203 000216 204 000220 205 000222 206 000232 207 000234 210 000235 211 000240 214 000244 221 000245 224 000250 225 000253 226 000260 230 000261 232 000304 234 000313 238 000352 241 000360 243 000362 245 000377 248 000401 250 000404 252 000422 255 000424 256 000431 257 000433 258 000440 260 000442 263 000451 268 000477 273 000510 274 000515 282 000521 284 000524 287 000531 290 000533 292 000540 294 000542 297 000557 301 000572 304 000600 305 000606 316 000621 321 000635 329 000656 333 000671 338 000717 339 000725 341 000740 342 000742 346 001010 353 001066 357 001067 358 001070 360 001076 362 001117 365 001120 366 001124 367 001127 370 001130 372 001131 374 001132 380 001145 381 001147 382 001151 384 001154 386 001156 390 001167 391 001170 393 001175 395 001204 396 001206 397 001207 401 001211 402 001212 403 001215 404 001216 407 001244 410 001246 412 001253 414 001255 415 001257 422 001263 426 001264 430 001301 431 001304 432 001305 433 001311 434 001313 435 001315 436 001317 438 001320 440 001360 442 001361 443 001362 445 001363 448 001401 449 001406 450 001411 452 001417 454 001421 455 001423 456 001425 463 001432 467 001445 474 001475 484 001533 485 001535 487 001536 495 001551 496 001555 500 001572 503 001577 505 001600 507 001604 510 001613 511 001614 513 001625 514 001626 515 001627 536 001630 541 001655 545 001662 551 001666 573 001677 579 001724 583 001731 588 001735 590 001747 593 001751 594 001753 597 001762 598 001764 602 001766 604 002014 605 002020 608 002022 610 002030 612 002051 615 002052 626 002072 627 002074 630 002101 631 002103 632 002105 633 002106 635 002107 636 002112 638 002116 640 002137 643 002140 648 002151 650 002172 653 002173 655 002176 656 002201 657 002211 658 002224 660 002231 663 002252 665 002253 670 002254 677 002261 679 002276 685 002300 687 002344 688 002347 689 002371 691 002373 692 002377 698 002400 700 002417 702 002424 704 002471 705 002477 708 002503 709 002505 710 002510 713 002541 715 002542 716 002547 718 002551 719 002553 720 002563 721 002572 722 002577 723 002600 725 002603 727 002607 728 002611 732 002631 740 002632 742 002634 743 002643 744 002666 747 002667 749 002672 752 002673 754 002676 756 002677 758 002702 760 002703 763 002704 764 002721 765 002731 767 002744 772 002761 775 002764 779 002777 780 003015 790 003062 791 003067 793 003074 795 003075 819 003077 820 003101 821 003103 822 003107 823 003111 825 003112 827 003116 828 003120 829 003124 830 003130 831 003134 832 003137 834 003142 836 003161 837 003163 839 003207 841 003210 845 003214 859 003216 863 003226 871 003272 880 003325 882 003327 885 003333 893 003335 894 003343 895 003360 897 003365 898 003372 899 003434 900 003436 ----------------------------------------------------------- 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