diff options
Diffstat (limited to 'src/devices/bus/a1bus/a1bus.h')
-rw-r--r-- | src/devices/bus/a1bus/a1bus.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/devices/bus/a1bus/a1bus.h b/src/devices/bus/a1bus/a1bus.h index 7970f150719..484cba5b70f 100644 --- a/src/devices/bus/a1bus/a1bus.h +++ b/src/devices/bus/a1bus/a1bus.h @@ -13,6 +13,19 @@ //************************************************************************** +// INTERFACE CONFIGURATION MACROS +//************************************************************************** + +#define MCFG_A1BUS_CPU(_cputag) \ + downcast<a1bus_device &>(*device).set_cputag(_cputag); + +#define MCFG_A1BUS_OUT_IRQ_CB(_devcb) \ + downcast<a1bus_device &>(*device).set_out_irq_callback(DEVCB_##_devcb); + +#define MCFG_A1BUS_OUT_NMI_CB(_devcb) \ + downcast<a1bus_device &>(*device).set_out_nmi_callback(DEVCB_##_devcb); + +//************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -59,9 +72,9 @@ public: a1bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration - template <typename T> void set_space(T &&tag, int spacenum) { m_space.set_tag(std::forward<T>(tag), spacenum); } - auto out_irq_callback() { return m_out_irq_cb.bind(); } - auto out_nmi_callback() { return m_out_nmi_cb.bind(); } + template <typename T> void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); } + template <class Object> devcb_base &set_out_irq_callback(Object &&cb) { return m_out_irq_cb.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_out_nmi_callback(Object &&cb) { return m_out_nmi_cb.set_callback(std::forward<Object>(cb)); } void add_a1bus_card(device_a1bus_card_interface *card); device_a1bus_card_interface *get_a1bus_card(); @@ -84,7 +97,7 @@ protected: virtual void device_reset() override; // internal state - required_address_space m_space; + required_device<cpu_device> m_maincpu; devcb_write_line m_out_irq_cb; devcb_write_line m_out_nmi_cb; |