summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/tiki100/exp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/tiki100/exp.h')
-rw-r--r--src/devices/bus/tiki100/exp.h83
1 files changed, 41 insertions, 42 deletions
diff --git a/src/devices/bus/tiki100/exp.h b/src/devices/bus/tiki100/exp.h
index f97d46faee4..9ae56520527 100644
--- a/src/devices/bus/tiki100/exp.h
+++ b/src/devices/bus/tiki100/exp.h
@@ -9,10 +9,10 @@
**********************************************************************/
-#pragma once
+#ifndef MAME_BUS_TIKI100_EXP_H
+#define MAME_BUS_TIKI100_EXP_H
-#ifndef __TIKI100_BUS__
-#define __TIKI100_BUS__
+#pragma once
#include "cpu/z80/z80daisy.h"
@@ -39,19 +39,19 @@
#define MCFG_TIKI100_BUS_IRQ_CALLBACK(_write) \
- devcb = &tiki100_bus_t::set_irq_wr_callback(*device, DEVCB_##_write);
+ devcb = &tiki100_bus_device::set_irq_wr_callback(*device, DEVCB_##_write);
#define MCFG_TIKI100_BUS_NMI_CALLBACK(_write) \
- devcb = &tiki100_bus_t::set_nmi_wr_callback(*device, DEVCB_##_write);
+ devcb = &tiki100_bus_device::set_nmi_wr_callback(*device, DEVCB_##_write);
#define MCFG_TIKI100_BUS_BUSRQ_CALLBACK(_write) \
- devcb = &tiki100_bus_t::set_busrq_wr_callback(*device, DEVCB_##_write);
+ devcb = &tiki100_bus_device::set_busrq_wr_callback(*device, DEVCB_##_write);
#define MCFG_TIKI100_BUS_IN_MREQ_CALLBACK(_read) \
- devcb = &tiki100_bus_t::set_mrq_rd_callback(*device, DEVCB_##_read);
+ devcb = &tiki100_bus_device::set_mrq_rd_callback(*device, DEVCB_##_read);
#define MCFG_TIKI100_BUS_OUT_MREQ_CALLBACK(_write) \
- devcb = &tiki100_bus_t::set_mrq_wr_callback(*device, DEVCB_##_write);
+ devcb = &tiki100_bus_device::set_mrq_wr_callback(*device, DEVCB_##_write);
@@ -59,57 +59,59 @@
// TYPE DEFINITIONS
//**************************************************************************
-// ======================> tiki100_bus_slot_t
+// ======================> tiki100_bus_slot_device
-class tiki100_bus_t;
-class tiki100_bus_slot_t;
+class tiki100_bus_device;
+class tiki100_bus_slot_device;
// ======================> device_tiki100bus_card_interface
class device_tiki100bus_card_interface : public device_slot_card_interface
{
- friend class tiki100_bus_t;
+ friend class tiki100_bus_device;
+ template <class ElementType> friend class simple_list;
public:
- // construction/destruction
- device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device);
- virtual ~device_tiki100bus_card_interface() { }
-
device_tiki100bus_card_interface *next() const { return m_next; }
// memory access
- virtual uint8_t mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) { mdis = 1; return data; };
- virtual void mrq_w(address_space &space, offs_t offset, uint8_t data) { };
+ virtual uint8_t mrq_r(address_space &space, offs_t offset, uint8_t data, bool &mdis) { mdis = 1; return data; }
+ virtual void mrq_w(address_space &space, offs_t offset, uint8_t data) { }
// I/O access
- virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data) { return data; };
- virtual void iorq_w(address_space &space, offs_t offset, uint8_t data) { };
+ virtual uint8_t iorq_r(address_space &space, offs_t offset, uint8_t data) { return data; }
+ virtual void iorq_w(address_space &space, offs_t offset, uint8_t data) { }
- virtual void busak_w(int state) { m_busak = state; };
+ virtual void busak_w(int state) { m_busak = state; }
// Z80 daisy chain
virtual int z80daisy_irq_state() { return 0; }
virtual int z80daisy_irq_ack() { return 0; }
virtual void z80daisy_irq_reti() { }
- tiki100_bus_t *m_bus;
- tiki100_bus_slot_t *m_slot;
+protected:
+ // construction/destruction
+ device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device);
+
+ tiki100_bus_device *m_bus;
+ tiki100_bus_slot_device *m_slot;
int m_busak;
+private:
device_tiki100bus_card_interface *m_next;
};
-// ======================> tiki100_bus_slot_t
+// ======================> tiki100_bus_slot_device
-class tiki100_bus_slot_t : public device_t,
+class tiki100_bus_slot_device : public device_t,
public device_slot_interface,
public device_z80daisy_interface
{
public:
// construction/destruction
- tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ tiki100_bus_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
virtual void device_start() override;
@@ -122,29 +124,29 @@ protected:
private:
// configuration
- tiki100_bus_t *m_bus;
+ tiki100_bus_device *m_bus;
device_tiki100bus_card_interface *m_card;
};
// device type definition
-extern const device_type TIKI100_BUS_SLOT;
+DECLARE_DEVICE_TYPE(TIKI100_BUS_SLOT, tiki100_bus_slot_device)
-// ======================> tiki100_bus_t
+// ======================> tiki100_bus_device
-class tiki100_bus_t : public device_t
+class tiki100_bus_device : public device_t
{
public:
// construction/destruction
- tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- ~tiki100_bus_t() { m_device_list.detach_all(); }
+ tiki100_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ~tiki100_bus_device() { m_device_list.detach_all(); }
- template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_irq_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_nmi_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_busrq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_busrq_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_mrq_rd_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_in_mrq_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_mrq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_out_mrq_cb.set_callback(object); }
+ template <class Object> static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast<tiki100_bus_device &>(device).m_irq_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast<tiki100_bus_device &>(device).m_nmi_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_busrq_wr_callback(device_t &device, Object &&cb) { return downcast<tiki100_bus_device &>(device).m_busrq_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_mrq_rd_callback(device_t &device, Object &&cb) { return downcast<tiki100_bus_device &>(device).m_in_mrq_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_mrq_wr_callback(device_t &device, Object &&cb) { return downcast<tiki100_bus_device &>(device).m_out_mrq_cb.set_callback(std::forward<Object>(cb)); }
void add_card(device_tiki100bus_card_interface *card);
@@ -180,13 +182,10 @@ private:
// device type definition
-extern const device_type TIKI100_BUS;
-
+DECLARE_DEVICE_TYPE(TIKI100_BUS, tiki100_bus_device)
SLOT_INTERFACE_EXTERN( tiki100_cards );
-
-
-#endif
+#endif // MAME_BUS_TIKI100_EXP_H