summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tms1000/tms1k_dasm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tms1000/tms1k_dasm.h')
-rw-r--r--src/devices/cpu/tms1000/tms1k_dasm.h71
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 &params) 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