COMPILATION LISTING OF SEGMENT probe_print_arglist_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/27/88 1238.0 mst Thu Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-03-13,GWMay), approve(86-04-16,MCR7373), 14* audit(86-04-29,LJAdams), install(86-05-01,MR12.0-1051): 15* Changed to reference entry_desc_info_version_2 constant. 16* 2) change(86-09-08,DGHowe), approve(86-09-08,MCR7524), 17* audit(86-09-16,Ginter), install(86-09-24,MR12.0-1158): 18* use command name arglist and check for mbz and pad1 to be "0"b 19* 3) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 20* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 21* Added format control comment to make the source more readable. 22* END HISTORY COMMENTS */ 23 24 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 25 26 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 27 28 /* Program to print argument list in "pretty" format. Based on earlier 29* list_frame_args_ by T. VanVleck and S. Webber */ 30 /* Initial Version: 14 June 1974 by B. Wolman */ 31 /* Adapted for probe, 07/15/79 W. Olin Sibert */ 32 /* Truly adapted for probe (a quick job) JRDavis 15 Sept 79 */ 33 /* Changed to flag char strings truncated to 100 chars 09/30/81 S. Herbst */ 34 /* Changed to detect overlength varying strings and return arguments 14 November 1981 J. Spencer Love */ 35 /* Changed to accept all arithmetic types incl hexfp, extended, generic 02/08/84 S. Herbst */ 36 37 probe_print_arglist_: 38 proc (P_probe_info_ptr, P_source_info_ptr); 39 40 dcl P_probe_info_ptr ptr parameter; 41 dcl P_source_info_ptr ptr parameter; 42 /* input: to source info describing frame */ 43 44 dcl 1 Arg_source aligned like source_info 45 based (source_info_ptr); 46 dcl source_info_ptr ptr; 47 48 49 dcl argp ptr, /* to a particular arg */ 50 ap ptr, /* to the arglist as a whole */ 51 descp ptr, /* to a descriptor in the arglist */ 52 ep ptr, /* entry ptr for proc of interest */ 53 ip ptr, /* to info about expected arg types */ 54 arg_index fixed bin,/* the index of the arg currently being printed */ 55 oswitch ptr, /* the io switch to write on */ 56 str_length fixed bin (24), 57 scale fixed bin, 58 type fixed bin,/* data type of Nth arg */ 59 ndims fixed bin,/* number of dimensions of N'th arg */ 60 packed bit (1) aligned, 61 /* was data packed? */ 62 quick_block bit (1) aligned, 63 /* is this a quick call? */ 64 expected_type fixed bin,/* for N'th arg, what was expected data type? */ 65 expected_scale fixed bin,/* scale likewise */ 66 expected_str_length fixed bin (24), 67 expected_ndims, 68 expected_packed bit (1) aligned, 69 code fixed bin (35), 70 no_args fixed bin,/* how many args we have */ 71 no_descs fixed bin,/* how many descriptors */ 72 expected_no_args fixed bin,/* how many the program wanted */ 73 arg_list_arg_count fixed bin,/* for arg_list.incl.pl1 */ 74 arith_str char (500) varying, 75 hexfp_space fixed bin (71), 76 overlength_varying_string 77 fixed bin (24), 78 truncated fixed bin (24), 79 type_unknown bit (1) aligned; 80 81 dcl add_bit_offset_ entry (ptr, fixed bin (24)) 82 returns (ptr) reducible; 83 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 84 dcl condition_ entry (char (*), entry); 85 dcl decode_descriptor_ entry (ptr, fixed bin, fixed bin, 86 bit (1) aligned, fixed bin, fixed bin (24), 87 fixed bin); 88 dcl display_file_value_ entry (ptr, file, fixed bin (35)); 89 dcl get_entry_arg_descs_$info 90 entry (ptr, fixed bin, (*) ptr, ptr, 91 fixed bin (35)); 92 dcl get_ring_ entry () returns (fixed bin (3)); 93 dcl ioa_$ioa_switch entry options (variable); 94 dcl ioa_$ioa_switch_nnl entry options (variable); 95 dcl ioa_$rsnnl entry options (variable); 96 dcl requote_string_ entry (char (*)) returns (char (*)); 97 98 dcl probe_check_ptr_$convert 99 entry (ptr, bit (*)) 100 returns (char (256) varying); 101 dcl probe_check_ptr_$convert_packed 102 entry (ptr unal, bit (*)) 103 returns (char (256) varying); 104 105 dcl probe_check_ptr_$check entry (ptr, fixed bin (35)); 106 107 dcl probe_error_ entry options (variable); 108 109 dcl 1 no_arg_info aligned, 110 2 no_args fixed bin init (-1), 111 2 function bit (1) initial ("0"b); 112 113 dcl 1 arg_info aligned, /* for get_entry_arg_descs */ 114 2 no_args fixed bin, 115 2 function bit (1), 116 2 descs (128) ptr; 117 118 dcl 1 entry_flags aligned like entry_desc_info; 119 120 dcl 1 (source, target) aligned like computational_data; 121 122 dcl word (2) fixed bin based, 123 packed_ptr unal ptr based, 124 unpacked_ptr aligned ptr based, 125 based_file file based, 126 based_length fixed bin (24) based, 127 bit_string bit (str_length) based, 128 char_string char (str_length) based, 129 based_cs char (100) based; 130 131 dcl (addr, addrel, binary, hbound, ltrim, max, maxlength, min, null, ptr, 132 unspec, verify) builtin; 133 134 dcl 1 lv aligned based (argp), 135 2 ptr ptr, 136 2 stack ptr; 137 138 dcl star_length fixed bin (24) static init (16777215); 139 /* length in char(*) entry descriptor */ 140 141 142 dcl LEGAL char (96) int static 143 init /* Printables except PAD, but with BS */ 144 ( 145 " !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 146 ); 147 148 dcl 1 entry_arg_info aligned based, 149 2 no_args fixed bin, 150 2 function bit (1), 151 2 descs (n refer (entry_arg_info.no_args)) ptr; 152 153 154 probe_info_ptr = P_probe_info_ptr; 155 source_info_ptr = P_source_info_ptr; 156 157 oswitch = probe_info.output_switch; 158 159 ep = Arg_source.entry_ptr; /* needed to decode descriptors */ 160 sp = Arg_source.stack_ptr; 161 162 call find_arglist (); 163 164 entry_flags.version = entry_desc_info_version_2; 165 call get_entry_arg_descs_$info (ep, arg_info.no_args, arg_info.descs, 166 addr (entry_flags), code); 167 168 if code = 0 then do; 169 arg_info.function = entry_flags.function; 170 ip = addr (arg_info); 171 end; 172 else ip = addr (no_arg_info); 173 174 expected_no_args = ip -> entry_arg_info.no_args; 175 176 if expected_no_args > 0 177 then if expected_no_args ^= no_args 178 then call ioa_$ioa_switch (oswitch, 179 "Warning: ^d arguments expected, ^d supplied.", 180 expected_no_args, no_args); 181 182 if no_args = 0 then do; 183 call ioa_$ioa_switch (oswitch, "No arguments."); 184 return; 185 end; 186 187 if no_args > 128 then do; 188 call ioa_$ioa_switch (oswitch, 189 "Only first 128 of ^d args will be considered.", no_args); 190 no_args = 128; 191 expected_no_args = min (expected_no_args, 128); 192 if no_descs ^= 0 193 then no_descs = 128; 194 end; 195 196 call condition_ ("any_other", handler); 197 198 do arg_index = 1 to no_args; 199 200 argp = cv_ptr (ap -> arg_list.arg_ptrs (arg_index)); 201 type_unknown = "0"b; 202 203 if no_descs ^= 0 then do; 204 if ap -> arg_list.call_type = Envptr_supplied_call_type 205 then descp = 206 cv_ptr (ap -> arg_list_with_envptr.desc_ptrs (arg_index)); 207 else descp = cv_ptr (ap -> arg_list.desc_ptrs (arg_index)); 208 209 call decode_descriptor_ (descp, 0, type, packed, ndims, str_length, 210 scale); 211 212 if expected_no_args >= arg_index 213 then if ip -> entry_arg_info.descs (arg_index) ^= null 214 then call compare_expected_with_actual; 215 end; 216 else if expected_no_args >= arg_index 217 then do; 218 if ip -> entry_arg_info.descs (arg_index) = null 219 then call guess_type; 220 else call decode_descriptor_ (ip 221 -> entry_arg_info.descs (arg_index), 0, type, packed, 222 ndims, str_length, scale); 223 end; 224 else call guess_type; 225 226 227 /* now type is set, and possible others such as str_length, scale, packed, a */ 228 229 if arg_index = no_args & ip -> entry_arg_info.function 230 then do; 231 call ioa_$ioa_switch (oswitch, "ARG ^3d @ ^p Returns ^a.", arg_index, 232 argp, type_name (type)); 233 go to next_arg; 234 end; 235 236 call ioa_$ioa_switch_nnl (oswitch, "ARG ^3d @ ^p = ", arg_index, argp); 237 238 if type < -1 239 then goto unknown_type; 240 if type > hbound (form, 1) 241 then goto unknown_type; 242 243 overlength_varying_string, truncated = 0; 244 245 goto form (type); 246 247 /* Arithmetic */ 248 249 form (1): 250 form (2): 251 form (3): 252 form (4): 253 form (5): 254 form (6): 255 form (7): 256 form (8): 257 form (9): 258 form (10): 259 form (11): 260 form (12): 261 form (29): 262 form (30): 263 form (33): 264 form (34): 265 form (35): 266 form (36): 267 form (38): 268 form (39): 269 form (41): 270 form (42): 271 form (43): 272 form (44): 273 form (45): 274 form (46): 275 form (47): 276 form (48): 277 form (49): 278 form (50): 279 /* Copied from display_data_ */ 280 281 unspec (source) = "0"b; 282 source.address = argp; 283 source.data_type = type; 284 source.packed = packed; 285 source.prec_or_length = str_length; 286 source.scale = scale; 287 source.picture_image_ptr = null; 288 289 if source.data_type = real_flt_dec_generic_dtype | 290 source.data_type = cplx_flt_dec_generic_dtype then do; 291 /* don't print generic's tremendous precision */ 292 unspec (target) = "0"b; 293 target.address = addr (hexfp_space); 294 if source.data_type = real_flt_dec_generic_dtype 295 then 296 target.data_type = real_flt_hex_1_dtype; 297 else target.data_type = cplx_flt_hex_1_dtype; 298 target.prec_or_length = 27; 299 target.picture_image_ptr = null; 300 301 call assign_$computational_ (addr (target), addr (source), code); 302 if code = 0 303 then source = target; 304 end; 305 306 unspec (target) = "0"b; 307 target.address = addr (arith_str); 308 target.data_type = varying_char_dtype; 309 target.prec_or_length = maxlength (arith_str); 310 target.picture_image_ptr = null; 311 312 call assign_$computational_ (addr (target), addr (source), code); 313 if code ^= 0 314 then go to unknown_type; 315 316 arith_str = ltrim (arith_str); 317 call ioa_$ioa_switch (oswitch, "^a", arith_str); 318 319 goto next_arg; 320 321 /* Pointer */ 322 323 form (13): 324 if packed 325 then call ioa_$ioa_switch (oswitch, "^a", 326 probe_check_ptr_$convert_packed (argp -> packed_ptr, ""b)); 327 else call ioa_$ioa_switch (oswitch, "^a^[ (type unknown)^]", 328 probe_check_ptr_$convert (argp -> unpacked_ptr, ""b), 329 type_unknown); 330 331 goto next_arg; 332 333 /* Label, Entry Variables */ 334 335 form (15): 336 form (16): 337 call ioa_$ioa_switch (oswitch, "^a ^[(external entry)^;^p^]", 338 probe_check_ptr_$convert (argp -> lv.ptr, ""b), 339 (argp -> lv.stack = null ()), argp -> lv.stack); 340 341 /*** What I really want to do here is display a level number instead of a stackframeptr. */ 342 343 goto next_arg; 344 345 346 /* Label, Entry Constants */ 347 348 form (24): 349 form (25): 350 form (26): 351 form (27): 352 353 call ioa_$ioa_switch (oswitch, "^a", 354 probe_check_ptr_$convert (argp -> unpacked_ptr, ""b)); 355 356 goto next_arg; 357 358 /* Varying bit string */ 359 360 form (20): 361 if addrel (argp, -1) -> based_length > str_length 362 | addrel (argp, -1) -> based_length < 0 363 then overlength_varying_string = addrel (argp, -1) -> based_length; 364 else str_length = addrel (argp, -1) -> based_length; 365 366 /* Bit string */ 367 368 form (19): 369 if str_length > 72 then do; 370 truncated = str_length; 371 str_length = 72; 372 end; 373 374 call ioa_$ioa_switch (oswitch, 375 "^[(Length = ^d, Maxlength = ^d) ^;^2s^]""^b""b^[ (truncated from ^d bits)^]", 376 (overlength_varying_string ^= 0), overlength_varying_string, 377 max (str_length, truncated), 378 argp -> bit_string, (truncated > 0), truncated); 379 380 goto next_arg; 381 382 /* Varying char string */ 383 384 form (22): 385 if addrel (argp, -1) -> based_length > str_length 386 | addrel (argp, -1) -> based_length < 0 387 then overlength_varying_string = addrel (argp, -1) -> based_length; 388 else str_length = addrel (argp, -1) -> based_length; 389 390 /* Char string */ 391 392 form (21): 393 if str_length > 256 then do; 394 truncated = str_length; 395 str_length = 168; 396 end; 397 398 call ioa_$ioa_switch (oswitch, 399 "^[(Length = ^d, Maxlength = ^d) ^;^2s^]^a^[ (truncated from ^d chars)^;^s^]^[ (type unknown)^]", 400 (overlength_varying_string ^= 0), overlength_varying_string, 401 max (str_length, truncated), 402 requote_string_ (argp -> char_string), (truncated > 0), truncated, 403 type_unknown); 404 405 goto next_arg; 406 407 /* File */ 408 409 form (23): 410 call display_file_value_ (oswitch, argp -> based_file, (0)); 411 goto next_arg; 412 413 /* Cannot determine type */ 414 415 form (0): 416 form (-1): 417 call ioa_$ioa_switch (oswitch, "^w (type unknown)", argp -> word (1)); 418 419 go to next_arg; 420 421 /* Offset */ 422 423 form (14): 424 call ioa_$ioa_switch (oswitch, " ^w", argp -> word (1)); 425 426 goto next_arg; 427 428 /* Area or Structure, or unrecognized type */ 429 430 unknown_type: 431 form (17): 432 form (18): 433 form (28): 434 form (31): 435 form (32): 436 form (37): 437 form (40): 438 form (51): 439 form (52): 440 form (53): 441 form (54): 442 form (55): 443 form (56): 444 form (57): 445 form (58): 446 form (59): 447 call ioa_$ioa_switch (oswitch, " (^a) ^w", 448 type_name (type), argp -> word (1)); 449 450 next_arg: 451 if ndims > 0 452 then call ioa_$ioa_switch (oswitch, "^10x(^d-dim array)", ndims); 453 454 skip_arg: 455 end; /* arg printing loop */ 456 return; 457 458 /* internal procs follow */ 459 460 find_arglist: 461 procedure (); 462 463 dcl bp ptr; 464 465 466 if sp = null () 467 then call probe_error_ (probe_info_ptr, 0, 468 "Can't find arg list because can't find stack frame."); 469 470 bp = Arg_source.block_ptr; 471 quick_block = "0"b; 472 if bp ^= null () 473 then if bp -> runtime_block.type = ""b 474 then call probe_error_ (probe_info_ptr, 0, 475 "Begin block has no arguments."); 476 else if bp -> runtime_block.quick 477 then quick_block = "1"b; 478 479 if quick_block 480 then do; /* Make sure quick block has valid arglistptr. */ 481 ap = addrel (sp, bp -> runtime_block.entry_info); 482 if ap -> its.its_mod ^= ITS_MODIFIER | ap -> its.mod ^= ""b 483 | ap -> its.pad1 ^= ""b 484 | ap -> its.pad2 ^= ""b | ap -> its.pad3 ^= ""b 485 | ap -> its.pad4 ^= ""b 486 | binary (ap -> its.ringno) ^= get_ring_ () 487 | ap -> its.bit_offset ^= ""b 488 then do; 489 ap = null (); 490 no_args, arg_list_arg_count, no_descs = 0; 491 return; 492 end; 493 ap = ap -> quick_entry.argptr; 494 end; 495 else do; 496 call probe_check_ptr_$check (stack_frame.arg_ptr, code); 497 if code ^= 0 498 then call probe_error_ (probe_info_ptr, code, "(argument ptr)"); 499 ap = stack_frame.arg_ptr; 500 end; 501 502 if ap = null () 503 then call probe_error_ (probe_info_ptr, 0, "Argument ptr is null."); 504 505 call probe_check_ptr_$check (ap, code); 506 if code ^= 0 507 then call probe_error_ (probe_info_ptr, code); 508 509 if ap -> command_name_arglist.pad1 ^= "0"b | 510 ap -> command_name_arglist.mbz ^= "0"b 511 then call probe_error_ (probe_info_ptr, 0, 512 "Arg list at ^p has some pad bits set.", ap); 513 514 if ap -> arg_list.call_type ^= Quick_call_type & 515 ap -> arg_list.call_type ^= Interseg_call_type & 516 ap -> arg_list.call_type ^= Envptr_supplied_call_type 517 then call ioa_$ioa_switch (oswitch, 518 "Warning: Arg list at ^p has bad call type (^d).", ap, 519 ap -> arg_list.call_type); 520 521 if quick_block & (ap -> arg_list.call_type ^= Quick_call_type) 522 then call ioa_$ioa_switch (oswitch, 523 "Warning: Arg list at ^p has nonquick type for quick call.", 524 ap); 525 526 if ^quick_block & (ap -> arg_list.call_type = Quick_call_type) 527 then call ioa_$ioa_switch (oswitch, 528 "Warning: Arg list at ^p has quick type for nonquick call.", 529 ap); 530 531 /* ALM does not set the envptr for C. */ 532 533 if bp ^= null () & ^quick_block 534 then if ^runtime_block_is_external (bp) 535 then if ap -> arg_list.call_type = Interseg_call_type 536 & probe_info.language_type ^= C_lang_type 537 then call ioa_$ioa_switch (oswitch, 538 "Warning: Arg list at ^p has no environmentptr.", 539 ap); 540 else if ap -> arg_list_with_envptr.envptr = null () 541 & probe_info.language_type = C_lang_type 542 then call ioa_$ioa_switch (oswitch, 543 "Warning: Arg list at ^p has a null environmentptr.", 544 ap); 545 else ; 546 else if ap -> arg_list.call_type = Envptr_supplied_call_type 547 then if ap -> arg_list_with_envptr.envptr ^= null () 548 then call ioa_$ioa_switch (oswitch, 549 "Warning: Arg list at ^p has extraneous environmentptr.", 550 ap); 551 552 no_args, arg_list_arg_count = ap -> arg_list.arg_count; 553 no_descs = ap -> arg_list.desc_count; 554 555 if no_descs > 0 & no_descs ^= no_args 556 then call probe_error_ (probe_info_ptr, 0, 557 "Arg list at ^p has ^d args but only ^d descriptors.", ap, 558 no_args, no_descs); 559 560 return; 561 562 end find_arglist; 563 564 /* This procedure is used to determine whether an entrypoint is internal or external. It uses the following 565* simple heuristic: the first runtime_block in the runtime symbol table for the current component is 566* assumed to be external; all others are considered internal. I don't like this very well, but it is the 567* best that can be done at present. */ 568 569 runtime_block_is_external: 570 procedure (bp) returns (bit (1) aligned); 571 572 declare bp ptr, 573 p ptr; 574 575 p = addrel (bp, bp -> runtime_block.header); 576 p = addrel (p, 577 addrel (p, p -> std_symbol_header.area_pointer) 578 -> pl1_symbol_block.root); 579 p = addrel (p, p -> runtime_block.son); 580 581 if bp = p 582 then return ("1"b); 583 else return ("0"b); 584 585 end runtime_block_is_external; 586 587 /* This procedure performs a (rough) comparison using calling descriptor and entry arg descriptor. 588* The global variable arg_index indicates the argument being checked. 589* The actual form of structures is not checked. */ 590 591 compare_expected_with_actual: 592 proc; 593 594 595 call decode_descriptor_ (ip -> entry_arg_info.descs (arg_index), 0, 596 expected_type, expected_packed, 597 expected_ndims, expected_str_length, expected_scale); 598 599 if type ^= expected_type 600 then call ioa_$ioa_switch (oswitch, 601 "Warning: arg ^d type mismatch: ^a supplied, ^a expected.", 602 arg_index, type_name (type), type_name (expected_type)); 603 604 if packed ^= expected_packed 605 then if (expected_type ^= 19) & (expected_type ^= 21) 606 then call ioa_$ioa_switch (oswitch, 607 "Warning: arg ^d packing mismatch: ^b supplied, ^b expected.", 608 arg_index, packed, expected_packed); 609 610 if ndims ^= expected_ndims 611 then call ioa_$ioa_switch (oswitch, 612 "Warning: arg ^d ndims mismatch: ^d supplied, ^d expected.", 613 arg_index, ndims, expected_ndims); 614 615 if str_length ^= expected_str_length 616 then if (expected_type < bit_dtype) | (expected_str_length ^= star_length) 617 then call ioa_$ioa_switch (oswitch, 618 "Warning: arg ^d length mismatch: ^d supplied, ^d expected.", 619 arg_index, str_length, expected_str_length); 620 621 if scale ^= expected_scale 622 then call ioa_$ioa_switch (oswitch, 623 "Warning: arg ^d scale mismatch: ^d supplied, ^d expected.", 624 arg_index, scale, expected_scale); 625 626 end; 627 628 /* This procedure attempts to guess the type of a datum by inspection. 629* It guesses pointer, character string, or octal word. 630* It is called when no descriptors are available. */ 631 632 guess_type: 633 proc; 634 635 packed = "0"b; 636 scale = 0; 637 ndims = 0; 638 type_unknown = "1"b; 639 640 if argp -> its.its_mod = ITS_MODIFIER & argp -> its.pad1 = ""b 641 then type = pointer_dtype; 642 else do; 643 str_length = verify (argp -> based_cs, LEGAL) - 1; 644 if str_length < 0 645 then str_length = 100; 646 if str_length >= 2 647 then type = char_dtype; 648 else type = -1; 649 end; 650 end; 651 652 handler: 653 proc (mcp, cname, cop, infop, continue); 654 655 dcl (mcp, cop, infop) ptr, 656 cname char (*), 657 continue bit (1); 658 659 if cname = "alrm" 660 then do; 661 refuse: 662 continue = "1"b; 663 return; 664 end; 665 666 if cname = "cput" 667 then goto refuse; 668 if cname = "program_interrupt" 669 then goto refuse; 670 if cname = "mme2" 671 then goto refuse; 672 if cname = "finish" 673 then goto refuse; 674 if cname = "storage" 675 then goto refuse; 676 if cname = "quit" 677 then goto refuse; 678 679 if cname = "cleanup" 680 then 681 return; 682 683 call ioa_$ioa_switch (oswitch, "not accessible - ^a fault", cname); 684 685 goto skip_arg; 686 end handler; 687 688 type_name: 689 proc (t) returns (char (40)); 690 691 dcl t fixed bin parameter; 692 dcl buff char (40); 693 1 1 /* BEGIN INCLUDE FILE ... probe_data_type_names.incl.pl1 1 2* 1 3* Extracted from psi.pl1 by JRDavis 15 Sept 79 1 4* This crude gem is used by probe_print_arglist_ 1 5* algol68 type names added 7/31/81 by MBW 1 6* Added pascal data type names 10/18/83 S. Herbst 1 7* Added hex floating point, extended, and generic types 02/08/84 S. Herbst 1 8* 1 9**/ 1 10 1 11 dcl type_name (0:80) char (40) static options (constant) init ( 1 12 "bad type 0", /* 0 */ 1 13 "fixed bin", /* 1 */ 1 14 "fixed bin", /* 2 */ 1 15 "float bin", /* 3 */ 1 16 "float bin", /* 4 */ 1 17 "complex fixed bin", /* 5 */ 1 18 "complex fixed bin", /* 6 */ 1 19 "complex float bin", /* 7 */ 1 20 "complex float bin", /* 8 */ 1 21 "fixed dec", /* 9 */ 1 22 "float dec", /* 10 */ 1 23 "complex fixed dec", /* 11 */ 1 24 "complex float dec", /* 12 */ 1 25 "pointer", /* 13 */ 1 26 "offset", /* 14 */ 1 27 "label variable", /* 15 */ 1 28 "entry variable", /* 16 */ 1 29 "structure", /* 17 */ 1 30 "area", /* 18 */ 1 31 "bit", /* 19 */ 1 32 "varying bit", /* 20 */ 1 33 "char", /* 21 */ 1 34 "varying char", /* 22 */ 1 35 "file", /* 23 */ 1 36 "label constant", /* 24 */ 1 37 "internal entry ", /* 25 */ 1 38 "external entry", /* 26 */ 1 39 "external procedure", /* 27 */ 1 40 "bad type 28", /* 28 */ 1 41 "overpunched ls", /* 29 */ 1 42 "overpunched ts", /* 30 */ 1 43 "bad type 31", /* 31 */ 1 44 "bad type 32", /* 32 */ 1 45 "unsigned binary", /* 33 */ 1 46 "unsigned binary", /* 34 */ 1 47 "unsigned dec", /* 35 */ 1 48 "fixed dec ts", /* 36 */ 1 49 "bad type 37", /* 37 */ 1 50 "fixed dec digit uns", /* 38 */ 1 51 "fixed dec digit ts", /* 39 */ 1 52 "bad type 40", /* 40 */ 1 53 "fixed dec digit ls", /* 41 */ 1 54 "float dec digit", /* 42 */ 1 55 "fixed dec byte", /* 43 */ 1 56 "float dec byte ", /* 44 */ 1 57 "cmplx fixed dec byte", /* 45 */ 1 58 "cmplx float dec byte", /* 46 */ 1 59 "float hex", /* 47 */ 1 60 "float hex", /* 48 */ 1 61 "complex float hex", /* 49 */ 1 62 "complex float hex", /* 50 */ 1 63 "bad type 51", /* 51 */ 1 64 "bad type 52", /* 52 */ 1 65 "bad type 53", /* 53 */ 1 66 "bad type 54", /* 54 */ 1 67 "bad type 55", /* 55 */ 1 68 "bad type 56", /* 56 */ 1 69 "bad type 57", /* 57 */ 1 70 "bad type 58", /* 58 */ 1 71 "algol68 straight", /* 59 */ 1 72 "algol68 format", /* 60 */ 1 73 "algol68 array descriptor", /* 61 */ 1 74 "algol68 union", /* 62 */ 1 75 "picture", /* 63 */ 1 76 "pascal typed pointer type", /* 64 */ 1 77 "pascal char", /* 65 */ 1 78 "pascal boolean", /* 66 */ 1 79 "pascal record file type", /* 67 */ 1 80 "pascal record type", /* 68 */ 1 81 "pascal set type", /* 69 */ 1 82 "pascal enumerated type", /* 70 */ 1 83 "pascal enumerated type element", /* 71 */ 1 84 "pascal enumerated type instance", /* 72 */ 1 85 "pascal user defined type", /* 73 */ 1 86 "pascal user defined type instance", /* 74 */ 1 87 "pascal text file", /* 75 */ 1 88 "pascal procedure type", /* 76 */ 1 89 "pascal variable formal parameter", /* 77 */ 1 90 "pascal value formal parameter", /* 78 */ 1 91 "pascal entry formal parameter", /* 79 */ 1 92 "pascal parameter procedure" /* 80 */ 1 93 ); 1 94 1 95 1 96 /* END INCLUDE FILE probe_data_type_names.incl.pl1 */ 694 695 696 if t >= 1 & t <= hbound (type_name, 1) 697 then 698 return (type_name (t)); 699 700 call ioa_$rsnnl ("type ^d", buff, 40, t); 701 702 return (buff); 703 704 end; 705 706 cv_ptr: 707 procedure (p) returns (ptr); 708 709 declare p ptr; 710 711 declare 1 ITS aligned like its based (addr (p)), 712 1 ITP aligned like itp based (addr (p)), 713 OFFSET bit (18) unaligned based (addr (p)); 714 715 if ^quick_block 716 then 717 return (p); 718 719 if ITS.its_mod = ITS_MODIFIER & ITS.mod = ""b 720 then 721 return (p); 722 723 if ITS.its_mod = ""b 724 then 725 return (ptr (ep, OFFSET)); 726 727 if ITP.itp_mod = ITP_MODIFIER & binary (ITP.pr_no) = 6 728 then 729 return ( 730 add_bit_offset_ (addrel (sp, ITP.offset), 731 binary (ITP.bit_offset))) 732 ; 733 call probe_error_ (probe_info_ptr, 0, 734 "Bad modifiers in quick arglist at ^p", ap); 735 end cv_ptr; 736 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 */ 737 738 3 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 3 2* 3 3* James R. Davis 2 July 79 */ 3 4 3 5 dcl 1 source_info based aligned, 3 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 3 7 2 instruction_ptr ptr, /* to last instruction executed */ 3 8 2 block_ptr ptr, /* to runtime_block node */ 3 9 2 stack_ptr ptr, /* to a stack frame */ 3 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 3 11 2 seg_info_ptr ptr; /* to seg_info */ 3 12 3 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 3 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 3 15 3 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 739 740 4 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 4 2* 4 3* 12 July 79 JRDavis */ 4 4 4 5 /* this is the format of the structure given to assign_$computational_ 4 6* that describes the data to be assigned */ 4 7 4 8 dcl 1 computational_data aligned based, 4 9 2 address ptr aligned, /* to data */ 4 10 2 data_type fixed bin (17), /* standard descriptor type */ 4 11 2 flags aligned, 4 12 3 packed bit (1) unal, 4 13 3 pad bit (35) unal, 4 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 4 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 4 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 4 17 4 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 741 742 5 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 5 2* 5 3* James R. Davis 10 May 79 */ 5 4 5 5 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 5 9* audit(86-07-15,Schroth): 5 10* added command_name_arglist declaration to allow the storage of the 5 11* command name given to the command processor 5 12* END HISTORY COMMENTS */ 5 13 5 14 dcl 1 arg_list aligned based, 5 15 2 header, 5 16 3 arg_count fixed bin (17) unsigned unal, 5 17 3 pad1 bit (1) unal, 5 18 3 call_type fixed bin (18) unsigned unal, 5 19 3 desc_count fixed bin (17) unsigned unal, 5 20 3 pad2 bit (19) unal, 5 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 5 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 5 23 5 24 5 25 dcl 1 command_name_arglist aligned based, 5 26 2 header, 5 27 3 arg_count fixed bin (17) unsigned unal, 5 28 3 pad1 bit (1) unal, 5 29 3 call_type fixed bin (18) unsigned unal, 5 30 3 desc_count fixed bin (17) unsigned unal, 5 31 3 mbz bit(1) unal, 5 32 3 has_command_name bit(1) unal, 5 33 3 pad2 bit (17) unal, 5 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 5 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 5 36 2 name, 5 37 3 command_name_ptr pointer, 5 38 3 command_name_length fixed bin (21); 5 39 5 40 5 41 5 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 5 43 2 header, 5 44 3 arg_count fixed bin (17) unsigned unal, 5 45 3 pad1 bit (1) unal, 5 46 3 call_type fixed bin (18) unsigned unal, 5 47 3 desc_count fixed bin (17) unsigned unal, 5 48 3 pad2 bit (19) unal, 5 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 5 50 2 envptr ptr, 5 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 5 52 5 53 5 54 dcl ( 5 55 Quick_call_type init (0), 5 56 Interseg_call_type init (4), 5 57 Envptr_supplied_call_type 5 58 init (8) 5 59 ) fixed bin (18) unsigned unal int static options (constant); 5 60 5 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 5 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 5 63* an argument list of the proper size in the user's stack 5 64* 5 65**/ 5 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 743 744 6 1 /* START OF: entry_desc_info.incl.pl1 * * * * * * * * * * * * * * * * */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(84-11-29,Ranzenbach), approve(86-03-12,MCR7144), 6 7* audit(86-03-12,GWMay), install(86-05-01,MR12.0-1051): 6 8* for version 2. This version allows the caller to specify a pointer to 6 9* the beginning of the offset and its bit count. This allows the 6 10* processing of archive components. 6 11* 6 12* NOTICE: 6 13* All applications which use this structure should be converted to 6 14* use version 2. Version 1 can be retained by setting the version to 6 15* a value of 1. The constant entry_desc_info_version_1 has been 6 16* removed from the file. 6 17* END HISTORY COMMENTS */ 6 18 6 19 6 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 21 /* */ 6 22 /* Name: entry_desc_info.incl.pl1 */ 6 23 /* */ 6 24 /* This include file is used by get_entry_arg_desc_$info, $text_only_info and their */ 6 25 /* callers. It declares the flag bits obtained from the entry sequence of a procedure */ 6 26 /* entry point. */ 6 27 /* */ 6 28 /* Status */ 6 29 /* */ 6 30 /* 0) Created in May, 1979 by G. C. Dixon */ 6 31 /* */ 6 32 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 33 6 34 dcl 1 entry_desc_info aligned based(entry_desc_info_ptr), 6 35 2 version fixed bin, /* version number of this structure (= 2) */ 6 36 2 flags, 6 37 6 38 (3 basic_indicator, /* on if this is a BASIC program. */ 6 39 3 revision_1, /* on if program entry has stuff added after 5/75 */ 6 40 3 has_descriptors, /* on if entry point had valid parm. descriptors */ 6 41 3 variable, /* on if entry point takes undefined no. of args */ 6 42 3 function) /* on if entry point is a function */ 6 43 bit(1) unaligned, 6 44 3 pad bit(13) unaligned, 6 45 /* version 2 fields follow */ 6 46 2 object_ptr ptr, /* -> beginning of object segment... (INPUT) */ 6 47 2 bit_count fixed bin (24); /* bit count of object... (INPUT) */ 6 48 6 49 dcl entry_desc_info_version_2 fixed bin int static options(constant) init(2), 6 50 entry_desc_info_ptr ptr; 6 51 6 52 /* END OF: entry_desc_info.incl.pl1 * * * * * * * * * * * * * * * * */ 745 746 7 1 /* BEGIN INCLUDE FILE its.incl.pl1 7 2* modified 27 July 79 by JRDavis to add its_unsigned 7 3* Internal format of ITS pointer, including ring-number field for follow-on processor */ 7 4 7 5 dcl 1 its based aligned, /* declaration for ITS type pointer */ 7 6 2 pad1 bit (3) unaligned, 7 7 2 segno bit (15) unaligned, /* segment number within the pointer */ 7 8 2 ringno bit (3) unaligned, /* ring number within the pointer */ 7 9 2 pad2 bit (9) unaligned, 7 10 2 its_mod bit (6) unaligned, /* should be 43(8) */ 7 11 7 12 2 offset bit (18) unaligned, /* word offset within the addressed segment */ 7 13 2 pad3 bit (3) unaligned, 7 14 2 bit_offset bit (6) unaligned, /* bit offset within the word */ 7 15 2 pad4 bit (3) unaligned, 7 16 2 mod bit (6) unaligned; /* further modification */ 7 17 7 18 dcl 1 itp based aligned, /* declaration for ITP type pointer */ 7 19 2 pr_no bit (3) unaligned, /* number of pointer register to use */ 7 20 2 pad1 bit (27) unaligned, 7 21 2 itp_mod bit (6) unaligned, /* should be 41(8) */ 7 22 7 23 2 offset bit (18) unaligned, /* word offset from pointer register word offset */ 7 24 2 pad2 bit (3) unaligned, 7 25 2 bit_offset bit (6) unaligned, /* bit offset relative to new word offset */ 7 26 2 pad3 bit (3) unaligned, 7 27 2 mod bit (6) unaligned; /* further modification */ 7 28 7 29 7 30 dcl 1 its_unsigned based aligned, /* just like its, but with unsigned binary */ 7 31 2 pad1 bit (3) unaligned, 7 32 2 segno fixed bin (15) unsigned unaligned, 7 33 2 ringno fixed bin (3) unsigned unaligned, 7 34 2 pad2 bit (9) unaligned, 7 35 2 its_mod bit (6) unaligned, 7 36 7 37 2 offset fixed bin (18) unsigned unaligned, 7 38 2 pad3 bit (3) unaligned, 7 39 2 bit_offset fixed bin (6) unsigned unaligned, 7 40 2 pad4 bit (3) unaligned, 7 41 2 mod bit (6) unaligned; 7 42 7 43 dcl 1 itp_unsigned based aligned, /* just like itp, but with unsigned binary where appropriate */ 7 44 2 pr_no fixed bin (3) unsigned unaligned, 7 45 2 pad1 bit (27) unaligned, 7 46 2 itp_mod bit (6) unaligned, 7 47 7 48 2 offset fixed bin (18) unsigned unaligned, 7 49 2 pad2 bit (3) unaligned, 7 50 2 bit_offset fixed bin (6) unsigned unaligned, 7 51 2 pad3 bit (3) unaligned, 7 52 2 mod bit (6) unaligned; 7 53 7 54 7 55 dcl ITS_MODIFIER bit (6) unaligned internal static options (constant) init ("43"b3); 7 56 dcl ITP_MODIFIER bit (6) unaligned internal static options (constant) init ("41"b3); 7 57 7 58 /* END INCLUDE FILE its.incl.pl1 */ 747 748 8 1 dcl 1 pl1_symbol_block aligned based, 8 2 2 version fixed bin, 8 3 2 identifier char(8), /* must be "pl1info" */ 8 4 2 flags, 8 5 3 profile bit(1) unal, 8 6 3 table bit(1) unal, 8 7 3 map bit(1) unal, 8 8 3 flow bit(1) unal, 8 9 3 io bit(1) unal, 8 10 3 table_removed bit(1) unal, 8 11 3 long_profile bit(1) unal, 8 12 3 pad bit(29) unal, 8 13 2 greatest_severity fixed bin, 8 14 2 root unal bit(18), 8 15 2 profile unal bit(18), 8 16 2 map unal, 8 17 3 first bit(18), 8 18 3 last bit(18), 8 19 2 segname unaligned, 8 20 3 offset bit(18), 8 21 3 size bit(18); 749 750 9 1 dcl 1 quick_entry aligned based, 9 2 2 return ptr, 9 3 2 argptr ptr, 9 4 2 descptr ptr; 751 752 10 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 10 2 10 3 dcl 1 runtime_symbol aligned based, 10 4 2 flag unal bit(1), /* always "1"b for Version II */ 10 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 10 6 2 array_units unal bit(2), 10 7 2 units unal bit(2), /* addressing units */ 10 8 2 type unal bit(6), /* data type */ 10 9 2 level unal bit(6), /* structure level */ 10 10 2 ndims unal bit(6), /* number of dimensions */ 10 11 2 bits unal, 10 12 3 aligned bit(1), 10 13 3 packed bit(1), 10 14 3 simple bit(1), 10 15 2 skip unal bit(1), 10 16 2 scale unal bit(8), /* arithmetic scale factor */ 10 17 2 name unal bit(18), /* rel ptr to acc name */ 10 18 2 brother unal bit(18), /* rel ptr to brother entry */ 10 19 2 father unal bit(18), /* rel ptr to father entry */ 10 20 2 son unal bit(18), /* rel ptr to son entry */ 10 21 2 address unal, 10 22 3 location bit(18), /* location in storage class */ 10 23 3 class bit(4), /* storage class */ 10 24 3 next bit(14), /* rel ptr to next of same class */ 10 25 2 size fixed bin(35), /* encoded string|arith size */ 10 26 2 offset fixed bin(35), /* encoded offset from address */ 10 27 2 virtual_org fixed bin(35), 10 28 2 bounds(1), 10 29 3 lower fixed bin(35), /* encoded lower bound */ 10 30 3 upper fixed bin(35), /* encoded upper bound */ 10 31 3 multiplier fixed bin(35); /* encoded multiplier */ 10 32 10 33 dcl 1 runtime_bound based, 10 34 2 lower fixed bin(35), 10 35 2 upper fixed bin(35), 10 36 2 multiplier fixed bin(35); 10 37 10 38 dcl 1 runtime_block aligned based, 10 39 2 flag unal bit(1), /* always "1"b for Version II */ 10 40 2 quick unal bit(1), /* "1"b if quick block */ 10 41 2 fortran unal bit(1), /* "1"b if fortran program */ 10 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 10 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 10 44 2 skip unal bit(1), 10 45 2 type unal bit(6), /* = 0 for a block node */ 10 46 2 number unal bit(6), /* begin block number */ 10 47 2 start unal bit(18), /* rel ptr to start of symbols */ 10 48 2 name unal bit(18), /* rel ptr to name of proc */ 10 49 2 brother unal bit(18), /* rel ptr to brother block */ 10 50 2 father unal bit(18), /* rel ptr to father block */ 10 51 2 son unal bit(18), /* rel ptr to son block */ 10 52 2 map unal, 10 53 3 first bit(18), /* rel ptr to first word of map */ 10 54 3 last bit(18), /* rel ptr to last word of map */ 10 55 2 entry_info unal bit(18), /* info about entry of quick block */ 10 56 2 header unal bit(18), /* rel ptr to symbol header */ 10 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 10 58* on start list with length >= 2**i */ 10 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 10 60* on list with length >= 2 ** i */ 10 61 2 owner unal bit(18); /* rel ptr to owner block */ 10 62 10 63 dcl 1 runtime_token aligned based, 10 64 2 next unal bit(18), /* rel ptr to next token */ 10 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 10 66 2 name, /* ACC */ 10 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 10 68 3 string unal char(n refer(runtime_token.size)); 10 69 10 70 dcl 1 encoded_value aligned based, 10 71 2 flag bit (2) unal, 10 72 2 code bit (4) unal, 10 73 2 n1 bit (6) unal, 10 74 2 n2 bit (6) unal, 10 75 2 n3 bit (18) unal; 10 76 10 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 753 754 11 1 /* BEGIN INCLUDE FILE ... stack_frame.incl.pl1 ... */ 11 2 11 3 /* format: off */ 11 4 11 5 /* Modified: 16 Dec 1977, D. Levin - to add fio_ps_ptr and pl1_ps_ptr */ 11 6 /* Modified: 3 Feb 1978, P. Krupp - to add run_unit_manager bit & main_proc bit */ 11 7 /* Modified: 21 March 1978, D. Levin - change fio_ps_ptr to support_ptr */ 11 8 /* Modified: 03/01/84, S. Herbst - Added RETURN_PTR_MASK */ 11 9 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(86-09-15,Kissel), approve(86-09-15,MCR7473), 11 13* audit(86-10-01,Fawcett), install(86-11-03,MR12.0-1206): 11 14* Modified to add constants for the translator_id field in the stack_frame 11 15* structure. 11 16* END HISTORY COMMENTS */ 11 17 11 18 11 19 dcl RETURN_PTR_MASK bit (72) int static options (constant) /* mask to be AND'd with stack_frame.return_ptr */ 11 20 init ("777777777777777777000000"b3); /* when copying, to ignore bits that a call fills */ 11 21 /* with indicators (nonzero for Fortran hexfp caller) */ 11 22 /* say: unspec(ptr) = unspec(stack_frame.return_ptr) & RETURN_PTR_MASK; */ 11 23 11 24 dcl TRANSLATOR_ID_PL1V2 bit (18) internal static options (constant) init ("000000"b3); 11 25 dcl TRANSLATOR_ID_ALM bit (18) internal static options (constant) init ("000001"b3); 11 26 dcl TRANSLATOR_ID_PL1V1 bit (18) internal static options (constant) init ("000002"b3); 11 27 dcl TRANSLATOR_ID_SIGNAL_CALLER bit (18) internal static options (constant) init ("000003"b3); 11 28 dcl TRANSLATOR_ID_SIGNALLER bit (18) internal static options (constant) init ("000004"b3); 11 29 11 30 11 31 dcl sp pointer; /* pointer to beginning of stack frame */ 11 32 11 33 dcl stack_frame_min_length fixed bin static init(48); 11 34 11 35 11 36 dcl 1 stack_frame based(sp) aligned, 11 37 2 pointer_registers(0 : 7) ptr, 11 38 2 prev_sp pointer, 11 39 2 next_sp pointer, 11 40 2 return_ptr pointer, 11 41 2 entry_ptr pointer, 11 42 2 operator_and_lp_ptr ptr, /* serves as both */ 11 43 2 arg_ptr pointer, 11 44 2 static_ptr ptr unaligned, 11 45 2 support_ptr ptr unal, /* only used by fortran I/O */ 11 46 2 on_unit_relp1 bit(18) unaligned, 11 47 2 on_unit_relp2 bit(18) unaligned, 11 48 2 translator_id bit(18) unaligned, /* Translator ID (see constants above) 11 49* 0 => PL/I version II 11 50* 1 => ALM 11 51* 2 => PL/I version I 11 52* 3 => signal caller frame 11 53* 4 => signaller frame */ 11 54 2 operator_return_offset bit(18) unaligned, 11 55 2 x(0: 7) bit(18) unaligned, /* index registers */ 11 56 2 a bit(36), /* accumulator */ 11 57 2 q bit(36), /* q-register */ 11 58 2 e bit(36), /* exponent */ 11 59 2 timer bit(27) unaligned, /* timer */ 11 60 2 pad bit(6) unaligned, 11 61 2 ring_alarm_reg bit(3) unaligned; 11 62 11 63 11 64 dcl 1 stack_frame_flags based(sp) aligned, 11 65 2 pad(0 : 7) bit(72), /* skip over prs */ 11 66 2 xx0 bit(22) unal, 11 67 2 main_proc bit(1) unal, /* on if frame belongs to a main procedure */ 11 68 2 run_unit_manager bit(1) unal, /* on if frame belongs to run unit manager */ 11 69 2 signal bit(1) unal, /* on if frame belongs to logical signal_ */ 11 70 2 crawl_out bit(1) unal, /* on if this is a signal caller frame */ 11 71 2 signaller bit(1) unal, /* on if next frame is signaller's */ 11 72 2 link_trap bit(1) unal, /* on if this frame was made by the linker */ 11 73 2 support bit(1) unal, /* on if frame belongs to a support proc */ 11 74 2 condition bit(1) unal, /* on if condition established in this frame */ 11 75 2 xx0a bit(6) unal, 11 76 2 xx1 fixed bin, 11 77 2 xx2 fixed bin, 11 78 2 xx3 bit(25) unal, 11 79 2 old_crawl_out bit (1) unal, /* on if this is a signal caller frame */ 11 80 2 old_signaller bit(1) unal, /* on if next frame is signaller's */ 11 81 2 xx3a bit(9) unaligned, 11 82 2 xx4(9) bit(72) aligned, 11 83 2 v2_pl1_op_ret_base ptr, /* When a V2 PL/I program calls an operator the 11 84* * operator puts a pointer to the base of 11 85* * the calling procedure here. (text base ptr) */ 11 86 2 xx5 bit(72) aligned, 11 87 2 pl1_ps_ptr ptr; /* ptr to ps for this frame; also used by fio. */ 11 88 11 89 /* format: on */ 11 90 11 91 /* END INCLUDE FILE ... stack_frame.incl.pl1 */ 755 756 12 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 12 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 12 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 12 8* Objects of this type are PASCAL string types. 12 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 12 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 12 11* Added the new C types. 12 12* END HISTORY COMMENTS */ 12 13 12 14 /* This include file defines mnemonic names for the Multics 12 15* standard descriptor types, using both pl1 and cobol terminology. 12 16* PG 780613 12 17* JRD 790530 12 18* JRD 791016 12 19* MBW 810731 12 20* TGO 830614 Add hex types. 12 21* Modified June 83 JMAthane to add PASCAL data types 12 22* TGO 840120 Add float dec extended and generic, float binary generic 12 23**/ 12 24 12 25 dcl (real_fix_bin_1_dtype init (1), 12 26 real_fix_bin_2_dtype init (2), 12 27 real_flt_bin_1_dtype init (3), 12 28 real_flt_bin_2_dtype init (4), 12 29 cplx_fix_bin_1_dtype init (5), 12 30 cplx_fix_bin_2_dtype init (6), 12 31 cplx_flt_bin_1_dtype init (7), 12 32 cplx_flt_bin_2_dtype init (8), 12 33 real_fix_dec_9bit_ls_dtype init (9), 12 34 real_flt_dec_9bit_dtype init (10), 12 35 cplx_fix_dec_9bit_ls_dtype init (11), 12 36 cplx_flt_dec_9bit_dtype init (12), 12 37 pointer_dtype init (13), 12 38 offset_dtype init (14), 12 39 label_dtype init (15), 12 40 entry_dtype init (16), 12 41 structure_dtype init (17), 12 42 area_dtype init (18), 12 43 bit_dtype init (19), 12 44 varying_bit_dtype init (20), 12 45 char_dtype init (21), 12 46 varying_char_dtype init (22), 12 47 file_dtype init (23), 12 48 real_fix_dec_9bit_ls_overp_dtype init (29), 12 49 real_fix_dec_9bit_ts_overp_dtype init (30), 12 50 real_fix_bin_1_uns_dtype init (33), 12 51 real_fix_bin_2_uns_dtype init (34), 12 52 real_fix_dec_9bit_uns_dtype init (35), 12 53 real_fix_dec_9bit_ts_dtype init (36), 12 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 12 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 12 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 12 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 12 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 12 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 12 60 real_flt_dec_4bit_bytealigned_dtype init (44), 12 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 12 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 12 63 real_flt_hex_1_dtype init (47), 12 64 real_flt_hex_2_dtype init (48), 12 65 cplx_flt_hex_1_dtype init (49), 12 66 cplx_flt_hex_2_dtype init (50), 12 67 c_typeref_dtype init (54), 12 68 c_enum_dtype init (55), 12 69 c_enum_const_dtype init (56), 12 70 c_union_dtype init (57), 12 71 algol68_straight_dtype init (59), 12 72 algol68_format_dtype init (60), 12 73 algol68_array_descriptor_dtype init (61), 12 74 algol68_union_dtype init (62), 12 75 12 76 cobol_comp_6_dtype init (1), 12 77 cobol_comp_7_dtype init (1), 12 78 cobol_display_ls_dtype init (9), 12 79 cobol_structure_dtype init (17), 12 80 cobol_char_string_dtype init (21), 12 81 cobol_display_ls_overp_dtype init (29), 12 82 cobol_display_ts_overp_dtype init (30), 12 83 cobol_display_uns_dtype init (35), 12 84 cobol_display_ts_dtype init (36), 12 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 12 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 12 87 cobol_comp_5_uns_dtype init (40), 12 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 12 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 12 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 12 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 12 92 cplx_flt_dec_generic_dtype init (84), 12 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 12 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 12 95 12 96 dcl (ft_integer_dtype init (1), 12 97 ft_real_dtype init (3), 12 98 ft_double_dtype init (4), 12 99 ft_complex_dtype init (7), 12 100 ft_complex_double_dtype init (8), 12 101 ft_external_dtype init (16), 12 102 ft_logical_dtype init (19), 12 103 ft_char_dtype init (21), 12 104 ft_hex_real_dtype init (47), 12 105 ft_hex_double_dtype init (48), 12 106 ft_hex_complex_dtype init (49), 12 107 ft_hex_complex_double_dtype init (50) 12 108 ) fixed bin internal static options (constant); 12 109 12 110 dcl (algol68_short_int_dtype init (1), 12 111 algol68_int_dtype init (1), 12 112 algol68_long_int_dtype init (2), 12 113 algol68_real_dtype init (3), 12 114 algol68_long_real_dtype init (4), 12 115 algol68_compl_dtype init (7), 12 116 algol68_long_compl_dtype init (8), 12 117 algol68_bits_dtype init (19), 12 118 algol68_bool_dtype init (19), 12 119 algol68_char_dtype init (21), 12 120 algol68_byte_dtype init (21), 12 121 algol68_struct_struct_char_dtype init (22), 12 122 algol68_struct_struct_bool_dtype init (20) 12 123 ) fixed bin internal static options (constant); 12 124 12 125 dcl (label_constant_runtime_dtype init (24), 12 126 int_entry_runtime_dtype init (25), 12 127 ext_entry_runtime_dtype init (26), 12 128 ext_procedure_runtime_dtype init (27), 12 129 picture_runtime_dtype init (63) 12 130 ) fixed bin internal static options (constant); 12 131 12 132 dcl (pascal_integer_dtype init (1), 12 133 pascal_real_dtype init (4), 12 134 pascal_label_dtype init (24), 12 135 pascal_internal_procedure_dtype init (25), 12 136 pascal_exportable_procedure_dtype init (26), 12 137 pascal_imported_procedure_dtype init (27), 12 138 pascal_typed_pointer_type_dtype init (64), 12 139 pascal_char_dtype init (65), 12 140 pascal_boolean_dtype init (66), 12 141 pascal_record_file_type_dtype init (67), 12 142 pascal_record_type_dtype init (68), 12 143 pascal_set_dtype init (69), 12 144 pascal_enumerated_type_dtype init (70), 12 145 pascal_enumerated_type_element_dtype init (71), 12 146 pascal_enumerated_type_instance_dtype init (72), 12 147 pascal_user_defined_type_dtype init (73), 12 148 pascal_user_defined_type_instance_dtype init (74), 12 149 pascal_text_file_dtype init (75), 12 150 pascal_procedure_type_dtype init (76), 12 151 pascal_variable_formal_parameter_dtype init (77), 12 152 pascal_value_formal_parameter_dtype init (78), 12 153 pascal_entry_formal_parameter_dtype init (79), 12 154 pascal_parameter_procedure_dtype init (80), 12 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 12 156 12 157 12 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 757 758 13 1 dcl 1 std_symbol_header based aligned, 13 2 2 dcl_version fixed bin, 13 3 2 identifier char(8), 13 4 2 gen_number fixed bin, 13 5 2 gen_created fixed bin(71), 13 6 2 object_created fixed bin(71), 13 7 2 generator char(8), 13 8 2 gen_version unaligned, 13 9 3 offset bit(18), 13 10 3 size bit(18), 13 11 2 userid unaligned, 13 12 3 offset bit(18), 13 13 3 size bit(18), 13 14 2 comment unaligned, 13 15 3 offset bit(18), 13 16 3 size bit(18), 13 17 2 text_boundary bit(18) unaligned, 13 18 2 stat_boundary bit(18) unaligned, 13 19 2 source_map bit(18) unaligned, 13 20 2 area_pointer bit(18) unaligned, 13 21 2 backpointer bit(18) unaligned, 13 22 2 block_size bit(18) unaligned, 13 23 2 next_block bit(18) unaligned, 13 24 2 rel_text bit(18) unaligned, 13 25 2 rel_def bit(18) unaligned, 13 26 2 rel_link bit(18) unaligned, 13 27 2 rel_symbol bit(18) unaligned, 13 28 2 mini_truncate bit(18) unaligned, 13 29 2 maxi_truncate bit(18) unaligned; 759 760 14 1 /* BEGIN INCLUDE FILE ... probe_lang_types.incl.pl1 14 2* 14 3* JRD 26 June 79 14 4* MBW 31 July 1981 to add algol68 */ 14 5 14 6 14 7 /****^ HISTORY COMMENTS: 14 8* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 14 9* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 14 10* Added C Language type. 14 11* END HISTORY COMMENTS */ 14 12 14 13 14 14 /* Modified June 83 JMAthane to add PASCAL language type */ 14 15 /* Modified April 88 Hinatsu to add C language type */ 14 16 14 17 dcl (UNKNOWN_lang_type init (1), 14 18 OTHER_lang_type init (2), 14 19 PL1_lang_type init (3), 14 20 FORTRAN_lang_type init (4), 14 21 COBOL_lang_type init (5), 14 22 ALM_lang_type init (6), 14 23 ALGOL68_lang_type init (7), 14 24 PASCAL_lang_type init (8), 14 25 C_lang_type init (9)) fixed bin internal static options (constant); 14 26 14 27 dcl official_language_names (9) char (32) internal static options (constant) init 14 28 ("Unknown", "other", "PL/I", "FORTRAN", "COBOL", "ALM", "Algol 68", "Pascal", "C"); 14 29 14 30 dcl palatable_language_names (9) char (32) internal static options (constant) init 14 31 ("Unknown", "Other", "pl1", "fortran", "cobol", "alm", "algol68", "pascal", "c"); 14 32 14 33 /* END INCLUDE FILE ... probe_lang_types.incl.pl1 */ 761 762 763 end probe_print_arglist_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/88 1224.5 probe_print_arglist_.pl1 >spec>install>MR12.2-1194>probe_print_arglist_.pl1 694 1 12/04/84 2012.1 probe_data_type_names.incl.pl1 >ldd>include>probe_data_type_names.incl.pl1 737 2 10/27/88 1223.7 probe_info.incl.pl1 >spec>install>MR12.2-1194>probe_info.incl.pl1 739 3 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 741 4 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.incl.pl1 743 5 08/05/86 0856.8 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 745 6 05/01/86 0849.8 entry_desc_info.incl.pl1 >ldd>include>entry_desc_info.incl.pl1 747 7 11/26/79 1320.6 its.incl.pl1 >ldd>include>its.incl.pl1 749 8 03/10/77 1345.4 pl1_symbol_block.incl.pl1 >ldd>include>pl1_symbol_block.incl.pl1 751 9 05/06/74 1743.0 quick_entry.incl.pl1 >ldd>include>quick_entry.incl.pl1 753 10 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 755 11 11/07/86 1550.3 stack_frame.incl.pl1 >ldd>include>stack_frame.incl.pl1 757 12 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 759 13 05/06/74 1751.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.incl.pl1 761 14 10/26/88 1255.5 probe_lang_types.incl.pl1 >ldd>include>probe_lang_types.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. Arg_source based structure level 1 dcl 44 C_lang_type constant fixed bin(17,0) initial dcl 14-17 ref 533 540 Envptr_supplied_call_type constant fixed bin(18,0) initial packed unsigned unaligned dcl 5-54 ref 204 514 546 ITP based structure level 1 dcl 711 ITP_MODIFIER constant bit(6) initial packed unaligned dcl 7-56 ref 727 ITS based structure level 1 dcl 711 ITS_MODIFIER constant bit(6) initial packed unaligned dcl 7-55 ref 482 640 719 Interseg_call_type constant fixed bin(18,0) initial packed unsigned unaligned dcl 5-54 ref 514 533 LEGAL 001547 constant char(96) initial packed unaligned dcl 142 ref 643 OFFSET based bit(18) packed unaligned dcl 711 ref 723 P_probe_info_ptr parameter pointer dcl 40 ref 37 154 P_source_info_ptr parameter pointer dcl 41 ref 37 155 Quick_call_type constant fixed bin(18,0) initial packed unsigned unaligned dcl 5-54 ref 514 521 526 add_bit_offset_ 000010 constant entry external dcl 81 ref 727 addr builtin function dcl 131 ref 165 165 170 172 293 301 301 301 301 307 312 312 312 312 719 719 723 723 727 727 727 727 727 727 addrel builtin function dcl 131 ref 360 360 360 364 384 384 384 388 481 575 576 576 579 727 727 address 000766 automatic pointer level 2 in structure "target" dcl 120 in procedure "probe_print_arglist_" set ref 293* 307* address 000756 automatic pointer level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" set ref 282* ap 000104 automatic pointer dcl 49 set ref 200 204 204 207 481* 482 482 482 482 482 482 482 482 489* 493* 493 499* 502 505* 509 509 509* 514 514 514 514* 514 521 521* 526 526* 533 533* 540 540* 546 546 546* 552 553 555* 733* area_pointer 16(18) based bit(18) level 2 packed packed unaligned dcl 13-1 ref 576 arg_count based fixed bin(17,0) level 3 in structure "arg_list_with_envptr" packed packed unsigned unaligned dcl 5-42 in procedure "probe_print_arglist_" ref 204 540 546 arg_count based fixed bin(17,0) level 3 in structure "arg_list" packed packed unsigned unaligned dcl 5-14 in procedure "probe_print_arglist_" ref 207 552 arg_index 000114 automatic fixed bin(17,0) dcl 49 set ref 198* 200 204 207 212 212 216 218 220 229 231* 236* 595 599* 604* 610* 615* 621* arg_info 000346 automatic structure level 1 dcl 113 set ref 170 arg_list based structure level 1 dcl 5-14 arg_list_arg_count 000137 automatic fixed bin(17,0) dcl 49 set ref 490* 552* arg_list_with_envptr based structure level 1 dcl 5-42 arg_ptr 32 based pointer level 2 dcl 11-36 set ref 496* 499 arg_ptrs 2 based pointer array level 2 dcl 5-14 set ref 200* argp 000102 automatic pointer dcl 49 set ref 200* 231* 236* 282 323 327 335 335 335 348 360 360 360 364 374 384 384 384 388 398 409 415 423 430 640 640 643 argptr 2 based pointer level 2 dcl 9-1 ref 493 arith_str 000140 automatic varying char(500) dcl 49 set ref 307 309 316* 316 317* assign_$computational_ 000012 constant entry external dcl 83 ref 301 312 based_cs based char(100) packed unaligned dcl 122 ref 643 based_file based file variable dcl 122 set ref 409* based_length based fixed bin(24,0) dcl 122 ref 360 360 360 364 384 384 384 388 binary builtin function dcl 131 ref 482 727 727 727 bit_dtype constant fixed bin(17,0) initial dcl 12-25 ref 615 bit_offset 1(21) based bit(6) level 2 in structure "ITP" packed packed unaligned dcl 711 in procedure "cv_ptr" ref 727 727 bit_offset 1(21) based bit(6) level 2 in structure "its" packed packed unaligned dcl 7-5 in procedure "probe_print_arglist_" ref 482 bit_string based bit packed unaligned dcl 122 set ref 374* block_ptr 4 based pointer level 2 dcl 44 ref 470 bp parameter pointer dcl 572 in procedure "runtime_block_is_external" ref 569 575 575 581 bp 001012 automatic pointer dcl 463 in procedure "find_arglist" set ref 470* 472 472 476 481 533 533* buff 001046 automatic char(40) packed unaligned dcl 692 set ref 700* 702 call_type 0(18) based fixed bin(18,0) level 3 packed packed unsigned unaligned dcl 5-14 set ref 204 514 514 514 514* 521 526 533 546 char_dtype constant fixed bin(17,0) initial dcl 12-25 ref 646 char_string based char packed unaligned dcl 122 set ref 398* cname parameter char packed unaligned dcl 655 set ref 652 659 666 668 670 672 674 676 679 683* code 000133 automatic fixed bin(35,0) dcl 49 set ref 165* 168 301* 302 312* 313 496* 497 497* 505* 506 506* command_name_arglist based structure level 1 dcl 5-25 computational_data based structure level 1 dcl 4-8 condition_ 000014 constant entry external dcl 84 ref 196 continue parameter bit(1) packed unaligned dcl 655 set ref 652 661* cop parameter pointer dcl 655 ref 652 cplx_flt_dec_generic_dtype constant fixed bin(17,0) initial dcl 12-25 ref 289 cplx_flt_hex_1_dtype constant fixed bin(17,0) initial dcl 12-25 ref 297 data_type 2 000766 automatic fixed bin(17,0) level 2 in structure "target" dcl 120 in procedure "probe_print_arglist_" set ref 294* 297* 308* data_type 2 000756 automatic fixed bin(17,0) level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" set ref 283* 289 289 294 decode_descriptor_ 000016 constant entry external dcl 85 ref 209 220 595 desc_count 1 based fixed bin(17,0) level 3 packed packed unsigned unaligned dcl 5-14 ref 553 desc_ptrs based pointer array level 2 in structure "arg_list_with_envptr" dcl 5-42 in procedure "probe_print_arglist_" set ref 204* desc_ptrs based pointer array level 2 in structure "arg_list" dcl 5-14 in procedure "probe_print_arglist_" set ref 207* descp 000106 automatic pointer dcl 49 set ref 204* 207* 209* descs 2 000346 automatic pointer array level 2 in structure "arg_info" dcl 113 in procedure "probe_print_arglist_" set ref 165* descs 2 based pointer array level 2 in structure "entry_arg_info" dcl 148 in procedure "probe_print_arglist_" set ref 212 218 220* 595* display_file_value_ 000020 constant entry external dcl 88 ref 409 entry_arg_info based structure level 1 dcl 148 entry_desc_info based structure level 1 dcl 6-34 entry_desc_info_version_2 constant fixed bin(17,0) initial dcl 6-49 ref 164 entry_flags 000750 automatic structure level 1 dcl 118 set ref 165 165 entry_info 4 based bit(18) level 2 packed packed unaligned dcl 10-38 ref 481 entry_ptr 10 based pointer level 2 dcl 44 ref 159 envptr based pointer level 2 dcl 5-42 ref 540 546 ep 000110 automatic pointer dcl 49 set ref 159* 165* 723 expected_ndims 000131 automatic fixed bin(17,0) dcl 49 set ref 595* 610 610* expected_no_args 000136 automatic fixed bin(17,0) dcl 49 set ref 174* 176 176 176* 191* 191 212 216 expected_packed 000132 automatic bit(1) dcl 49 set ref 595* 604 604* expected_scale 000127 automatic fixed bin(17,0) dcl 49 set ref 595* 621 621* expected_str_length 000130 automatic fixed bin(24,0) dcl 49 set ref 595* 615 615 615* expected_type 000126 automatic fixed bin(17,0) dcl 49 set ref 595* 599 599* 599* 604 604 615 flags 3 000756 automatic structure level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" flags 1 000750 automatic structure level 2 in structure "entry_flags" dcl 118 in procedure "probe_print_arglist_" function 1 based bit(1) level 2 in structure "entry_arg_info" dcl 148 in procedure "probe_print_arglist_" ref 229 function 1 000344 automatic bit(1) initial level 2 in structure "no_arg_info" dcl 109 in procedure "probe_print_arglist_" set ref 109* function 1 000346 automatic bit(1) level 2 in structure "arg_info" dcl 113 in procedure "probe_print_arglist_" set ref 169* function 1(04) 000750 automatic bit(1) level 3 in structure "entry_flags" packed packed unaligned dcl 118 in procedure "probe_print_arglist_" set ref 169 get_entry_arg_descs_$info 000022 constant entry external dcl 89 ref 165 get_ring_ 000024 constant entry external dcl 92 ref 482 hbound builtin function dcl 131 ref 240 696 header based structure level 2 in structure "arg_list_with_envptr" dcl 5-42 in procedure "probe_print_arglist_" header based structure level 2 in structure "command_name_arglist" dcl 5-25 in procedure "probe_print_arglist_" header 4(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 10-38 in procedure "probe_print_arglist_" ref 575 header based structure level 2 in structure "arg_list" dcl 5-14 in procedure "probe_print_arglist_" hexfp_space 000336 automatic fixed bin(71,0) dcl 49 set ref 293 infop parameter pointer dcl 655 ref 652 io_switches 66 based structure level 2 dcl 2-18 ioa_$ioa_switch 000026 constant entry external dcl 93 ref 176 183 188 231 317 323 327 335 348 374 398 415 423 430 450 514 521 526 533 540 546 599 604 610 615 621 683 ioa_$ioa_switch_nnl 000030 constant entry external dcl 94 ref 236 ioa_$rsnnl 000032 constant entry external dcl 95 ref 700 ip 000112 automatic pointer dcl 49 set ref 170* 172* 174 212 218 220 229 595 itp based structure level 1 dcl 7-18 itp_mod 0(30) based bit(6) level 2 packed packed unaligned dcl 711 ref 727 its based structure level 1 dcl 7-5 its_mod 0(30) based bit(6) level 2 in structure "ITS" packed packed unaligned dcl 711 in procedure "cv_ptr" ref 719 723 its_mod 0(30) based bit(6) level 2 in structure "its" packed packed unaligned dcl 7-5 in procedure "probe_print_arglist_" ref 482 640 language_type 21 based fixed bin(17,0) level 3 dcl 2-18 ref 533 540 ltrim builtin function dcl 131 ref 316 lv based structure level 1 dcl 134 max builtin function dcl 131 ref 374 374 398 398 maxlength builtin function dcl 131 ref 309 mbz 1(17) based bit(1) level 3 packed packed unaligned dcl 5-25 ref 509 mcp parameter pointer dcl 655 ref 652 min builtin function dcl 131 ref 191 mod 1(30) based bit(6) level 2 in structure "its" packed packed unaligned dcl 7-5 in procedure "probe_print_arglist_" ref 482 mod 1(30) based bit(6) level 2 in structure "ITS" packed packed unaligned dcl 711 in procedure "cv_ptr" ref 719 ndims 000123 automatic fixed bin(17,0) dcl 49 set ref 209* 220* 450 450* 610 610* 637* no_arg_info 000344 automatic structure level 1 dcl 109 set ref 172 no_args 000346 automatic fixed bin(17,0) level 2 in structure "arg_info" dcl 113 in procedure "probe_print_arglist_" set ref 165* no_args 000134 automatic fixed bin(17,0) dcl 49 in procedure "probe_print_arglist_" set ref 176 176* 182 187 188* 190* 198 229 490* 552* 555 555* no_args 000344 automatic fixed bin(17,0) initial level 2 in structure "no_arg_info" dcl 109 in procedure "probe_print_arglist_" set ref 109* no_args based fixed bin(17,0) level 2 in structure "entry_arg_info" dcl 148 in procedure "probe_print_arglist_" ref 174 no_descs 000135 automatic fixed bin(17,0) dcl 49 set ref 192 192* 203 490* 553* 555 555 555* null builtin function dcl 131 ref 212 218 287 299 310 335 466 472 489 502 533 540 546 offset 1 based bit(18) level 2 packed packed unaligned dcl 711 ref 727 727 oswitch 000116 automatic pointer dcl 49 set ref 157* 176* 183* 188* 231* 236* 317* 323* 327* 335* 348* 374* 398* 409* 415* 423* 430* 450* 514* 521* 526* 533* 540* 546* 599* 604* 610* 615* 621* 683* output_switch 70 based pointer level 3 dcl 2-18 ref 157 overlength_varying_string 000340 automatic fixed bin(24,0) dcl 49 set ref 243* 360* 374 374* 384* 398 398* p parameter pointer dcl 709 in procedure "cv_ptr" set ref 706 715 719 719 719 723 723 727 727 727 727 727 727 p 001022 automatic pointer dcl 572 in procedure "runtime_block_is_external" set ref 575* 576* 576 576 576 579* 579 579 581 packed 000124 automatic bit(1) dcl 49 in procedure "probe_print_arglist_" set ref 209* 220* 284 323 604 604* 635* packed 3 000756 automatic bit(1) level 3 in structure "source" packed packed unaligned dcl 120 in procedure "probe_print_arglist_" set ref 284* packed_ptr based pointer packed unaligned dcl 122 set ref 323* pad1 based bit(3) level 2 in structure "its" packed packed unaligned dcl 7-5 in procedure "probe_print_arglist_" ref 482 640 pad1 0(17) based bit(1) level 3 in structure "command_name_arglist" packed packed unaligned dcl 5-25 in procedure "probe_print_arglist_" ref 509 pad2 0(21) based bit(9) level 2 packed packed unaligned dcl 7-5 ref 482 pad3 1(18) based bit(3) level 2 packed packed unaligned dcl 7-5 ref 482 pad4 1(27) based bit(3) level 2 packed packed unaligned dcl 7-5 ref 482 picture_image_ptr 6 000766 automatic pointer level 2 in structure "target" dcl 120 in procedure "probe_print_arglist_" set ref 299* 310* picture_image_ptr 6 000756 automatic pointer level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" set ref 287* pl1_symbol_block based structure level 1 dcl 8-1 pointer_dtype constant fixed bin(17,0) initial dcl 12-25 ref 640 pr_no based bit(3) level 2 packed packed unaligned dcl 711 ref 727 prec_or_length 4 000766 automatic fixed bin(24,0) level 2 in structure "target" dcl 120 in procedure "probe_print_arglist_" set ref 298* 309* prec_or_length 4 000756 automatic fixed bin(24,0) level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" set ref 285* probe_check_ptr_$check 000042 constant entry external dcl 105 ref 496 505 probe_check_ptr_$convert 000036 constant entry external dcl 98 ref 327 335 348 probe_check_ptr_$convert_packed 000040 constant entry external dcl 101 ref 323 probe_error_ 000044 constant entry external dcl 107 ref 466 472 497 502 506 509 555 733 probe_info based structure level 1 dcl 2-18 probe_info_ptr 000776 automatic pointer dcl 2-86 set ref 154* 157 466* 472* 497* 502* 506* 509* 533 540 555* 733* ptr builtin function dcl 131 in procedure "probe_print_arglist_" ref 723 ptr based pointer level 2 in structure "lv" dcl 134 in procedure "probe_print_arglist_" set ref 335* quick 0(01) based bit(1) level 2 packed packed unaligned dcl 10-38 ref 476 quick_block 000125 automatic bit(1) dcl 49 set ref 471* 476* 479 521 526 533 715 quick_entry based structure level 1 dcl 9-1 random_info 17 based structure level 2 dcl 2-18 real_flt_dec_generic_dtype constant fixed bin(17,0) initial dcl 12-25 ref 289 294 real_flt_hex_1_dtype constant fixed bin(17,0) initial dcl 12-25 ref 294 requote_string_ 000034 constant entry external dcl 96 ref 398 ringno 0(18) based bit(3) level 2 packed packed unaligned dcl 7-5 ref 482 root 5 based bit(18) level 2 packed packed unaligned dcl 8-1 ref 576 runtime_block based structure level 1 dcl 10-38 scale 000121 automatic fixed bin(17,0) dcl 49 in procedure "probe_print_arglist_" set ref 209* 220* 286 621 621* 636* scale 5 000756 automatic fixed bin(35,0) level 2 in structure "source" dcl 120 in procedure "probe_print_arglist_" set ref 286* son 2(18) based bit(18) level 2 packed packed unaligned dcl 10-38 ref 579 source 000756 automatic structure level 1 dcl 120 set ref 249* 301 301 302* 312 312 source_info based structure level 1 dcl 3-5 source_info_ptr 000100 automatic pointer dcl 46 set ref 155* 159 160 470 sp 001000 automatic pointer dcl 11-31 set ref 160* 466 481 496 499 727 727 stack 2 based pointer level 2 dcl 134 set ref 335 335* stack_frame based structure level 1 dcl 11-36 stack_ptr 6 based pointer level 2 dcl 44 ref 160 star_length 001577 constant fixed bin(24,0) initial dcl 138 ref 615 std_symbol_header based structure level 1 dcl 13-1 str_length 000120 automatic fixed bin(24,0) dcl 49 set ref 209* 220* 285 360 364* 368 370 371* 374 374 374 374 384 388* 392 394 395* 398 398 398 398 615 615* 643* 644 644* 646 t parameter fixed bin(17,0) dcl 691 set ref 688 696 696 696 700* target 000766 automatic structure level 1 dcl 120 set ref 292* 301 301 302 306* 312 312 truncated 000341 automatic fixed bin(24,0) dcl 49 set ref 243* 370* 374 374 374 374* 394* 398 398 398 398* type 000122 automatic fixed bin(17,0) dcl 49 in procedure "probe_print_arglist_" set ref 209* 220* 231* 231* 238 240 245 283 430* 430* 599 599* 599* 640* 646* 648* type 0(06) based bit(6) level 2 in structure "runtime_block" packed packed unaligned dcl 10-38 in procedure "probe_print_arglist_" ref 472 type_name 000075 constant char(40) initial array packed unaligned dcl 1-11 ref 696 696 type_unknown 000342 automatic bit(1) dcl 49 set ref 201* 327* 398* 638* unpacked_ptr based pointer dcl 122 set ref 327* 348* unspec builtin function dcl 131 set ref 249* 292* 306* varying_char_dtype constant fixed bin(17,0) initial dcl 12-25 ref 308 verify builtin function dcl 131 ref 643 version 000750 automatic fixed bin(17,0) level 2 dcl 118 set ref 164* word based fixed bin(17,0) array dcl 122 set ref 415* 423* 430* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALGOL68_lang_type internal static fixed bin(17,0) initial dcl 14-17 ALM_lang_type internal static fixed bin(17,0) initial dcl 14-17 COBOL_lang_type internal static fixed bin(17,0) initial dcl 14-17 FORTRAN_lang_type internal static fixed bin(17,0) initial dcl 14-17 OTHER_lang_type internal static fixed bin(17,0) initial dcl 14-17 PASCAL_lang_type internal static fixed bin(17,0) initial dcl 14-17 PL1_lang_type internal static fixed bin(17,0) initial dcl 14-17 RETURN_PTR_MASK internal static bit(72) initial packed unaligned dcl 11-19 TRANSLATOR_ID_ALM internal static bit(18) initial packed unaligned dcl 11-25 TRANSLATOR_ID_PL1V1 internal static bit(18) initial packed unaligned dcl 11-26 TRANSLATOR_ID_PL1V2 internal static bit(18) initial packed unaligned dcl 11-24 TRANSLATOR_ID_SIGNALLER internal static bit(18) initial packed unaligned dcl 11-28 TRANSLATOR_ID_SIGNAL_CALLER internal static bit(18) initial packed unaligned dcl 11-27 UNKNOWN_lang_type internal static fixed bin(17,0) initial dcl 14-17 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 12-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 12-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 12-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 12-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 12-25 area_dtype internal static fixed bin(17,0) initial dcl 12-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 12-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 12-25 c_typeref_dtype internal static fixed bin(17,0) initial dcl 12-25 c_union_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 12-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 12-25 current_source based structure level 1 dcl 3-13 encoded_value based structure level 1 dcl 10-70 entry_desc_info_ptr automatic pointer dcl 6-49 entry_dtype internal static fixed bin(17,0) initial dcl 12-25 expression_area based area(1024) dcl 2-95 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 12-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 12-125 file_dtype internal static fixed bin(17,0) initial dcl 12-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 12-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 12-96 initial_source based structure level 1 dcl 3-14 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 12-125 itp_unsigned based structure level 1 dcl 7-43 its_unsigned based structure level 1 dcl 7-30 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 12-125 label_dtype internal static fixed bin(17,0) initial dcl 12-25 official_language_names internal static char(32) initial array packed unaligned dcl 14-27 offset_dtype internal static fixed bin(17,0) initial dcl 12-25 palatable_language_names internal static char(32) initial array packed unaligned dcl 14-30 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 12-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 12-132 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 12-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_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_bin_1_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_bin_2_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 12-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 12-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 12-25 runtime_bound based structure level 1 unaligned dcl 10-33 runtime_symbol based structure level 1 dcl 10-3 runtime_token based structure level 1 dcl 10-63 scratch_area based area(1024) dcl 2-92 stack_frame_flags based structure level 1 dcl 11-64 stack_frame_min_length internal static fixed bin(17,0) initial dcl 11-33 structure_dtype internal static fixed bin(17,0) initial dcl 12-25 varying_bit_dtype internal static fixed bin(17,0) initial dcl 12-25 work_area based area(1024) dcl 2-94 NAMES DECLARED BY EXPLICIT CONTEXT. compare_expected_with_actual 005314 constant entry internal dcl 591 ref 212 cv_ptr 006051 constant entry internal dcl 706 ref 200 204 207 find_arglist 004272 constant entry internal dcl 460 ref 162 form 000000 constant label array(-1:59) dcl 249 ref 240 245 guess_type 005613 constant entry internal dcl 632 ref 218 224 handler 005661 constant entry internal dcl 652 ref 196 196 next_arg 004236 constant label dcl 450 ref 233 319 331 343 356 380 405 411 419 426 probe_print_arglist_ 002440 constant entry external dcl 37 refuse 005702 constant label dcl 661 ref 666 668 670 672 674 676 runtime_block_is_external 005256 constant entry internal dcl 569 ref 533 skip_arg 004267 constant label dcl 454 ref 685 type_name 005773 constant entry internal dcl 688 ref 231 231 430 430 599 599 599 599 unknown_type 004205 constant label dcl 430 ref 238 240 313 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6660 6726 6445 6670 Length 7454 6445 46 512 213 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_print_arglist_ 932 external procedure is an external procedure. find_arglist internal procedure shares stack frame of external procedure probe_print_arglist_. runtime_block_is_external internal procedure shares stack frame of external procedure probe_print_arglist_. compare_expected_with_actual internal procedure shares stack frame of external procedure probe_print_arglist_. guess_type internal procedure shares stack frame of external procedure probe_print_arglist_. handler 88 internal procedure is assigned to an entry variable. type_name internal procedure shares stack frame of external procedure probe_print_arglist_. cv_ptr internal procedure shares stack frame of external procedure probe_print_arglist_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_print_arglist_ 000100 source_info_ptr probe_print_arglist_ 000102 argp probe_print_arglist_ 000104 ap probe_print_arglist_ 000106 descp probe_print_arglist_ 000110 ep probe_print_arglist_ 000112 ip probe_print_arglist_ 000114 arg_index probe_print_arglist_ 000116 oswitch probe_print_arglist_ 000120 str_length probe_print_arglist_ 000121 scale probe_print_arglist_ 000122 type probe_print_arglist_ 000123 ndims probe_print_arglist_ 000124 packed probe_print_arglist_ 000125 quick_block probe_print_arglist_ 000126 expected_type probe_print_arglist_ 000127 expected_scale probe_print_arglist_ 000130 expected_str_length probe_print_arglist_ 000131 expected_ndims probe_print_arglist_ 000132 expected_packed probe_print_arglist_ 000133 code probe_print_arglist_ 000134 no_args probe_print_arglist_ 000135 no_descs probe_print_arglist_ 000136 expected_no_args probe_print_arglist_ 000137 arg_list_arg_count probe_print_arglist_ 000140 arith_str probe_print_arglist_ 000336 hexfp_space probe_print_arglist_ 000340 overlength_varying_string probe_print_arglist_ 000341 truncated probe_print_arglist_ 000342 type_unknown probe_print_arglist_ 000344 no_arg_info probe_print_arglist_ 000346 arg_info probe_print_arglist_ 000750 entry_flags probe_print_arglist_ 000756 source probe_print_arglist_ 000766 target probe_print_arglist_ 000776 probe_info_ptr probe_print_arglist_ 001000 sp probe_print_arglist_ 001012 bp find_arglist 001022 p runtime_block_is_external 001046 buff type_name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as call_ext_out_desc call_ext_out return_mac tra_ext_1 signal_op shorten_stack ext_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. add_bit_offset_ assign_$computational_ condition_ decode_descriptor_ display_file_value_ get_entry_arg_descs_$info get_ring_ ioa_$ioa_switch ioa_$ioa_switch_nnl ioa_$rsnnl probe_check_ptr_$check probe_check_ptr_$convert probe_check_ptr_$convert_packed probe_error_ requote_string_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 37 002434 109 002445 154 002450 155 002454 157 002457 159 002461 160 002463 162 002465 164 002466 165 002470 168 002522 169 002524 170 002530 171 002532 172 002533 174 002535 176 002537 182 002571 183 002573 184 002616 187 002617 188 002621 190 002645 191 002647 192 002654 196 002660 198 002704 200 002713 201 002724 203 002725 204 002727 207 002760 209 003001 212 003025 215 003037 216 003040 218 003043 220 003054 223 003101 224 003102 229 003103 231 003111 233 003151 236 003152 238 003204 240 003207 243 003211 245 003213 249 003214 282 003217 283 003221 284 003223 285 003227 286 003231 287 003233 289 003235 292 003242 293 003245 294 003247 297 003255 298 003257 299 003261 301 003263 302 003302 306 003307 307 003312 308 003314 309 003316 310 003320 312 003322 313 003341 316 003343 317 003365 319 003410 323 003411 327 003461 331 003535 335 003536 343 003620 348 003621 356 003665 360 003666 364 003700 368 003701 370 003704 371 003705 374 003707 380 003771 384 003772 388 004004 392 004005 394 004010 395 004011 398 004013 405 004115 409 004117 411 004133 415 004134 419 004160 423 004161 426 004204 430 004205 450 004236 454 004267 456 004271 460 004272 466 004273 470 004324 471 004327 472 004330 476 004365 479 004372 481 004374 482 004402 489 004467 490 004471 491 004474 493 004475 494 004477 496 004500 497 004512 499 004543 502 004546 505 004602 506 004613 509 004632 514 004671 521 004741 526 004774 533 005027 540 005101 545 005140 546 005141 552 005203 553 005207 555 005213 560 005255 569 005256 575 005260 576 005267 579 005277 581 005303 583 005312 591 005314 595 005315 599 005343 604 005405 610 005454 615 005511 621 005555 626 005612 632 005613 635 005614 636 005615 637 005616 638 005617 640 005621 643 005633 644 005645 646 005650 648 005655 650 005657 652 005660 659 005674 661 005702 663 005707 666 005710 668 005714 670 005720 672 005724 674 005730 676 005734 679 005740 683 005744 685 005770 688 005773 696 005775 700 006011 702 006043 706 006051 715 006053 719 006061 723 006077 727 006107 733 006152 735 006202 ----------------------------------------------------------- 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