Ventura Account closed
Registered: Jan 2006 Posts: 67 |
#define OPCODE_ILLEGAL 0x8000 // illegal opcode, unpredictable behaviour
#define OPCODE_NOPARAM 0x4000 // single byte operand, takes no parameters
#define OPCODE_IMM8 0x2000 // load a 8bit value
#define OPCODE_POINTER 0x1000 // load a pointer for adressing
#define OPCODE_MEM8 0x0800 // use 8 bit adressing
#define OPCODE_MEM16 0x0400 // use 16 bit adressing
#define OPCODE_X 0x0200 // mem indexing uses x
#define OPCODE_Y 0x0100 // mem indexing uses y
#define OPCODE_BRANCH8 0x0080 // branch to offset
#define OPCODE_ZEROPAGE OPCODE_POINTER | OPCODE_MEM8 // load from zeropage
#define OPCODE_WORDPTR OPCODE_POINTER | OPCODE_MEM16 // load from 16bit adress
struct {
const char* name;
unsigned char opcode;
unsigned char size_t;
unsigned int param;
} X6510_mnemonics[] = {
{ "brk", 0x00, 1, OPCODE_NOPARAM } ,
{ "ora", 0x01, 2, OPCODE_ZEROPAGE | OPCODE_X } , // ora ($..,x)
{ "jam", 0x02, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "slo", 0x03, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X, } , // slo ($..,x)
{ "nop", 0x04, 2, OPCODE_ILLEGAL | OPCODE_MEM8, } , // nop $..
{ "ora", 0x05, 2, OPCODE_MEM8, } , // ora $..
{ "asl", 0x06, 2, OPCODE_MEM8, } , // asl $..
{ "slo", 0x07, 2, OPCODE_ILLEGAL | OPCODE_MEM8, } , // slo $..
{ "php", 0x08, 1, OPCODE_NOPARAM, } ,
{ "ora", 0x09, 2, OPCODE_IMM8, } , // ora #$..
{ "asl", 0x0a, 1, OPCODE_NOPARAM, } ,
{ "anc", 0x0b, 2, OPCODE_ILLEGAL | OPCODE_IMM8, } , // anc #$..
{ "nop", 0x0c, 3, OPCODE_ILLEGAL | OPCODE_MEM16, } , // nop $....
{ "ora", 0x0d, 3, OPCODE_MEM16, } , // ora $....
{ "asl", 0x0e, 3, OPCODE_MEM16, } , // asl $....
{ "slo", 0x0f, 3, OPCODE_ILLEGAL | OPCODE_MEM16, } , //slo $....
{ "bpl", 0x10, 2, OPCODE_BRANCH8, } , // bpl $offset
{ "ora", 0x11, 2, OPCODE_ZEROPAGE | OPCODE_Y, } , // ora ($..),y
{ "jam", 0x12, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "slo", 0x13, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y, } , // slo ($..),y
{ "nop", 0x14, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X, } , // nop $..,x
{ "ora", 0x15, 2, OPCODE_MEM8 | OPCODE_X, } , // ora $..,x
{ "asl", 0x16, 2, OPCODE_MEM8 | OPCODE_X, } , // asl $..,x
{ "slo", 0x17, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X, } , // slo $..,x
{ "clc", 0x18, 1, OPCODE_NOPARAM, } ,
{ "ora", 0x19, 3, OPCODE_MEM16 | OPCODE_Y, } , // ora $....,y
{ "nop", 0x1a, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "slo", 0x1b, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y, } , // slo $....,y
{ "nop", 0x1c, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X, } , // nop $....,x
{ "ora", 0x1d, 3, OPCODE_MEM16 | OPCODE_X, } , // ora $....,x
{ "asl", 0x1e, 3, OPCODE_MEM16 | OPCODE_X, } , // asl $....,x
{ "slo", 0x1f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X, } , // slo $....,x
{ "jsr", 0x20, 3, OPCODE_MEM16, } , // jsr $....
{ "and", 0x21, 2, OPCODE_ZEROPAGE | OPCODE_X, } , // and ($..,x)
{ "jam", 0x22, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "rla", 0x23, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X, } , // rla ($..,x)
{ "bit", 0x24, 2, OPCODE_MEM8, } , // bit $..
{ "and", 0x25, 2, OPCODE_MEM8, } , // and $..
{ "rol", 0x26, 2, OPCODE_MEM8, } , // rol $..
{ "rla", 0x27, 2, OPCODE_ILLEGAL | OPCODE_MEM8, } , // rla $..
{ "plp", 0x28, 1, OPCODE_NOPARAM, } ,
{ "and", 0x29, 2, OPCODE_IMM8, } , // and #$..
{ "rol", 0x2a, 2, OPCODE_NOPARAM, } ,
{ "anc", 0x2b, 2, OPCODE_ILLEGAL | OPCODE_IMM8, } , // anc #$..
{ "bit", 0x2c, 3, OPCODE_MEM16, } , // bit $....
{ "and", 0x2d, 3, OPCODE_MEM16, } , // and $....
{ "rol", 0x2e, 3, OPCODE_MEM16, } , // rol $....
{ "rla", 0x2f, 3, OPCODE_ILLEGAL | OPCODE_MEM16, } , // rla $....
{ "bmi", 0x30, 2, OPCODE_BRANCH8, } , // bmi $....
{ "and", 0x31, 2, OPCODE_ZEROPAGE | OPCODE_Y, } , // and ($..),y
{ "jam", 0x32, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "rla", 0x33, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y, } , // rla ($..),y
{ "nop", 0x34, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X, } , // nop $..,x
{ "and", 0x35, 2, OPCODE_MEM8 | OPCODE_X, } , // and $..,x
{ "rol", 0x36, 2, OPCODE_MEM8 | OPCODE_X, } , // rol $..,x
{ "rla", 0x37, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X, } , // rla $..,x
{ "sec", 0x38, 1, OPCODE_NOPARAM, } ,
{ "and", 0x39, 3, OPCODE_MEM16 | OPCODE_Y, } , // and $....,y
{ "nop", 0x3a, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM, } ,
{ "rla", 0x3b, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y, } , // rla $....,y
{ "nop", 0x3c, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X, } , // nop $....,x
{ "and", 0x3d, 3, OPCODE_MEM16 | OPCODE_X, } , // and $....,x
{ "rol", 0x3e, 3, OPCODE_MEM16 | OPCODE_X, } , // rol $....,x
{ "rla", 0x3f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X, } , // rla $....,x
{ "rti", 0x40, 1, OPCODE_NOPARAM, } ,
{ "eor", 0x41, 2, OPCODE_ZEROPAGE | OPCODE_X, } , // eor ($..,x)
{ "jam", 0x42, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "sre", 0x43, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X, } , // sre ($..,x)
{ "nop", 0x44, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // nop $..
{ "eor", 0x45, 2, OPCODE_MEM8 } , // eor $..
{ "lsr", 0x46, 2, OPCODE_MEM8 } , // lsr $..
{ "sre", 0x47, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // sre $..
{ "pha", 0x48, 1, OPCODE_NOPARAM } ,
{ "eor", 0x49, 2, OPCODE_IMM8 } , // eor #$..
{ "lsr", 0x4a, 1, OPCODE_NOPARAM } ,
{ "asr", 0x4b, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // asr #$..
{ "jmp", 0x4c, 3, OPCODE_MEM16 } , // jmp $....
{ "eor", 0x4d, 3, OPCODE_MEM16 } , // eor $....
{ "lsr", 0x4e, 3, OPCODE_MEM16 } , // lsr $....
{ "sre", 0x4f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // sre $....
{ "bvc", 0x50, 2, OPCODE_BRANCH8 } , // bvc $offset
{ "eor", 0x51, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // eor ($..),y
{ "jam", 0x52, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "sre", 0x53, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // sre ($..),y
{ "nop", 0x54, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // nop $..,x
{ "eor", 0x55, 2, OPCODE_MEM8 | OPCODE_X } , // eor $..,x
{ "lsr", 0x56, 2, OPCODE_MEM8 | OPCODE_X } , // lsr $..,x
{ "sre", 0x57, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // sre $..,x
{ "cli", 0x58, 1, OPCODE_NOPARAM } ,
{ "eor", 0x59, 3, OPCODE_MEM16 | OPCODE_Y } , // eor $....,y
{ "nop", 0x5a, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "sre", 0x5b, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // sre $....,y
{ "nop", 0x5c, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // nop $....,x
{ "eor", 0x5d, 3, OPCODE_MEM16 | OPCODE_X } , // eor $....,x
{ "lsr", 0x5e, 3, OPCODE_MEM16 | OPCODE_X } , // lsr $....,x
{ "sre", 0x5f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // sre $....,x
{ "rts", 0x60, 1, OPCODE_NOPARAM } ,
{ "adc", 0x61, 2, OPCODE_ZEROPAGE | OPCODE_X } , // adc ($..,x)
{ "jam", 0x62, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "rra", 0x63, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X } , // rra ($..,x)
{ "nop", 0x64, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // nop $..
{ "adc", 0x65, 2, OPCODE_MEM8 } , // adc $..
{ "ror", 0x66, 2, OPCODE_MEM8 } , // ror $..
{ "rra", 0x67, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // rra $..
{ "pla", 0x68, 1, OPCODE_NOPARAM } ,
{ "adc", 0x69, 2, OPCODE_IMM8 } , // adc #$..
{ "ror", 0x6a, 1, OPCODE_NOPARAM } ,
{ "arr", 0x6b, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // arr #$..
{ "jmp", 0x6c, 3, OPCODE_WORDPTR } , // jmp ($....)
{ "adc", 0x6d, 3, OPCODE_MEM16 } , // adc $....
{ "ror", 0x6e, 3, OPCODE_MEM16 } , // ror $....
{ "rra", 0x6f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // rra $....
{ "bvs", 0x70, 2, OPCODE_BRANCH8 } ,
{ "adc", 0x71, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // adc ($..),y
{ "jam", 0x72, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "rra", 0x73, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // rra ($..),y
{ "nop", 0x74, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } ,
{ "adc", 0x75, 2, OPCODE_MEM8 | OPCODE_X } , // adc $..,x
{ "ror", 0x76, 2, OPCODE_MEM8 | OPCODE_X } , // ror $..,x
{ "rra", 0x77, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // rra $..,x
{ "sei", 0x78, 1, OPCODE_NOPARAM } ,
{ "adc", 0x79, 3, OPCODE_MEM16 | OPCODE_Y } , // adc $....,y
{ "nop", 0x7a, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "rra", 0x7b, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // rra $....,y
{ "nop", 0x7c, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // nop $....,x
{ "adc", 0x7d, 3, OPCODE_MEM16 | OPCODE_X } , // adc $....,x
{ "ror", 0x7e, 3, OPCODE_MEM16 | OPCODE_X } , // ror $....,x
{ "rra", 0x7f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // rra $....,x
{ "nop", 0x80, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // nop #$..
{ "sta", 0x81, 2, OPCODE_ZEROPAGE | OPCODE_X } , // sta ($..,x)
{ "nop", 0x82, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // nop #$..
{ "sax", 0x83, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X } , // sax ($..,x)
{ "sty", 0x84, 2, OPCODE_MEM8 } , // sty $..
{ "sta", 0x85, 2, OPCODE_MEM8 } , // sta $..
{ "stx", 0x86, 2, OPCODE_MEM8 } , // stx $..
{ "sax", 0x87, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // sax $..
{ "dey", 0x88, 1, OPCODE_NOPARAM } ,
{ "nop", 0x89, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // nop #$..
{ "txa", 0x8a, 1, OPCODE_NOPARAM } ,
{ "ane", 0x8b, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // and #$..
{ "sty", 0x8c, 3, OPCODE_MEM16 } , // sty $....
{ "sta", 0x8d, 3, OPCODE_MEM16 } , // sta $....
{ "stx", 0x8e, 3, OPCODE_MEM16 } , // stx $....
{ "sax", 0x8f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // sax $....
{ "bcc", 0x90, 2, OPCODE_BRANCH8 } ,
{ "sta", 0x91, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // sta ($..),y
{ "jam", 0x92, 1, OPCODE_NOPARAM } ,
{ "sha", 0x93, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // sha ($..),y
{ "sty", 0x94, 2, OPCODE_MEM8 | OPCODE_X } , // sty $..,x
{ "sta", 0x95, 2, OPCODE_MEM8 | OPCODE_X } , // sta $..,x
{ "stx", 0x96, 2, OPCODE_MEM8 | OPCODE_Y } , // stx $..,y
{ "sax", 0x97, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_Y } , // sax $..,y
{ "tya", 0x98, 1, OPCODE_NOPARAM } ,
{ "sta", 0x99, 3, OPCODE_MEM16 | OPCODE_Y } , // sta $....,y
{ "txs", 0x9a, 1, OPCODE_NOPARAM } ,
{ "shs", 0x9b, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // shs $....,y
{ "shy", 0x9c, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // shy $....,x
{ "sta", 0x9d, 3, OPCODE_MEM16 | OPCODE_X } , // sta $....,x
{ "shx", 0x9e, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // shx $....,y
{ "sha", 0x9f, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // sha $....,y
{ "ldy", 0xa0, 2, OPCODE_IMM8 } , // ldy #$..
{ "lda", 0xa1, 2, OPCODE_ZEROPAGE | OPCODE_X } , // lda ($..,x)
{ "ldx", 0xa2, 2, OPCODE_IMM8 } , // ldx #$..
{ "lax", 0xa3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X } , // lax ($..,x)
{ "ldy", 0xa4, 2, OPCODE_MEM8 } , // ldy $..
{ "lda", 0xa5, 2, OPCODE_MEM8 } , // lda $..
{ "ldx", 0xa6, 2, OPCODE_MEM8 } , // ldx $..
{ "lax", 0xa7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // lax $..
{ "tay", 0xa8, 1, OPCODE_NOPARAM } ,
{ "lda", 0xa9, 2, OPCODE_IMM8 } , // lda #$..
{ "tax", 0xaa, 1, OPCODE_NOPARAM } ,
{ "lxa", 0xab, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // lxa #$..
{ "ldy", 0xac, 3, OPCODE_MEM16 } , // ldy $....
{ "lda", 0xad, 3, OPCODE_MEM16 } , // lda $....
{ "ldx", 0xae, 3, OPCODE_MEM16 } , // ldx $....
{ "lax", 0xaf, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // lax $....
{ "bcs", 0xb0, 2, OPCODE_BRANCH8 } ,
{ "lda", 0xb1, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // lda ($..),y
{ "jam", 0xb2, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "lax", 0xb3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // lax ($..),y
{ "ldy", 0xb4, 2, OPCODE_MEM8 | OPCODE_X } , // ldy $..,x
{ "lda", 0xb5, 2, OPCODE_MEM8 | OPCODE_X } , // lda $..,x
{ "ldx", 0xb6, 2, OPCODE_MEM8 | OPCODE_Y } , // ldx $..,y
{ "lax", 0xb7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_Y } , // lax $..,y
{ "clv", 0xb8, 1, OPCODE_NOPARAM } ,
{ "lda", 0xb9, 3, OPCODE_MEM16 | OPCODE_Y } , // lda $....,y
{ "tsx", 0xba, 1, OPCODE_NOPARAM } ,
{ "lax", 0xbb, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // lax $....,y
{ "ldy", 0xbc, 3, OPCODE_MEM16 | OPCODE_X } , // ldy $....,x
{ "lda", 0xbd, 3, OPCODE_MEM16 | OPCODE_X } , // lda $....,x
{ "ldx", 0xbe, 3, OPCODE_MEM16 | OPCODE_Y } , // ldx $....,y
{ "lax", 0xbf, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // lax $....,y
{ "cpy", 0xc0, 2, OPCODE_IMM8 } , // cpy #$..
{ "cmp", 0xc1, 2, OPCODE_ZEROPAGE | OPCODE_X } , // cmp ($..,x)
{ "nop", 0xc2, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // nop #$..
{ "dcp", 0xc3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X } , // dcp ($..,x)
{ "cpy", 0xc4, 2, OPCODE_MEM8 } , // cpy $..
{ "cmp", 0xc5, 2, OPCODE_MEM8 } , // cmp $..
{ "dec", 0xc6, 2, OPCODE_MEM8 } , // dec $..
{ "dcp", 0xc7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // dcp $..
{ "iny", 0xc8, 1, OPCODE_NOPARAM } ,
{ "cmp", 0xc9, 2, OPCODE_IMM8 } , // cmp #$..
{ "dex", 0xca, 1, OPCODE_NOPARAM } ,
{ "sbx", 0xcb, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // sbx #$..
{ "cpy", 0xcc, 3, OPCODE_MEM16 } , // cpy $....
{ "cmp", 0xcd, 3, OPCODE_MEM16 } , // cmp $....
{ "dec", 0xce, 3, OPCODE_MEM16 } , // dec $....
{ "dcp", 0xcf, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // dcp $....
{ "bne", 0xd0, 2, OPCODE_BRANCH8 } ,
{ "cmp", 0xd1, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // cmp ($..),y
{ "jam", 0xd2, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "dcp", 0xd3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // dcp ($..),y
{ "nop", 0xd4, 2, OPCODE_MEM8 | OPCODE_X } , // nop $..,x
{ "cmp", 0xd5, 2, OPCODE_MEM8 | OPCODE_X } , // cmp $..,x
{ "dec", 0xd6, 2, OPCODE_MEM8 | OPCODE_X } , // dec $..,x
{ "dcp", 0xd7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // dcp $..,x
{ "cld", 0xd8, 1, OPCODE_NOPARAM } ,
{ "cmp", 0xd9, 3, OPCODE_MEM16 | OPCODE_Y } , // cmp $....,y
{ "nop", 0xda, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "dcp", 0xdb, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // dcp $....,y
{ "nop", 0xdc, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // nop $....,x
{ "cmp", 0xdd, 3, OPCODE_MEM16 | OPCODE_X } , // cmp $....,x
{ "dec", 0xde, 3, OPCODE_MEM16 | OPCODE_X } , // dec $....,x
{ "dcp", 0xdf, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // dcp $....,x
{ "cpx", 0xe0, 2, OPCODE_IMM8 } , // cpx #$..
{ "sbc", 0xe1, 2, OPCODE_ZEROPAGE | OPCODE_X } , // sbc ($..,x)
{ "nop", 0xe2, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // nop #$..
{ "isb", 0xe3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_X } , // isb ($..,x)
{ "cpx", 0xe4, 2, OPCODE_MEM8 } , // cpx $..
{ "sbc", 0xe5, 2, OPCODE_MEM8 } , // sbc $..
{ "inc", 0xe6, 2, OPCODE_MEM8 } , // inc $..
{ "isb", 0xe7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 } , // isb $..
{ "inx", 0xe8, 1, OPCODE_NOPARAM } ,
{ "sbc", 0xe9, 2, OPCODE_IMM8 } , // sbc #$..
{ "nop", 0xea, 1, OPCODE_NOPARAM } ,
{ "sbc", 0xeb, 2, OPCODE_ILLEGAL | OPCODE_IMM8 } , // sbc #$..
{ "cpx", 0xec, 3, OPCODE_MEM16 } , // cpx $....
{ "sbc", 0xed, 3, OPCODE_MEM16 } , // sbc $....
{ "inc", 0xee, 3, OPCODE_MEM16 } , // inc $....
{ "isb", 0xef, 3, OPCODE_ILLEGAL | OPCODE_MEM16 } , // isb $....
{ "beq", 0xf0, 2, OPCODE_BRANCH8 } ,
{ "sbc", 0xf1, 2, OPCODE_ZEROPAGE | OPCODE_Y } , // sbc ($..),y
{ "jam", 0xf2, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "isb", 0xf3, 2, OPCODE_ILLEGAL | OPCODE_ZEROPAGE | OPCODE_Y } , // isb ($..),y
{ "nop", 0xf4, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // nop $..,x
{ "sbc", 0xf5, 2, OPCODE_MEM8 | OPCODE_X } , // sbc $..,x
{ "inc", 0xf6, 2, OPCODE_MEM8 | OPCODE_X } , // inc $..,x
{ "isb", 0xf7, 2, OPCODE_ILLEGAL | OPCODE_MEM8 | OPCODE_X } , // isb $..,x
{ "sed", 0xf8, 1, OPCODE_NOPARAM } ,
{ "sbc", 0xf9, 3, OPCODE_MEM16 | OPCODE_Y } , // sbc $....,y
{ "nop", 0xfa, 1, OPCODE_ILLEGAL | OPCODE_NOPARAM } ,
{ "isb", 0xfb, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_Y } , // isb $....,y
{ "nop", 0xfc, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // nop $....,x
{ "sbc", 0xfd, 3, OPCODE_MEM16 | OPCODE_X } , // sbc $....,x
{ "inc", 0xfe, 3, OPCODE_MEM16 | OPCODE_X } , // inc $....,x
{ "isb", 0xff, 3, OPCODE_ILLEGAL | OPCODE_MEM16 | OPCODE_X } , // isb $....,x
};
|