summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2019-02-01 20:08:15 +0100
committer Ivan Vangelista <mesgnet@yahoo.it>2019-02-01 20:08:15 +0100
commitf76b001dfef2c17d757f02a47369a271258103d8 (patch)
tree9ff5d7322960d6381ef16c7b5879959de1b546c7
parent17d37ba75198005d8468f5a25f70af16647b67b6 (diff)
devices\bus: few less MCFG macros (nw)
-rw-r--r--src/devices/bus/cpc/hd20.cpp11
-rw-r--r--src/devices/bus/isa/gus.h43
-rw-r--r--src/devices/bus/isa/hdc.cpp32
-rw-r--r--src/devices/bus/isa/hdc.h9
-rw-r--r--src/devices/bus/lpci/mpc105.cpp4
-rw-r--r--src/devices/bus/lpci/mpc105.h10
-rw-r--r--src/devices/bus/ql/cst_q_plus4.cpp23
-rw-r--r--src/devices/bus/ql/exp.h26
-rw-r--r--src/mame/drivers/bebox.cpp5
-rw-r--r--src/mame/drivers/ql.cpp15
10 files changed, 54 insertions, 124 deletions
diff --git a/src/devices/bus/cpc/hd20.cpp b/src/devices/bus/cpc/hd20.cpp
index 3ad082ee90d..c13ffca6b4b 100644
--- a/src/devices/bus/cpc/hd20.cpp
+++ b/src/devices/bus/cpc/hd20.cpp
@@ -15,12 +15,13 @@
DEFINE_DEVICE_TYPE(CPC_HD20, cpc_hd20_device, "cpc_hd20", "Dobbertin HD20")
-MACHINE_CONFIG_START(cpc_hd20_device::device_add_mconfig)
- MCFG_DEVICE_ADD("hdc",ST11M_HDC,0)
- MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, cpc_hd20_device, irq_w))
- MCFG_HARDDISK_ADD("hdc:primary")
+void cpc_hd20_device::device_add_mconfig(machine_config &config)
+{
+ ST11M_HDC(config, m_hdc,0);
+ m_hdc->irq_handler().set(FUNC(cpc_hd20_device::irq_w));
+ HARDDISK(config, "hdc:primary");
// no pass-through (?)
-MACHINE_CONFIG_END
+}
ROM_START( cpc_hd20 )
diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h
index 493893a62e0..0009510b81f 100644
--- a/src/devices/bus/isa/gus.h
+++ b/src/devices/bus/isa/gus.h
@@ -45,38 +45,6 @@
#include "isa.h"
#include "machine/6850acia.h"
-#define MCFG_GF1_TXIRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_txirq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_RXIRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_rxirq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_WAVE_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_wave_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_RAMP_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_ramp_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_TIMER1_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_timer1_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_TIMER2_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_timer2_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_SB_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_sb_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_DMA_IRQ_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_dma_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_DRQ1_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_drq1_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_DRQ2_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_drq2_handler(DEVCB_##_devcb);
-
-#define MCFG_GF1_NMI_HANDLER(_devcb) \
- downcast<gf1_device &>(*device).set_nmi_handler(DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
@@ -112,17 +80,6 @@ public:
// construction/destruction
gf1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_txirq_handler(Object &&cb) { return m_txirq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_rxirq_handler(Object &&cb) { return m_rxirq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_wave_irq_handler(Object &&cb) { return m_wave_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_ramp_irq_handler(Object &&cb) { return m_ramp_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_timer1_irq_handler(Object &&cb) { return m_timer1_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_timer2_irq_handler(Object &&cb) { return m_timer2_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_sb_irq_handler(Object &&cb) { return m_sb_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_dma_irq_handler(Object &&cb) { return m_dma_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_drq1_handler(Object &&cb) { return m_drq1_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_drq2_handler(Object &&cb) { return m_drq2_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_nmi_handler(Object &&cb) { return m_nmi_handler.set_callback(std::forward<Object>(cb)); }
auto txirq_handler() { return m_txirq_handler.bind(); }
auto rxirq_handler() { return m_rxirq_handler.bind(); }
auto wave_irq_handler() { return m_wave_irq_handler.bind(); }
diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp
index 040f72f98c3..2492d0eaa89 100644
--- a/src/devices/bus/isa/hdc.cpp
+++ b/src/devices/bus/isa/hdc.cpp
@@ -918,21 +918,23 @@ DEFINE_DEVICE_TYPE(ISA8_HDC_EC1841, isa8_hdc_ec1841_device, "isa_hdc_ec1841", "E
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(isa8_hdc_device::device_add_mconfig)
- MCFG_DEVICE_ADD("hdc",XT_HDC,0)
- MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, isa8_hdc_device,irq_w))
- MCFG_XTHDC_DRQ_HANDLER(WRITELINE(*this, isa8_hdc_device,drq_w))
- MCFG_HARDDISK_ADD("hdc:primary")
- MCFG_HARDDISK_ADD("hdc:slave")
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(isa8_hdc_ec1841_device::device_add_mconfig)
- MCFG_DEVICE_ADD("hdc",EC1841_HDC,0)
- MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, isa8_hdc_ec1841_device,irq_w))
- MCFG_XTHDC_DRQ_HANDLER(WRITELINE(*this, isa8_hdc_ec1841_device,drq_w))
- MCFG_HARDDISK_ADD("hdc:primary")
- MCFG_HARDDISK_ADD("hdc:slave")
-MACHINE_CONFIG_END
+void isa8_hdc_device::device_add_mconfig(machine_config &config)
+{
+ XT_HDC(config, m_hdc,0);
+ m_hdc->irq_handler().set(FUNC(isa8_hdc_device::irq_w));
+ m_hdc->drq_handler().set(FUNC(isa8_hdc_device::drq_w));
+ HARDDISK(config, "hdc:primary");
+ HARDDISK(config, "hdc:slave");
+}
+
+void isa8_hdc_ec1841_device::device_add_mconfig(machine_config &config)
+{
+ EC1841_HDC(config, m_hdc,0);
+ m_hdc->irq_handler().set(FUNC(isa8_hdc_ec1841_device::irq_w));
+ m_hdc->drq_handler().set(FUNC(isa8_hdc_ec1841_device::drq_w));
+ HARDDISK(config, "hdc:primary");
+ HARDDISK(config, "hdc:slave");
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h
index 3e91c57d063..7d60d40b7a5 100644
--- a/src/devices/bus/isa/hdc.h
+++ b/src/devices/bus/isa/hdc.h
@@ -19,11 +19,6 @@
// XT HD controller device
-#define MCFG_XTHDC_IRQ_HANDLER(_devcb) \
- downcast<xt_hdc_device &>(*device).set_irq_handler(DEVCB_##_devcb);
-
-#define MCFG_XTHDC_DRQ_HANDLER(_devcb) \
- downcast<xt_hdc_device &>(*device).set_drq_handler(DEVCB_##_devcb);
class xt_hdc_device :
public device_t
@@ -32,8 +27,8 @@ public:
// construction/destruction
xt_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_drq_handler(Object &&cb) { return m_drq_handler.set_callback(std::forward<Object>(cb)); }
+ auto irq_handler() { return m_irq_handler.bind(); }
+ auto drq_handler() { return m_drq_handler.bind(); }
int dack_r();
int dack_rs();
diff --git a/src/devices/bus/lpci/mpc105.cpp b/src/devices/bus/lpci/mpc105.cpp
index bf1583add8d..5816153f134 100644
--- a/src/devices/bus/lpci/mpc105.cpp
+++ b/src/devices/bus/lpci/mpc105.cpp
@@ -32,11 +32,10 @@ DEFINE_DEVICE_TYPE(MPC105, mpc105_device, "mpc105", "Motorola MPC105")
mpc105_device::mpc105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, MPC105, tag, owner, clock),
pci_device_interface( mconfig, *this ),
- m_cpu_tag(nullptr),
m_bank_base_default(0),
m_bank_base(0),
m_bank_enable(0),
- m_maincpu(nullptr)
+ m_maincpu(*this, finder_base::DUMMY_TAG)
{
}
@@ -46,7 +45,6 @@ mpc105_device::mpc105_device(const machine_config &mconfig, const char *tag, dev
void mpc105_device::device_start()
{
- m_maincpu = machine().device<cpu_device>(m_cpu_tag);
}
//-------------------------------------------------
diff --git a/src/devices/bus/lpci/mpc105.h b/src/devices/bus/lpci/mpc105.h
index 65ab5a59637..94f9181a2d7 100644
--- a/src/devices/bus/lpci/mpc105.h
+++ b/src/devices/bus/lpci/mpc105.h
@@ -17,11 +17,6 @@
#define MPC105_MEMORYBANK_COUNT 8
-#define MCFG_MPC105_CPU( _tag ) \
- downcast<mpc105_device &>(*device).set_cpu(_tag);
-
-#define MCFG_MPC105_BANK_BASE_DEFAULT( bank_base_default ) \
- downcast<mpc105_device &>(*device).set_bank_base_default(bank_base_default);
// ======================> mpc105_device
@@ -32,7 +27,7 @@ public:
// construction/destruction
mpc105_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void set_cpu(const char *tag) { m_cpu_tag = tag; }
+ template <typename T> void set_cpu(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); }
void set_bank_base_default(int bank_base_default) { m_bank_base_default = bank_base_default; }
virtual uint32_t pci_read(pci_bus_device *pcibus, int function, int offset, uint32_t mem_mask) override;
@@ -46,13 +41,12 @@ protected:
void update_memory();
private:
- const char *m_cpu_tag;
int m_bank_base_default;
int m_bank_base;
uint8_t m_bank_enable;
uint32_t m_bank_registers[8];
- cpu_device* m_maincpu;
+ required_device<cpu_device> m_maincpu;
};
diff --git a/src/devices/bus/ql/cst_q_plus4.cpp b/src/devices/bus/ql/cst_q_plus4.cpp
index 52f1602ba5b..1ff79655924 100644
--- a/src/devices/bus/ql/cst_q_plus4.cpp
+++ b/src/devices/bus/ql/cst_q_plus4.cpp
@@ -50,21 +50,22 @@ const tiny_rom_entry *cst_q_plus4_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(cst_q_plus4_device::device_add_mconfig)
- MCFG_DEVICE_ADD(MC6821_TAG, PIA6821, 0)
+void cst_q_plus4_device::device_add_mconfig(machine_config &config)
+{
+ PIA6821(config, MC6821_TAG, 0);
- MCFG_DEVICE_ADD("exp1", QL_EXPANSION_SLOT, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr)
- MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(*this, cst_q_plus4_device, exp1_extintl_w))
+ QL_EXPANSION_SLOT(config, m_exp1, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr);
+ m_exp1->extintl_wr_callback().set(FUNC(cst_q_plus4_device::exp1_extintl_w));
- MCFG_DEVICE_ADD("exp2", QL_EXPANSION_SLOT, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr)
- MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(*this, cst_q_plus4_device, exp2_extintl_w))
+ QL_EXPANSION_SLOT(config, m_exp2, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr);
+ m_exp2->extintl_wr_callback().set(FUNC(cst_q_plus4_device::exp2_extintl_w));
- MCFG_DEVICE_ADD("exp3", QL_EXPANSION_SLOT, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr)
- MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(*this, cst_q_plus4_device, exp3_extintl_w))
+ QL_EXPANSION_SLOT(config, m_exp3, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr);
+ m_exp3->extintl_wr_callback().set(FUNC(cst_q_plus4_device::exp3_extintl_w));
- MCFG_DEVICE_ADD("exp4", QL_EXPANSION_SLOT, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr)
- MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(*this, cst_q_plus4_device, exp4_extintl_w))
-MACHINE_CONFIG_END
+ QL_EXPANSION_SLOT(config, m_exp4, DERIVED_CLOCK(1, 1), ql_expansion_cards, nullptr);
+ m_exp4->extintl_wr_callback().set(FUNC(cst_q_plus4_device::exp4_extintl_w));
+}
diff --git a/src/devices/bus/ql/exp.h b/src/devices/bus/ql/exp.h
index ed5febc4854..9f6bd51eb5c 100644
--- a/src/devices/bus/ql/exp.h
+++ b/src/devices/bus/ql/exp.h
@@ -49,24 +49,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_QL_EXPANSION_SLOT_IPL0L_CALLBACK(_write) \
- downcast<ql_expansion_slot_device &>(*device).set_ipl0l_wr_callback(DEVCB_##_write);
-
-#define MCFG_QL_EXPANSION_SLOT_IPL1L_CALLBACK(_write) \
- downcast<ql_expansion_slot_device &>(*device).set_ipl1l_wr_callback(DEVCB_##_write);
-
-#define MCFG_QL_EXPANSION_SLOT_BERRL_CALLBACK(_write) \
- downcast<ql_expansion_slot_device &>(*device).set_berrl_wr_callback(DEVCB_##_write);
-
-#define MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(_write) \
- downcast<ql_expansion_slot_device &>(*device).set_extintl_wr_callback(DEVCB_##_write);
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -112,10 +94,10 @@ public:
}
ql_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_ipl0l_wr_callback(Object &&cb) { return m_write_ipl0l.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_ipl1l_wr_callback(Object &&cb) { return m_write_ipl1l.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_berrl_wr_callback(Object &&cb) { return m_write_berrl.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_extintl_wr_callback(Object &&cb) { return m_write_extintl.set_callback(std::forward<Object>(cb)); }
+ auto ipl0l_wr_callback() { return m_write_ipl0l.bind(); }
+ auto ipl1l_wr_callback() { return m_write_ipl1l.bind(); }
+ auto berrl_wr_callback() { return m_write_berrl.bind(); }
+ auto extintl_wr_callback() { return m_write_extintl.bind(); }
// computer interface
uint8_t read(address_space &space, offs_t offset, uint8_t data) { if (m_card) data = m_card->read(space, offset, data); return data; }
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index 7a8d888907a..9cf116ff932 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -117,8 +117,9 @@ FLOPPY_FORMATS_END
void bebox_state::mpc105_config(device_t *device)
{
- MCFG_MPC105_CPU( "ppc1" )
- MCFG_MPC105_BANK_BASE_DEFAULT( 0 )
+ mpc105_device &mpc105 = *downcast<mpc105_device *>(device);
+ mpc105.set_cpu(":ppc1");
+ mpc105.set_bank_base_default(0);
}
/*************************************
diff --git a/src/mame/drivers/ql.cpp b/src/mame/drivers/ql.cpp
index 3f2a46d23fe..3449e2c1d4c 100644
--- a/src/mame/drivers/ql.cpp
+++ b/src/mame/drivers/ql.cpp
@@ -921,8 +921,7 @@ MACHINE_CONFIG_START(ql_state::ql)
// sound hardware
SPEAKER(config, "mono").front_center();
- MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
- MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
// devices
ZX8301(config, m_zx8301, X1, m_maincpu);
@@ -954,13 +953,13 @@ MACHINE_CONFIG_START(ql_state::ql)
RS232_PORT(config, m_ser2, default_rs232_devices, nullptr); // wired as DTE
m_ser2->cts_handler().set(m_zx8302, FUNC(zx8302_device::write_cts2));
- MCFG_DEVICE_ADD("exp", QL_EXPANSION_SLOT, 0, ql_expansion_cards, nullptr) // FIXME: what's the clock on the slot?
- //MCFG_QL_EXPANSION_SLOT_IPL0L_CALLBACK()
- //MCFG_QL_EXPANSION_SLOT_IPL1L_CALLBACK()
- //MCFG_QL_EXPANSION_SLOT_BERRL_CALLBACK()
- MCFG_QL_EXPANSION_SLOT_EXTINTL_CALLBACK(WRITELINE(*this, ql_state, exp_extintl_w))
+ QL_EXPANSION_SLOT(config, m_exp, 0, ql_expansion_cards, nullptr); // FIXME: what's the clock on the slot?
+ //m_exp->ipl0l_wr_callback().set();
+ //m_exp->ipl1l_wr_callback().set();(
+ //m_exp->berrl_wr_callback().set();
+ m_exp->extintl_wr_callback().set(FUNC(ql_state::exp_extintl_w));
- MCFG_DEVICE_ADD("rom", QL_ROM_CARTRIDGE_SLOT, ql_rom_cartridge_cards, nullptr)
+ QL_ROM_CARTRIDGE_SLOT(config, m_cart, ql_rom_cartridge_cards, nullptr);
QIMI(config, m_qimi, 0);
m_qimi->extint_wr_callback().set(FUNC(ql_state::qimi_extintl_w));