1
0
mirror of https://github.com/rkujawa/rk65c02.git synced 2025-01-21 01:31:33 +00:00

Instruction addressing modes now handled with enum.

While here imlpement instruciton printing for all addressing modes.
This commit is contained in:
Radosław Kujawa 2017-01-17 00:42:31 +01:00
parent 5861d40352
commit 0da3d6dc5f
2 changed files with 323 additions and 293 deletions

View File

@ -35,25 +35,25 @@ instruction_fetch(bus_t *b, uint16_t addr)
/* handle operands */ /* handle operands */
switch (i.def.mode) { switch (i.def.mode) {
case ADDR_IMMEDIATE: case IMMEDIATE:
case ADDR_ZP: case ZP:
case ADDR_ZPX: case ZPX:
case ADDR_ZPY: case ZPY:
case ADDR_IZP: case IZP:
case ADDR_IZPX: case IZPX:
case ADDR_IZPY: case IZPY:
case ADDR_RELATIVE: case RELATIVE:
i.op1 = bus_read_1(b, addr+1); i.op1 = bus_read_1(b, addr+1);
break; break;
case ADDR_ABSOLUTE: case ABSOLUTE:
case ADDR_ABSOLUTEX: case ABSOLUTEX:
case ADDR_ABSOLUTEY: case ABSOLUTEY:
case ADDR_IABSOLUTE: case IABSOLUTE:
case ADDR_IABSOLUTEX: case IABSOLUTEX:
i.op1 = bus_read_1(b, addr+1); i.op1 = bus_read_1(b, addr+1);
i.op2 = bus_read_1(b, addr+2); i.op2 = bus_read_1(b, addr+2);
break; break;
case ADDR_IMPLIED: case IMPLIED:
default: default:
break; break;
} }
@ -65,21 +65,49 @@ void
instruction_print(instruction_t *i) instruction_print(instruction_t *i)
{ {
switch (i->def.mode) { switch (i->def.mode) {
case ADDR_IMPLIED: case IMPLIED:
printf("%s", i->def.mnemonic); printf("%s", i->def.mnemonic);
break; break;
case ADDR_IMMEDIATE: case IMMEDIATE:
printf("%s #%X", i->def.mnemonic, i->op1); printf("%s #%X", i->def.mnemonic, i->op1);
break; break;
case ADDR_ZP: case ZP:
printf("%s %X", i->def.mnemonic, i->op1); printf("%s %X", i->def.mnemonic, i->op1);
break; break;
case ZPX:
case ADDR_ABSOLUTE: printf("%s %X,X", i->def.mnemonic, i->op1);
break;
case ZPY:
printf("%s %X,Y", i->def.mnemonic, i->op1);
break;
case IZP:
printf("%s (%X)", i->def.mnemonic, i->op1);
break;
case IZPX:
printf("%s (%X,X)", i->def.mnemonic, i->op1);
break;
case IZPY:
printf("%s (%X),Y", i->def.mnemonic, i->op1);
break;
case ABSOLUTE:
printf("%s %02X%02X", i->def.mnemonic, i->op2, i->op1);
break;
case ABSOLUTEX:
printf("%s %02X%02X,X", i->def.mnemonic, i->op2, i->op1);
break;
case ABSOLUTEY:
printf("%s %02X%02X,Y", i->def.mnemonic, i->op2, i->op1);
break;
case IABSOLUTE:
printf("%s (%02X%02X)", i->def.mnemonic, i->op2, i->op1);
break;
case IABSOLUTEX:
printf("%s (%02X%02X,X)", i->def.mnemonic, i->op2, i->op1);
break;
case RELATIVE:
printf("%s %02X%02X", i->def.mnemonic, i->op2, i->op1); printf("%s %02X%02X", i->def.mnemonic, i->op2, i->op1);
break; break;
} }
} }
void void

View File

@ -1,10 +1,27 @@
#ifndef _RK6502_H_ #ifndef _RK6502_H_
#define _RK6502_H_ #define _RK6502_H_
typedef enum {
IMPLIED,
IMMEDIATE,
ZP,
ZPX,
ZPY,
IZP,
IZPX,
IZPY,
RELATIVE,
ABSOLUTE,
ABSOLUTEX,
ABSOLUTEY,
IABSOLUTE,
IABSOLUTEX
} addressing_t;
struct instrdef { struct instrdef {
uint8_t op; uint8_t op;
const char *mnemonic; const char *mnemonic;
uint8_t mode; addressing_t mode;
uint8_t size; uint8_t size;
}; };
@ -19,21 +36,6 @@ struct instruction {
typedef struct instruction instruction_t; typedef struct instruction instruction_t;
#define ADDR_IMPLIED 1
#define ADDR_IMMEDIATE 2
#define ADDR_ZP 3
#define ADDR_ZPX 4
#define ADDR_ZPY 5
#define ADDR_IZP 6
#define ADDR_IZPX 7
#define ADDR_IZPY 8
#define ADDR_RELATIVE 9
#define ADDR_ABSOLUTE 10
#define ADDR_ABSOLUTEX 11
#define ADDR_ABSOLUTEY 12
#define ADDR_IABSOLUTE 13
#define ADDR_IABSOLUTEX 14
#define OP_BRK 0x00 #define OP_BRK 0x00
#define OP_TSB_ZP 0x04 #define OP_TSB_ZP 0x04
@ -46,263 +48,263 @@ typedef struct instruction instruction_t;
#define OP_UNIMPL 0xFF #define OP_UNIMPL 0xFF
const struct instrdef instrs[] = { const struct instrdef instrs[] = {
{ OP_BRK, "brk", ADDR_IMPLIED, 1 }, { OP_BRK, "brk", IMPLIED, 1 },
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_NOP, "nop", ADDR_IMMEDIATE, 2}, /* invalid */ { OP_NOP, "nop", IMMEDIATE, 2}, /* inv */
{ OP_NOP, "nop", ADDR_IMPLIED, 1}, /* invalid */ { OP_NOP, "nop", IMPLIED, 1}, /* inv */
{ OP_TSB_ZP, "tsb", ADDR_ZP, 2}, { OP_TSB_ZP, "tsb", ZP, 2},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_JSR, "jsr", ADDR_ABSOLUTE, 3}, { OP_JSR, "jsr", ABSOLUTE, 3},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_LDY_IMM, "ldy", ADDR_IMMEDIATE, 2}, { OP_LDY_IMM, "ldy", IMMEDIATE, 2},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_STP, "stp", ADDR_IMPLIED, 1}, { OP_STP, "stp", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_INX, "inx", ADDR_IMPLIED, 1}, { OP_INX, "inx", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_NOP, "nop", ADDR_IMPLIED, 1}, { OP_NOP, "nop", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpl", ADDR_IMPLIED, 1}, { OP_UNIMPL, "unimpl", IMPLIED, 1},
{ OP_UNIMPL, "unimpllast", ADDR_IMPLIED, 1} { OP_UNIMPL, "unimpllast", IMPLIED, 1}
}; };