From ea753f68cb0298dbf457658190fbb38ebe4bde1e Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 5 Nov 2018 21:28:41 -0500 Subject: isa8, isa16: Replace MCFG_ macros with devcb3 (nw) --- src/devices/bus/a2bus/pc_xporter.cpp | 22 +++---- src/devices/bus/isa/isa.h | 114 +++++++---------------------------- src/devices/bus/lpci/southbridge.cpp | 45 +++++++------- src/devices/machine/genpc.cpp | 22 +++---- src/devices/machine/i82371sb.cpp | 45 +++++++------- src/mame/drivers/4enlinea.cpp | 4 +- src/mame/drivers/at.cpp | 43 ++++++------- src/mame/drivers/ct486.cpp | 42 ++++++------- src/mame/drivers/fruitpc.cpp | 22 +++---- src/mame/drivers/indiana.cpp | 7 ++- src/mame/drivers/magtouch.cpp | 22 +++---- src/mame/drivers/mbc55x.cpp | 8 +-- src/mame/drivers/mc1502.cpp | 16 ++--- src/mame/drivers/myb3k.cpp | 25 ++++---- src/mame/drivers/pc1512.cpp | 44 +++++++------- src/mame/drivers/pcat_dyn.cpp | 22 +++---- src/mame/drivers/poisk1.cpp | 15 ++--- src/mame/drivers/pt68k4.cpp | 16 ++--- src/mame/drivers/savquest.cpp | 4 +- src/mame/machine/apollo.cpp | 43 ++++++------- src/mame/machine/at.cpp | 40 ++++++------ 21 files changed, 280 insertions(+), 341 deletions(-) diff --git a/src/devices/bus/a2bus/pc_xporter.cpp b/src/devices/bus/a2bus/pc_xporter.cpp index 4a2fd8620e2..6334463533b 100644 --- a/src/devices/bus/a2bus/pc_xporter.cpp +++ b/src/devices/bus/a2bus/pc_xporter.cpp @@ -150,17 +150,17 @@ MACHINE_CONFIG_START(a2bus_pcxporter_device::device_add_mconfig) PIC8259(config, m_pic8259, 0); m_pic8259->out_int_callback().set_inputline(m_v30, 0); - MCFG_DEVICE_ADD(m_isabus, ISA8, 0) - MCFG_ISA8_CPU(m_v30) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic8259, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic8259, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic8259, pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE(m_dma8237, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE(m_dma8237, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE(m_dma8237, am9517a_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag(m_v30); + m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set(m_pic8259, FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); + m_isabus->drq1_callback().set(m_dma8237, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set(m_dma8237, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set(m_dma8237, FUNC(am9517a_device::dreq3_w)); MCFG_DEVICE_ADD(m_pc_kbdc, PC_KBDC, 0) MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, a2bus_pcxporter_device, keyboard_clock_w)) diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 3137a1b5d15..3dc15c9df59 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -70,79 +70,6 @@ #include -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_ISA8_CPU(_cputag) \ - downcast(*device).set_cputag(_cputag); -// include this in a driver to have ISA allocate it's own address spaces (e.g. non-x86) -#define MCFG_ISA8_BUS_CUSTOM_SPACES() \ - downcast(*device).set_custom_spaces(); -#define MCFG_ISA16_CPU(_cputag) \ - downcast(*device).set_cputag(_cputag); -#define MCFG_ISA16_BUS_CUSTOM_SPACES() \ - downcast(*device).set_custom_spaces(); - -#define MCFG_ISA_BUS_IOCHCK(_iochck) \ - downcast(device)->set_iochck_callback(DEVCB_##_iochck); - -#define MCFG_ISA_OUT_IRQ2_CB(_devcb) \ - downcast(*device).set_out_irq2_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ3_CB(_devcb) \ - downcast(*device).set_out_irq3_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ4_CB(_devcb) \ - downcast(*device).set_out_irq4_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ5_CB(_devcb) \ - downcast(*device).set_out_irq5_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ6_CB(_devcb) \ - downcast(*device).set_out_irq6_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ7_CB(_devcb) \ - downcast(*device).set_out_irq7_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ1_CB(_devcb) \ - downcast(*device).set_out_drq1_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ2_CB(_devcb) \ - downcast(*device).set_out_drq2_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ3_CB(_devcb) \ - downcast(*device).set_out_drq3_callback(DEVCB_##_devcb); - - -#define MCFG_ISA_OUT_IRQ10_CB(_devcb) \ - downcast(*device).set_out_irq10_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ11_CB(_devcb) \ - downcast(*device).set_out_irq11_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ12_CB(_devcb) \ - downcast(*device).set_out_irq12_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ14_CB(_devcb) \ - downcast(*device).set_out_irq14_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_IRQ15_CB(_devcb) \ - downcast(*device).set_out_irq15_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ0_CB(_devcb) \ - downcast(*device).set_out_drq0_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ5_CB(_devcb) \ - downcast(*device).set_out_drq5_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ6_CB(_devcb) \ - downcast(*device).set_out_drq6_callback(DEVCB_##_devcb); - -#define MCFG_ISA_OUT_DRQ7_CB(_devcb) \ - downcast(*device).set_out_drq7_callback(DEVCB_##_devcb); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -194,19 +121,22 @@ public: // construction/destruction isa8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + // inline configuration template void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward(tag)); } + auto iochck_callback() { return m_write_iochck.bind(); } + auto irq2_callback() { return m_out_irq2_cb.bind(); } + auto irq3_callback() { return m_out_irq3_cb.bind(); } + auto irq4_callback() { return m_out_irq4_cb.bind(); } + auto irq5_callback() { return m_out_irq5_cb.bind(); } + auto irq6_callback() { return m_out_irq6_cb.bind(); } + auto irq7_callback() { return m_out_irq7_cb.bind(); } + auto drq1_callback() { return m_out_drq1_cb.bind(); } + auto drq2_callback() { return m_out_drq2_cb.bind(); } + auto drq3_callback() { return m_out_drq3_cb.bind(); } + + // include this in a driver to have ISA allocate its own address spaces (e.g. non-x86) void set_custom_spaces() { m_allocspaces = true; } - template devcb_base &set_iochck_callback(Object &&cb) { return m_write_iochck.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq2_callback(Object &&cb) { return m_out_irq2_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq3_callback(Object &&cb) { return m_out_irq3_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq4_callback(Object &&cb) { return m_out_irq4_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq5_callback(Object &&cb) { return m_out_irq5_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq6_callback(Object &&cb) { return m_out_irq6_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq7_callback(Object &&cb) { return m_out_irq7_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq1_callback(Object &&cb) { return m_out_drq1_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq2_callback(Object &&cb) { return m_out_drq2_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq3_callback(Object &&cb) { return m_out_drq3_cb.set_callback(std::forward(cb)); } // for ISA8, put the 8-bit configs in the primary slots and the 16-bit configs in the secondary virtual space_config_vector memory_space_config() const override; @@ -368,15 +298,15 @@ public: // construction/destruction isa16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_out_irq10_callback(Object &&cb) { return m_out_irq10_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq11_callback(Object &&cb) { return m_out_irq11_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq12_callback(Object &&cb) { return m_out_irq12_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq14_callback(Object &&cb) { return m_out_irq14_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_irq15_callback(Object &&cb) { return m_out_irq15_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq0_callback(Object &&cb) { return m_out_drq0_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq5_callback(Object &&cb) { return m_out_drq5_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq6_callback(Object &&cb) { return m_out_drq6_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_drq7_callback(Object &&cb) { return m_out_drq7_cb.set_callback(std::forward(cb)); } + auto irq10_callback() { return m_out_irq10_cb.bind(); } + auto irq11_callback() { return m_out_irq11_cb.bind(); } + auto irq12_callback() { return m_out_irq12_cb.bind(); } + auto irq14_callback() { return m_out_irq14_cb.bind(); } + auto irq15_callback() { return m_out_irq15_cb.bind(); } + auto drq0_callback() { return m_out_drq0_cb.bind(); } + auto drq5_callback() { return m_out_drq5_cb.bind(); } + auto drq6_callback() { return m_out_drq6_cb.bind(); } + auto drq7_callback() { return m_out_drq7_cb.bind(); } void install16_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler); diff --git a/src/devices/bus/lpci/southbridge.cpp b/src/devices/bus/lpci/southbridge.cpp index e9fec4c7514..01228cddc3b 100644 --- a/src/devices/bus/lpci/southbridge.cpp +++ b/src/devices/bus/lpci/southbridge.cpp @@ -25,7 +25,8 @@ // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(southbridge_device::device_add_mconfig) +void southbridge_device::device_add_mconfig(machine_config &config) +{ PIT8254(config, m_pit8254, 0); m_pit8254->set_clk<0>(4772720/4); // heartbeat IRQ m_pit8254->out_handler<0>().set(FUNC(southbridge_device::at_pit8254_out0_changed)); @@ -88,27 +89,27 @@ MACHINE_CONFIG_START(southbridge_device::device_add_mconfig) SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("isabus", ISA16, 0) - MCFG_ISA16_CPU(":maincpu") - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259_master", pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259_master", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259_master", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259_master", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259_master", pic8259_device, ir7_w)) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259_slave", pic8259_device, ir1_w)) // in place of irq 2 on at irq 9 is used - MCFG_ISA_OUT_IRQ10_CB(WRITELINE("pic8259_slave", pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE("pic8259_slave", pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE("pic8259_slave", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE("pic8259_slave", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE("pic8259_slave", pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE("dma8237_1", am9517a_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237_1", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237_1", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237_1", am9517a_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE("dma8237_2", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE("dma8237_2", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE("dma8237_2", am9517a_device, dreq3_w)) -MACHINE_CONFIG_END + ISA16(config, m_isabus, 0); + m_isabus->set_cputag(":maincpu"); + m_isabus->irq3_callback().set("pic8259_master", FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set("pic8259_master", FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set("pic8259_master", FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set("pic8259_master", FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set("pic8259_master", FUNC(pic8259_device::ir7_w)); + m_isabus->irq2_callback().set("pic8259_slave", FUNC(pic8259_device::ir1_w)); // in place of irq 2 on at irq 9 is used + m_isabus->irq10_callback().set("pic8259_slave", FUNC(pic8259_device::ir2_w)); + m_isabus->irq11_callback().set("pic8259_slave", FUNC(pic8259_device::ir3_w)); + m_isabus->irq12_callback().set("pic8259_slave", FUNC(pic8259_device::ir4_w)); + m_isabus->irq14_callback().set("pic8259_slave", FUNC(pic8259_device::ir6_w)); + m_isabus->irq15_callback().set("pic8259_slave", FUNC(pic8259_device::ir7_w)); + m_isabus->drq0_callback().set("dma8237_1", FUNC(am9517a_device::dreq0_w)); + m_isabus->drq1_callback().set("dma8237_1", FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set("dma8237_1", FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w)); + m_isabus->drq5_callback().set("dma8237_2", FUNC(am9517a_device::dreq1_w)); + m_isabus->drq6_callback().set("dma8237_2", FUNC(am9517a_device::dreq2_w)); + m_isabus->drq7_callback().set("dma8237_2", FUNC(am9517a_device::dreq3_w)); +} southbridge_device::southbridge_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), diff --git a/src/devices/machine/genpc.cpp b/src/devices/machine/genpc.cpp index d16f32c50a3..269c1915bb0 100644 --- a/src/devices/machine/genpc.cpp +++ b/src/devices/machine/genpc.cpp @@ -444,17 +444,17 @@ MACHINE_CONFIG_START(ibm5160_mb_device::device_add_mconfig) m_ppi8255->out_pb_callback().set(FUNC(ibm5160_mb_device::pc_ppi_portb_w)); m_ppi8255->in_pc_callback().set(FUNC(ibm5160_mb_device::pc_ppi_portc_r)); - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU(":maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259", pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259", pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259", pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237", am9517a_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag(":maincpu"); + m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set(m_pic8259, FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); + m_isabus->drq1_callback().set(m_dma8237, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set(m_dma8237, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set(m_dma8237, FUNC(am9517a_device::dreq3_w)); MCFG_DEVICE_ADD("pc_kbdc", PC_KBDC, 0) MCFG_PC_KBDC_OUT_CLOCK_CB(WRITELINE(*this, ibm5160_mb_device, keyboard_clock_w)) diff --git a/src/devices/machine/i82371sb.cpp b/src/devices/machine/i82371sb.cpp index 4daaba31fba..579d678906a 100644 --- a/src/devices/machine/i82371sb.cpp +++ b/src/devices/machine/i82371sb.cpp @@ -47,7 +47,8 @@ void i82371sb_isa_device::internal_io_map(address_map &map) // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(i82371sb_isa_device::device_add_mconfig) +void i82371sb_isa_device::device_add_mconfig(machine_config &config) +{ PIT8254(config, m_pit8254, 0); m_pit8254->set_clk<0>(4772720/4); // heartbeat IRQ m_pit8254->out_handler<0>().set(FUNC(i82371sb_isa_device::at_pit8254_out0_changed)); @@ -102,27 +103,27 @@ MACHINE_CONFIG_START(i82371sb_isa_device::device_add_mconfig) SPEAKER(config, "mono").front_center(); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50); - MCFG_DEVICE_ADD("isabus", ISA16, 0) - MCFG_ISA16_CPU(":maincpu") - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq7_w)) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq9_w)) - MCFG_ISA_OUT_IRQ10_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq10_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq11_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq12m_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq14_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE(*this, i82371sb_isa_device, pc_irq15_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE("dma8237_1", am9517a_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237_1", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237_1", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237_1", am9517a_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE("dma8237_2", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE("dma8237_2", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE("dma8237_2", am9517a_device, dreq3_w)) -MACHINE_CONFIG_END + ISA16(config, m_isabus, 0); + m_isabus->set_cputag(":maincpu"); + m_isabus->irq3_callback().set(FUNC(i82371sb_isa_device::pc_irq3_w)); + m_isabus->irq4_callback().set(FUNC(i82371sb_isa_device::pc_irq4_w)); + m_isabus->irq5_callback().set(FUNC(i82371sb_isa_device::pc_irq5_w)); + m_isabus->irq6_callback().set(FUNC(i82371sb_isa_device::pc_irq6_w)); + m_isabus->irq7_callback().set(FUNC(i82371sb_isa_device::pc_irq7_w)); + m_isabus->irq2_callback().set(FUNC(i82371sb_isa_device::pc_irq9_w)); + m_isabus->irq10_callback().set(FUNC(i82371sb_isa_device::pc_irq10_w)); + m_isabus->irq11_callback().set(FUNC(i82371sb_isa_device::pc_irq11_w)); + m_isabus->irq12_callback().set(FUNC(i82371sb_isa_device::pc_irq12m_w)); + m_isabus->irq14_callback().set(FUNC(i82371sb_isa_device::pc_irq14_w)); + m_isabus->irq15_callback().set(FUNC(i82371sb_isa_device::pc_irq15_w)); + m_isabus->drq0_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq0_w)); + m_isabus->drq1_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq3_w)); + m_isabus->drq5_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq6_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq7_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq3_w)); +} i82371sb_isa_device::i82371sb_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pci_device(mconfig, I82371SB_ISA, tag, owner, clock), diff --git a/src/mame/drivers/4enlinea.cpp b/src/mame/drivers/4enlinea.cpp index 4732d131382..37c680ddfbe 100644 --- a/src/mame/drivers/4enlinea.cpp +++ b/src/mame/drivers/4enlinea.cpp @@ -515,8 +515,8 @@ MACHINE_CONFIG_START(_4enlinea_state::_4enlinea) MCFG_DEVICE_PERIODIC_INT_DRIVER(_4enlinea_state, _4enlinea_audio_irq, 60) //TODO // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") + ISA8(config, "isa", 0).set_cputag("maincpu"); + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", _4enlinea_isa8_cards, "4enlinea", true) diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp index fed18dbd2e7..f70559189e5 100644 --- a/src/mame/drivers/at.cpp +++ b/src/mame/drivers/at.cpp @@ -654,27 +654,28 @@ MACHINE_CONFIG_START(megapc_state::megapc) m_wd7600->spkr_callback().set(FUNC(megapc_state::wd7600_spkr)); // on board devices - MCFG_DEVICE_ADD("isabus", ISA16, 0) - MCFG_ISA16_CPU("maincpu") - MCFG_ISA_BUS_IOCHCK(WRITELINE("wd7600", wd7600_device, iochck_w)) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("wd7600", wd7600_device, irq09_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("wd7600", wd7600_device, irq03_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("wd7600", wd7600_device, irq04_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("wd7600", wd7600_device, irq05_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("wd7600", wd7600_device, irq06_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("wd7600", wd7600_device, irq07_w)) - MCFG_ISA_OUT_IRQ10_CB(WRITELINE("wd7600", wd7600_device, irq10_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE("wd7600", wd7600_device, irq11_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE("wd7600", wd7600_device, irq12_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE("wd7600", wd7600_device, irq14_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE("wd7600", wd7600_device, irq15_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE("wd7600", wd7600_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("wd7600", wd7600_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("wd7600", wd7600_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("wd7600", wd7600_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE("wd7600", wd7600_device, dreq5_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE("wd7600", wd7600_device, dreq6_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE("wd7600", wd7600_device, dreq7_w)) + ISA16(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->iochck_callback().set(m_wd7600, FUNC(wd7600_device::iochck_w)); + m_isabus->irq2_callback().set(m_wd7600, FUNC(wd7600_device::irq09_w)); + m_isabus->irq3_callback().set(m_wd7600, FUNC(wd7600_device::irq03_w)); + m_isabus->irq4_callback().set(m_wd7600, FUNC(wd7600_device::irq04_w)); + m_isabus->irq5_callback().set(m_wd7600, FUNC(wd7600_device::irq05_w)); + m_isabus->irq6_callback().set(m_wd7600, FUNC(wd7600_device::irq06_w)); + m_isabus->irq7_callback().set(m_wd7600, FUNC(wd7600_device::irq07_w)); + m_isabus->irq10_callback().set(m_wd7600, FUNC(wd7600_device::irq10_w)); + m_isabus->irq11_callback().set(m_wd7600, FUNC(wd7600_device::irq11_w)); + m_isabus->irq12_callback().set(m_wd7600, FUNC(wd7600_device::irq12_w)); + m_isabus->irq14_callback().set(m_wd7600, FUNC(wd7600_device::irq14_w)); + m_isabus->irq15_callback().set(m_wd7600, FUNC(wd7600_device::irq15_w)); + m_isabus->drq0_callback().set(m_wd7600, FUNC(wd7600_device::dreq0_w)); + m_isabus->drq1_callback().set(m_wd7600, FUNC(wd7600_device::dreq1_w)); + m_isabus->drq2_callback().set(m_wd7600, FUNC(wd7600_device::dreq2_w)); + m_isabus->drq3_callback().set(m_wd7600, FUNC(wd7600_device::dreq3_w)); + m_isabus->drq5_callback().set(m_wd7600, FUNC(wd7600_device::dreq5_w)); + m_isabus->drq6_callback().set(m_wd7600, FUNC(wd7600_device::dreq6_w)); + m_isabus->drq7_callback().set(m_wd7600, FUNC(wd7600_device::dreq7_w)); + MCFG_DEVICE_ADD("board1",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "fdcsmc", true) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("board2",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "comat", true) MCFG_DEVICE_ADD("board3",ISA16_SLOT, 0, "isabus", pc_isa16_cards, "ide", true) diff --git a/src/mame/drivers/ct486.cpp b/src/mame/drivers/ct486.cpp index fddaafe2d65..cc4dbe25081 100644 --- a/src/mame/drivers/ct486.cpp +++ b/src/mame/drivers/ct486.cpp @@ -144,27 +144,27 @@ MACHINE_CONFIG_START(ct486_state::ct486) MCFG_PC_KBDC_OUT_DATA_CB(WRITELINE("keybc", at_kbc_device_base, kbd_data_w)) MCFG_PC_KBDC_SLOT_ADD("pc_kbdc", "kbd", pc_at_keyboards, STR_KBD_MICROSOFT_NATURAL) - MCFG_DEVICE_ADD("isabus", ISA16, 0) - MCFG_ISA16_CPU("maincpu") - MCFG_ISA_BUS_IOCHCK(WRITELINE("cs4031", cs4031_device, iochck_w)) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("cs4031", cs4031_device, irq09_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("cs4031", cs4031_device, irq03_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("cs4031", cs4031_device, irq04_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("cs4031", cs4031_device, irq05_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("cs4031", cs4031_device, irq06_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("cs4031", cs4031_device, irq07_w)) - MCFG_ISA_OUT_IRQ10_CB(WRITELINE("cs4031", cs4031_device, irq10_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE("cs4031", cs4031_device, irq11_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE("cs4031", cs4031_device, irq12_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE("cs4031", cs4031_device, irq14_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE("cs4031", cs4031_device, irq15_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE("cs4031", cs4031_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("cs4031", cs4031_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("cs4031", cs4031_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("cs4031", cs4031_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE("cs4031", cs4031_device, dreq5_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE("cs4031", cs4031_device, dreq6_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE("cs4031", cs4031_device, dreq7_w)) + ISA16(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->iochck_callback().set(m_cs4031, FUNC(cs4031_device::iochck_w)); + m_isabus->irq2_callback().set(m_cs4031, FUNC(cs4031_device::irq09_w)); + m_isabus->irq3_callback().set(m_cs4031, FUNC(cs4031_device::irq03_w)); + m_isabus->irq4_callback().set(m_cs4031, FUNC(cs4031_device::irq04_w)); + m_isabus->irq5_callback().set(m_cs4031, FUNC(cs4031_device::irq05_w)); + m_isabus->irq6_callback().set(m_cs4031, FUNC(cs4031_device::irq06_w)); + m_isabus->irq7_callback().set(m_cs4031, FUNC(cs4031_device::irq07_w)); + m_isabus->irq10_callback().set(m_cs4031, FUNC(cs4031_device::irq10_w)); + m_isabus->irq11_callback().set(m_cs4031, FUNC(cs4031_device::irq11_w)); + m_isabus->irq12_callback().set(m_cs4031, FUNC(cs4031_device::irq12_w)); + m_isabus->irq14_callback().set(m_cs4031, FUNC(cs4031_device::irq14_w)); + m_isabus->irq15_callback().set(m_cs4031, FUNC(cs4031_device::irq15_w)); + m_isabus->drq0_callback().set(m_cs4031, FUNC(cs4031_device::dreq0_w)); + m_isabus->drq1_callback().set(m_cs4031, FUNC(cs4031_device::dreq1_w)); + m_isabus->drq2_callback().set(m_cs4031, FUNC(cs4031_device::dreq2_w)); + m_isabus->drq3_callback().set(m_cs4031, FUNC(cs4031_device::dreq3_w)); + m_isabus->drq5_callback().set(m_cs4031, FUNC(cs4031_device::dreq5_w)); + m_isabus->drq6_callback().set(m_cs4031, FUNC(cs4031_device::dreq6_w)); + m_isabus->drq7_callback().set(m_cs4031, FUNC(cs4031_device::dreq7_w)); MCFG_DEVICE_ADD("board1", ISA16_SLOT, 0, "isabus", pc_isa16_cards, "fdcsmc", true) MCFG_DEVICE_ADD("board2", ISA16_SLOT, 0, "isabus", pc_isa16_cards, "comat", true) MCFG_DEVICE_ADD("board3", ISA16_SLOT, 0, "isabus", pc_isa16_cards, "ide", true) diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp index 5556be5820f..111c91e26fa 100644 --- a/src/mame/drivers/fruitpc.cpp +++ b/src/mame/drivers/fruitpc.cpp @@ -131,17 +131,17 @@ MACHINE_CONFIG_START(fruitpc_state::fruitpc) m_dma8237_1->out_iow_callback<1>().set(FUNC(fruitpc_state::dma8237_1_dack_w)); - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259_2", pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259_1", pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259_1", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259_1", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259_1", pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237_1", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237_1", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237_1", am9517a_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->irq2_callback().set("pic8259_2", FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set("pic8259_1", FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set("pic8259_1", FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set("pic8259_1", FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w)); + m_isabus->drq1_callback().set("dma8237_1", FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set("dma8237_1", FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w)); // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", fruitpc_isa8_cards, "sb15", true) diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp index a62913da155..0bf09bd4e4a 100644 --- a/src/mame/drivers/indiana.cpp +++ b/src/mame/drivers/indiana.cpp @@ -100,9 +100,10 @@ MACHINE_CONFIG_START(indiana_state::indiana) MCFG_DEVICE_PROGRAM_MAP(indiana_mem) // FIXME: determine ISA bus clock - MCFG_DEVICE_ADD(ISABUS_TAG, ISA16, 0) - MCFG_ISA16_CPU(M68K_TAG) - MCFG_ISA16_BUS_CUSTOM_SPACES() + isa16_device &isa(ISA16(config, ISABUS_TAG, 0)); + isa.set_cputag(M68K_TAG); + isa.set_custom_spaces(); + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "vga", false) MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "fdc_at", false) MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, ISABUS_TAG, indiana_isa_cards, "comat", false) diff --git a/src/mame/drivers/magtouch.cpp b/src/mame/drivers/magtouch.cpp index 8a3abf4b812..dd3748442ed 100644 --- a/src/mame/drivers/magtouch.cpp +++ b/src/mame/drivers/magtouch.cpp @@ -216,17 +216,17 @@ MACHINE_CONFIG_START(magtouch_state::magtouch) m_dma8237_1->out_iow_callback<1>().set(FUNC(magtouch_state::dma8237_1_dack_w)); - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259_2", pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259_1", pic8259_device, ir3_w)) - //MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259_1", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259_1", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259_1", pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237_1", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237_1", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237_1", am9517a_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->irq2_callback().set("pic8259_2", FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set("pic8259_1", FUNC(pic8259_device::ir3_w)); + //m_isabus->irq4_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set("pic8259_1", FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set("pic8259_1", FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w)); + m_isabus->drq1_callback().set("dma8237_1", FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set("dma8237_1", FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w)); // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", magtouch_isa8_cards, "sb15", true) diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index e0f784f1e36..d56bb88db10 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -330,10 +330,10 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x) /* Software list */ MCFG_SOFTWARE_LIST_ADD("disk_list","mbc55x") - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU(m_maincpu) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic, pic8259_device, ir7_w)) // all other IRQ and DRQ lines are NC - //MCFG_ISA_BUS_IOCHCK(INPUTLINE(m_maincpu, INPUT_LINE_NMI)) + isa8_device &isa(ISA8(config, "isa", 0)); + isa.set_cputag(m_maincpu); + isa.irq7_callback().set(m_pic, FUNC(pic8259_device::ir7_w)); // all other IRQ and DRQ lines are NC + //isa.iochck_callback().set_inputline(m_maincpu, INPUT_LINE_NMI)); ISA8_SLOT(config, "external", 0, "isa", pc_isa8_cards, nullptr, false); diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp index 9a209483353..8d14a8620f3 100644 --- a/src/mame/drivers/mc1502.cpp +++ b/src/mame/drivers/mc1502.cpp @@ -275,14 +275,14 @@ MACHINE_CONFIG_START(mc1502_state::mc1502) rs232.dsr_handler().set(m_upd8251, FUNC(i8251_device::write_dsr)); rs232.cts_handler().set(m_upd8251, FUNC(i8251_device::write_cts)); - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic8259, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic8259, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic8259, pic8259_device, ir7_w)) + isa8_device &isa(ISA8(config, "isa", 0)); + isa.set_cputag("maincpu"); + isa.irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w)); + isa.irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w)); + isa.irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w)); + isa.irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); + isa.irq6_callback().set(m_pic8259, FUNC(pic8259_device::ir6_w)); + isa.irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); MCFG_DEVICE_ADD("board0", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "cga_mc1502", true) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", mc1502_isa8_cards, "fdc", false) diff --git a/src/mame/drivers/myb3k.cpp b/src/mame/drivers/myb3k.cpp index b4901092a02..6e2bbea2245 100644 --- a/src/mame/drivers/myb3k.cpp +++ b/src/mame/drivers/myb3k.cpp @@ -985,18 +985,19 @@ MACHINE_CONFIG_START(myb3k_state::myb3k) MCFG_MC6845_UPDATE_ROW_CB(myb3k_state, crtc_update_row) /* ISA8+ Expansion bus */ - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(*this, myb3k_state, isa_irq5_w)) // Jumper J4 selectable - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic8259, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(*this, myb3k_state, isa_irq7_w)) // Jumper J5 selectable - //MCFG_ISA_OUT_DRQ0_CB(WRITELINE("dma", i8257_device, dreq0_w)) // Part of ISA16 but not ISA8 standard but implemented on ISA8 B8 (SRDY) on this motherboard - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma", i8257_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma", i8257_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma", i8257_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set(FUNC(myb3k_state::isa_irq5_w)); // Jumper J4 selectable + m_isabus->irq6_callback().set(m_pic8259, FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set(FUNC(myb3k_state::isa_irq7_w)); // Jumper J5 selectable + //m_isabus->drq0_callback().set("dma", FUNC(i8257_device::dreq0_w)); // Part of ISA16 but not ISA8 standard but implemented on ISA8 B8 (SRDY) on this motherboard + m_isabus->drq1_callback().set("dma", FUNC(i8257_device::dreq1_w)); + m_isabus->drq2_callback().set("dma", FUNC(i8257_device::dreq2_w)); + m_isabus->drq3_callback().set("dma", FUNC(i8257_device::dreq3_w)); + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", stepone_isa_cards, "myb3k_fdc4711", false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", stepone_isa_cards, "myb3k_com", false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", stepone_isa_cards, nullptr, false) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index 4f034d7a4e1..e5b777f37ab 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1238,17 +1238,17 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) rs232.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); // ISA8 bus - MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0) - MCFG_ISA8_CPU(I8086_TAG) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic, pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq3_w)) + isa8_device &isa(ISA8(config, ISA_BUS_TAG, 0)); + isa.set_cputag(I8086_TAG); + isa.irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w)); + isa.irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w)); + isa.irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w)); + isa.irq5_callback().set(m_pic, FUNC(pic8259_device::ir5_w)); + isa.irq6_callback().set(m_pic, FUNC(pic8259_device::ir6_w)); + isa.irq7_callback().set(m_pic, FUNC(pic8259_device::ir7_w)); + isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); + isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); + isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) @@ -1369,17 +1369,17 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) rs232.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); // ISA8 bus - MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0) - MCFG_ISA8_CPU(I8086_TAG) - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(m_pic, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic, pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE(I8237A5_TAG, am9517a_device, dreq3_w)) + isa8_device &isa(ISA8(config, ISA_BUS_TAG, 0)); + isa.set_cputag(I8086_TAG); + isa.irq2_callback().set(m_pic, FUNC(pic8259_device::ir2_w)); + isa.irq3_callback().set(m_pic, FUNC(pic8259_device::ir3_w)); + isa.irq4_callback().set(m_pic, FUNC(pic8259_device::ir4_w)); + isa.irq5_callback().set(m_pic, FUNC(pic8259_device::ir5_w)); + isa.irq6_callback().set(m_pic, FUNC(pic8259_device::ir6_w)); + isa.irq7_callback().set(m_pic, FUNC(pic8259_device::ir7_w)); + isa.drq1_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq1_w)); + isa.drq2_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq2_w)); + isa.drq3_callback().set(I8237A5_TAG, FUNC(am9517a_device::dreq3_w)); MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISA_BUS_TAG, pc_isa8_cards, nullptr, false) diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp index 68f39874ebc..8f5428b7142 100644 --- a/src/mame/drivers/pcat_dyn.cpp +++ b/src/mame/drivers/pcat_dyn.cpp @@ -205,17 +205,17 @@ MACHINE_CONFIG_START(pcat_dyn_state::pcat_dyn) serport.ri_handler().set("ns16550", FUNC(ins8250_uart_device::ri_w)); serport.cts_handler().set("ns16550", FUNC(ins8250_uart_device::cts_w)); - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE("pic8259_2", pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259_1", pic8259_device, ir3_w)) - //MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) - //MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259_1", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259_1", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259_1", pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE("dma8237_1", am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE("dma8237_1", am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE("dma8237_1", am9517a_device, dreq3_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->irq2_callback().set("pic8259_2", FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set("pic8259_1", FUNC(pic8259_device::ir3_w)); + //m_isabus->irq4_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + //m_isabus->irq5_callback().set("pic8259_1", FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set("pic8259_1", FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w)); + m_isabus->drq1_callback().set("dma8237_1", FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set("dma8237_1", FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w)); // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", pcat_dyn_isa8_cards, "sb15", true) diff --git a/src/mame/drivers/poisk1.cpp b/src/mame/drivers/poisk1.cpp index 41d0b79c702..d6a608a7854 100644 --- a/src/mame/drivers/poisk1.cpp +++ b/src/mame/drivers/poisk1.cpp @@ -678,13 +678,14 @@ MACHINE_CONFIG_START(p1_state::poisk1) m_ppi8255n2->out_pb_callback().set(FUNC(p1_state::p1_ppi2_portb_w)); /*61H*/ m_ppi8255n2->in_pc_callback().set(FUNC(p1_state::p1_ppi2_portc_r)); /*62H*/ - MCFG_DEVICE_ADD("isa", ISA8, 0) - MCFG_ISA8_CPU("maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(m_pic8259, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(m_pic8259, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(m_pic8259, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(m_pic8259, pic8259_device, ir7_w)) + ISA8(config, m_isabus, 0); + m_isabus->set_cputag("maincpu"); + m_isabus->irq2_callback().set(m_pic8259, FUNC(pic8259_device::ir2_w)); + m_isabus->irq3_callback().set(m_pic8259, FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set(m_pic8259, FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w)); + m_isabus->irq7_callback().set(m_pic8259, FUNC(pic8259_device::ir7_w)); + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "isa", p1_isa8_cards, "fdc", false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", p1_isa8_cards, nullptr, false) diff --git a/src/mame/drivers/pt68k4.cpp b/src/mame/drivers/pt68k4.cpp index e7c30320de1..b5b7727e9f6 100644 --- a/src/mame/drivers/pt68k4.cpp +++ b/src/mame/drivers/pt68k4.cpp @@ -425,10 +425,11 @@ MACHINE_CONFIG_START(pt68k4_state::pt68k2) MCFG_FLOPPY_DRIVE_ADD(m_floppy_connector[0], pt68k_floppies, "525dd", pt68k4_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(m_floppy_connector[1], pt68k_floppies, "525dd", pt68k4_state::floppy_formats) - MCFG_DEVICE_ADD(ISABUS_TAG, ISA8, 0) - MCFG_ISA8_CPU(M68K_TAG) - MCFG_ISA8_BUS_CUSTOM_SPACES() - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(*this, pt68k4_state, irq5_w)) + ISA8(config, m_isa, 0); + m_isa->set_cputag(M68K_TAG); + m_isa->set_custom_spaces(); + m_isa->irq5_callback().set(FUNC(pt68k4_state::irq5_w)); + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, "cga", false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, nullptr, false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, nullptr, false) @@ -462,9 +463,10 @@ MACHINE_CONFIG_START(pt68k4_state::pt68k4) MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0) - MCFG_DEVICE_ADD(ISABUS_TAG, ISA8, 0) - MCFG_ISA8_CPU(M68K_TAG) - MCFG_ISA8_BUS_CUSTOM_SPACES() + ISA8(config, m_isa, 0); + m_isa->set_cputag(M68K_TAG); + m_isa->set_custom_spaces(); + MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, "fdc_at", false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, "cga", false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, ISABUS_TAG, pt68k4_isa8_cards, nullptr, false) diff --git a/src/mame/drivers/savquest.cpp b/src/mame/drivers/savquest.cpp index 59d139a7377..183f9d1a550 100644 --- a/src/mame/drivers/savquest.cpp +++ b/src/mame/drivers/savquest.cpp @@ -835,8 +835,8 @@ MACHINE_CONFIG_START(savquest_state::savquest) /* sound hardware */ - MCFG_DEVICE_ADD("isa", ISA16, 0) // FIXME: determine ISA bus clock - MCFG_ISA16_CPU("maincpu") + isa16_device &isa(ISA16(config, "isa", 0)); // FIXME: determine ISA bus clock + isa.set_cputag("maincpu"); MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "isa", savquest_isa16_cards, "sb16", false) /* video hardware */ diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp index cf485cecf97..48c863a2d6c 100644 --- a/src/mame/machine/apollo.cpp +++ b/src/mame/machine/apollo.cpp @@ -1113,27 +1113,28 @@ MACHINE_CONFIG_START(apollo_state::common) MCFG_APOLLO_SIO_ADD(APOLLO_SIO2_TAG, 3.6864_MHz_XTAL) MCFG_APOLLO_SIO_IRQ_CALLBACK(WRITELINE(*this, apollo_state, sio2_irq_handler)) - MCFG_DEVICE_ADD(APOLLO_ISA_TAG, ISA16, 0) - MCFG_ISA16_CPU(MAINCPU) - MCFG_ISA16_BUS_CUSTOM_SPACES() - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir2_w)) // in place of irq 2 on at irq 9 is used - MCFG_ISA_OUT_IRQ3_CB(WRITELINE(APOLLO_PIC1_TAG, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE(APOLLO_PIC1_TAG, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE(APOLLO_PIC1_TAG, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE(APOLLO_PIC1_TAG, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE(APOLLO_PIC1_TAG, pic8259_device, ir7_w)) - MCFG_ISA_OUT_IRQ10_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir2_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE(APOLLO_PIC2_TAG, pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE(APOLLO_DMA1_TAG, am9517a_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE(APOLLO_DMA1_TAG, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE(APOLLO_DMA1_TAG, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE(APOLLO_DMA1_TAG, am9517a_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE(APOLLO_DMA2_TAG, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE(APOLLO_DMA2_TAG, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE(APOLLO_DMA2_TAG, am9517a_device, dreq3_w)) + ISA16(config, m_isa, 0); + m_isa->set_cputag(MAINCPU); + m_isa->set_custom_spaces(); + m_isa->irq2_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir2_w)); // in place of irq 2 on at irq 9 is used + m_isa->irq3_callback().set(m_pic8259_master, FUNC(pic8259_device::ir3_w)); + m_isa->irq4_callback().set(m_pic8259_master, FUNC(pic8259_device::ir4_w)); + m_isa->irq5_callback().set(m_pic8259_master, FUNC(pic8259_device::ir5_w)); + m_isa->irq6_callback().set(m_pic8259_master, FUNC(pic8259_device::ir6_w)); + m_isa->irq7_callback().set(m_pic8259_master, FUNC(pic8259_device::ir7_w)); + m_isa->irq10_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir2_w)); + m_isa->irq11_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir3_w)); + m_isa->irq12_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir4_w)); + m_isa->irq14_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir6_w)); + m_isa->irq15_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir7_w)); + m_isa->drq0_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq0_w)); + m_isa->drq1_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq1_w)); + m_isa->drq2_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq2_w)); + m_isa->drq3_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq3_w)); + m_isa->drq5_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq1_w)); + m_isa->drq6_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq2_w)); + m_isa->drq7_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq3_w)); + MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, APOLLO_ISA_TAG, apollo_isa_cards, "wdc", false) // FIXME: determine ISA bus clock MCFG_DEVICE_ADD("isa2", ISA16_SLOT, 0, APOLLO_ISA_TAG, apollo_isa_cards, "ctape", false) MCFG_DEVICE_ADD("isa3", ISA16_SLOT, 0, APOLLO_ISA_TAG, apollo_isa_cards, "3c505", false) diff --git a/src/mame/machine/at.cpp b/src/mame/machine/at.cpp index 26d37c0b3b3..85286de7a30 100644 --- a/src/mame/machine/at.cpp +++ b/src/mame/machine/at.cpp @@ -104,26 +104,26 @@ MACHINE_CONFIG_START(at_mb_device::device_add_mconfig) m_pic8259_slave->out_int_callback().set("pic8259_master", FUNC(pic8259_device::ir2_w)); m_pic8259_slave->in_sp_callback().set_constant(0); - MCFG_DEVICE_ADD("isabus", ISA16, 0) - MCFG_ISA16_CPU(":maincpu") - MCFG_ISA_OUT_IRQ2_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir2_w)) // in place of irq 2 on at irq 9 is used - MCFG_ISA_OUT_IRQ3_CB(WRITELINE("pic8259_master", pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ4_CB(WRITELINE("pic8259_master", pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ5_CB(WRITELINE("pic8259_master", pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ6_CB(WRITELINE("pic8259_master", pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ7_CB(WRITELINE("pic8259_master", pic8259_device, ir7_w)) - MCFG_ISA_OUT_IRQ10_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir3_w)) - MCFG_ISA_OUT_IRQ11_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir4_w)) - MCFG_ISA_OUT_IRQ12_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir5_w)) - MCFG_ISA_OUT_IRQ14_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir6_w)) - MCFG_ISA_OUT_IRQ15_CB(WRITELINE(m_pic8259_slave, pic8259_device, ir7_w)) - MCFG_ISA_OUT_DRQ0_CB(WRITELINE(m_dma8237_1, am9517a_device, dreq0_w)) - MCFG_ISA_OUT_DRQ1_CB(WRITELINE(m_dma8237_1, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ2_CB(WRITELINE(m_dma8237_1, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ3_CB(WRITELINE(m_dma8237_1, am9517a_device, dreq3_w)) - MCFG_ISA_OUT_DRQ5_CB(WRITELINE(m_dma8237_2, am9517a_device, dreq1_w)) - MCFG_ISA_OUT_DRQ6_CB(WRITELINE(m_dma8237_2, am9517a_device, dreq2_w)) - MCFG_ISA_OUT_DRQ7_CB(WRITELINE(m_dma8237_2, am9517a_device, dreq3_w)) + ISA16(config, m_isabus, 0); + m_isabus->set_cputag(":maincpu"); + m_isabus->irq2_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir2_w)); // in place of irq 2 on at irq 9 is used + m_isabus->irq3_callback().set("pic8259_master", FUNC(pic8259_device::ir3_w)); + m_isabus->irq4_callback().set("pic8259_master", FUNC(pic8259_device::ir4_w)); + m_isabus->irq5_callback().set("pic8259_master", FUNC(pic8259_device::ir5_w)); + m_isabus->irq6_callback().set("pic8259_master", FUNC(pic8259_device::ir6_w)); + m_isabus->irq7_callback().set("pic8259_master", FUNC(pic8259_device::ir7_w)); + m_isabus->irq10_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir3_w)); + m_isabus->irq11_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir4_w)); + m_isabus->irq12_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir5_w)); + m_isabus->irq14_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir6_w)); + m_isabus->irq15_callback().set(m_pic8259_slave, FUNC(pic8259_device::ir7_w)); + m_isabus->drq0_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq0_w)); + m_isabus->drq1_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq2_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq3_callback().set(m_dma8237_1, FUNC(am9517a_device::dreq3_w)); + m_isabus->drq5_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq1_w)); + m_isabus->drq6_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq2_w)); + m_isabus->drq7_callback().set(m_dma8237_2, FUNC(am9517a_device::dreq3_w)); MC146818(config, m_mc146818, 32.768_kHz_XTAL); m_mc146818->irq().set(m_pic8259_slave, FUNC(pic8259_device::ir0_w)); -- cgit v1.2.3