summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/vs9209.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/vs9209.h')
-rw-r--r--src/mame/machine/vs9209.h68
1 files changed, 18 insertions, 50 deletions
diff --git a/src/mame/machine/vs9209.h b/src/mame/machine/vs9209.h
index 161799419cc..6acebb5022c 100644
--- a/src/mame/machine/vs9209.h
+++ b/src/mame/machine/vs9209.h
@@ -12,46 +12,6 @@
#pragma once
//**************************************************************************
-// CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_VS9209_IN_PORTA_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(0, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTB_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(1, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTC_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(2, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTD_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(3, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTE_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(4, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTF_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(5, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTG_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(6, DEVCB_##_devcb);
-#define MCFG_VS9209_IN_PORTH_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_input_cb(7, DEVCB_##_devcb);
-
-#ifdef VS9209_PROBABLY_NONEXISTENT_OUTPUTS
-#define MCFG_VS9209_OUT_PORTA_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(0, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTB_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(1, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTC_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(2, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTD_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(3, DEVCB_##_devcb);
-#endif
-#define MCFG_VS9209_OUT_PORTE_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(4, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTF_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(5, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTG_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(6, DEVCB_##_devcb);
-#define MCFG_VS9209_OUT_PORTH_CB(_devcb) \
- devcb = &downcast<vs9209_device &>(*device).set_output_cb(7, DEVCB_##_devcb);
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -64,16 +24,24 @@ public:
vs9209_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration
- template<class Object> devcb_base &set_input_cb(int p, Object &&obj)
- {
- assert(p >= 0 && p < 8);
- return m_input_cb[p].set_callback(std::forward<Object>(obj));
- }
- template<class Object> devcb_base &set_output_cb(int p, Object &&obj)
- {
- assert(p >= 0 && p < 8);
- return m_output_cb[p].set_callback(std::forward<Object>(obj));
- }
+ auto porta_input_cb() { return m_input_cb[0].bind(); }
+ auto portb_input_cb() { return m_input_cb[1].bind(); }
+ auto portc_input_cb() { return m_input_cb[2].bind(); }
+ auto portd_input_cb() { return m_input_cb[3].bind(); }
+ auto porte_input_cb() { return m_input_cb[4].bind(); }
+ auto portf_input_cb() { return m_input_cb[5].bind(); }
+ auto portg_input_cb() { return m_input_cb[6].bind(); }
+ auto porth_input_cb() { return m_input_cb[7].bind(); }
+#ifdef VS9209_PROBABLY_NONEXISTENT_OUTPUTS
+ auto porta_output_cb() { return m_output_cb[0].bind(); }
+ auto portb_output_cb() { return m_output_cb[1].bind(); }
+ auto portc_output_cb() { return m_output_cb[2].bind(); }
+ auto portd_output_cb() { return m_output_cb[3].bind(); }
+#endif // VS9209_PROBABLY_NONEXISTENT_OUTPUTS
+ auto porte_output_cb() { return m_output_cb[4].bind(); }
+ auto portf_output_cb() { return m_output_cb[5].bind(); }
+ auto portg_output_cb() { return m_output_cb[6].bind(); }
+ auto porth_output_cb() { return m_output_cb[7].bind(); }
// memory handlers
DECLARE_READ8_MEMBER(read);