diff options
Diffstat (limited to 'src/devices/bus/svi3x8/slot/slot.h')
-rw-r--r-- | src/devices/bus/svi3x8/slot/slot.h | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/devices/bus/svi3x8/slot/slot.h b/src/devices/bus/svi3x8/slot/slot.h index bba55731a88..ca69257b99c 100644 --- a/src/devices/bus/svi3x8/slot/slot.h +++ b/src/devices/bus/svi3x8/slot/slot.h @@ -39,6 +39,9 @@ #pragma once +#include <functional> +#include <vector> + //************************************************************************** @@ -64,9 +67,9 @@ public: void add_card(device_svi_slot_interface &card); // from slot - DECLARE_WRITE_LINE_MEMBER( int_w ) { m_int_handler(state); }; - DECLARE_WRITE_LINE_MEMBER( romdis_w ) { m_romdis_handler(state); }; - DECLARE_WRITE_LINE_MEMBER( ramdis_w ) { m_ramdis_handler(state); }; + void int_w(int state) { m_int_handler(state); } + void romdis_w(int state) { m_romdis_handler(state); } + void ramdis_w(int state) { m_ramdis_handler(state); } // from host uint8_t mreq_r(offs_t offset); @@ -74,16 +77,18 @@ public: uint8_t iorq_r(offs_t offset); void iorq_w(offs_t offset, uint8_t data); - DECLARE_WRITE_LINE_MEMBER( bk21_w ); - DECLARE_WRITE_LINE_MEMBER( bk22_w ); - DECLARE_WRITE_LINE_MEMBER( bk31_w ); - DECLARE_WRITE_LINE_MEMBER( bk32_w ); + void bk21_w(int state); + void bk22_w(int state); + void bk31_w(int state); + void bk32_w(int state); private: - // device-level overrides + using card_vector = std::vector<std::reference_wrapper<device_svi_slot_interface> >; + + // device_t implementation virtual void device_start() override; - simple_list<device_svi_slot_interface> m_dev; + card_vector m_dev; devcb_write_line m_int_handler; devcb_write_line m_romdis_handler; @@ -115,7 +120,7 @@ public: template <typename T> void set_bus(T &&tag) { m_bus.set_tag(std::forward<T>(tag)); } protected: - // device-level overrides + // device_t implementation virtual void device_start() override; // configuration @@ -129,32 +134,26 @@ DECLARE_DEVICE_TYPE(SVI_SLOT, svi_slot_device) class device_svi_slot_interface : public device_interface { - template <class ElementType> friend class simple_list; public: // construction/destruction virtual ~device_svi_slot_interface(); void set_bus_device(svi_slot_bus_device &bus); - device_svi_slot_interface *next() const { return m_next; } - virtual uint8_t mreq_r(offs_t offset) { return 0xff; } virtual void mreq_w(offs_t offset, uint8_t data) { } virtual uint8_t iorq_r(offs_t offset) { return 0xff; } virtual void iorq_w(offs_t offset, uint8_t data) { } - virtual DECLARE_WRITE_LINE_MEMBER( bk21_w ) { } - virtual DECLARE_WRITE_LINE_MEMBER( bk22_w ) { } - virtual DECLARE_WRITE_LINE_MEMBER( bk31_w ) { } - virtual DECLARE_WRITE_LINE_MEMBER( bk32_w ) { } + virtual void bk21_w(int state) { } + virtual void bk22_w(int state) { } + virtual void bk31_w(int state) { } + virtual void bk32_w(int state) { } protected: device_svi_slot_interface(const machine_config &mconfig, device_t &device); svi_slot_bus_device *m_bus; - -private: - device_svi_slot_interface *m_next; }; // include here so drivers don't need to |