diff options
Diffstat (limited to 'src/mame/drivers/altos8600.cpp')
-rw-r--r-- | src/mame/drivers/altos8600.cpp | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp index 78565331a70..cdad666251b 100644 --- a/src/mame/drivers/altos8600.cpp +++ b/src/mame/drivers/altos8600.cpp @@ -725,7 +725,7 @@ static void altos8600_floppies(device_slot_interface &device) } MACHINE_CONFIG_START(altos8600_state::altos8600) - MCFG_DEVICE_ADD("maincpu", I8086, 5_MHz_XTAL) + MCFG_DEVICE_ADD(m_maincpu, I8086, 5_MHz_XTAL) MCFG_DEVICE_PROGRAM_MAP(cpu_mem) MCFG_DEVICE_IO_MAP(cpu_io) MCFG_DEVICE_OPCODES_MAP(code_mem) @@ -735,25 +735,25 @@ MACHINE_CONFIG_START(altos8600_state::altos8600) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(altos8600_state, inta) MCFG_I8086_IF_HANDLER(WRITELINE(*this, altos8600_state, cpuif_w)) - MCFG_DEVICE_ADD("dmac", I8089, 5_MHz_XTAL) + MCFG_DEVICE_ADD(m_dmac, I8089, 5_MHz_XTAL) MCFG_DEVICE_PROGRAM_MAP(dmac_mem) MCFG_DEVICE_IO_MAP(dmac_io) MCFG_I8089_DATA_WIDTH(16) MCFG_I8089_SINTR1(WRITELINE(*this, altos8600_state, sintr1_w)) - MCFG_I8089_SINTR2(WRITELINE("pic8259_2", pic8259_device, ir4_w)) + MCFG_I8089_SINTR2(WRITELINE(m_pic2, pic8259_device, ir4_w)) - MCFG_DEVICE_ADD("pic8259_1", PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) - MCFG_PIC8259_IN_SP_CB(VCC) - MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, altos8600_state, get_slave_ack)) + PIC8259(config, m_pic1, 0); + m_pic1->out_int_callback().set_inputline(m_maincpu, 0); + m_pic1->in_sp_callback().set_constant(1); + m_pic1->read_slave_ack_callback().set(FUNC(altos8600_state::get_slave_ack)); - MCFG_DEVICE_ADD("pic8259_2", PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir2_w)) - MCFG_PIC8259_IN_SP_CB(GND) + PIC8259(config, m_pic2, 0); + m_pic2->out_int_callback().set(m_pic1, FUNC(pic8259_device::ir2_w)); + m_pic2->in_sp_callback().set_constant(0); - MCFG_DEVICE_ADD("pic8259_3", PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir3_w)) - MCFG_PIC8259_IN_SP_CB(GND) + PIC8259(config, m_pic3, 0); + m_pic3->out_int_callback().set(m_pic1, FUNC(pic8259_device::ir3_w)); + m_pic3->in_sp_callback().set_constant(0); MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("1M") @@ -780,14 +780,14 @@ MACHINE_CONFIG_START(altos8600_state::altos8600) MCFG_DEVICE_ADD("ppi", I8255A, 0) - MCFG_DEVICE_ADD("pit", PIT8253, 0) - MCFG_PIT8253_CLK0(1228800) - MCFG_PIT8253_OUT0_HANDLER(WRITELINE("uart8274", i8274_new_device, rxca_w)) - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("uart8274", i8274_new_device, txca_w)) - MCFG_PIT8253_CLK1(1228800) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE("uart8274", i8274_new_device, rxtxcb_w)) - MCFG_PIT8253_CLK2(1228800) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE("pic8259_1", pic8259_device, ir1_w)) + pit8253_device &pit(PIT8253(config, "pit", 0)); + pit.set_clk<0>(1228800); + pit.out_handler<0>().set(m_uart8274, FUNC(i8274_new_device::rxca_w)); + pit.out_handler<0>().append(m_uart8274, FUNC(i8274_new_device::txca_w)); + pit.set_clk<1>(1228800); + pit.out_handler<1>().set(m_uart8274, FUNC(i8274_new_device::rxtxcb_w)); + pit.set_clk<2>(1228800); + pit.out_handler<1>().set(m_pic1, FUNC(pic8259_device::ir1_w)); MCFG_DEVICE_ADD("fd1797", FD1797, 2000000) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("pic8259_2", pic8259_device, ir1_w)) @@ -797,9 +797,10 @@ MACHINE_CONFIG_START(altos8600_state::altos8600) MCFG_FLOPPY_DRIVE_ADD("fd1797:2", altos8600_floppies, "8dd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD("fd1797:3", altos8600_floppies, "8dd", floppy_image_device::default_floppy_formats) - MCFG_DEVICE_ADD("ics", ACS8600_ICS, "dmac") - MCFG_ACS8600_ICS_IRQ1(WRITELINE("pic8259_1", pic8259_device, ir5_w)) - MCFG_ACS8600_ICS_IRQ2(WRITELINE("pic8259_1", pic8259_device, ir6_w)) + ACS8600_ICS(config, m_ics, 0); + m_ics->set_host_space(m_dmac, AS_PROGRAM); // TODO: fixme + m_ics->irq1_callback().set(m_pic1, FUNC(pic8259_device::ir5_w)); + m_ics->irq2_callback().set(m_pic1, FUNC(pic8259_device::ir6_w)); MCFG_HARDDISK_ADD("hdd") MACHINE_CONFIG_END |