summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nubus/nubus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nubus/nubus.h')
-rw-r--r--src/devices/bus/nubus/nubus.h51
1 files changed, 3 insertions, 48 deletions
diff --git a/src/devices/bus/nubus/nubus.h b/src/devices/bus/nubus/nubus.h
index 919f989ebfb..a1b9496fcf8 100644
--- a/src/devices/bus/nubus/nubus.h
+++ b/src/devices/bus/nubus/nubus.h
@@ -14,44 +14,6 @@
#pragma once
-
-//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_NUBUS_CPU(_cputag) \
- downcast<nubus_device &>(*device).set_cputag(_cputag);
-
-#define MCFG_NUBUS_OUT_IRQ9_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irq9_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_OUT_IRQA_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irqa_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_OUT_IRQB_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irqb_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_OUT_IRQC_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irqc_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_OUT_IRQD_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irqd_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_OUT_IRQE_CB(_devcb) \
- downcast<nubus_device &>(*device).set_out_irqe_callback(DEVCB_##_devcb);
-
-#define MCFG_NUBUS_SLOT_ADD(_nbtag, _tag, _slot_intf, _def_slot) \
- MCFG_DEVICE_ADD(_tag, NUBUS_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) \
- downcast<nubus_slot_device &>(*device).set_nubus_slot(_nbtag, _tag);
-#define MCFG_NUBUS_SLOT_REMOVE(_tag) \
- MCFG_DEVICE_REMOVE(_tag)
-
-#define MCFG_NUBUS_ONBOARD_ADD(_nbtag, _tag, _dev_type, _def_inp) \
- MCFG_DEVICE_ADD(_tag, _dev_type, 0) \
- MCFG_DEVICE_INPUT_DEFAULTS(_def_inp) \
- downcast<device_nubus_card_interface &>(*device).set_nubus_tag(_nbtag, _tag);
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -100,13 +62,7 @@ public:
~nubus_device() { m_device_list.detach_all(); }
// inline configuration
- void set_cputag(const char *tag) { m_cputag = tag; }
- template <class Object> devcb_base &set_out_irq9_callback(Object &&cb) { return m_out_irq9_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_irqa_callback(Object &&cb) { return m_out_irqa_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_irqb_callback(Object &&cb) { return m_out_irqb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_irqc_callback(Object &&cb) { return m_out_irqc_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_irqd_callback(Object &&cb) { return m_out_irqd_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_irqe_callback(Object &&cb) { return m_out_irqe_cb.set_callback(std::forward<Object>(cb)); }
+ template <typename T> void set_space(T &&tag, int spacenum) { m_space.set_tag(std::forward<T>(tag), spacenum); }
auto out_irq9_callback() { return m_out_irq9_cb.bind(); }
auto out_irqa_callback() { return m_out_irqa_cb.bind(); }
auto out_irqb_callback() { return m_out_irqb_cb.bind(); }
@@ -134,11 +90,11 @@ protected:
nubus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
+ virtual void device_resolve_objects() override;
virtual void device_start() override;
- virtual void device_reset() override;
// internal state
- cpu_device *m_maincpu;
+ required_address_space m_space;
devcb_write_line m_out_irq9_cb;
devcb_write_line m_out_irqa_cb;
@@ -148,7 +104,6 @@ protected:
devcb_write_line m_out_irqe_cb;
simple_list<device_nubus_card_interface> m_device_list;
- const char *m_cputag;
};