diff options
Diffstat (limited to 'src/devices/cpu/dspp/dspp.h')
-rw-r--r-- | src/devices/cpu/dspp/dspp.h | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/src/devices/cpu/dspp/dspp.h b/src/devices/cpu/dspp/dspp.h index 302d141db13..13dc682b01f 100644 --- a/src/devices/cpu/dspp/dspp.h +++ b/src/devices/cpu/dspp/dspp.h @@ -8,10 +8,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_CPU_DSPP_DSPP_H +#define MAME_CPU_DSPP_DSPP_H -#ifndef DEVICES_CPU_DSPP_DSPP_H -#define DEVICES_CPU_DSPP_DSPP_H +#pragma once #include "cpu/drcfe.h" #include "cpu/drcuml.h" @@ -41,30 +41,30 @@ public: auto dma_write_handler() { return m_dma_write_handler.bind(); } // Public interfaces - DECLARE_READ32_MEMBER( read ); - DECLARE_WRITE32_MEMBER( write ); + uint32_t read(offs_t offset); + void write(offs_t offset, uint32_t data); uint16_t read_output_fifo(); void dump_state(); // TODO: DEBUG REMOVE ME // Internal registers - DECLARE_READ16_MEMBER( input_r ); - DECLARE_WRITE16_MEMBER( output_w ); - DECLARE_READ16_MEMBER( fifo_osc_r ); - DECLARE_WRITE16_MEMBER( fifo_osc_w ); - DECLARE_WRITE16_MEMBER( input_control_w ); - DECLARE_WRITE16_MEMBER( output_control_w ); - DECLARE_READ16_MEMBER( input_status_r ); - DECLARE_READ16_MEMBER( output_status_r ); - DECLARE_WRITE16_MEMBER( cpu_int_w ); - DECLARE_READ16_MEMBER( pc_r ); - DECLARE_WRITE16_MEMBER( pc_w ); - DECLARE_READ16_MEMBER( audlock_r ); - DECLARE_WRITE16_MEMBER( audlock_w ); - DECLARE_READ16_MEMBER( clock_r ); - DECLARE_WRITE16_MEMBER( clock_w ); - DECLARE_READ16_MEMBER( noise_r ); + uint16_t input_r(); + void output_w(offs_t offset, uint16_t data); + uint16_t fifo_osc_r(offs_t offset); + void fifo_osc_w(offs_t offset, uint16_t data); + void input_control_w(uint16_t data); + void output_control_w(uint16_t data); + uint16_t input_status_r(); + uint16_t output_status_r(); + void cpu_int_w(uint16_t data); + uint16_t pc_r(); + void pc_w(uint16_t data); + uint16_t audlock_r(); + void audlock_w(uint16_t data); + uint16_t clock_r(); + void clock_w(uint16_t data); + uint16_t noise_r(); void update_fifo_dma(); void print_sums() { printf("%04x: %04x\n", (uint16_t)m_core->m_arg0, (uint16_t)m_core->m_arg1); } @@ -74,12 +74,12 @@ public: protected: // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; // device_execute_interface overrides - virtual uint32_t execute_min_cycles() const override; - virtual uint32_t execute_max_cycles() const override; + virtual uint32_t execute_min_cycles() const noexcept override; + virtual uint32_t execute_max_cycles() const noexcept override; virtual void execute_run() override; // device_memory_interface overrides @@ -93,8 +93,8 @@ protected: // device_disasm_interface overrides virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; - void code_map(address_map &map); - void data_map(address_map &map); + void code_map(address_map &map) ATTR_COLD; + void data_map(address_map &map) ATTR_COLD; enum { @@ -199,11 +199,9 @@ private: // Address spaces const address_space_config m_code_config; const address_space_config m_data_config; - address_space * m_code; - address_space * m_data; - memory_access_cache<1, -1, ENDIANNESS_BIG> *m_code_cache; - std::function<uint16_t (offs_t)> m_code16; - std::function<const void * (offs_t)> m_codeptr; + memory_access<10, 1, -1, ENDIANNESS_BIG>::cache m_code_cache; + memory_access<10, 1, -1, ENDIANNESS_BIG>::specific m_code; + memory_access<10, 1, -1, ENDIANNESS_BIG>::specific m_data; struct dspp_internal_state { @@ -392,4 +390,4 @@ public: // TODO DECLARE_DEVICE_TYPE(DSPP, dspp_device); -#endif // DEVICES_CPU_DSPP_DSPP_H +#endif // MAME_CPU_DSPP_DSPP_H |