package rexcode_mos65816 // ============================================================================= // GENERATED FILE - DO NOT EDIT // ============================================================================= // // Generated by tools/gen_decode_tables.odin from ENCODING_TABLE. // Regenerate with: cd mos65816 && odin run tools/gen_decode_tables.odin -file // Decode_Entry :: struct #packed { mnemonic: Mnemonic, ops: [2]Operand_Type, enc: [2]Operand_Encoding, opcode: u8, length: u8, flags: Encoding_Flags, } #assert(size_of(Decode_Entry) == 9) Decode_Index :: struct #packed { start: u16, count: u16, } #assert(size_of(Decode_Index) == 4) @(rodata) DECODE_ENTRIES := [268]Decode_Entry{ { .BRK, {.IMM_8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x00, 2, {branch=true} }, { .ORA, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x01, 2, {} }, { .COP, {.IMM_8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x02, 2, {branch=true} }, { .ORA, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x03, 2, {} }, { .TSB, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x04, 2, {} }, { .ORA, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x05, 2, {} }, { .ASL, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x06, 2, {} }, { .ORA, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x07, 2, {} }, { .PHP, {.NONE, .NONE}, {.NONE, .NONE}, 0x08, 1, {} }, { .ORA, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x09, 2, {} }, { .ORA, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0x09, 3, {} }, { .ASL, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x0A, 1, {} }, { .PHD, {.NONE, .NONE}, {.NONE, .NONE}, 0x0B, 1, {} }, { .TSB, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x0C, 3, {} }, { .ORA, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x0D, 3, {} }, { .ASL, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x0E, 3, {} }, { .ORA, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x0F, 4, {} }, { .BPL, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x10, 2, {cond_branch=true} }, { .ORA, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x11, 2, {page_cross=true} }, { .ORA, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x12, 2, {} }, { .ORA, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x13, 2, {} }, { .TRB, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x14, 2, {} }, { .ORA, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x15, 2, {} }, { .ASL, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x16, 2, {} }, { .ORA, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x17, 2, {} }, { .CLC, {.NONE, .NONE}, {.NONE, .NONE}, 0x18, 1, {} }, { .ORA, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0x19, 3, {page_cross=true} }, { .INC, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x1A, 1, {} }, { .TCS, {.NONE, .NONE}, {.NONE, .NONE}, 0x1B, 1, {} }, { .TRB, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x1C, 3, {} }, { .ORA, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x1D, 3, {page_cross=true} }, { .ASL, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x1E, 3, {} }, { .ORA, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0x1F, 4, {} }, { .JSR, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x20, 3, {branch=true} }, { .AND, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x21, 2, {} }, { .JSL, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x22, 4, {branch=true} }, { .AND, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x23, 2, {} }, { .BIT, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x24, 2, {} }, { .AND, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x25, 2, {} }, { .ROL, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x26, 2, {} }, { .AND, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x27, 2, {} }, { .PLP, {.NONE, .NONE}, {.NONE, .NONE}, 0x28, 1, {} }, { .AND, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x29, 2, {} }, { .AND, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0x29, 3, {} }, { .ROL, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x2A, 1, {} }, { .PLD, {.NONE, .NONE}, {.NONE, .NONE}, 0x2B, 1, {} }, { .BIT, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x2C, 3, {} }, { .AND, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x2D, 3, {} }, { .ROL, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x2E, 3, {} }, { .AND, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x2F, 4, {} }, { .BMI, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x30, 2, {cond_branch=true} }, { .AND, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x31, 2, {page_cross=true} }, { .AND, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x32, 2, {} }, { .AND, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x33, 2, {} }, { .BIT, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x34, 2, {} }, { .AND, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x35, 2, {} }, { .ROL, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x36, 2, {} }, { .AND, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x37, 2, {} }, { .SEC, {.NONE, .NONE}, {.NONE, .NONE}, 0x38, 1, {} }, { .AND, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0x39, 3, {page_cross=true} }, { .DEC, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x3A, 1, {} }, { .TSC, {.NONE, .NONE}, {.NONE, .NONE}, 0x3B, 1, {} }, { .BIT, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x3C, 3, {page_cross=true} }, { .AND, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x3D, 3, {page_cross=true} }, { .ROL, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x3E, 3, {} }, { .AND, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0x3F, 4, {} }, { .RTI, {.NONE, .NONE}, {.NONE, .NONE}, 0x40, 1, {branch=true} }, { .EOR, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x41, 2, {} }, { .WDM, {.IMM_8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x42, 2, {} }, { .EOR, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x43, 2, {} }, { .MVP, {.BANK_SRC, .BANK_DST}, {.BYTE_2_BANK, .BYTE_1_BANK}, 0x44, 3, {} }, { .EOR, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x45, 2, {} }, { .LSR, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x46, 2, {} }, { .EOR, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x47, 2, {} }, { .PHA, {.NONE, .NONE}, {.NONE, .NONE}, 0x48, 1, {} }, { .EOR, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x49, 2, {} }, { .EOR, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0x49, 3, {} }, { .LSR, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x4A, 1, {} }, { .PHK, {.NONE, .NONE}, {.NONE, .NONE}, 0x4B, 1, {} }, { .JMP, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x4C, 3, {branch=true} }, { .EOR, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x4D, 3, {} }, { .LSR, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x4E, 3, {} }, { .EOR, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x4F, 4, {} }, { .BVC, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x50, 2, {cond_branch=true} }, { .EOR, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x51, 2, {page_cross=true} }, { .EOR, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x52, 2, {} }, { .EOR, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x53, 2, {} }, { .MVN, {.BANK_SRC, .BANK_DST}, {.BYTE_2_BANK, .BYTE_1_BANK}, 0x54, 3, {} }, { .EOR, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x55, 2, {} }, { .LSR, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x56, 2, {} }, { .EOR, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x57, 2, {} }, { .CLI, {.NONE, .NONE}, {.NONE, .NONE}, 0x58, 1, {} }, { .EOR, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0x59, 3, {page_cross=true} }, { .PHY, {.NONE, .NONE}, {.NONE, .NONE}, 0x5A, 1, {} }, { .TCD, {.NONE, .NONE}, {.NONE, .NONE}, 0x5B, 1, {} }, { .JML, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x5C, 4, {branch=true} }, { .EOR, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x5D, 3, {page_cross=true} }, { .LSR, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x5E, 3, {} }, { .EOR, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0x5F, 4, {} }, { .RTS, {.NONE, .NONE}, {.NONE, .NONE}, 0x60, 1, {branch=true} }, { .ADC, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x61, 2, {} }, { .PER, {.REL_LONG, .NONE}, {.WORD_1_REL, .NONE}, 0x62, 3, {} }, { .ADC, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x63, 2, {} }, { .STZ, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x64, 2, {} }, { .ADC, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x65, 2, {} }, { .ROR, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x66, 2, {} }, { .ADC, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x67, 2, {} }, { .PLA, {.NONE, .NONE}, {.NONE, .NONE}, 0x68, 1, {} }, { .ADC, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x69, 2, {} }, { .ADC, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0x69, 3, {} }, { .ROR, {.A_IMPL, .NONE}, {.IMPL, .NONE}, 0x6A, 1, {} }, { .RTL, {.NONE, .NONE}, {.NONE, .NONE}, 0x6B, 1, {branch=true} }, { .JMP, {.MEM_ABS_IND, .NONE}, {.WORD_1_ADDR, .NONE}, 0x6C, 3, {branch=true} }, { .ADC, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x6D, 3, {} }, { .ROR, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x6E, 3, {} }, { .ADC, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x6F, 4, {} }, { .BVS, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x70, 2, {cond_branch=true} }, { .ADC, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x71, 2, {page_cross=true} }, { .ADC, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x72, 2, {} }, { .ADC, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x73, 2, {} }, { .STZ, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x74, 2, {} }, { .ADC, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x75, 2, {} }, { .ROR, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x76, 2, {} }, { .ADC, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x77, 2, {} }, { .SEI, {.NONE, .NONE}, {.NONE, .NONE}, 0x78, 1, {} }, { .ADC, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0x79, 3, {page_cross=true} }, { .PLY, {.NONE, .NONE}, {.NONE, .NONE}, 0x7A, 1, {} }, { .TDC, {.NONE, .NONE}, {.NONE, .NONE}, 0x7B, 1, {} }, { .JMP, {.MEM_ABS_IND_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x7C, 3, {branch=true} }, { .ADC, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x7D, 3, {page_cross=true} }, { .ROR, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x7E, 3, {} }, { .ADC, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0x7F, 4, {} }, { .BRA, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x80, 2, {branch=true} }, { .STA, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x81, 2, {} }, { .BRL, {.REL_LONG, .NONE}, {.WORD_1_REL, .NONE}, 0x82, 3, {branch=true} }, { .STA, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x83, 2, {} }, { .STY, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x84, 2, {} }, { .STA, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x85, 2, {} }, { .STX, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x86, 2, {} }, { .STA, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x87, 2, {} }, { .DEY, {.NONE, .NONE}, {.NONE, .NONE}, 0x88, 1, {} }, { .BIT, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0x89, 2, {} }, { .BIT, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0x89, 3, {} }, { .TXA, {.NONE, .NONE}, {.NONE, .NONE}, 0x8A, 1, {} }, { .PHB, {.NONE, .NONE}, {.NONE, .NONE}, 0x8B, 1, {} }, { .STY, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x8C, 3, {} }, { .STA, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x8D, 3, {} }, { .STX, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x8E, 3, {} }, { .STA, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0x8F, 4, {} }, { .BCC, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0x90, 2, {cond_branch=true} }, { .STA, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x91, 2, {} }, { .STA, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x92, 2, {} }, { .STA, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x93, 2, {} }, { .STY, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x94, 2, {} }, { .STA, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x95, 2, {} }, { .STX, {.MEM_DP_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x96, 2, {} }, { .STA, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0x97, 2, {} }, { .TYA, {.NONE, .NONE}, {.NONE, .NONE}, 0x98, 1, {} }, { .STA, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0x99, 3, {} }, { .TXS, {.NONE, .NONE}, {.NONE, .NONE}, 0x9A, 1, {} }, { .TXY, {.NONE, .NONE}, {.NONE, .NONE}, 0x9B, 1, {} }, { .STZ, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0x9C, 3, {} }, { .STA, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x9D, 3, {} }, { .STZ, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0x9E, 3, {} }, { .STA, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0x9F, 4, {} }, { .LDY, {.IMM_X8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xA0, 2, {} }, { .LDY, {.IMM_X16, .NONE}, {.WORD_1_IMM, .NONE}, 0xA0, 3, {} }, { .LDA, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA1, 2, {} }, { .LDX, {.IMM_X8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xA2, 2, {} }, { .LDX, {.IMM_X16, .NONE}, {.WORD_1_IMM, .NONE}, 0xA2, 3, {} }, { .LDA, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA3, 2, {} }, { .LDY, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA4, 2, {} }, { .LDA, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA5, 2, {} }, { .LDX, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA6, 2, {} }, { .LDA, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xA7, 2, {} }, { .TAY, {.NONE, .NONE}, {.NONE, .NONE}, 0xA8, 1, {} }, { .LDA, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xA9, 2, {} }, { .LDA, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0xA9, 3, {} }, { .TAX, {.NONE, .NONE}, {.NONE, .NONE}, 0xAA, 1, {} }, { .PLB, {.NONE, .NONE}, {.NONE, .NONE}, 0xAB, 1, {} }, { .LDY, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xAC, 3, {} }, { .LDA, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xAD, 3, {} }, { .LDX, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xAE, 3, {} }, { .LDA, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0xAF, 4, {} }, { .BCS, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0xB0, 2, {cond_branch=true} }, { .LDA, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB1, 2, {page_cross=true} }, { .LDA, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB2, 2, {} }, { .LDA, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB3, 2, {} }, { .LDY, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB4, 2, {} }, { .LDA, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB5, 2, {} }, { .LDX, {.MEM_DP_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB6, 2, {} }, { .LDA, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xB7, 2, {} }, { .CLV, {.NONE, .NONE}, {.NONE, .NONE}, 0xB8, 1, {} }, { .LDA, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0xB9, 3, {page_cross=true} }, { .TSX, {.NONE, .NONE}, {.NONE, .NONE}, 0xBA, 1, {} }, { .TYX, {.NONE, .NONE}, {.NONE, .NONE}, 0xBB, 1, {} }, { .LDY, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xBC, 3, {page_cross=true} }, { .LDA, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xBD, 3, {page_cross=true} }, { .LDX, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0xBE, 3, {page_cross=true} }, { .LDA, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0xBF, 4, {} }, { .CPY, {.IMM_X8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xC0, 2, {} }, { .CPY, {.IMM_X16, .NONE}, {.WORD_1_IMM, .NONE}, 0xC0, 3, {} }, { .CMP, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC1, 2, {} }, { .REP, {.IMM_8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xC2, 2, {} }, { .CMP, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC3, 2, {} }, { .CPY, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC4, 2, {} }, { .CMP, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC5, 2, {} }, { .DEC, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC6, 2, {} }, { .CMP, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xC7, 2, {} }, { .INY, {.NONE, .NONE}, {.NONE, .NONE}, 0xC8, 1, {} }, { .CMP, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xC9, 2, {} }, { .CMP, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0xC9, 3, {} }, { .DEX, {.NONE, .NONE}, {.NONE, .NONE}, 0xCA, 1, {} }, { .WAI, {.NONE, .NONE}, {.NONE, .NONE}, 0xCB, 1, {} }, { .CPY, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xCC, 3, {} }, { .CMP, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xCD, 3, {} }, { .DEC, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xCE, 3, {} }, { .CMP, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0xCF, 4, {} }, { .BNE, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0xD0, 2, {cond_branch=true} }, { .CMP, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD1, 2, {page_cross=true} }, { .CMP, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD2, 2, {} }, { .CMP, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD3, 2, {} }, { .PEI, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD4, 2, {} }, { .CMP, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD5, 2, {} }, { .DEC, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD6, 2, {} }, { .CMP, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xD7, 2, {} }, { .CLD, {.NONE, .NONE}, {.NONE, .NONE}, 0xD8, 1, {} }, { .CMP, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0xD9, 3, {page_cross=true} }, { .PHX, {.NONE, .NONE}, {.NONE, .NONE}, 0xDA, 1, {} }, { .STP, {.NONE, .NONE}, {.NONE, .NONE}, 0xDB, 1, {} }, { .JML, {.MEM_ABS_IND_LONG, .NONE}, {.WORD_1_ADDR, .NONE}, 0xDC, 3, {branch=true} }, { .CMP, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xDD, 3, {page_cross=true} }, { .DEC, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xDE, 3, {} }, { .CMP, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0xDF, 4, {} }, { .CPX, {.IMM_X8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xE0, 2, {} }, { .CPX, {.IMM_X16, .NONE}, {.WORD_1_IMM, .NONE}, 0xE0, 3, {} }, { .SBC, {.MEM_DP_IND_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE1, 2, {} }, { .SEP, {.IMM_8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xE2, 2, {} }, { .SBC, {.MEM_SR, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE3, 2, {} }, { .CPX, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE4, 2, {} }, { .SBC, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE5, 2, {} }, { .INC, {.MEM_DP, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE6, 2, {} }, { .SBC, {.MEM_DP_IND_LONG, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xE7, 2, {} }, { .INX, {.NONE, .NONE}, {.NONE, .NONE}, 0xE8, 1, {} }, { .SBC, {.IMM_M8, .NONE}, {.BYTE_1_IMM, .NONE}, 0xE9, 2, {} }, { .SBC, {.IMM_M16, .NONE}, {.WORD_1_IMM, .NONE}, 0xE9, 3, {} }, { .NOP, {.NONE, .NONE}, {.NONE, .NONE}, 0xEA, 1, {} }, { .XBA, {.NONE, .NONE}, {.NONE, .NONE}, 0xEB, 1, {} }, { .CPX, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xEC, 3, {} }, { .SBC, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xED, 3, {} }, { .INC, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xEE, 3, {} }, { .SBC, {.MEM_LONG, .NONE}, {.LONG_1_ADDR, .NONE}, 0xEF, 4, {} }, { .BEQ, {.REL, .NONE}, {.BYTE_1_REL, .NONE}, 0xF0, 2, {cond_branch=true} }, { .SBC, {.MEM_DP_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF1, 2, {page_cross=true} }, { .SBC, {.MEM_DP_IND, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF2, 2, {} }, { .SBC, {.MEM_SR_IND_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF3, 2, {} }, { .PEA, {.MEM_ABS, .NONE}, {.WORD_1_ADDR, .NONE}, 0xF4, 3, {} }, { .SBC, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF5, 2, {} }, { .INC, {.MEM_DP_X, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF6, 2, {} }, { .SBC, {.MEM_DP_IND_LONG_Y, .NONE}, {.BYTE_1_ADDR, .NONE}, 0xF7, 2, {} }, { .SED, {.NONE, .NONE}, {.NONE, .NONE}, 0xF8, 1, {} }, { .SBC, {.MEM_ABS_Y, .NONE}, {.WORD_1_ADDR, .NONE}, 0xF9, 3, {page_cross=true} }, { .PLX, {.NONE, .NONE}, {.NONE, .NONE}, 0xFA, 1, {} }, { .XCE, {.NONE, .NONE}, {.NONE, .NONE}, 0xFB, 1, {} }, { .JSR, {.MEM_ABS_IND_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xFC, 3, {branch=true} }, { .SBC, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xFD, 3, {page_cross=true} }, { .INC, {.MEM_ABS_X, .NONE}, {.WORD_1_ADDR, .NONE}, 0xFE, 3, {} }, { .SBC, {.MEM_LONG_X, .NONE}, {.LONG_1_ADDR, .NONE}, 0xFF, 4, {} }, } DECODE_INDEX_OPCODE := [256]Decode_Index{ /* 00 */ {0, 1}, /* 01 */ {1, 1}, /* 02 */ {2, 1}, /* 03 */ {3, 1}, /* 04 */ {4, 1}, /* 05 */ {5, 1}, /* 06 */ {6, 1}, /* 07 */ {7, 1}, /* 08 */ {8, 1}, /* 09 */ {9, 2}, /* 0A */ {11, 1}, /* 0B */ {12, 1}, /* 0C */ {13, 1}, /* 0D */ {14, 1}, /* 0E */ {15, 1}, /* 0F */ {16, 1}, /* 10 */ {17, 1}, /* 11 */ {18, 1}, /* 12 */ {19, 1}, /* 13 */ {20, 1}, /* 14 */ {21, 1}, /* 15 */ {22, 1}, /* 16 */ {23, 1}, /* 17 */ {24, 1}, /* 18 */ {25, 1}, /* 19 */ {26, 1}, /* 1A */ {27, 1}, /* 1B */ {28, 1}, /* 1C */ {29, 1}, /* 1D */ {30, 1}, /* 1E */ {31, 1}, /* 1F */ {32, 1}, /* 20 */ {33, 1}, /* 21 */ {34, 1}, /* 22 */ {35, 1}, /* 23 */ {36, 1}, /* 24 */ {37, 1}, /* 25 */ {38, 1}, /* 26 */ {39, 1}, /* 27 */ {40, 1}, /* 28 */ {41, 1}, /* 29 */ {42, 2}, /* 2A */ {44, 1}, /* 2B */ {45, 1}, /* 2C */ {46, 1}, /* 2D */ {47, 1}, /* 2E */ {48, 1}, /* 2F */ {49, 1}, /* 30 */ {50, 1}, /* 31 */ {51, 1}, /* 32 */ {52, 1}, /* 33 */ {53, 1}, /* 34 */ {54, 1}, /* 35 */ {55, 1}, /* 36 */ {56, 1}, /* 37 */ {57, 1}, /* 38 */ {58, 1}, /* 39 */ {59, 1}, /* 3A */ {60, 1}, /* 3B */ {61, 1}, /* 3C */ {62, 1}, /* 3D */ {63, 1}, /* 3E */ {64, 1}, /* 3F */ {65, 1}, /* 40 */ {66, 1}, /* 41 */ {67, 1}, /* 42 */ {68, 1}, /* 43 */ {69, 1}, /* 44 */ {70, 1}, /* 45 */ {71, 1}, /* 46 */ {72, 1}, /* 47 */ {73, 1}, /* 48 */ {74, 1}, /* 49 */ {75, 2}, /* 4A */ {77, 1}, /* 4B */ {78, 1}, /* 4C */ {79, 1}, /* 4D */ {80, 1}, /* 4E */ {81, 1}, /* 4F */ {82, 1}, /* 50 */ {83, 1}, /* 51 */ {84, 1}, /* 52 */ {85, 1}, /* 53 */ {86, 1}, /* 54 */ {87, 1}, /* 55 */ {88, 1}, /* 56 */ {89, 1}, /* 57 */ {90, 1}, /* 58 */ {91, 1}, /* 59 */ {92, 1}, /* 5A */ {93, 1}, /* 5B */ {94, 1}, /* 5C */ {95, 1}, /* 5D */ {96, 1}, /* 5E */ {97, 1}, /* 5F */ {98, 1}, /* 60 */ {99, 1}, /* 61 */ {100, 1}, /* 62 */ {101, 1}, /* 63 */ {102, 1}, /* 64 */ {103, 1}, /* 65 */ {104, 1}, /* 66 */ {105, 1}, /* 67 */ {106, 1}, /* 68 */ {107, 1}, /* 69 */ {108, 2}, /* 6A */ {110, 1}, /* 6B */ {111, 1}, /* 6C */ {112, 1}, /* 6D */ {113, 1}, /* 6E */ {114, 1}, /* 6F */ {115, 1}, /* 70 */ {116, 1}, /* 71 */ {117, 1}, /* 72 */ {118, 1}, /* 73 */ {119, 1}, /* 74 */ {120, 1}, /* 75 */ {121, 1}, /* 76 */ {122, 1}, /* 77 */ {123, 1}, /* 78 */ {124, 1}, /* 79 */ {125, 1}, /* 7A */ {126, 1}, /* 7B */ {127, 1}, /* 7C */ {128, 1}, /* 7D */ {129, 1}, /* 7E */ {130, 1}, /* 7F */ {131, 1}, /* 80 */ {132, 1}, /* 81 */ {133, 1}, /* 82 */ {134, 1}, /* 83 */ {135, 1}, /* 84 */ {136, 1}, /* 85 */ {137, 1}, /* 86 */ {138, 1}, /* 87 */ {139, 1}, /* 88 */ {140, 1}, /* 89 */ {141, 2}, /* 8A */ {143, 1}, /* 8B */ {144, 1}, /* 8C */ {145, 1}, /* 8D */ {146, 1}, /* 8E */ {147, 1}, /* 8F */ {148, 1}, /* 90 */ {149, 1}, /* 91 */ {150, 1}, /* 92 */ {151, 1}, /* 93 */ {152, 1}, /* 94 */ {153, 1}, /* 95 */ {154, 1}, /* 96 */ {155, 1}, /* 97 */ {156, 1}, /* 98 */ {157, 1}, /* 99 */ {158, 1}, /* 9A */ {159, 1}, /* 9B */ {160, 1}, /* 9C */ {161, 1}, /* 9D */ {162, 1}, /* 9E */ {163, 1}, /* 9F */ {164, 1}, /* A0 */ {165, 2}, /* A1 */ {167, 1}, /* A2 */ {168, 2}, /* A3 */ {170, 1}, /* A4 */ {171, 1}, /* A5 */ {172, 1}, /* A6 */ {173, 1}, /* A7 */ {174, 1}, /* A8 */ {175, 1}, /* A9 */ {176, 2}, /* AA */ {178, 1}, /* AB */ {179, 1}, /* AC */ {180, 1}, /* AD */ {181, 1}, /* AE */ {182, 1}, /* AF */ {183, 1}, /* B0 */ {184, 1}, /* B1 */ {185, 1}, /* B2 */ {186, 1}, /* B3 */ {187, 1}, /* B4 */ {188, 1}, /* B5 */ {189, 1}, /* B6 */ {190, 1}, /* B7 */ {191, 1}, /* B8 */ {192, 1}, /* B9 */ {193, 1}, /* BA */ {194, 1}, /* BB */ {195, 1}, /* BC */ {196, 1}, /* BD */ {197, 1}, /* BE */ {198, 1}, /* BF */ {199, 1}, /* C0 */ {200, 2}, /* C1 */ {202, 1}, /* C2 */ {203, 1}, /* C3 */ {204, 1}, /* C4 */ {205, 1}, /* C5 */ {206, 1}, /* C6 */ {207, 1}, /* C7 */ {208, 1}, /* C8 */ {209, 1}, /* C9 */ {210, 2}, /* CA */ {212, 1}, /* CB */ {213, 1}, /* CC */ {214, 1}, /* CD */ {215, 1}, /* CE */ {216, 1}, /* CF */ {217, 1}, /* D0 */ {218, 1}, /* D1 */ {219, 1}, /* D2 */ {220, 1}, /* D3 */ {221, 1}, /* D4 */ {222, 1}, /* D5 */ {223, 1}, /* D6 */ {224, 1}, /* D7 */ {225, 1}, /* D8 */ {226, 1}, /* D9 */ {227, 1}, /* DA */ {228, 1}, /* DB */ {229, 1}, /* DC */ {230, 1}, /* DD */ {231, 1}, /* DE */ {232, 1}, /* DF */ {233, 1}, /* E0 */ {234, 2}, /* E1 */ {236, 1}, /* E2 */ {237, 1}, /* E3 */ {238, 1}, /* E4 */ {239, 1}, /* E5 */ {240, 1}, /* E6 */ {241, 1}, /* E7 */ {242, 1}, /* E8 */ {243, 1}, /* E9 */ {244, 2}, /* EA */ {246, 1}, /* EB */ {247, 1}, /* EC */ {248, 1}, /* ED */ {249, 1}, /* EE */ {250, 1}, /* EF */ {251, 1}, /* F0 */ {252, 1}, /* F1 */ {253, 1}, /* F2 */ {254, 1}, /* F3 */ {255, 1}, /* F4 */ {256, 1}, /* F5 */ {257, 1}, /* F6 */ {258, 1}, /* F7 */ {259, 1}, /* F8 */ {260, 1}, /* F9 */ {261, 1}, /* FA */ {262, 1}, /* FB */ {263, 1}, /* FC */ {264, 1}, /* FD */ {265, 1}, /* FE */ {266, 1}, /* FF */ {267, 1}, }