summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/dsp16/dsp16.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/dsp16/dsp16.h')
-rw-r--r--src/devices/cpu/dsp16/dsp16.h48
1 files changed, 23 insertions, 25 deletions
diff --git a/src/devices/cpu/dsp16/dsp16.h b/src/devices/cpu/dsp16/dsp16.h
index 1f08a6ed6a0..f513e3fdceb 100644
--- a/src/devices/cpu/dsp16/dsp16.h
+++ b/src/devices/cpu/dsp16/dsp16.h
@@ -20,7 +20,7 @@
class dsp16_device_base : public cpu_device, protected dsp16_disassembler::cpu
{
public:
- DECLARE_WRITE_LINE_MEMBER(exm_w);
+ void exm_w(int state);
// interrupt output callbacks
auto iack_cb() { return m_iack_cb.bind(); }
@@ -44,24 +44,24 @@ public:
auto pods_cb() { return m_pods_cb.bind(); }
// interrupt outputs
- DECLARE_READ_LINE_MEMBER(iack_r) { return m_iack_out; }
+ int iack_r() { return m_iack_out; }
// serial outputs
- DECLARE_READ_LINE_MEMBER(ick_r) { return sio_ick_active() ? m_sio_clk : 1; }
- DECLARE_READ_LINE_MEMBER(ild_r) { return sio_ild_active() ? m_sio_ld : 1; }
- DECLARE_READ_LINE_MEMBER(do_r) { return m_do_out; }
- DECLARE_READ_LINE_MEMBER(ock_r) { return sio_ock_active() ? m_sio_clk : 1; }
- DECLARE_READ_LINE_MEMBER(old_r) { return sio_old_active() ? m_sio_ld : 1; }
- DECLARE_READ_LINE_MEMBER(ose_r) { return m_ose_out; }
+ int ick_r() { return sio_ick_active() ? m_sio_clk : 1; }
+ int ild_r() { return sio_ild_active() ? m_sio_ld : 1; }
+ int do_r() { return m_do_out; }
+ int ock_r() { return sio_ock_active() ? m_sio_clk : 1; }
+ int old_r() { return sio_old_active() ? m_sio_ld : 1; }
+ int ose_r() { return m_ose_out; }
// high-level passive parallel I/O handlers
- DECLARE_READ16_MEMBER(pio_r);
- DECLARE_WRITE16_MEMBER(pio_w);
+ u16 pio_r();
+ void pio_w(u16 data);
// parallel I/O outputs
- DECLARE_READ_LINE_MEMBER(psel_r) { return m_psel_out; }
- DECLARE_READ_LINE_MEMBER(pids_r) { return m_pids_out; }
- DECLARE_READ_LINE_MEMBER(pods_r) { return m_pods_out; }
+ int psel_r() { return m_psel_out; }
+ int pids_r() { return m_pids_out; }
+ int pods_r() { return m_pods_out; }
protected:
// construction/destruction
@@ -75,15 +75,13 @@ protected:
address_map_constructor &&data_map);
// device_t implementation
- virtual void device_resolve_objects() override;
- virtual void device_start() override;
- virtual void device_stop() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_stop() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
// device_execute_interface implementation
- virtual u64 execute_clocks_to_cycles(u64 clocks) const override { return (clocks + 2 - 1) >> 1; }
- virtual u64 execute_cycles_to_clocks(u64 cycles) const override { return cycles << 1; }
- virtual u32 execute_input_lines() const override { return 5U; }
+ virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 2 - 1) >> 1; }
+ virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return cycles << 1; }
virtual void execute_run() override;
virtual void execute_set_input(int inputnum, int state) override;
@@ -105,7 +103,7 @@ protected:
// for specialisations to override
virtual void external_memory_enable(address_space &space, bool enable) = 0;
- template <offs_t Base> DECLARE_READ16_MEMBER(external_memory_r);
+ template <offs_t Base> u16 external_memory_r(offs_t offset, u16 mem_mask = ~0);
private:
// state registration indices
@@ -181,7 +179,7 @@ private:
using recompiler_ptr = std::unique_ptr<recompiler>;
// internal address maps
- void program_map(address_map &map);
+ void program_map(address_map &map) ATTR_COLD;
// instruction execution
template <bool Debugger, bool Caching> void execute_some_rom();
@@ -275,7 +273,7 @@ private:
// memory system access
required_shared_ptr<u16> m_workram;
address_space *m_spaces[3];
- memory_access_cache<1, -1, ENDIANNESS_BIG> *m_pcache;
+ memory_access<16, 1, -1, ENDIANNESS_BIG>::cache m_pcache;
u16 m_workram_mask;
// recompiler stuff
@@ -349,7 +347,7 @@ protected:
virtual void external_memory_enable(address_space &space, bool enable) override;
// internal address maps
- void data_map(address_map &map);
+ void data_map(address_map &map) ATTR_COLD;
private:
required_region_ptr<u16> m_rom;
@@ -367,7 +365,7 @@ protected:
virtual void external_memory_enable(address_space &space, bool enable) override;
// internal address maps
- void data_map(address_map &map);
+ void data_map(address_map &map) ATTR_COLD;
private:
required_region_ptr<u16> m_rom;