summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/bus/vic20/exp.h
diff options
context:
space:
mode:
author Curt Coder <curtcoder@mail.com>2014-04-01 12:36:22 +0000
committer Curt Coder <curtcoder@mail.com>2014-04-01 12:36:22 +0000
commit6b11efe669c4f6bf30c0c51745fcb7bde0e8deea (patch)
treef25fb8f0e68a0b9017c65848e98c89611a655007 /src/emu/bus/vic20/exp.h
parent09802006a1a7afd6ed8d45625827ea4afd3e7bdc (diff)
(MESS) Cleanups. (nw)
Diffstat (limited to 'src/emu/bus/vic20/exp.h')
-rw-r--r--src/emu/bus/vic20/exp.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/emu/bus/vic20/exp.h b/src/emu/bus/vic20/exp.h
index 94e0c8fd145..2f52cc1c91f 100644
--- a/src/emu/bus/vic20/exp.h
+++ b/src/emu/bus/vic20/exp.h
@@ -61,11 +61,19 @@
#define MCFG_VIC20_PASSTHRU_EXPANSION_SLOT_ADD(_tag) \
MCFG_VIC20_EXPANSION_SLOT_ADD(_tag, 0, vic20_expansion_cards, NULL) \
- MCFG_VIC20_EXPANSION_SLOT_IRQ_CALLBACKS(DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, irq_w), DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, nmi_w), DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, res_w))
+ MCFG_VIC20_EXPANSION_SLOT_IRQ_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, irq_w)) \
+ MCFG_VIC20_EXPANSION_SLOT_NMI_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, nmi_w)) \
+ MCFG_VIC20_EXPANSION_SLOT_RES_CALLBACK(DEVWRITELINE(DEVICE_SELF_OWNER, vic20_expansion_slot_device, res_w))
-#define MCFG_VIC20_EXPANSION_SLOT_IRQ_CALLBACKS(_irq, _nmi, _res) \
- downcast<vic20_expansion_slot_device *>(device)->set_irq_callbacks(DEVCB2_##_irq, DEVCB2_##_nmi, DEVCB2_##_res);
+#define MCFG_VIC20_EXPANSION_SLOT_IRQ_CALLBACK(_write) \
+ devcb = &vic20_expansion_slot_device::set_irq_wr_callback(*device, DEVCB2_##_write);
+
+#define MCFG_VIC20_EXPANSION_SLOT_NMI_CALLBACK(_write) \
+ devcb = &vic20_expansion_slot_device::set_nmi_wr_callback(*device, DEVCB2_##_write);
+
+#define MCFG_VIC20_EXPANSION_SLOT_RES_CALLBACK(_write) \
+ devcb = &vic20_expansion_slot_device::set_res_wr_callback(*device, DEVCB2_##_write);
@@ -85,11 +93,9 @@ public:
// construction/destruction
vic20_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- template<class _irq, class _nmi, class _res> void set_irq_callbacks(_irq irq, _nmi nmi, _res res) {
- m_write_irq.set_callback(irq);
- m_write_nmi.set_callback(nmi);
- m_write_res.set_callback(res);
- }
+ template<class _Object> static devcb2_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<vic20_expansion_slot_device &>(device).m_write_irq.set_callback(object); }
+ template<class _Object> static devcb2_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<vic20_expansion_slot_device &>(device).m_write_nmi.set_callback(object); }
+ template<class _Object> static devcb2_base &set_res_wr_callback(device_t &device, _Object object) { return downcast<vic20_expansion_slot_device &>(device).m_write_res.set_callback(object); }
// computer interface
UINT8 cd_r(address_space &space, offs_t offset, UINT8 data, int ram1, int ram2, int ram3, int blk1, int blk2, int blk3, int blk5, int io2, int io3);