1 // license:BSD-3-Clause 2 // copyright-holders:Patrick Mackinlay 3 4 #ifndef MAME_CPU_DSP56000_DSP56000_H 5 #define MAME_CPU_DSP56000_DSP56000_H 6 7 #pragma once 8 9 class dsp56000_device_base : public cpu_device 10 { 11 protected: 12 dsp56000_device_base(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, u32 clock); 13 14 // device_t overrides 15 virtual void device_start() override; 16 virtual void device_reset() override; 17 18 // device_execute_interface overrides execute_clocks_to_cycles(u64 clocks)19 virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 2 - 1) / 2; } execute_cycles_to_clocks(u64 cycles)20 virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 2); } execute_min_cycles()21 virtual u32 execute_min_cycles() const noexcept override { return 1; } execute_max_cycles()22 virtual u32 execute_max_cycles() const noexcept override { return 16; } execute_input_lines()23 virtual u32 execute_input_lines() const noexcept override { return 2; } 24 virtual void execute_run() override; 25 virtual void execute_set_input(int inputnum, int state) override; 26 27 // device_memory_interface overrides 28 virtual space_config_vector memory_space_config() const override; 29 30 // device_disasm_interface overrides 31 virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; 32 33 // emulation state 34 address_space_config m_p_config; 35 address_space_config m_x_config; 36 address_space_config m_y_config; 37 38 int m_icount; 39 40 // program-visible cpu state 41 u16 m_pc; 42 }; 43 44 class dsp56000_device : public dsp56000_device_base 45 { 46 public: 47 dsp56000_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); 48 }; 49 50 class dsp56001_device : public dsp56000_device_base 51 { 52 public: 53 dsp56001_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); 54 }; 55 56 DECLARE_DEVICE_TYPE(DSP56000, dsp56000_device) 57 DECLARE_DEVICE_TYPE(DSP56001, dsp56001_device) 58 59 #endif // MAME_CPU_DSP56000_DSP56000_H 60