summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tms1000/tms1k_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tms1000/tms1k_base.h')
-rw-r--r--src/devices/cpu/tms1000/tms1k_base.h40
1 files changed, 14 insertions, 26 deletions
diff --git a/src/devices/cpu/tms1000/tms1k_base.h b/src/devices/cpu/tms1000/tms1k_base.h
index 481e9ad0d49..7a394b8dfbb 100644
--- a/src/devices/cpu/tms1000/tms1k_base.h
+++ b/src/devices/cpu/tms1000/tms1k_base.h
@@ -17,27 +17,6 @@
#include "machine/pla.h"
-// K input pins
-#define MCFG_TMS1XXX_READ_K_CB(_devcb) \
- downcast<tms1k_base_device &>(*device).set_read_k_callback(DEVCB_##_devcb);
-
-// O/Segment output pins
-#define MCFG_TMS1XXX_WRITE_O_CB(_devcb) \
- downcast<tms1k_base_device &>(*device).set_write_o_callback(DEVCB_##_devcb);
-
-// Use this if the output PLA is unknown:
-// If the microinstructions (or other) PLA is unknown, try using one from another romset.
-#define MCFG_TMS1XXX_OUTPUT_PLA(_pla) \
- downcast<tms1k_base_device &>(*device).set_output_pla(_pla);
-
-// R output pins (also called D on some chips)
-#define MCFG_TMS1XXX_WRITE_R_CB(_devcb) \
- downcast<tms1k_base_device &>(*device).set_write_r_callback(DEVCB_##_devcb);
-
-// OFF request on TMS0980 and up
-#define MCFG_TMS1XXX_POWER_OFF_CB(_devcb) \
- downcast<tms1k_base_device &>(*device).set_power_off_callback(DEVCB_##_devcb);
-
// HALT input pin on CMOS chips (use set_input_line)
#define TMS1XXX_INPUT_LINE_HALT 0
@@ -87,11 +66,20 @@
class tms1k_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_write_o_callback(Object &&cb) { return m_write_o.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_write_r_callback(Object &&cb) { return m_write_r.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_power_off_callback(Object &&cb) { return m_power_off.set_callback(std::forward<Object>(cb)); }
+ // K input pins
+ auto k() { return m_read_k.bind(); }
+
+ // O/Segment output pins
+ auto o() { return m_write_o.bind(); }
+
+ // R output pins (also called D on some chips)
+ auto r() { return m_write_r.bind(); }
+
+ // OFF request on TMS0980 and up
+ auto power_off() { return m_power_off.bind(); }
+
+ // Use this if the output PLA is unknown:
+ // If the microinstructions (or other) PLA is unknown, try using one from another romset.
void set_output_pla(const u16 *output_pla) { m_output_pla_table = output_pla; }
u8 debug_peek_o_index() { return m_o_index; } // get output PLA index, for debugging (don't use in emulation)