diff options
Diffstat (limited to 'src/devices/cpu/z80/r800.h')
-rw-r--r-- | src/devices/cpu/z80/r800.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/devices/cpu/z80/r800.h b/src/devices/cpu/z80/r800.h new file mode 100644 index 00000000000..967ed29417d --- /dev/null +++ b/src/devices/cpu/z80/r800.h @@ -0,0 +1,49 @@ +// license:BSD-3-Clause +// copyright-holders:AJR,Wilbert Pol +/*************************************************************************** + + ASCII R800 CPU + +***************************************************************************/ + +#ifndef MAME_CPU_Z80_R800_H +#define MAME_CPU_Z80_R800_H + +#pragma once + +#include "z80.h" + + +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** + +class r800_device : public z80_device +{ +public: + // device type constructor + r800_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + + static constexpr feature_type imperfect_features() { return feature::TIMING; } + +protected: + // device_t implementation + virtual void device_validity_check(validity_checker &valid) const override; + + // device_execute_interface overrides + virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 4 - 1) / 4; } + virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 4); } + virtual void execute_run() override; + + // device_disasm_interface implementation + virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; + + u8 r800_sll(u8 value); + void mulub(u8 value); + void muluw(u16 value); +}; + +// device type declaration +DECLARE_DEVICE_TYPE(R800, r800_device) + +#endif // MAME_CPU_Z80_R800_H |