diff options
Diffstat (limited to 'src/devices/cpu/lr35902/lr35902d.h')
-rw-r--r-- | src/devices/cpu/lr35902/lr35902d.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/devices/cpu/lr35902/lr35902d.h b/src/devices/cpu/lr35902/lr35902d.h new file mode 100644 index 00000000000..550a8bdaef8 --- /dev/null +++ b/src/devices/cpu/lr35902/lr35902d.h @@ -0,0 +1,48 @@ +// license:BSD-3-Clause +// copyright-holders:Wilbert Pol +/***************************************************************************** + * + * lr35902d.c + * Portable Sharp LR35902 disassembler + * + *****************************************************************************/ + +#ifndef MAME_CPU_LR35902_LR35902DASM_H +#define MAME_CPU_LR35902_LR35902DASM_H + +#pragma once + +class lr35902_disassembler : public util::disasm_interface +{ +public: + lr35902_disassembler() = default; + virtual ~lr35902_disassembler() = default; + + virtual u32 opcode_alignment() const override; + virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; + +private: + enum e_mnemonics + { + zADC, zADD, zAND, zBIT, zCALL, zCCF, zCP, + zCPL, zDAA, zDB, zDEC, zDI, zEI, zHLT, + zIN, zINC, zJP, zJR, zLD, zNOP, zOR, + zPOP, zPUSH, zRES, zRET, zRETI, zRL, zRLA, + zRLC, zRLCA, zRR, zRRA, zRRC, zRRCA, zRST, + zSBC, zSCF, zSET, zSLA, zSLL, zSRA, zSRL, + zSTOP, zSUB, zXOR, zSWAP + }; + + struct lr35902dasm + { + uint8_t mnemonic; + const char *arguments; + }; + + static const char *const s_mnemonic[]; + static const uint32_t s_flags[]; + static const lr35902dasm mnemonic_cb[256]; + static const lr35902dasm mnemonic_main[256]; +}; + +#endif |