#include "enums.h"
static const uint8_t optype[0x100] = {
[CPS_IMP ] = IMPL,
[ADC_IMM ] = IMM,
[ROR_IMM ] = IMM,
[CPB_IMM ] = IMM,
[ADC_Z ] = ZM,
[ROR_Z ] = ZM,
[CPB_Z ] = ZM,
[CLC_IMP ] = IMPL,
[TAB_IMP ] = IMPL,
[STY_Z ] = ZM,
[JMP_AB ] = ABS,
[ADC_AB ] = ABS,
[ROR_AB ] = ABS,
[CPB_AB ] = ABS,
[ADC_B ] = BREG,
[ROR_B ] = BREG,
[STY_AB ] = ABS,
[SEC_IMP ] = IMPL,
[TBA_IMP ] = IMPL,
[JMP_Z ] = ZM,
[SBC_IMM ] = IMM,
[MUL_IMM ] = IMM,
[CPX_IMM ] = IMM,
[SBC_Z ] = ZM,
[MUL_Z ] = ZM,
[CPX_Z ] = ZM,
[CLI_IMP ] = IMPL,
[TAY_IMP ] = IMPL,
[STA_Z ] = ZM,
[STA_ZX ] = ZMX,
[JSR_AB ] = ABS,
[SBC_AB ] = ABS,
[MUL_AB ] = ABS,
[CPX_AB ] = ABS,
[SBC_B ] = BREG,
[MUL_B ] = BREG,
[STA_AB ] = ABS,
[SEI_IMP ] = IMPL,
[TYA_IMP ] = IMPL,
[STA_ZY ] = ZMY,
[STA_IX ] = INDX,
[JSR_Z ] = ZM,
[AND_IMM ] = IMM,
[DIV_IMM ] = IMM,
[CPY_IMM ] = IMM,
[AND_Z ] = ZM,
[DIV_Z ] = ZM,
[CPY_Z ] = ZM,
[CLV_IMP ] = IMPL,
[TAX_IMP ] = IMPL,
[STB_Z ] = ZM,
[STB_ZX ] = ZMX,
[RTS_IMP ] = IMPL,
[AND_AB ] = ABS,
[DIV_AB ] = ABS,
[CPY_AB ] = ABS,
[AND_B ] = BREG,
[DIV_B ] = BREG,
[STB_AB ] = ABS,
[WAI_IMP ] = IMPL,
[TXA_IMP ] = IMPL,
[STB_ZY ] = ZMY,
[STB_IX ] = INDX,
[RTI_IMP ] = IMPL,
[ORA_IMM ] = IMM,
[ASR_IMM ] = IMM,
[LDX_IMM ] = IMM,
[ORA_Z ] = ZM,
[ASR_Z ] = ZM,
[LDX_Z ] = ZM,
[BRK_IMP ] = IMPL,
[TYX_IMP ] = IMPL,
[STX_Z ] = ZM,
[PHP_IMP ] = IMPL,
[BPO_REL ] = REL,
[ORA_AB ] = ABS,
[ASR_AB ] = ABS,
[LDX_AB ] = ABS,
[ORA_B ] = BREG,
[ASR_B ] = BREG,
[STX_AB ] = ABS,
[DEY_IMP ] = IMPL,
[TXY_IMP ] = IMPL,
[CPB_IN ] = IND,
[PLP_IMP ] = IMPL,
[BNG_REL ] = REL,
[XOR_IMM ] = IMM,
[CMP_IMM ] = IMM,
[DEC_IMP ] = IMPL,
[XOR_Z ] = ZM,
[CMP_Z ] = ZM,
[DEC_Z ] = ZM,
[INY_IMP ] = IMPL,
[TSX_IMP ] = IMPL,
[CMP_IN ] = IND,
[PHA_IMP ] = IMPL,
[BCS_REL ] = REL,
[XOR_AB ] = ABS,
[CMP_AB ] = ABS,
[DEC_AB ] = ABS,
[XOR_B ] = BREG,
[CMP_B ] = BREG,
[DEB_IMP ] = IMPL,
[TXS_IMM ] = IMM,
[STY_IN ] = IND,
[PLA_IMP ] = IMPL,
[BCC_REL ] = REL,
[LSL_IMM ] = IMM,
[LDY_IMM ] = IMM,
[INC_IMP ] = IMPL,
[LSL_Z ] = ZM,
[LDY_Z ] = ZM,
[INC_Z ] = ZM,
[INB_IMP ] = IMPL,
[CMP_IX ] = INDX,
[LDY_IN ] = IND,
[PHB_IMP ] = IMPL,
[BEQ_REL ] = REL,
[LSL_AB ] = ABS,
[LDY_AB ] = ABS,
[INC_AB ] = ABS,
[LSL_B ] = BREG,
[DEX_IMP ] = IMPL,
[CPB_IX ] = INDX,
[LDX_IN ] = IND,
[PLB_IMP ] = IMPL,
[BNE_REL ] = REL,
[LSR_IMM ] = IMM,
[LDA_IMM ] = IMM,
[LDA_IN ] = IND,
[LSR_Z ] = ZM,
[LDA_Z ] = ZM,
[LDA_ZX ] = ZMX,
[INX_IMP ] = IMPL,
[STA_IY ] = INDY,
[STX_IN ] = IND,
[PHY_IMP ] = IMPL,
[BVS_REL ] = REL,
[LSR_AB ] = ABS,
[LDA_AB ] = ABS,
[STA_IN ] = IND,
[LSR_B ] = BREG,
[LDA_ZY ] = ZMY,
[LDA_IX ] = INDX,
[LDA_IY ] = INDY,
[STB_IY ] = INDY,
[JSR_IN ] = IND,
[PLY_IMP ] = IMPL,
[BVC_REL ] = REL,
[ROL_IMM ] = IMM,
[LDB_IMM ] = IMM,
[LDB_IN ] = IND,
[ROL_Z ] = ZM,
[LDB_Z ] = ZM,
[LDB_ZX ] = ZMX,
[LDB_IY ] = INDY,
[NOP_IMP ] = IMPL,
[JMP_IN ] = IND,
[PHX_IMP ] = IMPL,
[BRA_REL ] = REL,
[ROL_AB ] = ABS,
[LDB_AB ] = ABS,
[STB_IN ] = IND,
[ROL_B ] = BREG,
[LDB_ZY ] = ZMY,
[LDB_IX ] = INDX,
[CMP_IY ] = INDY,
[CPB_IY ] = INDY,
[PLX_IMP ] = IMPL
};