summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/tlcs900/tlcs900.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/tlcs900/tlcs900.h')
-rw-r--r--src/devices/cpu/tlcs900/tlcs900.h166
1 files changed, 39 insertions, 127 deletions
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