#define s_x_ts 0
#define s_x_fp 1
#define s_x_sp 2
#define s_x_nx 3
#define s_y_ff 4
#define s_y_arg 5
#define s_b_tbus 6
#define s_b_dbus 7
#define s_b_pc 8
#define s_d_fp 9
#define s_d_ts 10
#define s_a_tbus 11
#define s_a_pc 12
#define s_j_pc1 13
#define s_j_pcarg 14
#define s_j_tbus 15
#define s_alu_add 16
#define s_alu_sub 17
#define s_alu_inc 18
#define s_alu_dec 19
#define s_alu_z 20
#define s_alu_eq 21
#define s_alu_op 22
#define s_alu_p1 23
#define s_alu_p2 24
#define s_lir 25
#define s_lts 26
#define s_lfp 27
#define s_lsp 28
#define s_lnx 29
#define s_lff 30
#define s_lpc 31
#define s_mR 32
#define s_mW 33
#define s_ifT 34
#define s_ifF 35
#define s_decode 36
#define s_trap 37
#define a_fetch 0
#define a_bop 1
#define a_uop 4
#define a_get 5
#define a_put 8
#define a_popts 9
#define a_ld 11
#define a_st 14
#define a_ldx 15
#define a_stx 18
#define a_lit 23
#define a_jmp 26
#define a_jt 27
#define a_j2 28
#define a_jf 30
#define a_j3 31
#define a_call 33
#define a_ret 40
#define a_r2 47
#define a_sys 51
#define a_array 51
#define a_end 51
#define MCWIDTH 38
#define MAWIDTH 6
#define MLEN 52

int udop[] = {
0, 1, 1, 1, 1, 1, 1, 1, 4, 1, 
1, 1, 1, 1, 1, 1, 1, 0, 15, 18, 
40, 0, 51, 51, 5, 8, 11, 14, 26, 27, 
30, 23, 33, 0, 0, 0, 51, 0, 0, 0, 0 };

int mw[] = {
0, 5, 12, 17, 25, 32, 37, 43, 53, 60, 
67, 74, 79, 85, 94, 100, 107, 112, 122, 129, 
134, 141, 148, 153, 158, 164, 171, 174, 178, 187, 
192, 196, 205, 210, 215, 223, 226, 234, 241, 248, 
253, 258, 263, 268, 274, 281, 286, 293, 300, 305, 
311, 318, 0 };

int mx[] = {
12, 32, 25, 36, -1,
2, 23, 11, 32, 7, 30, -1,
2, 19, 6, 28, -1,
0, 4, 22, 6, 13, 31, 26, -1,
0, 22, 6, 13, 31, 26, -1,
2, 18, 6, 28, -1,
2, 23, 11, 10, 33, -1,
1, 5, 17, 11, 32, 7, 13, 31, 26, -1,
1, 5, 17, 11, 10, 33, -1,
2, 23, 11, 32, 7, 26, -1,
2, 19, 6, 13, 31, 28, -1,
2, 18, 6, 28, -1,
2, 23, 11, 10, 33, -1,
5, 24, 11, 32, 7, 13, 31, 26, -1,
5, 24, 11, 10, 33, -1,
2, 23, 11, 32, 7, 30, -1,
2, 19, 6, 28, -1,
0, 4, 16, 11, 32, 7, 13, 31, 26, -1,
2, 23, 11, 32, 7, 29, -1,
2, 19, 6, 28, -1,
2, 23, 11, 32, 7, 30, -1,
3, 4, 16, 11, 10, 33, -1,
2, 19, 6, 28, -1,
2, 18, 6, 28, -1,
2, 23, 11, 10, 33, -1,
5, 24, 6, 13, 31, 26, -1,
14, 31, -1,
0, 20, 34, -1,
2, 23, 11, 32, 7, 14, 31, 26, -1,
2, 19, 6, 28, -1,
0, 20, 34, -1,
2, 23, 11, 32, 7, 13, 31, 26, -1,
2, 19, 6, 28, -1,
2, 18, 6, 28, -1,
2, 23, 11, 10, 33, 13, 31, -1,
8, 26, -1,
5, 24, 11, 32, 6, 25, 29, -1,
2, 5, 16, 11, 9, 33, -1,
2, 5, 16, 6, 27, 28, -1,
3, 18, 15, 31, -1,
2, 23, 6, 30, -1,
1, 4, 21, 35, -1,
0, 23, 15, 31, -1,
1, 5, 17, 6, 28, -1,
2, 23, 11, 32, 7, 26, -1,
2, 19, 6, 28, -1,
1, 23, 11, 32, 7, 27, -1,
1, 18, 11, 32, 7, 30, -1,
4, 24, 15, 31, -1,
1, 5, 17, 6, 28, -1,
1, 23, 11, 32, 7, 27, -1,
13, 31, 37, -1,
0 };

int nxt[] = {
1, 2, 3, 0, 0, 6, 7, 0, 9, 10, 
0, 12, 13, 0, 9, 16, 17, 0, 19, 20, 
21, 22, 9, 24, 25, 0, 0, 31, 29, 0, 
28, 32, 0, 34, 35, 36, 37, 38, 39, 0, 
41, 47, 43, 44, 45, 46, 0, 48, 49, 50, 
0, 0, 0 };
