summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/s100/s100.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/s100/s100.h')
-rw-r--r--src/devices/bus/s100/s100.h150
1 files changed, 74 insertions, 76 deletions
diff --git a/src/devices/bus/s100/s100.h b/src/devices/bus/s100/s100.h
index 44f2d642770..a4eef9f5f83 100644
--- a/src/devices/bus/s100/s100.h
+++ b/src/devices/bus/s100/s100.h
@@ -59,10 +59,10 @@
**********************************************************************/
-#pragma once
+#ifndef MAME_BUS_S100_S100_H
+#define MAME_BUS_S100_S100_H
-#ifndef __S100__
-#define __S100__
+#pragma once
@@ -88,55 +88,55 @@
#define MCFG_S100_IRQ_CALLBACK(_write) \
- devcb = &s100_bus_t::set_irq_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_irq_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_NMI_CALLBACK(_write) \
- devcb = &s100_bus_t::set_nmi_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_nmi_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI0_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi0_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi0_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI1_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi1_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi1_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI2_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi2_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi2_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI3_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi3_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi3_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI4_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi4_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi4_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI5_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi5_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi5_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI6_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi6_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi6_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_VI7_CALLBACK(_write) \
- devcb = &s100_bus_t::set_vi7_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_vi7_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_DMA0_CALLBACK(_write) \
- devcb = &s100_bus_t::set_dma0_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_dma0_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_DMA1_CALLBACK(_write) \
- devcb = &s100_bus_t::set_dma1_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_dma1_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_DMA2_CALLBACK(_write) \
- devcb = &s100_bus_t::set_dma2_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_dma2_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_DMA3_CALLBACK(_write) \
- devcb = &s100_bus_t::set_dma3_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_dma3_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_RDY_CALLBACK(_write) \
- devcb = &s100_bus_t::set_rdy_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_rdy_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_HOLD_CALLBACK(_write) \
- devcb = &s100_bus_t::set_hold_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_hold_wr_callback(*device, DEVCB_##_write);
#define MCFG_S100_ERROR_CALLBACK(_write) \
- devcb = &s100_bus_t::set_error_wr_callback(*device, DEVCB_##_write);
+ devcb = &s100_bus_device::set_error_wr_callback(*device, DEVCB_##_write);
@@ -144,43 +144,40 @@
// TYPE DEFINITIONS
//**************************************************************************
-class s100_bus_t;
+class s100_bus_device;
// ======================> device_s100_card_interface
class device_s100_card_interface : public device_slot_card_interface
{
- friend class s100_bus_t;
+ friend class s100_bus_device;
+ template <class ElementType> friend class simple_list;
public:
- // construction/destruction
- device_s100_card_interface(const machine_config &mconfig, device_t &device);
- virtual ~device_s100_card_interface() { }
-
device_s100_card_interface *next() const { return m_next; }
// interrupts
- virtual void s100_int_w(int state) { };
- virtual void s100_nmi_w(int state) { };
- virtual uint8_t s100_sinta_r(offs_t offset) { return 0; };
+ virtual void s100_int_w(int state) { }
+ virtual void s100_nmi_w(int state) { }
+ virtual uint8_t s100_sinta_r(offs_t offset) { return 0; }
// vectored interrupts
- virtual void s100_vi0_w(int state) { };
- virtual void s100_vi1_w(int state) { };
- virtual void s100_vi2_w(int state) { };
- virtual void s100_vi3_w(int state) { };
- virtual void s100_vi4_w(int state) { };
- virtual void s100_vi5_w(int state) { };
- virtual void s100_vi6_w(int state) { };
- virtual void s100_vi7_w(int state) { };
+ virtual void s100_vi0_w(int state) { }
+ virtual void s100_vi1_w(int state) { }
+ virtual void s100_vi2_w(int state) { }
+ virtual void s100_vi3_w(int state) { }
+ virtual void s100_vi4_w(int state) { }
+ virtual void s100_vi5_w(int state) { }
+ virtual void s100_vi6_w(int state) { }
+ virtual void s100_vi7_w(int state) { }
// memory access
- virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0; };
- virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { };
+ virtual uint8_t s100_smemr_r(address_space &space, offs_t offset) { return 0; }
+ virtual void s100_mwrt_w(address_space &space, offs_t offset, uint8_t data) { }
// I/O access
- virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0; };
- virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { };
+ virtual uint8_t s100_sinp_r(address_space &space, offs_t offset) { return 0; }
+ virtual void s100_sout_w(address_space &space, offs_t offset, uint8_t data) { }
// configuration access
virtual void s100_phlda_w(int state) { }
@@ -194,39 +191,44 @@ public:
virtual void s100_reset_w(int state) { }
virtual void s100_slave_clr_w(int state) { }
-public:
- s100_bus_t *m_bus;
+protected:
+ // construction/destruction
+ device_s100_card_interface(const machine_config &mconfig, device_t &device);
+
+ s100_bus_device *m_bus;
+
+private:
device_s100_card_interface *m_next;
};
-// ======================> s100_bus_t
+// ======================> s100_bus_device
-class s100_bus_t : public device_t
+class s100_bus_device : public device_t
{
public:
// construction/destruction
- s100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~s100_bus_t() { m_device_list.detach_all(); }
-
- template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_irq.set_callback(object); }
- template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_nmi.set_callback(object); }
- template<class _Object> static devcb_base &set_vi0_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi0.set_callback(object); }
- template<class _Object> static devcb_base &set_vi1_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi1.set_callback(object); }
- template<class _Object> static devcb_base &set_vi2_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi2.set_callback(object); }
- template<class _Object> static devcb_base &set_vi3_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi3.set_callback(object); }
- template<class _Object> static devcb_base &set_vi4_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi4.set_callback(object); }
- template<class _Object> static devcb_base &set_vi5_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi5.set_callback(object); }
- template<class _Object> static devcb_base &set_vi6_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi6.set_callback(object); }
- template<class _Object> static devcb_base &set_vi7_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_vi7.set_callback(object); }
- template<class _Object> static devcb_base &set_dma0_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_dma0.set_callback(object); }
- template<class _Object> static devcb_base &set_dma1_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_dma1.set_callback(object); }
- template<class _Object> static devcb_base &set_dma2_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_dma2.set_callback(object); }
- template<class _Object> static devcb_base &set_dma3_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_dma3.set_callback(object); }
- template<class _Object> static devcb_base &set_rdy_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_rdy.set_callback(object); }
- template<class _Object> static devcb_base &set_hold_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_hold.set_callback(object); }
- template<class _Object> static devcb_base &set_error_wr_callback(device_t &device, _Object object) { return downcast<s100_bus_t &>(device).m_write_error.set_callback(object); }
+ s100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ~s100_bus_device() { m_device_list.detach_all(); }
+
+ template <class Object> static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_irq.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_nmi.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi0_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi0.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi1_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi1.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi2_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi2.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi3_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi3.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi4_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi4.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi5_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi5.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi6_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi6.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_vi7_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_vi7.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_dma0_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_dma0.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_dma1_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_dma1.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_dma2_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_dma2.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_dma3_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_dma3.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_rdy_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_rdy.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_hold_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_hold.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_error_wr_callback(device_t &device, Object &&cb) { return downcast<s100_bus_device &>(device).m_write_error.set_callback(std::forward<Object>(cb)); }
void add_card(device_s100_card_interface *card);
@@ -282,29 +284,25 @@ private:
};
-// ======================> s100_slot_t
+// ======================> s100_slot_device
-class s100_slot_t : public device_t,
- public device_slot_interface
+class s100_slot_device : public device_t, public device_slot_interface
{
public:
// construction/destruction
- s100_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ s100_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
private:
- s100_bus_t *m_bus;
+ s100_bus_device *m_bus;
};
// device type definition
-extern const device_type S100_BUS;
-extern const device_type S100_SLOT;
-
-
-
+DECLARE_DEVICE_TYPE(S100_BUS, s100_bus_device)
+DECLARE_DEVICE_TYPE(S100_SLOT, s100_slot_device)
-#endif
+#endif // MAME_BUS_S100_S100_H