summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cit220.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cit220.cpp')
-rw-r--r--src/mame/drivers/cit220.cpp47
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 )