COMPILATION LISTING OF SEGMENT mst Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/24/88 1542.4 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Procedure to create symbol table for PL/I 12* 13* Initial Version: 3 June 1970 by BLW 14* Modified: 20 May 1971 by BLW 15* Modified: 10 March 1972 by BLW for Version II 16* Modified: 3 October 1972 by BLW 17* Modified: 21 January 1973 by BLW for controlled 18* Modified: 23 October 1973 by BLW for pictures 19* Modified: 13 October 1975 by RAB to fix 1430 20* Modified: 23 August 1976 by RAB to fix 1516 21* Modified: 10 November 1976 by RAB to fix 1548 22* Modified: 18 July 1977 to diagnose over-large separation between declarations of a var 23* Modified: 17 July 1978 for unsigned binary by PCK 24* Modified: 6 September 1978 by RAB to fix 1785 25* Modified: 27 September 1978 by RAB to straighten out filling in the data_type field. 26* Modified: 23 January 1979 by DS to fix bug 1817 27* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal. 28* Modified: 25 March 1980 by M. N. Davidoff for new sym_sort_alphabetic calling sequence that is independent of 29* pl1_symbol_print. 30* Modified: 830509 BIM for symbol.explicit_packed. 31**/ 32 /* format: style3 */ 33 mst$block_nodes: 34 proc (pt, father) returns (fixed bin (18)); 35 36 dcl pt ptr, /* points at block node */ 37 father fixed bin (18); /* symbol location of father */ 38 39 dcl ( 40 cg_static_$sym_base, 41 cg_static_$sym_reloc_base, 42 cg_static_$cur_block, 43 cg_static_$root 44 ) ptr ext, 45 cg_static_$table_option 46 bit (1) ext, 47 cg_static_$compiler_name 48 char (12) varying ext, 49 ( 50 cg_static_$cur_level, 51 cg_static_$sym_pos, 52 cg_static_$sym_origin 53 ) fixed bin ext; 54 55 dcl (p, p1, p2, bp, q, prev, sym_ptr, srp, cb, ref) 56 ptr, 57 (base_list, offset_list, block_list, quick_list) 58 ptr int static, 59 vec (0:5) fixed bin (18) int static, 60 (max_n, min_n) fixed bin int static, 61 (sym_pos, sym_loc, prev_loc, i, k, j, jstart, delta, units) 62 fixed bin (18), 63 co fixed bin (31), 64 lgth (0:6) fixed bin (16) int static init (1, 2, 4, 8, 16, 32, 64); 65 dcl get_data bit (1) aligned; 66 dcl (n, dtype, inc) fixed bin (18), 67 next_offset fixed bin (14), 68 class fixed bin (4); 69 70 dcl max_token_length fixed bin int static init (256), 71 /* expected max length */ 72 1 tokens (256 /* max_token_length */) int static, 73 2 first unal bit (18), /* offset of first token with this length */ 74 2 last unal bit (18); /* offset of last token with this length */ 75 76 dcl (addr, addrel, bit, divide, fixed, max, min, null, rel, string, substr, subtract) 77 builtin; 78 79 dcl mst$block_nodes entry (ptr, fixed bin (18)) returns (fixed bin (18)), 80 mst$data_nodes entry (ptr, fixed bin (18)) returns (fixed bin (18)); 81 dcl sym_sort_alphabetic$by_size 82 entry (ptr, fixed bin); 83 dcl create_list entry (fixed bin) returns (ptr), 84 e_v entry (ptr, fixed bin (35), ptr, fixed bin (31), fixed bin) returns (bit (36) aligned), 85 error entry (fixed bin, ptr, ptr); 86 87 dcl ( 88 ext_entry_in_type init (26), 89 ext_entry_out_type init (27), 90 int_entry_type init (25), 91 picture_type init (63) 92 ) fixed bin static; 93 94 dcl reloc (0:9) bit (36) aligned based; 95 96 dcl 1 acc aligned based, 97 2 count unal bit (9), 98 2 string unal char (n); 99 100 dcl 1 record based, 101 2 next ptr, 102 2 ptr ptr, /* points at symbol for ptr base or offset area */ 103 2 sym_loc fixed bin; /* location of symbol node */ 104 1 1 /* BEGIN INCLUDE FILE ... pl1_tree_areas.incl.pl1 */ 1 2 1 3 /* format: style3 */ 1 4 dcl tree_area area based (pl1_stat_$tree_area_ptr); 1 5 dcl xeq_tree_area area based (pl1_stat_$xeq_tree_area_ptr); 1 6 1 7 dcl pl1_stat_$tree_area_ptr 1 8 ptr ext static, 1 9 pl1_stat_$xeq_tree_area_ptr 1 10 ptr ext static; 1 11 1 12 /* END INCLUDE FILE ... op_codes.incl.pl1 */ 105 2 1 dcl pl1_stat_$token_list_ptr ptr external static; /* pointer to token list */ 2 2 dcl token_list(token_list_length) ptr based(token_list_pointer); 2 3 dcl token_list_pointer ptr initial(pl1_stat_$token_list_ptr); /* for efficiency only */ 2 4 dcl token_list_length fixed(15) internal static initial(3000) options(constant); 2 5 2 6 dcl 1 pl1_stat_$statement_id external static, 2 7 2 file_number bit(8), 2 8 2 line_number bit(14), 2 9 2 statement_number bit(5); 2 10 2 11 dcl 1 t_table based(token_list(k)) aligned, 2 12 2 node_type bit(9) unaligned, 2 13 2 type bit(9) unaligned, 2 14 2 loc bit(18) unaligned, 2 15 2 declaration ptr unaligned, 2 16 2 next ptr unaligned, 2 17 2 size fixed(9), 2 18 2 string char(n refer(t_table.size)); 106 3 1 /* BEGIN INCLUDE FILE ... block.incl.pl1 */ 3 2 /* Modified 22 Ocober 1980 by M. N. Davidoff to increase max block.number to 511 */ 3 3 /* format: style3,idind30 */ 3 4 3 5 declare 1 block aligned based, 3 6 2 node_type bit (9) unaligned, 3 7 2 source_id structure unaligned, 3 8 3 file_number bit (8), 3 9 3 line_number bit (14), 3 10 3 statement_number bit (5), 3 11 2 father ptr unaligned, 3 12 2 brother ptr unaligned, 3 13 2 son ptr unaligned, 3 14 2 declaration ptr unaligned, 3 15 2 end_declaration ptr unaligned, 3 16 2 default ptr unaligned, 3 17 2 end_default ptr unaligned, 3 18 2 context ptr unaligned, 3 19 2 prologue ptr unaligned, 3 20 2 end_prologue ptr unaligned, 3 21 2 main ptr unaligned, 3 22 2 end_main ptr unaligned, 3 23 2 return_values ptr unaligned, 3 24 2 return_count ptr unaligned, 3 25 2 plio_ps ptr unaligned, 3 26 2 plio_fa ptr unaligned, 3 27 2 plio_ffsb ptr unaligned, 3 28 2 plio_ssl ptr unaligned, 3 29 2 plio_fab2 ptr unaligned, 3 30 2 block_type bit (9) unaligned, 3 31 2 prefix bit (12) unaligned, 3 32 2 like_attribute bit (1) unaligned, 3 33 2 no_stack bit (1) unaligned, 3 34 2 get_data bit (1) unaligned, 3 35 2 flush_at_call bit (1) unaligned, 3 36 2 processed bit (1) unaligned, 3 37 2 text_displayed bit (1) unaligned, 3 38 2 number fixed bin (9) unsigned unaligned, 3 39 2 free_temps dimension (3) ptr, /* these fields are used by the code generator */ 3 40 2 temp_list ptr, 3 41 2 entry_list ptr, 3 42 2 o_and_s ptr, 3 43 2 why_nonquick aligned, 3 44 3 auto_adjustable_storage bit (1) unaligned, 3 45 3 returns_star_extents bit (1) unaligned, 3 46 3 stack_extended_by_args bit (1) unaligned, 3 47 3 invoked_by_format bit (1) unaligned, 3 48 3 format_statement bit (1) unaligned, 3 49 3 io_statements bit (1) unaligned, 3 50 3 assigned_to_entry_var bit (1) unaligned, 3 51 3 condition_statements bit (1) unaligned, 3 52 3 no_owner bit (1) unaligned, 3 53 3 recursive_call bit (1) unaligned, 3 54 3 options_non_quick bit (1) unaligned, 3 55 3 options_variable bit (1) unaligned, 3 56 3 never_referenced bit (1) unaligned, 3 57 3 pad_nonquick bit (5) unaligned, 3 58 2 prologue_flag bit (1) unaligned, 3 59 2 options_main bit (1) unaligned, 3 60 2 pad bit (16) unaligned, 3 61 2 number_of_entries fixed bin (17), 3 62 2 level fixed bin (17), 3 63 2 last_auto_loc fixed bin (17), 3 64 2 symbol_block fixed bin (17), 3 65 2 entry_info fixed bin (18), 3 66 2 enter structure unaligned, 3 67 3 start fixed bin (17), 3 68 3 end fixed bin (17), 3 69 2 leave structure unaligned, 3 70 3 start fixed bin (17), 3 71 3 end fixed bin (17), 3 72 2 owner ptr; 3 73 3 74 declare max_block_number fixed bin internal static options (constant) initial (511); 3 75 3 76 /* END INCLUDE FILE ... block.incl.pl1 */ 107 4 1 /* BEGIN INCLUDE FILE ... list.incl.pl1 */ 4 2 4 3 /* Modified 26 June 81 by EBush to add max_list_elements */ 4 4 4 5 4 6 dcl 1 list based aligned, 4 7 2 node_type bit(9) unaligned, 4 8 2 reserved bit(12) unaligned, 4 9 2 number fixed(14) unaligned, 4 10 2 element dimension(n refer(list.number)) ptr unaligned; 4 11 4 12 dcl max_list_elements fixed bin(17) internal static options (constant) 4 13 init(16383); 4 14 4 15 /* END INCLUDE FILE ... list.incl.pl1 */ 108 5 1 /* BEGIN INCLUDE FILE ... operator.incl.pl1 */ 5 2 5 3 /* Modified: 2 Apr 1980 by PCK to add max_number_of_operands */ 5 4 5 5 /* format: style3 */ 5 6 dcl 1 operator based aligned, 5 7 2 node_type bit (9) unaligned, 5 8 2 op_code bit (9) unaligned, 5 9 2 shared bit (1) unaligned, 5 10 2 processed bit (1) unaligned, 5 11 2 optimized bit (1) unaligned, 5 12 2 number fixed (14) unaligned, 5 13 2 operand dimension (n refer (operator.number)) ptr unaligned; 5 14 5 15 dcl max_number_of_operands 5 16 fixed bin (15) int static options (constant) initial (32767); 5 17 5 18 /* END INCLUDE FILE ... operator.incl.pl1 */ 109 6 1 /* *********************************************************** 6 2* * * 6 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6 4* * * 6 5* *********************************************************** */ 6 6 /* BEGIN INCLUDE FILE ... statement.incl.pl1 */ 6 7 /* Internal interface of the PL/I compiler */ 6 8 6 9 dcl 1 statement based aligned, 6 10 2 node_type bit(9) unaligned, 6 11 2 source_id structure unaligned, 6 12 3 file_number bit(8), 6 13 3 line_number bit(14), 6 14 3 statement_number bit(5), 6 15 2 next ptr unaligned, 6 16 2 back ptr unaligned, 6 17 2 root ptr unaligned, 6 18 2 labels ptr unaligned, 6 19 2 reference_list ptr unaligned, 6 20 2 state_list ptr unaligned, 6 21 2 reference_count fixed(17) unaligned, 6 22 2 ref_count_copy fixed(17) unaligned, 6 23 2 object structure unaligned, 6 24 3 start fixed(17), 6 25 3 finish fixed(17), 6 26 2 source structure unaligned, 6 27 3 segment fixed(11), 6 28 3 start fixed(23), 6 29 3 length fixed(11), 6 30 2 prefix bit(12) unaligned, 6 31 2 optimized bit(1) unaligned, 6 32 2 free_temps bit(1) unaligned, 6 33 2 LHS_in_RHS bit(1) unaligned, 6 34 2 statement_type bit(9) unaligned, 6 35 2 bits structure unaligned, 6 36 3 processed bit(1) unaligned, 6 37 3 put_in_profile bit(1) unaligned, 6 38 3 generated bit(1) unaligned, 6 39 3 snap bit(1) unaligned, 6 40 3 system bit(1) unaligned, 6 41 3 irreducible bit(1) unaligned, 6 42 3 checked bit(1) unaligned, 6 43 3 save_temps bit(1) unaligned, 6 44 3 suppress_warnings bit(1) unaligned, 6 45 3 force_nonquick bit(1) unaligned, 6 46 3 expanded_by_name bit(1) unaligned, 6 47 3 begins_loop bit(1) unaligned, 6 48 3 pad bit(24) unaligned; 6 49 6 50 /* END INCLUDE FILE ... statement.incl.pl1 */ 110 7 1 /* BEGIN INCLUDE FILE ... token.incl.pl1 */ 7 2 7 3 dcl 1 token based aligned, 7 4 2 node_type bit(9) unaligned, 7 5 2 type bit(9) unaligned, 7 6 2 loc bit(18) unaligned, /* symtab offset for identifiers, "p" flag for constants */ 7 7 2 declaration ptr unaligned, 7 8 2 next ptr unaligned, 7 9 2 size fixed(9), 7 10 2 string char(n refer(token.size)); 7 11 7 12 /* END INCLUDE FILE ... token.incl.pl1 */ 111 8 1 dcl 1 label based aligned, 8 2 2 node_type bit(9) unaligned, 8 3 2 source_id structure unaligned, 8 4 3 file_number bit(8), 8 5 3 line_number bit(14), 8 6 3 statement_number bit(5), 8 7 2 location fixed(17) unaligned, 8 8 2 allocated bit(1) unaligned, 8 9 2 dcl_type bit(3) unaligned, 8 10 2 reserved bit(29) unaligned, 8 11 2 array bit(1) unaligned, 8 12 2 used_as_format bit(1) unaligned, 8 13 2 used_in_goto bit(1) unaligned, 8 14 2 symbol_table bit(18) unaligned, 8 15 2 low_bound fixed(17) unaligned, 8 16 2 high_bound fixed(17) unaligned, 8 17 2 block_node ptr unaligned, 8 18 2 token ptr unaligned, 8 19 2 next ptr unaligned, 8 20 2 multi_use ptr unaligned, 8 21 2 cross_reference ptr unaligned, 8 22 2 statement ptr unaligned; 112 9 1 /* BEGIN INCLUDE FILE ... symbol.incl.pl1 */ 9 2 9 3 dcl 1 symbol based aligned, 9 4 2 node_type bit(9) unal, 9 5 2 source_id structure unal, 9 6 3 file_number bit(8), 9 7 3 line_number bit(14), 9 8 3 statement_number bit(5), 9 9 2 location fixed(18) unal unsigned, 9 10 2 allocated bit(1) unal, 9 11 2 dcl_type bit(3) unal, 9 12 2 reserved bit(6) unal, 9 13 2 pix unal, 9 14 3 pic_fixed bit(1) unal, 9 15 3 pic_float bit(1) unal, 9 16 3 pic_char bit(1) unal, 9 17 3 pic_scale fixed(7) unal, 9 18 3 pic_size fixed(7) unal, 9 19 2 level fixed(8) unal, 9 20 2 boundary fixed(3) unal, 9 21 2 size_units fixed(3) unal, 9 22 2 scale fixed(7) unal, 9 23 2 runtime bit(18) unal, 9 24 2 runtime_offset bit(18) unal, 9 25 2 block_node ptr unal, 9 26 2 token ptr unal, 9 27 2 next ptr unal, 9 28 2 multi_use ptr unal, 9 29 2 cross_references ptr unal, 9 30 2 initial ptr unal, 9 31 2 array ptr unal, 9 32 2 descriptor ptr unal, 9 33 2 equivalence ptr unal, 9 34 2 reference ptr unal, 9 35 2 general ptr unal, 9 36 2 father ptr unal, 9 37 2 brother ptr unal, 9 38 2 son ptr unal, 9 39 2 word_size ptr unal, 9 40 2 bit_size ptr unal, 9 41 2 dcl_size ptr unal, 9 42 2 symtab_size ptr unal, 9 43 2 c_word_size fixed(24), 9 44 2 c_bit_size fixed(24), 9 45 2 c_dcl_size fixed(24), 9 46 9 47 2 attributes structure aligned, 9 48 3 data_type structure unal, 9 49 4 structure bit(1) , 9 50 4 fixed bit(1), 9 51 4 float bit(1), 9 52 4 bit bit(1), 9 53 4 char bit(1), 9 54 4 ptr bit(1), 9 55 4 offset bit(1), 9 56 4 area bit(1), 9 57 4 label bit(1), 9 58 4 entry bit(1), 9 59 4 file bit(1), 9 60 4 arg_descriptor bit(1), 9 61 4 storage_block bit(1), 9 62 4 explicit_packed bit(1), /* options(packed) */ 9 63 4 condition bit(1), 9 64 4 format bit(1), 9 65 4 builtin bit(1), 9 66 4 generic bit(1), 9 67 4 picture bit(1), 9 68 9 69 3 misc_attributes structure unal, 9 70 4 dimensioned bit(1), 9 71 4 initialed bit(1), 9 72 4 aligned bit(1), 9 73 4 unaligned bit(1), 9 74 4 signed bit(1), 9 75 4 unsigned bit(1), 9 76 4 precision bit(1), 9 77 4 varying bit(1), 9 78 4 local bit(1), 9 79 4 decimal bit(1), 9 80 4 binary bit(1), 9 81 4 real bit(1), 9 82 4 complex bit(1), 9 83 4 variable bit(1), 9 84 4 reducible bit(1), 9 85 4 irreducible bit(1), 9 86 4 returns bit(1), 9 87 4 position bit(1), 9 88 4 internal bit(1), 9 89 4 external bit(1), 9 90 4 like bit(1), 9 91 4 member bit(1), 9 92 4 non_varying bit(1), 9 93 4 options bit(1), 9 94 4 variable_arg_list bit(1), /* options(variable) */ 9 95 4 alloc_in_text bit(1), /* options(constant) */ 9 96 9 97 3 storage_class structure unal, 9 98 4 auto bit(1), 9 99 4 based bit(1), 9 100 4 static bit(1), 9 101 4 controlled bit(1), 9 102 4 defined bit(1), 9 103 4 parameter bit(1), 9 104 4 param_desc bit(1), 9 105 4 constant bit(1), 9 106 4 temporary bit(1), 9 107 4 return_value bit(1), 9 108 9 109 3 file_attributes structure unal, 9 110 4 print bit(1), 9 111 4 input bit(1), 9 112 4 output bit(1), 9 113 4 update bit(1), 9 114 4 stream bit(1), 9 115 4 reserved_1 bit(1), 9 116 4 record bit(1), 9 117 4 sequential bit(1), 9 118 4 direct bit(1), 9 119 4 interactive bit(1), /* env(interactive) */ 9 120 4 reserved_2 bit(1), 9 121 4 reserved_3 bit(1), 9 122 4 stringvalue bit(1), /* env(stringvalue) */ 9 123 4 keyed bit(1), 9 124 4 reserved_4 bit(1), 9 125 4 environment bit(1), 9 126 9 127 3 compiler_developed structure unal, 9 128 4 aliasable bit(1), 9 129 4 packed bit(1), 9 130 4 passed_as_arg bit(1), 9 131 4 allocate bit(1), 9 132 4 set bit(1), 9 133 4 exp_extents bit(1), 9 134 4 refer_extents bit(1), 9 135 4 star_extents bit(1), 9 136 4 isub bit(1), 9 137 4 put_in_symtab bit(1), 9 138 4 contiguous bit(1), 9 139 4 put_data bit(1), 9 140 4 overlayed bit(1), 9 141 4 error bit(1), 9 142 4 symtab_processed bit(1), 9 143 4 overlayed_by_builtin bit(1), 9 144 4 defaulted bit(1), 9 145 4 connected bit(1); 9 146 9 147 /* END INCLUDE FILE ... symbol.incl.pl1 */ 113 10 1 /* BEGIN INCLUDE FILE ... reference.incl.pl1 */ 10 2 10 3 dcl 1 reference based aligned, 10 4 2 node_type bit(9) unaligned, 10 5 2 array_ref bit(1) unaligned, 10 6 2 varying_ref bit(1) unaligned, 10 7 2 shared bit(1) unaligned, 10 8 2 put_data_sw bit(1) unaligned, 10 9 2 processed bit(1) unaligned, 10 10 2 units fixed(3) unaligned, 10 11 2 ref_count fixed(17) unaligned, 10 12 2 c_offset fixed(24), 10 13 2 c_length fixed(24), 10 14 2 symbol ptr unaligned, 10 15 2 qualifier ptr unaligned, 10 16 2 offset ptr unaligned, 10 17 2 length ptr unaligned, 10 18 2 subscript_list ptr unaligned, 10 19 /* these fields are used by the 645 code generator */ 10 20 2 address structure unaligned, 10 21 3 base bit(3), 10 22 3 offset bit(15), 10 23 3 op bit(9), 10 24 3 no_address bit(1), 10 25 3 inhibit bit(1), 10 26 3 ext_base bit(1), 10 27 3 tag bit(6), 10 28 2 info structure unaligned, 10 29 3 address_in structure, 10 30 4 b dimension(0:7) bit(1), 10 31 4 storage bit(1), 10 32 3 value_in structure, 10 33 4 a bit(1), 10 34 4 q bit(1), 10 35 4 aq bit(1), 10 36 4 string_aq bit(1), 10 37 4 complex_aq bit(1), 10 38 4 decimal_aq bit(1), 10 39 4 b dimension(0:7) bit(1), 10 40 4 storage bit(1), 10 41 4 indicators bit(1), 10 42 4 x dimension(0:7) bit(1), 10 43 3 other structure, 10 44 4 big_offset bit(1), 10 45 4 big_length bit(1), 10 46 4 modword_in_offset bit(1), 10 47 2 data_type fixed(5) unaligned, 10 48 2 bits structure unaligned, 10 49 3 padded_ref bit(1), 10 50 3 aligned_ref bit(1), 10 51 3 long_ref bit(1), 10 52 3 forward_ref bit(1), 10 53 3 ic_ref bit(1), 10 54 3 temp_ref bit(1), 10 55 3 defined_ref bit(1), 10 56 3 evaluated bit(1), 10 57 3 allocate bit(1), 10 58 3 allocated bit(1), 10 59 3 aliasable bit(1), 10 60 3 even bit(1), 10 61 3 perm_address bit(1), 10 62 3 aggregate bit(1), 10 63 3 hit_zero bit(1), 10 64 3 dont_save bit(1), 10 65 3 fo_in_qual bit(1), 10 66 3 hard_to_load bit(1), 10 67 2 relocation bit(12) unaligned, 10 68 2 more_bits structure unaligned, 10 69 3 substr bit(1), 10 70 3 padded_for_store_ref bit(1), 10 71 3 aligned_for_store_ref bit(1), 10 72 3 mbz bit(15), 10 73 2 store_ins bit(18) unaligned; 10 74 10 75 /* END INCLUDE FILE ... reference.incl.pl1 */ 114 11 1 dcl 1 array based aligned, 11 2 2 node_type bit(9) unaligned, 11 3 2 reserved bit(34) unaligned, 11 4 2 number_of_dimensions fixed(7) unaligned, 11 5 2 own_number_of_dimensions fixed(7) unaligned, 11 6 2 element_boundary fixed(3) unaligned, 11 7 2 size_units fixed(3) unaligned, 11 8 2 offset_units fixed(3) unaligned, 11 9 2 interleaved bit(1) unaligned, 11 10 2 c_element_size fixed(24), 11 11 2 c_element_size_bits fixed(24), 11 12 2 c_virtual_origin fixed(24), 11 13 2 element_size ptr unaligned, 11 14 2 element_size_bits ptr unaligned, 11 15 2 virtual_origin ptr unaligned, 11 16 2 symtab_virtual_origin ptr unaligned, 11 17 2 symtab_element_size ptr unaligned, 11 18 2 bounds ptr unaligned, 11 19 2 element_descriptor ptr unaligned; 11 20 11 21 dcl 1 bound based aligned, 11 22 2 node_type bit(9), 11 23 2 c_lower fixed(24), 11 24 2 c_upper fixed(24), 11 25 2 c_multiplier fixed(24), 11 26 2 c_desc_multiplier fixed(24), 11 27 2 lower ptr unaligned, 11 28 2 upper ptr unaligned, 11 29 2 multiplier ptr unaligned, 11 30 2 desc_multiplier ptr unaligned, 11 31 2 symtab_lower ptr unaligned, 11 32 2 symtab_upper ptr unaligned, 11 33 2 symtab_multiplier ptr unaligned, 11 34 2 next ptr unaligned; 115 12 1 /* BEGIN INCLUDE FILE ... nodes.incl.pl1 */ 12 2 12 3 /* Modified: 26 Dec 1979 by PCK to implement by name assignment */ 12 4 12 5 dcl ( block_node initial("000000001"b), 12 6 statement_node initial("000000010"b), 12 7 operator_node initial("000000011"b), 12 8 reference_node initial("000000100"b), 12 9 token_node initial("000000101"b), 12 10 symbol_node initial("000000110"b), 12 11 context_node initial("000000111"b), 12 12 array_node initial("000001000"b), 12 13 bound_node initial("000001001"b), 12 14 format_value_node initial("000001010"b), 12 15 list_node initial("000001011"b), 12 16 default_node initial("000001100"b), 12 17 machine_state_node initial("000001101"b), 12 18 source_node initial("000001110"b), 12 19 label_node initial("000001111"b), 12 20 cross_reference_node initial("000010000"b), 12 21 sf_par_node initial("000010001"b), 12 22 temporary_node initial("000010010"b), 12 23 label_array_element_node initial("000010011"b), 12 24 by_name_agg_node initial("000010100"b)) 12 25 bit(9) internal static aligned options(constant); 12 26 12 27 dcl 1 node based aligned, 12 28 2 type unal bit(9), 12 29 2 source_id unal structure, 12 30 3 file_number bit(8), 12 31 3 line_number bit(14), 12 32 3 statement_number bit(5); 12 33 12 34 /* END INCLUDE FILE ... nodes.incl.pl1 */ 116 13 1 /* BEGIN INCLUDE FILE ... boundary.incl.pl1 */ 13 2 13 3 /* Modified: 26 Apr 1979 by PCK to implement 4-bit decimal */ 13 4 13 5 dcl ( bit_ init(1), 13 6 digit_ init(2), 13 7 character_ init(3), 13 8 half_ init(4), 13 9 word_ init(5), 13 10 mod2_ init(6), 13 11 mod4_ init(7)) fixed bin(3) int static options(constant); 13 12 13 13 /* END INCLUDE FILE ... boundary.incl.pl1 */ 117 14 1 /* BEGIN INCLUDE FILE ... declare_type.incl.pl1 */ 14 2 14 3 /* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal */ 14 4 14 5 dcl ( by_declare initial("001"b), 14 6 by_explicit_context initial("010"b), 14 7 by_context initial("011"b), 14 8 by_implication initial("100"b), 14 9 by_compiler initial("101"b)) int static bit(3) aligned options(constant); 14 10 14 11 /* END INCLUDE FILE ... declare_type.incl.pl1 */ 118 15 1 /* BEGIN INCLUDE FILE ... token_types.incl.pl1 */ 15 2 15 3 dcl ( no_token initial("000000000"b), /* token types */ 15 4 identifier initial("100000000"b), 15 5 isub initial("010000000"b), 15 6 plus initial("001000001"b), 15 7 minus initial("001000010"b), 15 8 asterisk initial("001000011"b), 15 9 slash initial("001000100"b), 15 10 expon initial("001000101"b), 15 11 not initial("001000110"b), 15 12 and initial("001000111"b), 15 13 or initial("001001000"b), 15 14 cat initial("001001001"b), 15 15 eq initial("001001010"b), 15 16 ne initial("001001011"b), 15 17 lt initial("001001100"b), 15 18 gt initial("001001101"b), 15 19 le initial("001001110"b), 15 20 ge initial("001001111"b), 15 21 ngt initial("001010000"b), 15 22 nlt initial("001010001"b), 15 23 assignment initial("001010010"b), 15 24 colon initial("001010011"b), 15 25 semi_colon initial("001010100"b), 15 26 comma initial("001010101"b), 15 27 period initial("001010110"b), 15 28 arrow initial("001010111"b), 15 29 left_parn initial("001011000"b), 15 30 right_parn initial("001011001"b), 15 31 percent initial("001011100"b), 15 32 bit_string initial("000100001"b), 15 33 char_string initial("000100010"b), 15 34 bin_integer initial("000110001"b), 15 35 dec_integer initial("000110011"b), 15 36 fixed_bin initial("000110000"b), 15 37 fixed_dec initial("000110010"b), 15 38 float_bin initial("000110100"b), 15 39 float_dec initial("000110110"b), 15 40 i_bin_integer initial("000111001"b), 15 41 i_dec_integer initial("000111011"b), 15 42 i_fixed_bin initial("000111000"b), 15 43 i_fixed_dec initial("000111010"b), 15 44 i_float_bin initial("000111100"b), 15 45 i_float_dec initial("000111110"b)) bit (9) aligned internal static options (constant); 15 46 15 47 dcl ( is_identifier initial ("100000000"b), /* token type masks */ 15 48 is_isub initial ("010000000"b), 15 49 is_delimiter initial ("001000000"b), 15 50 is_constant initial ("000100000"b), 15 51 is_arith_constant initial ("000010000"b), /* N.B. not really a mask...s/b "000110000"b */ 15 52 is_arithmetic_constant initial ("000110000"b), 15 53 is_imaginary_constant initial ("000111000"b), 15 54 is_float_constant initial ("000110100"b), 15 55 is_decimal_constant initial ("000110010"b), 15 56 is_integral_constant initial ("000110001"b) 15 57 ) bit(9) internal static aligned options(constant); 15 58 15 59 /* END INCLUDE FILE ... token_types.incl.pl1 */ 119 16 1 dcl ( root_block initial("000000001"b), 16 2 external_procedure initial("000000010"b), 16 3 internal_procedure initial("000000011"b), 16 4 begin_block initial("000000100"b), 16 5 on_unit initial("000000101"b)) internal static bit(9) aligned options(constant); 120 17 1 /* BEGIN INCLUDE FILE ... op_codes.incl.pl1 */ 17 2 17 3 /* Modified: 25 Apr 1979 by PCK 4-bit decimal */ 17 4 /* Modified: 6 Jun 1979 by PG to add rank and byte */ 17 5 /* Modified: 26 Dec 1979 by PCK to add assign_by_name */ 17 6 /* Modified: 26 July 82 BIM wordno, segno */ 17 7 17 8 dcl ( add initial("000010001"b), /* opnd(1) <- opnd(2)+opnd(3) */ 17 9 sub initial("000010010"b), /* opnd(1) <- opnd(2)-opnd(3) */ 17 10 mult initial("000010011"b), /* opnd(1) <- opnd(2)*opnd(3) */ 17 11 div initial("000010100"b), /* opnd(1) <- opnd(2)/opnd(3) */ 17 12 negate initial("000010101"b), /* opnd(1) <- -opnd(2) */ 17 13 exp initial("000010110"b), /* opnd(1) <- opnd(2) ** opnd(3) */ 17 14 17 15 and_bits initial("000100001"b), /* opnd(1) <- opnd(2) & opnd(3) */ 17 16 or_bits initial("000100010"b), /* opnd(1) <- opnd(2)|opnd(3) */ 17 17 xor_bits initial("000100011"b), /* opnd(1) <- opnd(2) xor opnd(3) */ 17 18 not_bits initial("000100100"b), /* opnd(1) <- ^opnd(2) */ 17 19 cat_string initial("000100101"b), /* opnd(1) <- opnd(2)||opnd(3) */ 17 20 bool_fun initial("000100110"b), /* opnd(1) <- bool(opnd(2),opnd(3),opnd(4)) */ 17 21 17 22 assign initial("000110001"b), /* opnd(1) <- opnd(2) */ 17 23 assign_size_ck initial("000110010"b), /* opnd(1) <- opnd(2) */ 17 24 assign_zero initial("000110011"b), /* opnd(1) <- 0 */ 17 25 copy_words initial("000110100"b), /* move opnd(2) to opnd(1) by opnd(3) words */ 17 26 copy_string initial("000110101"b), /* move opnd(2) to opnd(1) by opnd(3) units */ 17 27 make_desc initial("000110110"b), /* opnd(1) <- descriptor(opnd(2),opnd(3)) */ 17 28 assign_round initial("000110111"b), /* opnd(1) <- opnd(2) rounded */ 17 29 pack initial("000111000"b), /* opnd(1) <- encode to picture opnd(2) */ 17 30 unpack initial("000111001"b), /* opnd(1) <- decode from picture opnd(2) */ 17 31 17 32 less_than initial("001000100"b), /* opnd(1) <- opnd(2) < opnd(3) */ 17 33 greater_than initial("001000101"b), /* opnd(1) <- opnd(2) > opnd(3) */ 17 34 equal initial("001000110"b), /* opnd(1) <- opnd(2) = opnd(3) */ 17 35 not_equal initial("001000111"b), /* opnd(1) <- opnd(2) ^= opnd(3) */ 17 36 less_or_equal initial("001001000"b), /* opnd(1) <- opnd(2) <= opnd(3) */ 17 37 greater_or_equal initial("001001001"b), /* opnd(1) <- opnd(2) >= opnd(3) */ 17 38 17 39 jump initial("001010001"b), /* go to opnd(1) unconditionally */ 17 40 jump_true initial("001010010"b), /* go to opnd(1) if opnd(2) is not 0 */ 17 41 jump_false initial("001010011"b), /* go to opnd(1) if opnd(2) is all 0 */ 17 42 jump_if_lt initial("001010100"b), /* go to opnd(1) if opnd(2) < opnd(3) */ 17 43 jump_if_gt initial("001010101"b), /* go to opnd(1) if opnd(2) > opnd(3) */ 17 44 jump_if_eq initial("001010110"b), /* go to opnd(1) if opnd(2) = opnd(3) */ 17 45 jump_if_ne initial("001010111"b), /* go to opnd(1) if opnd(2) ^= opnd(3) */ 17 46 jump_if_le initial("001011000"b), /* go to opnd(1) if opnd(2) <= opnd(3) */ 17 47 jump_if_ge initial("001011001"b), /* go to opnd(1) if opnd(2) >= opnd(3) */ 17 48 17 49 std_arg_list initial("001100001"b), /* opnd(1) <- arglist(opnd(2) desclist(opnd(3))) */ 17 50 return_words initial("001100010"b), /* return aggregate opnd(1), opnd(2) is length in words */ 17 51 std_call initial("001100011"b), /* opnd(1) <- call opnd(2) with opnd(3) */ 17 52 return_bits initial("001100100"b), /* return aggregate opnd(1), opnd(2) is length in bits */ 17 53 std_entry initial("001100101"b), /* entry(opnd(1)... opnd(n)) */ 17 54 return_string initial("001100110"b), /* return string opnd(1) */ 17 55 ex_prologue initial("001100111"b), /* execute the prologue -no operands- */ 17 56 allot_auto initial("001101000"b), /* opnd(1) <- addrel(stack,opnd(2)) */ 17 57 param_ptr initial("001101001"b), /* opnd(1) <- ptr to opnd(2) in block opnd(3) */ 17 58 param_desc_ptr initial("001101010"b), /* opnd(1) <- ptr to opnd(2) in block opnd(3) */ 17 59 std_return initial("001101011"b), /* return -no arguments- */ 17 60 allot_ctl initial("001101100"b), /* allocate opnd(1) , length in words is opnd(2) */ 17 61 free_ctl initial("001101101"b), /* free opnd(1) */ 17 62 stop initial("001101110"b), /* stop - terminate run unit */ 17 63 17 64 mod_bit initial("001110000"b), /* opnd(1) <- mod(opnd(3),36), 17 65* opnd(2) <- opnd(3) / 36 */ 17 66 mod_byte initial("001110001"b), /* opnd(1) <- mod(opnd(3),4), 17 67* opnd(2) <- opnd(3) / 4 */ 17 68 mod_half initial("001110010"b), /* opnd(1) <- mod(opnd(3),2), 17 69* opnd(2) <- opnd(3) / 2 */ 17 70 mod_word initial("001110011"b), /* TO BE DEFINED BY BLW */ 17 71 17 72 bit_to_char initial("010000000"b), /* opnd(1) <- (opnd(2)+8)/9 */ 17 73 bit_to_word initial("010000001"b), /* opnd(1) <- (opnd(2)+35)/36 */ 17 74 char_to_word initial("010000010"b), /* opnd(1) <- (opnd(2)+3)/4 */ 17 75 half_to_word initial("010000011"b), /* opnd(1) <- (opnd(2)+1)/2 */ 17 76 word_to_mod2 initial("010000100"b), /* opnd(1) <- (opnd(2)+1)/2*2 */ 17 77 word_to_mod4 initial("010000101"b), /* opnd(1) <- (opnd(2)+3)/4*4 */ 17 78 word_to_mod8 initial("010000110"b), /* opnd(1) <- (opnd(2)+7)/8*8 */ 17 79 rel_fun initial("010000111"b), /* opnd(1) <- rel(opnd(2)) */ 17 80 baseno_fun initial("010001000"b), /* opnd(1) <- baseno(opnd(2)) */ 17 81 desc_size initial("010001001"b), /* opnd(1) <- substr(opnd(2),13,24) */ 17 82 bit_pointer initial("010001010"b), /* opnd(1) <- bit offset of opnd(2) */ 17 83 index_before_fun initial("010001011"b), /* opnd(1) <- length of before(opnd(2),opnd(3)) */ 17 84 index_after_fun initial("010001100"b), /* opnd(1) <- offset of after(opnd(2),opnd(3)) in opnd(2) */ 17 85 verify_ltrim_fun initial("010001101"b), /* opnd(1) <- offset of ltrim(opnd(2),opnd(3)) in opnd(2) */ 17 86 verify_rtrim_fun initial("010001110"b), /* opnd(1) <- length(opnd(2))-length(rtrim(opnd(2),opnd(3))) */ 17 87 digit_to_bit initial("010001111"b), /* opnd(1) <- 9*opnd(2)/2 */ 17 88 17 89 ceil_fun initial("010010000"b), /* opnd(1) <- ceil(opnd(2)) */ 17 90 floor_fun initial("010010001"b), /* opnd(1) <- floor(opnd(2)) */ 17 91 round_fun initial("010010010"b), /* opnd(1) <- round(opnd(2)) */ 17 92 sign_fun initial("010010011"b), /* opnd(1) <- sign(opnd(2)) */ 17 93 abs_fun initial("010010100"b), /* opnd(1) <- abs(opnd(2)) */ 17 94 trunc_fun initial("010010101"b), /* opnd(1) <- trunc(opnd(2)) */ 17 95 byte_fun initial("010010110"b), /* opnd(1) <- byte(opnd(2)) */ 17 96 rank_fun initial("010010111"b), /* opnd(1) <- rank(opnd(2)) */ 17 97 index_rev_fun initial("010011000"b), /* opnd(1) <- index(reverse(opnd(2)),reverse(opnd(3))) */ 17 98 search_rev_fun initial("010011001"b), /* opnd(1) <- search(reverse(opnd(2)),opnd(3)) */ 17 99 verify_rev_fun initial("010011010"b), /* opnd(1) <- verify(reverse(opnd(2)),opnd(3)) */ 17 100 wordno_fun initial("010011011"b), /* opnd(1) <- wordno (opnd(2)) */ 17 101 segno_fun initial("010011100"b), /* opnd(1) <- segno (opnd(2)) */ 17 102 bitno_fun initial("010011101"b), /* opnd(1) <- bitno (opnd(2)) */ 17 103 charno_fun initial("010011110"b), /* opnd(1) <- charno (opnd(2)) */ 17 104 17 105 index_fun initial("010100000"b), /* opnd(1) <- index(opnd(2),opnd(3)) */ 17 106 off_fun initial("010100001"b), /* opnd(1) <- offset(opnd(2),opnd(3)) */ 17 107 complex_fun initial("010100010"b), /* opnd(1) <- complex(opnd(2),opnd(3)) */ 17 108 conjg_fun initial("010100011"b), /* opnd(1) <- conjg(opnd(2),opnd(3)) */ 17 109 mod_fun initial("010100100"b), /* opnd(1) <- mod(opnd(2),opnd(3)) */ 17 110 repeat_fun initial("010100101"b), /* opnd(1) <- repeat(opnd(2),opnd(3)) */ 17 111 verify_fun initial("010100110"b), /* opnd(1) <- verify(opnd(2),opnd(3)) */ 17 112 translate_fun initial("010100111"b), /* opnd(1) <- translate(opnd(2),opnd(3))*/ 17 113 real_fun initial("010101001"b), /* opnd(1) <- real(opnd(2)) */ 17 114 imag_fun initial("010101010"b), /* opnd(1) <- imag(opnd(2)) */ 17 115 length_fun initial("010101011"b), /* opnd(1) <- length(opnd(2)) */ 17 116 pl1_mod_fun initial("010101100"b), /* opnd(1) <- mod(opnd(2)) */ 17 117 search_fun initial("010101101"b), /* opnd(1) <- search(opnd(2),opnd(3)) */ 17 118 allocation_fun initial("010101110"b), /* opnd(1) <- allocation(opnd(2)) */ 17 119 reverse_fun initial("010101111"b), /* opnd(1) <- reverse(opnd(2)) */ 17 120 17 121 addr_fun initial("010110000"b), /* opnd(1) <- addr(opnd(2)) */ 17 122 addr_fun_bits initial("010110001"b), /* opnd(1) <- addr(opnd(2)) */ 17 123 ptr_fun initial("010110010"b), /* opnd(1) <- ptr(opnd(2),opnd(3)) */ 17 124 baseptr_fun initial("010110011"b), /* opnd(1) <- baseptr(opnd(2)) */ 17 125 addrel_fun initial("010110100"b), /* opnd(1) <- addrel(opnd(2),opnd(3)) */ 17 126 codeptr_fun initial("010110101"b), /* opnd(1) <- codeptr(opnd(2)) */ 17 127 environmentptr_fun initial("010110110"b), /* opnd(1) <- environmentptr(opnd(2)) */ 17 128 stackbaseptr_fun initial("010110111"b), /* opnd(1) is ptr to base of current stack */ 17 129 stackframeptr_fun initial("010111000"b), /* opnd(1) is ptr to current block's stack frame */ 17 130 setcharno_fun initial("010111001"b), /* opnd(1) <- opnd(2) with charno opnd(3) */ 17 131 addcharno_fun initial("010111010"b), /* opnd(1) <- opnd(2) with charno = charno + opnd(3) */ 17 132 setbitno_fun initial("010111011"b), /* setcharno for bitsno */ 17 133 addbitno_fun initial("010111100"b), /* addcharno for bitno */ 17 134 17 135 min_fun initial("011000000"b), /* opnd(1) <- min(opnd(1),opnd(2),...) */ 17 136 max_fun initial("011000001"b), /* opnd(1) <- max(opnd(1),opnd(2),...) */ 17 137 17 138 stack_ptr initial("011010001"b), /* opnd(1) <- stack frame ptr */ 17 139 empty_area initial("011010010"b), /* empty opnd(1), length in words is opnd(2) */ 17 140 enable_on initial("011010100"b), /* opnd(1) is the cond name 17 141* opnd(2) is the file name 17 142* opnd(3) is the block */ 17 143 revert_on initial("011010101"b), /* opnd(1) is the cond name, 17 144* opnd(2) is the file name */ 17 145 signal_on initial("011010110"b), /* opnd(1) is the cond name 17 146* opnd(2) is the file name */ 17 147 17 148 lock_fun initial("011010111"b), /* opnd(1) <- stac(opnd(2),opnd(3)) */ 17 149 stacq_fun initial("011011000"b), /* opnd(1) is result, opnd(2) is ptr to lock word, 17 150* opnd(3) is old value, (4) is new value. */ 17 151 clock_fun initial("011011001"b), /* opnd(1) is the clock time */ 17 152 vclock_fun initial("011011010"b), /* opnd(1) is the virtual clock time */ 17 153 17 154 bound_ck initial("011100000"b), /* opnd(1) <- opnd(2) if opnd(3) <= opnd(2) <= opnd(4) */ 17 155 range_ck initial("011100001"b), /* opnd(1) <- opnd(2) if opnd(3) <= opnd(2) <= opnd(4) */ 17 156 loop initial("011100010"b), /* do opnd(1) for opnd(2) from opnd(3) to opnd(4) by 1, 17 157* opnd(5) is the list */ 17 158 join initial("011100011"b), /* do opnd(1), opnd(2) ... opnd(n) */ 17 159 allot_based initial("011100100"b), /* allocate opnd(2) words in opnd(3), set opnd(1) */ 17 160 free_based initial("011100101"b), /* free opnd(1) in opnd(3), length is opnd(2) words */ 17 161 17 162 r_parn initial("011110001"b), /* format op code */ 17 163 l_parn initial("011110010"b), 17 164 r_format initial("011110011"b), 17 165 c_format initial("011110100"b), 17 166 f_format initial("011110101"b), 17 167 e_format initial("011110110"b), 17 168 b_format initial("011110111"b), 17 169 a_format initial("011111000"b), 17 170 x_format initial("011111001"b), 17 171 skip_format initial("011111010"b), 17 172 column_format initial("011111011"b), 17 173 page_format initial("011111100"b), 17 174 line_format initial("011111101"b), 17 175 picture_format initial("011111110"b), 17 176 bn_format initial("011111111"b), /* bit format, length(opnd(2)), radix factor(opnd(3)) */ 17 177 17 178 get_list_trans initial("100000000"b), /* getlist(opnd(2) with desc(opnd(1))) */ 17 179 get_edit_trans initial("100000001"b), /* getedit(opnd(2) with desc(opnd(1))) */ 17 180 get_data_trans initial("100000010"b), /* getdata(opnd(1) to opnd(n)) */ 17 181 put_list_trans initial("100000011"b), /* putlist(opnd(2) with desc(opnd(1))) */ 17 182 put_edit_trans initial("100000100"b), /* putedit(opnd(2) with desc(opnd(1))) */ 17 183 put_data_trans initial("100000101"b), /* putdata(opnd(2)) with subscript-list opnd(1) */ 17 184 terminate_trans initial("100000110"b), /* terminate stream transmission */ 17 185 stream_prep initial("100000111"b), /* initiate stream transmission */ 17 186 record_io initial("100001000"b), /* perform record io operation */ 17 187 fortran_read initial("100001001"b), /* A complete read statement */ 17 188 fortran_write initial("100001010"b), /* A complete write statement */ 17 189 ftn_file_manip initial("100001011"b), /* endfile,backspace,rewind,etc. */ 17 190 ftn_trans_loop initial("100001100"b), /* An implied do in i/o list */ 17 191 put_control initial("100001101"b), /* put control opnd(1) opnd(2) times */ 17 192 put_field initial("100001110"b), /* putlist(opnd(2)) of length(opnd(1)) */ 17 193 put_field_chk initial("100001111"b), /* putlist(op(2)) of len(op(1)) check char index(op(3)) */ 17 194 17 195 /* These operators are produced by the parse but are not used as input to the code generator. */ 17 196 /* They are processed by the semantic translator. */ 17 197 17 198 return_value initial("100010010"b), /* return(opnd(1)) */ 17 199 allot_var initial("100010011"b), /* allot opnd(1) in opnd(2) */ 17 200 free_var initial("100010100"b), /* free opnd(1) out of opnd(2) */ 17 201 get_file initial("100010101"b), /* opnd(1) is filename,opnd(2) is copy */ 17 202 /* opnd(3) is skip, opnd(4) is list */ 17 203 get_string initial("100010110"b), /* opnd(1) is string,opnd(2) is list */ 17 204 put_file initial("100010111"b), /* opnd(1) is filename,opnd(2) is page */ 17 205 /* opnd(3) is skip,opnd(4) is line */ 17 206 put_string initial("100011000"b), /* opnd(1) is string,opnd(2) is list */ 17 207 open_file initial("100011001"b), 17 208 close_file initial("100011010"b), 17 209 read_file initial("100011011"b), 17 210 write_file initial("100011100"b), 17 211 locate_file initial("100011101"b), 17 212 do_fun initial("100011110"b), /* opnd(1) is join of a list */ 17 213 /* opnd(2) is control variable ref */ 17 214 /* opnd(3) is specification operator */ 17 215 do_spec initial("100011111"b), /* opnd(1) to opnd(2) by opnd(3) */ 17 216 /* repeat opnd(4) while opnd(5) */ 17 217 /* opnd(6) is next specification */ 17 218 17 219 rewrite_file initial("100100000"b), 17 220 delete_file initial("100100001"b), 17 221 unlock_file initial("100100010"b), 17 222 lock_file initial("100100011"b), 17 223 refer initial("100100101"b), /* opnd(1) refer(opnd(2)) */ 17 224 prefix_plus initial("100100110"b), /* opnd(1) <- +opnd(2) */ 17 225 nop initial("100100111"b), /* no-op */ 17 226 assign_by_name initial("100101000"b), /* opnd(1) <- opnd(2),by name */ 17 227 17 228 /* These operators are produced by the semantic translator in processing the math 17 229* builtin functions and are used as input to the code generator */ 17 230 17 231 sqrt_fun initial("100110000"b), /* opnd(1) <- sqrt(opnd(2)) */ 17 232 sin_fun initial("100110001"b), /* opnd(1) <- sin(opnd(2)) */ 17 233 sind_fun initial("100110010"b), /* opnd(1) <- sind(opnd(2)) */ 17 234 cos_fun initial("100110011"b), /* opnd(1) <- cos(opnd(2)) */ 17 235 cosd_fun initial("100110100"b), /* opnd(1) <- cosd(opnd(2)) */ 17 236 tan_fun initial("100110101"b), /* opnd(1) <- tan(opnd(2)) */ 17 237 tand_fun initial("100110110"b), /* opnd(1) <- tand(opnd(2)) */ 17 238 asin_fun initial("100110111"b), /* opnd(1) <- asin(opnd(2)) */ 17 239 asind_fun initial("100111000"b), /* opnd(1) <- asind(opnd(2)) */ 17 240 acos_fun initial("100111001"b), /* opnd(1) <- acos(opnd(2)) */ 17 241 acosd_fun initial("100111010"b), /* opnd(1) <- acosd(opnd(2)) */ 17 242 atan_fun initial("100111011"b), /* opnd(1) <- atan(opnd(2)[,opnd(3)]) */ 17 243 atand_fun initial("100111100"b), /* opnd(1) <- atand(opnd(2)[,opnd(3)]) */ 17 244 log2_fun initial("100111101"b), /* opnd(1) <- log2(opnd(2)) */ 17 245 log_fun initial("100111110"b), /* opnd(1) <- log(opnd(2)) */ 17 246 log10_fun initial("100111111"b), /* opnd(1) <- log10(opnd(2)) */ 17 247 17 248 exp_fun initial("101000000"b)) /* opnd(1) <- exp(opnd(2)) */ 17 249 17 250 bit(9) aligned internal static options(constant); 17 251 17 252 /* END INCLUDE FILE ... op_codes.incl.pl1 */ 121 18 1 /* BEGIN INCLUDE FILE ... system.incl.pl1 */ 18 2 18 3 /* Modified: 25 Apr 1979 by PCK to implemnt 4-bit decimal */ 18 4 18 5 dcl ( max_p_flt_bin_1 initial(27), 18 6 max_p_flt_bin_2 initial(63), 18 7 max_p_fix_bin_1 initial(35), 18 8 max_p_fix_bin_2 initial(71), 18 9 18 10 max_p_dec initial(59), 18 11 max_p_bin_or_dec initial (71), /* max (max_p_fix_bin_2, max_p_dec) */ 18 12 18 13 min_scale initial(-128), 18 14 max_scale initial(+127), 18 15 max_bit_string initial(9437184), 18 16 max_char_string initial(1048576), 18 17 max_area_size initial(262144), 18 18 min_area_size initial(28), 18 19 18 20 max_bit_string_constant initial (253), /* max length of bit literals */ 18 21 max_char_string_constant initial (254), /* max length of character literals */ 18 22 max_identifier_length initial (256), 18 23 max_number_of_dimensions initial (127), 18 24 18 25 max_length_precision initial(24), 18 26 max_offset_precision initial(24), /* 18 bits for word offset + 6 bits for bit offset */ 18 27 18 28 max_words_per_variable initial (262144), 18 29 18 30 bits_per_word initial(36), 18 31 bits_per_double initial(72), 18 32 packed_digits_per_character initial(2), 18 33 characters_per_half initial(2), 18 34 characters_per_word initial(4), 18 35 characters_per_double initial(8), 18 36 18 37 bits_per_character initial(9), 18 38 bits_per_half initial(18), 18 39 bits_per_decimal_digit initial(9), 18 40 bits_per_binary_exponent initial(8), 18 41 bits_per_packed_ptr initial(36), 18 42 words_per_packed_pointer initial(1), 18 43 18 44 words_per_fix_bin_1 initial(1), 18 45 words_per_fix_bin_2 initial(2), 18 46 words_per_flt_bin_1 initial(1), 18 47 words_per_flt_bin_2 initial(2), 18 48 words_per_varying_string_header initial(1), 18 49 words_per_offset initial(1), 18 50 words_per_pointer initial(2), 18 51 words_per_label_var initial(4), 18 52 words_per_entry_var initial(4), 18 53 words_per_file_var initial(4), 18 54 words_per_format initial(4), 18 55 words_per_condition_var initial(6), 18 56 18 57 max_index_register_value initial(262143), 18 58 max_signed_index_register_value initial(131071), 18 59 18 60 max_signed_xreg_precision initial(17), 18 61 max_uns_xreg_precision initial(18), 18 62 18 63 default_area_size initial(1024), 18 64 default_flt_bin_p initial(27), 18 65 default_fix_bin_p initial(17), 18 66 default_flt_dec_p initial(10), 18 67 default_fix_dec_p initial(7)) fixed bin(31) internal static options(constant); 18 68 18 69 dcl bits_per_digit initial(4.5) fixed bin(31,1) internal static options(constant); 18 70 18 71 dcl ( integer_type initial("010000000000000000000100000001100000"b), 18 72 dec_integer_type initial("010000000000000000000100000010100000"b), 18 73 pointer_type initial("000001000000000000000100000000000000"b), 18 74 real_type initial("001000000000000000000100000001100000"b), 18 75 complex_type initial("001000000000000000000100000001010000"b), 18 76 builtin_type initial("000000000000000010000000000000000000"b), 18 77 storage_block_type initial("000000000000100000000000000000000000"b), 18 78 arg_desc_type initial("000000000001000000000000000000000000"b), 18 79 local_label_var_type initial("000000001000000000000100000100001000"b), 18 80 entry_var_type initial("000000000100000000000000000000001000"b), 18 81 bit_type initial("000100000000000000000000000000000000"b), 18 82 char_type initial("000010000000000000000000000000000000"b)) bit(36) aligned int static 18 83 options(constant); 18 84 18 85 /* END INCLUDE FILE ... system.incl.pl1 */ 122 19 1 /* BEGIN INCLUDE FILE relbts.incl.pl1 */ 19 2 19 3 /* This include file defines the relocation bits as bit (18) entities. See 19 4* also relocation_bits.incl.pl1 and reloc_lower.incl.pl1. */ 19 5 19 6 dcl ( rc_a initial("0"b), /* absolute */ 19 7 rc_t initial("000000000000010000"b), /* text */ 19 8 rc_nt initial("000000000000010001"b), /* negative text */ 19 9 rc_lp18 initial("000000000000010010"b), /* linkage, 18 bit */ 19 10 rc_nlp18 initial("000000000000010011"b), /* negative link, 18 bit */ 19 11 rc_lp15 initial("000000000000010100"b), /* linkage, 15 bit */ 19 12 rc_dp initial("000000000000010101"b), /* def section */ 19 13 rc_s initial("000000000000010110"b), /* symbol segment */ 19 14 rc_ns initial("000000000000010111"b), /* negative symbol */ 19 15 rc_is18 initial("000000000000011000"b), /* internal static 18 */ 19 16 rc_is15 initial("000000000000011001"b), /* internal static 15 */ 19 17 rc_lb initial("000000000000011000"b), /* link block */ 19 18 rc_nlb initial("000000000000011001"b), /* negative link block */ 19 19 rc_sr initial("000000000000011010"b), /* self relative */ 19 20 rc_e initial("000000000000011111"b)) /* escape */ 19 21 bit(18) internal static options(constant); 19 22 19 23 dcl ( rc_dp_dp initial("000000000000010101000000000000010101"b), /* def section, def section */ 19 24 rc_a_dp initial("000000000000000000000000000000010101"b)) /* absolute, def section */ 19 25 bit(36) internal static options(constant); 19 26 19 27 /* END INCLUDE FILE relbts.incl.pl1 */ 123 20 1 /* BEGIN INCLUDE FILE reloc_lower.incl.pl1 */ 20 2 20 3 /* See relocation_bits.incl.pl1 and relbts.incl.pl1 for other declarations of 20 4* relocation information. */ 20 5 20 6 dcl ( rc_a_lp18 init("000000000000000000000000000000010010"b), 20 7 rc_a_is18 init("000000000000000000000000000000011000"b), 20 8 rc_a_t init("000000000000000000000000000000010000"b)) 20 9 bit(36) aligned int static options(constant); 20 10 20 11 /* END INCLUDE FILE reloc_lower.incl.pl1 */ 124 21 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 21 2 21 3 dcl 1 runtime_symbol aligned based, 21 4 2 flag unal bit(1), /* always "1"b for Version II */ 21 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 21 6 2 array_units unal bit(2), 21 7 2 units unal bit(2), /* addressing units */ 21 8 2 type unal bit(6), /* data type */ 21 9 2 level unal bit(6), /* structure level */ 21 10 2 ndims unal bit(6), /* number of dimensions */ 21 11 2 bits unal, 21 12 3 aligned bit(1), 21 13 3 packed bit(1), 21 14 3 simple bit(1), 21 15 2 skip unal bit(1), 21 16 2 scale unal bit(8), /* arithmetic scale factor */ 21 17 2 name unal bit(18), /* rel ptr to acc name */ 21 18 2 brother unal bit(18), /* rel ptr to brother entry */ 21 19 2 father unal bit(18), /* rel ptr to father entry */ 21 20 2 son unal bit(18), /* rel ptr to son entry */ 21 21 2 address unal, 21 22 3 location bit(18), /* location in storage class */ 21 23 3 class bit(4), /* storage class */ 21 24 3 next bit(14), /* rel ptr to next of same class */ 21 25 2 size fixed bin(35), /* encoded string|arith size */ 21 26 2 offset fixed bin(35), /* encoded offset from address */ 21 27 2 virtual_org fixed bin(35), 21 28 2 bounds(1), 21 29 3 lower fixed bin(35), /* encoded lower bound */ 21 30 3 upper fixed bin(35), /* encoded upper bound */ 21 31 3 multiplier fixed bin(35); /* encoded multiplier */ 21 32 21 33 dcl 1 runtime_bound based, 21 34 2 lower fixed bin(35), 21 35 2 upper fixed bin(35), 21 36 2 multiplier fixed bin(35); 21 37 21 38 dcl 1 runtime_block aligned based, 21 39 2 flag unal bit(1), /* always "1"b for Version II */ 21 40 2 quick unal bit(1), /* "1"b if quick block */ 21 41 2 fortran unal bit(1), /* "1"b if fortran program */ 21 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 21 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 21 44 2 skip unal bit(1), 21 45 2 type unal bit(6), /* = 0 for a block node */ 21 46 2 number unal bit(6), /* begin block number */ 21 47 2 start unal bit(18), /* rel ptr to start of symbols */ 21 48 2 name unal bit(18), /* rel ptr to name of proc */ 21 49 2 brother unal bit(18), /* rel ptr to brother block */ 21 50 2 father unal bit(18), /* rel ptr to father block */ 21 51 2 son unal bit(18), /* rel ptr to son block */ 21 52 2 map unal, 21 53 3 first bit(18), /* rel ptr to first word of map */ 21 54 3 last bit(18), /* rel ptr to last word of map */ 21 55 2 entry_info unal bit(18), /* info about entry of quick block */ 21 56 2 header unal bit(18), /* rel ptr to symbol header */ 21 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 21 58* on start list with length >= 2**i */ 21 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 21 60* on list with length >= 2 ** i */ 21 61 2 owner unal bit(18); /* rel ptr to owner block */ 21 62 21 63 dcl 1 runtime_token aligned based, 21 64 2 next unal bit(18), /* rel ptr to next token */ 21 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 21 66 2 name, /* ACC */ 21 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 21 68 3 string unal char(n refer(runtime_token.size)); 21 69 21 70 dcl 1 encoded_value aligned based, 21 71 2 flag bit (2) unal, 21 72 2 code bit (4) unal, 21 73 2 n1 bit (6) unal, 21 74 2 n2 bit (6) unal, 21 75 2 n3 bit (18) unal; 21 76 21 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 125 22 1 /* BEGIN INCLUDE FILE ... pl1_descriptor_type_fcn.incl.pl1 */ 22 2 22 3 /* Program to convert symbol_node information into a descriptor type code. 22 4* Written 780614 by PG 22 5* Modified: 25 Apr 1979 by PCK to implement 4-bit decimal 22 6**/ 22 7 22 8 pl1_descriptor_type: 22 9 procedure (bv_type, bv_prec) returns (fixed bin); 22 10 22 11 /* parameters */ 22 12 22 13 dcl ( bv_type bit (36), 22 14 bv_prec fixed bin (24)) parameter; 22 15 22 16 /* automatic */ 22 17 22 18 dcl prec fixed bin (24), 22 19 dtype fixed bin; 22 20 22 21 /* builtins */ 22 22 22 23 dcl string builtin; 22 24 22 25 /* include files */ 22 26 23 1 /* BEGIN INCLUDE FILE ... pl1_symbol_type.incl.pl1 */ 23 2 23 3 dcl 1 type, 23 4 2 structure bit, 23 5 2 fixed bit, 23 6 2 float bit, 23 7 2 bit bit, 23 8 2 char bit, 23 9 2 ptr bit, 23 10 2 offset bit, 23 11 2 area bit, 23 12 2 label bit, 23 13 2 entry bit, 23 14 2 file bit, 23 15 2 arg_descriptor bit, 23 16 2 storage_block bit, 23 17 2 explicit_packed bit, 23 18 2 condition bit, 23 19 2 format bit, 23 20 2 builtin bit, 23 21 2 generic bit, 23 22 2 picture bit, 23 23 2 dimensioned bit, 23 24 2 initialed bit, 23 25 2 aligned bit, 23 26 2 unaligned bit, 23 27 2 signed bit, 23 28 2 unsigned bit, 23 29 2 precision bit, 23 30 2 varying bit, 23 31 2 local bit, 23 32 2 decimal bit, 23 33 2 binary bit, 23 34 2 real bit, 23 35 2 complex bit, 23 36 2 variable bit, 23 37 2 reducible bit, 23 38 2 irreducible bit, 23 39 2 returns bit; 23 40 23 41 /* END INCLUDE FILE ... pl1_symbol_type.incl.pl1 */ 22 27 24 1 /* BEGIN INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 24 2 24 3 24 4 /****^ HISTORY COMMENTS: 24 5* 1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525), 24 6* audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208): 24 7* Added pascal_string_type_dtype descriptor type. Its number is 87. 24 8* Objects of this type are PASCAL string types. 24 9* 2) change(88-09-20,WAAnderson), approve(88-09-20,MCR7952), 24 10* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 24 11* Added the new C types. 24 12* END HISTORY COMMENTS */ 24 13 24 14 /* This include file defines mnemonic names for the Multics 24 15* standard descriptor types, using both pl1 and cobol terminology. 24 16* PG 780613 24 17* JRD 790530 24 18* JRD 791016 24 19* MBW 810731 24 20* TGO 830614 Add hex types. 24 21* Modified June 83 JMAthane to add PASCAL data types 24 22* TGO 840120 Add float dec extended and generic, float binary generic 24 23**/ 24 24 24 25 dcl (real_fix_bin_1_dtype init (1), 24 26 real_fix_bin_2_dtype init (2), 24 27 real_flt_bin_1_dtype init (3), 24 28 real_flt_bin_2_dtype init (4), 24 29 cplx_fix_bin_1_dtype init (5), 24 30 cplx_fix_bin_2_dtype init (6), 24 31 cplx_flt_bin_1_dtype init (7), 24 32 cplx_flt_bin_2_dtype init (8), 24 33 real_fix_dec_9bit_ls_dtype init (9), 24 34 real_flt_dec_9bit_dtype init (10), 24 35 cplx_fix_dec_9bit_ls_dtype init (11), 24 36 cplx_flt_dec_9bit_dtype init (12), 24 37 pointer_dtype init (13), 24 38 offset_dtype init (14), 24 39 label_dtype init (15), 24 40 entry_dtype init (16), 24 41 structure_dtype init (17), 24 42 area_dtype init (18), 24 43 bit_dtype init (19), 24 44 varying_bit_dtype init (20), 24 45 char_dtype init (21), 24 46 varying_char_dtype init (22), 24 47 file_dtype init (23), 24 48 real_fix_dec_9bit_ls_overp_dtype init (29), 24 49 real_fix_dec_9bit_ts_overp_dtype init (30), 24 50 real_fix_bin_1_uns_dtype init (33), 24 51 real_fix_bin_2_uns_dtype init (34), 24 52 real_fix_dec_9bit_uns_dtype init (35), 24 53 real_fix_dec_9bit_ts_dtype init (36), 24 54 real_fix_dec_4bit_uns_dtype init (38), /* digit-aligned */ 24 55 real_fix_dec_4bit_ts_dtype init (39), /* byte-aligned */ 24 56 real_fix_dec_4bit_bytealigned_uns_dtype init (40), /* COBOL */ 24 57 real_fix_dec_4bit_ls_dtype init (41), /* digit-aligned */ 24 58 real_flt_dec_4bit_dtype init (42), /* digit-aligned */ 24 59 real_fix_dec_4bit_bytealigned_ls_dtype init (43), 24 60 real_flt_dec_4bit_bytealigned_dtype init (44), 24 61 cplx_fix_dec_4bit_bytealigned_ls_dtype init (45), 24 62 cplx_flt_dec_4bit_bytealigned_dtype init (46), 24 63 real_flt_hex_1_dtype init (47), 24 64 real_flt_hex_2_dtype init (48), 24 65 cplx_flt_hex_1_dtype init (49), 24 66 cplx_flt_hex_2_dtype init (50), 24 67 c_typeref_dtype init (54), 24 68 c_enum_dtype init (55), 24 69 c_enum_const_dtype init (56), 24 70 c_union_dtype init (57), 24 71 algol68_straight_dtype init (59), 24 72 algol68_format_dtype init (60), 24 73 algol68_array_descriptor_dtype init (61), 24 74 algol68_union_dtype init (62), 24 75 24 76 cobol_comp_6_dtype init (1), 24 77 cobol_comp_7_dtype init (1), 24 78 cobol_display_ls_dtype init (9), 24 79 cobol_structure_dtype init (17), 24 80 cobol_char_string_dtype init (21), 24 81 cobol_display_ls_overp_dtype init (29), 24 82 cobol_display_ts_overp_dtype init (30), 24 83 cobol_display_uns_dtype init (35), 24 84 cobol_display_ts_dtype init (36), 24 85 cobol_comp_8_uns_dtype init (38), /* digit aligned */ 24 86 cobol_comp_5_ts_dtype init (39), /* byte aligned */ 24 87 cobol_comp_5_uns_dtype init (40), 24 88 cobol_comp_8_ls_dtype init (41), /* digit aligned */ 24 89 real_flt_dec_extended_dtype init (81), /* 9-bit exponent */ 24 90 cplx_flt_dec_extended_dtype init (82), /* 9-bit exponent */ 24 91 real_flt_dec_generic_dtype init (83), /* generic float decimal */ 24 92 cplx_flt_dec_generic_dtype init (84), 24 93 real_flt_bin_generic_dtype init (85), /* generic float binary */ 24 94 cplx_flt_bin_generic_dtype init (86)) fixed bin internal static options (constant); 24 95 24 96 dcl (ft_integer_dtype init (1), 24 97 ft_real_dtype init (3), 24 98 ft_double_dtype init (4), 24 99 ft_complex_dtype init (7), 24 100 ft_complex_double_dtype init (8), 24 101 ft_external_dtype init (16), 24 102 ft_logical_dtype init (19), 24 103 ft_char_dtype init (21), 24 104 ft_hex_real_dtype init (47), 24 105 ft_hex_double_dtype init (48), 24 106 ft_hex_complex_dtype init (49), 24 107 ft_hex_complex_double_dtype init (50) 24 108 ) fixed bin internal static options (constant); 24 109 24 110 dcl (algol68_short_int_dtype init (1), 24 111 algol68_int_dtype init (1), 24 112 algol68_long_int_dtype init (2), 24 113 algol68_real_dtype init (3), 24 114 algol68_long_real_dtype init (4), 24 115 algol68_compl_dtype init (7), 24 116 algol68_long_compl_dtype init (8), 24 117 algol68_bits_dtype init (19), 24 118 algol68_bool_dtype init (19), 24 119 algol68_char_dtype init (21), 24 120 algol68_byte_dtype init (21), 24 121 algol68_struct_struct_char_dtype init (22), 24 122 algol68_struct_struct_bool_dtype init (20) 24 123 ) fixed bin internal static options (constant); 24 124 24 125 dcl (label_constant_runtime_dtype init (24), 24 126 int_entry_runtime_dtype init (25), 24 127 ext_entry_runtime_dtype init (26), 24 128 ext_procedure_runtime_dtype init (27), 24 129 picture_runtime_dtype init (63) 24 130 ) fixed bin internal static options (constant); 24 131 24 132 dcl (pascal_integer_dtype init (1), 24 133 pascal_real_dtype init (4), 24 134 pascal_label_dtype init (24), 24 135 pascal_internal_procedure_dtype init (25), 24 136 pascal_exportable_procedure_dtype init (26), 24 137 pascal_imported_procedure_dtype init (27), 24 138 pascal_typed_pointer_type_dtype init (64), 24 139 pascal_char_dtype init (65), 24 140 pascal_boolean_dtype init (66), 24 141 pascal_record_file_type_dtype init (67), 24 142 pascal_record_type_dtype init (68), 24 143 pascal_set_dtype init (69), 24 144 pascal_enumerated_type_dtype init (70), 24 145 pascal_enumerated_type_element_dtype init (71), 24 146 pascal_enumerated_type_instance_dtype init (72), 24 147 pascal_user_defined_type_dtype init (73), 24 148 pascal_user_defined_type_instance_dtype init (74), 24 149 pascal_text_file_dtype init (75), 24 150 pascal_procedure_type_dtype init (76), 24 151 pascal_variable_formal_parameter_dtype init (77), 24 152 pascal_value_formal_parameter_dtype init (78), 24 153 pascal_entry_formal_parameter_dtype init (79), 24 154 pascal_parameter_procedure_dtype init (80), 24 155 pascal_string_type_dtype init (87)) fixed bin int static options (constant); 24 156 24 157 24 158 /* END INCLUDE FILE ... std_descriptor_types.incl.pl1 */ 22 28 25 1 /* BEGIN INCLUDE FILE ... system.incl.pl1 */ 25 2 25 3 /* Modified: 25 Apr 1979 by PCK to implemnt 4-bit decimal */ 25 4 25 5 dcl ( max_p_flt_bin_1 initial(27), 25 6 max_p_flt_bin_2 initial(63), 25 7 max_p_fix_bin_1 initial(35), 25 8 max_p_fix_bin_2 initial(71), 25 9 25 10 max_p_dec initial(59), 25 11 max_p_bin_or_dec initial (71), /* max (max_p_fix_bin_2, max_p_dec) */ 25 12 25 13 min_scale initial(-128), 25 14 max_scale initial(+127), 25 15 max_bit_string initial(9437184), 25 16 max_char_string initial(1048576), 25 17 max_area_size initial(262144), 25 18 min_area_size initial(28), 25 19 25 20 max_bit_string_constant initial (253), /* max length of bit literals */ 25 21 max_char_string_constant initial (254), /* max length of character literals */ 25 22 max_identifier_length initial (256), 25 23 max_number_of_dimensions initial (127), 25 24 25 25 max_length_precision initial(24), 25 26 max_offset_precision initial(24), /* 18 bits for word offset + 6 bits for bit offset */ 25 27 25 28 max_words_per_variable initial (262144), 25 29 25 30 bits_per_word initial(36), 25 31 bits_per_double initial(72), 25 32 packed_digits_per_character initial(2), 25 33 characters_per_half initial(2), 25 34 characters_per_word initial(4), 25 35 characters_per_double initial(8), 25 36 25 37 bits_per_character initial(9), 25 38 bits_per_half initial(18), 25 39 bits_per_decimal_digit initial(9), 25 40 bits_per_binary_exponent initial(8), 25 41 bits_per_packed_ptr initial(36), 25 42 words_per_packed_pointer initial(1), 25 43 25 44 words_per_fix_bin_1 initial(1), 25 45 words_per_fix_bin_2 initial(2), 25 46 words_per_flt_bin_1 initial(1), 25 47 words_per_flt_bin_2 initial(2), 25 48 words_per_varying_string_header initial(1), 25 49 words_per_offset initial(1), 25 50 words_per_pointer initial(2), 25 51 words_per_label_var initial(4), 25 52 words_per_entry_var initial(4), 25 53 words_per_file_var initial(4), 25 54 words_per_format initial(4), 25 55 words_per_condition_var initial(6), 25 56 25 57 max_index_register_value initial(262143), 25 58 max_signed_index_register_value initial(131071), 25 59 25 60 max_signed_xreg_precision initial(17), 25 61 max_uns_xreg_precision initial(18), 25 62 25 63 default_area_size initial(1024), 25 64 default_flt_bin_p initial(27), 25 65 default_fix_bin_p initial(17), 25 66 default_flt_dec_p initial(10), 25 67 default_fix_dec_p initial(7)) fixed bin(31) internal static options(constant); 25 68 25 69 dcl bits_per_digit initial(4.5) fixed bin(31,1) internal static options(constant); 25 70 25 71 dcl ( integer_type initial("010000000000000000000100000001100000"b), 25 72 dec_integer_type initial("010000000000000000000100000010100000"b), 25 73 pointer_type initial("000001000000000000000100000000000000"b), 25 74 real_type initial("001000000000000000000100000001100000"b), 25 75 complex_type initial("001000000000000000000100000001010000"b), 25 76 builtin_type initial("000000000000000010000000000000000000"b), 25 77 storage_block_type initial("000000000000100000000000000000000000"b), 25 78 arg_desc_type initial("000000000001000000000000000000000000"b), 25 79 local_label_var_type initial("000000001000000000000100000100001000"b), 25 80 entry_var_type initial("000000000100000000000000000000001000"b), 25 81 bit_type initial("000100000000000000000000000000000000"b), 25 82 char_type initial("000010000000000000000000000000000000"b)) bit(36) aligned int static 25 83 options(constant); 25 84 25 85 /* END INCLUDE FILE ... system.incl.pl1 */ 22 29 22 30 22 31 /* program */ 22 32 22 33 string (type) = bv_type; 22 34 prec = bv_prec; 22 35 22 36 if type.structure 22 37 then dtype = structure_dtype; 22 38 else 22 39 22 40 if type.real 22 41 then if type.fixed 22 42 then if type.binary 22 43 then if type.unsigned 22 44 then if prec <= max_p_fix_bin_1 22 45 then dtype = real_fix_bin_1_uns_dtype; 22 46 else dtype = real_fix_bin_2_uns_dtype; 22 47 else if prec <= max_p_fix_bin_1 22 48 then dtype = real_fix_bin_1_dtype; 22 49 else dtype = real_fix_bin_2_dtype; 22 50 else if type.unaligned 22 51 then dtype = real_fix_dec_4bit_bytealigned_ls_dtype; 22 52 else dtype = real_fix_dec_9bit_ls_dtype; 22 53 else if type.binary 22 54 then if prec <= max_p_flt_bin_1 22 55 then dtype = real_flt_bin_1_dtype; 22 56 else dtype = real_flt_bin_2_dtype; 22 57 else if type.unaligned 22 58 then dtype = real_flt_dec_4bit_bytealigned_dtype; 22 59 else dtype = real_flt_dec_9bit_dtype; 22 60 else 22 61 22 62 if type.complex 22 63 then if type.fixed 22 64 then if type.binary 22 65 then if prec <= max_p_fix_bin_1 22 66 then dtype = cplx_fix_bin_1_dtype; 22 67 else dtype = cplx_fix_bin_2_dtype; 22 68 else if type.unaligned 22 69 then dtype = cplx_fix_dec_4bit_bytealigned_ls_dtype; 22 70 else dtype = cplx_fix_dec_9bit_ls_dtype; 22 71 else if type.binary 22 72 then if prec <= max_p_flt_bin_1 22 73 then dtype = cplx_flt_bin_1_dtype; 22 74 else dtype = cplx_flt_bin_2_dtype; 22 75 else if type.unaligned 22 76 then dtype = cplx_flt_dec_4bit_bytealigned_dtype; 22 77 else dtype = cplx_flt_dec_9bit_dtype; 22 78 else 22 79 22 80 if type.bit 22 81 then if type.varying 22 82 then dtype = varying_bit_dtype; 22 83 else dtype = bit_dtype; 22 84 else 22 85 22 86 if type.char 22 87 then if type.varying 22 88 then dtype = varying_char_dtype; 22 89 else dtype = char_dtype; 22 90 else 22 91 22 92 if type.ptr 22 93 then dtype = pointer_dtype; 22 94 else 22 95 22 96 if type.offset 22 97 then dtype = offset_dtype; 22 98 else 22 99 22 100 if type.area 22 101 then dtype = area_dtype; 22 102 else 22 103 22 104 if type.label 22 105 then dtype = label_dtype; 22 106 else 22 107 22 108 if type.entry 22 109 then dtype = entry_dtype; 22 110 else 22 111 22 112 if type.file 22 113 then dtype = file_dtype; 22 114 else 22 115 22 116 if type.picture 22 117 then dtype = char_dtype; 22 118 else dtype = 0; 22 119 22 120 return (dtype); 22 121 22 122 end /* pl1_descriptor_type */; 22 123 22 124 /* END INCLUDE FILE ... pl1_descriptor_type_fcn.incl.pl1 */ 126 127 128 /* program */ 129 130 bp = pt; 131 132 if bp = cg_static_$root 133 then do; 134 base_list, offset_list, block_list, quick_list = null; 135 max_n = 1; 136 min_n = 1000; 137 138 do i = 1 to max_token_length; 139 tokens.first (i), tokens.last (i) = "0"b; 140 end; 141 end; 142 143 sym_pos = cg_static_$sym_pos; 144 sym_ptr = addrel (cg_static_$sym_base, sym_pos); 145 146 cg_static_$cur_block = bp; 147 cg_static_$cur_level = bp -> block.level; 148 149 if bp -> block.block_type = begin_block 150 then goto b1; 151 152 if bp -> block.main = null 153 then goto b1; 154 q = bp -> block.main -> statement.labels -> element (2) -> reference.symbol -> symbol.token; 155 156 if q -> token.loc = "0"b 157 then call make_acc; 158 159 sym_ptr -> runtime_block.name = bit (fixed (262144 + (fixed (q -> token.loc, 18) - sym_pos), 18), 18); 160 161 b1: 162 bp -> block.symbol_block = sym_pos; 163 164 p = create_list (2); 165 p -> element (2) = sym_ptr; 166 p -> element (1) = block_list; 167 block_list = p; 168 169 sym_ptr -> runtime_block.flag = "1"b; 170 sym_ptr -> runtime_block.standard = "1"b; 171 sym_ptr -> runtime_block.quick = bp -> block.no_stack; 172 173 if sym_ptr -> runtime_block.quick 174 then do; 175 sym_ptr -> runtime_block.entry_info = bit (bp -> block.entry_info, 18); 176 q = bp -> block.owner; 177 call make_record (quick_list); 178 end; 179 180 sym_ptr -> runtime_block.fortran = cg_static_$compiler_name = "fortran"; 181 sym_ptr -> runtime_block.type = "011000"b; /* 24 */ 182 sym_ptr -> runtime_block.header = bit (fixed (262144 - sym_pos, 18), 18); 183 sym_ptr -> runtime_block.father = bit (fixed (262144 + (father - sym_pos), 18), 18); 184 185 cg_static_$sym_pos = sym_pos + 10; 186 if sym_ptr -> runtime_block.quick 187 then cg_static_$sym_pos = cg_static_$sym_pos + 1; 188 p = bp -> block.declaration; 189 get_data = bp -> block.get_data; 190 191 k = 0; 192 do while (p ^= null); 193 q = p; 194 195 if p -> symbol.dcl_type = by_compiler 196 then goto step; 197 198 if p -> node.type = label_node 199 then if cg_static_$table_option 200 then goto yes; 201 else goto step; 202 203 if p -> symbol.cross_references = null & ^p -> symbol.allocate & ^get_data 204 then go to step; 205 206 if p -> symbol.builtin 207 then goto step; 208 if p -> symbol.condition 209 then goto step; 210 211 if p -> symbol.runtime ^= "0"b 212 then goto step; 213 214 do while (q -> symbol.father ^= null); 215 q = q -> symbol.father; 216 end; 217 218 if q -> symbol.entry & q -> symbol.external & q -> symbol.constant & q -> symbol.initial = null 219 then goto step; 220 221 if q -> symbol.put_in_symtab 222 then goto yes; 223 if get_data 224 then goto yes; 225 if ^cg_static_$table_option 226 then goto step; 227 228 /* we have to set the qualifier fields of all reference nodes 229* hanging from symbol nodes in a defined structure to point 230* to the base reference of the defined variable */ 231 232 yes: 233 if q -> node.type = symbol_node 234 then if q -> symbol.defined 235 then call set_qualifier (q, p -> symbol.reference -> reference.qualifier); 236 237 sym_loc = mst$data_nodes (q, sym_pos); 238 239 if sym_loc = 0 240 then goto step; 241 242 k = k + 1; 243 token_list (k) = q; 244 245 step: 246 p = p -> symbol.next; 247 end; 248 249 if k = 0 250 then goto do_son; 251 252 call sym_sort_alphabetic$by_size (pl1_stat_$token_list_ptr, (k)); 253 254 prev = null; 255 jstart = 1; 256 257 do i = 1 to k; 258 259 p = token_list (i); 260 if p -> node.type = label_node 261 then sym_loc = fixed (p -> label.symbol_table, 18); 262 else sym_loc = fixed (p -> symbol.runtime, 18); 263 264 delta = sym_loc - sym_pos; 265 266 if prev = null 267 then sym_ptr -> runtime_block.start = bit (delta, 18); 268 else do; 269 n = sym_loc - prev_loc; 270 if n > 0 271 then prev -> runtime_symbol.brother = bit (fixed (n, 18), 18); 272 else prev -> runtime_symbol.brother = bit (fixed (262144 + n, 18), 18); 273 end; 274 275 n = p -> symbol.token -> token.size; 276 277 do j = jstart to 4; 278 if n >= lgth (j) 279 then if sym_ptr -> runtime_block.chain (j) = "0"b 280 then do; 281 jstart = j + 1; 282 sym_ptr -> runtime_block.chain (j) = bit (delta, 18); 283 end; 284 end; 285 286 prev = addrel (cg_static_$sym_base, sym_loc); 287 prev_loc = sym_loc; 288 289 end; 290 291 do_son: 292 if bp -> block.son ^= null 293 then sym_ptr -> runtime_block.son = bit (fixed (mst$block_nodes ((bp -> block.son), sym_pos) - sym_pos, 18), 18); 294 295 if bp -> block.brother ^= null 296 then sym_ptr -> runtime_block.brother = 297 bit (fixed (mst$block_nodes ((bp -> block.brother), father) - sym_pos, 18), 18); 298 299 if bp ^= cg_static_$root 300 then goto thru; 301 302 /* make symbol table of based variable specify symbol table of variable 303* mentioned in the based(p) phrase */ 304 305 p = base_list; 306 do while (p ^= null); 307 sym_loc = p -> record.sym_loc; 308 q = addrel (cg_static_$sym_base, sym_loc); 309 310 n = fixed (p -> record.ptr -> runtime, 18) - sym_loc; 311 if n >= 0 312 then q -> runtime_symbol.location = bit (fixed (n, 18), 18); 313 else q -> runtime_symbol.location = bit (fixed (262144 + n, 18), 18); 314 315 p = p -> record.next; 316 end; 317 318 /* make size field in symbol table of offset variable specify symbol 319* table of variable mentioned in the offset(a) phrase */ 320 321 p = offset_list; 322 do while (p ^= null); 323 sym_loc = p -> record.sym_loc; 324 addrel (cg_static_$sym_base, sym_loc) -> runtime_symbol.size = 325 fixed (p -> record.ptr -> runtime, 18) - sym_loc; 326 327 p = p -> record.next; 328 end; 329 330 /* link quick blocks to their owners */ 331 332 p = quick_list; 333 do while (p ^= null); 334 sym_loc = p -> record.sym_loc; 335 q = addrel (cg_static_$sym_base, sym_loc); 336 337 q -> runtime_block.owner_flag = "1"b; 338 339 n = p -> record.ptr -> block.symbol_block - sym_loc; 340 if n >= 0 341 then q -> runtime_block.owner = bit (fixed (n, 18), 18); 342 else q -> runtime_block.owner = bit (fixed (262144 + n, 18), 18); 343 344 p = p -> record.next; 345 end; 346 347 /* link together the fragments of the token list */ 348 349 i = min_n; 350 351 link: 352 sym_loc = fixed (tokens.last (i), 18); 353 p = addrel (cg_static_$sym_base, sym_loc); 354 355 do j = i + 1 to max_n; 356 if tokens.first (j) 357 then do; 358 k = fixed (tokens.first (j), 18) - sym_loc; 359 if k >= 0 360 then p -> runtime_token.next = bit (k, 18); 361 else p -> runtime_token.next = bit (fixed (262144 + k, 18), 18); 362 363 i = j; 364 goto link; 365 end; 366 end; 367 368 /* set vec(i) to location of first token whose length n 369* is such that 2 ** i <= n < 2 ** (i+1) */ 370 371 vec (0), vec (1), vec (2), vec (3), vec (4), vec (5) = 0; 372 373 do i = 0 to 5; 374 do j = lgth (i) to lgth (i + 1); 375 if tokens.first (j) 376 then do; 377 vec (i) = fixed (tokens.first (j), 18); 378 goto next_i; 379 end; 380 end; 381 next_i: 382 end; 383 384 /* now set the token(i) field in all of the blocks we processed */ 385 386 p = block_list; 387 do while (p ^= null); 388 q = p -> element (2); 389 390 sym_loc = fixed (rel (q), 18) - cg_static_$sym_origin; 391 392 do i = 0 to 5; 393 if vec (i) ^= 0 394 then do; 395 k = vec (i) - sym_loc; 396 if k >= 0 397 then q -> runtime_block.token (i) = bit (k, 18); 398 else q -> runtime_block.token (i) = bit (fixed (262144 + k, 18), 18); 399 end; 400 end; 401 402 p = p -> element (1); 403 end; 404 405 thru: 406 return (sym_pos); 407 408 mst$data_nodes: 409 entry (pt, father) returns (fixed bin (18)); 410 411 p = pt; 412 cb = cg_static_$cur_block; 413 414 if p -> node.type = symbol_node 415 then if p -> symbol.defined 416 then call check_defined (p -> symbol.equivalence); 417 418 sym_pos = cg_static_$sym_pos; 419 sym_ptr = addrel (cg_static_$sym_base, sym_pos); 420 421 q = p -> symbol.token; 422 if q -> token.loc = "0"b 423 then call make_acc; 424 425 k = fixed (q -> token.loc, 18); 426 sym_ptr -> runtime_symbol.name = bit (fixed (262144 + k - sym_pos, 18), 18); 427 428 p1 = addrel (cg_static_$sym_base, k - 1); 429 if p1 -> runtime_token.dcl 430 then do; 431 next_offset = 432 16384 + fixed (rel (addrel (p1, p1 -> runtime_token.dcl)), 18) - cg_static_$sym_origin - sym_pos; 433 if next_offset > 0 434 then sym_ptr -> runtime_symbol.next = bit (fixed (next_offset, 14), 14); 435 else call error (366, null, p); 436 end; 437 p1 -> runtime_token.dcl = bit (fixed (sym_pos - k + 1, 18), 18); 438 439 sym_ptr -> runtime_symbol.father = bit (fixed (262144 + (father - sym_pos), 18), 18); 440 441 sym_ptr -> runtime_symbol.flag = "1"b; 442 443 srp = addrel (cg_static_$sym_reloc_base, sym_pos); 444 445 if p -> node.type = label_node 446 then goto lab; 447 448 p -> runtime = bit (sym_pos, 18); 449 450 sym_ptr -> runtime_symbol.level = bit (fixed (p -> symbol.level, 6), 6); 451 452 sym_ptr -> runtime_symbol.aligned = p -> symbol.aligned; 453 sym_ptr -> runtime_symbol.packed = p -> symbol.packed | p -> symbol.explicit_packed; 454 if p -> symbol.scale >= 0 455 then sym_ptr -> runtime_symbol.scale = bit (fixed (p -> symbol.scale, 8), 8); 456 else sym_ptr -> runtime_symbol.scale = bit (fixed (256 + p -> symbol.scale, 8), 8); 457 458 if ^p -> symbol.entry 459 then if p -> symbol.picture 460 then do; 461 sym_ptr -> runtime_symbol.size = p -> symbol.general -> reference.symbol -> symbol.location; 462 srp -> reloc (4) = rc_a_t; 463 end; 464 else if p -> symtab_size = null 465 then sym_ptr -> runtime_symbol.size = p -> symbol.c_dcl_size; 466 else srp -> reloc (4) = e_v (p, sym_ptr -> runtime_symbol.size, (p -> symtab_size), 0, 1); 467 468 ref = p -> symbol.reference; 469 470 if p -> symbol.picture 471 then dtype = picture_type; 472 473 else if p -> symbol.entry & p -> symbol.constant 474 then if p -> symbol.external 475 then if p -> symbol.initial ^= null 476 then dtype = ext_entry_in_type; 477 else dtype = ext_entry_out_type; 478 else dtype = int_entry_type; 479 480 else do; 481 dtype = pl1_descriptor_type (substr (string (p -> symbol.attributes), 1, 36), p -> symbol.c_dcl_size); 482 483 if p -> symbol.offset 484 then do; 485 q = p -> symbol.general; 486 if q ^= null 487 then if q -> node.type = reference_node 488 then if q -> reference.offset = null 489 then do; 490 q = q -> reference.symbol; 491 call make_record (offset_list); 492 end; 493 end; 494 end; 495 496 p2 = p; 497 498 if p2 -> symbol.defined 499 then do; 500 501 /* defined ok, change so actually encode storage class of 502* base reference */ 503 504 p2 = ref -> reference.qualifier -> reference.symbol; 505 ref = p2 -> symbol.reference; 506 end; 507 508 if p2 -> symbol.auto 509 then do; 510 511 if ref -> reference.qualifier = null 512 then class = 1; 513 else do; 514 class = 2; 515 p2 = ref -> reference.qualifier -> reference.symbol; 516 end; 517 518 goto l2c; 519 end; 520 521 if p2 -> symbol.based 522 then do; 523 class = 3; 524 525 q = ref -> reference.qualifier; 526 if q = null 527 then goto l2; 528 529 if q -> node.type = reference_node 530 then do; 531 if q -> reference.offset ^= null 532 then goto l2; 533 534 q = q -> reference.symbol; 535 if q -> symbol.cross_references ^= null 536 then call make_record (base_list); 537 end; 538 539 goto l2; 540 end; 541 542 if p2 -> symbol.parameter 543 then do; 544 545 if ref -> reference.qualifier -> node.type = operator_node 546 then do; 547 class = 9; 548 if p2 -> symbol.father ^= null 549 then p2 -> symbol.location = p2 -> symbol.father -> symbol.location; 550 end; 551 else do; 552 class = 8; 553 p2 = ref -> reference.qualifier -> reference.symbol; 554 end; 555 556 goto l2c; 557 end; 558 559 if p2 -> symbol.static 560 then do; 561 static: 562 if p2 -> symbol.external 563 then srp -> reloc (3) = rc_lp18; 564 else srp -> reloc (3) = rc_is18; 565 class = 4 + fixed (p2 -> symbol.external, 1); 566 goto l2c; 567 end; 568 569 if p2 -> symbol.constant 570 then do; 571 if p2 -> symbol.file 572 then goto static; 573 574 class = 12; 575 goto l2c; 576 end; 577 578 if p2 -> symbol.controlled 579 then do; 580 class = 6 + fixed (p2 -> symbol.external, 1); 581 goto l2c; 582 end; 583 584 class = 0; 585 586 l2c: 587 sym_ptr -> runtime_symbol.location = bit (fixed (p2 -> symbol.location, 18), 18); 588 l2: 589 sym_ptr -> runtime_symbol.class = bit (class, 4); 590 591 ref = p -> symbol.reference; 592 593 if class = 12 594 then srp -> reloc (3) = rc_t; /* text relocation */ 595 596 p2 = ref -> reference.offset; 597 co = ref -> reference.c_offset; 598 599 units = ref -> reference.units; 600 if units = 0 601 then goto ec; 602 603 if units = word_ 604 then do; 605 units = 0; 606 goto ec; 607 end; 608 609 if p2 = null 610 then goto ec; 611 612 if p2 -> node.type ^= operator_node 613 then goto ec; 614 615 if p2 -> op_code = mod_bit 616 then goto elim; 617 if p2 -> op_code = mod_byte 618 then goto elim; 619 if p2 -> op_code ^= mod_half 620 then goto ec; 621 622 elim: 623 p2 = p2 -> operand (3); 624 625 ec: 626 if p2 = null 627 then sym_ptr -> runtime_symbol.offset = co; 628 else srp -> reloc (5) = e_v (p, sym_ptr -> runtime_symbol.offset, p2, co, 2); 629 630 call encode_runtime_units (sym_ptr -> runtime_symbol.units, sym_ptr -> runtime_symbol.use_digit, units); 631 632 q = p -> symbol.array; 633 634 if q = null 635 then do; 636 if sym_ptr -> runtime_symbol.offset = 0 637 then do; 638 sym_ptr -> runtime_symbol.simple = "1"b; 639 inc = 5; 640 end; 641 else inc = 6; 642 goto l3; 643 end; 644 645 units = q -> array.offset_units; 646 if units = word_ 647 then units = 0; 648 649 call encode_runtime_units (sym_ptr -> runtime_symbol.array_units, sym_ptr -> runtime_symbol.use_digit, units); 650 651 sym_ptr -> runtime_symbol.ndims = bit (fixed (q -> number_of_dimensions, 6), 6); 652 inc = 7 + 3 * q -> number_of_dimensions; 653 654 p2 = q -> symtab_virtual_origin; 655 if p2 = null 656 then sym_ptr -> runtime_symbol.virtual_org = q -> c_virtual_origin; 657 else srp -> reloc (6) = e_v (p, sym_ptr -> virtual_org, p2, (q -> c_virtual_origin), 3); 658 659 p2 = addr (sym_ptr -> runtime_symbol.bounds (q -> number_of_dimensions)); 660 i = inc - 1; 661 q = q -> array.bounds; 662 663 do while (q ^= null); 664 665 if q -> symtab_lower = null 666 then p2 -> runtime_bound.lower = q -> c_lower; 667 else srp -> reloc (i - 2) = e_v (p, p2 -> runtime_bound.lower, (q -> symtab_lower), 0, 4); 668 669 if q -> symtab_upper = null 670 then p2 -> runtime_bound.upper = q -> c_upper; 671 else srp -> reloc (i - 1) = e_v (p, p2 -> runtime_bound.upper, (q -> symtab_upper), 0, 5); 672 673 if q -> c_multiplier ^= 0 674 then p2 -> runtime_bound.multiplier = q -> c_multiplier; 675 else if q -> symtab_multiplier = null 676 then call error (339, null, p); 677 else srp -> reloc (i) = e_v (p, p2 -> runtime_bound.multiplier, (q -> symtab_multiplier), 0, 6); 678 679 p2 = addrel (p2, -3); 680 q = q -> bound.next; 681 i = i - 3; 682 683 end; 684 685 l3: 686 cg_static_$sym_pos = sym_pos + inc; 687 688 sym_ptr -> runtime_symbol.type = bit (fixed (dtype, 6), 6); 689 690 q = p -> symbol.son; 691 if q = null 692 then goto done; 693 694 prev_loc = mst$data_nodes (q, sym_pos); 695 sym_ptr -> runtime_symbol.son = bit (fixed (prev_loc - sym_pos, 18), 18); 696 697 q = q -> symbol.brother; 698 do while (q ^= null); 699 sym_loc = mst$data_nodes (q, sym_pos); 700 addrel (cg_static_$sym_base, prev_loc) -> runtime_symbol.brother = bit (fixed (sym_loc - prev_loc, 18), 18); 701 prev_loc = sym_loc; 702 q = q -> symbol.brother; 703 end; 704 705 done: 706 ret: 707 return (sym_pos); 708 709 defined_error: 710 call error (306, null, p); 711 return (0); 712 713 /* have label node */ 714 715 lab: 716 p -> label.symbol_table = bit (sym_pos, 18); 717 sym_ptr -> runtime_symbol.type = "011000"b; /* label constant */ 718 719 if p -> label.array 720 then do; 721 inc = 10; 722 sym_ptr -> runtime_symbol.ndims = "000001"b; 723 sym_ptr -> runtime_symbol.location = bit (fixed (p -> label.location, 18), 18); 724 725 sym_ptr -> runtime_symbol.virtual_org, sym_ptr -> runtime_symbol.bounds (1).lower = p -> label.low_bound; 726 sym_ptr -> runtime_symbol.bounds (1).upper = p -> label.high_bound; 727 sym_ptr -> runtime_symbol.bounds (1).multiplier = 1; 728 end; 729 else do; 730 inc = 4; 731 sym_ptr -> runtime_symbol.simple = "1"b; 732 end; 733 734 sym_ptr -> runtime_symbol.class = "1100"b; 735 srp -> reloc (3) = rc_t; 736 737 cg_static_$sym_pos = sym_pos + inc; 738 739 goto ret; 740 741 make_record: 742 proc (list_head); 743 744 dcl list_head ptr; 745 746 dcl tp ptr; 747 748 allocate record in (tree_area) set (tp); 749 tp -> record.next = list_head; 750 list_head = tp; 751 752 tp -> record.sym_loc = sym_pos; 753 tp -> record.ptr = q; 754 end; 755 756 set_qualifier: 757 proc (sym_pt, qual); 758 759 dcl sym_pt ptr, /* points at symbol node */ 760 qual ptr unal; /* points at reference node*/ 761 762 dcl sp ptr; 763 764 sp = sym_pt; 765 do while (sp ^= null); 766 sp -> symbol.reference -> reference.qualifier = qual; 767 if sp -> symbol.son ^= null 768 then call set_qualifier ((sp -> symbol.son), qual); 769 770 sp = sp -> symbol.brother; 771 end; 772 773 end; 774 775 check_defined: 776 proc (tree_in); 777 778 dcl tree_in ptr unal, 779 tree ptr, 780 i fixed bin; 781 782 tree = tree_in; 783 784 if tree = null 785 then return; 786 787 if tree -> node.type = operator_node 788 then do i = 1 to tree -> operator.number; 789 call check_defined (tree -> operand (i)); 790 end; 791 792 else if tree -> node.type = list_node 793 then do i = 1 to tree -> list.number; 794 call check_defined (tree -> element (i)); 795 end; 796 797 else if tree -> node.type = reference_node 798 then call check_defined (tree -> reference.offset); 799 800 else if tree -> node.type = token_node 801 then do; 802 if tree -> token.type = asterisk 803 then goto defined_error; 804 if tree -> token.type = isub 805 then goto defined_error; 806 end; 807 808 end; 809 810 make_acc: 811 proc; 812 813 dcl k fixed bin (18), 814 (tp1, tp2, tp3) ptr; 815 816 /* this procedure is called to add a token to the list of tokens being 817* maintained in the symbol buffer. tokens.first(n) specifies the first 818* token on the list of tokens of size n, tokens.last(n) specifies 819* the last token on the list */ 820 821 n = q -> token.size; 822 min_n = min (n, min_n); 823 max_n = max (n, max_n); 824 825 tp1 = addrel (sym_ptr, 1); 826 tp1 -> acc.string = q -> token.string; 827 tp1 -> acc.count = bit (fixed (n, 9), 9); 828 829 q -> token.loc = bit (fixed (sym_pos + 1, 18), 18); 830 831 if tokens.first (n) = (18)"0"b 832 then do; 833 tokens.first (n), tokens.last (n) = bit (sym_pos, 18); 834 goto bump; 835 end; 836 837 tp2 = null; 838 tp3 = addrel (cg_static_$sym_base, tokens.first (n)); 839 do while (tp3 ^= null); 840 if addrel (tp3, 1) -> acc.string > tp1 -> acc.string 841 then do; 842 if tp2 = null 843 then tokens.first (n) = bit (sym_pos, 18); 844 else do; 845 k = sym_pos - fixed (rel (tp2), 18) + cg_static_$sym_origin; 846 if k >= 0 847 then tp2 -> runtime_token.next = bit (k, 18); 848 else tp2 -> runtime_token.next = bit (fixed (262144 + k, 18), 18); 849 end; 850 851 k = fixed (rel (tp3), 18) - cg_static_$sym_origin - sym_pos; 852 if k >= 0 853 then sym_ptr -> runtime_token.next = bit (k, 18); 854 else sym_ptr -> runtime_token.next = bit (fixed (262144 + k, 18), 18); 855 856 goto bump; 857 end; 858 859 tp2 = tp3; 860 if tp3 -> runtime_token.next 861 then tp3 = addrel (tp3, tp3 -> runtime_token.next); 862 else tp3 = null; 863 end; 864 865 /* new token belongs at end of list */ 866 867 tokens.last (n) = bit (sym_pos, 18); 868 k = sym_pos - fixed (rel (tp2), 18) + cg_static_$sym_origin; 869 if k >= 0 870 then tp2 -> runtime_token.next = bit (k, 18); 871 else tp2 -> runtime_token.next = bit (fixed (262144 + k, 18), 18); 872 873 /* update position in symbol buffer by number of words in string plus 1 */ 874 875 bump: 876 k = divide (n + 4, 4, 17, 0) + 1; 877 sym_ptr = addrel (sym_ptr, k); 878 sym_pos = sym_pos + k; 879 880 end; /* Convert internal encoding of offset units to external (runtime symbol table) encoding */ 881 882 encode_runtime_units: 883 procedure (runtime_units, half_really_digit, internal_units); 884 885 /* parameters */ 886 887 dcl runtime_units bit (2) unaligned; 888 dcl half_really_digit bit (1) unaligned; 889 dcl internal_units fixed bin (18); 890 891 if internal_units <= bit_ 892 then runtime_units = bit (fixed (internal_units, 2), 2); 893 else if internal_units = digit_ 894 then do; 895 runtime_units = bit (fixed (character_, 2), 2); 896 half_really_digit = "1"b; /* External encoding of half_ 897* is numerically equal to the internal encoding of char_ */ 898 end; 899 else runtime_units = bit (subtract (internal_units, 1, 2, 0), 2); 900 901 end /* encode_runtime_units */; 902 903 end /* mst */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/24/88 1358.7 mst.pl1 >special_ldd>install>MR12.2-1184>mst.pl1 105 1 07/21/80 1546.3 pl1_tree_areas.incl.pl1 >ldd>include>pl1_tree_areas.incl.pl1 106 2 09/14/77 1705.7 token_list.incl.pl1 >ldd>include>token_list.incl.pl1 107 3 08/13/81 2043.5 block.incl.pl1 >ldd>include>block.incl.pl1 108 4 08/13/81 2211.5 list.incl.pl1 >ldd>include>list.incl.pl1 109 5 07/21/80 1546.3 operator.incl.pl1 >ldd>include>operator.incl.pl1 110 6 04/07/83 1635.0 statement.incl.pl1 >ldd>include>statement.incl.pl1 111 7 09/14/77 1705.7 token.incl.pl1 >ldd>include>token.incl.pl1 112 8 05/06/74 1742.1 label.incl.pl1 >ldd>include>label.incl.pl1 113 9 12/07/83 1701.7 symbol.incl.pl1 >ldd>include>symbol.incl.pl1 114 10 07/21/80 1546.3 reference.incl.pl1 >ldd>include>reference.incl.pl1 115 11 05/06/74 1741.6 array.incl.pl1 >ldd>include>array.incl.pl1 116 12 07/21/80 1546.3 nodes.incl.pl1 >ldd>include>nodes.incl.pl1 117 13 10/25/79 1645.8 boundary.incl.pl1 >ldd>include>boundary.incl.pl1 118 14 10/25/79 1645.8 declare_type.incl.pl1 >ldd>include>declare_type.incl.pl1 119 15 11/30/78 1227.4 token_types.incl.pl1 >ldd>include>token_types.incl.pl1 120 16 05/03/76 1320.8 block_types.incl.pl1 >ldd>include>block_types.incl.pl1 121 17 04/07/83 1635.0 op_codes.incl.pl1 >ldd>include>op_codes.incl.pl1 122 18 12/07/83 1701.7 system.incl.pl1 >ldd>include>system.incl.pl1 123 19 10/30/80 1648.7 relbts.incl.pl1 >ldd>include>relbts.incl.pl1 124 20 10/30/80 1648.7 reloc_lower.incl.pl1 >ldd>include>reloc_lower.incl.pl1 125 21 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 126 22 10/25/79 1645.8 pl1_descriptor_type_fcn.incl.pl1 >ldd>include>pl1_descriptor_type_fcn.incl.pl1 22-27 23 12/07/83 1700.1 pl1_symbol_type.incl.pl1 >ldd>include>pl1_symbol_type.incl.pl1 22-28 24 10/24/88 1336.9 std_descriptor_types.incl.pl1 >special_ldd>install>MR12.2-1184>std_descriptor_types.incl.pl1 22-29 25 12/07/83 1701.7 system.incl.pl1 >ldd>include>system.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. acc based structure level 1 dcl 96 addr builtin function dcl 76 ref 659 addrel builtin function dcl 76 ref 144 286 308 324 335 353 419 428 431 443 679 700 825 838 840 860 877 address 3 based structure level 2 packed packed unaligned dcl 21-3 aligned 0(24) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 452* aligned 31(21) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 452 allocate 33(02) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 203 area 0(07) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-98 area_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-98 array based structure level 1 dcl 11-1 in procedure "mst$block_nodes" array 12 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 632 array 2(15) based bit(1) level 2 in structure "label" packed packed unaligned dcl 8-1 in procedure "mst$block_nodes" ref 719 array_units 0(02) based bit(2) level 2 packed packed unaligned dcl 21-3 set ref 649* asterisk constant bit(9) initial dcl 15-3 ref 802 attributes 31 based structure level 2 dcl 9-3 ref 481 481 auto 32(09) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 508 base_list 000010 internal static pointer dcl 55 set ref 134* 305 535* based 32(10) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 521 begin_block constant bit(9) initial dcl 16-1 ref 149 binary 0(29) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-38 22-53 22-60 22-71 bit 0(03) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-78 bit builtin function dcl 76 in procedure "mst$block_nodes" ref 159 175 182 183 266 270 272 282 291 295 311 313 340 342 359 361 396 398 426 433 437 439 448 450 454 456 586 588 651 688 695 700 715 723 827 829 833 842 846 848 852 854 867 869 871 891 895 899 bit_ constant fixed bin(3,0) initial dcl 13-5 ref 891 bit_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-83 bits 0(24) based structure level 2 packed packed unaligned dcl 21-3 block based structure level 1 dcl 3-5 block_list 000014 internal static pointer dcl 55 set ref 134* 166 167* 386 block_type 24 based bit(9) level 2 packed packed unaligned dcl 3-5 ref 149 bound based structure level 1 dcl 11-21 bounds 12 based pointer level 2 in structure "array" packed packed unaligned dcl 11-1 in procedure "mst$block_nodes" ref 661 bounds 7 based structure array level 2 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 659 bp 000106 automatic pointer dcl 55 set ref 130* 132 146 147 149 152 154 161 171 175 176 188 189 291 291 295 295 299 brother 1(18) based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 270* 272* 700* brother 1(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 295* brother 20 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 697 702 770 brother 2 based pointer level 2 in structure "block" packed packed unaligned dcl 3-5 in procedure "mst$block_nodes" ref 295 295 builtin 31(16) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 206 bv_prec parameter fixed bin(24,0) dcl 22-13 ref 22-8 22-34 bv_type parameter bit(36) packed unaligned dcl 22-13 ref 22-8 22-33 by_compiler constant bit(3) initial dcl 14-5 ref 195 c_dcl_size 30 based fixed bin(24,0) level 2 dcl 9-3 set ref 464 481* c_lower 1 based fixed bin(24,0) level 2 dcl 11-21 ref 665 c_multiplier 3 based fixed bin(24,0) level 2 dcl 11-21 ref 673 673 c_offset 1 based fixed bin(24,0) level 2 dcl 10-3 ref 597 c_upper 2 based fixed bin(24,0) level 2 dcl 11-21 ref 669 c_virtual_origin 4 based fixed bin(24,0) level 2 dcl 11-1 ref 655 657 cb 000120 automatic pointer dcl 55 set ref 412* cg_static_$compiler_name 000442 external static varying char(12) dcl 39 ref 180 cg_static_$cur_block 000434 external static pointer dcl 39 set ref 146* 412 cg_static_$cur_level 000444 external static fixed bin(17,0) dcl 39 set ref 147* cg_static_$root 000436 external static pointer dcl 39 ref 132 299 cg_static_$sym_base 000430 external static pointer dcl 39 ref 144 286 308 324 335 353 419 428 700 838 cg_static_$sym_origin 000450 external static fixed bin(17,0) dcl 39 ref 390 431 845 851 868 cg_static_$sym_pos 000446 external static fixed bin(17,0) dcl 39 set ref 143 185* 186* 186 418 685* 737* cg_static_$sym_reloc_base 000432 external static pointer dcl 39 ref 443 cg_static_$table_option 000440 external static bit(1) packed unaligned dcl 39 ref 198 225 chain 5 based bit(18) array level 2 packed packed unaligned dcl 21-38 set ref 278 282* char 0(04) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-84 char_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-89 22-114 character_ constant fixed bin(3,0) initial dcl 13-5 ref 895 class 000143 automatic fixed bin(4,0) dcl 66 in procedure "mst$block_nodes" set ref 511* 514* 523* 547* 552* 565* 574* 580* 584* 588 593 class 3(18) based bit(4) level 3 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 588* 734* co 000135 automatic fixed bin(31,0) dcl 55 set ref 597* 625 628* compiler_developed 32(35) based structure level 3 packed packed unaligned dcl 9-3 complex 0(31) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-60 condition 31(14) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 208 constant 32(16) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 218 473 569 controlled 32(12) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 578 count based bit(9) level 2 packed packed unaligned dcl 96 set ref 827* cplx_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-60 cplx_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-67 cplx_fix_dec_4bit_bytealigned_ls_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-68 cplx_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-70 cplx_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-71 cplx_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-74 cplx_flt_dec_4bit_bytealigned_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-75 cplx_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-77 create_list 000460 constant entry external dcl 83 ref 164 cross_references 10 based pointer level 2 packed packed unaligned dcl 9-3 ref 203 535 data_type 31 based structure level 3 packed packed unaligned dcl 9-3 dcl 0(18) based bit(18) level 2 packed packed unaligned dcl 21-63 set ref 429 431 437* dcl_type 1(19) based bit(3) level 2 packed packed unaligned dcl 9-3 ref 195 declaration 4 based pointer level 2 packed packed unaligned dcl 3-5 ref 188 defined 32(13) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 232 414 498 delta 000133 automatic fixed bin(18,0) dcl 55 set ref 264* 266 282 digit_ constant fixed bin(3,0) initial dcl 13-5 ref 893 divide builtin function dcl 76 ref 875 dtype 000140 automatic fixed bin(18,0) dcl 66 in procedure "mst$block_nodes" set ref 470* 473* 477* 478* 481* 688 dtype 000161 automatic fixed bin(17,0) dcl 22-18 in procedure "pl1_descriptor_type" set ref 22-36* 22-38* 22-46* 22-47* 22-49* 22-50* 22-52* 22-53* 22-56* 22-57* 22-59* 22-60* 22-67* 22-68* 22-70* 22-71* 22-74* 22-75* 22-77* 22-78* 22-83* 22-84* 22-89* 22-90* 22-94* 22-98* 22-102* 22-106* 22-110* 22-114* 22-118* 22-120 e_v 000462 constant entry external dcl 83 ref 466 628 657 667 671 677 element 1 based pointer array level 2 packed packed unaligned dcl 4-6 set ref 154 165* 166* 388 402 794* entry 0(09) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-106 entry 31(09) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 218 458 473 entry_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-106 entry_info 50 based fixed bin(18,0) level 2 in structure "block" dcl 3-5 in procedure "mst$block_nodes" ref 175 entry_info 4 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 175* equivalence 14 based pointer level 2 packed packed unaligned dcl 9-3 set ref 414* error 000464 constant entry external dcl 83 ref 435 675 709 explicit_packed 31(13) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 453 ext_entry_in_type constant fixed bin(17,0) initial dcl 87 ref 473 ext_entry_out_type constant fixed bin(17,0) initial dcl 87 ref 477 external 32(02) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 218 473 561 565 580 father 17 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 214 215 548 548 father 2 based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 439* father parameter fixed bin(18,0) dcl 36 in procedure "mst$block_nodes" set ref 33 183 295* 408 439 father 2 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 183* file 0(10) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-110 file 31(10) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 571 file_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-110 first 000030 internal static bit(18) array level 2 packed packed unaligned dcl 70 set ref 139* 356 358 375 377 831 833* 838 842* fixed builtin function dcl 76 in procedure "mst$block_nodes" ref 159 159 182 183 260 262 270 272 291 295 310 311 313 324 340 342 351 358 361 377 390 398 425 426 431 433 437 439 450 454 456 565 580 586 651 688 695 700 723 827 829 845 848 851 854 868 871 891 895 fixed 0(01) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-38 22-60 flag based bit(1) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 169* flag based bit(1) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 441* fortran 0(02) based bit(1) level 2 packed packed unaligned dcl 21-38 set ref 180* general 16 based pointer level 2 packed packed unaligned dcl 9-3 ref 461 485 get_data 24(23) based bit(1) level 2 in structure "block" packed packed unaligned dcl 3-5 in procedure "mst$block_nodes" ref 189 get_data 000136 automatic bit(1) dcl 65 in procedure "mst$block_nodes" set ref 189* 203 223 half_really_digit parameter bit(1) packed unaligned dcl 888 set ref 882 896* header 4(18) based bit(18) level 2 packed packed unaligned dcl 21-38 set ref 182* high_bound 3(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 8-1 ref 726 i 000127 automatic fixed bin(18,0) dcl 55 in procedure "mst$block_nodes" set ref 138* 139 139* 257* 259* 349* 351 355 363* 373* 374 374 377* 392* 393 395 396 398* 660* 667 671 677 681* 681 i 000102 automatic fixed bin(17,0) dcl 778 in procedure "check_defined" set ref 787* 789* 792* 794* inc 000141 automatic fixed bin(18,0) dcl 66 set ref 639* 641* 652* 660 685 721* 730* 737 initial 11 based pointer level 2 packed packed unaligned dcl 9-3 ref 218 473 int_entry_type constant fixed bin(17,0) initial dcl 87 ref 478 internal_units parameter fixed bin(18,0) dcl 889 ref 882 891 891 893 899 isub constant bit(9) initial dcl 15-3 ref 804 j 000131 automatic fixed bin(18,0) dcl 55 set ref 277* 278 278 281 282* 355* 356 358 363* 374* 375 377* jstart 000132 automatic fixed bin(18,0) dcl 55 set ref 255* 277 281* k 000130 automatic fixed bin(18,0) dcl 55 in procedure "mst$block_nodes" set ref 191* 242* 242 243 249 252 257 358* 359 359 361 395* 396 396 398 425* 426 428 437 k 000202 automatic fixed bin(18,0) dcl 813 in procedure "make_acc" set ref 845* 846 846 848 851* 852 852 854 868* 869 869 871 875* 877 878 label 0(08) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-102 label based structure level 1 dcl 8-1 in procedure "mst$block_nodes" label_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-102 label_node constant bit(9) initial dcl 12-5 ref 198 260 445 labels 4 based pointer level 2 packed packed unaligned dcl 6-9 ref 154 last 0(18) 000030 internal static bit(18) array level 2 packed packed unaligned dcl 70 set ref 139* 351 833* 867* level 2(11) based fixed bin(8,0) level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 450 level 0(12) based bit(6) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 450* level 45 based fixed bin(17,0) level 2 in structure "block" dcl 3-5 in procedure "mst$block_nodes" ref 147 lgth 000000 constant fixed bin(16,0) initial array dcl 55 ref 278 374 374 list based structure level 1 dcl 4-6 list_head parameter pointer dcl 744 set ref 741 749 750* list_node constant bit(9) initial dcl 12-5 ref 792 loc 0(18) based bit(18) level 2 packed packed unaligned dcl 7-3 set ref 156 159 422 425 829* location 1 based fixed bin(18,0) level 2 in structure "symbol" packed packed unsigned unaligned dcl 9-3 in procedure "mst$block_nodes" set ref 461 548* 548 586 location 1 based fixed bin(17,0) level 2 in structure "label" packed packed unaligned dcl 8-1 in procedure "mst$block_nodes" ref 723 location 3 based bit(18) level 3 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 311* 313* 586* 723* low_bound 3 based fixed bin(17,0) level 2 packed packed unaligned dcl 8-1 ref 725 lower based fixed bin(35,0) level 2 in structure "runtime_bound" dcl 21-33 in procedure "mst$block_nodes" set ref 665* 667* lower 7 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 725* main 13 based pointer level 2 packed packed unaligned dcl 3-5 ref 152 154 max builtin function dcl 76 ref 823 max_n 000026 internal static fixed bin(17,0) dcl 55 set ref 135* 355 823* 823 max_p_fix_bin_1 constant fixed bin(31,0) initial dcl 25-5 ref 22-38 22-47 22-60 max_p_flt_bin_1 constant fixed bin(31,0) initial dcl 25-5 ref 22-53 22-71 max_token_length constant fixed bin(17,0) initial dcl 70 ref 138 min builtin function dcl 76 ref 822 min_n 000027 internal static fixed bin(17,0) dcl 55 set ref 136* 349 822* 822 misc_attributes 31(19) based structure level 3 packed packed unaligned dcl 9-3 mod_bit constant bit(9) initial dcl 17-8 ref 615 mod_byte constant bit(9) initial dcl 17-8 ref 617 mod_half constant bit(9) initial dcl 17-8 ref 619 mst$block_nodes 000452 constant entry external dcl 79 ref 291 295 mst$data_nodes 000454 constant entry external dcl 79 ref 237 694 699 multiplier 11 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 727* multiplier 2 based fixed bin(35,0) level 2 in structure "runtime_bound" dcl 21-33 in procedure "mst$block_nodes" set ref 673* 677* n 000137 automatic fixed bin(18,0) dcl 66 set ref 269* 270 270 272 275* 278 310* 311 311 313 339* 340 340 342 821* 822 823 826 827 831 833 833 838 840 840 842 867 875 name 1 based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 426* name 1 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 159* ndims 0(18) based bit(6) level 2 packed packed unaligned dcl 21-3 set ref 651* 722* next 6 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 245 next 3(22) based bit(14) level 3 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 433* next 14 based pointer level 2 in structure "bound" packed packed unaligned dcl 11-21 in procedure "mst$block_nodes" ref 680 next based bit(18) level 2 in structure "runtime_token" packed packed unaligned dcl 21-63 in procedure "mst$block_nodes" set ref 359* 361* 846* 848* 852* 854* 860 860 869* 871* next based pointer level 2 in structure "record" dcl 100 in procedure "mst$block_nodes" set ref 315 327 344 749* next_offset 000142 automatic fixed bin(14,0) dcl 66 set ref 431* 433 433 no_stack 24(22) based bit(1) level 2 packed packed unaligned dcl 3-5 ref 171 node based structure level 1 dcl 12-27 null builtin function dcl 76 ref 134 152 192 203 214 218 254 266 291 295 306 322 333 387 435 435 464 473 486 486 511 526 531 535 548 609 625 634 655 663 665 669 675 675 675 691 698 709 709 765 767 784 837 839 842 862 number 0(21) based fixed bin(14,0) level 2 in structure "list" packed packed unaligned dcl 4-6 in procedure "mst$block_nodes" ref 792 number 0(21) based fixed bin(14,0) level 2 in structure "operator" packed packed unaligned dcl 5-6 in procedure "mst$block_nodes" ref 787 number_of_dimensions 1(07) based fixed bin(7,0) level 2 packed packed unaligned dcl 11-1 ref 651 652 659 offset 5 based fixed bin(35,0) level 2 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 625* 628* 636 offset 31(06) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 483 offset 0(06) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-94 offset 5 based pointer level 2 in structure "reference" packed packed unaligned dcl 10-3 in procedure "mst$block_nodes" set ref 486 531 596 797* offset_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-94 offset_list 000012 internal static pointer dcl 55 set ref 134* 321 491* offset_units 1(31) based fixed bin(3,0) level 2 packed packed unaligned dcl 11-1 ref 645 op_code 0(09) based bit(9) level 2 packed packed unaligned dcl 5-6 ref 615 617 619 operand 1 based pointer array level 2 packed packed unaligned dcl 5-6 set ref 622 789* operator based structure level 1 dcl 5-6 operator_node constant bit(9) initial dcl 12-5 ref 545 612 787 owner 54 based pointer level 2 in structure "block" dcl 3-5 in procedure "mst$block_nodes" ref 176 owner 12 based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 340* 342* owner_flag 0(04) based bit(1) level 2 packed packed unaligned dcl 21-38 set ref 337* p 000100 automatic pointer dcl 55 set ref 164* 165 166 167 188* 192 193 195 198 203 203 206 208 211 232 245* 245 259* 260 260 262 275 305* 306 307 310 315* 315 321* 322 323 324 327* 327 332* 333 334 339 344* 344 353* 359 361 386* 387 388 402* 402 411* 414 414 414 421 435* 445 448 450 452 453 453 454 454 456 458 458 461 464 464 466* 466 468 470 473 473 473 473 481 481 481 483 485 496 591 628* 632 657* 667* 671* 675* 677* 690 709* 715 719 723 725 726 p1 000102 automatic pointer dcl 55 set ref 428* 429 431 431 437 p2 000104 automatic pointer dcl 55 set ref 496* 498 504* 505 508 515* 521 542 548 548 548 553* 559 561 565 569 571 578 580 586 596* 609 612 615 617 619 622* 622 625 628* 654* 655 657* 659* 665 667 669 671 673 677 679* 679 packed 33 based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 453 packed 0(25) based bit(1) level 3 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 453* parameter 32(14) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 542 picture 0(18) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-114 picture 31(18) based bit(1) level 4 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 458 470 picture_type constant fixed bin(17,0) initial dcl 87 ref 470 pl1_stat_$token_list_ptr 000470 external static pointer dcl 2-1 set ref 252* 2-3 pl1_stat_$tree_area_ptr 000466 external static pointer dcl 1-7 ref 748 pointer_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-90 prec 000160 automatic fixed bin(24,0) dcl 22-18 set ref 22-34* 22-38 22-47 22-53 22-60 22-71 prev 000112 automatic pointer dcl 55 set ref 254* 266 270 272 286* prev_loc 000126 automatic fixed bin(18,0) dcl 55 set ref 269 287* 694* 695 700 700 701* pt parameter pointer dcl 36 ref 33 130 408 411 ptr 0(05) 000162 automatic bit(1) level 2 in structure "type" packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-90 ptr 2 based pointer level 2 in structure "record" dcl 100 in procedure "mst$block_nodes" set ref 310 324 339 753* put_in_symtab 33(08) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 221 q 000110 automatic pointer dcl 55 set ref 154* 156 159 176* 193* 214 215* 215 218 218 218 218 221 232 232 232* 237* 243 308* 311 313 335* 337 340 342 388* 390 396 398 421* 422 425 485* 486 486 486 490* 490 525* 526 529 531 534* 534 535 632* 634 645 651 652 654 655 657 659 661* 661 663 665 665 667 669 669 671 673 673 675 677 680* 680 690* 691 694* 697* 697 698 699* 702* 702 753 821 826 829 qual parameter pointer packed unaligned dcl 759 set ref 756 766 767* qualifier 4 based pointer level 2 packed packed unaligned dcl 10-3 set ref 232* 504 511 515 525 545 553 766* quick 0(01) based bit(1) level 2 packed packed unaligned dcl 21-38 set ref 171* 173 186 quick_list 000016 internal static pointer dcl 55 set ref 134* 177* 332 rc_a_t constant bit(36) initial dcl 20-6 ref 462 rc_is18 constant bit(18) initial packed unaligned dcl 19-6 ref 564 rc_lp18 constant bit(18) initial packed unaligned dcl 19-6 ref 561 rc_t constant bit(18) initial packed unaligned dcl 19-6 ref 593 735 real 0(30) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-38 real_fix_bin_1_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-47 real_fix_bin_1_uns_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-38 real_fix_bin_2_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-49 real_fix_bin_2_uns_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-46 real_fix_dec_4bit_bytealigned_ls_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-50 real_fix_dec_9bit_ls_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-52 real_flt_bin_1_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-53 real_flt_bin_2_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-56 real_flt_dec_4bit_bytealigned_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-57 real_flt_dec_9bit_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-59 record based structure level 1 unaligned dcl 100 set ref 748 ref 000122 automatic pointer dcl 55 set ref 468* 504 505* 511 515 525 545 553 591* 596 597 599 reference based structure level 1 dcl 10-3 in procedure "mst$block_nodes" reference 15 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 232 468 505 591 766 reference_node constant bit(9) initial dcl 12-5 ref 486 529 797 rel builtin function dcl 76 ref 390 431 845 851 868 reloc based bit(36) array dcl 94 set ref 462* 466* 561* 564* 593* 628* 657* 667* 671* 677* 735* runtime 3 based bit(18) level 2 packed packed unaligned dcl 9-3 set ref 211 262 310 324 448* runtime_block based structure level 1 dcl 21-38 runtime_bound based structure level 1 unaligned dcl 21-33 runtime_symbol based structure level 1 dcl 21-3 runtime_token based structure level 1 dcl 21-63 runtime_units parameter bit(2) packed unaligned dcl 887 set ref 882 891* 895* 899* scale 0(28) based bit(8) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 454* 456* scale 2(28) based fixed bin(7,0) level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 454 454 456 simple 0(26) based bit(1) level 3 packed packed unaligned dcl 21-3 set ref 638* 731* size 3 based fixed bin(9,0) level 2 in structure "token" dcl 7-3 in procedure "mst$block_nodes" ref 275 821 826 size 4 based fixed bin(35,0) level 2 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 324* 461* 464* 466* son 2(18) based bit(18) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 291* son 2(18) based bit(18) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 695* son 3 based pointer level 2 in structure "block" packed packed unaligned dcl 3-5 in procedure "mst$block_nodes" ref 291 291 son 21 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 690 767 767 sp 000100 automatic pointer dcl 762 set ref 764* 765 766 767 767 770* 770 srp 000116 automatic pointer dcl 55 set ref 443* 462 466 561 564 593 628 657 667 671 677 735 standard 0(03) based bit(1) level 2 packed packed unaligned dcl 21-38 set ref 170* start 0(18) based bit(18) level 2 packed packed unaligned dcl 21-38 set ref 266* statement based structure level 1 dcl 6-9 static 32(11) based bit(1) level 4 packed packed unaligned dcl 9-3 ref 559 storage_class 32(09) based structure level 3 packed packed unaligned dcl 9-3 string 4 based char level 2 in structure "token" dcl 7-3 in procedure "mst$block_nodes" ref 826 string builtin function dcl 22-23 in procedure "pl1_descriptor_type" set ref 22-33* string 0(09) based char level 2 in structure "acc" packed packed unaligned dcl 96 in procedure "mst$block_nodes" set ref 826* 840 840 string builtin function dcl 76 in procedure "mst$block_nodes" ref 481 481 structure 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-36 structure_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-36 substr builtin function dcl 76 ref 481 481 subtract builtin function dcl 76 ref 899 sym_loc 000125 automatic fixed bin(18,0) dcl 55 in procedure "mst$block_nodes" set ref 237* 239 260* 262* 264 269 286 287 307* 308 310 323* 324 324 334* 335 339 351* 353 358 390* 395 699* 700 701 sym_loc 4 based fixed bin(17,0) level 2 in structure "record" dcl 100 in procedure "mst$block_nodes" set ref 307 323 334 752* sym_pos 000124 automatic fixed bin(18,0) dcl 55 set ref 143* 144 159 161 182 183 185 237* 264 291* 291 295 405 418* 419 426 431 437 439 443 448 685 694* 695 699* 705 715 737 752 829 833 842 845 851 867 868 878* 878 sym_pt parameter pointer dcl 759 ref 756 764 sym_ptr 000114 automatic pointer dcl 55 set ref 144* 159 165 169 170 171 173 175 180 181 182 183 186 266 278 282 291 295 419* 426 433 439 441 450 452 453 454 456 461 464 466 586 588 625 628 630 630 636 638 649 649 651 655 657 659 688 695 717 722 723 725 725 726 727 731 734 825 852 854 877* 877 sym_sort_alphabetic$by_size 000456 constant entry external dcl 81 ref 252 symbol 3 based pointer level 2 in structure "reference" packed packed unaligned dcl 10-3 in procedure "mst$block_nodes" ref 154 461 490 504 515 534 553 symbol based structure level 1 dcl 9-3 in procedure "mst$block_nodes" symbol_block 47 based fixed bin(17,0) level 2 dcl 3-5 set ref 161* 339 symbol_node constant bit(9) initial dcl 12-5 ref 232 414 symbol_table 2(18) based bit(18) level 2 packed packed unaligned dcl 8-1 set ref 260 715* symtab_lower 11 based pointer level 2 packed packed unaligned dcl 11-21 ref 665 667 symtab_multiplier 13 based pointer level 2 packed packed unaligned dcl 11-21 ref 675 677 symtab_size 25 based pointer level 2 packed packed unaligned dcl 9-3 ref 464 466 symtab_upper 12 based pointer level 2 packed packed unaligned dcl 11-21 ref 669 671 symtab_virtual_origin 10 based pointer level 2 packed packed unaligned dcl 11-1 ref 654 token 5 based pointer level 2 in structure "symbol" packed packed unaligned dcl 9-3 in procedure "mst$block_nodes" ref 154 275 421 token 7 based bit(18) array level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 396* 398* token based structure level 1 dcl 7-3 in procedure "mst$block_nodes" token_list based pointer array dcl 2-2 set ref 243* 259 token_list_pointer 000144 automatic pointer initial dcl 2-3 set ref 243 259 2-3* token_node constant bit(9) initial dcl 12-5 ref 800 tokens 000030 internal static structure array level 1 packed packed unaligned dcl 70 tp 000172 automatic pointer dcl 746 set ref 748* 749 750 752 753 tp1 000204 automatic pointer dcl 813 set ref 825* 826 827 840 tp2 000206 automatic pointer dcl 813 set ref 837* 842 845 846 848 859* 868 869 871 tp3 000210 automatic pointer dcl 813 set ref 838* 839 840 851 859 860 860* 860 860 862* tree 000100 automatic pointer dcl 778 set ref 782* 784 787 787 789 792 792 794 797 797 800 802 804 tree_area based area(1024) dcl 1-4 ref 748 tree_in parameter pointer packed unaligned dcl 778 ref 775 782 type 0(06) based bit(6) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 688* 717* type 0(06) based bit(6) level 2 in structure "runtime_block" packed packed unaligned dcl 21-38 in procedure "mst$block_nodes" set ref 181* type 0(09) based bit(9) level 2 in structure "token" packed packed unaligned dcl 7-3 in procedure "mst$block_nodes" ref 802 804 type 000162 automatic structure level 1 packed packed unaligned dcl 23-3 in procedure "pl1_descriptor_type" set ref 22-33* type based bit(9) level 2 in structure "node" packed packed unaligned dcl 12-27 in procedure "mst$block_nodes" ref 198 232 260 414 445 486 529 545 612 787 792 797 800 unaligned 0(22) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-50 22-57 22-68 22-75 units 000134 automatic fixed bin(18,0) dcl 55 in procedure "mst$block_nodes" set ref 599* 600 603 605* 630* 645* 646 646* 649* units 0(14) based fixed bin(3,0) level 2 in structure "reference" packed packed unaligned dcl 10-3 in procedure "mst$block_nodes" ref 599 units 0(04) based bit(2) level 2 in structure "runtime_symbol" packed packed unaligned dcl 21-3 in procedure "mst$block_nodes" set ref 630* unsigned 0(24) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-38 upper 1 based fixed bin(35,0) level 2 in structure "runtime_bound" dcl 21-33 in procedure "mst$block_nodes" set ref 669* 671* upper 10 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 21-3 in procedure "mst$block_nodes" set ref 726* use_digit 0(01) based bit(1) level 2 packed packed unaligned dcl 21-3 set ref 630* 649* varying 0(26) 000162 automatic bit(1) level 2 packed packed unaligned dcl 23-3 set ref 22-78 22-84 varying_bit_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-78 varying_char_dtype constant fixed bin(17,0) initial dcl 24-25 ref 22-84 vec 000020 internal static fixed bin(18,0) array dcl 55 set ref 371* 371* 371* 371* 371* 371* 377* 393 395 virtual_org 6 based fixed bin(35,0) level 2 dcl 21-3 set ref 655* 657* 725* word_ constant fixed bin(3,0) initial dcl 13-5 ref 603 646 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. a_format internal static bit(9) initial dcl 17-8 abs_fun internal static bit(9) initial dcl 17-8 acos_fun internal static bit(9) initial dcl 17-8 acosd_fun internal static bit(9) initial dcl 17-8 add internal static bit(9) initial dcl 17-8 addbitno_fun internal static bit(9) initial dcl 17-8 addcharno_fun internal static bit(9) initial dcl 17-8 addr_fun internal static bit(9) initial dcl 17-8 addr_fun_bits internal static bit(9) initial dcl 17-8 addrel_fun internal static bit(9) initial dcl 17-8 algol68_array_descriptor_dtype internal static fixed bin(17,0) initial dcl 24-25 algol68_bits_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_bool_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_byte_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_char_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_compl_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_format_dtype internal static fixed bin(17,0) initial dcl 24-25 algol68_int_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_long_compl_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_long_int_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_long_real_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_real_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_short_int_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_straight_dtype internal static fixed bin(17,0) initial dcl 24-25 algol68_struct_struct_bool_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_struct_struct_char_dtype internal static fixed bin(17,0) initial dcl 24-110 algol68_union_dtype internal static fixed bin(17,0) initial dcl 24-25 allocation_fun internal static bit(9) initial dcl 17-8 allot_auto internal static bit(9) initial dcl 17-8 allot_based internal static bit(9) initial dcl 17-8 allot_ctl internal static bit(9) initial dcl 17-8 allot_var internal static bit(9) initial dcl 17-8 and internal static bit(9) initial dcl 15-3 and_bits internal static bit(9) initial dcl 17-8 arg_desc_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" arg_desc_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" array_node internal static bit(9) initial dcl 12-5 arrow internal static bit(9) initial dcl 15-3 asin_fun internal static bit(9) initial dcl 17-8 asind_fun internal static bit(9) initial dcl 17-8 assign internal static bit(9) initial dcl 17-8 assign_by_name internal static bit(9) initial dcl 17-8 assign_round internal static bit(9) initial dcl 17-8 assign_size_ck internal static bit(9) initial dcl 17-8 assign_zero internal static bit(9) initial dcl 17-8 assignment internal static bit(9) initial dcl 15-3 atan_fun internal static bit(9) initial dcl 17-8 atand_fun internal static bit(9) initial dcl 17-8 b_format internal static bit(9) initial dcl 17-8 baseno_fun internal static bit(9) initial dcl 17-8 baseptr_fun internal static bit(9) initial dcl 17-8 bin_integer internal static bit(9) initial dcl 15-3 bit_pointer internal static bit(9) initial dcl 17-8 bit_string internal static bit(9) initial dcl 15-3 bit_to_char internal static bit(9) initial dcl 17-8 bit_to_word internal static bit(9) initial dcl 17-8 bit_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" bit_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" bitno_fun internal static bit(9) initial dcl 17-8 bits_per_binary_exponent internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_binary_exponent internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_character internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_character internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_decimal_digit internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_decimal_digit internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_digit internal static fixed bin(31,1) initial dcl 18-69 in procedure "mst$block_nodes" bits_per_digit internal static fixed bin(31,1) initial dcl 25-69 in procedure "pl1_descriptor_type" bits_per_double internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_double internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_half internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_half internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_packed_ptr internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" bits_per_packed_ptr internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_word internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" bits_per_word internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" block_node internal static bit(9) initial dcl 12-5 bn_format internal static bit(9) initial dcl 17-8 bool_fun internal static bit(9) initial dcl 17-8 bound_ck internal static bit(9) initial dcl 17-8 bound_node internal static bit(9) initial dcl 12-5 builtin_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" builtin_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" by_context internal static bit(3) initial dcl 14-5 by_declare internal static bit(3) initial dcl 14-5 by_explicit_context internal static bit(3) initial dcl 14-5 by_implication internal static bit(3) initial dcl 14-5 by_name_agg_node internal static bit(9) initial dcl 12-5 byte_fun internal static bit(9) initial dcl 17-8 c_enum_const_dtype internal static fixed bin(17,0) initial dcl 24-25 c_enum_dtype internal static fixed bin(17,0) initial dcl 24-25 c_format internal static bit(9) initial dcl 17-8 c_typeref_dtype internal static fixed bin(17,0) initial dcl 24-25 c_union_dtype internal static fixed bin(17,0) initial dcl 24-25 cat internal static bit(9) initial dcl 15-3 cat_string internal static bit(9) initial dcl 17-8 ceil_fun internal static bit(9) initial dcl 17-8 char_string internal static bit(9) initial dcl 15-3 char_to_word internal static bit(9) initial dcl 17-8 char_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" char_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" characters_per_double internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" characters_per_double internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" characters_per_half internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" characters_per_half internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" characters_per_word internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" characters_per_word internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" charno_fun internal static bit(9) initial dcl 17-8 clock_fun internal static bit(9) initial dcl 17-8 close_file internal static bit(9) initial dcl 17-8 cobol_char_string_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_5_ts_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_5_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_6_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_7_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_8_ls_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_comp_8_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_display_ls_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_display_ls_overp_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_display_ts_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_display_ts_overp_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_display_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 cobol_structure_dtype internal static fixed bin(17,0) initial dcl 24-25 codeptr_fun internal static bit(9) initial dcl 17-8 colon internal static bit(9) initial dcl 15-3 column_format internal static bit(9) initial dcl 17-8 comma internal static bit(9) initial dcl 15-3 complex_fun internal static bit(9) initial dcl 17-8 complex_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" complex_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" conjg_fun internal static bit(9) initial dcl 17-8 context_node internal static bit(9) initial dcl 12-5 copy_string internal static bit(9) initial dcl 17-8 copy_words internal static bit(9) initial dcl 17-8 cos_fun internal static bit(9) initial dcl 17-8 cosd_fun internal static bit(9) initial dcl 17-8 cplx_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 24-25 cplx_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 24-25 cplx_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 24-25 cplx_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 24-25 cplx_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 24-25 cross_reference_node internal static bit(9) initial dcl 12-5 dec_integer internal static bit(9) initial dcl 15-3 dec_integer_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" dec_integer_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" default_area_size internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" default_area_size internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" default_fix_bin_p internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" default_fix_bin_p internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" default_fix_dec_p internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" default_fix_dec_p internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" default_flt_bin_p internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" default_flt_bin_p internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" default_flt_dec_p internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" default_flt_dec_p internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" default_node internal static bit(9) initial dcl 12-5 delete_file internal static bit(9) initial dcl 17-8 desc_size internal static bit(9) initial dcl 17-8 digit_to_bit internal static bit(9) initial dcl 17-8 div internal static bit(9) initial dcl 17-8 do_fun internal static bit(9) initial dcl 17-8 do_spec internal static bit(9) initial dcl 17-8 e_format internal static bit(9) initial dcl 17-8 empty_area internal static bit(9) initial dcl 17-8 enable_on internal static bit(9) initial dcl 17-8 encoded_value based structure level 1 dcl 21-70 entry_var_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" entry_var_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" environmentptr_fun internal static bit(9) initial dcl 17-8 eq internal static bit(9) initial dcl 15-3 equal internal static bit(9) initial dcl 17-8 ex_prologue internal static bit(9) initial dcl 17-8 exp internal static bit(9) initial dcl 17-8 exp_fun internal static bit(9) initial dcl 17-8 expon internal static bit(9) initial dcl 15-3 ext_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 24-125 ext_procedure_runtime_dtype internal static fixed bin(17,0) initial dcl 24-125 external_procedure internal static bit(9) initial dcl 16-1 f_format internal static bit(9) initial dcl 17-8 fixed_bin internal static bit(9) initial dcl 15-3 fixed_dec internal static bit(9) initial dcl 15-3 float_bin internal static bit(9) initial dcl 15-3 float_dec internal static bit(9) initial dcl 15-3 floor_fun internal static bit(9) initial dcl 17-8 format_value_node internal static bit(9) initial dcl 12-5 fortran_read internal static bit(9) initial dcl 17-8 fortran_write internal static bit(9) initial dcl 17-8 free_based internal static bit(9) initial dcl 17-8 free_ctl internal static bit(9) initial dcl 17-8 free_var internal static bit(9) initial dcl 17-8 ft_char_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_complex_double_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_complex_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_double_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_external_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_hex_complex_double_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_hex_complex_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_hex_double_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_hex_real_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_integer_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_logical_dtype internal static fixed bin(17,0) initial dcl 24-96 ft_real_dtype internal static fixed bin(17,0) initial dcl 24-96 ftn_file_manip internal static bit(9) initial dcl 17-8 ftn_trans_loop internal static bit(9) initial dcl 17-8 ge internal static bit(9) initial dcl 15-3 get_data_trans internal static bit(9) initial dcl 17-8 get_edit_trans internal static bit(9) initial dcl 17-8 get_file internal static bit(9) initial dcl 17-8 get_list_trans internal static bit(9) initial dcl 17-8 get_string internal static bit(9) initial dcl 17-8 greater_or_equal internal static bit(9) initial dcl 17-8 greater_than internal static bit(9) initial dcl 17-8 gt internal static bit(9) initial dcl 15-3 half_ internal static fixed bin(3,0) initial dcl 13-5 half_to_word internal static bit(9) initial dcl 17-8 i_bin_integer internal static bit(9) initial dcl 15-3 i_dec_integer internal static bit(9) initial dcl 15-3 i_fixed_bin internal static bit(9) initial dcl 15-3 i_fixed_dec internal static bit(9) initial dcl 15-3 i_float_bin internal static bit(9) initial dcl 15-3 i_float_dec internal static bit(9) initial dcl 15-3 identifier internal static bit(9) initial dcl 15-3 imag_fun internal static bit(9) initial dcl 17-8 index_after_fun internal static bit(9) initial dcl 17-8 index_before_fun internal static bit(9) initial dcl 17-8 index_fun internal static bit(9) initial dcl 17-8 index_rev_fun internal static bit(9) initial dcl 17-8 int_entry_runtime_dtype internal static fixed bin(17,0) initial dcl 24-125 integer_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" integer_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" internal_procedure internal static bit(9) initial dcl 16-1 is_arith_constant internal static bit(9) initial dcl 15-47 is_arithmetic_constant internal static bit(9) initial dcl 15-47 is_constant internal static bit(9) initial dcl 15-47 is_decimal_constant internal static bit(9) initial dcl 15-47 is_delimiter internal static bit(9) initial dcl 15-47 is_float_constant internal static bit(9) initial dcl 15-47 is_identifier internal static bit(9) initial dcl 15-47 is_imaginary_constant internal static bit(9) initial dcl 15-47 is_integral_constant internal static bit(9) initial dcl 15-47 is_isub internal static bit(9) initial dcl 15-47 join internal static bit(9) initial dcl 17-8 jump internal static bit(9) initial dcl 17-8 jump_false internal static bit(9) initial dcl 17-8 jump_if_eq internal static bit(9) initial dcl 17-8 jump_if_ge internal static bit(9) initial dcl 17-8 jump_if_gt internal static bit(9) initial dcl 17-8 jump_if_le internal static bit(9) initial dcl 17-8 jump_if_lt internal static bit(9) initial dcl 17-8 jump_if_ne internal static bit(9) initial dcl 17-8 jump_true internal static bit(9) initial dcl 17-8 l_parn internal static bit(9) initial dcl 17-8 label_array_element_node internal static bit(9) initial dcl 12-5 label_constant_runtime_dtype internal static fixed bin(17,0) initial dcl 24-125 le internal static bit(9) initial dcl 15-3 left_parn internal static bit(9) initial dcl 15-3 length_fun internal static bit(9) initial dcl 17-8 less_or_equal internal static bit(9) initial dcl 17-8 less_than internal static bit(9) initial dcl 17-8 line_format internal static bit(9) initial dcl 17-8 local_label_var_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" local_label_var_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" locate_file internal static bit(9) initial dcl 17-8 lock_file internal static bit(9) initial dcl 17-8 lock_fun internal static bit(9) initial dcl 17-8 log10_fun internal static bit(9) initial dcl 17-8 log2_fun internal static bit(9) initial dcl 17-8 log_fun internal static bit(9) initial dcl 17-8 loop internal static bit(9) initial dcl 17-8 lt internal static bit(9) initial dcl 15-3 machine_state_node internal static bit(9) initial dcl 12-5 make_desc internal static bit(9) initial dcl 17-8 max_area_size internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_area_size internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_bit_string internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_bit_string internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_bit_string_constant internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_bit_string_constant internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_block_number internal static fixed bin(17,0) initial dcl 3-74 max_char_string internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_char_string internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_char_string_constant internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_char_string_constant internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_fun internal static bit(9) initial dcl 17-8 max_identifier_length internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_identifier_length internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_index_register_value internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_index_register_value internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_length_precision internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_length_precision internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_list_elements internal static fixed bin(17,0) initial dcl 4-12 max_number_of_dimensions internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_number_of_dimensions internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_number_of_operands internal static fixed bin(15,0) initial dcl 5-15 max_offset_precision internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_offset_precision internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_p_bin_or_dec internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_p_bin_or_dec internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_p_dec internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_p_dec internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_p_fix_bin_1 internal static fixed bin(31,0) initial dcl 18-5 max_p_fix_bin_2 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_p_fix_bin_2 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_p_flt_bin_1 internal static fixed bin(31,0) initial dcl 18-5 max_p_flt_bin_2 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_p_flt_bin_2 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_scale internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_scale internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_signed_index_register_value internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_signed_index_register_value internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_signed_xreg_precision internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_signed_xreg_precision internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_uns_xreg_precision internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" max_uns_xreg_precision internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_words_per_variable internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" max_words_per_variable internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" min_area_size internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" min_area_size internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" min_fun internal static bit(9) initial dcl 17-8 min_scale internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" min_scale internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" minus internal static bit(9) initial dcl 15-3 mod2_ internal static fixed bin(3,0) initial dcl 13-5 mod4_ internal static fixed bin(3,0) initial dcl 13-5 mod_fun internal static bit(9) initial dcl 17-8 mod_word internal static bit(9) initial dcl 17-8 mult internal static bit(9) initial dcl 17-8 ne internal static bit(9) initial dcl 15-3 negate internal static bit(9) initial dcl 17-8 ngt internal static bit(9) initial dcl 15-3 nlt internal static bit(9) initial dcl 15-3 no_token internal static bit(9) initial dcl 15-3 nop internal static bit(9) initial dcl 17-8 not internal static bit(9) initial dcl 15-3 not_bits internal static bit(9) initial dcl 17-8 not_equal internal static bit(9) initial dcl 17-8 off_fun internal static bit(9) initial dcl 17-8 on_unit internal static bit(9) initial dcl 16-1 open_file internal static bit(9) initial dcl 17-8 or internal static bit(9) initial dcl 15-3 or_bits internal static bit(9) initial dcl 17-8 pack internal static bit(9) initial dcl 17-8 packed_digits_per_character internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" packed_digits_per_character internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" page_format internal static bit(9) initial dcl 17-8 param_desc_ptr internal static bit(9) initial dcl 17-8 param_ptr internal static bit(9) initial dcl 17-8 pascal_boolean_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_char_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_entry_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_enumerated_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_enumerated_type_element_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_enumerated_type_instance_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_exportable_procedure_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_imported_procedure_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_integer_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_internal_procedure_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_label_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_parameter_procedure_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_procedure_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_real_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_record_file_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_record_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_set_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_string_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_text_file_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_typed_pointer_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_user_defined_type_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_user_defined_type_instance_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_value_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 24-132 pascal_variable_formal_parameter_dtype internal static fixed bin(17,0) initial dcl 24-132 percent internal static bit(9) initial dcl 15-3 period internal static bit(9) initial dcl 15-3 picture_format internal static bit(9) initial dcl 17-8 picture_runtime_dtype internal static fixed bin(17,0) initial dcl 24-125 pl1_mod_fun internal static bit(9) initial dcl 17-8 pl1_stat_$statement_id external static structure level 1 packed packed unaligned dcl 2-6 pl1_stat_$xeq_tree_area_ptr external static pointer dcl 1-7 plus internal static bit(9) initial dcl 15-3 pointer_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" pointer_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" prefix_plus internal static bit(9) initial dcl 17-8 ptr_fun internal static bit(9) initial dcl 17-8 put_control internal static bit(9) initial dcl 17-8 put_data_trans internal static bit(9) initial dcl 17-8 put_edit_trans internal static bit(9) initial dcl 17-8 put_field internal static bit(9) initial dcl 17-8 put_field_chk internal static bit(9) initial dcl 17-8 put_file internal static bit(9) initial dcl 17-8 put_list_trans internal static bit(9) initial dcl 17-8 put_string internal static bit(9) initial dcl 17-8 r_format internal static bit(9) initial dcl 17-8 r_parn internal static bit(9) initial dcl 17-8 range_ck internal static bit(9) initial dcl 17-8 rank_fun internal static bit(9) initial dcl 17-8 rc_a internal static bit(18) initial packed unaligned dcl 19-6 rc_a_dp internal static bit(36) initial packed unaligned dcl 19-23 rc_a_is18 internal static bit(36) initial dcl 20-6 rc_a_lp18 internal static bit(36) initial dcl 20-6 rc_dp internal static bit(18) initial packed unaligned dcl 19-6 rc_dp_dp internal static bit(36) initial packed unaligned dcl 19-23 rc_e internal static bit(18) initial packed unaligned dcl 19-6 rc_is15 internal static bit(18) initial packed unaligned dcl 19-6 rc_lb internal static bit(18) initial packed unaligned dcl 19-6 rc_lp15 internal static bit(18) initial packed unaligned dcl 19-6 rc_nlb internal static bit(18) initial packed unaligned dcl 19-6 rc_nlp18 internal static bit(18) initial packed unaligned dcl 19-6 rc_ns internal static bit(18) initial packed unaligned dcl 19-6 rc_nt internal static bit(18) initial packed unaligned dcl 19-6 rc_s internal static bit(18) initial packed unaligned dcl 19-6 rc_sr internal static bit(18) initial packed unaligned dcl 19-6 read_file internal static bit(9) initial dcl 17-8 real_fix_dec_4bit_bytealigned_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_4bit_ls_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_4bit_ts_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_4bit_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_9bit_ls_overp_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_9bit_ts_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_9bit_ts_overp_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fix_dec_9bit_uns_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_bin_generic_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_dec_4bit_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_dec_extended_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_dec_generic_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_hex_1_dtype internal static fixed bin(17,0) initial dcl 24-25 real_flt_hex_2_dtype internal static fixed bin(17,0) initial dcl 24-25 real_fun internal static bit(9) initial dcl 17-8 real_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" real_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" record_io internal static bit(9) initial dcl 17-8 refer internal static bit(9) initial dcl 17-8 rel_fun internal static bit(9) initial dcl 17-8 repeat_fun internal static bit(9) initial dcl 17-8 return_bits internal static bit(9) initial dcl 17-8 return_string internal static bit(9) initial dcl 17-8 return_value internal static bit(9) initial dcl 17-8 return_words internal static bit(9) initial dcl 17-8 reverse_fun internal static bit(9) initial dcl 17-8 revert_on internal static bit(9) initial dcl 17-8 rewrite_file internal static bit(9) initial dcl 17-8 right_parn internal static bit(9) initial dcl 15-3 root_block internal static bit(9) initial dcl 16-1 round_fun internal static bit(9) initial dcl 17-8 search_fun internal static bit(9) initial dcl 17-8 search_rev_fun internal static bit(9) initial dcl 17-8 segno_fun internal static bit(9) initial dcl 17-8 semi_colon internal static bit(9) initial dcl 15-3 setbitno_fun internal static bit(9) initial dcl 17-8 setcharno_fun internal static bit(9) initial dcl 17-8 sf_par_node internal static bit(9) initial dcl 12-5 sign_fun internal static bit(9) initial dcl 17-8 signal_on internal static bit(9) initial dcl 17-8 sin_fun internal static bit(9) initial dcl 17-8 sind_fun internal static bit(9) initial dcl 17-8 skip_format internal static bit(9) initial dcl 17-8 slash internal static bit(9) initial dcl 15-3 source_node internal static bit(9) initial dcl 12-5 sqrt_fun internal static bit(9) initial dcl 17-8 stack_ptr internal static bit(9) initial dcl 17-8 stackbaseptr_fun internal static bit(9) initial dcl 17-8 stackframeptr_fun internal static bit(9) initial dcl 17-8 stacq_fun internal static bit(9) initial dcl 17-8 statement_node internal static bit(9) initial dcl 12-5 std_arg_list internal static bit(9) initial dcl 17-8 std_call internal static bit(9) initial dcl 17-8 std_entry internal static bit(9) initial dcl 17-8 std_return internal static bit(9) initial dcl 17-8 stop internal static bit(9) initial dcl 17-8 storage_block_type internal static bit(36) initial dcl 18-71 in procedure "mst$block_nodes" storage_block_type internal static bit(36) initial dcl 25-71 in procedure "pl1_descriptor_type" stream_prep internal static bit(9) initial dcl 17-8 sub internal static bit(9) initial dcl 17-8 t_table based structure level 1 dcl 2-11 tan_fun internal static bit(9) initial dcl 17-8 tand_fun internal static bit(9) initial dcl 17-8 temporary_node internal static bit(9) initial dcl 12-5 terminate_trans internal static bit(9) initial dcl 17-8 token_list_length internal static fixed bin(15,0) initial dcl 2-4 translate_fun internal static bit(9) initial dcl 17-8 trunc_fun internal static bit(9) initial dcl 17-8 unlock_file internal static bit(9) initial dcl 17-8 unpack internal static bit(9) initial dcl 17-8 vclock_fun internal static bit(9) initial dcl 17-8 verify_fun internal static bit(9) initial dcl 17-8 verify_ltrim_fun internal static bit(9) initial dcl 17-8 verify_rev_fun internal static bit(9) initial dcl 17-8 verify_rtrim_fun internal static bit(9) initial dcl 17-8 word_to_mod2 internal static bit(9) initial dcl 17-8 word_to_mod4 internal static bit(9) initial dcl 17-8 word_to_mod8 internal static bit(9) initial dcl 17-8 wordno_fun internal static bit(9) initial dcl 17-8 words_per_condition_var internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_condition_var internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_entry_var internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_entry_var internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_file_var internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_file_var internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_fix_bin_1 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_fix_bin_1 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_fix_bin_2 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_fix_bin_2 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_flt_bin_1 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_flt_bin_1 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_flt_bin_2 internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_flt_bin_2 internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_format internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_format internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_label_var internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_label_var internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_offset internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_offset internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_packed_pointer internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_packed_pointer internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_pointer internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_pointer internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" words_per_varying_string_header internal static fixed bin(31,0) initial dcl 18-5 in procedure "mst$block_nodes" words_per_varying_string_header internal static fixed bin(31,0) initial dcl 25-5 in procedure "pl1_descriptor_type" write_file internal static bit(9) initial dcl 17-8 x_format internal static bit(9) initial dcl 17-8 xeq_tree_area based area(1024) dcl 1-5 xor_bits internal static bit(9) initial dcl 17-8 NAMES DECLARED BY EXPLICIT CONTEXT. b1 000154 constant label dcl 161 ref 149 152 bump 004107 constant label dcl 875 ref 834 856 check_defined 003505 constant entry internal dcl 775 ref 414 789 794 797 defined_error 003010 constant label dcl 709 ref 802 804 do_son 000644 constant label dcl 291 ref 249 done 003004 constant label dcl 705 ref 691 ec 002255 constant label dcl 625 ref 600 606 609 612 619 elim 002253 constant label dcl 622 ref 615 617 encode_runtime_units 004121 constant entry internal dcl 882 ref 630 649 l2 002172 constant label dcl 588 ref 526 531 539 l2c 002161 constant label dcl 586 ref 518 556 566 575 581 l3 002672 constant label dcl 685 ref 642 lab 003032 constant label dcl 715 ref 445 link 001077 constant label dcl 351 ref 364 make_acc 003637 constant entry internal dcl 810 ref 156 422 make_record 003404 constant entry internal dcl 741 ref 177 491 535 mst$block_nodes 000037 constant entry external dcl 33 mst$data_nodes 001317 constant entry external dcl 408 next_i 001214 constant label dcl 381 ref 378 pl1_descriptor_type 003111 constant entry internal dcl 22-8 ref 481 ret 003004 constant label dcl 705 set ref 739 set_qualifier 003430 constant entry internal dcl 756 ref 232 767 static 002114 constant label dcl 561 ref 571 step 000456 constant label dcl 245 ref 195 201 203 206 208 211 218 225 239 thru 001311 constant label dcl 405 ref 299 yes 000411 constant label dcl 232 ref 198 221 223 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4436 5130 4174 4446 Length 6056 4174 472 712 241 420 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mst$block_nodes 200 external procedure is an external procedure. pl1_descriptor_type internal procedure shares stack frame of external procedure mst$block_nodes. make_record internal procedure shares stack frame of external procedure mst$block_nodes. set_qualifier 76 internal procedure calls itself recursively. check_defined 104 internal procedure calls itself recursively. make_acc internal procedure shares stack frame of external procedure mst$block_nodes. encode_runtime_units internal procedure shares stack frame of external procedure mst$block_nodes. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 base_list mst$block_nodes 000012 offset_list mst$block_nodes 000014 block_list mst$block_nodes 000016 quick_list mst$block_nodes 000020 vec mst$block_nodes 000026 max_n mst$block_nodes 000027 min_n mst$block_nodes 000030 tokens mst$block_nodes STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_defined 000100 tree check_defined 000102 i check_defined mst$block_nodes 000100 p mst$block_nodes 000102 p1 mst$block_nodes 000104 p2 mst$block_nodes 000106 bp mst$block_nodes 000110 q mst$block_nodes 000112 prev mst$block_nodes 000114 sym_ptr mst$block_nodes 000116 srp mst$block_nodes 000120 cb mst$block_nodes 000122 ref mst$block_nodes 000124 sym_pos mst$block_nodes 000125 sym_loc mst$block_nodes 000126 prev_loc mst$block_nodes 000127 i mst$block_nodes 000130 k mst$block_nodes 000131 j mst$block_nodes 000132 jstart mst$block_nodes 000133 delta mst$block_nodes 000134 units mst$block_nodes 000135 co mst$block_nodes 000136 get_data mst$block_nodes 000137 n mst$block_nodes 000140 dtype mst$block_nodes 000141 inc mst$block_nodes 000142 next_offset mst$block_nodes 000143 class mst$block_nodes 000144 token_list_pointer mst$block_nodes 000160 prec pl1_descriptor_type 000161 dtype pl1_descriptor_type 000162 type pl1_descriptor_type 000172 tp make_record 000202 k make_acc 000204 tp1 make_acc 000206 tp2 make_acc 000210 tp3 make_acc set_qualifier 000100 sp set_qualifier THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out call_int_this call_int_other return_mac tra_ext_1 ext_entry int_entry op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. create_list e_v error mst$block_nodes mst$data_nodes sym_sort_alphabetic$by_size THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cg_static_$compiler_name cg_static_$cur_block cg_static_$cur_level cg_static_$root cg_static_$sym_base cg_static_$sym_origin cg_static_$sym_pos cg_static_$sym_reloc_base cg_static_$table_option pl1_stat_$token_list_ptr pl1_stat_$tree_area_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 3 000025 33 000033 130 000045 132 000051 134 000056 135 000063 136 000065 138 000067 139 000077 140 000104 143 000106 144 000111 146 000115 147 000117 149 000121 152 000125 154 000130 156 000136 159 000142 161 000154 164 000157 165 000172 166 000175 167 000200 169 000201 170 000203 171 000205 173 000213 175 000216 176 000223 177 000225 180 000233 181 000246 182 000251 183 000262 185 000273 186 000276 188 000302 189 000305 191 000312 192 000313 193 000320 195 000322 198 000327 201 000336 203 000337 206 000347 208 000352 211 000355 214 000360 215 000364 216 000366 218 000367 221 000401 223 000404 225 000406 232 000411 237 000433 239 000446 242 000450 243 000451 245 000456 247 000461 249 000462 252 000464 254 000476 255 000500 257 000502 259 000511 260 000515 262 000525 264 000530 266 000532 269 000545 270 000550 272 000560 275 000570 277 000573 278 000601 281 000615 282 000620 284 000631 286 000633 287 000641 289 000642 291 000644 295 000676 299 000731 305 000736 306 000740 307 000744 308 000747 310 000754 311 000761 313 000770 315 000776 316 001000 321 001001 322 001004 323 001010 324 001013 327 001024 328 001026 332 001027 333 001032 334 001036 335 001041 337 001046 339 001050 340 001054 342 001063 344 001071 345 001073 349 001074 351 001077 353 001104 355 001110 356 001121 358 001126 359 001131 361 001141 363 001150 364 001152 366 001153 371 001155 373 001164 374 001171 375 001201 377 001206 378 001211 380 001212 381 001214 386 001216 387 001221 388 001226 390 001231 392 001236 393 001243 395 001246 396 001250 398 001265 400 001303 402 001305 403 001310 405 001311 408 001315 411 001325 412 001331 414 001335 418 001352 419 001355 421 001361 422 001364 425 001370 426 001373 428 001403 429 001412 431 001415 433 001425 435 001437 437 001455 439 001467 441 001501 443 001503 445 001511 448 001515 450 001523 452 001534 453 001541 454 001554 456 001571 458 001602 461 001610 462 001616 463 001620 464 001621 466 001627 468 001655 470 001660 473 001667 477 001706 478 001711 481 001714 483 001732 485 001736 486 001740 490 001753 491 001755 496 001764 498 001766 504 001772 505 001776 508 002000 511 002004 514 002013 515 002015 518 002020 521 002021 523 002024 525 002026 526 002031 529 002035 531 002041 534 002044 535 002046 539 002060 542 002061 545 002064 547 002073 548 002075 550 002103 552 002104 553 002106 556 002110 559 002111 561 002114 564 002126 565 002131 566 002135 569 002136 571 002141 574 002144 575 002146 578 002147 580 002152 581 002157 584 002160 586 002161 588 002172 591 002203 593 002206 596 002214 597 002216 599 002220 600 002224 603 002225 605 002227 606 002230 609 002231 612 002235 615 002241 617 002247 619 002251 622 002253 625 002255 628 002264 630 002310 632 002326 634 002331 636 002335 638 002340 639 002342 640 002344 641 002345 642 002347 645 002350 646 002354 649 002357 651 002375 652 002411 654 002415 655 002417 657 002427 659 002456 660 002466 661 002471 663 002473 665 002500 667 002507 669 002537 671 002547 673 002600 675 002606 677 002631 679 002661 680 002664 681 002667 683 002671 685 002672 688 002676 690 002705 691 002710 694 002714 695 002726 697 002737 698 002742 699 002746 700 002761 701 002776 702 003000 703 003003 705 003004 709 003010 711 003027 715 003032 717 003040 719 003042 721 003045 722 003047 723 003051 725 003060 726 003064 727 003070 728 003072 730 003073 731 003075 734 003077 735 003103 737 003105 739 003110 22 8 003111 22 33 003113 22 34 003117 22 36 003121 22 38 003127 22 46 003150 22 47 003153 22 49 003160 22 50 003163 22 52 003171 22 53 003174 22 56 003204 22 57 003207 22 59 003215 22 60 003220 22 67 003236 22 68 003241 22 70 003247 22 71 003252 22 74 003262 22 75 003265 22 77 003273 22 78 003276 22 83 003307 22 84 003312 22 89 003323 22 90 003326 22 94 003334 22 98 003342 22 102 003350 22 106 003356 22 110 003364 22 114 003372 22 118 003400 22 120 003401 741 003404 748 003406 749 003415 750 003421 752 003422 753 003424 754 003426 756 003427 764 003435 765 003441 766 003446 767 003460 770 003477 771 003502 773 003503 775 003504 782 003512 784 003521 787 003525 789 003543 790 003552 792 003555 794 003571 795 003600 797 003603 800 003615 802 003617 804 003630 808 003636 810 003637 821 003640 822 003643 823 003650 825 003655 826 003660 827 003665 829 003672 831 003702 833 003706 834 003717 837 003720 838 003722 839 003727 840 003734 842 003745 845 003761 846 003771 848 004001 851 004010 852 004015 854 004025 856 004034 859 004035 860 004037 862 004046 863 004050 867 004051 868 004061 869 004070 871 004100 875 004107 877 004114 878 004117 880 004120 882 004121 891 004123 893 004140 895 004142 896 004153 898 004157 899 004160 901 004172 ----------------------------------------------------------- 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