diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-09-10 18:18:19 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-09-10 18:18:19 +0200 |
commit | e6214269d8e9a47e04018e557c405b0640def991 (patch) | |
tree | 11502be1f1ac95994188a0572a8733f333288821 | |
parent | 4cfef07a7f41425f353b56c39daf3ad5f96bdfab (diff) |
upd71071, v3021, vt82c496: removed MCFG macros (nw)
-rw-r--r-- | src/devices/machine/upd71071.cpp | 2 | ||||
-rw-r--r-- | src/devices/machine/upd71071.h | 57 | ||||
-rw-r--r-- | src/devices/machine/v3021.h | 10 | ||||
-rw-r--r-- | src/devices/machine/vt82c496.cpp | 12 | ||||
-rw-r--r-- | src/devices/machine/vt82c496.h | 23 | ||||
-rw-r--r-- | src/mame/drivers/at.cpp | 7 | ||||
-rw-r--r-- | src/mame/drivers/fmtowns.cpp | 32 | ||||
-rw-r--r-- | src/mame/drivers/fortecar.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/pgm.cpp | 2 |
9 files changed, 38 insertions, 109 deletions
diff --git a/src/devices/machine/upd71071.cpp b/src/devices/machine/upd71071.cpp index bbd79dc3f6a..1232819c6ae 100644 --- a/src/devices/machine/upd71071.cpp +++ b/src/devices/machine/upd71071.cpp @@ -3,7 +3,7 @@ /* - am9517a.c is a more complete implementation of this, the uPD71071 appears to be a clone of it + am9517a.cpp is a more complete implementation of this, the uPD71071 appears to be a clone of it NEC uPD71071 DMA Controller Used on the Fujitsu FM-Towns diff --git a/src/devices/machine/upd71071.h b/src/devices/machine/upd71071.h index 9b05766dd74..211e39cd51e 100644 --- a/src/devices/machine/upd71071.h +++ b/src/devices/machine/upd71071.h @@ -14,12 +14,12 @@ public: void set_cpu_tag(const char *tag) { m_cpu.set_tag(tag); } void set_clock(int clock) { m_upd_clock = clock; } - template <class Object> devcb_base &set_out_hreq_callback(Object &&cb) { return m_out_hreq_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_eop_callback(Object &&cb) { return m_out_eop_cb.set_callback(std::forward<Object>(cb)); } + auto out_hreq_callback() { return m_out_hreq_cb.bind(); } + auto out_eop_callback() { return m_out_eop_cb.bind(); } - template <unsigned N, class Object> devcb_base &set_dma_read_callback(Object &&cb) { return m_dma_read_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> devcb_base &set_dma_write_callback(Object &&cb) { return m_dma_write_cb[N].set_callback(std::forward<Object>(cb)); } - template <unsigned N, class Object> devcb_base &set_out_dack_callback(Object &&cb) { return m_out_dack_cb[N].set_callback(std::forward<Object>(cb)); } + template <unsigned N> auto dma_read_callback() { return m_dma_read_cb[N].bind(); } + template <unsigned N> auto dma_write_callback() { return m_dma_write_cb[N].bind(); } + template <unsigned N> auto out_dack_callback() { return m_out_dack_cb[N].bind(); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -75,52 +75,5 @@ private: DECLARE_DEVICE_TYPE(UPD71071, upd71071_device) -#define MCFG_UPD71071_CPU(tag) \ - downcast<upd71071_device &>(*device).set_cpu_tag(tag); - -#define MCFG_UPD71071_CLOCK(clk) \ - downcast<upd71071_device &>(*device).set_clock((clk)); - -#define MCFG_UPD71071_OUT_HREQ_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_hreq_callback((DEVCB_##cb)); - -#define MCFG_UPD71071_OUT_EOP_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_eop_callback((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_READ_0_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_read_callback<0>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_READ_1_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_read_callback<1>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_READ_2_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_read_callback<2>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_READ_3_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_read_callback<3>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_WRITE_0_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_write_callback<0>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_WRITE_1_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_write_callback<1>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_WRITE_2_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_write_callback<2>((DEVCB_##cb)); - -#define MCFG_UPD71071_DMA_WRITE_3_CB(cb) \ - downcast<upd71071_device &>(*device).set_dma_write_callback<3>((DEVCB_##cb)); - -#define MCFG_UPD71071_OUT_DACK_0_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_dack_callback<0>((DEVCB_##cb)); - -#define MCFG_UPD71071_OUT_DACK_1_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_dack_callback<1>((DEVCB_##cb)); - -#define MCFG_UPD71071_OUT_DACK_2_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_dack_callback<2>((DEVCB_##cb)); - -#define MCFG_UPD71071_OUT_DACK_3_CB(cb) \ - downcast<upd71071_device &>(*device).set_out_dack_callback<3>((DEVCB_##cb)); #endif // MAME_MACHINE_UPD71071_H diff --git a/src/devices/machine/v3021.h b/src/devices/machine/v3021.h index b412163cb22..4f3b4635ea4 100644 --- a/src/devices/machine/v3021.h +++ b/src/devices/machine/v3021.h @@ -16,14 +16,6 @@ #pragma once - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_V3021_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, V3021, XTAL(32'768)) - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -34,7 +26,7 @@ class v3021_device : public device_t { public: // construction/destruction - v3021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + v3021_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 32'768); // I/O operations DECLARE_WRITE8_MEMBER( write ); diff --git a/src/devices/machine/vt82c496.cpp b/src/devices/machine/vt82c496.cpp index f7f58db89fe..f72108d7fe1 100644 --- a/src/devices/machine/vt82c496.cpp +++ b/src/devices/machine/vt82c496.cpp @@ -17,24 +17,16 @@ DEFINE_DEVICE_TYPE(VT82C496, vt82c496_device, "vt82c496", "VIA VT82C496 system c vt82c496_device::vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, VT82C496, tag, owner, clock), m_cpu_tag(nullptr), m_region_tag(nullptr), m_space(nullptr), m_ram(nullptr), m_rom(nullptr), m_reg_select(0) + : device_t(mconfig, VT82C496, tag, owner, clock), m_cpu(*this, finder_base::DUMMY_TAG), m_space(nullptr), m_ram(*this, finder_base::DUMMY_TAG), m_rom(*this, finder_base::DUMMY_TAG), m_reg_select(0) { } void vt82c496_device::device_start() { /* get address space we are working on */ - device_t *cpu = machine().device(m_cpu_tag); - assert(cpu != nullptr); - - m_space = &cpu->memory().space(AS_PROGRAM); - - /* get rom region */ - m_rom = machine().root_device().memregion(m_region_tag)->base(); + m_space = &m_cpu->space(AS_PROGRAM); save_pointer(m_reg,"Registers",0x100); - - m_ram = machine().device<ram_device>(RAM_TAG); } void vt82c496_device::device_reset() diff --git a/src/devices/machine/vt82c496.h b/src/devices/machine/vt82c496.h index 60fa191c3f6..f248247a831 100644 --- a/src/devices/machine/vt82c496.h +++ b/src/devices/machine/vt82c496.h @@ -13,23 +13,16 @@ #include "ram.h" -#define MCFG_VT82C496_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, VT82C496, 0) - -#define MCFG_VT82C496_CPU( _tag ) \ - downcast<vt82c496_device &>(*device).set_cpu(_tag); - -#define MCFG_VT82C496_REGION( _tag ) \ - downcast<vt82c496_device &>(*device).set_region(_tag); class vt82c496_device : public device_t { public: // construction/destruction - vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vt82c496_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - void set_cpu(const char *tag) { m_cpu_tag = tag; } - void set_region(const char *tag) { m_region_tag = tag; } + template <typename T> void set_cputag(T &&tag) { m_cpu.set_tag(std::forward<T>(tag)); } + template <typename T> void set_ramtag(T &&tag) { m_ram.set_tag(std::forward<T>(tag)); } + template <typename T> void set_isatag(T &&tag) { m_rom.set_tag(std::forward<T>(tag)); } DECLARE_READ8_MEMBER(read); DECLARE_WRITE8_MEMBER(write); @@ -39,12 +32,10 @@ protected: virtual void device_reset() override; private: - const char* m_cpu_tag; - const char* m_region_tag; -// cpu_device* m_maincpu; + required_device<cpu_device> m_cpu; address_space* m_space; - ram_device* m_ram; - uint8_t* m_rom; + required_device<ram_device> m_ram; + required_region_ptr<uint8_t> m_rom; uint8_t m_reg[0x100]; uint8_t m_reg_select; diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp index ac41756fe6e..635a04b03f1 100644 --- a/src/mame/drivers/at.cpp +++ b/src/mame/drivers/at.cpp @@ -783,9 +783,10 @@ MACHINE_CONFIG_START(at_state::ficpio2) MCFG_DEVICE_ADD("isa4", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, nullptr, false) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) - MCFG_VT82C496_ADD("chipset") - MCFG_VT82C496_CPU("maincpu") - MCFG_VT82C496_REGION("isa") + vt82c496_device &chipset(VT82C496(config, "chipset")); + chipset.set_cputag(m_maincpu); + chipset.set_ramtag(m_ram); + chipset.set_isatag("isa"); MACHINE_CONFIG_END // Compaq Portable III diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index 733cd5d8e7d..62681fb91b2 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -2842,22 +2842,22 @@ MACHINE_CONFIG_START(towns_state::towns_base) MCFG_FMSCSI_IRQ_HANDLER(WRITELINE(*this, towns_state, towns_scsi_irq)) MCFG_FMSCSI_DRQ_HANDLER(WRITELINE(*this, towns_state, towns_scsi_drq)) - MCFG_DEVICE_ADD("dma_1", UPD71071, 0) - MCFG_UPD71071_CPU("maincpu") - MCFG_UPD71071_CLOCK(4000000) - MCFG_UPD71071_DMA_READ_0_CB(READ16(*this, towns_state, towns_fdc_dma_r)) - MCFG_UPD71071_DMA_READ_1_CB(READ16(*this, towns_state, towns_scsi_dma_r)) - MCFG_UPD71071_DMA_READ_3_CB(READ16(*this, towns_state, towns_cdrom_dma_r)) - MCFG_UPD71071_DMA_WRITE_0_CB(WRITE16(*this, towns_state, towns_fdc_dma_w)) - MCFG_UPD71071_DMA_WRITE_1_CB(WRITE16(*this, towns_state, towns_scsi_dma_w)) - MCFG_DEVICE_ADD("dma_2", UPD71071, 0) - MCFG_UPD71071_CPU("maincpu") - MCFG_UPD71071_CLOCK(4000000) - MCFG_UPD71071_DMA_READ_0_CB(READ16(*this, towns_state, towns_fdc_dma_r)) - MCFG_UPD71071_DMA_READ_1_CB(READ16(*this, towns_state, towns_scsi_dma_r)) - MCFG_UPD71071_DMA_READ_3_CB(READ16(*this, towns_state, towns_cdrom_dma_r)) - MCFG_UPD71071_DMA_WRITE_0_CB(WRITE16(*this, towns_state, towns_fdc_dma_w)) - MCFG_UPD71071_DMA_WRITE_1_CB(WRITE16(*this, towns_state, towns_scsi_dma_w)) + UPD71071(config, m_dma[0], 0); + m_dma[0]->set_cpu_tag("maincpu"); + m_dma[0]->set_clock(4000000); + m_dma[0]->dma_read_callback<0>().set(FUNC(towns_state::towns_fdc_dma_r)); + m_dma[0]->dma_read_callback<1>().set(FUNC(towns_state::towns_scsi_dma_r)); + m_dma[0]->dma_read_callback<3>().set(FUNC(towns_state::towns_state::towns_cdrom_dma_r)); + m_dma[0]->dma_write_callback<0>().set(FUNC(towns_state::towns_fdc_dma_w)); + m_dma[0]->dma_write_callback<1>().set(FUNC(towns_state::towns_scsi_dma_w)); + UPD71071(config, m_dma[1], 0); + m_dma[1]->set_cpu_tag("maincpu"); + m_dma[1]->set_clock(4000000); + m_dma[1]->dma_read_callback<0>().set(FUNC(towns_state::towns_fdc_dma_r)); + m_dma[1]->dma_read_callback<1>().set(FUNC(towns_state::towns_scsi_dma_r)); + m_dma[1]->dma_read_callback<3>().set(FUNC(towns_state::towns_state::towns_cdrom_dma_r)); + m_dma[1]->dma_write_callback<0>().set(FUNC(towns_state::towns_fdc_dma_w)); + m_dma[1]->dma_write_callback<1>().set(FUNC(towns_state::towns_scsi_dma_w)); //MCFG_VIDEO_START_OVERRIDE(towns_state,towns) diff --git a/src/mame/drivers/fortecar.cpp b/src/mame/drivers/fortecar.cpp index 64e21f8c950..1309531ef47 100644 --- a/src/mame/drivers/fortecar.cpp +++ b/src/mame/drivers/fortecar.cpp @@ -710,7 +710,7 @@ MACHINE_CONFIG_START(fortecar_state::fortecar) fcppi0.in_pc_callback().set(FUNC(fortecar_state::ppi0_portc_r)); fcppi0.out_pc_callback().set(FUNC(fortecar_state::ppi0_portc_w)); - MCFG_V3021_ADD("rtc") + V3021(config, "rtc"); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_fortecar) MCFG_PALETTE_ADD("palette", 0x200) diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp index cf3415aed40..bdb35e63993 100644 --- a/src/mame/drivers/pgm.cpp +++ b/src/mame/drivers/pgm.cpp @@ -523,7 +523,7 @@ MACHINE_CONFIG_START(pgm_state::pgmbase) MCFG_MACHINE_RESET_OVERRIDE(pgm_state, pgm ) NVRAM(config, "sram", nvram_device::DEFAULT_ALL_0); - MCFG_V3021_ADD("rtc") + V3021(config, "rtc"); /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) |