mirror of https://github.com/stella-emu/stella.git
Only mark actual undefined opcodes as defined by DASM as being
undefined. The rest are defined but illegal, which is different (mostly because many ROMs released in the past 10 years make extensive use of illegal opcodes). git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2667 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
1ade2900e4
commit
1173b88c79
|
@ -18,9 +18,9 @@
|
||||||
- The debugger now generates DASM-compatible disassembled code,
|
- The debugger now generates DASM-compatible disassembled code,
|
||||||
which can be saved to an external file. This disassembly is
|
which can be saved to an external file. This disassembly is
|
||||||
based on both a static and runtime analysis, and is extremely
|
based on both a static and runtime analysis, and is extremely
|
||||||
accurate. It also automatically differentiates between the
|
accurate. It also automatically differentiates between
|
||||||
directives CODE/PGFX/GFX/DATA/ROW, whereas normal Distella
|
CODE/PGFX/GFX/DATA/ROW areas, whereas normal Distella
|
||||||
only differentiates between CODE and ROW. For now, only
|
only differentiates between CODE/GFX/ROW. For now, only
|
||||||
single-bank (4K) ROMs are supported.
|
single-bank (4K) ROMs are supported.
|
||||||
|
|
||||||
- The disassembly now recognizes various TIA read/write mirrors,
|
- The disassembly now recognizes various TIA read/write mirrors,
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
ROM multiple times from the ROM launcher.
|
ROM multiple times from the ROM launcher.
|
||||||
|
|
||||||
* Updated profile database for "BasketBall" ROMs; the joysticks are now
|
* Updated profile database for "BasketBall" ROMs; the joysticks are now
|
||||||
swapped by dedault, which allows one and two-player games to work
|
swapped by default, which allows one and two-player games to work
|
||||||
correctly.
|
correctly.
|
||||||
|
|
||||||
-Have fun!
|
-Have fun!
|
||||||
|
|
|
@ -356,9 +356,9 @@ void DiStella::disasm(uInt32 distart, int pass)
|
||||||
addr_mode = ourLookup[op].addr_mode;
|
addr_mode = ourLookup[op].addr_mode;
|
||||||
myPC++;
|
myPC++;
|
||||||
|
|
||||||
// Undefined opcodes are in lowercase letters
|
// Undefined opcodes start with a '.'
|
||||||
// Original Distella has those opcodes starting with a '.'
|
// These are undefined wrt DASM
|
||||||
if (islower(ourLookup[op].mnemonic[0]))
|
if (ourLookup[op].mnemonic[0] == '.')
|
||||||
{
|
{
|
||||||
addr_mode = IMPLIED;
|
addr_mode = IMPLIED;
|
||||||
if (pass == 3)
|
if (pass == 3)
|
||||||
|
@ -1075,7 +1075,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 00 */ { "BRK", IMPLIED, M_NONE, NONE, 7 }, /* Pseudo Absolute */
|
/* 00 */ { "BRK", IMPLIED, M_NONE, NONE, 7 }, /* Pseudo Absolute */
|
||||||
/* 01 */ { "ORA", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
/* 01 */ { "ORA", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
||||||
/* 02 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 02 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 03 */ { "slo", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* 03 */ { "slo", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* 04 */ { "nop", ZERO_PAGE, M_NONE, NONE, 3 },
|
/* 04 */ { "nop", ZERO_PAGE, M_NONE, NONE, 3 },
|
||||||
|
@ -1095,7 +1095,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 10 */ { "BPL", RELATIVE, M_REL, READ, 2 },
|
/* 10 */ { "BPL", RELATIVE, M_REL, READ, 2 },
|
||||||
/* 11 */ { "ORA", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* 11 */ { "ORA", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* 12 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 12 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 13 */ { "slo", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* 13 */ { "slo", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* 14 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* 14 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
|
@ -1105,7 +1105,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 18 */ { "CLC", IMPLIED, M_NONE, NONE, 2 },
|
/* 18 */ { "CLC", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 19 */ { "ORA", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* 19 */ { "ORA", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* 1a */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* 1a */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 1b */ { "slo", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* 1b */ { "slo", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* 1c */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* 1c */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
|
@ -1115,7 +1115,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 20 */ { "JSR", ABSOLUTE, M_ADDR, READ, 6 },
|
/* 20 */ { "JSR", ABSOLUTE, M_ADDR, READ, 6 },
|
||||||
/* 21 */ { "AND", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect ,X) */
|
/* 21 */ { "AND", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect ,X) */
|
||||||
/* 22 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 22 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 23 */ { "rla", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* 23 */ { "rla", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* 24 */ { "BIT", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
/* 24 */ { "BIT", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
||||||
|
@ -1126,7 +1126,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
/* 28 */ { "PLP", IMPLIED, M_NONE, NONE, 4 },
|
/* 28 */ { "PLP", IMPLIED, M_NONE, NONE, 4 },
|
||||||
/* 29 */ { "AND", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
/* 29 */ { "AND", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
||||||
/* 2a */ { "ROL", ACCUMULATOR, M_AC, WRITE, 2 }, /* Accumulator */
|
/* 2a */ { "ROL", ACCUMULATOR, M_AC, WRITE, 2 }, /* Accumulator */
|
||||||
/* 2b */ { "anc", IMMEDIATE, M_ACIM, READ, 2 },
|
/* 2b */ { ".anc",IMMEDIATE, M_ACIM, READ, 2 },
|
||||||
|
|
||||||
/* 2c */ { "BIT", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
/* 2c */ { "BIT", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
||||||
/* 2d */ { "AND", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
/* 2d */ { "AND", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
||||||
|
@ -1135,30 +1135,30 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 30 */ { "BMI", RELATIVE, M_REL, READ, 2 },
|
/* 30 */ { "BMI", RELATIVE, M_REL, READ, 2 },
|
||||||
/* 31 */ { "AND", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* 31 */ { "AND", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* 32 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 32 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 33 */ { "rla", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* 33 */ { "rla", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* 34 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* 34 */ { ".nop",ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
/* 35 */ { "AND", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* 35 */ { "AND", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
/* 36 */ { "ROL", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
/* 36 */ { "ROL", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
||||||
/* 37 */ { "rla", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
/* 37 */ { "rla", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
||||||
|
|
||||||
/* 38 */ { "SEC", IMPLIED, M_NONE, NONE, 2 },
|
/* 38 */ { "SEC", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 39 */ { "AND", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* 39 */ { "AND", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* 3a */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* 3a */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 3b */ { "rla", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* 3b */ { "rla", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* 3c */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* 3c */ { ".nop",ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
/* 3d */ { "AND", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
/* 3d */ { "AND", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
||||||
/* 3e */ { "ROL", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
/* 3e */ { "ROL", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
||||||
/* 3f */ { "rla", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
/* 3f */ { "rla", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
||||||
|
|
||||||
/* 40 */ { "RTI", IMPLIED, M_NONE, NONE, 6 },
|
/* 40 */ { "RTI", IMPLIED, M_NONE, NONE, 6 },
|
||||||
/* 41 */ { "EOR", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
/* 41 */ { "EOR", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
||||||
/* 42 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 42 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 43 */ { "sre", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* 43 */ { "sre", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* 44 */ { "nop", ZERO_PAGE, M_NONE, NONE, 3 },
|
/* 44 */ { ".nop",ZERO_PAGE, M_NONE, NONE, 3 },
|
||||||
/* 45 */ { "EOR", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
/* 45 */ { "EOR", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
||||||
/* 46 */ { "LSR", ZERO_PAGE, M_ZERO, WRITE, 5 }, /* Zeropage */
|
/* 46 */ { "LSR", ZERO_PAGE, M_ZERO, WRITE, 5 }, /* Zeropage */
|
||||||
/* 47 */ { "sre", ZERO_PAGE, M_ZERO, WRITE, 5 },
|
/* 47 */ { "sre", ZERO_PAGE, M_ZERO, WRITE, 5 },
|
||||||
|
@ -1175,30 +1175,30 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 50 */ { "BVC", RELATIVE, M_REL, READ, 2 },
|
/* 50 */ { "BVC", RELATIVE, M_REL, READ, 2 },
|
||||||
/* 51 */ { "EOR", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* 51 */ { "EOR", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* 52 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 52 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 53 */ { "sre", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* 53 */ { "sre", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* 54 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* 54 */ { ".nop",ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
/* 55 */ { "EOR", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* 55 */ { "EOR", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
/* 56 */ { "LSR", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
/* 56 */ { "LSR", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
||||||
/* 57 */ { "sre", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
/* 57 */ { "sre", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
||||||
|
|
||||||
/* 58 */ { "CLI", IMPLIED, M_NONE, NONE, 2 },
|
/* 58 */ { "CLI", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 59 */ { "EOR", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* 59 */ { "EOR", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* 5a */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* 5a */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 5b */ { "sre", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* 5b */ { "sre", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* 5c */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* 5c */ { ".nop",ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
/* 5d */ { "EOR", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
/* 5d */ { "EOR", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
||||||
/* 5e */ { "LSR", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
/* 5e */ { "LSR", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
||||||
/* 5f */ { "sre", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
/* 5f */ { "sre", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
||||||
|
|
||||||
/* 60 */ { "RTS", IMPLIED, M_NONE, NONE, 6 },
|
/* 60 */ { "RTS", IMPLIED, M_NONE, NONE, 6 },
|
||||||
/* 61 */ { "ADC", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
/* 61 */ { "ADC", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
||||||
/* 62 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* 62 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* 63 */ { "rra", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* 63 */ { "rra", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* 64 */ { "nop", ZERO_PAGE, M_NONE, NONE, 3 },
|
/* 64 */ { ".nop",ZERO_PAGE, M_NONE, NONE, 3 },
|
||||||
/* 65 */ { "ADC", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
/* 65 */ { "ADC", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
||||||
/* 66 */ { "ROR", ZERO_PAGE, M_ZERO, WRITE, 5 }, /* Zeropage */
|
/* 66 */ { "ROR", ZERO_PAGE, M_ZERO, WRITE, 5 }, /* Zeropage */
|
||||||
/* 67 */ { "rra", ZERO_PAGE, M_ZERO, WRITE, 5 },
|
/* 67 */ { "rra", ZERO_PAGE, M_ZERO, WRITE, 5 },
|
||||||
|
@ -1215,20 +1215,20 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 70 */ { "BVS", RELATIVE, M_REL, READ, 2 },
|
/* 70 */ { "BVS", RELATIVE, M_REL, READ, 2 },
|
||||||
/* 71 */ { "ADC", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* 71 */ { "ADC", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* 72 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT relative? */
|
/* 72 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT relative? */
|
||||||
/* 73 */ { "rra", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* 73 */ { "rra", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* 74 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* 74 */ { ".nop",ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
/* 75 */ { "ADC", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* 75 */ { "ADC", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
/* 76 */ { "ROR", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
/* 76 */ { "ROR", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
||||||
/* 77 */ { "rra", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
/* 77 */ { "rra", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
||||||
|
|
||||||
/* 78 */ { "SEI", IMPLIED, M_NONE, NONE, 2 },
|
/* 78 */ { "SEI", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 79 */ { "ADC", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* 79 */ { "ADC", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* 7a */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* 7a */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* 7b */ { "rra", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* 7b */ { "rra", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* 7c */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* 7c */ { ".nop",ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
/* 7d */ { "ADC", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
/* 7d */ { "ADC", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
||||||
/* 7e */ { "ROR", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
/* 7e */ { "ROR", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
||||||
/* 7f */ { "rra", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
/* 7f */ { "rra", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
||||||
|
@ -1237,7 +1237,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 80 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 },
|
/* 80 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 },
|
||||||
/* 81 */ { "STA", INDIRECT_X, M_AC, WRITE, 6 }, /* (Indirect,X) */
|
/* 81 */ { "STA", INDIRECT_X, M_AC, WRITE, 6 }, /* (Indirect,X) */
|
||||||
/* 82 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 },
|
/* 82 */ { ".nop",IMMEDIATE, M_NONE, NONE, 2 },
|
||||||
/* 83 */ { "sax", INDIRECT_X, M_ANXR, WRITE, 6 },
|
/* 83 */ { "sax", INDIRECT_X, M_ANXR, WRITE, 6 },
|
||||||
|
|
||||||
/* 84 */ { "STY", ZERO_PAGE, M_YR, WRITE, 3 }, /* Zeropage */
|
/* 84 */ { "STY", ZERO_PAGE, M_YR, WRITE, 3 }, /* Zeropage */
|
||||||
|
@ -1246,7 +1246,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
/* 87 */ { "sax", ZERO_PAGE, M_ANXR, WRITE, 3 },
|
/* 87 */ { "sax", ZERO_PAGE, M_ANXR, WRITE, 3 },
|
||||||
|
|
||||||
/* 88 */ { "DEY", IMPLIED, M_YR, NONE, 2 },
|
/* 88 */ { "DEY", IMPLIED, M_YR, NONE, 2 },
|
||||||
/* 89 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 },
|
/* 89 */ { ".nop",IMMEDIATE, M_NONE, NONE, 2 },
|
||||||
/* 8a */ { "TXA", IMPLIED, M_XR, NONE, 2 },
|
/* 8a */ { "TXA", IMPLIED, M_XR, NONE, 2 },
|
||||||
/**** very abnormal: usually AC = AC | #$EE & XR & #$oper ****/
|
/**** very abnormal: usually AC = AC | #$EE & XR & #$oper ****/
|
||||||
/* 8b */ { "ane", IMMEDIATE, M_AXIM, READ, 2 },
|
/* 8b */ { "ane", IMMEDIATE, M_AXIM, READ, 2 },
|
||||||
|
@ -1258,7 +1258,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* 90 */ { "BCC", RELATIVE, M_REL, READ, 2 },
|
/* 90 */ { "BCC", RELATIVE, M_REL, READ, 2 },
|
||||||
/* 91 */ { "STA", INDIRECT_Y, M_AC, WRITE, 6 }, /* (Indirect),Y */
|
/* 91 */ { "STA", INDIRECT_Y, M_AC, WRITE, 6 }, /* (Indirect),Y */
|
||||||
/* 92 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT relative? */
|
/* 92 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT relative? */
|
||||||
/* 93 */ { "sha", INDIRECT_Y, M_ANXR, WRITE, 6 },
|
/* 93 */ { "sha", INDIRECT_Y, M_ANXR, WRITE, 6 },
|
||||||
|
|
||||||
/* 94 */ { "STY", ZERO_PAGE_X, M_YR, WRITE, 4 }, /* Zeropage,X */
|
/* 94 */ { "STY", ZERO_PAGE_X, M_YR, WRITE, 4 }, /* Zeropage,X */
|
||||||
|
@ -1299,7 +1299,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* b0 */ { "BCS", RELATIVE, M_REL, READ, 2 },
|
/* b0 */ { "BCS", RELATIVE, M_REL, READ, 2 },
|
||||||
/* b1 */ { "LDA", INDIRECT_Y, M_INDY, READ, 5 }, /* (indirect),Y */
|
/* b1 */ { "LDA", INDIRECT_Y, M_INDY, READ, 5 }, /* (indirect),Y */
|
||||||
/* b2 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* b2 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* b3 */ { "lax", INDIRECT_Y, M_INDY, READ, 5 },
|
/* b3 */ { "lax", INDIRECT_Y, M_INDY, READ, 5 },
|
||||||
|
|
||||||
/* b4 */ { "LDY", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* b4 */ { "LDY", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
|
@ -1319,7 +1319,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* c0 */ { "CPY", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
/* c0 */ { "CPY", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
||||||
/* c1 */ { "CMP", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
/* c1 */ { "CMP", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
||||||
/* c2 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 }, /* occasional TILT */
|
/* c2 */ { ".nop",IMMEDIATE, M_NONE, NONE, 2 }, /* occasional TILT */
|
||||||
/* c3 */ { "dcp", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* c3 */ { "dcp", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* c4 */ { "CPY", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
/* c4 */ { "CPY", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
||||||
|
@ -1339,27 +1339,27 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* d0 */ { "BNE", RELATIVE, M_REL, READ, 2 },
|
/* d0 */ { "BNE", RELATIVE, M_REL, READ, 2 },
|
||||||
/* d1 */ { "CMP", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* d1 */ { "CMP", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* d2 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* d2 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* d3 */ { "dcp", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* d3 */ { "dcp", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* d4 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* d4 */ { ".nop",ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
/* d5 */ { "CMP", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* d5 */ { "CMP", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
/* d6 */ { "DEC", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
/* d6 */ { "DEC", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
||||||
/* d7 */ { "dcp", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
/* d7 */ { "dcp", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
||||||
|
|
||||||
/* d8 */ { "CLD", IMPLIED, M_NONE, NONE, 2 },
|
/* d8 */ { "CLD", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* d9 */ { "CMP", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* d9 */ { "CMP", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* da */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* da */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* db */ { "dcp", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* db */ { "dcp", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* dc */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* dc */ { ".nop",ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
/* dd */ { "CMP", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
/* dd */ { "CMP", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
||||||
/* de */ { "DEC", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
/* de */ { "DEC", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
||||||
/* df */ { "dcp", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
/* df */ { "dcp", ABSOLUTE_X, M_ABSX, WRITE, 7 },
|
||||||
|
|
||||||
/* e0 */ { "CPX", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
/* e0 */ { "CPX", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
||||||
/* e1 */ { "SBC", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
/* e1 */ { "SBC", INDIRECT_X, M_INDX, READ, 6 }, /* (Indirect,X) */
|
||||||
/* e2 */ { "nop", IMMEDIATE, M_NONE, NONE, 2 },
|
/* e2 */ { ".nop",IMMEDIATE, M_NONE, NONE, 2 },
|
||||||
/* e3 */ { "isb", INDIRECT_X, M_INDX, WRITE, 8 },
|
/* e3 */ { "isb", INDIRECT_X, M_INDX, WRITE, 8 },
|
||||||
|
|
||||||
/* e4 */ { "CPX", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
/* e4 */ { "CPX", ZERO_PAGE, M_ZERO, READ, 3 }, /* Zeropage */
|
||||||
|
@ -1370,7 +1370,7 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
/* e8 */ { "INX", IMPLIED, M_XR, NONE, 2 },
|
/* e8 */ { "INX", IMPLIED, M_XR, NONE, 2 },
|
||||||
/* e9 */ { "SBC", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
/* e9 */ { "SBC", IMMEDIATE, M_IMM, READ, 2 }, /* Immediate */
|
||||||
/* ea */ { "NOP", IMPLIED, M_NONE, NONE, 2 },
|
/* ea */ { "NOP", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* eb */ { "sbc", IMMEDIATE, M_IMM, READ, 2 }, /* same as e9 */
|
/* eb */ { ".sbc",IMMEDIATE, M_IMM, READ, 2 }, /* same as e9 */
|
||||||
|
|
||||||
/* ec */ { "CPX", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
/* ec */ { "CPX", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
||||||
/* ed */ { "SBC", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
/* ed */ { "SBC", ABSOLUTE, M_ABS, READ, 4 }, /* Absolute */
|
||||||
|
@ -1379,20 +1379,20 @@ const DiStella::Instruction_tag DiStella::ourLookup[256] = {
|
||||||
|
|
||||||
/* f0 */ { "BEQ", RELATIVE, M_REL, READ, 2 },
|
/* f0 */ { "BEQ", RELATIVE, M_REL, READ, 2 },
|
||||||
/* f1 */ { "SBC", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
/* f1 */ { "SBC", INDIRECT_Y, M_INDY, READ, 5 }, /* (Indirect),Y */
|
||||||
/* f2 */ { "jam", IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
/* f2 */ { ".jam",IMPLIED, M_NONE, NONE, 0 }, /* TILT */
|
||||||
/* f3 */ { "isb", INDIRECT_Y, M_INDY, WRITE, 8 },
|
/* f3 */ { "isb", INDIRECT_Y, M_INDY, WRITE, 8 },
|
||||||
|
|
||||||
/* f4 */ { "nop", ZERO_PAGE_X, M_NONE, NONE, 4 },
|
/* f4 */ { ".nop",ZERO_PAGE_X, M_NONE, NONE, 4 },
|
||||||
/* f5 */ { "SBC", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
/* f5 */ { "SBC", ZERO_PAGE_X, M_ZERX, READ, 4 }, /* Zeropage,X */
|
||||||
/* f6 */ { "INC", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
/* f6 */ { "INC", ZERO_PAGE_X, M_ZERX, WRITE, 6 }, /* Zeropage,X */
|
||||||
/* f7 */ { "isb", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
/* f7 */ { "isb", ZERO_PAGE_X, M_ZERX, WRITE, 6 },
|
||||||
|
|
||||||
/* f8 */ { "SED", IMPLIED, M_NONE, NONE, 2 },
|
/* f8 */ { "SED", IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* f9 */ { "SBC", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
/* f9 */ { "SBC", ABSOLUTE_Y, M_ABSY, READ, 4 }, /* Absolute,Y */
|
||||||
/* fa */ { "nop", IMPLIED, M_NONE, NONE, 2 },
|
/* fa */ { ".nop",IMPLIED, M_NONE, NONE, 2 },
|
||||||
/* fb */ { "isb", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
/* fb */ { "isb", ABSOLUTE_Y, M_ABSY, WRITE, 7 },
|
||||||
|
|
||||||
/* fc */ { "nop", ABSOLUTE_X, M_NONE, NONE, 4 },
|
/* fc */ { ".nop",ABSOLUTE_X, M_NONE, NONE, 4 },
|
||||||
/* fd */ { "SBC", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
/* fd */ { "SBC", ABSOLUTE_X, M_ABSX, READ, 4 }, /* Absolute,X */
|
||||||
/* fe */ { "INC", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
/* fe */ { "INC", ABSOLUTE_X, M_ABSX, WRITE, 7 }, /* Absolute,X */
|
||||||
/* ff */ { "isb", ABSOLUTE_X, M_ABSX, WRITE, 7 }
|
/* ff */ { "isb", ABSOLUTE_X, M_ABSX, WRITE, 7 }
|
||||||
|
|
Loading…
Reference in New Issue