COMPILATION LISTING OF SEGMENT probe_builtins_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 11/11/88 1546.6 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-06-01,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Changed the code in the 'addr_builtin' entry to allow the address of 18* a constant to be taken only when we are referring to a C character 19* array that has been internally converted to a character string 20* constant. 21* 2) change(88-06-21,WAAnderson), approve(88-09-30,MCR7952), 22* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 23* Added the 'sizeof_builtin' entry and the appropriate code to perform 24* the task. 25* 3) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 26* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 27* Added format control comment to make the source more readable. 28* END HISTORY COMMENTS */ 29 30 31 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 32 33 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 34 35 probe_builtins_: 36 proc; 37 38 39 /* All probe builtins are here - each builtin has same calling sequence. 40* The reference_node we get a pointer to is pounded on pretty hard as the builtin is evaluated 41* The arguments to the builtin are stored as reference_nodes in their own right, 42* and the pointers to the ref nodes are in the array sub_refs (see below). 43* 44* Someday, builtins might want to work on cross-sections: 45* this would require calling increment_indices to iterate over the reference 46* We would have to construct an array of return values (that isn't hard, but must know 47* how many will be needed at allocate time, which would be before iterating), 48* then fill in as we iterate. 49* 50* Designed and Coded by Jim Davis 11 Aug 79 51* Modified 17 Aug 79 52* 53* Modified June 83 JMAthane to add following entries: 54* probe_builtins_$pascal_nil_builtin 55* probe_builtins_$pascal_false_builtin 56* probe_builtins_$pascal_true_builtin 57* probe_builtins_$pascal_chr_builtin 58* probe_builtins_$pascal_ord_builtin 59* probe_builtins_$pascal_eof_builtin 60* probe_builtins_$pascal_eoln_builtin 61**/ 62 /* Fixed unspec to work on structures and arrays 08/12/83 S. Herbst */ 63 /* Changed to call get_size_in_bits_$structure with ref_ptr, handle var extents 06/05/84 S. Herbst */ 64 65 call probe_error_$malfunction (); 66 67 dcl ( 68 P_probe_info_ptr ptr, 69 P_refp ptr, /* to a reference node */ 70 P_code fixed bin (35) 71 ) parameter; 72 73 dcl 1 P_reference aligned like reference_node based (refp); 74 dcl refp ptr; /* copy of P_refp */ 75 76 dcl 1 sub_refs aligned like subscript_reference_ptrs 77 based (P_reference.subscript_refs_ptr); 78 dcl 1 subscript aligned based (sub) like reference_node; 79 /* an arbitrary arg */ 80 81 dcl sub ptr; /* to one of our args */ 82 dcl data_length fixed bin (35); 83 dcl start fixed bin (35); 84 dcl ptr_bitno fixed bin (35); 85 /* bit offset ofptr used in "ptr" builtin */ 86 87 dcl bit_array (data_length) bit (1) unal based; 88 /* used in substr builtin to get addr */ 89 dcl char_array (data_length) char (1) unal based; 90 91 dcl based_ptr ptr based; 92 dcl based_integer fixed bin (35) based; 93 94 dcl ioa_$ioa_switch entry options (variable); 95 /* used for warnings */ 96 97 dcl probe_error_$record entry options (variable); 98 dcl probe_error_$malfunction 99 entry options (variable); 100 101 dcl get_size_in_bits_ entry (fixed bin, fixed bin (35), 102 bit (1) aligned) returns (fixed bin); 103 dcl get_size_in_bits_$structure 104 entry (ptr) returns (fixed bin); 105 106 dcl probe_et_$recorded_message 107 fixed bin (35) external static; 108 109 dcl p1 ptr; 110 111 dcl i fixed bin (35); 112 113 dcl 1 p based, 114 2 p1 bit (30) unal, 115 2 ftag bit (6) unal, 116 2 p2 bit (36) unal; 117 118 dcl (addr, addrel, baseno, baseptr, divide, fixed, null, pointer, rel) 119 builtin; 120 121 RECORDED_MESSAGE: 122 P_code = probe_et_$recorded_message; 123 EXIT_HERE: 124 125 return; 126 127 probe_builtins_$addr_builtin: 128 entry (P_probe_info_ptr, P_refp, P_code); 129 130 call setup (1, 1); 131 132 sub = sub_refs (1, 1).ptr; 133 if subscript.constant & ^subscript.pseudo_var & 134 ^(subscript.type = 21 135 & P_probe_info_ptr -> probe_info.random_info.language_type 136 = C_lang_type) then do; 137 call probe_error_$record (probe_info_ptr, 0, 138 "Can't get the address of a constant"); 139 goto RECORDED_MESSAGE; 140 end; 141 pointer_bif () -> based_ptr = subscript.address_ptr; 142 goto EXIT_HERE; 143 144 probe_builtins_$pascal_nil_builtin: 145 entry (P_probe_info_ptr, P_refp, P_code); 146 147 probe_builtins_$null_builtin: 148 entry (P_probe_info_ptr, P_refp, P_code); 149 150 call setup (0, 0); 151 pointer_bif () -> based_ptr = null (); 152 goto EXIT_HERE; 153 154 probe_builtins_$octal_builtin: 155 entry (P_probe_info_ptr, P_refp, P_code); 156 157 call setup (1, 1); 158 159 call octunspecom; 160 P_reference.octal = "1"b; 161 goto EXIT_HERE; 162 163 probe_builtins_$unspec_builtin: 164 entry (P_probe_info_ptr, P_refp, P_code); 165 166 call setup (1, 1); 167 call octunspecom; 168 goto EXIT_HERE; 169 170 probe_builtins_$substr_builtin: 171 entry (P_probe_info_ptr, P_refp, P_code); 172 173 call setup (2, 3); 174 175 P_reference.pseudo_var = "1"b; 176 sub = sub_refs.ptr (1, 1); 177 call require_string (1); 178 if data_type_info_$info (subscript.type).varying 179 then do; 180 P_reference.type = subscript.type - 1; 181 /* same type, nonvarying */ 182 P_reference.address_ptr = addrel (subscript.address_ptr, 1); 183 data_length = subscript.address_ptr -> based_integer; 184 end; 185 else do; 186 P_reference.type = subscript.type; 187 P_reference.address_ptr = subscript.address_ptr; 188 data_length = subscript.precision; 189 end; 190 P_reference.descriptor = P_reference.type * 2 + 1; 191 /* packed */ 192 P_reference.packed = "1"b; 193 194 start = get_num_arg (2); 195 196 if P_reference.n_subscripts = 3 197 then do; 198 P_reference.precision = get_num_arg (3); 199 200 if P_reference.precision < 0 201 then do; 202 call probe_error_$record (probe_info_ptr, 0, 203 "The third arg to substr must be > 0"); 204 goto RECORDED_MESSAGE; 205 end; 206 if start + P_reference.precision - 1 > data_length 207 then call ioa_$ioa_switch (probe_info.output_switch, "stringrange"); 208 209 end; 210 else P_reference.precision = data_length - start + 1; 211 212 if P_reference.type = bit_dtype 213 then P_reference.address_ptr = 214 addr (P_reference.address_ptr -> bit_array (start)); 215 else P_reference.address_ptr = 216 addr (P_reference.address_ptr -> char_array (start)); 217 goto EXIT_HERE; 218 219 probe_builtins_$length_builtin: 220 entry (P_probe_info_ptr, P_refp, P_code); 221 222 call setup (1, 1); 223 224 sub = sub_refs (1, 1).ptr; 225 call require_string (1); 226 if data_type_info_$info (subscript.type).varying 227 then data_length = subscript.address_ptr -> based_integer; 228 else data_length = subscript.precision; 229 230 integer_bif () -> based_integer = data_length; 231 goto EXIT_HERE; 232 233 probe_builtins_$maxlength_builtin: 234 entry (P_probe_info_ptr, P_refp, P_code); 235 236 call setup (1, 1); 237 sub = sub_refs (1, 1).ptr; 238 call require_string (1); 239 integer_bif () -> based_integer = subscript.precision; 240 goto EXIT_HERE; 241 242 probe_builtins_$addrel_builtin: 243 entry (P_probe_info_ptr, P_refp, P_code); 244 245 call setup (2, 2); 246 pointer_bif () -> based_ptr = addrel (get_ptr_arg (1), get_num_arg (2)); 247 goto EXIT_HERE; 248 249 probe_builtins_$ptr_builtin: 250 entry (P_probe_info_ptr, P_refp, P_code); 251 252 call setup (2, 3); 253 if P_reference.n_subscripts = 3 254 then ptr_bitno = get_num_arg (3); 255 else ptr_bitno = 0; 256 257 pointer_bif () -> based_ptr = 258 bitrel (pointer (get_ptr_arg (1), get_num_arg (2)), ptr_bitno); 259 goto EXIT_HERE; 260 261 bitrel: 262 proc (p, bo) returns (ptr); 263 dcl p ptr parameter; 264 dcl bo fixed bin (35) parameter; 265 dcl bit_array (0:35) bit (1) unal based (p); 266 267 268 if bo > 35 | bo < 0 269 then do; 270 call probe_error_$record (probe_info_ptr, 0, 271 "pointer: bit offset must be between 0 and 35"); 272 goto RECORDED_MESSAGE; 273 end; 274 return (addr (bit_array (bo))); 275 end bitrel; 276 277 probe_builtins_$rel_builtin: 278 entry (P_probe_info_ptr, P_refp, P_code); 279 280 call setup (1, 1); 281 integer_bif () -> based_integer = fixed (rel (get_ptr_arg (1)), 35); 282 goto EXIT_HERE; 283 284 probe_builtins_$segno_builtin: 285 entry (P_probe_info_ptr, P_refp, P_code); 286 287 call setup (1, 1); 288 integer_bif () -> based_integer = fixed (baseno (get_ptr_arg (1)), 35, 0); 289 goto EXIT_HERE; 290 291 probe_builtins_$baseptr_builtin: 292 entry (P_probe_info_ptr, P_refp, P_code); 293 294 call setup (1, 1); 295 pointer_bif () -> based_ptr = baseptr (get_num_arg (1)); 296 goto EXIT_HERE; 297 298 probe_builtins_$pascal_false_builtin: 299 entry (P_probe_info_ptr, P_refp, P_code); 300 301 call setup (0, 0); 302 pascal_boolean_bif () -> based_integer = 0; 303 goto EXIT_HERE; 304 305 probe_builtins_$pascal_true_builtin: 306 entry (P_probe_info_ptr, P_refp, P_code); 307 308 call setup (0, 0); 309 pascal_boolean_bif () -> based_integer = 1; 310 goto EXIT_HERE; 311 312 probe_builtins_$pascal_chr_builtin: 313 entry (P_probe_info_ptr, P_refp, P_code); 314 315 call setup (1, 1); 316 pascal_char_bif () -> based_integer = get_num_arg (1); 317 goto EXIT_HERE; 318 319 probe_builtins_$pascal_ord_builtin: 320 entry (P_probe_info_ptr, P_refp, P_code); 321 322 call setup (1, 1); 323 integer_bif () -> based_integer = get_enumerated_arg (1); 324 goto EXIT_HERE; 325 326 probe_builtins_$pascal_eof_builtin: 327 entry (P_probe_info_ptr, P_refp, P_code); 328 329 call setup (1, 1); 330 i = eof_place_in_pascal_fsb; 331 p1 = sub_refs.ptr (1, 1); 332 if p1 -> reference_node.type_ptr ^= null 333 then 334 do; 335 if p1 -> reference_node.type_ptr -> pascal_symbol_node_header.type 336 ^= pascal_record_file_type_dtype 337 then 338 call iwanta (1, "file"); 339 end; 340 else if p1 -> reference_node.type ^= pascal_text_file_dtype 341 then 342 call iwanta (1, "file"); 343 go to join; 344 345 probe_builtins_$pascal_eoln_builtin: 346 entry (P_probe_info_ptr, P_refp, P_code); 347 348 call setup (1, 1); 349 i = eoln_place_in_pascal_fsb; 350 p1 = sub_refs.ptr (1, 1); 351 if p1 -> reference_node.type ^= pascal_text_file_dtype 352 then 353 call iwanta (1, "text file"); 354 join: 355 if p1 -> reference_node.address_ptr -> p.ftag ^= "43"b3 356 | p1 -> reference_node.address_ptr -> based_ptr = null then do; 357 call probe_error_$record (probe_info_ptr, 0, 358 "file control block for ^a is not initialized.", 359 p1 -> reference_node.name); 360 go to RECORDED_MESSAGE; 361 end; 362 363 p1 = p1 -> reference_node.address_ptr -> based_ptr; 364 pascal_boolean_bif () -> based_integer = addrel (p1, i) -> based_integer; 365 goto EXIT_HERE; 366 367 probe_builtins_$sizeof_builtin: 368 entry (P_probe_info_ptr, P_refp, P_code); 369 370 dcl total_bytes fixed bin (35); 371 dcl rt_ptr ptr; 372 373 call setup (1, 1); 374 375 if (P_probe_info_ptr -> probe_info.random_info.language_type ^= C_lang_type) 376 then do; 377 call probe_error_$record (probe_info_ptr, 0, 378 "The sizeof builtin is a C language builtin."); 379 goto RECORDED_MESSAGE; 380 end; 381 382 sub = sub_refs.ptr (1, 1); 383 384 if (subscript.symbol_ptr ^= null ()) then do; 385 total_bytes = 0; 386 rt_ptr = subscript.symbol_ptr; 387 call get_the_size (rt_ptr, total_bytes, "0"b); 388 sizeof_bif () -> based_integer = total_bytes; 389 end; 390 else do; 391 call probe_error_$record (probe_info_ptr, 0, 392 "Cannot get a pointer to the runtime symbol node for ^a", 393 subscript.name); 394 goto RECORDED_MESSAGE; 395 end; 396 goto EXIT_HERE; 397 398 get_the_size: 399 proc (rt_ptr_arg, total_bytes, subcomponent); 400 401 dcl rt_ptr_arg ptr parameter; 402 dcl total_bytes fixed bin (35) parameter; 403 dcl subcomponent bit (1) parameter; 404 405 if (fixed (rt_ptr_arg -> runtime_symbol.type) = structure_dtype) then do; 406 rt_ptr_arg = 407 addrel (rt_ptr_arg, fixed (rt_ptr_arg -> runtime_symbol.son)); 408 do while (fixed (rt_ptr_arg -> runtime_symbol.brother) ^= 0); 409 subcomponent = "1"b; 410 rt_ptr_arg = 411 addrel (rt_ptr_arg, fixed (rt_ptr_arg -> runtime_symbol.brother)) 412 ; 413 end; 414 total_bytes = 415 divide (fixed (rt_ptr_arg -> runtime_symbol.offset, 35), 9, 35, 0); 416 if (fixed (rt_ptr_arg -> runtime_symbol.type) = structure_dtype) 417 then 418 call get_the_size (rt_ptr_arg, total_bytes, subcomponent); 419 end; 420 if (fixed (rt_ptr_arg -> runtime_symbol.type) = c_union_dtype) then do; 421 begin; 422 dcl rt_ptr ptr; 423 dcl (t_b, max_bytes) fixed bin (35); 424 dcl not_done bit (1); 425 426 rt_ptr = 427 addrel (rt_ptr_arg, fixed (rt_ptr_arg -> runtime_symbol.son)); 428 not_done = "1"b; 429 max_bytes = 0; 430 do while (not_done); 431 t_b = 0; 432 call get_the_size ((rt_ptr), t_b, subcomponent); 433 if (t_b > max_bytes) 434 then max_bytes = t_b; 435 if (rt_ptr -> runtime_symbol.brother = "000000"b3) 436 then 437 not_done = "0"b; 438 else rt_ptr = 439 addrel (rt_ptr, 440 fixed (rt_ptr -> runtime_symbol.brother)); 441 end; 442 total_bytes = total_bytes + max_bytes; 443 end; 444 return; 445 end; 446 total_bytes = total_bytes + get_size_of_one (rt_ptr_arg, subcomponent); 447 end get_the_size; 448 449 get_size_of_one: 450 proc (sym_ptr, subcom) returns (fixed bin (35)); 451 452 dcl sym_ptr ptr parameter; 453 dcl subcom bit (1) parameter; 454 455 dcl rt_ptr ptr; 456 dcl size_of_unit fixed bin (35); 457 dcl no_of_dims fixed bin; 458 dcl no_of_elements fixed bin; 459 dcl i fixed bin; 460 461 no_of_elements = 1; 462 463 rt_ptr = sym_ptr; 464 do while (fixed (rt_ptr -> runtime_symbol.type) = c_typeref_dtype); 465 rt_ptr = addrel (rt_ptr, fixed (rt_ptr -> runtime_symbol.son)); 466 end; 467 if (fixed (rt_ptr -> runtime_symbol.type) = char_dtype) then do; 468 if (rt_ptr -> runtime_symbol.size = 1 469 & rt_ptr -> runtime_symbol.bits.simple & 470 ^rt_ptr -> runtime_symbol.bits.packed) 471 then 472 size_of_unit = 4; 473 else size_of_unit = 1; 474 end; 475 else if (fixed (rt_ptr -> runtime_symbol.type) = real_fix_bin_1_dtype | 476 fixed (rt_ptr -> runtime_symbol.type) = real_fix_bin_2_dtype) 477 then 478 size_of_unit = divide (rt_ptr -> runtime_symbol.size + 1, 9, 35, 0); 479 else if (fixed (rt_ptr -> runtime_symbol.type) = real_fix_bin_1_uns_dtype | 480 fixed (rt_ptr -> runtime_symbol.type) = real_fix_bin_2_uns_dtype | 481 fixed (rt_ptr -> runtime_symbol.type) = real_flt_bin_2_dtype | 482 fixed (rt_ptr -> runtime_symbol.type) = real_flt_bin_1_dtype) 483 then 484 size_of_unit = divide (rt_ptr -> runtime_symbol.size, 9, 35, 0); 485 else if (fixed (rt_ptr -> runtime_symbol.type) = pointer_dtype) 486 then 487 size_of_unit = 8; 488 489 if (^rt_ptr -> runtime_symbol.bits.simple 490 & (subscript.n_subscripts = 0 | subcom)) then do; 491 no_of_dims = fixed (rt_ptr -> runtime_symbol.ndims); 492 do i = 1 to no_of_dims; 493 no_of_elements = 494 no_of_elements 495 * (rt_ptr -> runtime_symbol.bounds (i).upper 496 - rt_ptr -> runtime_symbol.bounds (i).lower + 1); 497 end; 498 size_of_unit = size_of_unit * no_of_elements; 499 end; 500 return (size_of_unit); 501 end get_size_of_one; 502 503 504 setup: 505 proc (min_args, max_args); 506 dcl min_args fixed bin parameter; 507 dcl max_args fixed bin parameter; 508 509 refp = P_refp; 510 probe_info_ptr = P_probe_info_ptr; 511 512 if P_reference.cross_section then do; 513 call probe_error_$record (probe_info_ptr, 0, 514 "Cross-sections can only be used as array subscripts, not with builtins" 515 ); 516 goto RECORDED_MESSAGE; 517 end; 518 519 if P_reference.n_subscripts < min_args then do; 520 call probe_error_$record (probe_info_ptr, 0, 521 "^a requires at least ^d arg^[s^]", 522 P_reference.name, min_args, (min_args > 1)); 523 goto RECORDED_MESSAGE; 524 end; 525 if P_reference.n_subscripts > max_args then do; 526 call probe_error_$record (probe_info_ptr, 0, 527 "^a takes only ^d arg^[s^]", 528 P_reference.name, max_args, (max_args > 1)); 529 goto RECORDED_MESSAGE; 530 end; 531 532 P_reference.constant = "1"b; 533 end setup; 534 535 536 /* These are used to set the attributes of P_reference according to what will be returned */ 537 538 sizeof_bif: 539 proc () returns (ptr); 540 541 P_reference.type = real_fix_bin_1_dtype; 542 P_reference.type_ptr = null; 543 P_reference.descriptor = P_reference.type * 2; 544 P_reference.precision = 35; 545 allocate based_integer in (expression_area) set (P_reference.address_ptr); 546 return (P_reference.address_ptr); 547 end sizeof_bif; 548 549 pascal_boolean_bif: 550 proc () returns (ptr); 551 552 P_reference.type = pascal_boolean_dtype; 553 P_reference.type_ptr = null; 554 P_reference.descriptor = P_reference.type * 2; 555 P_reference.precision = 36; 556 allocate based_integer in (expression_area) set (P_reference.address_ptr); 557 return (P_reference.address_ptr); 558 end pascal_boolean_bif; 559 560 pointer_bif: 561 proc () returns (ptr); 562 563 P_reference.type = pointer_dtype; 564 P_reference.type_ptr = null; 565 P_reference.descriptor = P_reference.type * 2; 566 allocate based_ptr in (expression_area) set (P_reference.address_ptr); 567 return (P_reference.address_ptr); 568 end pointer_bif; 569 570 pascal_char_bif: 571 proc () returns (ptr); 572 573 P_reference.type = pascal_char_dtype; 574 P_reference.type_ptr = null; 575 P_reference.descriptor = P_reference.type * 2; 576 P_reference.precision = 36; 577 allocate based_integer in (expression_area) set (P_reference.address_ptr); 578 return (P_reference.address_ptr); 579 end pascal_char_bif; 580 581 integer_bif: 582 proc () returns (ptr); 583 584 P_reference.type = real_fix_bin_1_dtype; 585 P_reference.type_ptr = null; 586 P_reference.descriptor = P_reference.type * 2; 587 P_reference.precision = 35; 588 allocate based_integer in (expression_area) set (P_reference.address_ptr); 589 return (P_reference.address_ptr); 590 end integer_bif; 591 592 require_string: 593 proc (sidx); 594 dcl sidx fixed bin parameter; 595 dcl 1 ref aligned like reference_node 596 based (sub_refs (1, sidx).ptr); 597 598 if ^data_type_info_$info (ref.type).char_string & 599 ^data_type_info_$info (ref.type).bit_string 600 then call iwanta (sidx, "string"); 601 if ref.cross_section 602 then call nocross (sidx); 603 end; 604 605 /* These are used to get an the Nth arg - 606* require it to be of the type needed, and convert it if possible and necessary 607* the arg is returned for use by the builtin 608**/ 609 get_ptr_arg: 610 proc (idx) returns (ptr); 611 dcl idx fixed bin; 612 dcl 1 sref aligned like reference_node 613 based (sub_refs (1, idx).ptr); 614 615 if sref.type ^= pointer_dtype 616 then call iwanta (idx, "pointer"); 617 if sref.cross_section 618 then call nocross (idx); 619 return (sref.address_ptr -> based_ptr); 620 end get_ptr_arg; 621 622 623 get_enumerated_arg: 624 proc (idx) returns (fixed bin (35)); 625 dcl idx fixed bin parameter; 626 dcl val fixed bin (35); 627 dcl 1 sref aligned like reference_node 628 based (sub_refs.ptr (1, idx)); 629 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 630 631 dcl 1 tar_str aligned like computational_data; 632 dcl 1 src_str aligned like computational_data; 633 634 dcl 1 eprec aligned like encoded_precision; 635 636 dcl unspec builtin; 637 638 dcl probe_pascal_$real_type entry (fixed bin (35), ptr, fixed bin (35), ptr) 639 ; 640 641 if sref.type = char_dtype then do; 642 sref.type = pascal_char_dtype; 643 sref.precision = 9; 644 end; 645 call probe_pascal_$real_type (sref.type, sref.type_ptr, sref.type, 646 sref.type_ptr); 647 if ^((sref.type = pascal_enumerated_type_element_dtype) 648 | (sref.type = pascal_char_dtype) 649 | (sref.type = pascal_enumerated_type_instance_dtype)) 650 then call iwanta (idx, "char or an enumerated type element or instance"); 651 652 if sref.cross_section 653 then call nocross (idx); 654 655 tar_str.address = addr (val); 656 tar_str.data_type = real_fix_bin_1_dtype; 657 tar_str.flags = "0"b; 658 tar_str.prec_or_length = 35; 659 tar_str.scale = 0; 660 661 662 src_str.address = sref.address_ptr; 663 if sref.precision >= 36 664 then 665 src_str.data_type = real_fix_bin_2_uns_dtype; 666 else 667 src_str.data_type = real_fix_bin_1_uns_dtype; 668 src_str.flags = "0"b; 669 src_str.flags.packed = "1"b; 670 671 unspec (eprec) = unspec (sref.precision); 672 673 src_str.prec_or_length = eprec.prec; 674 src_str.scale = eprec.scale; 675 676 call assign_$computational_ (addr (tar_str), addr (src_str), (0)); 677 return (val); 678 679 end get_enumerated_arg; 680 681 get_num_arg: 682 proc (idx) returns (fixed bin (35)); 683 dcl idx fixed bin parameter; 684 dcl val fixed bin (35); 685 dcl 1 sref aligned like reference_node 686 based (sub_refs.ptr (1, idx)); 687 dcl assign_$computational_ entry (ptr, ptr, fixed bin (35)); 688 689 dcl 1 tar_str aligned like computational_data; 690 dcl 1 src_str aligned like computational_data; 691 692 dcl 1 eprec aligned like encoded_precision; 693 694 dcl unspec builtin; 695 696 dcl probe_pascal_$real_type entry (fixed bin (35), ptr, fixed bin (35), ptr) 697 ; 698 699 call probe_pascal_$real_type (sref.type, sref.type_ptr, sref.type, 700 sref.type_ptr); 701 if ^data_type_info_$info (sref.type).computational 702 then call iwanta (idx, "number"); 703 704 if sref.cross_section 705 then call nocross (idx); 706 707 tar_str.address = addr (val); 708 tar_str.data_type = real_fix_bin_1_dtype; 709 tar_str.flags = "0"b; 710 tar_str.prec_or_length = 35; 711 tar_str.scale = 0; 712 713 714 src_str.address = sref.address_ptr; 715 src_str.data_type = sref.type; 716 src_str.flags = "0"b; 717 src_str.flags.packed = sref.flags.packed; 718 719 unspec (eprec) = unspec (sref.precision); 720 721 src_str.prec_or_length = eprec.prec; 722 src_str.scale = eprec.scale; 723 724 call assign_$computational_ (addr (tar_str), addr (src_str), (0)); 725 return (val); 726 727 end get_num_arg; 728 729 730 iwanta: 731 proc (num, what); 732 dcl num fixed bin parameter; 733 dcl what char (*) aligned parameter; 734 735 call probe_error_$record (probe_info_ptr, 0, 736 "The ^[first^;second^;third^] arg to the ^a builtin must be a ^a", 737 num, P_reference.name, what); 738 goto RECORDED_MESSAGE; 739 end iwanta; 740 741 nocross: 742 proc (n); 743 dcl n fixed bin parameter; 744 call probe_error_$record (probe_info_ptr, 0, 745 "The ^[first^;second^;third^;fourth^] argument to ^a cannot be an array cross-section", 746 n, P_reference.name); 747 goto RECORDED_MESSAGE; 748 end nocross; 749 750 octunspecom: 751 proc; 752 753 /* common for octal and unspec */ 754 P_reference.pseudo_var = "1"b; 755 sub = sub_refs.ptr (1, 1); 756 if subscript.cross_section 757 then call nocross (1); 758 P_reference.address_ptr = subscript.address_ptr; 759 P_reference.type = bit_dtype; 760 P_reference.type_ptr = null; 761 P_reference.descriptor = P_reference.type * 2; 762 P_reference.packed = "1"b; 763 764 if subscript.symbol_ptr ^= null 765 then 766 P_reference.precision = get_size_in_bits_$structure (sub); 767 else 768 P_reference.precision = 769 get_size_in_bits_ ((subscript.type), (subscript.precision), 770 (subscript.packed)); 771 if P_reference.precision = -1 772 then do; 773 call probe_error_$record (probe_info_ptr, 0, 774 "^a can't determine size of ^a", 775 P_reference.name, subscript.name); 776 goto RECORDED_MESSAGE; 777 end; 778 return; 779 780 781 end octunspecom; 782 783 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 784 785 2 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 2 2* 2 3* James R. Davis 2 July 79 */ 2 4 2 5 dcl 1 source_info based aligned, 2 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 2 7 2 instruction_ptr ptr, /* to last instruction executed */ 2 8 2 block_ptr ptr, /* to runtime_block node */ 2 9 2 stack_ptr ptr, /* to a stack frame */ 2 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 2 11 2 seg_info_ptr ptr; /* to seg_info */ 2 12 2 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 2 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 2 15 2 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 786 787 3 1 /* BEGIN INCLUDE FILE ... probe_seg_info.incl.pl1 3 2* 3 3* 25 June 79 JRDavis 3 4* 3 5* Modified 7 April 1983, TO - Add fields for character offset/line 3 6* correction per file. 3 7**/ 3 8 3 9 dcl 1 seg_info based aligned, /* place to remember information about object seg */ 3 10 2 language_type fixed bin, /* language of source program */ 3 11 2 bits aligned, 3 12 3 ignore_case bit (1) unal, 3 13 3 bound_segment bit (1) unaligned, 3 14 3 component bit (1) unaligned, 3 15 3 pad bit (33) unal, 3 16 2 names, /* where to find it */ 3 17 3 directory_name character (168) unal, /* what directory */ 3 18 3 entry_name character (32) unal, /* what segment */ 3 19 3 segname character (32) unal, /* procedure segname definition */ 3 20 2 identifier fixed bin (71), /* time of object creation */ 3 21 2 pointers, /* location of various parts of segment */ 3 22 3 symbol_header_ptr ptr unal, /* to symbol section */ 3 23 3 original_source_ptr ptr unal, /* to segment source map */ 3 24 3 statement_map_ptr ptr unal, /* to segment statement map */ 3 25 3 break_info ptr unal, /* for unbound segments, and start of chain for 3 26* bound ones, -> break_map !obsolete, I think! */ 3 27 3 chain ptr unal, /* to entry for next component if bound */ 3 28 3 linkage_ptr ptr unal, /* to linkage section */ 3 29 2 bounds aligned, /* structure of bounds information */ 3 30 3 text_bounds, 3 31 4 start fixed bin (35), 3 32 4 end fixed bin (35), 3 33 3 symbol_bounds, 3 34 4 start fixed bin (35), 3 35 4 end fixed bin (35), 3 36 2 map_size fixed bin, /* size of statement map */ 3 37 2 error_code fixed bin (35), /* errors encoutered while getting info, are recorded here */ 3 38 2 bound_create_time fixed bin (71), /* time seg containing was bound or compiled. */ 3 39 2 bound_sym_header ptr unal, /* to sym. section header for bound seg */ 3 40 2 pad (1) fixed bin (35), 3 41 3 42 2 nfiles fixed bin, 3 43 2 per_file (seg_info_nfiles refer (seg_info.nfiles)), 3 44 3 file_pointers ptr unal, 3 45 3 break_line (0:3) fixed bin (18) unsigned unaligned; 3 46 3 47 dcl seg_info_nfiles fixed bin; /* for allocation purposes */ 3 48 3 49 3 50 /* END INCLUDE FILE ... probe_seg_info.incl.pl1 */ 788 789 4 1 /* BEGIN INCLUDE FILE probe_references.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 4 5* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 4 6* Added new field (c_symbol) for C-Probe support. 4 7* 2) change(88-10-28,WAAnderson), approve(88-10-28,MCR7952), 4 8* audit(88-10-31,RWaters), install(88-11-11,MR12.2-1210): 4 9* Added new field (c_sub_c_ptr) for C-Probe_support. 4 10* END HISTORY COMMENTS */ 4 11 4 12 /* Split out of probe_tokens, 04/22/79 WOS */ 4 13 /* modified for probe variables Feb 19 80 JRD */ 4 14 /* Modified June 83 JMAthane to add "type_ptr" and "builtin" fields */ 4 15 4 16 dcl 1 reference_node aligned based, /* information about a reference */ 4 17 2 symbol_ptr pointer aligned, /* to symbol table entry for reference */ 4 18 2 type_ptr pointer aligned, /* to symbol table entry for type (null if none) */ 4 19 2 address_ptr pointer aligned, /* to location of variable */ 4 20 2 base_addr pointer aligned, /* pointer on which whole symbol is based */ 4 21 2 source_info_ptr pointer aligned, /* to symbol structure for reference */ 4 22 4 23 2 name char (256) unaligned varying, /* symbol name */ 4 24 4 25 2 type fixed bin (35), /* data type */ 4 26 2 descriptor fixed bin (35), /* type || packed */ 4 27 2 precision fixed bin (35), /* scale and precision */ 4 28 2 flags, 4 29 3 packed bit (1) unal, /* data is in packed format */ 4 30 3 constant bit (1) unal, /* data is really a constant */ 4 31 3 cross_section bit (1) unal, /* reference is an array cross-section */ 4 32 3 function bit (1) unal, /* reference is function value */ 4 33 3 octal bit (1) unal, /* indicates that this is the octal bif */ 4 34 3 star_extent bit (1) unal, /* reference is a star subscript for father */ 4 35 3 have_generation bit (1) unal, /* this reference has an explicitly specified generation */ 4 36 3 pseudo_var bit (1) unal, /* it is ok to assign to it */ 4 37 3 probe_variable bit (1) unal, 4 38 3 path bit (1) unal, /* it's a pathname/virtual entry */ 4 39 3 builtin bit (1) unal, /* probe builtinvalue */ 4 40 3 c_ptr_to_char bit (1) unal, 4 41 3 c_sub_c_ptr bit (1) unal, 4 42 3 pad2 bit (23) unal, 4 43 4 44 2 optional_info, /* information which may or may not be present */ 4 45 3 argument_list pointer unaligned, /* pointer to reference_arg_list */ 4 46 3 subscript_ptr pointer unaligned, /* pointer to reference_subscripts */ 4 47 3 n_arguments fixed bin, /* number of arguments in argument list */ 4 48 3 n_subscripts fixed bin, /* number of subscripts present */ 4 49 4 50 2 constant_token_ptr pointer unaligned, /* pointer to constant token if this is a constant */ 4 51 2 subscript_refs_ptr pointer unaligned, /* pointer to array of subscript reference node pointers */ 4 52 2 invocation_level fixed bin, /* invocation level number ("[-17]") for this reference */ 4 53 2 probe_var_info_ptr ptr unal, /* only if flags.probe_variable */ 4 54 2 c_symbol_ptr ptr unal, 4 55 2 pad1 (9) pointer unaligned, 4 56 2 end_of_reference_node pointer aligned; 4 57 4 58 4 59 dcl 1 reference_arg_list aligned based, /* argument list; based on reference.argument_list */ 4 60 2 number fixed bin, /* number of arguments actually present */ 4 61 2 node (16) pointer aligned; /* reference node pointers for each argument */ 4 62 4 63 4 64 dcl 1 reference_subscripts aligned based, /* subscript array; based on reference.subscript_ptr */ 4 65 2 number fixed bin, /* number actually present */ 4 66 2 value (2, 16) fixed bin (24); /* values for lower and upper bound for each */ 4 67 4 68 4 69 dcl 1 subscript_reference_ptrs aligned based, /* array of pointers to subscript reference nodes */ 4 70 2 ptr (2, 16) pointer aligned; 4 71 4 72 /* END INCLUDE FILE probe_references.incl.pl1 */ 790 791 5 1 /* BEGIN INCLUDE FILE ... data_type_info_.incl.pl1 5 2* 5 3* attributes of each Multics data type. You may not rely on the dimension never exceeding 64 5 4* James R. Davis 6 Apr 79 5 5* Modified JMAthane June 83 to add "type" bit field 5 6* Upped bound from 64 to 80 10/18/83 S. Herbst 5 7* Added "hex" and "generic" bits 01/23/84 S. Herbst 5 8* Upped bound from 80 to 86 01/81/84 R. Gray 5 9* Upper bound from 86 to 87 JMAthane (for Pascal strings type dtype) 5 10**/ 5 11 5 12 5 13 /****^ HISTORY COMMENTS: 5 14* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 5 15* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 5 16* The data_type_info array now has 87 entries instead of 86 due to 5 17* introduction of pascal_string_type_dtype. 5 18* END HISTORY COMMENTS */ 5 19 5 20 dcl data_type_info_$version_number fixed bin external static; 5 21 dcl data_type_info_this_version fixed bin internal static options (constant) init (1); 5 22 5 23 dcl 1 data_type_info_$info (87) aligned external static, 5 24 2 computational bit (1) unal, 5 25 2 arithmetic bit (1) unal, 5 26 2 arithmetic_attributes unal, /* only valid if arithmetic */ 5 27 3 fixed bit (1) unal, /* PL/I type */ 5 28 3 complex bit (1) unal, /* PL/I mode */ 5 29 3 decimal bit (1) unal, /* PL/I base */ 5 30 3 signed bit (1) unal, 5 31 3 trailing_sign bit (1) unal, /* only valid if signed */ 5 32 3 decimal_attributes unal, /* only valid if decimal */ 5 33 4 packed_dec bit (1) unal, /* 4 bits per digit or 9 */ 5 34 4 digit_aligned bit (1) unal, /* valid for packed_dec only */ 5 35 4 overpunched bit (1) unal, 5 36 2 char_string bit (1) unal, /* valid for non-arithmetic */ 5 37 2 bit_string bit (1) unal, /* valid for non-arithmetic */ 5 38 2 varying bit (1) unal, /* for bit or char only */ 5 39 2 type bit (1) unal, /* this symbol is a type */ 5 40 2 hex bit (1) unal, /* a hexadecimal type (eg., hex floating point) */ 5 41 2 generic bit (1) unal, /* eg., real_flt_dec_generic_dtype */ 5 42 2 pad bit (20) unal; 5 43 5 44 dcl data_type_info_$ninebit_sign_chars char (2) external static; 5 45 dcl data_type_info_$ninebit_digit_chars char (10) external static; 5 46 dcl data_type_info_$ninebit_overpunched_sign_chars char (22) external static; 5 47 5 48 dcl data_type_info_$max_decimal_precision fixed bin external static; 5 49 dcl data_type_info_$max_float_binary_precision fixed bin external static; 5 50 dcl data_type_info_$max_fixed_binary_precision fixed bin external static; 5 51 5 52 5 53 /* END INCLUDE FILE ... data_type_info_.incl.pl1 */ 792 793 6 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 6 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 6 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 6 8* Objects of this type are PASCAL string types. 6 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 6 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 6 11* Added the new C types. 6 12* END HISTORY COMMENTS */ 6 13 6 14 /* This include file defines mnemonic names for the Multics 6 15* standard descriptor types, using both pl1 and cobol terminology. 6 16* PG 780613 6 17* JRD 790530 6 18* JRD 791016 6 19* MBW 810731 6 20* TGO 830614 Add hex types. 6 21* Modified June 83 JMAthane to add PASCAL data types 6 22* TGO 840120 Add float dec extended and generic, float binary generic 6 23**/ 6 24 6 25 dcl (real_fix_bin_1_dtype init (1), 6 26 real_fix_bin_2_dtype init (2), 6 27 real_flt_bin_1_dtype init (3), 6 28 real_flt_bin_2_dtype init (4), 6 29 cplx_fix_bin_1_dtype init (5), 6 30 cplx_fix_bin_2_dtype init (6), 6 31 cplx_flt_bin_1_dtype init (7), 6 32 cplx_flt_bin_2_dtype init (8), 6 33 real_fix_dec_9bit_ls_dtype init (9), 6 34 real_flt_dec_9bit_dtype init (10), 6 35 cplx_fix_dec_9bit_ls_dtype init (11), 6 36 cplx_flt_dec_9bit_dtype init (12), 6 37 pointer_dtype init (13), 6 38 offset_dtype init (14), 6 39 label_dtype init (15), 6 40 entry_dtype init (16), 6 41 structure_dtype init (17), 6 42 area_dtype init (18), 6 43 bit_dtype init (19), 6 44 varying_bit_dtype init (20), 6 45 char_dtype init (21), 6 46 varying_char_dtype init (22), 6 47 file_dtype init (23), 6 48 real_fix_dec_9bit_ls_overp_dtype init (29), 6 49 real_fix_dec_9bit_ts_overp_dtype init (30), 6 50 real_fix_bin_1_uns_dtype init (33), 6 51 real_fix_bin_2_uns_dtype init (34), 6 52 real_fix_dec_9bit_uns_dtype init (35), 6 53 real_fix_dec_9bit_ts_dtype init (36), 6 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 6 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 6 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 6 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 6 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 6 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 6 60 real_flt_dec_4bit_bytealigned_dtype init (44), 6 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 6 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 6 63 real_flt_hex_1_dtype init (47), 6 64 real_flt_hex_2_dtype init (48), 6 65 cplx_flt_hex_1_dtype init (49), 6 66 cplx_flt_hex_2_dtype init (50), 6 67 c_typeref_dtype init (54), 6 68 c_enum_dtype init (55), 6 69 c_enum_const_dtype init (56), 6 70 c_union_dtype init (57), 6 71 algol68_straight_dtype init (59), 6 72 algol68_format_dtype init (60), 6 73 algol68_array_descriptor_dtype init (61), 6 74 algol68_union_dtype init (62), 6 75 6 76 cobol_comp_6_dtype init (1), 6 77 cobol_comp_7_dtype init (1), 6 78 cobol_display_ls_dtype init (9), 6 79 cobol_structure_dtype init (17), 6 80 cobol_char_string_dtype init (21), 6 81 cobol_display_ls_overp_dtype init (29), 6 82 cobol_display_ts_overp_dtype init (30), 6 83 cobol_display_uns_dtype init (35), 6 84 cobol_display_ts_dtype init (36), 6 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 6 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 6 87 cobol_comp_5_uns_dtype init (40), 6 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 6 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 6 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 6 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 6 92 cplx_flt_dec_generic_dtype init (84), 6 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 6 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 6 95 6 96 dcl (ft_integer_dtype init (1), 6 97 ft_real_dtype init (3), 6 98 ft_double_dtype init (4), 6 99 ft_complex_dtype init (7), 6 100 ft_complex_double_dtype init (8), 6 101 ft_external_dtype init (16), 6 102 ft_logical_dtype init (19), 6 103 ft_char_dtype init (21), 6 104 ft_hex_real_dtype init (47), 6 105 ft_hex_double_dtype init (48), 6 106 ft_hex_complex_dtype init (49), 6 107 ft_hex_complex_double_dtype init (50) 6 108 ) fixed bin internal static options (constant); 6 109 6 110 dcl (algol68_short_int_dtype init (1), 6 111 algol68_int_dtype init (1), 6 112 algol68_long_int_dtype init (2), 6 113 algol68_real_dtype init (3), 6 114 algol68_long_real_dtype init (4), 6 115 algol68_compl_dtype init (7), 6 116 algol68_long_compl_dtype init (8), 6 117 algol68_bits_dtype init (19), 6 118 algol68_bool_dtype init (19), 6 119 algol68_char_dtype init (21), 6 120 algol68_byte_dtype init (21), 6 121 algol68_struct_struct_char_dtype init (22), 6 122 algol68_struct_struct_bool_dtype init (20) 6 123 ) fixed bin internal static options (constant); 6 124 6 125 dcl (label_constant_runtime_dtype init (24), 6 126 int_entry_runtime_dtype init (25), 6 127 ext_entry_runtime_dtype init (26), 6 128 ext_procedure_runtime_dtype init (27), 6 129 picture_runtime_dtype init (63) 6 130 ) fixed bin internal static options (constant); 6 131 6 132 dcl (pascal_integer_dtype init (1), 6 133 pascal_real_dtype init (4), 6 134 pascal_label_dtype init (24), 6 135 pascal_internal_procedure_dtype init (25), 6 136 pascal_exportable_procedure_dtype init (26), 6 137 pascal_imported_procedure_dtype init (27), 6 138 pascal_typed_pointer_type_dtype init (64), 6 139 pascal_char_dtype init (65), 6 140 pascal_boolean_dtype init (66), 6 141 pascal_record_file_type_dtype init (67), 6 142 pascal_record_type_dtype init (68), 6 143 pascal_set_dtype init (69), 6 144 pascal_enumerated_type_dtype init (70), 6 145 pascal_enumerated_type_element_dtype init (71), 6 146 pascal_enumerated_type_instance_dtype init (72), 6 147 pascal_user_defined_type_dtype init (73), 6 148 pascal_user_defined_type_instance_dtype init (74), 6 149 pascal_text_file_dtype init (75), 6 150 pascal_procedure_type_dtype init (76), 6 151 pascal_variable_formal_parameter_dtype init (77), 6 152 pascal_value_formal_parameter_dtype init (78), 6 153 pascal_entry_formal_parameter_dtype init (79), 6 154 pascal_parameter_procedure_dtype init (80), 6 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 6 156 6 157 6 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 794 795 7 1 /* BEGIN INCLUDE FILE ... encoded_precision.incl.pl1 7 2* 7 3* This is the format used by assign_ to encode the precision and scale of 7 4* arithmetic data into one word. This structure should be assigned (use unspec) 7 5* to a fixed bin (35). 7 6**/ 7 7 7 8 dcl 1 encoded_precision based aligned, 7 9 2 scale fixed bin (17) unal, 7 10 2 prec fixed bin (18) unsigned unal; 7 11 7 12 /* END INCLUDE FILE ... encoded_precision.incl.pl1 */ 796 797 8 1 /* BEGIN INCLUDE FILE ... computational_data.incl.pl1 8 2* 8 3* 12 July 79 JRDavis */ 8 4 8 5 /* this is the format of the structure given to assign_$computational_ 8 6* that describes the data to be assigned */ 8 7 8 8 dcl 1 computational_data aligned based, 8 9 2 address ptr aligned, /* to data */ 8 10 2 data_type fixed bin (17), /* standard descriptor type */ 8 11 2 flags aligned, 8 12 3 packed bit (1) unal, 8 13 3 pad bit (35) unal, 8 14 2 prec_or_length fixed bin (24), /* string length or arith prec */ 8 15 2 scale fixed bin (35), /* must be zero even if has no scale */ 8 16 2 picture_image_ptr ptr aligned; /* to picture image block */ 8 17 8 18 /* END INCLUDE FILE ... computational_data.incl.pl1 */ 798 799 9 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 9 2 9 3 dcl 1 runtime_symbol aligned based, 9 4 2 flag unal bit(1), /* always "1"b for Version II */ 9 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 9 6 2 array_units unal bit(2), 9 7 2 units unal bit(2), /* addressing units */ 9 8 2 type unal bit(6), /* data type */ 9 9 2 level unal bit(6), /* structure level */ 9 10 2 ndims unal bit(6), /* number of dimensions */ 9 11 2 bits unal, 9 12 3 aligned bit(1), 9 13 3 packed bit(1), 9 14 3 simple bit(1), 9 15 2 skip unal bit(1), 9 16 2 scale unal bit(8), /* arithmetic scale factor */ 9 17 2 name unal bit(18), /* rel ptr to acc name */ 9 18 2 brother unal bit(18), /* rel ptr to brother entry */ 9 19 2 father unal bit(18), /* rel ptr to father entry */ 9 20 2 son unal bit(18), /* rel ptr to son entry */ 9 21 2 address unal, 9 22 3 location bit(18), /* location in storage class */ 9 23 3 class bit(4), /* storage class */ 9 24 3 next bit(14), /* rel ptr to next of same class */ 9 25 2 size fixed bin(35), /* encoded string|arith size */ 9 26 2 offset fixed bin(35), /* encoded offset from address */ 9 27 2 virtual_org fixed bin(35), 9 28 2 bounds(1), 9 29 3 lower fixed bin(35), /* encoded lower bound */ 9 30 3 upper fixed bin(35), /* encoded upper bound */ 9 31 3 multiplier fixed bin(35); /* encoded multiplier */ 9 32 9 33 dcl 1 runtime_bound based, 9 34 2 lower fixed bin(35), 9 35 2 upper fixed bin(35), 9 36 2 multiplier fixed bin(35); 9 37 9 38 dcl 1 runtime_block aligned based, 9 39 2 flag unal bit(1), /* always "1"b for Version II */ 9 40 2 quick unal bit(1), /* "1"b if quick block */ 9 41 2 fortran unal bit(1), /* "1"b if fortran program */ 9 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 9 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 9 44 2 skip unal bit(1), 9 45 2 type unal bit(6), /* = 0 for a block node */ 9 46 2 number unal bit(6), /* begin block number */ 9 47 2 start unal bit(18), /* rel ptr to start of symbols */ 9 48 2 name unal bit(18), /* rel ptr to name of proc */ 9 49 2 brother unal bit(18), /* rel ptr to brother block */ 9 50 2 father unal bit(18), /* rel ptr to father block */ 9 51 2 son unal bit(18), /* rel ptr to son block */ 9 52 2 map unal, 9 53 3 first bit(18), /* rel ptr to first word of map */ 9 54 3 last bit(18), /* rel ptr to last word of map */ 9 55 2 entry_info unal bit(18), /* info about entry of quick block */ 9 56 2 header unal bit(18), /* rel ptr to symbol header */ 9 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 9 58* on start list with length >= 2**i */ 9 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 9 60* on list with length >= 2 ** i */ 9 61 2 owner unal bit(18); /* rel ptr to owner block */ 9 62 9 63 dcl 1 runtime_token aligned based, 9 64 2 next unal bit(18), /* rel ptr to next token */ 9 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 9 66 2 name, /* ACC */ 9 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 9 68 3 string unal char(n refer(runtime_token.size)); 9 69 9 70 dcl 1 encoded_value aligned based, 9 71 2 flag bit (2) unal, 9 72 2 code bit (4) unal, 9 73 2 n1 bit (6) unal, 9 74 2 n2 bit (6) unal, 9 75 2 n3 bit (18) unal; 9 76 9 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 800 801 10 1 /* BEGIN INCLUDE FILE pascal_gen_constants.incl.pl1 */ 10 2 10 3 dcl pascal_set bit (8 * 36) based unaligned; 10 4 10 5 dcl pascal_max_set_size int static options (constant) init (8 * 36); 10 6 10 7 dcl pascal_parameter_proc_size int static options (constant) init (72 * 3); 10 8 10 9 dcl (eoln_place_in_pascal_fsb init (27), 10 10 window_place_in_pascal_fsb init (38), 10 11 eof_place_in_pascal_fsb init (4)) fixed bin (35) int static options (constant); 10 12 10 13 /* END INCLUDE FILE pascal_gen_constants.incl.pl1 */ 802 803 11 1 /* BEGIN INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 11 2 11 3 /****^ HISTORY COMMENTS: 11 4* 1) change(86-09-15,JMAthane), approve(86-09-15,MCR7525), 11 5* audit(86-09-15,Martinson), install(86-11-12,MR12.0-1208): 11 6* Added size_is_encoded field in header. 11 7* END HISTORY COMMENTS */ 11 8 11 9 /* Written January 1983 by Melanie Weaver */ 11 10 /* Added size_is_encoded field in header May 85. JMAthane */ 11 11 11 12 dcl 1 pascal_symbol_node_header aligned based, 11 13 2 flags unaligned, /* indicate which pieces the node contains */ 11 14 3 version_flag bit (1) unaligned, /* always "0"b for post-version II PL/I format */ 11 15 3 aligned bit (1) unaligned, 11 16 3 packed bit (1) unaligned, 11 17 3 in_with_block bit (1) unaligned, 11 18 3 name_next bit (1) unaligned, 11 19 3 base_type_info bit (1) unaligned, 11 20 3 address bit (1) unaligned, 11 21 3 father_brother bit (1) unaligned, 11 22 3 son_level bit (1) unaligned, 11 23 3 father_type_successor bit (1) unaligned, 11 24 3 size bit (1) unaligned, 11 25 3 offset bit (1) unaligned, 11 26 3 subrange_limits bit (1) unaligned, 11 27 3 array_info bit (1) unaligned, 11 28 3 variant_info bit (1) unaligned, 11 29 3 size_is_encoded bit (1) unaligned, 11 30 3 pad bit (2) unaligned, 11 31 2 version fixed bin (17) unaligned, /* version of this node format */ 11 32 2 type fixed bin (17) unaligned, /* (extended) data type */ 11 33 2 type_offset fixed bin (18) unsigned unaligned; /* rel ptr to type node */ 11 34 11 35 dcl 1 pascal_name_next aligned based, 11 36 2 name fixed bin (18) unsigned unaligned, /* rel ptr to acc name */ 11 37 2 next_token fixed bin (18) unsigned unaligned; /* rel ptr to next of same class */ 11 38 11 39 dcl 1 pascal_base_type_info aligned based, 11 40 2 base_type fixed bin (17) unaligned, /* type of type */ 11 41 2 base_type_offset fixed bin (18) unsigned unaligned; 11 42 11 43 dcl 1 pascal_address aligned based, 11 44 2 location fixed bin (18) unsigned unaligned, /* location in storage class */ 11 45 2 class fixed bin (6) unsigned unaligned, /* storage class */ 11 46 2 use_digit bit (1) unaligned, 11 47 2 units bit (2) unaligned, /* addressing units */ 11 48 2 offset_is_encoded bit (1) unaligned, /* "1"b if pascal_offset is encoded */ 11 49 2 pad bit (8) unaligned; 11 50 11 51 dcl 1 pascal_father_brother aligned based, 11 52 2 father fixed bin (18) unsigned unaligned, /* rel ptr to father node */ 11 53 2 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother node */ 11 54 11 55 dcl 1 pascal_son_level aligned based, 11 56 2 son fixed bin (18) unsigned unaligned, /* rel ptr to son node */ 11 57 2 level fixed bin (6) unsigned unaligned, /* record level; also enum. type elt. */ 11 58 2 pad bit (12) unaligned; 11 59 11 60 dcl 1 pascal_father_type_successor aligned based, 11 61 2 father_type fixed bin (17) unaligned, 11 62 2 successor fixed bin (18) unsigned unaligned; 11 63 11 64 dcl pascal_size fixed bin (35) based; /* precision, string size, etc. */ 11 65 11 66 dcl pascal_offset fixed bin (35) based; /* offset from address */ 11 67 11 68 dcl 1 pascal_subrange_limits aligned based, 11 69 2 flags aligned, 11 70 3 lower_bound_is_encoded bit (1) unaligned, 11 71 3 upper_bound_is_encoded bit (1) unaligned, 11 72 3 pad bit (34) unaligned, 11 73 2 subrange_lower_bound 11 74 fixed bin (35), 11 75 2 subrange_upper_bound 11 76 fixed bin (35); 11 77 11 78 dcl 1 pascal_array_info aligned based, /* info about array subscripts */ 11 79 2 access_info aligned, 11 80 3 ndims fixed bin (6) unsigned unaligned, /* number of dimensions */ 11 81 3 use_digit fixed bin (1) unsigned unaligned, /* if "1"b and units are half words, 11 82* units are really digits */ 11 83 3 array_units fixed bin (2) unsigned unaligned, 11 84 3 virtual_origin_is_encoded 11 85 bit (1) unaligned, 11 86 3 pad bit (26) unaligned, 11 87 2 virtual_origin fixed bin (35), 11 88 2 bounds (nd refer (pascal_array_info.access_info.ndims)) 11 89 aligned, 11 90 3 lower fixed bin (35), 11 91 3 upper fixed bin (35), 11 92 3 multiplier fixed bin (35), 11 93 3 subscript_type fixed bin (17) unaligned, 11 94 3 subscript_type_offset 11 95 fixed bin (18) unsigned unaligned, 11 96 3 flags aligned, 11 97 4 lower_is_encoded 11 98 bit (1) unaligned, 11 99 4 upper_is_encoded 11 100 bit (1) unaligned, 11 101 4 multiplier_is_encoded 11 102 bit (1) unaligned, 11 103 4 pad bit (33) unaligned; 11 104 11 105 dcl 1 pascal_variant_info aligned based, /* info to locate a record's variants */ 11 106 2 number_of_variants 11 107 fixed bin (17) unaligned, 11 108 2 pad bit (18) unaligned, 11 109 2 first_value_in_set fixed bin (35) unaligned, /* value corresponding to the first bit in set stings */ 11 110 2 case (nvariants refer 11 111 (pascal_variant_info.number_of_variants)), 11 112 3 set_offset fixed bin (18) unsigned unaligned, /* bit string specifies cases; 11 113* set's base type is this node's type */ 11 114 3 brother fixed bin (18) unsigned unaligned; /* rel ptr to brother for this variant */ 11 115 11 116 dcl 1 pascal_encoded_value aligned based, /* extended encoded value format */ 11 117 2 code bit (6) unaligned, /* tells how to interpret the other fields */ 11 118 2 (n1, n2) bit (6) unaligned, 11 119 2 n3 fixed bin (18) unsigned unaligned; 11 120 11 121 dcl nvariants fixed bin (17); 11 122 dcl nd fixed bin (6) unsigned; 11 123 11 124 11 125 11 126 /* END INCLUDE FILE ... pascal_symbol_node.incl.pl1 */ 804 12 1 /* BEGIN INCLUDE FILE ... probe_lang_types.incl.pl1 12 2* 12 3* JRD 26 June 79 12 4* MBW 31 July 1981 to add algol68 */ 12 5 12 6 12 7 /****^ HISTORY COMMENTS: 12 8* 1) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 12 9* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 12 10* Added C Language type. 12 11* END HISTORY COMMENTS */ 12 12 12 13 12 14 /* Modified June 83 JMAthane to add PASCAL language type */ 12 15 /* Modified April 88 Hinatsu to add C language type */ 12 16 12 17 dcl (UNKNOWN_lang_type init (1), 12 18 OTHER_lang_type init (2), 12 19 PL1_lang_type init (3), 12 20 FORTRAN_lang_type init (4), 12 21 COBOL_lang_type init (5), 12 22 ALM_lang_type init (6), 12 23 ALGOL68_lang_type init (7), 12 24 PASCAL_lang_type init (8), 12 25 C_lang_type init (9)) fixed bin internal static options (constant); 12 26 12 27 dcl official_language_names (9) char (32) internal static options (constant) init 12 28 ("Unknown", "other", "PL/I", "FORTRAN", "COBOL", "ALM", "Algol 68", "Pascal", "C"); 12 29 12 30 dcl palatable_language_names (9) char (32) internal static options (constant) init 12 31 ("Unknown", "Other", "pl1", "fortran", "cobol", "alm", "algol68", "pascal", "c"); 12 32 12 33 /* END INCLUDE FILE ... probe_lang_types.incl.pl1 */ 805 806 end probe_builtins_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/88 1545.0 probe_builtins_.pl1 >spec>install>MR12.2-1210>probe_builtins_.pl1 784 1 10/27/88 1339.2 probe_info.incl.pl1 >ldd>include>probe_info.incl.pl1 786 2 11/26/79 1320.6 probe_source_info.incl.pl1 >ldd>include>probe_source_info.incl.pl1 788 3 11/02/83 1845.0 probe_seg_info.incl.pl1 >ldd>include>probe_seg_info.incl.pl1 790 4 11/11/88 1543.8 probe_references.incl.pl1 >spec>install>MR12.2-1210>probe_references.incl.pl1 792 5 11/12/86 1748.0 data_type_info_.incl.pl1 >ldd>include>data_type_info_.incl.pl1 794 6 10/26/88 1255.5 std_descriptor_types.incl.pl1 >ldd>include>std_descriptor_types.incl.pl1 796 7 07/11/79 1711.3 encoded_precision.incl.pl1 >ldd>include>encoded_precision.incl.pl1 798 8 11/01/79 1612.9 computational_data.incl.pl1 >ldd>include>computational_data.incl.pl1 800 9 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 802 10 04/19/84 0841.6 pascal_gen_constants.incl.pl1 >ldd>include>pascal_gen_constants.incl.pl1 804 11 11/12/86 1748.0 pascal_symbol_node.incl.pl1 >ldd>include>pascal_symbol_node.incl.pl1 805 12 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. C_lang_type constant fixed bin(17,0) initial dcl 12-17 ref 133 375 P_code parameter fixed bin(35,0) dcl 67 set ref 121* 127 144 147 154 163 170 219 233 242 249 277 284 291 298 305 312 319 326 345 367 P_probe_info_ptr parameter pointer dcl 67 ref 127 133 144 147 154 163 170 219 233 242 249 277 284 291 298 305 312 319 326 345 367 375 510 P_reference based structure level 1 dcl 73 P_refp parameter pointer dcl 67 ref 127 144 147 154 163 170 219 233 242 249 277 284 291 298 305 312 319 326 345 367 509 addr builtin function dcl 118 ref 212 215 274 655 676 676 676 676 707 724 724 724 724 addrel builtin function dcl 118 ref 182 246 364 406 410 426 438 465 address 000260 automatic pointer level 2 in structure "src_str" dcl 690 in procedure "get_num_arg" set ref 714* address 000216 automatic pointer level 2 in structure "tar_str" dcl 631 in procedure "get_enumerated_arg" set ref 655* address 000250 automatic pointer level 2 in structure "tar_str" dcl 689 in procedure "get_num_arg" set ref 707* address 000226 automatic pointer level 2 in structure "src_str" dcl 632 in procedure "get_enumerated_arg" set ref 662* address_ptr 4 based pointer level 2 in structure "sref" dcl 612 in procedure "get_ptr_arg" ref 619 address_ptr 4 based pointer level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" ref 141 182 183 187 226 758 address_ptr 4 based pointer level 2 in structure "sref" dcl 685 in procedure "get_num_arg" ref 714 address_ptr 4 based pointer level 2 in structure "sref" dcl 627 in procedure "get_enumerated_arg" ref 662 address_ptr 4 based pointer level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" set ref 182* 187* 212* 212 215* 215 545* 546 556* 557 566* 567 577* 578 588* 589 758* address_ptr 4 based pointer level 2 in structure "reference_node" dcl 4-16 in procedure "probe_builtins_" ref 354 354 363 assign_$computational_ 000026 constant entry external dcl 629 in procedure "get_enumerated_arg" ref 676 assign_$computational_ 000032 constant entry external dcl 687 in procedure "get_num_arg" ref 724 based_integer based fixed bin(35,0) dcl 92 set ref 183 226 230* 239* 281* 288* 302* 309* 316* 323* 364* 364 388* 545 556 577 588 based_ptr based pointer dcl 91 set ref 141* 151* 246* 257* 295* 354 363 566 619 baseno builtin function dcl 118 ref 288 baseptr builtin function dcl 118 ref 295 bit_array based bit(1) array packed unaligned dcl 87 in procedure "probe_builtins_" set ref 212 bit_array based bit(1) array packed unaligned dcl 265 in procedure "bitrel" set ref 274 bit_dtype constant fixed bin(17,0) initial dcl 6-25 ref 212 759 bit_string 0(11) 000024 external static bit(1) array level 2 packed packed unaligned dcl 5-23 ref 598 bits 0(24) based structure level 2 packed packed unaligned dcl 9-3 bo parameter fixed bin(35,0) dcl 264 ref 261 268 268 274 bounds 7 based structure array level 2 dcl 9-3 brother 1(18) based bit(18) level 2 packed packed unaligned dcl 9-3 ref 408 410 435 438 c_typeref_dtype constant fixed bin(17,0) initial dcl 6-25 ref 464 c_union_dtype constant fixed bin(17,0) initial dcl 6-25 ref 420 char_array based char(1) array packed unaligned dcl 89 set ref 215 char_dtype constant fixed bin(17,0) initial dcl 6-25 ref 467 641 char_string 0(10) 000024 external static bit(1) array level 2 packed packed unaligned dcl 5-23 ref 598 computational 000024 external static bit(1) array level 2 packed packed unaligned dcl 5-23 ref 701 computational_data based structure level 1 dcl 8-8 constant 116(01) based bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 73 in procedure "probe_builtins_" set ref 532* constant 116(01) based bit(1) level 3 in structure "subscript" packed packed unaligned dcl 78 in procedure "probe_builtins_" ref 133 cross_section 116(02) based bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 73 in procedure "probe_builtins_" ref 512 cross_section 116(02) based bit(1) level 3 in structure "ref" packed packed unaligned dcl 595 in procedure "require_string" ref 601 cross_section 116(02) based bit(1) level 3 in structure "sref" packed packed unaligned dcl 612 in procedure "get_ptr_arg" ref 617 cross_section 116(02) based bit(1) level 3 in structure "sref" packed packed unaligned dcl 685 in procedure "get_num_arg" ref 704 cross_section 116(02) based bit(1) level 3 in structure "subscript" packed packed unaligned dcl 78 in procedure "probe_builtins_" ref 756 cross_section 116(02) based bit(1) level 3 in structure "sref" packed packed unaligned dcl 627 in procedure "get_enumerated_arg" ref 652 data_length 000104 automatic fixed bin(35,0) dcl 82 set ref 183* 188* 206 210 226* 228* 230 data_type 2 000260 automatic fixed bin(17,0) level 2 in structure "src_str" dcl 690 in procedure "get_num_arg" set ref 715* data_type 2 000216 automatic fixed bin(17,0) level 2 in structure "tar_str" dcl 631 in procedure "get_enumerated_arg" set ref 656* data_type 2 000250 automatic fixed bin(17,0) level 2 in structure "tar_str" dcl 689 in procedure "get_num_arg" set ref 708* data_type 2 000226 automatic fixed bin(17,0) level 2 in structure "src_str" dcl 632 in procedure "get_enumerated_arg" set ref 663* 666* data_type_info_$info 000024 external static structure array level 1 dcl 5-23 descriptor 114 based fixed bin(35,0) level 2 dcl 73 set ref 190* 543* 554* 565* 575* 586* 761* divide builtin function dcl 118 ref 414 475 479 encoded_precision based structure level 1 dcl 7-8 eof_place_in_pascal_fsb constant fixed bin(35,0) initial dcl 10-9 ref 330 eoln_place_in_pascal_fsb constant fixed bin(35,0) initial dcl 10-9 ref 349 eprec 000270 automatic structure level 1 dcl 692 in procedure "get_num_arg" set ref 719* eprec 000236 automatic structure level 1 dcl 634 in procedure "get_enumerated_arg" set ref 671* expression_area based area(1024) dcl 1-95 ref 545 556 566 577 588 expression_area_ptr 63 based pointer level 3 packed packed unaligned dcl 1-18 ref 545 556 566 577 588 fixed builtin function dcl 118 ref 281 288 405 406 408 410 414 416 420 426 438 464 465 467 475 475 479 479 479 479 485 491 flags 116 based structure level 2 in structure "sref" dcl 685 in procedure "get_num_arg" flags 3 000260 automatic structure level 2 in structure "src_str" dcl 690 in procedure "get_num_arg" set ref 716* flags 116 based structure level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" flags 116 based structure level 2 in structure "ref" dcl 595 in procedure "require_string" flags 116 based structure level 2 in structure "sref" dcl 627 in procedure "get_enumerated_arg" flags 3 000226 automatic structure level 2 in structure "src_str" dcl 632 in procedure "get_enumerated_arg" set ref 668* flags 116 based structure level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" flags 3 000250 automatic structure level 2 in structure "tar_str" dcl 689 in procedure "get_num_arg" set ref 709* flags 3 000216 automatic structure level 2 in structure "tar_str" dcl 631 in procedure "get_enumerated_arg" set ref 657* flags 116 based structure level 2 in structure "sref" dcl 612 in procedure "get_ptr_arg" ftag 0(30) based bit(6) level 2 packed packed unaligned dcl 113 ref 354 get_size_in_bits_ 000016 constant entry external dcl 101 ref 767 get_size_in_bits_$structure 000020 constant entry external dcl 103 ref 764 i 000112 automatic fixed bin(35,0) dcl 111 in procedure "probe_builtins_" set ref 330* 349* 364 i 000121 automatic fixed bin(17,0) dcl 459 in procedure "get_size_of_one" set ref 492* 493 493* idx parameter fixed bin(17,0) dcl 611 in procedure "get_ptr_arg" set ref 609 615 615* 617 617* 619 idx parameter fixed bin(17,0) dcl 683 in procedure "get_num_arg" set ref 681 699 699 699 699 701 701* 704 704* 714 715 717 719 idx parameter fixed bin(17,0) dcl 625 in procedure "get_enumerated_arg" set ref 623 641 642 643 645 645 645 645 647 647 647 647* 652 652* 662 663 671 io_switches 66 based structure level 2 dcl 1-18 ioa_$ioa_switch 000010 constant entry external dcl 94 ref 206 language_type 21 based fixed bin(17,0) level 3 dcl 1-18 ref 133 375 lower 7 based fixed bin(35,0) array level 3 dcl 9-3 ref 493 max_args parameter fixed bin(17,0) dcl 507 set ref 504 525 526* 526 max_bytes 000103 automatic fixed bin(35,0) dcl 423 set ref 429* 433 433* 442 min_args parameter fixed bin(17,0) dcl 506 set ref 504 519 520* 520 n parameter fixed bin(17,0) dcl 743 set ref 741 744* n_subscripts 122 based fixed bin(17,0) level 3 in structure "subscript" dcl 78 in procedure "probe_builtins_" ref 489 n_subscripts 122 based fixed bin(17,0) level 3 in structure "P_reference" dcl 73 in procedure "probe_builtins_" ref 196 253 519 525 name 12 based varying char(256) level 2 in structure "reference_node" dcl 4-16 in procedure "probe_builtins_" set ref 357* name 12 based varying char(256) level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" set ref 391* 773* name 12 based varying char(256) level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" set ref 520* 526* 735* 744* 773* ndims 0(18) based bit(6) level 2 packed packed unaligned dcl 9-3 ref 491 no_of_dims 000117 automatic fixed bin(17,0) dcl 457 set ref 491* 492 no_of_elements 000120 automatic fixed bin(17,0) dcl 458 set ref 461* 493* 493 498 not_done 000104 automatic bit(1) packed unaligned dcl 424 set ref 428* 430 435* null builtin function dcl 118 ref 151 332 354 384 542 553 564 574 585 760 764 num parameter fixed bin(17,0) dcl 732 set ref 730 735* octal 116(04) based bit(1) level 3 packed packed unaligned dcl 73 set ref 160* offset 5 based fixed bin(35,0) level 2 dcl 9-3 ref 414 optional_info 117 based structure level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" optional_info 117 based structure level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" output_switch 70 based pointer level 3 dcl 1-18 set ref 206* p parameter pointer dcl 263 in procedure "bitrel" ref 261 274 p based structure level 1 packed packed unaligned dcl 113 in procedure "probe_builtins_" p1 000110 automatic pointer dcl 109 set ref 331* 332 335 340 350* 351 354 354 357 363* 363 364 packed 116 based bit(1) level 3 in structure "sref" packed packed unaligned dcl 685 in procedure "get_num_arg" ref 717 packed 116 based bit(1) level 3 in structure "subscript" packed packed unaligned dcl 78 in procedure "probe_builtins_" ref 767 packed 116 based bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 73 in procedure "probe_builtins_" set ref 192* 762* packed 0(25) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 9-3 in procedure "probe_builtins_" ref 468 packed 3 000226 automatic bit(1) level 3 in structure "src_str" packed packed unaligned dcl 632 in procedure "get_enumerated_arg" set ref 669* packed 3 000260 automatic bit(1) level 3 in structure "src_str" packed packed unaligned dcl 690 in procedure "get_num_arg" set ref 717* pascal_boolean_dtype constant fixed bin(17,0) initial dcl 6-132 ref 552 pascal_char_dtype constant fixed bin(17,0) initial dcl 6-132 ref 573 642 647 pascal_enumerated_type_element_dtype constant fixed bin(17,0) initial dcl 6-132 ref 647 pascal_enumerated_type_instance_dtype constant fixed bin(17,0) initial dcl 6-132 ref 647 pascal_record_file_type_dtype constant fixed bin(17,0) initial dcl 6-132 ref 335 pascal_symbol_node_header based structure level 1 dcl 11-12 pascal_text_file_dtype constant fixed bin(17,0) initial dcl 6-132 ref 340 351 pointer builtin function dcl 118 ref 257 257 pointer_dtype constant fixed bin(17,0) initial dcl 6-25 ref 485 563 615 prec 0(18) 000236 automatic fixed bin(18,0) level 2 in structure "eprec" packed packed unsigned unaligned dcl 634 in procedure "get_enumerated_arg" set ref 673 prec 0(18) 000270 automatic fixed bin(18,0) level 2 in structure "eprec" packed packed unsigned unaligned dcl 692 in procedure "get_num_arg" set ref 721 prec_or_length 4 000250 automatic fixed bin(24,0) level 2 in structure "tar_str" dcl 689 in procedure "get_num_arg" set ref 710* prec_or_length 4 000216 automatic fixed bin(24,0) level 2 in structure "tar_str" dcl 631 in procedure "get_enumerated_arg" set ref 658* prec_or_length 4 000226 automatic fixed bin(24,0) level 2 in structure "src_str" dcl 632 in procedure "get_enumerated_arg" set ref 673* prec_or_length 4 000260 automatic fixed bin(24,0) level 2 in structure "src_str" dcl 690 in procedure "get_num_arg" set ref 721* precision 115 based fixed bin(35,0) level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" set ref 198* 200 206 210* 544* 555* 576* 587* 764* 767* 771 precision 115 based fixed bin(35,0) level 2 in structure "sref" dcl 627 in procedure "get_enumerated_arg" set ref 643* 663 671 precision 115 based fixed bin(35,0) level 2 in structure "sref" dcl 685 in procedure "get_num_arg" ref 719 precision 115 based fixed bin(35,0) level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" ref 188 228 239 767 probe_area_info 56 based structure level 2 dcl 1-18 probe_error_$malfunction 000014 constant entry external dcl 98 ref 65 probe_error_$record 000012 constant entry external dcl 97 ref 137 202 270 357 377 391 513 520 526 735 744 773 probe_et_$recorded_message 000022 external static fixed bin(35,0) dcl 106 ref 121 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000116 automatic pointer dcl 1-86 set ref 137* 202* 206 270* 357* 377* 391* 510* 513* 520* 526* 545 556 566 577 588 735* 744* 773* probe_pascal_$real_type 000034 constant entry external dcl 696 in procedure "get_num_arg" ref 699 probe_pascal_$real_type 000030 constant entry external dcl 638 in procedure "get_enumerated_arg" ref 645 pseudo_var 116(07) based bit(1) level 3 in structure "subscript" packed packed unaligned dcl 78 in procedure "probe_builtins_" ref 133 pseudo_var 116(07) based bit(1) level 3 in structure "P_reference" packed packed unaligned dcl 73 in procedure "probe_builtins_" set ref 175* 754* ptr based pointer array level 2 dcl 76 ref 132 176 224 237 331 350 382 598 598 601 615 617 619 641 642 643 645 645 645 645 647 647 647 652 662 663 671 699 699 699 699 701 704 714 715 717 719 755 ptr_bitno 000106 automatic fixed bin(35,0) dcl 84 set ref 253* 255* 257* random_info 17 based structure level 2 dcl 1-18 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 6-25 ref 475 541 584 656 708 real_fix_bin_1_uns_dtype constant fixed bin(17,0) initial dcl 6-25 ref 479 666 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 6-25 ref 475 real_fix_bin_2_uns_dtype constant fixed bin(17,0) initial dcl 6-25 ref 479 663 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 6-25 ref 479 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 6-25 ref 479 ref based structure level 1 dcl 595 reference_node based structure level 1 dcl 4-16 refp 000100 automatic pointer dcl 74 set ref 132 160 175 176 180 182 186 187 190 190 192 196 198 200 206 210 212 212 212 215 215 224 237 253 331 350 382 509* 512 519 520 525 526 532 541 542 543 543 544 545 546 552 553 554 554 555 556 557 563 564 565 565 566 567 573 574 575 575 576 577 578 584 585 586 586 587 588 589 598 598 601 615 617 619 641 642 643 645 645 645 645 647 647 647 652 662 663 671 699 699 699 699 701 704 714 715 717 719 735 744 754 755 758 759 760 761 761 762 764 767 771 773 rel builtin function dcl 118 ref 281 rt_ptr 000114 automatic pointer dcl 371 in procedure "probe_builtins_" set ref 386* 387* rt_ptr 000114 automatic pointer dcl 455 in procedure "get_size_of_one" set ref 463* 464 465* 465 465 467 468 468 468 475 475 475 479 479 479 479 479 485 489 491 493 493 rt_ptr 000100 automatic pointer dcl 422 in begin block on line 421 set ref 426* 432 435 438* 438 438 rt_ptr_arg parameter pointer dcl 401 set ref 398 405 406* 406 406 408 410* 410 410 414 416 416* 420 426 426 446* runtime_symbol based structure level 1 dcl 9-3 scale 5 000226 automatic fixed bin(35,0) level 2 in structure "src_str" dcl 632 in procedure "get_enumerated_arg" set ref 674* scale 000270 automatic fixed bin(17,0) level 2 in structure "eprec" packed packed unaligned dcl 692 in procedure "get_num_arg" set ref 722 scale 000236 automatic fixed bin(17,0) level 2 in structure "eprec" packed packed unaligned dcl 634 in procedure "get_enumerated_arg" set ref 674 scale 5 000250 automatic fixed bin(35,0) level 2 in structure "tar_str" dcl 689 in procedure "get_num_arg" set ref 711* scale 5 000260 automatic fixed bin(35,0) level 2 in structure "src_str" dcl 690 in procedure "get_num_arg" set ref 722* scale 5 000216 automatic fixed bin(35,0) level 2 in structure "tar_str" dcl 631 in procedure "get_enumerated_arg" set ref 659* sidx parameter fixed bin(17,0) dcl 594 set ref 592 598 598 598* 601 601* simple 0(26) based bit(1) level 3 packed packed unaligned dcl 9-3 ref 468 489 size 4 based fixed bin(35,0) level 2 dcl 9-3 ref 468 475 479 size_of_unit 000116 automatic fixed bin(35,0) dcl 456 set ref 468* 473* 475* 479* 485* 498* 498 500 son 2(18) based bit(18) level 2 packed packed unaligned dcl 9-3 ref 406 426 465 source_info based structure level 1 dcl 2-5 src_str 000260 automatic structure level 1 dcl 690 in procedure "get_num_arg" set ref 724 724 src_str 000226 automatic structure level 1 dcl 632 in procedure "get_enumerated_arg" set ref 676 676 sref based structure level 1 dcl 612 in procedure "get_ptr_arg" sref based structure level 1 dcl 685 in procedure "get_num_arg" sref based structure level 1 dcl 627 in procedure "get_enumerated_arg" start 000105 automatic fixed bin(35,0) dcl 83 set ref 194* 206 210 212 215 structure_dtype constant fixed bin(17,0) initial dcl 6-25 ref 405 416 sub 000102 automatic pointer dcl 81 set ref 132* 133 133 133 141 176* 178 180 182 183 186 187 188 224* 226 226 228 237* 239 382* 384 386 391 489 755* 756 758 764 764* 767 767 767 773 sub_refs based structure level 1 dcl 76 subcom parameter bit(1) packed unaligned dcl 453 ref 449 489 subcomponent parameter bit(1) packed unaligned dcl 403 set ref 398 409* 416* 432* 446* subscript based structure level 1 dcl 78 subscript_reference_ptrs based structure level 1 dcl 4-69 subscript_refs_ptr 124 based pointer level 2 packed packed unaligned dcl 73 ref 132 176 224 237 331 350 382 598 598 601 615 617 619 641 642 643 645 645 645 645 647 647 647 652 662 663 671 699 699 699 699 701 704 714 715 717 719 755 sym_ptr parameter pointer dcl 452 ref 449 463 symbol_ptr based pointer level 2 dcl 78 ref 384 386 764 t_b 000102 automatic fixed bin(35,0) dcl 423 set ref 431* 432* 433 433 tar_str 000250 automatic structure level 1 dcl 689 in procedure "get_num_arg" set ref 724 724 tar_str 000216 automatic structure level 1 dcl 631 in procedure "get_enumerated_arg" set ref 676 676 total_bytes parameter fixed bin(35,0) dcl 402 in procedure "get_the_size" set ref 398 414* 416* 442* 442 446* 446 total_bytes 000113 automatic fixed bin(35,0) dcl 370 in procedure "probe_builtins_" set ref 385* 387* 388 type 113 based fixed bin(35,0) level 2 in structure "ref" dcl 595 in procedure "require_string" ref 598 598 type 113 based fixed bin(35,0) level 2 in structure "sref" dcl 612 in procedure "get_ptr_arg" ref 615 type 1 based fixed bin(17,0) level 2 in structure "pascal_symbol_node_header" packed packed unaligned dcl 11-12 in procedure "probe_builtins_" ref 335 type 113 based fixed bin(35,0) level 2 in structure "sref" dcl 627 in procedure "get_enumerated_arg" set ref 641 642* 645* 645* 647 647 647 type 113 based fixed bin(35,0) level 2 in structure "reference_node" dcl 4-16 in procedure "probe_builtins_" ref 340 351 type 113 based fixed bin(35,0) level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" set ref 180* 186* 190 212 541* 543 552* 554 563* 565 573* 575 584* 586 759* 761 type 113 based fixed bin(35,0) level 2 in structure "subscript" dcl 78 in procedure "probe_builtins_" ref 133 178 180 186 226 767 type 0(06) based bit(6) level 2 in structure "runtime_symbol" packed packed unaligned dcl 9-3 in procedure "probe_builtins_" ref 405 416 420 464 467 475 475 479 479 479 479 485 type 113 based fixed bin(35,0) level 2 in structure "sref" dcl 685 in procedure "get_num_arg" set ref 699* 699* 701 715 type_ptr 2 based pointer level 2 in structure "sref" dcl 685 in procedure "get_num_arg" set ref 699* 699* type_ptr 2 based pointer level 2 in structure "reference_node" dcl 4-16 in procedure "probe_builtins_" ref 332 335 type_ptr 2 based pointer level 2 in structure "sref" dcl 627 in procedure "get_enumerated_arg" set ref 645* 645* type_ptr 2 based pointer level 2 in structure "P_reference" dcl 73 in procedure "probe_builtins_" set ref 542* 553* 564* 574* 585* 760* unspec builtin function dcl 636 in procedure "get_enumerated_arg" set ref 671* 671 unspec builtin function dcl 694 in procedure "get_num_arg" set ref 719* 719 upper 10 based fixed bin(35,0) array level 3 dcl 9-3 ref 493 val 000246 automatic fixed bin(35,0) dcl 684 in procedure "get_num_arg" set ref 707 725 val 000214 automatic fixed bin(35,0) dcl 626 in procedure "get_enumerated_arg" set ref 655 677 varying 0(12) 000024 external static bit(1) array level 2 packed packed unaligned dcl 5-23 ref 178 226 what parameter char dcl 733 set ref 730 735* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALGOL68_lang_type internal static fixed bin(17,0) initial dcl 12-17 ALM_lang_type internal static fixed bin(17,0) initial dcl 12-17 COBOL_lang_type internal static fixed bin(17,0) initial dcl 12-17 FORTRAN_lang_type internal static fixed bin(17,0) initial dcl 12-17 OTHER_lang_type internal static fixed bin(17,0) initial dcl 12-17 PASCAL_lang_type internal static fixed bin(17,0) initial dcl 12-17 PL1_lang_type internal static fixed bin(17,0) initial dcl 12-17 UNKNOWN_lang_type internal static fixed bin(17,0) initial dcl 12-17 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 6-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 6-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 6-25 area_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 6-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_2_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 current_source based structure level 1 dcl 2-13 data_type_info_$max_decimal_precision external static fixed bin(17,0) dcl 5-48 data_type_info_$max_fixed_binary_precision external static fixed bin(17,0) dcl 5-50 data_type_info_$max_float_binary_precision external static fixed bin(17,0) dcl 5-49 data_type_info_$ninebit_digit_chars external static char(10) packed unaligned dcl 5-45 data_type_info_$ninebit_overpunched_sign_chars external static char(22) packed unaligned dcl 5-46 data_type_info_$ninebit_sign_chars external static char(2) packed unaligned dcl 5-44 data_type_info_$version_number external static fixed bin(17,0) dcl 5-20 data_type_info_this_version internal static fixed bin(17,0) initial dcl 5-21 encoded_value based structure level 1 dcl 9-70 entry_dtype internal static fixed bin(17,0) initial dcl 6-25 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 file_dtype internal static fixed bin(17,0) initial dcl 6-25 ft_char_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 6-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 6-96 initial_source based structure level 1 dcl 2-14 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 label_dtype internal static fixed bin(17,0) initial dcl 6-25 nd automatic fixed bin(6,0) unsigned dcl 11-122 nvariants automatic fixed bin(17,0) dcl 11-121 official_language_names internal static char(32) initial array packed unaligned dcl 12-27 offset_dtype internal static fixed bin(17,0) initial dcl 6-25 palatable_language_names internal static char(32) initial array packed unaligned dcl 12-30 pascal_address based structure level 1 dcl 11-43 pascal_array_info based structure level 1 dcl 11-78 pascal_base_type_info based structure level 1 dcl 11-39 pascal_encoded_value based structure level 1 dcl 11-116 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_father_brother based structure level 1 dcl 11-51 pascal_father_type_successor based structure level 1 dcl 11-60 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_max_set_size internal static fixed bin(17,0) initial dcl 10-5 pascal_name_next based structure level 1 dcl 11-35 pascal_offset based fixed bin(35,0) dcl 11-66 pascal_parameter_proc_size internal static fixed bin(17,0) initial dcl 10-7 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_set based bit(288) packed unaligned dcl 10-3 pascal_set_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_size based fixed bin(35,0) dcl 11-64 pascal_son_level based structure level 1 dcl 11-55 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_subrange_limits based structure level 1 dcl 11-68 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 6-132 pascal_variant_info based structure level 1 dcl 11-105 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 6-125 probe_area based area(1024) dcl 1-93 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 real_fix_dec_4bit_bytealigned_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 6-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_bytealigned_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_9bit_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 6-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 6-25 reference_arg_list based structure level 1 dcl 4-59 reference_subscripts based structure level 1 dcl 4-64 runtime_block based structure level 1 dcl 9-38 runtime_bound based structure level 1 unaligned dcl 9-33 runtime_token based structure level 1 dcl 9-63 scratch_area based area(1024) dcl 1-92 seg_info based structure level 1 dcl 3-9 seg_info_nfiles automatic fixed bin(17,0) dcl 3-47 varying_bit_dtype internal static fixed bin(17,0) initial dcl 6-25 varying_char_dtype internal static fixed bin(17,0) initial dcl 6-25 window_place_in_pascal_fsb internal static fixed bin(35,0) initial dcl 10-9 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. EXIT_HERE 000324 constant label dcl 123 ref 142 152 161 168 217 231 240 247 259 282 289 296 303 310 317 324 365 396 RECORDED_MESSAGE 000320 constant label dcl 121 ref 139 204 272 360 379 394 516 523 529 738 747 776 bitrel 001734 constant entry internal dcl 261 ref 257 get_enumerated_arg 003115 constant entry internal dcl 623 ref 323 get_num_arg 003330 constant entry internal dcl 681 ref 194 198 246 253 257 257 295 316 get_ptr_arg 003034 constant entry internal dcl 609 ref 246 257 257 281 288 get_size_of_one 002204 constant entry internal dcl 449 ref 446 get_the_size 001777 constant entry internal dcl 398 ref 387 416 432 integer_bif 002732 constant entry internal dcl 581 ref 230 239 281 288 323 iwanta 003522 constant entry internal dcl 730 ref 335 340 351 598 615 647 701 join 001517 constant label dcl 354 ref 343 nocross 003600 constant entry internal dcl 741 ref 601 617 652 704 756 octunspecom 003642 constant entry internal dcl 750 ref 159 167 pascal_boolean_bif 002627 constant entry internal dcl 549 ref 302 309 364 pascal_char_bif 002703 constant entry internal dcl 570 ref 316 pointer_bif 002656 constant entry internal dcl 560 ref 141 151 246 257 295 probe_builtins_ 000307 constant entry external dcl 35 probe_builtins_$addr_builtin 000331 constant entry external dcl 127 probe_builtins_$addrel_builtin 001045 constant entry external dcl 242 probe_builtins_$baseptr_builtin 001235 constant entry external dcl 291 probe_builtins_$length_builtin 000746 constant entry external dcl 219 probe_builtins_$maxlength_builtin 001013 constant entry external dcl 233 probe_builtins_$null_builtin 000434 constant entry external dcl 147 probe_builtins_$octal_builtin 000454 constant entry external dcl 154 probe_builtins_$pascal_chr_builtin 001323 constant entry external dcl 312 probe_builtins_$pascal_eof_builtin 001405 constant entry external dcl 326 probe_builtins_$pascal_eoln_builtin 001463 constant entry external dcl 345 probe_builtins_$pascal_false_builtin 001264 constant entry external dcl 298 probe_builtins_$pascal_nil_builtin 000424 constant entry external dcl 144 probe_builtins_$pascal_ord_builtin 001354 constant entry external dcl 319 probe_builtins_$pascal_true_builtin 001303 constant entry external dcl 305 probe_builtins_$ptr_builtin 001100 constant entry external dcl 249 probe_builtins_$rel_builtin 001160 constant entry external dcl 277 probe_builtins_$segno_builtin 001206 constant entry external dcl 284 probe_builtins_$sizeof_builtin 001577 constant entry external dcl 367 probe_builtins_$substr_builtin 000513 constant entry external dcl 170 probe_builtins_$unspec_builtin 000475 constant entry external dcl 163 require_string 002761 constant entry internal dcl 592 ref 177 225 238 setup 002410 constant entry internal dcl 504 ref 130 150 157 166 173 222 236 245 252 280 287 294 301 308 315 322 329 348 373 sizeof_bif 002600 constant entry internal dcl 538 ref 388 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5124 5162 4157 5134 Length 5724 4157 36 526 744 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_builtins_ 568 external procedure is an external procedure. bitrel internal procedure shares stack frame of external procedure probe_builtins_. get_the_size 112 internal procedure calls itself recursively. begin block on line 421 begin block shares stack frame of internal procedure get_the_size. get_size_of_one internal procedure shares stack frame of internal procedure get_the_size. setup internal procedure shares stack frame of external procedure probe_builtins_. sizeof_bif internal procedure shares stack frame of external procedure probe_builtins_. pascal_boolean_bif internal procedure shares stack frame of external procedure probe_builtins_. pointer_bif internal procedure shares stack frame of external procedure probe_builtins_. pascal_char_bif internal procedure shares stack frame of external procedure probe_builtins_. integer_bif internal procedure shares stack frame of external procedure probe_builtins_. require_string internal procedure shares stack frame of external procedure probe_builtins_. get_ptr_arg internal procedure shares stack frame of external procedure probe_builtins_. get_enumerated_arg internal procedure shares stack frame of external procedure probe_builtins_. get_num_arg internal procedure shares stack frame of external procedure probe_builtins_. iwanta internal procedure shares stack frame of external procedure probe_builtins_. nocross internal procedure shares stack frame of external procedure probe_builtins_. octunspecom internal procedure shares stack frame of external procedure probe_builtins_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME get_the_size 000100 rt_ptr begin block on line 421 000102 t_b begin block on line 421 000103 max_bytes begin block on line 421 000104 not_done begin block on line 421 000114 rt_ptr get_size_of_one 000116 size_of_unit get_size_of_one 000117 no_of_dims get_size_of_one 000120 no_of_elements get_size_of_one 000121 i get_size_of_one probe_builtins_ 000100 refp probe_builtins_ 000102 sub probe_builtins_ 000104 data_length probe_builtins_ 000105 start probe_builtins_ 000106 ptr_bitno probe_builtins_ 000110 p1 probe_builtins_ 000112 i probe_builtins_ 000113 total_bytes probe_builtins_ 000114 rt_ptr probe_builtins_ 000116 probe_info_ptr probe_builtins_ 000214 val get_enumerated_arg 000216 tar_str get_enumerated_arg 000226 src_str get_enumerated_arg 000236 eprec get_enumerated_arg 000246 val get_num_arg 000250 tar_str get_num_arg 000260 src_str get_num_arg 000270 eprec get_num_arg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 ext_entry int_entry divide_fx3 op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_$computational_ assign_$computational_ get_size_in_bits_ get_size_in_bits_$structure ioa_$ioa_switch probe_error_$malfunction probe_error_$record probe_pascal_$real_type probe_pascal_$real_type THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. data_type_info_$info probe_et_$recorded_message LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 35 000306 65 000314 121 000320 123 000324 127 000325 130 000336 132 000343 133 000347 137 000366 139 000413 141 000414 142 000421 144 000422 147 000431 150 000441 151 000445 152 000451 154 000452 157 000461 159 000466 160 000467 161 000472 163 000473 166 000502 167 000507 168 000510 170 000511 173 000520 175 000526 176 000531 177 000534 178 000540 180 000547 182 000556 183 000561 184 000563 186 000564 187 000567 188 000571 190 000573 192 000577 194 000601 196 000605 198 000611 200 000623 202 000626 204 000653 206 000654 209 000712 210 000713 212 000722 215 000735 217 000743 219 000744 222 000753 224 000760 225 000764 226 000770 228 001002 230 001004 231 001010 233 001011 236 001020 237 001025 238 001031 239 001035 240 001042 242 001043 245 001052 246 001057 247 001075 249 001076 252 001105 253 001113 255 001124 257 001125 259 001155 277 001156 280 001165 281 001172 282 001203 284 001204 287 001213 288 001220 289 001232 291 001233 294 001242 295 001247 296 001261 298 001262 301 001271 302 001275 303 001300 305 001301 308 001310 309 001314 310 001320 312 001321 315 001330 316 001335 317 001351 319 001352 322 001361 323 001366 324 001402 326 001403 329 001412 330 001417 331 001421 332 001425 335 001431 339 001445 340 001446 343 001460 345 001461 348 001470 349 001475 350 001477 351 001503 354 001517 357 001531 360 001562 363 001563 364 001565 365 001574 367 001575 373 001604 375 001611 377 001617 379 001644 382 001645 384 001651 385 001655 386 001656 387 001660 388 001674 389 001700 391 001701 394 001732 396 001733 261 001734 268 001736 270 001743 272 001770 274 001771 398 001776 405 002004 406 002016 408 002023 409 002032 410 002036 413 002043 414 002044 416 002047 420 002072 426 002104 428 002113 429 002115 430 002116 431 002120 432 002121 433 002137 435 002143 438 002152 441 002155 442 002156 444 002163 446 002164 447 002203 449 002204 461 002206 463 002210 464 002213 465 002224 466 002231 467 002232 468 002236 473 002253 474 002255 475 002256 479 002277 485 002324 489 002332 491 002347 492 002353 493 002361 497 002377 498 002401 500 002404 504 002410 509 002412 510 002416 512 002421 513 002424 516 002451 519 002452 520 002455 523 002523 525 002524 526 002526 529 002574 532 002575 533 002577 538 002600 541 002602 542 002605 543 002607 544 002612 545 002614 546 002624 549 002627 552 002631 553 002634 554 002636 555 002641 556 002643 557 002653 560 002656 563 002660 564 002663 565 002665 566 002670 567 002700 570 002703 573 002705 574 002710 575 002712 576 002715 577 002717 578 002727 581 002732 584 002734 585 002737 586 002741 587 002744 588 002746 589 002756 592 002761 598 002763 601 003014 603 003033 609 003034 615 003036 617 003064 619 003103 623 003115 641 003117 642 003131 643 003133 645 003135 647 003152 652 003207 655 003226 656 003230 657 003232 658 003236 659 003240 662 003241 663 003251 666 003261 668 003263 669 003267 671 003271 673 003276 674 003301 676 003304 677 003324 681 003330 699 003332 701 003354 704 003406 707 003425 708 003427 709 003431 710 003435 711 003437 714 003440 715 003450 716 003453 717 003457 719 003466 721 003470 722 003473 724 003476 725 003516 730 003522 735 003533 738 003577 741 003600 744 003602 747 003641 750 003642 754 003643 755 003646 756 003651 758 003660 759 003664 760 003666 761 003670 762 003673 764 003675 767 003716 771 003746 773 003751 776 004006 778 004007 ----------------------------------------------------------- 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