summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2017-05-31 20:24:14 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2017-05-31 20:24:14 +0200
commit7f88e1ca5eab08e3e894626b8710cd010bef414c (patch)
tree9b80d8f99f37f8c0c72b4c01e62adf223da80e98
parentf225f3efb9f106c88d7fa5a74b6d831e0990b3bb (diff)
devices/cpu to device_add_mconfig (nw)
-rw-r--r--src/devices/cpu/arm7/lpc210x.cpp7
-rw-r--r--src/devices/cpu/arm7/lpc210x.h2
-rw-r--r--src/devices/cpu/h8/h83002.cpp53
-rw-r--r--src/devices/cpu/h8/h83002.h2
-rw-r--r--src/devices/cpu/h8/h83006.cpp51
-rw-r--r--src/devices/cpu/h8/h83006.h2
-rw-r--r--src/devices/cpu/h8/h83008.cpp49
-rw-r--r--src/devices/cpu/h8/h83008.h2
-rw-r--r--src/devices/cpu/h8/h83048.cpp53
-rw-r--r--src/devices/cpu/h8/h83048.h2
-rw-r--r--src/devices/cpu/h8/h83337.cpp45
-rw-r--r--src/devices/cpu/h8/h83337.h2
-rw-r--r--src/devices/cpu/h8/h8s2245.cpp109
-rw-r--r--src/devices/cpu/h8/h8s2245.h2
-rw-r--r--src/devices/cpu/h8/h8s2320.cpp177
-rw-r--r--src/devices/cpu/h8/h8s2320.h2
-rw-r--r--src/devices/cpu/h8/h8s2357.cpp165
-rw-r--r--src/devices/cpu/h8/h8s2357.h2
-rw-r--r--src/devices/cpu/h8/h8s2655.cpp165
-rw-r--r--src/devices/cpu/h8/h8s2655.h2
-rw-r--r--src/devices/cpu/i8089/i8089.cpp10
-rw-r--r--src/devices/cpu/i8089/i8089.h10
-rw-r--r--src/devices/cpu/m6502/n2a03.cpp9
-rw-r--r--src/devices/cpu/m6502/n2a03.h10
-rw-r--r--src/devices/cpu/nec/v53.cpp9
-rw-r--r--src/devices/cpu/nec/v53.h43
-rw-r--r--src/devices/cpu/psx/psx.cpp17
-rw-r--r--src/devices/cpu/psx/psx.h2
-rw-r--r--src/devices/cpu/tms1000/tms0270.cpp7
-rw-r--r--src/devices/cpu/tms1000/tms0270.h2
-rw-r--r--src/devices/cpu/tms1000/tms0970.cpp14
-rw-r--r--src/devices/cpu/tms1000/tms0970.h4
-rw-r--r--src/devices/cpu/tms1000/tms0980.cpp14
-rw-r--r--src/devices/cpu/tms1000/tms0980.h4
-rw-r--r--src/devices/cpu/tms1000/tms1000.cpp8
-rw-r--r--src/devices/cpu/tms1000/tms1000.h2
-rw-r--r--src/devices/cpu/tms1000/tms1400.cpp7
-rw-r--r--src/devices/cpu/tms1000/tms1400.h2
-rw-r--r--src/devices/cpu/tms1000/tp0320.cpp7
-rw-r--r--src/devices/cpu/tms1000/tp0320.h2
-rw-r--r--src/devices/cpu/z80/kl5c80a12.cpp7
-rw-r--r--src/devices/cpu/z80/kl5c80a12.h2
-rw-r--r--src/devices/cpu/z80/tmpz84c011.cpp7
-rw-r--r--src/devices/cpu/z80/tmpz84c011.h10
-rw-r--r--src/devices/cpu/z80/tmpz84c015.cpp7
-rw-r--r--src/devices/cpu/z80/tmpz84c015.h60
46 files changed, 520 insertions, 650 deletions
diff --git a/src/devices/cpu/arm7/lpc210x.cpp b/src/devices/cpu/arm7/lpc210x.cpp
index b17d058fae0..67238a6b987 100644
--- a/src/devices/cpu/arm7/lpc210x.cpp
+++ b/src/devices/cpu/arm7/lpc210x.cpp
@@ -277,10 +277,5 @@ void lpc210x_device::write_timer(address_space &space, int timer, int offset, ui
-static MACHINE_CONFIG_START( lpc210x )
+MACHINE_CONFIG_MEMBER( lpc210x_device::device_add_mconfig )
MACHINE_CONFIG_END
-
-machine_config_constructor lpc210x_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( lpc210x );
-}
diff --git a/src/devices/cpu/arm7/lpc210x.h b/src/devices/cpu/arm7/lpc210x.h
index de71075314c..e566256890f 100644
--- a/src/devices/cpu/arm7/lpc210x.h
+++ b/src/devices/cpu/arm7/lpc210x.h
@@ -73,7 +73,7 @@ public:
protected:
// device-level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
diff --git a/src/devices/cpu/h8/h83002.cpp b/src/devices/cpu/h8/h83002.cpp
index 35512008647..68ea4cf4860 100644
--- a/src/devices/cpu/h8/h83002.cpp
+++ b/src/devices/cpu/h8/h83002.cpp
@@ -34,31 +34,6 @@ h83002_device::h83002_device(const machine_config &mconfig, const char *tag, dev
syscr = 0;
}
-static MACHINE_CONFIG_START(h83002)
- MCFG_H8H_INTC_ADD("intc")
- MCFG_H8_ADC_3337_ADD("adc", "intc", 60)
- MCFG_H8_DMA_ADD("dma")
- // (H8/2002.pdf) Table 8-11 DMAC Activation Sources
- MCFG_H8_DMA_CHANNEL_ADD("dma:0", "intc", 44, h8_dma_channel_device::NONE, 24, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 28, 32, 36, 54, 53, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
- MCFG_H8_DMA_CHANNEL_ADD("dma:1", "intc", 46, h8_dma_channel_device::NONE, 24, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 28, 32, 36, 54, 53, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
- MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
- MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0x00, 0xc0)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_TIMER16_ADD("timer16", 5, 0xe0)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:3", 2, 2, "intc", 36)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:4", 2, 2, "intc", 40)
- MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
- MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h83002_device)
AM_RANGE(0xfffd10, 0xffff0f) AM_RAM
@@ -161,10 +136,30 @@ DEVICE_ADDRESS_MAP_START(map, 16, h83002_device)
AM_RANGE(0xfffff8, 0xfffff9) AM_DEVREADWRITE8("intc", h8h_intc_device, icr_r, icr_w, 0xffff)
ADDRESS_MAP_END
-machine_config_constructor h83002_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h83002);
-}
+MACHINE_CONFIG_MEMBER(h83002_device::device_add_mconfig)
+ MCFG_H8H_INTC_ADD("intc")
+ MCFG_H8_ADC_3337_ADD("adc", "intc", 60)
+ MCFG_H8_DMA_ADD("dma")
+ // (H8/2002.pdf) Table 8-11 DMAC Activation Sources
+ MCFG_H8_DMA_CHANNEL_ADD("dma:0", "intc", 44, h8_dma_channel_device::NONE, 24, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 28, 32, 36, 54, 53, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
+ MCFG_H8_DMA_CHANNEL_ADD("dma:1", "intc", 46, h8_dma_channel_device::NONE, 24, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 28, 32, 36, 54, 53, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
+ MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
+ MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0x00, 0xc0)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_TIMER16_ADD("timer16", 5, 0xe0)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:3", 2, 2, "intc", 36)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:4", 2, 2, "intc", 40)
+ MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
+ MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
+MACHINE_CONFIG_END
void h83002_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h83002.h b/src/devices/cpu/h8/h83002.h
index dfca4051479..c49988a2302 100644
--- a/src/devices/cpu/h8/h83002.h
+++ b/src/devices/cpu/h8/h83002.h
@@ -76,7 +76,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h83006.cpp b/src/devices/cpu/h8/h83006.cpp
index 89c7d4678fb..ef5e2cec951 100644
--- a/src/devices/cpu/h8/h83006.cpp
+++ b/src/devices/cpu/h8/h83006.cpp
@@ -46,30 +46,6 @@ h83007_device::h83007_device(const machine_config &mconfig, const char *tag, dev
{
}
-static MACHINE_CONFIG_START(h83006)
- MCFG_H8H_INTC_ADD("intc")
- MCFG_H8_ADC_3006_ADD("adc", "intc", 23)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
- MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
- MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x80, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 36, 38, 39, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 37, 38, 39, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_2", "intc", 40, 42, 43, "timer8_3", h8_timer8_channel_device::CHAIN_OVERFLOW, false, true)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_3", "intc", 41, 42, 43, "timer8_2", h8_timer8_channel_device::CHAIN_A, false, true)
- MCFG_H8_TIMER16_ADD("timer16", 3, 0xf8)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
- MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
- MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
- MCFG_H8_SCI_ADD("sci2", "intc", 60, 61, 62, 63)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h83006_device)
AM_RANGE(0xfee002, 0xfee003) AM_DEVWRITE8( "port4", h8_port_device, ddr_w, 0x00ff)
AM_RANGE(0xfee004, 0xfee005) AM_DEVWRITE8( "port6", h8_port_device, ddr_w, 0x00ff)
@@ -159,10 +135,29 @@ DEVICE_ADDRESS_MAP_START(map, 16, h83006_device)
AM_RANGE(0xffffe8, 0xffffe9) AM_DEVREADWRITE8("adc", h8_adc_device, adcr_r, adcr_w, 0x00ff)
ADDRESS_MAP_END
-machine_config_constructor h83006_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h83006);
-}
+MACHINE_CONFIG_MEMBER(h83006_device::device_add_mconfig)
+ MCFG_H8H_INTC_ADD("intc")
+ MCFG_H8_ADC_3006_ADD("adc", "intc", 23)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
+ MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
+ MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x80, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 36, 38, 39, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 37, 38, 39, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_2", "intc", 40, 42, 43, "timer8_3", h8_timer8_channel_device::CHAIN_OVERFLOW, false, true)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_3", "intc", 41, 42, 43, "timer8_2", h8_timer8_channel_device::CHAIN_A, false, true)
+ MCFG_H8_TIMER16_ADD("timer16", 3, 0xf8)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
+ MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
+ MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
+ MCFG_H8_SCI_ADD("sci2", "intc", 60, 61, 62, 63)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
+MACHINE_CONFIG_END
void h83006_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h83006.h b/src/devices/cpu/h8/h83006.h
index 6809c28c464..4f5ba8c3b76 100644
--- a/src/devices/cpu/h8/h83006.h
+++ b/src/devices/cpu/h8/h83006.h
@@ -65,7 +65,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h83008.cpp b/src/devices/cpu/h8/h83008.cpp
index f0a72b33d0e..39cd8e79a12 100644
--- a/src/devices/cpu/h8/h83008.cpp
+++ b/src/devices/cpu/h8/h83008.cpp
@@ -31,29 +31,6 @@ h83008_device::h83008_device(const machine_config &mconfig, const char *tag, dev
{
}
-static MACHINE_CONFIG_START(h83008)
- MCFG_H8H_INTC_ADD("intc")
- MCFG_H8_ADC_3006_ADD("adc", "intc", 23)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
- MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0xff, 0x00)
- MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
- MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x80, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 36, 38, 39, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 37, 38, 39, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_2", "intc", 40, 42, 43, "timer8_3", h8_timer8_channel_device::CHAIN_OVERFLOW, false, true)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_3", "intc", 41, 42, 43, "timer8_2", h8_timer8_channel_device::CHAIN_A, false, true)
- MCFG_H8_TIMER16_ADD("timer16", 3, 0xf8)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
- MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
- MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h83008_device)
AM_RANGE(0xfee002, 0xfee003) AM_DEVWRITE8( "port4", h8_port_device, ddr_w, 0x00ff)
AM_RANGE(0xfee004, 0xfee005) AM_DEVWRITE8( "port6", h8_port_device, ddr_w, 0x00ff)
@@ -136,10 +113,28 @@ DEVICE_ADDRESS_MAP_START(map, 16, h83008_device)
AM_RANGE(0xffffe8, 0xffffe9) AM_DEVREADWRITE8("adc", h8_adc_device, adcr_r, adcr_w, 0x00ff)
ADDRESS_MAP_END
-machine_config_constructor h83008_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h83008);
-}
+MACHINE_CONFIG_MEMBER(h83008_device::device_add_mconfig)
+ MCFG_H8H_INTC_ADD("intc")
+ MCFG_H8_ADC_3006_ADD("adc", "intc", 23)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
+ MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0xff, 0x00)
+ MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xf0, 0xe0)
+ MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x80, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 36, 38, 39, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 37, 38, 39, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_2", "intc", 40, 42, 43, "timer8_3", h8_timer8_channel_device::CHAIN_OVERFLOW, false, true)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_3", "intc", 41, 42, 43, "timer8_2", h8_timer8_channel_device::CHAIN_A, false, true)
+ MCFG_H8_TIMER16_ADD("timer16", 3, 0xf8)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
+ MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
+ MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
+MACHINE_CONFIG_END
void h83008_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h83008.h b/src/devices/cpu/h8/h83008.h
index 17eaff299e6..0c4854fff46 100644
--- a/src/devices/cpu/h8/h83008.h
+++ b/src/devices/cpu/h8/h83008.h
@@ -61,7 +61,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h83048.cpp b/src/devices/cpu/h8/h83048.cpp
index 6ce04a26f24..75b2489e21f 100644
--- a/src/devices/cpu/h8/h83048.cpp
+++ b/src/devices/cpu/h8/h83048.cpp
@@ -57,31 +57,6 @@ h83047_device::h83047_device(const machine_config &mconfig, const char *tag, dev
{
}
-static MACHINE_CONFIG_START(h83048)
- MCFG_H8H_INTC_ADD("intc")
- MCFG_H8_ADC_3337_ADD("adc", "intc", 60)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
- MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xe0, 0xe0)
- MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_TIMER16_ADD("timer16", 5, 0xe0)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:3", 2, 2, "intc", 36)
- MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:4", 2, 2, "intc", 40)
- MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
- MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h83048_device)
AM_RANGE(ram_start, 0xffff0f) AM_RAM
@@ -176,10 +151,30 @@ DEVICE_ADDRESS_MAP_START(map, 16, h83048_device)
AM_RANGE(0xfffff8, 0xfffff9) AM_DEVREADWRITE8("intc", h8h_intc_device, icr_r, icr_w, 0xffff)
ADDRESS_MAP_END
-machine_config_constructor h83048_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h83048);
-}
+MACHINE_CONFIG_MEMBER(h83048_device::device_add_mconfig)
+ MCFG_H8H_INTC_ADD("intc")
+ MCFG_H8_ADC_3337_ADD("adc", "intc", 60)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x80, 0x80)
+ MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0xe0, 0xe0)
+ MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_TIMER16_ADD("timer16", 5, 0xe0)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:0", 2, 2, "intc", 24)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:1", 2, 2, "intc", 28)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:2", 2, 2, "intc", 32)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:3", 2, 2, "intc", 36)
+ MCFG_H8H_TIMER16_CHANNEL_ADD("timer16:4", 2, 2, "intc", 40)
+ MCFG_H8_SCI_ADD("sci0", "intc", 52, 53, 54, 55)
+ MCFG_H8_SCI_ADD("sci1", "intc", 56, 57, 58, 59)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 20, h8_watchdog_device::H)
+MACHINE_CONFIG_END
void h83048_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h83048.h b/src/devices/cpu/h8/h83048.h
index 4dcb95103db..9e501a4473f 100644
--- a/src/devices/cpu/h8/h83048.h
+++ b/src/devices/cpu/h8/h83048.h
@@ -71,7 +71,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h83337.cpp b/src/devices/cpu/h8/h83337.cpp
index 8198c4dd008..5674a6bf55d 100644
--- a/src/devices/cpu/h8/h83337.cpp
+++ b/src/devices/cpu/h8/h83337.cpp
@@ -48,27 +48,6 @@ h83336_device::h83336_device(const machine_config &mconfig, const char *tag, dev
{
}
-static MACHINE_CONFIG_START(h83337)
- MCFG_H8_INTC_ADD("intc")
- MCFG_H8_ADC_3337_ADD("adc", "intc", 35)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf8, 0xf8)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0x80, 0x80)
- MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0x00, 0x00)
- MCFG_H8_TIMER8_CHANNEL_ADD("timer8_0", "intc", 19, 20, 21, 8, 2, 64, 32, 1024, 256)
- MCFG_H8_TIMER8_CHANNEL_ADD("timer8_1", "intc", 22, 23, 24, 8, 2, 64, 128, 1024, 2048)
- MCFG_H8_TIMER16_ADD("timer16", 1, 0xff)
- MCFG_H8_TIMER16_CHANNEL_ADD("timer16:0", 4, 0, "intc", 32)
- MCFG_H8_SCI_ADD("sci0", "intc", 27, 28, 29, 30)
- MCFG_H8_SCI_ADD("sci1", "intc", 31, 32, 33, 34)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 36, h8_watchdog_device::B)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h83337_device)
AM_RANGE(ram_start, 0xff7f) AM_RAM
@@ -135,10 +114,26 @@ DEVICE_ADDRESS_MAP_START(map, 16, h83337_device)
AM_RANGE(0xfff2, 0xfff3) AM_DEVREADWRITE8("port6", h8_port_device, pcr_r, pcr_w, 0xff00)
ADDRESS_MAP_END
-machine_config_constructor h83337_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h83337);
-}
+MACHINE_CONFIG_MEMBER(h83337_device::device_add_mconfig)
+ MCFG_H8_INTC_ADD("intc")
+ MCFG_H8_ADC_3337_ADD("adc", "intc", 35)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf8, 0xf8)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port7", h8_device::PORT_7, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port8", h8_device::PORT_8, 0x80, 0x80)
+ MCFG_H8_PORT_ADD("port9", h8_device::PORT_9, 0x00, 0x00)
+ MCFG_H8_TIMER8_CHANNEL_ADD("timer8_0", "intc", 19, 20, 21, 8, 2, 64, 32, 1024, 256)
+ MCFG_H8_TIMER8_CHANNEL_ADD("timer8_1", "intc", 22, 23, 24, 8, 2, 64, 128, 1024, 2048)
+ MCFG_H8_TIMER16_ADD("timer16", 1, 0xff)
+ MCFG_H8_TIMER16_CHANNEL_ADD("timer16:0", 4, 0, "intc", 32)
+ MCFG_H8_SCI_ADD("sci0", "intc", 27, 28, 29, 30)
+ MCFG_H8_SCI_ADD("sci1", "intc", 31, 32, 33, 34)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 36, h8_watchdog_device::B)
+MACHINE_CONFIG_END
void h83337_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h83337.h b/src/devices/cpu/h8/h83337.h
index b29872b4c08..a2e0c18aa87 100644
--- a/src/devices/cpu/h8/h83337.h
+++ b/src/devices/cpu/h8/h83337.h
@@ -74,7 +74,7 @@ protected:
virtual void interrupt_taken() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h8s2245.cpp b/src/devices/cpu/h8/h8s2245.cpp
index 3d07aa14ee0..3c9426e9f9b 100644
--- a/src/devices/cpu/h8/h8s2245.cpp
+++ b/src/devices/cpu/h8/h8s2245.cpp
@@ -61,59 +61,6 @@ h8s2246_device::h8s2246_device(const machine_config &mconfig, const char *tag, d
{
}
-static MACHINE_CONFIG_START(h8s2245)
- MCFG_H8S_INTC_ADD("intc")
- MCFG_H8_ADC_2245_ADD("adc", "intc", 28)
- MCFG_H8_DTC_ADD("dtc", "intc", 24)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0x00)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8_TIMER16_ADD("timer16", 3, 0x00)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024)
- MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
- MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
- MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h8s2245_device)
AM_RANGE(ram_start, 0xfffbff) AM_RAM
@@ -228,10 +175,58 @@ DEVICE_ADDRESS_MAP_START(map, 16, h8s2245_device)
AM_RANGE(0xfffff8, 0xfffffb) AM_DEVREADWRITE( "timer16:2", h8_timer16_channel_device, tgr_r, tgr_w )
ADDRESS_MAP_END
-machine_config_constructor h8s2245_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h8s2245);
-}
+MACHINE_CONFIG_MEMBER(h8s2245_device::device_add_mconfig)
+ MCFG_H8S_INTC_ADD("intc")
+ MCFG_H8_ADC_2245_ADD("adc", "intc", 28)
+ MCFG_H8_DTC_ADD("dtc", "intc", 24)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0x00)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8_TIMER16_ADD("timer16", 3, 0x00)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024)
+ MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
+ MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
+ MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
+MACHINE_CONFIG_END
void h8s2245_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h8s2245.h b/src/devices/cpu/h8/h8s2245.h
index 54d6d3a5b27..e89e623e463 100644
--- a/src/devices/cpu/h8/h8s2245.h
+++ b/src/devices/cpu/h8/h8s2245.h
@@ -81,7 +81,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h8s2320.cpp b/src/devices/cpu/h8/h8s2320.cpp
index 913c7eee6b4..d1aba3eae96 100644
--- a/src/devices/cpu/h8/h8s2320.cpp
+++ b/src/devices/cpu/h8/h8s2320.cpp
@@ -98,93 +98,6 @@ h8s2329_device::h8s2329_device(const machine_config &mconfig, const char *tag, d
{
}
-// TODO: the 2321 doesn't have the dma subdevice
-
-static MACHINE_CONFIG_START(h8s2320)
- MCFG_H8S_INTC_ADD("intc")
- MCFG_H8_ADC_2320_ADD("adc", "intc", 28)
- MCFG_H8_DMA_ADD("dma")
- MCFG_H8_DMA_CHANNEL_ADD("dma:0", "intc", 72, h8_dma_channel_device::NONE, 28, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, 82, 81, 86, 85, 32, 40, 44, 48, 56, 60, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
- MCFG_H8_DMA_CHANNEL_ADD("dma:1", "intc", 74, h8_dma_channel_device::NONE, 28, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 82, 81, 86, 85, 32, 40, 44, 48, 56, 60, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
- MCFG_H8_DTC_ADD("dtc", "intc", 24)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::DIV_4096)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
- MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
- MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::H)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h8s2320_device)
AM_RANGE(ram_start, 0xfffbff) AM_RAM
@@ -348,10 +261,92 @@ DEVICE_ADDRESS_MAP_START(map, 16, h8s2320_device)
AM_RANGE(0xfffff8, 0xfffffb) AM_DEVREADWRITE( "timer16:2", h8_timer16_channel_device, tgr_r, tgr_w )
ADDRESS_MAP_END
-machine_config_constructor h8s2320_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h8s2320);
-}
+// TODO: the 2321 doesn't have the dma subdevice
+
+MACHINE_CONFIG_MEMBER(h8s2320_device::device_add_mconfig)
+ MCFG_H8S_INTC_ADD("intc")
+ MCFG_H8_ADC_2320_ADD("adc", "intc", 28)
+ MCFG_H8_DMA_ADD("dma")
+ MCFG_H8_DMA_CHANNEL_ADD("dma:0", "intc", 72, h8_dma_channel_device::NONE, 28, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE, 82, 81, 86, 85, 32, 40, 44, 48, 56, 60, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
+ MCFG_H8_DMA_CHANNEL_ADD("dma:1", "intc", 74, h8_dma_channel_device::NONE, 28, h8_dma_channel_device::DREQ_EDGE, h8_dma_channel_device::DREQ_LEVEL, 82, 81, 86, 85, 32, 40, 44, 48, 56, 60, h8_dma_channel_device::NONE, h8_dma_channel_device::NONE)
+ MCFG_H8_DTC_ADD("dtc", "intc", 24)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::DIV_4096)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
+ MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
+ MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::H)
+MACHINE_CONFIG_END
void h8s2320_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h8s2320.h b/src/devices/cpu/h8/h8s2320.h
index df0e7898a5a..977b300fb4d 100644
--- a/src/devices/cpu/h8/h8s2320.h
+++ b/src/devices/cpu/h8/h8s2320.h
@@ -92,7 +92,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h8s2357.cpp b/src/devices/cpu/h8/h8s2357.cpp
index a05a4aea544..5cdc590575e 100644
--- a/src/devices/cpu/h8/h8s2357.cpp
+++ b/src/devices/cpu/h8/h8s2357.cpp
@@ -75,87 +75,6 @@ h8s2390_device::h8s2390_device(const machine_config &mconfig, const char *tag, d
{
}
-static MACHINE_CONFIG_START(h8s2357)
- MCFG_H8S_INTC_ADD("intc")
- MCFG_H8_ADC_2357_ADD("adc", "intc", 28)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::DIV_4096)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
- MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
- MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h8s2357_device)
AM_RANGE(ram_start, 0xfffbff) AM_RAM
AM_RANGE(0xfffe80, 0xfffe81) AM_DEVREADWRITE8("timer16:3", h8_timer16_channel_device, tcr_r, tcr_w, 0xff00)
@@ -290,10 +209,86 @@ DEVICE_ADDRESS_MAP_START(map, 16, h8s2357_device)
AM_RANGE(0xfffff8, 0xfffffb) AM_DEVREADWRITE( "timer16:2", h8_timer16_channel_device, tgr_r, tgr_w )
ADDRESS_MAP_END
-machine_config_constructor h8s2357_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h8s2357);
-}
+MACHINE_CONFIG_MEMBER(h8s2357_device::device_add_mconfig)
+ MCFG_H8S_INTC_ADD("intc")
+ MCFG_H8_ADC_2357_ADD("adc", "intc", 28)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::DIV_4096)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
+ MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
+ MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
+MACHINE_CONFIG_END
void h8s2357_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h8s2357.h b/src/devices/cpu/h8/h8s2357.h
index 8e9d3bb7ea8..032062fad3e 100644
--- a/src/devices/cpu/h8/h8s2357.h
+++ b/src/devices/cpu/h8/h8s2357.h
@@ -83,7 +83,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/h8/h8s2655.cpp b/src/devices/cpu/h8/h8s2655.cpp
index d9d3df1e60c..7bb73ba90e2 100644
--- a/src/devices/cpu/h8/h8s2655.cpp
+++ b/src/devices/cpu/h8/h8s2655.cpp
@@ -52,87 +52,6 @@ h8s2653_device::h8s2653_device(const machine_config &mconfig, const char *tag, d
{
}
-static MACHINE_CONFIG_START(h8s2655)
- MCFG_H8S_INTC_ADD("intc")
- MCFG_H8_ADC_2655_ADD("adc", "intc", 28)
- MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
- MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
- MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
- MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
- MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
- MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
- MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
- MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_B,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::DIV_4096)
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_1024,
- h8_timer16_channel_device::CHAIN)
- MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
- MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
- h8_timer16_channel_device::DIV_1,
- h8_timer16_channel_device::DIV_4,
- h8_timer16_channel_device::DIV_16,
- h8_timer16_channel_device::DIV_64,
- h8_timer16_channel_device::INPUT_A,
- h8_timer16_channel_device::INPUT_C,
- h8_timer16_channel_device::DIV_256,
- h8_timer16_channel_device::INPUT_D)
- MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
- MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
- MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
- MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
-MACHINE_CONFIG_END
-
DEVICE_ADDRESS_MAP_START(map, 16, h8s2655_device)
AM_RANGE(0xffec00, 0xfffbff) AM_RAM
AM_RANGE(0xfffe80, 0xfffe81) AM_DEVREADWRITE8("timer16:3", h8_timer16_channel_device, tcr_r, tcr_w, 0xff00)
@@ -268,10 +187,86 @@ DEVICE_ADDRESS_MAP_START(map, 16, h8s2655_device)
AM_RANGE(0xfffff8, 0xfffffb) AM_DEVREADWRITE( "timer16:2", h8_timer16_channel_device, tgr_r, tgr_w )
ADDRESS_MAP_END
-machine_config_constructor h8s2655_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(h8s2655);
-}
+MACHINE_CONFIG_MEMBER(h8s2655_device::device_add_mconfig)
+ MCFG_H8S_INTC_ADD("intc")
+ MCFG_H8_ADC_2655_ADD("adc", "intc", 28)
+ MCFG_H8_PORT_ADD("port1", h8_device::PORT_1, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port2", h8_device::PORT_2, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port3", h8_device::PORT_3, 0xc0, 0xc0)
+ MCFG_H8_PORT_ADD("port4", h8_device::PORT_4, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("port5", h8_device::PORT_5, 0xf0, 0xf0)
+ MCFG_H8_PORT_ADD("port6", h8_device::PORT_6, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porta", h8_device::PORT_A, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portb", h8_device::PORT_B, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portc", h8_device::PORT_C, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portd", h8_device::PORT_D, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("porte", h8_device::PORT_E, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portf", h8_device::PORT_F, 0x00, 0x00)
+ MCFG_H8_PORT_ADD("portg", h8_device::PORT_G, 0xe0, 0xe0)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_0", "intc", 64, 65, 66, "timer8_1", h8_timer8_channel_device::CHAIN_OVERFLOW, true, false)
+ MCFG_H8H_TIMER8_CHANNEL_ADD("timer8_1", "intc", 68, 69, 70, "timer8_0", h8_timer8_channel_device::CHAIN_A, false, false)
+ MCFG_H8_TIMER16_ADD("timer16", 6, 0x00)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:0", 4, 0x60, "intc", 32,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:1", 2, 0x4c, "intc", 40,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:2")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:2", 2, 0x4c, "intc", 44,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_B,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:3", 4, 0x60, "intc", 48,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::DIV_4096)
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:4", 2, 0x4c, "intc", 56,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_1024,
+ h8_timer16_channel_device::CHAIN)
+ MCFG_H8S_TIMER16_CHANNEL_SET_CHAIN("timer16:5")
+ MCFG_H8S_TIMER16_CHANNEL_ADD("timer16:5", 2, 0x4c, "intc", 60,
+ h8_timer16_channel_device::DIV_1,
+ h8_timer16_channel_device::DIV_4,
+ h8_timer16_channel_device::DIV_16,
+ h8_timer16_channel_device::DIV_64,
+ h8_timer16_channel_device::INPUT_A,
+ h8_timer16_channel_device::INPUT_C,
+ h8_timer16_channel_device::DIV_256,
+ h8_timer16_channel_device::INPUT_D)
+ MCFG_H8_SCI_ADD("sci0", "intc", 80, 81, 82, 83)
+ MCFG_H8_SCI_ADD("sci1", "intc", 84, 85, 86, 87)
+ MCFG_H8_SCI_ADD("sci2", "intc", 88, 89, 90, 91)
+ MCFG_H8_WATCHDOG_ADD("watchdog", "intc", 25, h8_watchdog_device::S)
+MACHINE_CONFIG_END
void h8s2655_device::execute_set_input(int inputnum, int state)
{
diff --git a/src/devices/cpu/h8/h8s2655.h b/src/devices/cpu/h8/h8s2655.h
index 0d8c310a91c..a4c4b76618f 100644
--- a/src/devices/cpu/h8/h8s2655.h
+++ b/src/devices/cpu/h8/h8s2655.h
@@ -74,7 +74,7 @@ protected:
virtual int trapa_setup() override;
virtual void irq_setup() override;
virtual void internal_update(uint64_t current_time) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
DECLARE_ADDRESS_MAP(map, 16);
virtual void device_start() override;
diff --git a/src/devices/cpu/i8089/i8089.cpp b/src/devices/cpu/i8089/i8089.cpp
index 6e5eb757cef..681eb630444 100644
--- a/src/devices/cpu/i8089/i8089.cpp
+++ b/src/devices/cpu/i8089/i8089.cpp
@@ -207,22 +207,16 @@ void i8089_device::state_string_export(const device_state_entry &entry, std::str
}
//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
+// device_add_mconfig - add device configuration
//-------------------------------------------------
-static MACHINE_CONFIG_START( i8089 )
+MACHINE_CONFIG_MEMBER( i8089_device::device_add_mconfig )
MCFG_I8089_CHANNEL_ADD("1")
MCFG_I8089_CHANNEL_SINTR(WRITELINE(i8089_device, ch1_sintr_w))
MCFG_I8089_CHANNEL_ADD("2")
MCFG_I8089_CHANNEL_SINTR(WRITELINE(i8089_device, ch2_sintr_w))
MACHINE_CONFIG_END
-machine_config_constructor i8089_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( i8089 );
-}
-
//**************************************************************************
// IMPLEMENTATION
diff --git a/src/devices/cpu/i8089/i8089.h b/src/devices/cpu/i8089/i8089.h
index e6e48faa7a2..eae74ca1cb2 100644
--- a/src/devices/cpu/i8089/i8089.h
+++ b/src/devices/cpu/i8089/i8089.h
@@ -64,10 +64,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( ext1_w );
DECLARE_WRITE_LINE_MEMBER( ext2_w );
- // internal communication
- DECLARE_WRITE_LINE_MEMBER( ch1_sintr_w ) { m_write_sintr1(state); }
- DECLARE_WRITE_LINE_MEMBER( ch2_sintr_w ) { m_write_sintr2(state); }
-
protected:
// device-level overrides
virtual void device_start() override;
@@ -94,13 +90,17 @@ protected:
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
// optional information overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
private:
bool sysbus_width() const { return BIT(m_sysbus, 0); }
bool remotebus_width() const { return BIT(m_soc, 0); }
bool request_grant() const { return BIT(m_soc, 1); }
+ // internal communication
+ DECLARE_WRITE_LINE_MEMBER( ch1_sintr_w ) { m_write_sintr1(state); }
+ DECLARE_WRITE_LINE_MEMBER( ch2_sintr_w ) { m_write_sintr2(state); }
+
uint8_t read_byte(bool space, offs_t address);
uint16_t read_word(bool space, offs_t address);
void write_byte(bool space, offs_t address, uint8_t data);
diff --git a/src/devices/cpu/m6502/n2a03.cpp b/src/devices/cpu/m6502/n2a03.cpp
index 592c0071ec6..40cdba9f44a 100644
--- a/src/devices/cpu/m6502/n2a03.cpp
+++ b/src/devices/cpu/m6502/n2a03.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Olivier Galibert
/***************************************************************************
- m6502.c
+ n2a03.cpp
6502, NES variant
@@ -141,7 +141,7 @@ READ8_MEMBER(n2a03_device::apu_read_mem)
return mintf->program->read_byte(offset);
}
-static MACHINE_CONFIG_START( n2a03_device )
+MACHINE_CONFIG_MEMBER( n2a03_device::device_add_mconfig )
MCFG_SOUND_ADD("nesapu", NES_APU, DERIVED_CLOCK(1,1) )
MCFG_NES_APU_IRQ_HANDLER(WRITELINE(n2a03_device, apu_irq))
MCFG_NES_APU_MEM_READ_CALLBACK(READ8(n2a03_device, apu_read_mem))
@@ -150,10 +150,5 @@ static MACHINE_CONFIG_START( n2a03_device )
MACHINE_CONFIG_END
-machine_config_constructor n2a03_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( n2a03_device );
-}
-
#include "cpu/m6502/n2a03.hxx"
diff --git a/src/devices/cpu/m6502/n2a03.h b/src/devices/cpu/m6502/n2a03.h
index 3b7d0bfcfd3..d27b0904d5d 100644
--- a/src/devices/cpu/m6502/n2a03.h
+++ b/src/devices/cpu/m6502/n2a03.h
@@ -19,8 +19,6 @@ class n2a03_device : public m6502_device {
public:
n2a03_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- required_device<nesapu_device> m_apu;
-
static const disasm_entry disasm_entries[0x100];
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override;
@@ -33,8 +31,7 @@ public:
WRITE8_MEMBER(psg1_4015_w);
WRITE8_MEMBER(psg1_4017_w);
- DECLARE_WRITE_LINE_MEMBER(apu_irq);
- DECLARE_READ8_MEMBER(apu_read_mem);
+ required_device<nesapu_device> m_apu; // public for vgmplay
protected:
class mi_2a03_normal : public memory_interface {
@@ -68,12 +65,15 @@ protected:
#undef O
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override;
private:
address_space_config m_program_config;
+ DECLARE_WRITE_LINE_MEMBER(apu_irq);
+ DECLARE_READ8_MEMBER(apu_read_mem);
+
};
/* These are the official XTAL values and clock rates used by Nintendo for
diff --git a/src/devices/cpu/nec/v53.cpp b/src/devices/cpu/nec/v53.cpp
index 904188fb804..4d6aa65b08c 100644
--- a/src/devices/cpu/nec/v53.cpp
+++ b/src/devices/cpu/nec/v53.cpp
@@ -478,7 +478,7 @@ WRITE_LINE_MEMBER(v53_base_device::internal_irq_w)
}
-static MACHINE_CONFIG_START( v53 )
+MACHINE_CONFIG_MEMBER( v53_base_device::device_add_mconfig )
MCFG_DEVICE_ADD("pit", PIT8254, 0) // functionality identical to uPD71054
MCFG_PIT8253_CLK0(16000000) // manual implicitly claims that these runs at same speed as the CPU
@@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( v53 )
MCFG_AM9517A_OUT_DACK_3_CB(WRITELINE(v53_base_device, dma_dack3_trampoline_w))
- MCFG_PIC8259_ADD( "upd71059pic", WRITELINE(v53_base_device, internal_irq_w), VCC, READ8(v53_base_device,get_pic_ack))
+ MCFG_PIC8259_ADD( "upd71059pic", WRITELINE(v53_base_device, internal_irq_w), VCC, READ8(v53_base_device, get_pic_ack))
@@ -523,11 +523,6 @@ static MACHINE_CONFIG_START( v53 )
MACHINE_CONFIG_END
-machine_config_constructor v53_base_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( v53 );
-}
-
v53_base_device::v53_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type)
: nec_common_device(mconfig, type, tag, owner, clock, true, fetch_xor, prefetch_size, prefetch_cycles, chip_type),
diff --git a/src/devices/cpu/nec/v53.h b/src/devices/cpu/nec/v53.h
index 315fa97a8d0..86dfab2b829 100644
--- a/src/devices/cpu/nec/v53.h
+++ b/src/devices/cpu/nec/v53.h
@@ -185,23 +185,6 @@ public:
template<class Object> static devcb_base &set_out_dack_1_callback(device_t &device, Object &&cb) { return downcast<v53_base_device &>(device).m_out_dack_1_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> static devcb_base &set_out_dack_2_callback(device_t &device, Object &&cb) { return downcast<v53_base_device &>(device).m_out_dack_2_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> static devcb_base &set_out_dack_3_callback(device_t &device, Object &&cb) { return downcast<v53_base_device &>(device).m_out_dack_3_cb.set_callback(std::forward<Object>(cb)); }
- DECLARE_WRITE_LINE_MEMBER(hreq_trampoline_cb) { m_out_hreq_cb(state); }
- DECLARE_WRITE_LINE_MEMBER(eop_trampoline_cb) { m_out_eop_cb(state); }
- DECLARE_READ8_MEMBER(dma_memr_trampoline_r) { return m_in_memr_cb(space, offset); }
- DECLARE_WRITE8_MEMBER(dma_memw_trampoline_w) { m_out_memw_cb(space, offset, data); }
- DECLARE_READ8_MEMBER(dma_io_0_trampoline_r) { return m_in_ior_0_cb(space, offset); }
- DECLARE_READ8_MEMBER(dma_io_1_trampoline_r) { return m_in_ior_1_cb(space, offset); }
- DECLARE_READ8_MEMBER(dma_io_2_trampoline_r) { return m_in_ior_2_cb(space, offset); }
- DECLARE_READ8_MEMBER(dma_io_3_trampoline_r) { return m_in_ior_3_cb(space, offset); }
- DECLARE_WRITE8_MEMBER(dma_io_0_trampoline_w) { m_out_iow_0_cb(space, offset, data); }
- DECLARE_WRITE8_MEMBER(dma_io_1_trampoline_w) { m_out_iow_1_cb(space, offset, data); }
- DECLARE_WRITE8_MEMBER(dma_io_2_trampoline_w) { m_out_iow_2_cb(space, offset, data); }
- DECLARE_WRITE8_MEMBER(dma_io_3_trampoline_w) { m_out_iow_3_cb(space, offset, data); }
- DECLARE_WRITE_LINE_MEMBER(dma_dack0_trampoline_w) { m_out_dack_0_cb(state); }
- DECLARE_WRITE_LINE_MEMBER(dma_dack1_trampoline_w) { m_out_dack_1_cb(state); }
- DECLARE_WRITE_LINE_MEMBER(dma_dack2_trampoline_w) { m_out_dack_2_cb(state); }
- DECLARE_WRITE_LINE_MEMBER(dma_dack3_trampoline_w) { m_out_dack_3_cb(state); }
-
DECLARE_WRITE_LINE_MEMBER(dreq0_w);
DECLARE_WRITE_LINE_MEMBER(dreq1_w);
@@ -209,16 +192,11 @@ public:
DECLARE_WRITE_LINE_MEMBER(dreq3_w);
DECLARE_WRITE_LINE_MEMBER(hack_w);
-
- DECLARE_READ8_MEMBER(get_pic_ack);
- DECLARE_WRITE_LINE_MEMBER(internal_irq_w);
-
-
protected:
v53_base_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, offs_t fetch_xor, uint8_t prefetch_size, uint8_t prefetch_cycles, uint32_t chip_type);
// device-level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
virtual void execute_set_input(int inputnum, int state) override;
@@ -288,6 +266,25 @@ protected:
devcb_write_line m_out_dack_1_cb;
devcb_write_line m_out_dack_2_cb;
devcb_write_line m_out_dack_3_cb;
+
+ DECLARE_WRITE_LINE_MEMBER(hreq_trampoline_cb) { m_out_hreq_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER(eop_trampoline_cb) { m_out_eop_cb(state); }
+ DECLARE_READ8_MEMBER(dma_memr_trampoline_r) { return m_in_memr_cb(space, offset); }
+ DECLARE_WRITE8_MEMBER(dma_memw_trampoline_w) { m_out_memw_cb(space, offset, data); }
+ DECLARE_READ8_MEMBER(dma_io_0_trampoline_r) { return m_in_ior_0_cb(space, offset); }
+ DECLARE_READ8_MEMBER(dma_io_1_trampoline_r) { return m_in_ior_1_cb(space, offset); }
+ DECLARE_READ8_MEMBER(dma_io_2_trampoline_r) { return m_in_ior_2_cb(space, offset); }
+ DECLARE_READ8_MEMBER(dma_io_3_trampoline_r) { return m_in_ior_3_cb(space, offset); }
+ DECLARE_WRITE8_MEMBER(dma_io_0_trampoline_w) { m_out_iow_0_cb(space, offset, data); }
+ DECLARE_WRITE8_MEMBER(dma_io_1_trampoline_w) { m_out_iow_1_cb(space, offset, data); }
+ DECLARE_WRITE8_MEMBER(dma_io_2_trampoline_w) { m_out_iow_2_cb(space, offset, data); }
+ DECLARE_WRITE8_MEMBER(dma_io_3_trampoline_w) { m_out_iow_3_cb(space, offset, data); }
+ DECLARE_WRITE_LINE_MEMBER(dma_dack0_trampoline_w) { m_out_dack_0_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER(dma_dack1_trampoline_w) { m_out_dack_1_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER(dma_dack2_trampoline_w) { m_out_dack_2_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER(dma_dack3_trampoline_w) { m_out_dack_3_cb(state); }
+ DECLARE_READ8_MEMBER(get_pic_ack);
+ DECLARE_WRITE_LINE_MEMBER(internal_irq_w);
};
diff --git a/src/devices/cpu/psx/psx.cpp b/src/devices/cpu/psx/psx.cpp
index 66608f3f870..d436572cf08 100644
--- a/src/devices/cpu/psx/psx.cpp
+++ b/src/devices/cpu/psx/psx.cpp
@@ -3385,7 +3385,12 @@ void psxcpu_device::set_disable_rom_berr(bool mode)
m_disable_rom_berr = mode;
}
-static MACHINE_CONFIG_START( psx )
+
+//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+MACHINE_CONFIG_MEMBER( psxcpu_device::device_add_mconfig )
MCFG_DEVICE_ADD( "irq", PSX_IRQ, 0 )
MCFG_PSX_IRQ_HANDLER( INPUTLINE( DEVICE_SELF, PSXCPU_IRQ0 ) )
@@ -3410,13 +3415,3 @@ static MACHINE_CONFIG_START( psx )
MCFG_RAM_ADD( "ram" )
MCFG_RAM_DEFAULT_VALUE( 0x00 )
MACHINE_CONFIG_END
-
-//-------------------------------------------------
-// machine_config_additions - return a pointer to
-// the device's machine fragment
-//-------------------------------------------------
-
-machine_config_constructor psxcpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( psx );
-}
diff --git a/src/devices/cpu/psx/psx.h b/src/devices/cpu/psx/psx.h
index 1dc04cd6c3c..05bc0266940 100644
--- a/src/devices/cpu/psx/psx.h
+++ b/src/devices/cpu/psx/psx.h
@@ -199,7 +199,7 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
// device_execute_interface overrides
virtual uint32_t execute_min_cycles() const override { return 1; }
diff --git a/src/devices/cpu/tms1000/tms0270.cpp b/src/devices/cpu/tms1000/tms0270.cpp
index 2597d8a50f4..3e66a4cf9bd 100644
--- a/src/devices/cpu/tms1000/tms0270.cpp
+++ b/src/devices/cpu/tms1000/tms0270.cpp
@@ -43,7 +43,7 @@ tms0270_cpu_device::tms0270_cpu_device(const machine_config &mconfig, const char
// machine configs
-static MACHINE_CONFIG_START(tms0270)
+MACHINE_CONFIG_MEMBER(tms0270_cpu_device::device_add_mconfig)
// main opcodes PLA, microinstructions PLA, output PLA
MCFG_PLA_ADD("ipla", 9, 22, 24)
@@ -54,11 +54,6 @@ static MACHINE_CONFIG_START(tms0270)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms0270_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms0270);
-}
-
// device_start/reset
void tms0270_cpu_device::device_start()
diff --git a/src/devices/cpu/tms1000/tms0270.h b/src/devices/cpu/tms1000/tms0270.h
index e8e1d804aa3..a4fa7108d59 100644
--- a/src/devices/cpu/tms1000/tms0270.h
+++ b/src/devices/cpu/tms1000/tms0270.h
@@ -40,7 +40,7 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void write_o_output(u8 index) override { tms1k_base_device::write_o_output(index); }
virtual u8 read_k_input() override;
diff --git a/src/devices/cpu/tms1000/tms0970.cpp b/src/devices/cpu/tms1000/tms0970.cpp
index 28f24f9a641..503f95def3e 100644
--- a/src/devices/cpu/tms1000/tms0970.cpp
+++ b/src/devices/cpu/tms1000/tms0970.cpp
@@ -59,7 +59,7 @@ tms1990_cpu_device::tms1990_cpu_device(const machine_config &mconfig, const char
// machine configs
-static MACHINE_CONFIG_START(tms0950)
+MACHINE_CONFIG_MEMBER(tms0950_cpu_device::device_add_mconfig)
// microinstructions PLA, output PLA, segment PLA
MCFG_PLA_ADD("mpla", 8, 16, 30)
@@ -70,12 +70,7 @@ static MACHINE_CONFIG_START(tms0950)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms0950_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms0950);
-}
-
-static MACHINE_CONFIG_START(tms0970)
+MACHINE_CONFIG_MEMBER(tms0970_cpu_device::device_add_mconfig)
// main opcodes PLA, microinstructions PLA, output PLA, segment PLA
MCFG_PLA_ADD("ipla", 8, 15, 18)
@@ -88,11 +83,6 @@ static MACHINE_CONFIG_START(tms0970)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms0970_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms0970);
-}
-
// device_reset
void tms0970_cpu_device::device_reset()
diff --git a/src/devices/cpu/tms1000/tms0970.h b/src/devices/cpu/tms1000/tms0970.h
index 3fb46975a3e..5200f62afbb 100644
--- a/src/devices/cpu/tms1000/tms0970.h
+++ b/src/devices/cpu/tms1000/tms0970.h
@@ -24,7 +24,7 @@ protected:
// overrides
virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void write_o_output(u8 index) override;
@@ -40,7 +40,7 @@ public:
protected:
// overrides
virtual void device_reset() override { tms1000_cpu_device::device_reset(); }
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void op_rstr() override { } // assume it has no RSTR or CLO
virtual void op_clo() override { } // "
diff --git a/src/devices/cpu/tms1000/tms0980.cpp b/src/devices/cpu/tms1000/tms0980.cpp
index 13dc7e3921c..3059ff7b1d1 100644
--- a/src/devices/cpu/tms1000/tms0980.cpp
+++ b/src/devices/cpu/tms1000/tms0980.cpp
@@ -58,7 +58,7 @@ tms1980_cpu_device::tms1980_cpu_device(const machine_config &mconfig, const char
// machine configs
-static MACHINE_CONFIG_START(tms0980)
+MACHINE_CONFIG_MEMBER(tms0980_cpu_device::device_add_mconfig)
// main opcodes PLA, microinstructions PLA, output PLA, segment PLA
MCFG_PLA_ADD("ipla", 9, 22, 24)
@@ -71,12 +71,7 @@ static MACHINE_CONFIG_START(tms0980)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms0980_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms0980);
-}
-
-static MACHINE_CONFIG_START(tms1980)
+MACHINE_CONFIG_MEMBER(tms1980_cpu_device::device_add_mconfig)
// main opcodes PLA, microinstructions PLA, output PLA
MCFG_PLA_ADD("ipla", 9, 22, 24)
@@ -87,11 +82,6 @@ static MACHINE_CONFIG_START(tms1980)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms1980_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms1980);
-}
-
// disasm
offs_t tms0980_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options)
diff --git a/src/devices/cpu/tms1000/tms0980.h b/src/devices/cpu/tms1000/tms0980.h
index 883dc3d643d..c258eadc12b 100644
--- a/src/devices/cpu/tms1000/tms0980.h
+++ b/src/devices/cpu/tms1000/tms0980.h
@@ -27,7 +27,7 @@ protected:
virtual u32 decode_micro(u8 sel);
virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual u32 disasm_min_opcode_bytes() const override { return 2; }
virtual u32 disasm_max_opcode_bytes() const override { return 2; }
@@ -48,7 +48,7 @@ public:
protected:
// overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void write_o_output(u8 index) override { tms1k_base_device::write_o_output(index); }
virtual u8 read_k_input() override { return tms1k_base_device::read_k_input(); }
diff --git a/src/devices/cpu/tms1000/tms1000.cpp b/src/devices/cpu/tms1000/tms1000.cpp
index 699b21b2132..55ac2a01d8c 100644
--- a/src/devices/cpu/tms1000/tms1000.cpp
+++ b/src/devices/cpu/tms1000/tms1000.cpp
@@ -102,7 +102,7 @@ mc141200_cpu_device::mc141200_cpu_device(const machine_config &mconfig, const ch
// machine configs
-static MACHINE_CONFIG_START(tms1000)
+ MACHINE_CONFIG_MEMBER(tms1000_cpu_device::device_add_mconfig)
// microinstructions PLA, output PLA
MCFG_PLA_ADD("mpla", 8, 16, 30)
@@ -111,12 +111,6 @@ static MACHINE_CONFIG_START(tms1000)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms1000_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms1000);
-}
-
-
// disasm
offs_t tms1000_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options)
{
diff --git a/src/devices/cpu/tms1000/tms1000.h b/src/devices/cpu/tms1000/tms1000.h
index 0498af05304..ae85b7ed579 100644
--- a/src/devices/cpu/tms1000/tms1000.h
+++ b/src/devices/cpu/tms1000/tms1000.h
@@ -24,7 +24,7 @@ protected:
// overrides
virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override;
diff --git a/src/devices/cpu/tms1000/tms1400.cpp b/src/devices/cpu/tms1000/tms1400.cpp
index 9073a01f751..470136a16e5 100644
--- a/src/devices/cpu/tms1000/tms1400.cpp
+++ b/src/devices/cpu/tms1000/tms1400.cpp
@@ -70,7 +70,7 @@ tms1670_cpu_device::tms1670_cpu_device(const machine_config &mconfig, const char
// machine configs
-static MACHINE_CONFIG_START(tms1400)
+MACHINE_CONFIG_MEMBER(tms1400_cpu_device::device_add_mconfig)
// microinstructions PLA, output PLA
MCFG_PLA_ADD("mpla", 8, 16, 30)
@@ -79,11 +79,6 @@ static MACHINE_CONFIG_START(tms1400)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tms1400_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tms1400);
-}
-
// device_reset
void tms1400_cpu_device::device_reset()
diff --git a/src/devices/cpu/tms1000/tms1400.h b/src/devices/cpu/tms1000/tms1400.h
index 7c5d3111cc1..59462360457 100644
--- a/src/devices/cpu/tms1000/tms1400.h
+++ b/src/devices/cpu/tms1000/tms1400.h
@@ -24,7 +24,7 @@ protected:
// overrides
virtual void device_reset() override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void op_br() override;
virtual void op_call() override;
diff --git a/src/devices/cpu/tms1000/tp0320.cpp b/src/devices/cpu/tms1000/tp0320.cpp
index 16ea3624a36..02e961f6473 100644
--- a/src/devices/cpu/tms1000/tp0320.cpp
+++ b/src/devices/cpu/tms1000/tp0320.cpp
@@ -44,7 +44,7 @@ tp0320_cpu_device::tp0320_cpu_device(const machine_config &mconfig, const char *
// machine configs
-static MACHINE_CONFIG_START(tp0320)
+MACHINE_CONFIG_MEMBER(tp0320_cpu_device::device_add_mconfig)
// main opcodes PLA(partial), microinstructions PLA
MCFG_PLA_ADD("ipla", 9, 6, 8)
@@ -53,11 +53,6 @@ static MACHINE_CONFIG_START(tp0320)
MCFG_PLA_FILEFORMAT(BERKELEY)
MACHINE_CONFIG_END
-machine_config_constructor tp0320_cpu_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME(tp0320);
-}
-
// disasm
offs_t tp0320_cpu_device::disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options)
diff --git a/src/devices/cpu/tms1000/tp0320.h b/src/devices/cpu/tms1000/tp0320.h
index d1558fa2dad..e740ae83320 100644
--- a/src/devices/cpu/tms1000/tp0320.h
+++ b/src/devices/cpu/tms1000/tp0320.h
@@ -28,7 +28,7 @@ protected:
virtual void device_reset() override;
virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const u8 *oprom, const u8 *opram, u32 options) override;
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
};
diff --git a/src/devices/cpu/z80/kl5c80a12.cpp b/src/devices/cpu/z80/kl5c80a12.cpp
index efb0f9ed625..00a48cd6154 100644
--- a/src/devices/cpu/z80/kl5c80a12.cpp
+++ b/src/devices/cpu/z80/kl5c80a12.cpp
@@ -46,10 +46,5 @@ void kl5c80a12_device::device_reset()
/* CPU interface */
-static MACHINE_CONFIG_START( kl5c80a12 )
+MACHINE_CONFIG_MEMBER( kl5c80a12_device::device_add_mconfig )
MACHINE_CONFIG_END
-
-machine_config_constructor kl5c80a12_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( kl5c80a12 );
-}
diff --git a/src/devices/cpu/z80/kl5c80a12.h b/src/devices/cpu/z80/kl5c80a12.h
index 5804e27af49..c9dbf4b118e 100644
--- a/src/devices/cpu/z80/kl5c80a12.h
+++ b/src/devices/cpu/z80/kl5c80a12.h
@@ -40,7 +40,7 @@ public:
protected:
// device-level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
};
diff --git a/src/devices/cpu/z80/tmpz84c011.cpp b/src/devices/cpu/z80/tmpz84c011.cpp
index 675b88d9a73..17d71eab222 100644
--- a/src/devices/cpu/z80/tmpz84c011.cpp
+++ b/src/devices/cpu/z80/tmpz84c011.cpp
@@ -111,15 +111,10 @@ void tmpz84c011_device::device_reset()
/* CPU interface */
-static MACHINE_CONFIG_START( tmpz84c011 )
+MACHINE_CONFIG_MEMBER( tmpz84c011_device::device_add_mconfig )
MCFG_DEVICE_ADD("tmpz84c011_ctc", Z80CTC, DERIVED_CLOCK(1,1) )
MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(tmpz84c011_device, zc0_cb_trampoline_w))
MCFG_Z80CTC_ZC1_CB(WRITELINE(tmpz84c011_device, zc1_cb_trampoline_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(tmpz84c011_device, zc2_cb_trampoline_w))
MACHINE_CONFIG_END
-
-machine_config_constructor tmpz84c011_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( tmpz84c011 );
-}
diff --git a/src/devices/cpu/z80/tmpz84c011.h b/src/devices/cpu/z80/tmpz84c011.h
index a446eba45e9..a713657f194 100644
--- a/src/devices/cpu/z80/tmpz84c011.h
+++ b/src/devices/cpu/z80/tmpz84c011.h
@@ -123,13 +123,9 @@ public:
DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pd_w ) { m_pio_dir[3] = data; }
DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pe_w ) { m_pio_dir[4] = data; }
- DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( zc2_cb_trampoline_w ) { m_zc2_cb(state); }
-
protected:
// device-level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
@@ -168,6 +164,10 @@ private:
devcb_write_line m_zc0_cb;
devcb_write_line m_zc1_cb;
devcb_write_line m_zc2_cb;
+
+ DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( zc2_cb_trampoline_w ) { m_zc2_cb(state); }
};
diff --git a/src/devices/cpu/z80/tmpz84c015.cpp b/src/devices/cpu/z80/tmpz84c015.cpp
index 65911d9d3d8..f80a690f706 100644
--- a/src/devices/cpu/z80/tmpz84c015.cpp
+++ b/src/devices/cpu/z80/tmpz84c015.cpp
@@ -172,7 +172,7 @@ WRITE8_MEMBER(tmpz84c015_device::irq_priority_w)
}
}
-static MACHINE_CONFIG_START( tmpz84c015 )
+MACHINE_CONFIG_MEMBER( tmpz84c015_device::device_add_mconfig )
/* basic machine hardware */
MCFG_Z80SIO0_ADD("tmpz84c015_sio", DERIVED_CLOCK(1,1), 0, 0, 0, 0)
@@ -213,8 +213,3 @@ static MACHINE_CONFIG_START( tmpz84c015 )
MCFG_Z80PIO_OUT_PB_CB(WRITE8(tmpz84c015_device, out_pb_cb_trampoline_w))
MCFG_Z80PIO_OUT_BRDY_CB(WRITELINE(tmpz84c015_device, out_brdy_cb_trampoline_w))
MACHINE_CONFIG_END
-
-machine_config_constructor tmpz84c015_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( tmpz84c015 );
-}
diff --git a/src/devices/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h
index 4e3c3b96afe..b9230c6a09b 100644
--- a/src/devices/cpu/z80/tmpz84c015.h
+++ b/src/devices/cpu/z80/tmpz84c015.h
@@ -174,38 +174,9 @@ public:
DECLARE_WRITE8_MEMBER( irq_priority_w );
- DECLARE_WRITE_LINE_MEMBER( out_txda_cb_trampoline_w ) { m_out_txda_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_dtra_cb_trampoline_w ) { m_out_dtra_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_rtsa_cb_trampoline_w ) { m_out_rtsa_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_wrdya_cb_trampoline_w ) { m_out_wrdya_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_synca_cb_trampoline_w ) { m_out_synca_cb(state); }
-
- DECLARE_WRITE_LINE_MEMBER( out_txdb_cb_trampoline_w ) { m_out_txdb_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_dtrb_cb_trampoline_w ) { m_out_dtrb_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_rtsb_cb_trampoline_w ) { m_out_rtsb_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_wrdyb_cb_trampoline_w ) { m_out_wrdyb_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_syncb_cb_trampoline_w ) { m_out_syncb_cb(state); }
-
- DECLARE_WRITE_LINE_MEMBER( out_rxdrqa_cb_trampoline_w ) { m_out_rxdrqa_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_txdrqa_cb_trampoline_w ) { m_out_txdrqa_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_rxdrqb_cb_trampoline_w ) { m_out_rxdrqb_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( out_txdrqb_cb_trampoline_w ) { m_out_txdrqb_cb(state); }
-
- DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); }
- DECLARE_WRITE_LINE_MEMBER( zc2_cb_trampoline_w ) { m_zc2_cb(state); }
-
- DECLARE_READ8_MEMBER( in_pa_cb_trampoline_r ) { return m_in_pa_cb(); }
- DECLARE_WRITE8_MEMBER( out_pa_cb_trampoline_w ) { m_out_pa_cb(data); }
- DECLARE_WRITE_LINE_MEMBER( out_ardy_cb_trampoline_w ) { m_out_ardy_cb(state); }
-
- DECLARE_READ8_MEMBER( in_pb_cb_trampoline_r ) { return m_in_pb_cb(); }
- DECLARE_WRITE8_MEMBER( out_pb_cb_trampoline_w ) { m_out_pb_cb(data); }
- DECLARE_WRITE_LINE_MEMBER( out_brdy_cb_trampoline_w ) { m_out_brdy_cb(state); }
-
protected:
// device-level overrides
- virtual machine_config_constructor device_mconfig_additions() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
virtual void device_start() override;
virtual void device_reset() override;
virtual void device_post_load() override;
@@ -259,6 +230,35 @@ private:
devcb_read8 m_in_pb_cb;
devcb_write8 m_out_pb_cb;
devcb_write_line m_out_brdy_cb;
+
+ DECLARE_WRITE_LINE_MEMBER( out_txda_cb_trampoline_w ) { m_out_txda_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_dtra_cb_trampoline_w ) { m_out_dtra_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_rtsa_cb_trampoline_w ) { m_out_rtsa_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_wrdya_cb_trampoline_w ) { m_out_wrdya_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_synca_cb_trampoline_w ) { m_out_synca_cb(state); }
+
+ DECLARE_WRITE_LINE_MEMBER( out_txdb_cb_trampoline_w ) { m_out_txdb_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_dtrb_cb_trampoline_w ) { m_out_dtrb_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_rtsb_cb_trampoline_w ) { m_out_rtsb_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_wrdyb_cb_trampoline_w ) { m_out_wrdyb_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_syncb_cb_trampoline_w ) { m_out_syncb_cb(state); }
+
+ DECLARE_WRITE_LINE_MEMBER( out_rxdrqa_cb_trampoline_w ) { m_out_rxdrqa_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_txdrqa_cb_trampoline_w ) { m_out_txdrqa_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_rxdrqb_cb_trampoline_w ) { m_out_rxdrqb_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( out_txdrqb_cb_trampoline_w ) { m_out_txdrqb_cb(state); }
+
+ DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( zc2_cb_trampoline_w ) { m_zc2_cb(state); }
+
+ DECLARE_READ8_MEMBER( in_pa_cb_trampoline_r ) { return m_in_pa_cb(); }
+ DECLARE_WRITE8_MEMBER( out_pa_cb_trampoline_w ) { m_out_pa_cb(data); }
+ DECLARE_WRITE_LINE_MEMBER( out_ardy_cb_trampoline_w ) { m_out_ardy_cb(state); }
+
+ DECLARE_READ8_MEMBER( in_pb_cb_trampoline_r ) { return m_in_pb_cb(); }
+ DECLARE_WRITE8_MEMBER( out_pb_cb_trampoline_w ) { m_out_pb_cb(data); }
+ DECLARE_WRITE_LINE_MEMBER( out_brdy_cb_trampoline_w ) { m_out_brdy_cb(state); }
};