1 
 2 /* STATIC DATA */
 3 dcl max_noshift_chars(0:2) static options(constant) init(   40 /*(4)*/,         24 /*(3)*/,         36 /*(4)*/);
 4 dcl max_shift_chars(0:2) static options(constant) init(     16 /*(2)*/,          8 /*(1)*/,         12 /*(2)*/);
 5 /* 0 -> both operands are even word aligned (sal+tal=0)
 6    1 -> operands are aligned on conflicting double word boundaries (sal+tal=1)
 7    2 -> both operands are odd word aligned (sal+tal=2)   */
 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 9 
10 dcl bypass_readkey_instr(4) bit(36) static init(
11           "001000000000000010010011101001000000"b,          /* lda    pr1|2     (fsb.open_mode) */
12           "000000000000110000011111101000000111"b,          /* ana    60,dl               */
13           "000000000000100000001001101000000111"b,          /* cmpa   40,dl     (i-o mode) */
14           "000000000000000000110000001000000100"b);         /* tnz    [tra_tag],ic        */
15 dcl bypass_seqerror_instr(2) bit(36) static init(
16           "001000000000000110010011100001000000"b,          /* szn    pr1|6     (fsb.keylen_sw) */
17           "000000000000000000110000001000000100"b);         /* tnz    [tra_tag],ic        */
18 dcl bypass_mode_error_instr(4) bit(36) static init(
19           "001000000000000010010011101001000000"b,          /* lda    pr1|2     (fsb.open_mode) */
20           "000000000000110000011111101000000111"b,          /* ana    60,dl     */
21           "000000000000110000001001101000000111"b,          /* cmpa   60,dl     (output) */
22           "000000000000000000110000001000000100"b);         /* tnz    [tra_tag],ic        */
23 
24 /* [3.0-1]  */      dcl epp7_ic_du bit(18) static init("011111011100000100"b);
25 /* [3.0-1] */       dcl lda_dl bit(18) static init("010011101000000111"b);
26 
27 dcl tra bit(36) static init(            "000000000000000000111001000000000100"b);
28 dcl ad2d_ic_to_reg bit(36) static init( "000000000001000000010000010100000100"b);
29 dcl mlr_ic_to_reg bit(36) static init(  "000100000001000000001000000100000100"b);
30 dcl mlr_reg_to_reg bit(36) static init( "000100000001000000001000000101000000"b);
31 dcl btd_instr bit(36) static init(      "000000000001000000011000001101000000"b);
32 dcl dtb_instr bit(36) static init(      "000000000001000000011000101101000000"b);
33 dcl cmpc_instr bit(36) static init(     "000100000001100000001000110101100000"b);
34 dcl tze_tnz (0:1) bit(36) static init(  "000000000000000000110000000000000100"b,
35                                         "000000000000000000110000001000000100"b);
36 dcl cmpa_ bit(12) static init(          "001001101001"b);
37 dcl asa_ bit(12) static init(           "000101101001"b);
38 dcl ssa_ bit(12) static init(           "001101101001"b);
39 dcl staq_ bit(12) static init(          "111101111001"b);
40 dcl sta_ bit(12) static init(           "111101101001"b);
41 dcl stq_ bit(12) static init(           "111101110001"b);
42 dcl stba_ bit(12) static init(          "101101001001"b);
43 dcl stbq_ bit(12) static init(          "101101010001"b);
44 dcl stz_ bit(12) static init(           "100101000001"b);
45 dcl szn_ bit(12) static init(           "010011100001"b);
46 dcl lda bit(12) static init(            "010011101000"b);
47 dcl lda_ bit(12) static init(           "010011101001"b);
48 dcl lda_icmod bit(18) static init(      "010011101000000100"b);
49 dcl ldq_ bit(12) static init(           "010011110001"b);
50 dcl ldq_icmod bit(18) static init(      "010011110000000100"b);
51 dcl ldaq_ bit(12) static init(          "010011111001"b);
52 dcl ldaq_icmod bit(18) static init(     "010011111000000100"b);
53 dcl sba_dlmod bit(18) static init(      "001111101000000111"b);
54 dcl ld_ (0:1) bit(12) static init(      "010011101001"b,
55                                         "010011111001"b);
56 dcl ld_icmod (0:1) bit(18) static init( "010011101000000100"b,
57                                         "010011111000000100"b);
58 dcl rs (0:1) bit(9) static init(        "111011001"b,
59                                         "111011011"b);
60 dcl ls (0:1) bit(9) static init(        "111011101"b,
61                                         "111011111"b);
62 
63 dcl dmod (0:1) bit(6) static init       ("000011"b,
64                                         "000111"b);
65 dcl tagarray (0:3,7) bit(6) static init("100000"b,"110000"b,"111000"b,""b,""b,""b,""b,
66                                         "010000"b,"011000"b,"011100"b,"011100"b,"011100"b,"011100"b,"011100"b,
67                                         "001000"b,"001100"b,"001100"b,"001100"b,"001100"b,"001100"b,""b,
68                                         "000100"b,"000100"b,"000100"b,"000100"b,"000100"b,""b,""b);
69 
70 /* EXTERNAL ENTRY NAMES */
71 
72 dcl cobol_move_gen entry(ptr);
73 dcl cobol_make_type9$long_bin entry(ptr,fixed bin,fixed bin);
74 dcl cobol_define_tag entry(fixed bin);
75 dcl cobol_make_tagref entry(fixed bin,fixed bin,ptr);
76 dcl cobol_addr entry(ptr,ptr,ptr);
77 dcl cobol_pool entry(char(*),fixed bin,fixed bin);
78 dcl cobol_pool$search_op entry(char(*),fixed bin,fixed bin,fixed bin);
79 dcl cobol_pool$search_op_byte entry(char(*),fixed bin,fixed bin,fixed bin,fixed bin);
80 dcl cobol_reloc$cobol_emit entry(ptr,ptr,fixed bin);
81 
82 
83 /* BUILTIN FUNCTIONS */
84 
85           /*****    Declaration for builtin function        *****/
86 
87 dcl       (substr,mod,binary,fixed,addr,addrel,rel,length,
88           string,unspec,null,index,max,min)                 builtin;
89 
90 
91 %include cobol_;