diff options
author | 2018-12-07 12:27:29 +0100 | |
---|---|---|
committer | 2018-12-07 12:27:29 +0100 | |
commit | 89d9354184a171c659f32494235c66ee61e07950 (patch) | |
tree | a1db403ca60132267d2bd3fa357faa4ae19bdfef | |
parent | 2032792ba3ab89e9b8bfbd718a134ac278eb15b9 (diff) |
tlcs90, tlcs900: Removed MCFG, nw
-rw-r--r-- | src/devices/cpu/tlcs90/tlcs90.h | 70 | ||||
-rw-r--r-- | src/devices/cpu/tlcs900/tlcs900.cpp | 77 | ||||
-rw-r--r-- | src/devices/cpu/tlcs900/tlcs900.h | 166 | ||||
-rw-r--r-- | src/mame/drivers/dynax.cpp | 26 | ||||
-rw-r--r-- | src/mame/drivers/ngp.cpp | 10 | ||||
-rw-r--r-- | src/mame/drivers/royalmah.cpp | 66 | ||||
-rw-r--r-- | src/mame/drivers/taitopjc.cpp | 22 | ||||
-rw-r--r-- | src/mame/drivers/taitotz.cpp | 67 | ||||
-rw-r--r-- | src/mame/machine/nmk004.cpp | 11 |
9 files changed, 175 insertions, 340 deletions
diff --git a/src/devices/cpu/tlcs90/tlcs90.h b/src/devices/cpu/tlcs90/tlcs90.h index 73a168efb84..ee7fa72f042 100644 --- a/src/devices/cpu/tlcs90/tlcs90.h +++ b/src/devices/cpu/tlcs90/tlcs90.h @@ -5,64 +5,6 @@ #pragma once - -// I/O callbacks -#define MCFG_TLCS90_PORT_P0_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(0, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P1_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(1, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P2_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(2, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P3_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(3, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P4_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(4, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P5_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(5, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P6_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(6, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P7_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(7, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P8_READ_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_read_cb(8, DEVCB_##_devcb); - - -#define MCFG_TLCS90_PORT_P0_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(0, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P1_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(1, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P2_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(2, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P3_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(3, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P4_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(4, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P5_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(5, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P6_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(6, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P7_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(7, DEVCB_##_devcb); - -#define MCFG_TLCS90_PORT_P8_WRITE_CB(_devcb) \ - downcast<tlcs90_device &>(*device).set_port_write_cb(8, DEVCB_##_devcb); - - enum tlcs90_e_irq { INTSWI = 0, INTNMI, INTWD, INT0, INTT0, INTT1, INTT2, INTT3, INTT4, INT1, INTT5, INT2, INTRX, INTTX, INTMAX }; DECLARE_ENUM_INCDEC_OPERATORS(tlcs90_e_irq) @@ -89,16 +31,8 @@ protected: public: // configuration - template<class Object> devcb_base &set_port_read_cb(int port, Object &&object) - { - assert(port >= 0 && port < MAX_PORTS); - return m_port_read_cb[port].set_callback(std::forward<Object>(object)); - } - template<class Object> devcb_base &set_port_write_cb(int port, Object &&object) - { - assert(port >= 0 && port < MAX_PORTS); - return m_port_write_cb[port].set_callback(std::forward<Object>(object)); - } + template <size_t Port> auto port_read() { return m_port_read_cb[Port].bind(); } + template <size_t Port> auto port_write() { return m_port_write_cb[Port].bind(); } protected: // construction/destruction diff --git a/src/devices/cpu/tlcs900/tlcs900.cpp b/src/devices/cpu/tlcs900/tlcs900.cpp index 4ee4b4c3327..dfd6e86e626 100644 --- a/src/devices/cpu/tlcs900/tlcs900.cpp +++ b/src/devices/cpu/tlcs900/tlcs900.cpp @@ -123,14 +123,7 @@ tmp95c063_device::tmp95c063_device(const machine_config &mconfig, const char *ta m_portd_write(*this), m_porte_read(*this), m_porte_write(*this), - m_an0_read(*this), - m_an1_read(*this), - m_an2_read(*this), - m_an3_read(*this), - m_an4_read(*this), - m_an5_read(*this), - m_an6_read(*this), - m_an7_read(*this) + m_an_read{{*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}} { } @@ -1765,42 +1758,42 @@ void tmp95c063_device::tlcs900_handle_ad() switch( m_reg[TMP95C063_ADMOD2] & 0x07 ) { case 0x00: // AN0 - ad_value = m_an0_read(0) & 0x3ff; + ad_value = m_an_read[0](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; break; case 0x01: // AN1 - ad_value = m_an1_read(0) & 0x3ff; + ad_value = m_an_read[1](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; break; case 0x02: // AN2 - ad_value = m_an2_read(0) & 0x3ff; + ad_value = m_an_read[2](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; break; case 0x03: // AN3 - ad_value = m_an3_read(0) & 0x3ff; + ad_value = m_an_read[3](0) & 0x3ff; m_reg[TMP95C063_ADREG37L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG37H] = (ad_value >> 2) & 0xff; break; case 0x04: // AN4 - ad_value = m_an4_read(0) & 0x3ff; + ad_value = m_an_read[4](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; break; case 0x05: // AN5 - ad_value = m_an5_read(0) & 0x3ff; + ad_value = m_an_read[5](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; break; case 0x06: // AN6 - ad_value = m_an6_read(0) & 0x3ff; + ad_value = m_an_read[6](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; break; case 0x07: // AN7 - ad_value = m_an7_read(0) & 0x3ff; + ad_value = m_an_read[7](0) & 0x3ff; m_reg[TMP95C063_ADREG37L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG37H] = (ad_value >> 2) & 0xff; break; @@ -1811,78 +1804,78 @@ void tmp95c063_device::tlcs900_handle_ad() switch( m_reg[TMP95C063_ADMOD2] & 0x07 ) { case 0x00: // AN0 - ad_value = m_an0_read(0) & 0x3ff; + ad_value = m_an_read[0](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; break; case 0x01: // AN0 -> AN1 - ad_value = m_an0_read(0) & 0x3ff; + ad_value = m_an_read[0](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an1_read(0) & 0x3ff; + ad_value = m_an_read[1](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; break; case 0x02: // AN0 -> AN1 -> AN2 - ad_value = m_an0_read(0) & 0x3ff; + ad_value = m_an_read[0](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an1_read(0) & 0x3ff; + ad_value = m_an_read[1](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; - ad_value = m_an2_read(0) & 0x3ff; + ad_value = m_an_read[2](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; break; case 0x03: // AN0 -> AN1 -> AN2 -> AN3 - ad_value = m_an0_read(0) & 0x3ff; + ad_value = m_an_read[0](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an1_read(0) & 0x3ff; + ad_value = m_an_read[1](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; - ad_value = m_an2_read(0) & 0x3ff; + ad_value = m_an_read[2](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; - ad_value = m_an3_read(0) & 0x3ff; + ad_value = m_an_read[3](0) & 0x3ff; m_reg[TMP95C063_ADREG37L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG37H] = (ad_value >> 2) & 0xff; break; case 0x04: // AN4 - ad_value = m_an4_read(0) & 0x3ff; + ad_value = m_an_read[4](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; break; case 0x05: // AN4 -> AN5 - ad_value = m_an4_read(0) & 0x3ff; + ad_value = m_an_read[4](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an5_read(0) & 0x3ff; + ad_value = m_an_read[5](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; break; case 0x06: // AN4 -> AN5 -> AN6 - ad_value = m_an4_read(0) & 0x3ff; + ad_value = m_an_read[4](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an5_read(0) & 0x3ff; + ad_value = m_an_read[5](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; - ad_value = m_an6_read(0) & 0x3ff; + ad_value = m_an_read[6](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; break; case 0x07: // AN4 -> AN5 -> AN6 -> AN7 - ad_value = m_an4_read(0) & 0x3ff; + ad_value = m_an_read[4](0) & 0x3ff; m_reg[TMP95C063_ADREG04L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG04H] = (ad_value >> 2) & 0xff; - ad_value = m_an5_read(0) & 0x3ff; + ad_value = m_an_read[5](0) & 0x3ff; m_reg[TMP95C063_ADREG15L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG15H] = (ad_value >> 2) & 0xff; - ad_value = m_an6_read(0) & 0x3ff; + ad_value = m_an_read[6](0) & 0x3ff; m_reg[TMP95C063_ADREG26L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG26H] = (ad_value >> 2) & 0xff; - ad_value = m_an7_read(0) & 0x3ff; + ad_value = m_an_read[7](0) & 0x3ff; m_reg[TMP95C063_ADREG37L] = (ad_value & 0x3) << 6; m_reg[TMP95C063_ADREG37H] = (ad_value >> 2) & 0xff; break; @@ -1926,14 +1919,10 @@ void tmp95c063_device::device_start() m_portd_write.resolve_safe(); m_porte_read.resolve_safe(0); m_porte_write.resolve_safe(); - m_an0_read.resolve_safe(0); - m_an1_read.resolve_safe(0); - m_an2_read.resolve_safe(0); - m_an3_read.resolve_safe(0); - m_an4_read.resolve_safe(0); - m_an5_read.resolve_safe(0); - m_an6_read.resolve_safe(0); - m_an7_read.resolve_safe(0); + for (int i = 0; i < 8; i++) + { + m_an_read[i].resolve_safe(0); + } } void tmp95c063_device::device_reset() diff --git a/src/devices/cpu/tlcs900/tlcs900.h b/src/devices/cpu/tlcs900/tlcs900.h index 2fd1d37fbaa..2016c00996f 100644 --- a/src/devices/cpu/tlcs900/tlcs900.h +++ b/src/devices/cpu/tlcs900/tlcs900.h @@ -44,8 +44,6 @@ DECLARE_DEVICE_TYPE(TMP95C061, tmp95c061_device) DECLARE_DEVICE_TYPE(TMP95C063, tmp95c063_device) -#define MCFG_TLCS900H_AM8_16( am8_16 ) downcast<tlcs900h_device &>(*device).set_am8_16(am8_16 ); - class tlcs900h_device : public cpu_device { public: @@ -612,39 +610,6 @@ protected: void op_F0(); }; -#define MCFG_TMP95C061_PORT1_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port1_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORT1_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_port1_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT2_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_port2_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT5_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port5_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORT5_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_port5_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT6_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port6_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORT6_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_port6_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT7_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port7_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORT7_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_port7_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT8_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port8_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORT8_WRITE( _port_write ) \ - downcast<mp95c061_device &>(*device).set_port8_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORT9_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_port9_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORTA_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_porta_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORTA_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_porta_write(DEVCB_##_port_write); -#define MCFG_TMP95C061_PORTB_READ( _port_read ) \ - downcast<tmp95c061_device &>(*device).set_portb_read(DEVCB_##_port_read); -#define MCFG_TMP95C061_PORTB_WRITE( _port_write ) \ - downcast<tmp95c061_device &>(*device).set_portb_write(DEVCB_##_port_write); - class tmp95c061_device : public tlcs900h_device { public: @@ -652,21 +617,21 @@ public: tmp95c061_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // configuration helpers - template <class Object> devcb_base &set_port1_read(Object &&cb) { return m_port1_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port1_write(Object &&cb) { return m_port1_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port2_write(Object &&cb) { return m_port2_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port5_read(Object &&cb) { return m_port5_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port5_write(Object &&cb) { return m_port5_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port6_write(Object &&cb) { return m_port6_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port7_read(Object &&cb) { return m_port7_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port7_write(Object &&cb) { return m_port7_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port8_read(Object &&cb) { return m_port8_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port8_write(Object &&cb) { return m_port8_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port9_read(Object &&cb) { return m_port9_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porta_read(Object &&cb) { return m_porta_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porta_write(Object &&cb) { return m_porta_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portb_read(Object &&cb) { return m_portb_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portb_write(Object &&cb) { return m_portb_write.set_callback(std::forward<Object>(cb)); } + auto port1_read() { return m_port1_read.bind(); } + auto port1_write() { return m_port1_write.bind(); } + auto port2_write() { return m_port2_write.bind(); } + auto port5_read() { return m_port5_read.bind(); } + auto port5_write() { return m_port5_write.bind(); } + auto port6_write() { return m_port6_write.bind(); } + auto port7_read() { return m_port7_read.bind(); } + auto port7_write() { return m_port7_write.bind(); } + auto port8_read() { return m_port8_read.bind(); } + auto port8_write() { return m_port8_write.bind(); } + auto port9_read() { return m_port9_read.bind(); } + auto porta_read() { return m_porta_read.bind(); } + auto porta_write() { return m_porta_write.bind(); } + auto portb_read() { return m_portb_read.bind(); } + auto portb_write() { return m_portb_write.bind(); } DECLARE_READ8_MEMBER( internal_r ); DECLARE_WRITE8_MEMBER( internal_w ); @@ -728,45 +693,6 @@ private: }; -#define MCFG_TMP95C063_PORT0_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port0_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT0_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port0_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT1_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port1_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT1_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port1_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT2_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port2_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT2_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port2_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT3_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port3_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT3_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port3_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT4_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port4_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT4_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port4_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT5_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port5_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT5_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port5_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT6_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port6_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT6_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port6_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT7_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port7_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT7_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port7_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT8_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port8_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT8_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port8_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORT9_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_port9_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORT9_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_port9_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORTA_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_porta_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORTA_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_porta_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORTB_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_portb_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORTB_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_portb_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORTC_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_portc_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORTC_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_portc_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORTD_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_portd_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORTD_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_portd_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_PORTE_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_porte_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_PORTE_WRITE( _port_write ) downcast<tmp95c063_device &>(*device).set_porte_write(DEVCB_##_port_write); -#define MCFG_TMP95C063_AN0_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an0_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN1_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an1_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN2_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an2_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN3_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an3_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN4_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an4_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN5_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an5_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN6_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an6_read(DEVCB_##_port_read); -#define MCFG_TMP95C063_AN7_READ( _port_read ) downcast<tmp95c063_device &>(*device).set_an7_read(DEVCB_##_port_read); - class tmp95c063_device : public tlcs900h_device { public: @@ -777,36 +703,29 @@ public: DECLARE_WRITE8_MEMBER( internal_w ); // configuration helpers - template <class Object> devcb_base &set_port1_read(Object &&cb) { return m_port1_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port1_write(Object &&cb) { return m_port1_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port2_write(Object &&cb) { return m_port2_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port5_read(Object &&cb) { return m_port5_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port5_write(Object &&cb) { return m_port5_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port6_read(Object &&cb) { return m_port6_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port6_write(Object &&cb) { return m_port6_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port7_read(Object &&cb) { return m_port7_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port7_write(Object &&cb) { return m_port7_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port8_read(Object &&cb) { return m_port8_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port8_write(Object &&cb) { return m_port8_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port9_read(Object &&cb) { return m_port9_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_port9_write(Object &&cb) { return m_port9_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porta_read(Object &&cb) { return m_porta_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porta_write(Object &&cb) { return m_porta_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portb_read(Object &&cb) { return m_portb_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portb_write(Object &&cb) { return m_portb_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portc_read(Object &&cb) { return m_portc_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portd_read(Object &&cb) { return m_portd_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_portd_write(Object &&cb) { return m_portd_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porte_read(Object &&cb) { return m_porte_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_porte_write(Object &&cb) { return m_porte_write.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an0_read(Object &&cb) { return m_an0_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an1_read(Object &&cb) { return m_an1_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an2_read(Object &&cb) { return m_an2_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an3_read(Object &&cb) { return m_an3_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an4_read(Object &&cb) { return m_an4_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an5_read(Object &&cb) { return m_an5_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an6_read(Object &&cb) { return m_an6_read.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_an7_read(Object &&cb) { return m_an7_read.set_callback(std::forward<Object>(cb)); } + auto port1_read() { return m_port1_read.bind(); } + auto port1_write() { return m_port1_write.bind(); } + auto port2_write() { return m_port2_write.bind(); } + auto port5_read() { return m_port5_read.bind(); } + auto port5_write() { return m_port5_write.bind(); } + auto port6_read() { return m_port6_read.bind(); } + auto port6_write() { return m_port6_write.bind(); } + auto port7_read() { return m_port7_read.bind(); } + auto port7_write() { return m_port7_write.bind(); } + auto port8_read() { return m_port8_read.bind(); } + auto port8_write() { return m_port8_write.bind(); } + auto port9_read() { return m_port9_read.bind(); } + auto port9_write() { return m_port9_write.bind(); } + auto porta_read() { return m_porta_read.bind(); } + auto porta_write() { return m_porta_write.bind(); } + auto portb_read() { return m_portb_read.bind(); } + auto portb_write() { return m_portb_write.bind(); } + auto portc_read() { return m_portc_read.bind(); } + auto portd_read() { return m_portd_read.bind(); } + auto portd_write() { return m_portd_write.bind(); } + auto porte_read() { return m_porte_read.bind(); } + auto porte_write() { return m_porte_write.bind(); } + template <size_t Bit> auto an_read() { return m_an_read[Bit].bind(); } void tmp95c063_mem16(address_map &map); void tmp95c063_mem8(address_map &map); @@ -869,14 +788,7 @@ private: devcb_write8 m_porte_write; // analogue inputs, sampled at 10 bits - devcb_read16 m_an0_read; - devcb_read16 m_an1_read; - devcb_read16 m_an2_read; - devcb_read16 m_an3_read; - devcb_read16 m_an4_read; - devcb_read16 m_an5_read; - devcb_read16 m_an6_read; - devcb_read16 m_an7_read; + devcb_read16 m_an_read[8]; }; #endif // MAME_CPU_TLCS900_TLCS900_H diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp index d1514c1291e..39200069a7e 100644 --- a/src/mame/drivers/dynax.cpp +++ b/src/mame/drivers/dynax.cpp @@ -4853,16 +4853,16 @@ WRITE_LINE_MEMBER(dynax_state::tenkai_blitter_ack_w) MACHINE_CONFIG_START(dynax_state::tenkai) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",TMP91640, 21472700 / 2) - MCFG_DEVICE_PROGRAM_MAP(tenkai_map) - MCFG_TLCS90_PORT_P3_READ_CB(READ8(*this, dynax_state, tenkai_p3_r)) - MCFG_TLCS90_PORT_P3_WRITE_CB(WRITE8(*this, dynax_state, tenkai_p3_w)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, dynax_state, tenkai_p4_w)) - MCFG_TLCS90_PORT_P5_READ_CB(READ8(*this, dynax_state, tenkai_p5_r)) - MCFG_TLCS90_PORT_P6_WRITE_CB(WRITE8(*this, dynax_state, tenkai_p6_w)) - MCFG_TLCS90_PORT_P7_WRITE_CB(WRITE8(*this, dynax_state, tenkai_p7_w)) - MCFG_TLCS90_PORT_P8_READ_CB(READ8(*this, dynax_state, tenkai_p8_r)) - MCFG_TLCS90_PORT_P8_WRITE_CB(WRITE8(*this, dynax_state, tenkai_p8_w)) + tmp91640_device &tmp(TMP91640(config, m_maincpu, 21472700 / 2)); + tmp.set_addrmap(AS_PROGRAM, &dynax_state::tenkai_map); + tmp.port_read<3>().set(FUNC(dynax_state::tenkai_p3_r)); + tmp.port_write<3>().set(FUNC(dynax_state::tenkai_p3_w)); + tmp.port_write<4>().set(FUNC(dynax_state::tenkai_p4_w)); + tmp.port_read<5>().set(FUNC(dynax_state::tenkai_p5_r)); + tmp.port_write<6>().set(FUNC(dynax_state::tenkai_p6_w)); + tmp.port_write<7>().set(FUNC(dynax_state::tenkai_p7_w)); + tmp.port_read<8>().set(FUNC(dynax_state::tenkai_p8_r)); + tmp.port_write<8>().set(FUNC(dynax_state::tenkai_p8_w)); ADDRESS_MAP_BANK(config, m_bankdev).set_map(&dynax_state::tenkai_banked_map).set_data_width(8).set_addr_width(20).set_stride(0x8000); @@ -4933,9 +4933,9 @@ void dynax_state::mjreach(machine_config &config) MACHINE_CONFIG_START(dynax_state::gekisha) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",TMP90841, XTAL(10'000'000) ) // ? - MCFG_DEVICE_PROGRAM_MAP(gekisha_map) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, dynax_state, gekisha_p4_w)) + tmp90841_device &tmp(TMP90841(config, m_maincpu, XTAL(10'000'000))); // ? + tmp.set_addrmap(AS_PROGRAM, &dynax_state::gekisha_map); + tmp.port_write<4>().set(FUNC(dynax_state::gekisha_p4_w)); ADDRESS_MAP_BANK(config, m_bankdev).set_map(&dynax_state::gekisha_banked_map).set_data_width(8).set_addr_width(17).set_stride(0x8000); diff --git a/src/mame/drivers/ngp.cpp b/src/mame/drivers/ngp.cpp index e2be1d57e41..287b7c884e3 100644 --- a/src/mame/drivers/ngp.cpp +++ b/src/mame/drivers/ngp.cpp @@ -177,7 +177,7 @@ private: uint8_t command[2]; } m_flash_chip[2]; - required_device<cpu_device> m_maincpu; + required_device<tmp95c061_device> m_maincpu; required_device<cpu_device> m_z80; required_device<t6w28_device> m_t6w28; required_device<dac_byte_interface> m_ldac; @@ -828,10 +828,10 @@ void ngp_state::nvram_write(emu_file &file) MACHINE_CONFIG_START(ngp_state::ngp_common) - MCFG_DEVICE_ADD( "maincpu", TMP95C061, 6.144_MHz_XTAL ) - MCFG_TLCS900H_AM8_16(1) - MCFG_DEVICE_PROGRAM_MAP( ngp_mem) - MCFG_TMP95C061_PORTA_WRITE(WRITE8(*this, ngp_state,ngp_tlcs900_porta)) + TMP95C061(config, m_maincpu, 6.144_MHz_XTAL); + m_maincpu->set_am8_16(1); + m_maincpu->set_addrmap(AS_PROGRAM, &ngp_state::ngp_mem); + m_maincpu->porta_write().set(FUNC(ngp_state::ngp_tlcs900_porta)); MCFG_DEVICE_ADD( "soundcpu", Z80, 6.144_MHz_XTAL/2 ) MCFG_DEVICE_PROGRAM_MAP( z80_mem) diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp index 166826417a1..3c81e563326 100644 --- a/src/mame/drivers/royalmah.cpp +++ b/src/mame/drivers/royalmah.cpp @@ -3674,16 +3674,16 @@ void royalmah_state::janptr96(machine_config &config) MACHINE_CONFIG_START(royalmah_state::mjifb) mjderngr(config); - MCFG_DEVICE_REPLACE("maincpu",TMP90841, 8000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(mjifb_map) - MCFG_TLCS90_PORT_P3_READ_CB(READ8(*this, royalmah_state, mjifb_p3_r)) - MCFG_TLCS90_PORT_P3_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p3_w)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p4_w)) - MCFG_TLCS90_PORT_P5_READ_CB(READ8(*this, royalmah_state, mjifb_p5_r)) - MCFG_TLCS90_PORT_P6_READ_CB(READ8(*this, royalmah_state, mjifb_p6_r)) - MCFG_TLCS90_PORT_P7_READ_CB(READ8(*this, royalmah_state, mjifb_p7_r)) - MCFG_TLCS90_PORT_P8_READ_CB(READ8(*this, royalmah_state, mjifb_p8_r)) - MCFG_TLCS90_PORT_P8_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p8_w)) + tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ + tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjifb_map); + tmp.port_read<3>().set(FUNC(royalmah_state::mjifb_p3_r)); + tmp.port_write<3>().set(FUNC(royalmah_state::mjifb_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_state::mjifb_p4_w)); + tmp.port_read<5>().set(FUNC(royalmah_state::mjifb_p5_r)); + tmp.port_read<6>().set(FUNC(royalmah_state::mjifb_p6_r)); + tmp.port_read<7>().set(FUNC(royalmah_state::mjifb_p7_r)); + tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); + tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) @@ -3693,16 +3693,16 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(royalmah_state::mjdejavu) mjderngr(config); - MCFG_DEVICE_REPLACE("maincpu",TMP90841, 8000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(mjdejavu_map) - MCFG_TLCS90_PORT_P3_READ_CB(READ8(*this, royalmah_state, mjifb_p3_r)) - MCFG_TLCS90_PORT_P3_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p3_w)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p4_w)) - MCFG_TLCS90_PORT_P5_READ_CB(READ8(*this, royalmah_state, mjifb_p5_r)) - MCFG_TLCS90_PORT_P6_READ_CB(READ8(*this, royalmah_state, mjifb_p6_r)) - MCFG_TLCS90_PORT_P7_READ_CB(READ8(*this, royalmah_state, mjifb_p7_r)) - MCFG_TLCS90_PORT_P8_READ_CB(READ8(*this, royalmah_state, mjifb_p8_r)) - MCFG_TLCS90_PORT_P8_WRITE_CB(WRITE8(*this, royalmah_state, mjifb_p8_w)) + tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 8000000)); /* ? */ + tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjdejavu_map); + tmp.port_read<3>().set(FUNC(royalmah_state::mjifb_p3_r)); + tmp.port_write<3>().set(FUNC(royalmah_state::mjifb_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_state::mjifb_p4_w)); + tmp.port_read<5>().set(FUNC(royalmah_state::mjifb_p5_r)); + tmp.port_read<6>().set(FUNC(royalmah_state::mjifb_p6_r)); + tmp.port_read<7>().set(FUNC(royalmah_state::mjifb_p7_r)); + tmp.port_read<8>().set(FUNC(royalmah_state::mjifb_p8_r)); + tmp.port_write<8>().set(FUNC(royalmah_state::mjifb_p8_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) @@ -3712,10 +3712,10 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(royalmah_state::mjtensin) mjderngr(config); - MCFG_DEVICE_REPLACE("maincpu",TMP90841, 12000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(mjtensin_map) - MCFG_TLCS90_PORT_P3_READ_CB(READ8(*this, royalmah_state, mjtensin_p3_r)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, royalmah_state, mjtensin_p4_w)) + tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ + tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjtensin_map); + tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r)); + tmp.port_write<4>().set(FUNC(royalmah_state::mjtensin_p4_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) @@ -3727,10 +3727,10 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(royalmah_state::cafetime) mjderngr(config); - MCFG_DEVICE_REPLACE("maincpu",TMP90841, 12000000) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(cafetime_map) - MCFG_TLCS90_PORT_P3_WRITE_CB(WRITE8(*this, royalmah_state, cafetime_p3_w)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, royalmah_state, cafetime_p4_w)) + tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, 12000000)); /* ? */ + tmp.set_addrmap(AS_PROGRAM, &royalmah_state::cafetime_map); + tmp.port_write<3>().set(FUNC(royalmah_state::cafetime_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_state::cafetime_p4_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) @@ -3742,11 +3742,11 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(royalmah_state::mjvegasa) mjderngr(config); - MCFG_DEVICE_REPLACE("maincpu",TMP90841, XTAL(8'000'000)) /* ? */ - MCFG_DEVICE_PROGRAM_MAP(mjvegasa_map) - MCFG_TLCS90_PORT_P3_READ_CB(READ8(*this, royalmah_state, mjtensin_p3_r)) - MCFG_TLCS90_PORT_P3_WRITE_CB(WRITE8(*this, royalmah_state, mjvegasa_p3_w)) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, royalmah_state, mjvegasa_p4_w)) + tmp90841_device &tmp(TMP90841(config.replace(), m_maincpu, XTAL(8'000'000))); /* ? */ + tmp.set_addrmap(AS_PROGRAM, &royalmah_state::mjvegasa_map); + tmp.port_read<3>().set(FUNC(royalmah_state::mjtensin_p3_r)); + tmp.port_write<3>().set(FUNC(royalmah_state::mjvegasa_p3_w)); + tmp.port_write<4>().set(FUNC(royalmah_state::mjvegasa_p4_w)); MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp index 1587483a60d..7882443ea3a 100644 --- a/src/mame/drivers/taitopjc.cpp +++ b/src/mame/drivers/taitopjc.cpp @@ -117,7 +117,7 @@ public: private: required_device<cpu_device> m_maincpu; - required_device<cpu_device> m_iocpu; + required_device<tmp95c063_device> m_iocpu; required_device<cpu_device> m_soundcpu; required_device<cpu_device> m_dsp; required_device<tc0780fpa_device> m_tc0780fpa; @@ -775,16 +775,16 @@ MACHINE_CONFIG_START(taitopjc_state::taitopjc) MCFG_DEVICE_PROGRAM_MAP(ppc603e_mem) /* TMP95C063F I/O CPU */ - MCFG_DEVICE_ADD("iocpu", TMP95C063, 25000000) - MCFG_TMP95C063_PORT5_READ(IOPORT("INPUTS1")) - MCFG_TMP95C063_PORTD_READ(IOPORT("INPUTS2")) - MCFG_TMP95C063_PORTE_READ(IOPORT("INPUTS3")) - MCFG_TMP95C063_AN0_READ(IOPORT("ANALOG1")) - MCFG_TMP95C063_AN1_READ(IOPORT("ANALOG2")) - MCFG_TMP95C063_AN2_READ(IOPORT("ANALOG3")) - MCFG_TMP95C063_AN3_READ(IOPORT("ANALOG4")) - MCFG_DEVICE_PROGRAM_MAP(tlcs900h_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitopjc_state, taitopjc_vbi) + TMP95C063(config, m_iocpu, 25000000); + m_iocpu->port5_read().set_ioport("INPUTS1"); + m_iocpu->portd_read().set_ioport("INPUTS2"); + m_iocpu->porte_read().set_ioport("INPUTS3"); + m_iocpu->an_read<0>().set_ioport("ANALOG1"); + m_iocpu->an_read<1>().set_ioport("ANALOG2"); + m_iocpu->an_read<2>().set_ioport("ANALOG3"); + m_iocpu->an_read<3>().set_ioport("ANALOG4"); + m_iocpu->set_addrmap(AS_PROGRAM, &taitopjc_state::tlcs900h_mem); + m_iocpu->set_vblank_int("screen", FUNC(taitopjc_state::taitopjc_vbi)); /* TMS320C53 DSP */ MCFG_DEVICE_ADD("dsp", TMS32053, 40000000) diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp index 9c7f95e4deb..b9df8ee4109 100644 --- a/src/mame/drivers/taitotz.cpp +++ b/src/mame/drivers/taitotz.cpp @@ -566,7 +566,7 @@ public: private: required_device<ppc_device> m_maincpu; - required_device<cpu_device> m_iocpu; + required_device<tmp95c063_device> m_iocpu; required_shared_ptr<uint64_t> m_work_ram; required_shared_ptr<uint16_t> m_mbox_ram; required_device<ata_interface_device> m_ata; @@ -2570,53 +2570,52 @@ WRITE_LINE_MEMBER(taitotz_state::ide_interrupt) m_iocpu->set_input_line(TLCS900_INT2, state); } -MACHINE_CONFIG_START(taitotz_state::taitotz) +void taitotz_state::taitotz(machine_config &config) +{ /* IBM EMPPC603eBG-100 */ - MCFG_DEVICE_ADD("maincpu", PPC603E, 100000000) - MCFG_PPC_BUS_FREQUENCY(XTAL(66'666'700)) /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ - MCFG_DEVICE_PROGRAM_MAP(ppc603e_mem) + PPC603E(config, m_maincpu, 100000000); + m_maincpu->set_bus_frequency(XTAL(66'666'700)); /* Multiplier 1.5, Bus = 66MHz, Core = 100MHz */ + m_maincpu->set_addrmap(AS_PROGRAM, &taitotz_state::ppc603e_mem); /* TMP95C063F I/O CPU */ - MCFG_DEVICE_ADD("iocpu", TMP95C063, 25000000) - MCFG_TMP95C063_PORT9_READ(IOPORT("INPUTS1")) - MCFG_TMP95C063_PORTB_READ(IOPORT("INPUTS2")) - MCFG_TMP95C063_PORTD_READ(IOPORT("INPUTS3")) - MCFG_TMP95C063_PORTE_READ(IOPORT("INPUTS4")) - MCFG_TMP95C063_AN0_READ(IOPORT("ANALOG1")) - MCFG_TMP95C063_AN1_READ(IOPORT("ANALOG2")) - MCFG_TMP95C063_AN2_READ(IOPORT("ANALOG3")) - MCFG_TMP95C063_AN3_READ(IOPORT("ANALOG4")) - MCFG_TMP95C063_AN4_READ(IOPORT("ANALOG5")) - MCFG_TMP95C063_AN5_READ(IOPORT("ANALOG6")) - MCFG_TMP95C063_AN6_READ(IOPORT("ANALOG7")) - MCFG_TMP95C063_AN7_READ(IOPORT("ANALOG8")) - - MCFG_DEVICE_PROGRAM_MAP(tlcs900h_mem) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", taitotz_state, taitotz_vbi) + TMP95C063(config, m_iocpu, 25000000); + m_iocpu->port9_read().set_ioport("INPUTS1"); + m_iocpu->portb_read().set_ioport("INPUTS2"); + m_iocpu->portd_read().set_ioport("INPUTS3"); + m_iocpu->porte_read().set_ioport("INPUTS4"); + m_iocpu->an_read<0>().set_ioport("ANALOG1"); + m_iocpu->an_read<1>().set_ioport("ANALOG2"); + m_iocpu->an_read<2>().set_ioport("ANALOG3"); + m_iocpu->an_read<3>().set_ioport("ANALOG4"); + m_iocpu->an_read<4>().set_ioport("ANALOG5"); + m_iocpu->an_read<5>().set_ioport("ANALOG6"); + m_iocpu->an_read<6>().set_ioport("ANALOG7"); + m_iocpu->an_read<7>().set_ioport("ANALOG8"); + m_iocpu->set_addrmap(AS_PROGRAM, &taitotz_state::tlcs900h_mem); + m_iocpu->set_vblank_int("screen", FUNC(taitotz_state::taitotz_vbi)); /* MN1020819DA sound CPU */ - MCFG_QUANTUM_TIME(attotime::from_hz(120)) + config.m_minimum_quantum = attotime::from_hz(120); ata_interface_device &ata(ATA_INTERFACE(config, "ata").options(ata_devices, "hdd", nullptr, true)); ata.irq_handler().set(FUNC(taitotz_state::ide_interrupt)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) - MCFG_SCREEN_SIZE(512, 384) - MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) - MCFG_SCREEN_UPDATE_DRIVER(taitotz_state, screen_update_taitotz) - -MACHINE_CONFIG_END + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(60); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); + m_screen->set_size(512, 384); + m_screen->set_visarea(0, 511, 0, 383); + m_screen->set_screen_update(FUNC(taitotz_state::screen_update_taitotz)); +} -MACHINE_CONFIG_START(taitotz_state::landhigh) +void taitotz_state::landhigh(machine_config &config) +{ taitotz(config); - MCFG_DEVICE_MODIFY("iocpu") - MCFG_DEVICE_PROGRAM_MAP(landhigh_tlcs900h_mem) -MACHINE_CONFIG_END + m_iocpu->set_addrmap(AS_PROGRAM, &taitotz_state::landhigh_tlcs900h_mem); +} // Init for BIOS v1.52 diff --git a/src/mame/machine/nmk004.cpp b/src/mame/machine/nmk004.cpp index bc3ac8c0d1a..976c1ed6ec0 100644 --- a/src/mame/machine/nmk004.cpp +++ b/src/mame/machine/nmk004.cpp @@ -110,11 +110,12 @@ void nmk004_device::device_start() //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(nmk004_device::device_add_mconfig) - MCFG_DEVICE_ADD("mcu",TMP90840, DERIVED_CLOCK(1,1)) // Toshiba TMP90C840AF in QFP64 package with 8Kbyte internal ROM - MCFG_DEVICE_PROGRAM_MAP(nmk004_sound_mem_map) - MCFG_TLCS90_PORT_P4_WRITE_CB(WRITE8(*this, nmk004_device, nmk004_port4_w)) -MACHINE_CONFIG_END +void nmk004_device::device_add_mconfig(machine_config &config) +{ + TMP90840(config, m_cpu, DERIVED_CLOCK(1,1)); // Toshiba TMP90C840AF in QFP64 package with 8Kbyte internal ROM + m_cpu->set_addrmap(AS_PROGRAM, &nmk004_device::nmk004_sound_mem_map); + m_cpu->port_write<4>().set(FUNC(nmk004_device::nmk004_port4_w)); +} //------------------------------------------------- // device_rom_region - return a pointer to the |