1 
  2 dcl 1 mpout static,
  3      2 n fixed bin init(4),
  4      2 pt1 ptr,
  5      2 pt2 ptr,
  6      2 pt3 ptr,
  7      2 pt4 ptr;
  8 
  9                     /* VARIABLE TOKEN DEFINITIONS */
 10 dcl 1 fkey_type9 static,
 11      2 header (4) fixed bin init(112,0,0,9),
 12      2 repl_ptr (2) ptr init((2)null()),
 13      2 fill1  bit(108) init(""b),
 14      2 file_key_info,
 15           3 fb (6) fixed bin init(0,0,0,0,0,0),
 16           3 flags1 bit(36) init(""b),
 17           3 flags2 bit(36) init(""b),
 18           3 seg fixed bin,
 19           3 off fixed bin,
 20      2 fill2 (7) fixed bin init(0,0,0,0,0,0,0);
 21 
 22 dcl 1 type7 static,
 23      2 size fixed bin init(52),
 24      2 line fixed bin init(0),
 25      2 column fixed bin init(0),
 26      2 type fixed bin init(7),
 27      2 string_ptr ptr init(null()),
 28      2 prev_rec ptr init(null()),
 29      2 bits1 bit(4) init(""b),
 30      2 section_name bit(1) init("1"b),
 31      2 declarative_proc bit(1) init("1"b),
 32      2 bits2 bit(3) init(""b),
 33      2 priority char(2) init("00"),
 34      2 bits3 bit(9) init(""b),
 35      2 section_num fixed bin init(0),
 36      2 proc_num fixed bin init(0),
 37      2 def_line fixed bin init(0),
 38      2 name_size fixed bin init(0);
 39 
 40                     /* CONSTANT TOKEN DEFINITIONS */
 41 dcl 1 zero_type1 static options(constant),
 42      2 size fixed bin init(28),
 43      2 line fixed bin init(0),
 44      2 column fixed bin init(0),
 45      2 type fixed bin init(1),
 46      2 key fixed bin init(180),         /* ZERO */
 47      2 bits bit(36) init("001"b);       /* figurative constant */
 48 
 49 dcl 1 skey12_type9 static ,
 50      2 header (4) fixed bin init(112,0,0,9),
 51      2 repl_ptr (2) ptr init((2)null()),
 52      2 fill1  bit(108) init(""b),
 53      2 file_key_info,
 54           3 fb1 (3) fixed bin init(0,0,0),
 55           3 size fixed bin init(2),
 56           3 places_left fixed bin init(2),
 57           3 places_right fixed bin init(0),
 58           3 flags1 bit(36) init("010000100100000001000000000100000000"b),
 59           3 flags2 bit(36) init(""b),
 60           3 seg fixed bin init(1000),   /* stack */
 61           3 off fixed bin init(42*4),   /* pr6|42 */
 62      2 fill2 (7) fixed bin init(0,0,0,0,0,0,0);
 63 
 64 dcl 1 skey3_type9 static ,
 65      2 header (4) fixed bin init(112,0,0,9),
 66      2 repl_ptr (2) ptr init((2)null()),
 67      2 fill1  bit(108) init(""b),
 68      2 file_key_info,
 69           3 fb1 (3) fixed bin init(0,0,0),
 70           3 size fixed bin init(4),
 71           3 fb2 (2) fixed bin init(0,0),
 72           3 flags1 bit(36) init("010000100100000000010000000100000000"b),
 73           3 flags2 bit(36) init(""b),
 74           3 seg fixed bin init(1000),   /* stack */
 75           3 off fixed bin init(43*4),   /* pr6|43 */
 76      2 fill2 (7) fixed bin init(0,0,0,0,0,0,0);
 77 
 78 dcl 1 move_type19 static options(constant),
 79      2 size fixed bin init(38),
 80      2 line fixed bin init(0),
 81      2 column fixed bin init(0),
 82      2 type fixed bin init(19),
 83      2 verb fixed bin init(18),         /* move */
 84      2 e fixed bin init(1),
 85      2 h fixed bin init(0),
 86      2 i fixed bin init(0),
 87      2 j fixed bin init(0),
 88      2 a bit(3) init(""b),
 89      2 b bit(1) init(""b),
 90      2 c bit(1) init(""b),
 91      2 d bit(2) init(""b),
 92      2 f bit(2) init(""b),
 93      2 g bit(2) init(""b),
 94      2 k bit(5) init(""b);
 95 
 96 dcl 1 perform_type19 static options(constant),
 97      2 size fixed bin init(38),
 98      2 line fixed bin init(0),
 99      2 column fixed bin init(0),
100      2 type fixed bin init(19),
101      2 verb fixed bin init(20),         /* perform */
102      2 e fixed bin init(1),
103      2 h fixed bin init(0),
104      2 i fixed bin init(0),
105      2 j fixed bin init(0),
106      2 a bit(3) init(""b),
107      2 b bit(1) init(""b),
108      2 c bit(1) init(""b),
109      2 d bit(2) init(""b),
110      2 f bit(2) init(""b),
111      2 g bit(2) init(""b),
112      2 k bit(5) init(""b);
113 
114                     /* INSTRUCTION DEFINITIONS */
115 dcl cmpa_dl_instr bit(36) static init(  "000000000000000000001001101000000111"b);
116 
117 dcl tra_instr bit(36) static options(constant) init(        "000000000000000000111001000000000100"b);
118 dcl tnz_instr bit(36) static options(constant) init(        "000000000000000000110000001000000100"b);
119 dcl set_mode_instr(2) bit(36) static options(constant) init(
120                                         "001000000000000010010011101001000000"b,          /* lda    pr1|2 */
121                                         "000000000000110000011111101000000111"b);         /* ana    60,dl */
122 dcl check_is_instr(2) bit(36) static options(constant) init(
123                                         "110000000000101001010011101001000000"b,          /* lda    pr6|51 */
124                                         "000000000000000000110000001000000100"b);         /* tnz    [is_tag],ic */
125 
126 dcl (     extend_mode fixed bin init(0),
127           input_mode fixed bin init(16),
128           i_o_mode fixed bin init(32),
129           output_mode fixed bin init(48)  ) static options(constant);
130 
131                     /* ENTRY DEFINITIONS */
132 /* utilities */
133 dcl cobol_reg_manager$set_pr5 entry;
134 dcl cobol_emit entry(ptr,ptr,fixed bin);
135 dcl cobol_read_rand entry(fixed bin,char(5),ptr);
136 dcl cobol_make_tagref entry(fixed bin,fixed bin,ptr);
137 dcl cobol_define_tag entry(fixed bin);
138 /* sub-generators */
139 dcl cobol_gen_error entry(fixed bin,fixed bin);
140 dcl cobol_gen_error$use entry(fixed bin);
141 dcl cobol_perform_gen entry(ptr);
142 dcl cobol_move_gen entry(ptr);
143 dcl cobol_set_fsbptr entry(ptr);
144 
145 
146           /*****    Declaration for builtin function        *****/
147 
148 dcl       (substr,mod,binary,fixed,addr,addrel,rel,length,
149           string,unspec,null,index)               builtin;
150 
151           /*****    End of declaration for builtin function *****/
152 
153 %include cobol_file_table;
154 %include cobol_file_key;
155 %include cobol_;
156 %include cobol_ext_;
157 %include cobol_fixed_common;