diff options
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); } }; |