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{ 0x00 = {0, 1}, 0x01 = {1, 1}, 0x02 = {2, 1}, 0x03 = {3, 1}, 0x04 = {4, 1}, 0x05 = {5, 1}, 0x06 = {6, 1}, 0x07 = {7, 1}, 0x08 = {8, 1}, 0x09 = {9, 2}, 0x0A = {11, 1}, 0x0B = {12, 1}, 0x0C = {13, 1}, 0x0D = {14, 1}, 0x0E = {15, 1}, 0x0F = {16, 1}, 0x10 = {17, 1}, 0x11 = {18, 1}, 0x12 = {19, 1}, 0x13 = {20, 1}, 0x14 = {21, 1}, 0x15 = {22, 1}, 0x16 = {23, 1}, 0x17 = {24, 1}, 0x18 = {25, 1}, 0x19 = {26, 1}, 0x1A = {27, 1}, 0x1B = {28, 1}, 0x1C = {29, 1}, 0x1D = {30, 1}, 0x1E = {31, 1}, 0x1F = {32, 1}, 0x20 = {33, 1}, 0x21 = {34, 1}, 0x22 = {35, 1}, 0x23 = {36, 1}, 0x24 = {37, 1}, 0x25 = {38, 1}, 0x26 = {39, 1}, 0x27 = {40, 1}, 0x28 = {41, 1}, 0x29 = {42, 2}, 0x2A = {44, 1}, 0x2B = {45, 1}, 0x2C = {46, 1}, 0x2D = {47, 1}, 0x2E = {48, 1}, 0x2F = {49, 1}, 0x30 = {50, 1}, 0x31 = {51, 1}, 0x32 = {52, 1}, 0x33 = {53, 1}, 0x34 = {54, 1}, 0x35 = {55, 1}, 0x36 = {56, 1}, 0x37 = {57, 1}, 0x38 = {58, 1}, 0x39 = {59, 1}, 0x3A = {60, 1}, 0x3B = {61, 1}, 0x3C = {62, 1}, 0x3D = {63, 1}, 0x3E = {64, 1}, 0x3F = {65, 1}, 0x40 = {66, 1}, 0x41 = {67, 1}, 0x42 = {68, 1}, 0x43 = {69, 1}, 0x44 = {70, 1}, 0x45 = {71, 1}, 0x46 = {72, 1}, 0x47 = {73, 1}, 0x48 = {74, 1}, 0x49 = {75, 2}, 0x4A = {77, 1}, 0x4B = {78, 1}, 0x4C = {79, 1}, 0x4D = {80, 1}, 0x4E = {81, 1}, 0x4F = {82, 1}, 0x50 = {83, 1}, 0x51 = {84, 1}, 0x52 = {85, 1}, 0x53 = {86, 1}, 0x54 = {87, 1}, 0x55 = {88, 1}, 0x56 = {89, 1}, 0x57 = {90, 1}, 0x58 = {91, 1}, 0x59 = {92, 1}, 0x5A = {93, 1}, 0x5B = {94, 1}, 0x5C = {95, 1}, 0x5D = {96, 1}, 0x5E = {97, 1}, 0x5F = {98, 1}, 0x60 = {99, 1}, 0x61 = {100, 1}, 0x62 = {101, 1}, 0x63 = {102, 1}, 0x64 = {103, 1}, 0x65 = {104, 1}, 0x66 = {105, 1}, 0x67 = {106, 1}, 0x68 = {107, 1}, 0x69 = {108, 2}, 0x6A = {110, 1}, 0x6B = {111, 1}, 0x6C = {112, 1}, 0x6D = {113, 1}, 0x6E = {114, 1}, 0x6F = {115, 1}, 0x70 = {116, 1}, 0x71 = {117, 1}, 0x72 = {118, 1}, 0x73 = {119, 1}, 0x74 = {120, 1}, 0x75 = {121, 1}, 0x76 = {122, 1}, 0x77 = {123, 1}, 0x78 = {124, 1}, 0x79 = {125, 1}, 0x7A = {126, 1}, 0x7B = {127, 1}, 0x7C = {128, 1}, 0x7D = {129, 1}, 0x7E = {130, 1}, 0x7F = {131, 1}, 0x80 = {132, 1}, 0x81 = {133, 1}, 0x82 = {134, 1}, 0x83 = {135, 1}, 0x84 = {136, 1}, 0x85 = {137, 1}, 0x86 = {138, 1}, 0x87 = {139, 1}, 0x88 = {140, 1}, 0x89 = {141, 2}, 0x8A = {143, 1}, 0x8B = {144, 1}, 0x8C = {145, 1}, 0x8D = {146, 1}, 0x8E = {147, 1}, 0x8F = {148, 1}, 0x90 = {149, 1}, 0x91 = {150, 1}, 0x92 = {151, 1}, 0x93 = {152, 1}, 0x94 = {153, 1}, 0x95 = {154, 1}, 0x96 = {155, 1}, 0x97 = {156, 1}, 0x98 = {157, 1}, 0x99 = {158, 1}, 0x9A = {159, 1}, 0x9B = {160, 1}, 0x9C = {161, 1}, 0x9D = {162, 1}, 0x9E = {163, 1}, 0x9F = {164, 1}, 0xA0 = {165, 2}, 0xA1 = {167, 1}, 0xA2 = {168, 2}, 0xA3 = {170, 1}, 0xA4 = {171, 1}, 0xA5 = {172, 1}, 0xA6 = {173, 1}, 0xA7 = {174, 1}, 0xA8 = {175, 1}, 0xA9 = {176, 2}, 0xAA = {178, 1}, 0xAB = {179, 1}, 0xAC = {180, 1}, 0xAD = {181, 1}, 0xAE = {182, 1}, 0xAF = {183, 1}, 0xB0 = {184, 1}, 0xB1 = {185, 1}, 0xB2 = {186, 1}, 0xB3 = {187, 1}, 0xB4 = {188, 1}, 0xB5 = {189, 1}, 0xB6 = {190, 1}, 0xB7 = {191, 1}, 0xB8 = {192, 1}, 0xB9 = {193, 1}, 0xBA = {194, 1}, 0xBB = {195, 1}, 0xBC = {196, 1}, 0xBD = {197, 1}, 0xBE = {198, 1}, 0xBF = {199, 1}, 0xC0 = {200, 2}, 0xC1 = {202, 1}, 0xC2 = {203, 1}, 0xC3 = {204, 1}, 0xC4 = {205, 1}, 0xC5 = {206, 1}, 0xC6 = {207, 1}, 0xC7 = {208, 1}, 0xC8 = {209, 1}, 0xC9 = {210, 2}, 0xCA = {212, 1}, 0xCB = {213, 1}, 0xCC = {214, 1}, 0xCD = {215, 1}, 0xCE = {216, 1}, 0xCF = {217, 1}, 0xD0 = {218, 1}, 0xD1 = {219, 1}, 0xD2 = {220, 1}, 0xD3 = {221, 1}, 0xD4 = {222, 1}, 0xD5 = {223, 1}, 0xD6 = {224, 1}, 0xD7 = {225, 1}, 0xD8 = {226, 1}, 0xD9 = {227, 1}, 0xDA = {228, 1}, 0xDB = {229, 1}, 0xDC = {230, 1}, 0xDD = {231, 1}, 0xDE = {232, 1}, 0xDF = {233, 1}, 0xE0 = {234, 2}, 0xE1 = {236, 1}, 0xE2 = {237, 1}, 0xE3 = {238, 1}, 0xE4 = {239, 1}, 0xE5 = {240, 1}, 0xE6 = {241, 1}, 0xE7 = {242, 1}, 0xE8 = {243, 1}, 0xE9 = {244, 2}, 0xEA = {246, 1}, 0xEB = {247, 1}, 0xEC = {248, 1}, 0xED = {249, 1}, 0xEE = {250, 1}, 0xEF = {251, 1}, 0xF0 = {252, 1}, 0xF1 = {253, 1}, 0xF2 = {254, 1}, 0xF3 = {255, 1}, 0xF4 = {256, 1}, 0xF5 = {257, 1}, 0xF6 = {258, 1}, 0xF7 = {259, 1}, 0xF8 = {260, 1}, 0xF9 = {261, 1}, 0xFA = {262, 1}, 0xFB = {263, 1}, 0xFC = {264, 1}, 0xFD = {265, 1}, 0xFE = {266, 1}, 0xFF = {267, 1}, }