diff options
Diffstat (limited to 'src/devices/cpu/tms1000/tms1k_dasm.h')
-rw-r--r-- | src/devices/cpu/tms1000/tms1k_dasm.h | 71 |
1 files changed, 49 insertions, 22 deletions
diff --git a/src/devices/cpu/tms1000/tms1k_dasm.h b/src/devices/cpu/tms1000/tms1k_dasm.h index 18aad27fe1a..da2ab18b488 100644 --- a/src/devices/cpu/tms1000/tms1k_dasm.h +++ b/src/devices/cpu/tms1000/tms1k_dasm.h @@ -25,26 +25,10 @@ public: virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; protected: - enum e_mnemonics - { - zILL = 0, - zA10AAC, zA6AAC, zA8AAC, zAC1AC, zACACC, zACNAA, zALEC, zALEM, zAMAAC, zBRANCH, zCALL, zCCLA, - zCLA, zCLO, zCOMC, zCOMX, zCOMX8, zCPAIZ, zCTMDYN, zDAN, zDMAN, zDMEA, zDNAA, - zDYN, zIA, zIMAC, zIYC, zKNEZ, zLDP, zLDX2, zLDX3, zLDX4, zMNEA, zMNEZ, - zNDMEA, zOFF, zRBIT, zREAC, zRETN, zRSTR, zSAL, zSAMAN, zSBIT, - zSBL, zSEAC, zSETR, zTAM, zTAMACS, zTAMDYN, zTAMIY, zTAMIYC, zTAMZA, - zTAY, zTBIT, zTCMIY, zTCY, zTDO, zTKA, zTKM, zTMA, - zTMY, zTYA, zXDA, zXMA, zYMCY, zYNEA, zYNEC - }; - - enum e_addressing - { - zB0 = 0, zI2, zI3, zI4, zB7 - }; - + enum e_mnemonics : unsigned; static const char *const s_mnemonic[]; static const u32 s_flags[]; - static const u8 s_addressing[]; + static const u8 s_bits[]; static const u8 i2_value[4]; static const u8 i3_value[8]; static const u8 i4_value[16]; @@ -63,7 +47,7 @@ public: tms1000_disassembler(); virtual ~tms1000_disassembler() = default; -protected: +private: static const u8 tms1000_mnemonic[256]; }; @@ -77,16 +61,59 @@ public: virtual u32 page2_address_bits() const override { return 4; } protected: + tms1100_disassembler(const u8 *lut_mnemonic, bool opcode_9bits, int pc_bits); + +private: static const u8 tms1100_mnemonic[256]; }; +class tms1400_disassembler : public tms1100_disassembler +{ +public: + tms1400_disassembler(); + virtual ~tms1400_disassembler() = default; + +private: + static const u8 tms1400_mnemonic[256]; +}; + +class tms2100_disassembler : public tms1100_disassembler +{ +public: + tms2100_disassembler(); + virtual ~tms2100_disassembler() = default; + +private: + static const u8 tms2100_mnemonic[256]; +}; + +class tms2400_disassembler : public tms1100_disassembler +{ +public: + tms2400_disassembler(); + virtual ~tms2400_disassembler() = default; + +private: + static const u8 tms2400_mnemonic[256]; +}; + +class smc1102_disassembler : public tms1100_disassembler +{ +public: + smc1102_disassembler(); + virtual ~smc1102_disassembler() = default; + +private: + static const u8 smc1102_mnemonic[256]; +}; + class tms0980_disassembler : public tms1000_base_disassembler { public: tms0980_disassembler(); virtual ~tms0980_disassembler() = default; -protected: +private: static const u8 tms0980_mnemonic[512]; }; @@ -96,8 +123,8 @@ public: tp0320_disassembler(); virtual ~tp0320_disassembler() = default; -protected: +private: static const u8 tp0320_mnemonic[512]; }; -#endif +#endif // MAME_CPU_TMS1000_TMS1K_DASM_H |