summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/amis2000/amis2000.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/amis2000/amis2000.h')
-rw-r--r--src/devices/cpu/amis2000/amis2000.h50
1 files changed, 15 insertions, 35 deletions
diff --git a/src/devices/cpu/amis2000/amis2000.h b/src/devices/cpu/amis2000/amis2000.h
index 2e15b6572ff..2739461b44b 100644
--- a/src/devices/cpu/amis2000/amis2000.h
+++ b/src/devices/cpu/amis2000/amis2000.h
@@ -11,45 +11,25 @@
#pragma once
+class amis2000_base_device : public cpu_device
+{
+public:
+ // generic input pins (4 bits each)
+ auto read_k() { return m_read_k.bind(); }
+ auto read_i() { return m_read_i.bind(); }
-// generic input pins (4 bits each)
-#define MCFG_AMI_S2000_READ_K_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_read_k_callback(DEVCB_##_devcb);
-
-#define MCFG_AMI_S2000_READ_I_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_read_i_callback(DEVCB_##_devcb);
-
-// 8-bit external databus coupled as input/output pins
-#define MCFG_AMI_S2000_READ_D_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_read_d_callback(DEVCB_##_devcb);
-
-#define MCFG_AMI_S2000_WRITE_D_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_write_d_callback(DEVCB_##_devcb);
-
-// 13-bit external address bus coupled as output pins
-#define MCFG_AMI_S2000_WRITE_A_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_write_a_callback(DEVCB_##_devcb);
-
-// F_out pin (only for S2152)
-#define MCFG_AMI_S2152_FOUT_CB(_devcb) \
- downcast<amis2000_base_device &>(*device).set_write_f_callback(DEVCB_##_devcb);
+ // 8-bit external databus coupled as input/output pins
+ auto read_d() { return m_read_d.bind(); }
+ auto write_d() { return m_write_d.bind(); }
-// S2000 has a hardcoded 7seg table, that (unlike S2200) is officially
-// uncustomizable, but wildfire proves to be an exception to that rule.
-#define MCFG_AMI_S2000_7SEG_DECODER(_ptr) \
- downcast<amis2000_base_device &>(*device).set_7seg_table(_ptr);
+ // 13-bit external address bus coupled as output pins
+ auto write_a() { return m_write_a.bind(); }
+ // F_out pin (only for S2152)
+ auto write_f() { return m_write_f.bind(); }
-class amis2000_base_device : public cpu_device
-{
-public:
- // configuration helpers
- template <class Object> devcb_base &set_read_k_callback(Object &&cb) { return m_read_k.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_read_i_callback(Object &&cb) { return m_read_i.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_read_d_callback(Object &&cb) { return m_read_d.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_d_callback(Object &&cb) { return m_write_d.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_a_callback(Object &&cb) { return m_write_a.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_f_callback(Object &&cb) { return m_write_f.set_callback(std::forward<Object>(cb)); }
+ // S2000 has a hardcoded 7seg table, that (unlike S2200) is officially
+ // uncustomizable, but wildfire proves to be an exception to that rule.
void set_7seg_table(const u8 *ptr) { m_7seg_table = ptr; }
void data_64x4(address_map &map);