diff options
Diffstat (limited to 'src/mame/drivers/qx10.cpp')
-rw-r--r-- | src/mame/drivers/qx10.cpp | 87 |
1 files changed, 43 insertions, 44 deletions
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index 5e4513a552b..adf015bfacc 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -728,12 +728,12 @@ MACHINE_CONFIG_START(qx10_state::qx10) MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("pic8259_master", pic8259_device, inta_cb) /* video hardware */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(qx10_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_refresh_hz(50); + m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate + m_screen->set_screen_update(FUNC(qx10_state::screen_update)); + m_screen->set_size(640, 480); + m_screen->set_visarea(0, 640-1, 0, 480-1); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_qx10) MCFG_PALETTE_ADD("palette", 8) MCFG_PALETTE_INIT_OWNER(qx10_state, qx10) @@ -747,11 +747,10 @@ MACHINE_CONFIG_START(qx10_state::qx10) 1 Keyboard clock (1200bps) +5V 8259A (10E) IR5 Software timer 2 Clock 1,9668MHz Memory register D7 8259 (12E) IR1 Software timer */ - - MCFG_DEVICE_ADD("pit8253_1", PIT8253, 0) - MCFG_PIT8253_CLK0(1200) - MCFG_PIT8253_CLK1(1200) - MCFG_PIT8253_CLK2(MAIN_CLK / 8) + PIT8253(config, m_pit_1, 0); + m_pit_1->set_clk<0>(1200); + m_pit_1->set_clk<1>(1200); + m_pit_1->set_clk<2>(MAIN_CLK / 8); /* Timer 1 @@ -760,21 +759,21 @@ MACHINE_CONFIG_START(qx10_state::qx10) 1 Clock 1,9668MHz +5V Keyboard clock 1200bps (Clock / 1664) 2 Clock 1,9668MHz +5V RS-232C baud rate 9600bps (Clock / 208) */ - MCFG_DEVICE_ADD("pit8253_2", PIT8253, 0) - MCFG_PIT8253_CLK0(MAIN_CLK / 8) - MCFG_PIT8253_CLK1(MAIN_CLK / 8) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(*this, qx10_state, keyboard_clk)) - MCFG_PIT8253_CLK2(MAIN_CLK / 8) - MCFG_PIT8253_OUT2_HANDLER(WRITELINE("upd7201", z80dart_device, rxtxcb_w)) - - MCFG_DEVICE_ADD("pic8259_master", PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) - MCFG_PIC8259_IN_SP_CB(CONSTANT(1)) - MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, qx10_state, get_slave_ack)) - - MCFG_DEVICE_ADD("pic8259_slave", PIC8259, 0) - MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic8259_master", pic8259_device, ir7_w)) - MCFG_PIC8259_IN_SP_CB(CONSTANT(0)) + PIT8253(config, m_pit_2, 0); + m_pit_2->set_clk<0>(MAIN_CLK / 8); + m_pit_2->set_clk<1>(MAIN_CLK / 8); + m_pit_2->out_handler<1>().set(FUNC(qx10_state::keyboard_clk)); + m_pit_2->set_clk<2>(MAIN_CLK / 8); + m_pit_2->out_handler<2>().set(m_scc, FUNC(z80dart_device::rxtxcb_w)); + + PIC8259(config, m_pic_m, 0); + m_pic_m->out_int_callback().set_inputline(m_maincpu, 0); + m_pic_m->in_sp_callback().set_constant(1); + m_pic_m->read_slave_ack_callback().set(FUNC(qx10_state::get_slave_ack)); + + PIC8259(config, m_pic_s, 0); + m_pic_s->out_int_callback().set(m_pic_m, FUNC(pic8259_device::ir7_w)); + m_pic_s->in_sp_callback().set_constant(0); MCFG_DEVICE_ADD("upd7201", UPD7201, MAIN_CLK/4) // channel b clock set by pit2 channel 2 // Channel A: Keyboard @@ -785,20 +784,20 @@ MACHINE_CONFIG_START(qx10_state::qx10) MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) MCFG_Z80DART_OUT_INT_CB(WRITELINE(*this, qx10_state, keyboard_irq)) - MCFG_DEVICE_ADD("8237dma_1", AM9517A, MAIN_CLK/4) - MCFG_I8237_OUT_HREQ_CB(WRITELINE(*this, qx10_state, dma_hrq_changed)) - MCFG_I8237_OUT_EOP_CB(WRITELINE(*this, qx10_state, tc_w)) - MCFG_I8237_IN_MEMR_CB(READ8(*this, qx10_state, memory_read_byte)) - MCFG_I8237_OUT_MEMW_CB(WRITE8(*this, qx10_state, memory_write_byte)) - MCFG_I8237_IN_IOR_0_CB(READ8(*this, qx10_state, fdc_dma_r)) - MCFG_I8237_IN_IOR_1_CB(READ8(*this, qx10_state, gdc_dack_r)) - //MCFG_I8237_IN_IOR_2_CB(READ8("upd7220", upd7220_device, dack_r)) - MCFG_I8237_OUT_IOW_0_CB(WRITE8(*this, qx10_state, fdc_dma_w)) - MCFG_I8237_OUT_IOW_1_CB(WRITE8(*this, qx10_state, gdc_dack_w)) - //MCFG_I8237_OUT_IOW_2_CB(WRITE8("upd7220", upd7220_device, dack_w)) - MCFG_DEVICE_ADD("8237dma_2", AM9517A, MAIN_CLK/4) - - MCFG_DEVICE_ADD("i8255", I8255, 0) + AM9517A(config, m_dma_1, MAIN_CLK/4); + m_dma_1->out_hreq_callback().set(FUNC(qx10_state::dma_hrq_changed)); + m_dma_1->out_eop_callback().set(FUNC(qx10_state::tc_w)); + m_dma_1->in_memr_callback().set(FUNC(qx10_state::memory_read_byte)); + m_dma_1->out_memw_callback().set(FUNC(qx10_state::memory_write_byte)); + m_dma_1->in_ior_callback<0>().set(FUNC(qx10_state::fdc_dma_r)); + m_dma_1->in_ior_callback<1>().set(FUNC(qx10_state::gdc_dack_r)); + //m_dma_1->in_ior_callback<2>().set(m_hgdc, FUNC(upd7220_device::dack_r)); + m_dma_1->out_iow_callback<0>().set(FUNC(qx10_state::fdc_dma_w)); + m_dma_1->out_iow_callback<1>().set(FUNC(qx10_state::gdc_dack_w)); + //m_dma_1->out_iow_callback<2>().set(m_hgdc, FUNC(upd7220_device::dack_w)); + AM9517A(config, m_dma_2, MAIN_CLK/4); + + I8255(config, m_ppi, 0); MCFG_DEVICE_ADD("upd7220", UPD7220, MAIN_CLK/6) // unk clock MCFG_DEVICE_ADDRESS_MAP(0, upd7220_map) @@ -806,14 +805,14 @@ MACHINE_CONFIG_START(qx10_state::qx10) MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(qx10_state, hgdc_draw_text) MCFG_VIDEO_SET_SCREEN("screen") - MCFG_DEVICE_ADD("rtc", MC146818, 32.768_kHz_XTAL) - MCFG_MC146818_IRQ_HANDLER(WRITELINE("pic8259_slave", pic8259_device, ir2_w)) + MC146818(config, m_rtc, 32.768_kHz_XTAL); + m_rtc->irq_callback().set(m_pic_s, FUNC(pic8259_device::ir2_w)); UPD765A(config, m_fdc, true, true); m_fdc->intrq_wr_callback().set(FUNC(qx10_state::qx10_upd765_interrupt)); m_fdc->drq_wr_callback().set(m_dma_1, FUNC(am9517a_device::dreq0_w)).invert(); - MCFG_FLOPPY_DRIVE_ADD("upd765:0", qx10_floppies, "525dd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("upd765:1", qx10_floppies, "525dd", floppy_image_device::default_floppy_formats) + FLOPPY_CONNECTOR(config, m_floppy[0], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, m_floppy[1], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats); MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_RS232_RXD_HANDLER(WRITELINE("upd7201", upd7201_device, rxb_w)) |