From 4cb48c238df9da2abbcac6ef15d9548cf48d8194 Mon Sep 17 00:00:00 2001 From: Ted Green Date: Tue, 4 Sep 2018 13:52:11 -0600 Subject: atlantis pci9050 iteagle_fpga: MCFG removal (nw). --- src/devices/machine/pci9050.h | 11 +--- src/mame/drivers/atlantis.cpp | 112 +++++++++++++++++++------------------- src/mame/machine/iteagle_fpga.cpp | 18 +++--- 3 files changed, 68 insertions(+), 73 deletions(-) diff --git a/src/devices/machine/pci9050.h b/src/devices/machine/pci9050.h index fe42ea4fa80..b6b2f172ba7 100644 --- a/src/devices/machine/pci9050.h +++ b/src/devices/machine/pci9050.h @@ -15,15 +15,6 @@ #include "machine/pci.h" -#define MCFG_PCI9050_SET_MAP(id, map) \ - downcast(device)->set_map(id, address_map_constructor(&map, #map, this), this); - -#define MCFG_PCI9050_USER_INPUT_CALLBACK(_write) \ - downcast(*device).set_user_input_callback(DEVCB_##_write); - -#define MCFG_PCI9050_USER_OUTPUT_CALLBACK(_read) \ - downcast(*device).set_user_output_callback(DEVCB_##_read); - class pci9050_device : public pci_device { public: @@ -31,6 +22,8 @@ public: template devcb_base &set_user_input_callback(Object &&cb) { return m_user_input_handler.set_callback(std::forward(cb)); } template devcb_base &set_user_output_callback(Object &&cb) { return m_user_output_handler.set_callback(std::forward(cb)); } + auto user_input_callback() { return m_user_input_handler.bind(); } + auto user_output_callback() { return m_user_output_handler.bind(); } void set_map(int id, const address_map_constructor &map, device_t *device); diff --git a/src/mame/drivers/atlantis.cpp b/src/mame/drivers/atlantis.cpp index 9dda8a2eb5a..4dbf4fe6da4 100644 --- a/src/mame/drivers/atlantis.cpp +++ b/src/mame/drivers/atlantis.cpp @@ -812,21 +812,23 @@ DEVICE_INPUT_DEFAULTS_END MACHINE_CONFIG_START(atlantis_state::mwskins) /* basic machine hardware */ - MCFG_DEVICE_ADD(m_maincpu, VR4310LE, 166666666) // clock is TRUSTED - MCFG_MIPS3_ICACHE_SIZE(16384) - MCFG_MIPS3_DCACHE_SIZE(16384) - MCFG_MIPS3_SYSTEM_CLOCK(66666666) - - MCFG_DEVICE_ADD(":pci", PCI_ROOT, 0) - MCFG_DEVICE_ADD(PCI_ID_NILE, VRC4373, 0, m_maincpu) - MCFG_VRC4373_SET_RAM(0x00800000) - MCFG_DEVICE_ADD(PCI_ID_9050, PCI9050, 0) - MCFG_PCI9050_SET_MAP(0, atlantis_state::map0) - MCFG_PCI9050_SET_MAP(1, atlantis_state::map1) - MCFG_PCI9050_SET_MAP(2, atlantis_state::map2) - MCFG_PCI9050_SET_MAP(3, atlantis_state::map3) - MCFG_PCI9050_USER_OUTPUT_CALLBACK(WRITE32(*this, atlantis_state, user_io_output)) - MCFG_PCI9050_USER_INPUT_CALLBACK(READ32(*this, atlantis_state, user_io_input)) + VR4310LE(config, m_maincpu, 166666666); + m_maincpu->set_icache_size(16384); + m_maincpu->set_dcache_size(16384); + m_maincpu->set_system_clock(66666666); + + PCI_ROOT(config, ":pci", 0); + + vrc4373_device &vrc4373(VRC4373(config, PCI_ID_NILE, 0, m_maincpu)); + vrc4373.set_ram_size(0x00800000); + + pci9050_device &pci9050(PCI9050(config, PCI_ID_9050, 0)); + pci9050.set_map(0, address_map_constructor(&atlantis_state::map0, "map0", this), this); + pci9050.set_map(1, address_map_constructor(&atlantis_state::map1, "map1", this), this); + pci9050.set_map(2, address_map_constructor(&atlantis_state::map2, "map2", this), this); + pci9050.set_map(3, address_map_constructor(&atlantis_state::map3, "map3", this), this); + pci9050.user_output_callback().set(FUNC(atlantis_state::user_io_output)); + pci9050.user_input_callback().set(FUNC(atlantis_state::user_io_input)); M48T37(config, m_rtc); m_rtc->reset_cb().set(FUNC(atlantis_state::watchdog_reset)); @@ -835,60 +837,60 @@ MACHINE_CONFIG_START(atlantis_state::mwskins) IDE_PCI(config, m_ide, 0, 0x10950646, 0x07, 0x0, PCI_ID_NILE, AS_DATA).irq_handler().set(FUNC(atlantis_state::ide_irq)); /* video hardware */ - MCFG_DEVICE_ADD(m_zeus, ZEUS2, ZEUS2_VIDEO_CLOCK) - MCFG_ZEUS2_FLOAT_MODE(1) - MCFG_ZEUS2_IRQ_CB(WRITELINE(*this, atlantis_state, zeus_irq)) - MCFG_ZEUS2_VBLANK_CB(WRITELINE(*this, atlantis_state, vblank_irq)) - MCFG_VIDEO_SET_SCREEN("screen") + ZEUS2(config, m_zeus, ZEUS2_VIDEO_CLOCK); + m_zeus->set_float_mode(1); + m_zeus->irq_callback().set(FUNC(atlantis_state::zeus_irq)); + m_zeus->vblank_callback().set(FUNC(atlantis_state::vblank_irq)); + m_zeus->set_screen("screen"); MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(ZEUS2_VIDEO_CLOCK / 8, 529, 0, 400, 278, 0, 256) MCFG_SCREEN_UPDATE_DEVICE("zeus2", zeus2_device, screen_update) /* sound hardware */ - MCFG_DEVICE_ADD(m_dcs, DCS2_AUDIO_DENVER_2CH, 0) - MCFG_DCS2_AUDIO_DRAM_IN_MB(4) - MCFG_DCS2_AUDIO_POLLING_OFFSET(0xe33) - - MCFG_DEVICE_ADD(m_ioasic, MIDWAY_IOASIC, 0) - MCFG_MIDWAY_IOASIC_SHUFFLE(MIDWAY_IOASIC_STANDARD) - MCFG_MIDWAY_SERIAL_PIC2_YEAR_OFFS(80) - MCFG_MIDWAY_IOASIC_UPPER(342) // 325 - MCFG_MIDWAY_IOASIC_IRQ_CALLBACK(WRITELINE(*this, atlantis_state, ioasic_irq)) - MCFG_MIDWAY_IOASIC_AUTO_ACK(1) + DCS2_AUDIO_DENVER_2CH(config, m_dcs, 0); + m_dcs->set_dram_in_mb(4); + m_dcs->set_polling_offset(0xe33); + + MIDWAY_IOASIC(config, m_ioasic, 0); + m_ioasic->set_shuffle(MIDWAY_IOASIC_STANDARD); + m_ioasic->set_yearoffs(80); + m_ioasic->set_upper(342); // 325 + m_ioasic->irq_handler().set(FUNC(atlantis_state::ioasic_irq)); + m_ioasic->set_auto_ack(1); if DEBUG_CONSOLE { - MCFG_MIDWAY_IOASIC_OUT_TX_CB(WRITE8(m_uart0, generic_terminal_device, write)) + m_ioasic->serial_tx_handler().set(m_uart0, FUNC(generic_terminal_device::write)); MCFG_DEVICE_ADD(m_uart0, GENERIC_TERMINAL, 0) MCFG_GENERIC_TERMINAL_KEYBOARD_CB(DEVPUT("ioasic", midway_ioasic_device, serial_rx_w)) } // TL16C552 UART - MCFG_DEVICE_ADD(m_uart1, NS16550, XTAL(1'843'200)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("com1", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("com1", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("com1", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, atlantis_state, duart_irq_callback)) - - MCFG_DEVICE_ADD(m_uart2, NS16550, XTAL(1'843'200)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("com2", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("com2", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("com2", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, atlantis_state, duart_irq_callback)) - - MCFG_DEVICE_ADD("com1", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart1, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart1, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart1, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_uart1, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart1, ins8250_uart_device, cts_w)) + NS16550(config, m_uart1, XTAL(1'843'200)); + m_uart1->out_tx_callback().set("com1", FUNC(rs232_port_device::write_txd)); + m_uart1->out_dtr_callback().set("com1", FUNC(rs232_port_device::write_dtr)); + m_uart1->out_rts_callback().set("com1", FUNC(rs232_port_device::write_rts)); + m_uart1->out_int_callback().set(FUNC(atlantis_state::duart_irq_callback)); + + NS16550(config, m_uart2, XTAL(1'843'200)); + m_uart2->out_tx_callback().set("com2", FUNC(rs232_port_device::write_txd)); + m_uart2->out_dtr_callback().set("com2", FUNC(rs232_port_device::write_dtr)); + m_uart2->out_rts_callback().set("com2", FUNC(rs232_port_device::write_rts)); + m_uart2->out_int_callback().set(FUNC(atlantis_state::duart_irq_callback)); + + rs232_port_device &com1(RS232_PORT(config, "com1", default_rs232_devices, nullptr)); + com1.rxd_handler().set(m_uart1, FUNC(ins8250_uart_device::rx_w)); + com1.dcd_handler().set(m_uart1, FUNC(ins8250_uart_device::dcd_w)); + com1.dsr_handler().set(m_uart1, FUNC(ins8250_uart_device::dsr_w)); + com1.ri_handler().set(m_uart1, FUNC(ins8250_uart_device::ri_w)); + com1.cts_handler().set(m_uart1, FUNC(ins8250_uart_device::cts_w)); //MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("com1", mwskins_comm) - MCFG_DEVICE_ADD("com2", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, cts_w)) + rs232_port_device &com2(RS232_PORT(config, "com2", default_rs232_devices, nullptr)); + com2.rxd_handler().set(m_uart2, FUNC(ins8250_uart_device::rx_w)); + com2.dcd_handler().set(m_uart2, FUNC(ins8250_uart_device::dcd_w)); + com2.dsr_handler().set(m_uart2, FUNC(ins8250_uart_device::dsr_w)); + com2.ri_handler().set(m_uart2, FUNC(ins8250_uart_device::ri_w)); + com2.cts_handler().set(m_uart2, FUNC(ins8250_uart_device::cts_w)); MACHINE_CONFIG_END diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp index f7f80cffae6..7da81e6900b 100644 --- a/src/mame/machine/iteagle_fpga.cpp +++ b/src/mame/machine/iteagle_fpga.cpp @@ -63,15 +63,15 @@ MACHINE_CONFIG_START(iteagle_fpga_device::device_add_mconfig) m_scc1->out_txda_callback().set(COM2_TAG, FUNC(rs232_port_device::write_txd)); m_scc1->out_txdb_callback().set(COM1_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(COM1_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsb_w)) - - MCFG_DEVICE_ADD(COM2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsa_w)) + rs232_port_device &com1(RS232_PORT(config, COM1_TAG, default_rs232_devices, nullptr)); + com1.rxd_handler().set(m_scc1, FUNC(scc85c30_device::rxb_w)); + com1.dcd_handler().set(m_scc1, FUNC(scc85c30_device::dcdb_w)); + com1.cts_handler().set(m_scc1, FUNC(scc85c30_device::ctsb_w)); + + rs232_port_device &com2(RS232_PORT(config, COM2_TAG, default_rs232_devices, nullptr)); + com2.rxd_handler().set(m_scc1, FUNC(scc85c30_device::rxa_w)); + com2.dcd_handler().set(m_scc1, FUNC(scc85c30_device::dcda_w)); + com2.cts_handler().set(m_scc1, FUNC(scc85c30_device::ctsa_w)); MACHINE_CONFIG_END void iteagle_fpga_device::device_start() -- cgit v1.2.3