From 9d3ee528669a2389a1622f78bfaedd9756a794a1 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Mon, 28 May 2018 11:21:54 +0200 Subject: cdi, indy_indigo2: Eliminated customized MCFG_DEVICE_ADD macros. (nw) --- src/mame/drivers/cdi.cpp | 29 +++++++++++++---------------- src/mame/drivers/indy_indigo2.cpp | 18 +++++++----------- src/mame/machine/cdi070.cpp | 4 ++-- src/mame/machine/cdi070.h | 24 +++++++++--------------- src/mame/machine/cdicdic.cpp | 4 ++-- src/mame/machine/cdicdic.h | 12 +----------- src/mame/machine/cdislave.cpp | 4 ++-- src/mame/machine/cdislave.h | 13 ++----------- src/mame/machine/hal2.h | 3 --- src/mame/machine/hpc3.h | 29 +++++++++++++---------------- src/mame/machine/ioc2.h | 25 +++++++++++++++---------- src/mame/video/mcd212.cpp | 4 ++-- src/mame/video/mcd212.h | 12 +----------- src/mame/video/newport.h | 6 ------ 14 files changed, 69 insertions(+), 118 deletions(-) diff --git a/src/mame/drivers/cdi.cpp b/src/mame/drivers/cdi.cpp index 013aa910bfc..43558cba3c4 100644 --- a/src/mame/drivers/cdi.cpp +++ b/src/mame/drivers/cdi.cpp @@ -751,8 +751,8 @@ MACHINE_CONFIG_START(cdi_state::cdimono1_base) MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_DEVICE_PROGRAM_MAP(cdimono1_mem) - MCFG_MCD212_ADD("mcd212") - MCFG_MCD212_SET_SCREEN("screen") + MCFG_DEVICE_ADD("mcd212", MCD212, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -772,11 +772,10 @@ MACHINE_CONFIG_START(cdi_state::cdimono1_base) MCFG_DEFAULT_LAYOUT(layout_cdi) - MCFG_CDI68070_ADD("scc68070") - MCFG_CDI68070_CPU_TAG("maincpu") + MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") - MCFG_CDICDIC_ADD("cdic") - MCFG_CDISLAVE_ADD("slave_hle") + MCFG_DEVICE_ADD("cdic", CDI_CDIC, 0) + MCFG_DEVICE_ADD("slave_hle", CDI_SLAVE, 0) /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); @@ -800,8 +799,8 @@ MACHINE_CONFIG_START(cdi_state::cdimono2) MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_DEVICE_PROGRAM_MAP(cdimono2_mem) - MCFG_MCD212_ADD("mcd212") - MCFG_MCD212_SET_SCREEN("screen") + MCFG_DEVICE_ADD("mcd212", MCD212, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -823,14 +822,13 @@ MACHINE_CONFIG_START(cdi_state::cdimono2) MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) - MCFG_CDI68070_ADD("scc68070") - MCFG_CDI68070_CPU_TAG("maincpu") + MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem) MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ MCFG_DEVICE_PROGRAM_MAP(cdimono2_slave_mem) - MCFG_CDROM_ADD( "cdrom" ) + MCFG_CDROM_ADD("cdrom") MCFG_CDROM_INTERFACE("cdi_cdrom") MCFG_SOFTWARE_LIST_ADD("cd_list","cdi") MCFG_SOFTWARE_LIST_FILTER("cd_list","!DVC") @@ -849,15 +847,15 @@ MACHINE_CONFIG_START(cdi_state::cdimono2) MCFG_SOUND_ROUTE( ALL_OUTPUTS, "lspeaker", 1.0 ) MCFG_SOUND_ROUTE( ALL_OUTPUTS, "rspeaker", 1.0 ) - MCFG_MK48T08_ADD( "mk48t08" ) + MCFG_MK48T08_ADD("mk48t08") MACHINE_CONFIG_END MACHINE_CONFIG_START(cdi_state::cdi910) MCFG_DEVICE_ADD("maincpu", SCC68070, CLOCK_A/2) MCFG_DEVICE_PROGRAM_MAP(cdi910_mem) - MCFG_MCD212_ADD("mcd212") - MCFG_MCD212_SET_SCREEN("screen") + MCFG_DEVICE_ADD("mcd212", MCD212, 0) + MCFG_VIDEO_SET_SCREEN("screen") MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) @@ -879,8 +877,7 @@ MACHINE_CONFIG_START(cdi_state::cdi910) MCFG_MACHINE_RESET_OVERRIDE( cdi_state, cdimono2 ) - MCFG_CDI68070_ADD("scc68070") - MCFG_CDI68070_CPU_TAG("maincpu") + MCFG_DEVICE_ADD("scc68070", CDI_68070, 0, "maincpu") MCFG_DEVICE_ADD("servo", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ MCFG_DEVICE_PROGRAM_MAP(cdimono2_servo_mem) MCFG_DEVICE_ADD("slave", M68HC05EG, 2000000) /* Unknown clock speed, docs say 2MHz internal clock */ diff --git a/src/mame/drivers/indy_indigo2.cpp b/src/mame/drivers/indy_indigo2.cpp index 77d2f23f5ec..e3b450449c4 100644 --- a/src/mame/drivers/indy_indigo2.cpp +++ b/src/mame/drivers/indy_indigo2.cpp @@ -75,7 +75,7 @@ public: , m_scsi(*this, "wd33c93") , m_hal2(*this, HAL2_TAG) , m_hpc3(*this, HPC3_TAG) - , m_ioc2(*this, "ioc2") + , m_ioc2(*this, IOC2_TAG) , m_rtc(*this, RTC_TAG) { } @@ -95,6 +95,7 @@ public: static const char* HAL2_TAG; static const char* HPC3_TAG; + static const char* IOC2_TAG; static const char* RTC_TAG; protected: @@ -114,6 +115,7 @@ protected: /*static*/ const char* ip22_state::HAL2_TAG = "hal2"; /*static*/ const char* ip22_state::HPC3_TAG = "hpc3"; +/*static*/ const char* ip22_state::IOC2_TAG = "ioc2"; /*static*/ const char* ip22_state::RTC_TAG = "rtc"; #define VERBOSE_LEVEL ( 0 ) @@ -221,7 +223,7 @@ MACHINE_CONFIG_START(ip22_state::ip225015) MCFG_PALETTE_ADD("palette", 65536) - MCFG_NEWPORT_ADD("newport") + MCFG_DEVICE_ADD("newport", NEWPORT_VIDEO, 0) MCFG_DEVICE_ADD("sgi_mc", SGI_MC, 0) @@ -241,15 +243,9 @@ MACHINE_CONFIG_START(ip22_state::ip225015) MCFG_LEGACY_SCSI_PORT("scsi") MCFG_WD33C93_IRQ_CB(WRITELINE(HPC3_TAG, hpc3_device, scsi_irq)) - MCFG_SGI_HAL2_ADD(HAL2_TAG) - - MCFG_IOC2_GUINNESS_ADD("ioc2") - MCFG_IOC2_CPU("maincpu") - - MCFG_SGI_HPC3_ADD(HPC3_TAG) - MCFG_HPC3_CPU_TAG("maincpu") - MCFG_HPC3_SCSI_TAG("wd33c93") - MCFG_HPC3_IOC2_TAG("ioc2") + MCFG_DEVICE_ADD(HAL2_TAG, SGI_HAL2, 0) + MCFG_DEVICE_ADD(IOC2_TAG, SGI_IOC2_GUINNESS, 0, "maincpu") + MCFG_DEVICE_ADD(HPC3_TAG, SGI_HPC3, 0, "maincpu", "wd33c93", "ioc2") MCFG_DEVICE_ADD(RTC_TAG, DS1386_8K, 32768) MACHINE_CONFIG_END diff --git a/src/mame/machine/cdi070.cpp b/src/mame/machine/cdi070.cpp index c889da5c9e2..9387dcb2327 100644 --- a/src/mame/machine/cdi070.cpp +++ b/src/mame/machine/cdi070.cpp @@ -28,7 +28,7 @@ TODO: #include "cpu/m68000/m68000.h" // device type definition -DEFINE_DEVICE_TYPE(MACHINE_CDI68070, cdi68070_device, "cdi68070", "CDI68070") +DEFINE_DEVICE_TYPE(CDI_68070, cdi68070_device, "cdi68070", "CDI68070") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -56,7 +56,7 @@ static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, co //------------------------------------------------- cdi68070_device::cdi68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_CDI68070, tag, owner, clock) + : device_t(mconfig, CDI_68070, tag, owner, clock) , m_maincpu(*this, finder_base::DUMMY_TAG) { } diff --git a/src/mame/machine/cdi070.h b/src/mame/machine/cdi070.h index eb47209ccb7..56ac7c1751a 100644 --- a/src/mame/machine/cdi070.h +++ b/src/mame/machine/cdi070.h @@ -122,18 +122,6 @@ TODO: #define CCR_INE 0x08 #define CCR_IPL 0x07 -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_CDI68070_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MACHINE_CDI68070, 0) -#define MCFG_CDI68070_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, MACHINE_CDI68070, 0) -#define MCFG_CDI68070_CPU_TAG(_tag) \ - downcast(*device).set_cpu_tag(_tag); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -143,10 +131,16 @@ TODO: class cdi68070_device : public device_t { public: + template void set_cpu_tag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } + // construction/destruction - cdi68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template cdi68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag) + : cdi68070_device(mconfig, tag, owner, clock) + { + set_cpu_tag(std::forward(cpu_tag)); + } - template void set_cpu_tag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } + cdi68070_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // external callbacks void uart_rx(uint8_t data); @@ -305,6 +299,6 @@ private: }; // device type definition -DECLARE_DEVICE_TYPE(MACHINE_CDI68070, cdi68070_device) +DECLARE_DEVICE_TYPE(CDI_68070, cdi68070_device) #endif // MAME_MACHINE_CDI070_H diff --git a/src/mame/machine/cdicdic.cpp b/src/mame/machine/cdicdic.cpp index c3d2756f5e5..ebd9851eea0 100644 --- a/src/mame/machine/cdicdic.cpp +++ b/src/mame/machine/cdicdic.cpp @@ -31,7 +31,7 @@ TODO: // device type definition -DEFINE_DEVICE_TYPE(MACHINE_CDICDIC, cdicdic_device, "cdicdic", "CDICDIC") +DEFINE_DEVICE_TYPE(CDI_CDIC, cdicdic_device, "cdicdic", "CDICDIC") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -1157,7 +1157,7 @@ WRITE16_MEMBER( cdicdic_device::regs_w ) //------------------------------------------------- cdicdic_device::cdicdic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_CDICDIC, tag, owner, clock) + : device_t(mconfig, CDI_CDIC, tag, owner, clock) , m_maincpu(*this, ":maincpu") , m_dmadac(*this, ":dac%u", 1U) , m_scc(*this, ":scc68070") diff --git a/src/mame/machine/cdicdic.h b/src/mame/machine/cdicdic.h index 1c527a8a78e..745f8bcbcec 100644 --- a/src/mame/machine/cdicdic.h +++ b/src/mame/machine/cdicdic.h @@ -33,16 +33,6 @@ TODO: #include "cdrom.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_CDICDIC_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MACHINE_CDICDIC, 0) -#define MCFG_CDICDIC_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, MACHINE_CDICDIC, 0) - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -124,6 +114,6 @@ private: }; // device type definition -DECLARE_DEVICE_TYPE(MACHINE_CDICDIC, cdicdic_device) +DECLARE_DEVICE_TYPE(CDI_CDIC, cdicdic_device) #endif // MAME_MACHINE_CDICDIC_H diff --git a/src/mame/machine/cdislave.cpp b/src/mame/machine/cdislave.cpp index 028f7a50261..aac788e34e4 100644 --- a/src/mame/machine/cdislave.cpp +++ b/src/mame/machine/cdislave.cpp @@ -30,7 +30,7 @@ TODO: // device type definition -DEFINE_DEVICE_TYPE(CDISLAVE, cdislave_device, "cdislave", "CD-i Mono-I Slave") +DEFINE_DEVICE_TYPE(CDI_SLAVE, cdislave_device, "cdislave", "CD-i Mono-I Slave") #if ENABLE_VERBOSE_LOG @@ -433,7 +433,7 @@ WRITE16_MEMBER( cdislave_device::slave_w ) //------------------------------------------------- cdislave_device::cdislave_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, CDISLAVE, tag, owner, clock) + : device_t(mconfig, CDI_SLAVE, tag, owner, clock) , m_maincpu(*this, ":maincpu") , m_dmadac(*this, ":dac%u", 1U) , m_mousex(*this, "MOUSEX") diff --git a/src/mame/machine/cdislave.h b/src/mame/machine/cdislave.h index 46f4a97715f..1a38b50afed 100644 --- a/src/mame/machine/cdislave.h +++ b/src/mame/machine/cdislave.h @@ -28,15 +28,6 @@ TODO: #include "sound/dmadac.h" -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_CDISLAVE_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, CDISLAVE, 0) -#define MCFG_CDISLAVE_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, CDISLAVE, 0) - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -115,6 +106,6 @@ private: // device type definition -DECLARE_DEVICE_TYPE(CDISLAVE, cdislave_device) +DECLARE_DEVICE_TYPE(CDI_SLAVE, cdislave_device) -#endif // __CDISLAVE_H__ +#endif // MAME_MACHINE_CDISLAVE_H diff --git a/src/mame/machine/hal2.h b/src/mame/machine/hal2.h index 4a0025c60b0..79ca3097cbf 100644 --- a/src/mame/machine/hal2.h +++ b/src/mame/machine/hal2.h @@ -11,9 +11,6 @@ #pragma once -#define MCFG_SGI_HAL2_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SGI_HAL2, 0) - class hal2_device : public device_t { public: diff --git a/src/mame/machine/hpc3.h b/src/mame/machine/hpc3.h index b8553738b3a..ea4f6a98509 100644 --- a/src/mame/machine/hpc3.h +++ b/src/mame/machine/hpc3.h @@ -15,26 +15,23 @@ #include "machine/ioc2.h" #include "machine/wd33c93.h" -#define MCFG_SGI_HPC3_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SGI_HPC3, 0) - -#define MCFG_HPC3_CPU_TAG(cpu_tag) \ - downcast(*device).set_cpu_tag(cpu_tag); - -#define MCFG_HPC3_SCSI_TAG(scsi_tag) \ - downcast(*device).set_scsi_tag(scsi_tag); - -#define MCFG_HPC3_IOC2_TAG(ioc2_tag) \ - downcast(*device).set_ioc2_tag(ioc2_tag); - class hpc3_device : public device_t { public: - hpc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template void set_cpu_tag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } + template void set_scsi_tag(T &&tag) { m_wd33c93.set_tag(std::forward(tag)); } + template void set_ioc2_tag(T &&tag) { m_ioc2.set_tag(std::forward(tag)); } + + template + hpc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, U &&scsi_tag, V &&ioc2_tag) + : hpc3_device(mconfig, tag, owner, clock) + { + set_cpu_tag(std::forward(cpu_tag)); + set_scsi_tag(std::forward(scsi_tag)); + set_ioc2_tag(std::forward(ioc2_tag)); + } - void set_cpu_tag(const char *tag) { m_maincpu.set_tag(tag); } - void set_scsi_tag(const char *tag) { m_wd33c93.set_tag(tag); } - void set_ioc2_tag(const char *tag) { m_ioc2.set_tag(tag); } + hpc3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_READ32_MEMBER(hd_enet_r); DECLARE_WRITE32_MEMBER(hd_enet_w); diff --git a/src/mame/machine/ioc2.h b/src/mame/machine/ioc2.h index 23880f7207c..8148253378a 100644 --- a/src/mame/machine/ioc2.h +++ b/src/mame/machine/ioc2.h @@ -18,19 +18,10 @@ #include "machine/pit8253.h" #include "machine/z80scc.h" -#define MCFG_IOC2_GUINNESS_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SGI_IOC2_GUINNESS, 0) - -#define MCFG_IOC2_FULL_HOUSE_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, SGI_IOC2_FULL_HOUSE, 0) - -#define MCFG_IOC2_CPU(cpu_tag) \ - downcast(*device).set_cpu_tag(cpu_tag); - class ioc2_device : public device_t { public: - void set_cpu_tag(const char *tag) { m_maincpu.set_tag(tag); } + template void set_cpu_tag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } DECLARE_WRITE32_MEMBER( write ); DECLARE_READ32_MEMBER( read ); @@ -193,6 +184,13 @@ protected: class ioc2_guinness_device : public ioc2_device { public: + template + ioc2_guinness_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag) + : ioc2_guinness_device(mconfig, tag, owner, clock) + { + set_cpu_tag(std::forward(cpu_tag)); + } + ioc2_guinness_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: @@ -202,6 +200,13 @@ protected: class ioc2_full_house_device : public ioc2_device { public: + template + ioc2_full_house_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag) + : ioc2_full_house_device(mconfig, tag, owner, clock) + { + set_cpu_tag(std::forward(cpu_tag)); + } + ioc2_full_house_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: diff --git a/src/mame/video/mcd212.cpp b/src/mame/video/mcd212.cpp index b7ac26e1bac..8d7e65b9ba4 100644 --- a/src/mame/video/mcd212.cpp +++ b/src/mame/video/mcd212.cpp @@ -30,7 +30,7 @@ TODO: // device type definition -DEFINE_DEVICE_TYPE(MACHINE_MCD212, mcd212_device, "mcd212", "MCD212 Video") +DEFINE_DEVICE_TYPE(MCD212, mcd212_device, "mcd212", "MCD212 Video") #if ENABLE_VERBOSE_LOG static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, const char *s_fmt, ...) @@ -1518,7 +1518,7 @@ void mcd212_device::device_reset() //------------------------------------------------- mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MACHINE_MCD212, tag, owner, clock) + : device_t(mconfig, MCD212, tag, owner, clock) , device_video_interface(mconfig, *this) , m_lcd(*this, ":lcd") { diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h index 6a560eeaadb..e903609de65 100644 --- a/src/mame/video/mcd212.h +++ b/src/mame/video/mcd212.h @@ -109,16 +109,6 @@ typedef int16_t SWORD68K; #define BYTE68K_MAX 255 -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_MCD212_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, MACHINE_MCD212, 0) -#define MCFG_MCD212_REPLACE(_tag) \ - MCFG_DEVICE_REPLACE(_tag, MACHINE_MCD212, 0) -#define MCFG_MCD212_SET_SCREEN MCFG_VIDEO_SET_SCREEN - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -251,6 +241,6 @@ private: }; // device type definition -DECLARE_DEVICE_TYPE(MACHINE_MCD212, mcd212_device) +DECLARE_DEVICE_TYPE(MCD212, mcd212_device) #endif // MAME_VIDEO_MCD212_H diff --git a/src/mame/video/newport.h b/src/mame/video/newport.h index 46774652a0b..6ab8c2308dd 100644 --- a/src/mame/video/newport.h +++ b/src/mame/video/newport.h @@ -151,12 +151,6 @@ private: CMAP_t m_CMAP0; }; - - -#define MCFG_NEWPORT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, NEWPORT_VIDEO, 0) - - DECLARE_DEVICE_TYPE(NEWPORT_VIDEO, newport_video_device) -- cgit v1.2.3