diff options
Diffstat (limited to 'src/mame/drivers/decwritr.cpp')
-rw-r--r-- | src/mame/drivers/decwritr.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp index bcd83f09b89..ead4c944006 100644 --- a/src/mame/drivers/decwritr.cpp +++ b/src/mame/drivers/decwritr.cpp @@ -408,25 +408,25 @@ void decwriter_state::machine_reset() // MACHINE DRIVERS //************************************************************************** -void decwriter_state::la120(machine_config &config) -{ - I8080A(config, m_maincpu, XTAL(18'000'000) / 9); // 18Mhz xtal on schematics, using an i8224 clock divider/reset sanitizer IC - m_maincpu->set_addrmap(AS_PROGRAM, &decwriter_state::la120_mem); - m_maincpu->set_addrmap(AS_IO, &decwriter_state::la120_io); - //m_maincpu->set_irq_acknowledge_callback("prtlsi", FUNC(dc305_device::inta_cb)); +MACHINE_CONFIG_START(decwriter_state::la120) + + MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'000'000) / 9) // 18Mhz xtal on schematics, using an i8224 clock divider/reset sanitizer IC + MCFG_DEVICE_PROGRAM_MAP(la120_mem) + MCFG_DEVICE_IO_MAP(la120_io) + //MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("prtlsi", dc305_device, inta_cb) /* video hardware */ //TODO: no actual screen! has 8 leds above the keyboard (similar to vt100/vk100) and has 4 7segment leds for showing an error code. - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(decwriter_state::screen_update)); - screen.set_size(640,480); - screen.set_visarea_full(); - screen.set_refresh_hz(30); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_UPDATE_DRIVER(decwriter_state, screen_update) + MCFG_SCREEN_SIZE(640,480) + MCFG_SCREEN_VISIBLE_AREA(0,639, 0,479) + MCFG_SCREEN_REFRESH_RATE(30) - //dc305_device &prtlsi(DC305(config, "prtlsi", XTAL(18'000'000) / 9)); - //prtlsi.out_rxc_cb().set("usart", FUNC(i8251_device, write_rxc)); - //prtlsi.out_txc_cb().set("usart", FUNC(i8251_device, write_txc)); - //prtlsi.out_int_cb().set("mainint", FUNC(input_merger_device::in_w<0>)); + //MCFG_DEVICE_ADD("prtlsi", DC305, XTAL(18'000'000) / 9) + //MCFG_DC305_OUT_RXC_CB(WRITELINE("usart", i8251_device, write_rxc)) + //MCFG_DC305_OUT_TXC_CB(WRITELINE("usart", i8251_device, write_txc)) + //MCFG_DC305_OUT_INT_CB(WRITELINE("mainint", input_merger_device, in_w<0>)) LS259(config, m_ledlatch); // E2 on keyboard m_ledlatch->q_out_cb<0>().set_output("led1").invert(); // ON LINE @@ -442,7 +442,8 @@ void decwriter_state::la120(machine_config &config) /* audio hardware */ SPEAKER(config, "mono").front_center(); - BEEP(config, m_speaker, 786).add_route(ALL_OUTPUTS, "mono", 0.50); // TODO: LA120 speaker is controlled by asic; VT100 has: 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz + MCFG_DEVICE_ADD("beeper", BEEP, 786) // TODO: LA120 speaker is controlled by asic; VT100 has: 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* i8251 */ I8251(config, "usart", XTAL(18'000'000) / 9); @@ -452,7 +453,8 @@ void decwriter_state::la120(machine_config &config) usart.rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); usart.rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<1>)); - INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, 0); + MCFG_INPUT_MERGER_ANY_HIGH("mainint") + MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", 0)) rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); rs232.rxd_handler().set("usart", FUNC(i8251_device::write_rxd)); @@ -460,7 +462,7 @@ void decwriter_state::la120(machine_config &config) */ ER1400(config, m_nvm); -} +MACHINE_CONFIG_END |