1 |
dpavlin |
23 |
/** 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 |
|
|
}; |