summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mos6530n.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mos6530n.h')
-rw-r--r--src/devices/machine/mos6530n.h83
1 files changed, 46 insertions, 37 deletions
diff --git a/src/devices/machine/mos6530n.h b/src/devices/machine/mos6530n.h
index 56080ff49dc..a5dfd3ee6fe 100644
--- a/src/devices/machine/mos6530n.h
+++ b/src/devices/machine/mos6530n.h
@@ -64,115 +64,115 @@
//**************************************************************************
#define MCFG_MOS6530n_IRQ_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_irq_wr_callback(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_irq_wr_callback(DEVCB_##_write);
#define MCFG_MOS6530n_IN_PA_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback(DEVCB_##_read);
#define MCFG_MOS6530n_OUT_PA_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback(DEVCB_##_write);
#define MCFG_MOS6530n_IN_PB_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback(DEVCB_##_read);
#define MCFG_MOS6530n_OUT_PB_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback(DEVCB_##_write);
#define MCFG_MOS6530n_IN_PA0_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<0>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<0>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA1_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<1>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<1>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA2_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<2>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<2>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA3_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<3>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<3>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA4_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<4>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<4>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA5_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<5>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<5>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA6_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<6>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<6>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PA7_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_rd_callback<7>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pa_rd_callback<7>(DEVCB_##_read);
#define MCFG_MOS6530n_OUT_PA0_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<0>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<0>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA1_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<1>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<1>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA2_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<2>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<2>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA3_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<3>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<3>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA4_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<4>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<4>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA5_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<5>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<5>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA6_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<6>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<6>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PA7_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pa_wr_callback<7>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pa_wr_callback<7>(DEVCB_##_write);
#define MCFG_MOS6530n_IN_PB0_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<0>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<0>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB1_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<1>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<1>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB2_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<2>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<2>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB3_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<3>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<3>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB4_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<4>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<4>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB5_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<5>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<5>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB6_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<6>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<6>(DEVCB_##_read);
#define MCFG_MOS6530n_IN_PB7_CB(_read) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_rd_callback<7>(DEVCB_##_read);
+ downcast<mos6530_device_base &>(*device).set_pb_rd_callback<7>(DEVCB_##_read);
#define MCFG_MOS6530n_OUT_PB0_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<0>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<0>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB1_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<1>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<1>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB2_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<2>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<2>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB3_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<3>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<3>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB4_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<4>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<4>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB5_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<5>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<5>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB6_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<6>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<6>(DEVCB_##_write);
#define MCFG_MOS6530n_OUT_PB7_CB(_write) \
- devcb = &downcast<mos6530_device_base &>(*device).set_pb_wr_callback<7>(DEVCB_##_write);
+ downcast<mos6530_device_base &>(*device).set_pb_wr_callback<7>(DEVCB_##_write);
@@ -194,6 +194,15 @@ public:
template <unsigned N, class Object> devcb_base &set_pa_wr_callback(Object &&cb) { return m_out_pa_cb[N].set_callback(std::forward<Object>(cb)); }
template <unsigned N, class Object> devcb_base &set_pb_rd_callback(Object &&cb) { return m_in_pb_cb[N].set_callback(std::forward<Object>(cb)); }
template <unsigned N, class Object> devcb_base &set_pb_wr_callback(Object &&cb) { return m_out_pb_cb[N].set_callback(std::forward<Object>(cb)); }
+ auto irq_wr_callback() { return m_irq_cb.bind(); }
+ auto pa_rd_callback() { return m_in8_pa_cb.bind(); }
+ auto pa_wr_callback() { return m_out8_pa_cb.bind(); }
+ auto pb_rd_callback() { return m_in8_pb_cb.bind(); }
+ auto pb_wr_callback() { return m_out8_pb_cb.bind(); }
+ template <unsigned N> auto pa_rd_callback() { return m_in_pa_cb[N].bind(); }
+ template <unsigned N> auto pa_wr_callback() { return m_out_pa_cb[N].bind(); }
+ template <unsigned N> auto pb_rd_callback() { return m_in_pb_cb[N].bind(); }
+ template <unsigned N> auto pb_wr_callback() { return m_out_pb_cb[N].bind(); }
DECLARE_WRITE_LINE_MEMBER( pa0_w ) { pa_w(0, state); }
DECLARE_WRITE_LINE_MEMBER( pa1_w ) { pa_w(1, state); }