summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/z8/z8.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/z8/z8.h')
-rw-r--r--src/devices/cpu/z8/z8.h44
1 files changed, 8 insertions, 36 deletions
diff --git a/src/devices/cpu/z8/z8.h b/src/devices/cpu/z8/z8.h
index 8482895879d..a1119bb8afb 100644
--- a/src/devices/cpu/z8/z8.h
+++ b/src/devices/cpu/z8/z8.h
@@ -12,46 +12,18 @@
#pragma once
-#define MCFG_Z8_PORT_P0_READ_CB(_devcb) \
- downcast<z8_device &>(*device).set_input_cb(0, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P1_READ_CB(_devcb) \
- downcast<z8_device &>(*device).set_input_cb(1, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P2_READ_CB(_devcb) \
- downcast<z8_device &>(*device).set_input_cb(2, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P3_READ_CB(_devcb) \
- downcast<z8_device &>(*device).set_input_cb(3, DEVCB_##_devcb);
-
-
-#define MCFG_Z8_PORT_P0_WRITE_CB(_devcb) \
- downcast<z8_device &>(*device).set_output_cb(0, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P1_WRITE_CB(_devcb) \
- downcast<z8_device &>(*device).set_output_cb(1, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P2_WRITE_CB(_devcb) \
- downcast<z8_device &>(*device).set_output_cb(2, DEVCB_##_devcb);
-
-#define MCFG_Z8_PORT_P3_WRITE_CB(_devcb) \
- downcast<z8_device &>(*device).set_output_cb(3, DEVCB_##_devcb);
-
-
class z8_device : public cpu_device
{
public:
// configuration
- template<class Object> devcb_base &set_input_cb(int port, Object &&object)
- {
- assert(port >= 0 && port < 4);
- return m_input_cb[port].set_callback(std::forward<Object>(object));
- }
- template<class Object> devcb_base &set_output_cb(int port, Object &&object)
- {
- assert(port >= 0 && port < 4);
- return m_output_cb[port].set_callback(std::forward<Object>(object));
- }
+ auto p0_in_cb() { return m_input_cb[0].bind(); }
+ auto p1_in_cb() { return m_input_cb[1].bind(); }
+ auto p2_in_cb() { return m_input_cb[2].bind(); }
+ auto p3_in_cb() { return m_input_cb[3].bind(); }
+ auto p0_out_cb() { return m_output_cb[0].bind(); }
+ auto p1_out_cb() { return m_output_cb[1].bind(); }
+ auto p2_out_cb() { return m_output_cb[2].bind(); }
+ auto p3_out_cb() { return m_output_cb[3].bind(); }
protected:
enum