diff options
Diffstat (limited to 'src/devices/cpu/dsp16/dsp16.h')
-rw-r--r-- | src/devices/cpu/dsp16/dsp16.h | 48 |
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; |