diff options
Diffstat (limited to 'src/devices/cpu/tms1000/tms1k_base.h')
-rw-r--r-- | src/devices/cpu/tms1000/tms1k_base.h | 40 |
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) |