From 5dd788d5a1acc7f23835882420d50e9f020728ac Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Mon, 18 May 2020 13:14:08 -0400 Subject: Did alot of stuff while I was up at the family trailer. - Moved the large enums, and large tables into separate header files. - Added enums for implementing the base extension - Fixed a bug in the assembler. - Worked more on SuBAsm. --- tables.h | 189 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 tables.h (limited to 'tables.h') diff --git a/tables.h b/tables.h new file mode 100644 index 0000000..6a95887 --- /dev/null +++ b/tables.h @@ -0,0 +1,189 @@ +#include "enums.h" + +static const uint8_t optype[0x100] = { + [CPS ] = IMPL, + [ADC ] = IMM, + [AAB ] = IMPL, + [ADC_AB ] = ABS, + [LDA_IN ] = IND, + [ADC_Z ] = ZM, + [PHP ] = IMM, + [CPB ] = IMM, + [PHB ] = IMM, + [DEC_AB ] = ABS, + [DEC_Z ] = ZM, + [JMP_Z ] = ZM, + [JMP ] = ABS, + [SBC ] = IMM, + [SAB ] = IMPL, + [SBC_AB ] = ABS, + [STA_IN ] = IND, + [SBC_Z ] = ZM, + [ENT ] = IMM, + [CPY ] = IMM, + [PLB ] = IMM, + [INC_AB ] = ABS, + [INC_Z ] = ZM, + [JSR ] = ZM, + [JSL ] = ABS, + [AND ] = IMM, + [ABA ] = IMPL, + [AND_AB ] = ABS, + [CMP_IN ] = IND, + [AND_Z ] = ZM, + [PLP ] = IMM, + [CPX ] = IMM, + [PHY ] = IMM, + [CPB_AB ] = ABS, + [CPB_Z ] = ZM, + [BPO_Z ] = ZM, + [BPO ] = ABS, + [ORA ] = IMM, + [OAB ] = IMPL, + [ORA_AB ] = ABS, + [LDB_IN ] = IND, + [ORA_Z ] = ZM, + [STT ] = IMM, + [LDA_ZY ] = ZMY, + [PLY ] = IMM, + [CPX_AB ] = ABS, + [CPY_Z ] = ZM, + [BNG_Z ] = ZM, + [BNG ] = ABS, + [XOR ] = IMM, + [XAB ] = IMPL, + [XOR_AB ] = ABS, + [STB_IN ] = IND, + [XOR_Z ] = ZM, + [PHA ] = IMM, + [STA_ZY ] = ZMY, + [PHX ] = IMM, + [CPY_AB ] = ABS, + [CPX_Z ] = ZM, + [BCS_Z ] = ZM, + [BCS ] = ABS, + [LSL ] = IMM, + [LLB ] = IMPL, + [LSL_AB ] = ABS, + [CPB_IN ] = IND, + [LSL_Z ] = ZM, + [CLC ] = IMPL, + [LDB_ZY ] = ZMY, + [PLX ] = IMM, + [LDA_IY ] = INDY, + [LDA_IX ] = INDX, + [BCC_Z ] = ZM, + [BCC ] = ABS, + [LSR ] = IMM, + [LRB ] = IMPL, + [LSR_AB ] = ABS, + [LDY_IN ] = IND, + [LSR_Z ] = ZM, + [PLA ] = IMM, + [STB_ZY ] = ZMY, + [TAB ] = IMPL, + [STA_IY ] = INDY, + [STA_IX ] = INDX, + [BEQ_Z ] = ZM, + [BEQ ] = ABS, + [ROL ] = IMM, + [RLB ] = IMPL, + [ROL_AB ] = ABS, + [STY_IN ] = IND, + [ROL_Z ] = ZM, + [SEC ] = IMPL, + [LDA_ZX ] = ZMX, + [TBA ] = IMPL, + [CMP_IY ] = INDY, + [CMP_IX ] = INDX, + [BNE_Z ] = ZM, + [BNE ] = ABS, + [ROR ] = IMM, + [RRB ] = IMPL, + [ROR_AB ] = ABS, + [CPY_IN ] = IND, + [ROR_Z ] = ZM, + [DEY ] = IMPL, + [STA_ZX ] = ZMX, + [TAY ] = IMPL, + [LDB_IY ] = INDY, + [LDB_IX ] = INDX, + [BVS_Z ] = ZM, + [BVS ] = ABS, + [MUL ] = IMM, + [MAB ] = IMPL, + [MUL_AB ] = ABS, + [LDX_IN ] = IND, + [MUL_Z ] = ZM, + [CLI ] = IMPL, + [LDB_ZX ] = ZMX, + [TYA ] = IMPL, + [STB_IY ] = INDY, + [STB_IX ] = INDX, + [BVC_Z ] = ZM, + [BVC ] = ABS, + [DIV ] = IMM, + [DAB ] = IMPL, + [DIV_AB ] = ABS, + [STX_IN ] = IND, + [DIV_Z ] = ZM, + [INY ] = IMPL, + [STB_ZX ] = ZMX, + [TAX ] = IMPL, + [CPB_IY ] = INDY, + [CPB_IX ] = INDX, + [RTS ] = IMPL, + [RTL ] = IMPL, + [CMP ] = IMM, + [CAB ] = IMPL, + [CMP_AB ] = ABS, + [CPX_IN ] = IND, + [CMP_Z ] = ZM, + [SEI ] = IMPL, + [LDX ] = IMM, + [TXA ] = IMPL, + [LDX_AB ] = ABS, + [LDX_Z ] = ZM, + [JSR_IN ] = IND, + [RTI ] = IMPL, + [LDA ] = IMM, + [LDA_AB ] = ABS, + [DEX ] = IMPL, + [LDA_Z ] = ZM, + [CLV ] = IMPL, + [LDX_ZY ] = ZMY, + [TYX ] = IMPL, + [STA ] = ABS, + [STA_Z ] = ZM, + [JMP_IN ] = IND, + [TSX ] = IMPL, + [LDB ] = IMM, + [LDB_AB ] = ABS, + [INX ] = IMPL, + [LDB_Z ] = ZM, + [WAI ] = IMPL, + [STX_ZY ] = ZMY, + [TXY ] = IMPL, + [STB ] = ABS, + [STB_Z ] = ZM, + [TXS ] = IMM, + [LDY ] = IMM, + [LDY_AB ] = ABS, + [DEC ] = IMPL, + [LDY_Z ] = ZM, + [BRK ] = IMPL, + [LDY_ZX ] = ZMX, + [NOP ] = IMPL, + [STY ] = ABS, + [STY_Z ] = ZM, + [DEB ] = IMPL, + [ASR ] = IMM, + [ARB ] = IMPL, + [ASR_AB ] = ABS, + [INC ] = IMPL, + [ASR_Z ] = ZM, + [STY_ZX ] = ZMX, + [STX ] = ABS, + [STX_Z ] = ZM, + [INB ] = IMPL +}; -- cgit v1.2.3-13-gbd6f