diff options
author | 2020-07-22 19:50:24 +0300 | |
---|---|---|
committer | 2020-07-22 19:50:24 +0300 | |
commit | fcc6f1aa7ce2e218ec3e2cec2044c55927a8af74 (patch) | |
tree | d819666d72117808b89d754503dee0fe27a92cae /src/devices/bus/spectrum/melodik.h | |
parent | e1ccaea11f6524c7d581970b53701ef8ce99adc6 (diff) |
bus/spectrum fix expansion devices chaining
Diffstat (limited to 'src/devices/bus/spectrum/melodik.h')
-rw-r--r-- | src/devices/bus/spectrum/melodik.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/devices/bus/spectrum/melodik.h b/src/devices/bus/spectrum/melodik.h index bf1514f600c..043aaab15a0 100644 --- a/src/devices/bus/spectrum/melodik.h +++ b/src/devices/bus/spectrum/melodik.h @@ -36,12 +36,17 @@ protected: // optional information overrides virtual void device_add_mconfig(machine_config &config) override; - virtual void pre_opcode_fetch(offs_t offset) override; - virtual uint8_t mreq_r(offs_t offset) override; - virtual void mreq_w(offs_t offset, uint8_t data) override; virtual uint8_t iorq_r(offs_t offset) override; virtual void iorq_w(offs_t offset, uint8_t data) override; - virtual DECLARE_READ_LINE_MEMBER(romcs) override; + + // passthru + virtual void pre_opcode_fetch(offs_t offset) override { m_exp->pre_opcode_fetch(offset); }; + virtual void post_opcode_fetch(offs_t offset) override { m_exp->post_opcode_fetch(offset); }; + virtual void pre_data_fetch(offs_t offset) override { m_exp->pre_data_fetch(offset); }; + virtual void post_data_fetch(offs_t offset) override { m_exp->post_data_fetch(offset); }; + virtual uint8_t mreq_r(offs_t offset) override { return m_exp->romcs() ? m_exp->mreq_r(offset) : 0xff; } + virtual void mreq_w(offs_t offset, uint8_t data) override { if (m_exp->romcs()) m_exp->mreq_w(offset, data); } + virtual DECLARE_READ_LINE_MEMBER(romcs) override { return m_exp->romcs(); } private: required_device<spectrum_expansion_slot_device> m_exp; |