summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/dspp/dspp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/dspp/dspp.h')
-rw-r--r--src/devices/cpu/dspp/dspp.h64
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