summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commite6214269d8e9a47e04018e557c405b0640def991 (patch)
tree11502be1f1ac95994188a0572a8733f333288821
parent4cfef07a7f41425f353b56c39daf3ad5f96bdfab (diff)
upd71071, v3021, vt82c496: removed MCFG macros (nw)
-rw-r--r--src/devices/machine/upd71071.cpp2
-rw-r--r--src/devices/machine/upd71071.h57
-rw-r--r--src/devices/machine/v3021.h10
-rw-r--r--src/devices/machine/vt82c496.cpp12
-rw-r--r--src/devices/machine/vt82c496.h23
-rw-r--r--src/mame/drivers/at.cpp7
-rw-r--r--src/mame/drivers/fmtowns.cpp32
-rw-r--r--src/mame/drivers/fortecar.cpp2
-rw-r--r--src/mame/drivers/pgm.cpp2
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)