1 // license:BSD-3-Clause 2 // copyright-holders:Wilbert Pol 3 /***************************************************************************** 4 * 5 * lr35902d.c 6 * Portable Sharp LR35902 disassembler 7 * 8 *****************************************************************************/ 9 10 #ifndef MAME_CPU_LR35902_LR35902DASM_H 11 #define MAME_CPU_LR35902_LR35902DASM_H 12 13 #pragma once 14 15 class lr35902_disassembler : public util::disasm_interface 16 { 17 public: 18 lr35902_disassembler() = default; 19 virtual ~lr35902_disassembler() = default; 20 21 virtual u32 opcode_alignment() const override; 22 virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms) override; 23 24 private: 25 enum e_mnemonics 26 { 27 zADC, zADD, zAND, zBIT, zCALL, zCCF, zCP, 28 zCPL, zDAA, zDB, zDEC, zDI, zEI, zHLT, 29 zIN, zINC, zJP, zJR, zLD, zNOP, zOR, 30 zPOP, zPUSH, zRES, zRET, zRETI, zRL, zRLA, 31 zRLC, zRLCA, zRR, zRRA, zRRC, zRRCA, zRST, 32 zSBC, zSCF, zSET, zSLA, zSLL, zSRA, zSRL, 33 zSTOP, zSUB, zXOR, zSWAP 34 }; 35 36 struct lr35902dasm 37 { 38 uint8_t mnemonic; 39 const char *arguments; 40 }; 41 42 static const char *const s_mnemonic[]; 43 static const uint32_t s_flags[]; 44 static const lr35902dasm mnemonic_cb[256]; 45 static const lr35902dasm mnemonic_main[256]; 46 }; 47 48 #endif 49