1 |
/** M6502: portable 6502 emulator ****************************/ |
2 |
/** **/ |
3 |
/** Tables.h **/ |
4 |
/** **/ |
5 |
/** This file contains tables of used by 6502 emulation to **/ |
6 |
/** compute NEGATIVE and ZERO flags. There are also timing **/ |
7 |
/** tables for 6502 opcodes. This file is included from **/ |
8 |
/** 6502.c. **/ |
9 |
/** **/ |
10 |
/** Copyright (C) Marat Fayzullin 1996-2007 **/ |
11 |
/** You are not allowed to distribute this software **/ |
12 |
/** commercially. Please, notify me, if you make any **/ |
13 |
/** changes to this file. **/ |
14 |
/*************************************************************/ |
15 |
|
16 |
static const byte Cycles[256] = |
17 |
{ |
18 |
7,6,2,8,3,3,5,5,3,2,2,2,4,4,6,6, |
19 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7, |
20 |
6,6,2,8,3,3,5,5,4,2,2,2,4,4,6,6, |
21 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7, |
22 |
6,6,2,8,3,3,5,5,3,2,2,2,3,4,6,6, |
23 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7, |
24 |
6,6,2,8,3,3,5,5,4,2,2,2,5,4,6,6, |
25 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7, |
26 |
2,6,2,6,3,3,3,3,2,2,2,2,4,4,4,4, |
27 |
2,6,2,6,4,4,4,4,2,5,2,5,5,5,5,5, |
28 |
2,6,2,6,3,3,3,3,2,2,2,2,4,4,4,4, |
29 |
2,5,2,5,4,4,4,4,2,4,2,5,4,4,4,4, |
30 |
2,6,2,8,3,3,5,5,2,2,2,2,4,4,6,6, |
31 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7, |
32 |
2,6,2,8,3,3,5,5,2,2,2,2,4,4,6,6, |
33 |
2,5,2,8,4,4,6,6,2,4,2,7,5,5,7,7 |
34 |
}; |
35 |
|
36 |
static const byte ZNTable[256] = |
37 |
{ |
38 |
Z_FLAG,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
39 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
40 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
41 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
42 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
43 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
44 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
45 |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, |
46 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
47 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
48 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
49 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
50 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
51 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
52 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
53 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
54 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
55 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
56 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
57 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
58 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
59 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
60 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
61 |
N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG,N_FLAG, |
62 |
}; |