diff options
Diffstat (limited to 'src/mame/drivers/cit220.cpp')
-rw-r--r-- | src/mame/drivers/cit220.cpp | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/src/mame/drivers/cit220.cpp b/src/mame/drivers/cit220.cpp index 806ddd99cf3..851c8fd4309 100644 --- a/src/mame/drivers/cit220.cpp +++ b/src/mame/drivers/cit220.cpp @@ -42,7 +42,7 @@ private: void keyboard_map(address_map &map); void kbd_io_map(address_map &map); - required_device<cpu_device> m_maincpu; + required_device<i8085a_cpu_device> m_maincpu; required_device<screen_device> m_screen; //required_region_ptr<u8> m_p_chargen; }; @@ -106,35 +106,36 @@ static INPUT_PORTS_START( cit220p ) INPUT_PORTS_END -MACHINE_CONFIG_START(cit220_state::cit220p) - MCFG_DEVICE_ADD("maincpu", I8085A, 6000000) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) - MCFG_I8085A_SOD(WRITELINE(*this, cit220_state, sod_w)) - - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_RAW_PARAMS(24553200, 1580, 0, 1320, 259, 0, 240) // dot clock guessed - MCFG_SCREEN_UPDATE_DEVICE("avdc", scn2674_device, screen_update) - - MCFG_DEVICE_ADD("avdc", SCN2674, 24553200 / 10) - MCFG_SCN2674_INTR_CALLBACK(INPUTLINE("maincpu", I8085_RST65_LINE)) - MCFG_SCN2674_CHARACTER_WIDTH(10) - MCFG_SCN2674_DRAW_CHARACTER_CALLBACK_OWNER(cit220_state, draw_character) - MCFG_DEVICE_ADDRESS_MAP(0, char_map) - MCFG_DEVICE_ADDRESS_MAP(1, attr_map) - MCFG_VIDEO_SET_SCREEN("screen") +void cit220_state::cit220p(machine_config &config) +{ + I8085A(config, m_maincpu, 6000000); + m_maincpu->set_addrmap(AS_PROGRAM, &cit220_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &cit220_state::io_map); + m_maincpu->out_sod_func().set(FUNC(cit220_state::sod_w)); + + SCREEN(config, m_screen, SCREEN_TYPE_RASTER); + m_screen->set_raw(24553200, 1580, 0, 1320, 259, 0, 240); // dot clock guessed + m_screen->set_screen_update("avdc", FUNC(scn2674_device::screen_update)); + + scn2674_device &avdc(SCN2674(config, "avdc", 24553200 / 10)); + avdc.intr_callback().set_inputline(m_maincpu, I8085_RST65_LINE); + avdc.set_character_width(10); + avdc.set_display_callback(FUNC(cit220_state::draw_character)); + avdc.set_addrmap(0, &cit220_state::char_map); + avdc.set_addrmap(1, &cit220_state::attr_map); + avdc.set_screen(m_screen); scn2681_device &duart(SCN2681(config, "duart", 3686400)); duart.irq_cb().set_inputline("maincpu", I8085_RST55_LINE); duart.outport_cb().set("usart", FUNC(i8251_device::write_txc)).bit(3); // 9600 baud? duart.outport_cb().append("usart", FUNC(i8251_device::write_rxc)).bit(3); - MCFG_DEVICE_ADD("usart", I8251, 3000000) + I8251(config, "usart", 3000000); - MCFG_DEVICE_ADD("kbdmcu", I8035, 4608000) - MCFG_DEVICE_PROGRAM_MAP(keyboard_map) - MCFG_DEVICE_IO_MAP(kbd_io_map) -MACHINE_CONFIG_END + mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4608000)); + kbdmcu.set_addrmap(AS_PROGRAM, &cit220_state::keyboard_map); + kbdmcu.set_addrmap(AS_IO, &cit220_state::kbd_io_map); +} ROM_START( cit220p ) |