void vme_mzr8300_card_device::device_add_mconfig(machine_config &config) { upd7201_new_device& sio0(UPD7201_NEW(config, "sio0", XTAL(4'000'000))); sio0.out_txdb_callback().set("rs232p1", FUNC(rs232_port_device::write_txd)); sio0.out_dtrb_callback().set("rs232p1", FUNC(rs232_port_device::write_dtr)); sio0.out_rtsb_callback().set("rs232p1", FUNC(rs232_port_device::write_rts)); UPD7201_NEW(config, "sio1", XTAL(4'000'000)); rs232_port_device &rs232p1(RS232_PORT(config, "rs232p1", default_rs232_devices, "terminal")); rs232p1.rxd_handler().set("sio0", FUNC(upd7201_new_device::rxb_w)); rs232p1.cts_handler().set("sio0", FUNC(upd7201_new_device::ctsb_w)); am9513_device &stc(AM9513(config, "stc", 4_MHz_XTAL)); stc.out1_cb().set("sio0", FUNC(upd7201_new_device::rxca_w)); stc.out1_cb().append("sio0", FUNC(upd7201_new_device::txca_w)); stc.out2_cb().set("sio0", FUNC(upd7201_new_device::rxcb_w)); stc.out2_cb().append("sio0", FUNC(upd7201_new_device::txcb_w)); stc.out3_cb().set("sio1", FUNC(upd7201_new_device::rxca_w)); stc.out3_cb().append("sio1", FUNC(upd7201_new_device::txca_w)); stc.out4_cb().set("sio1", FUNC(upd7201_new_device::rxcb_w)); stc.out4_cb().append("sio1", FUNC(upd7201_new_device::txcb_w)); }
void v550_state::v550(machine_config &config) { Z80(config, m_maincpu, 34.846_MHz_XTAL / 16); // NEC D780C (2.177875 MHz verified) m_maincpu->set_addrmap(AS_PROGRAM, &v550_state::mem_map); m_maincpu->set_addrmap(AS_IO, &v550_state::io_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // NEC D444C-2 + battery upd7220_device &gdc(UPD7220(config, "gdc", 34.846_MHz_XTAL / 16)); // NEC D7220D (2.177875 MHz verified) gdc.set_screen("screen"); I8255(config, "ppi"); // NEC D8255AC-5 I8251(config, m_usart, 34.846_MHz_XTAL / 16); // NEC D8251AC m_usart->rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<1>)); upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C mpsc.out_int_callback().set("mainint", FUNC(input_merger_device::in_w<0>)); INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); com8116_device &brg1(COM8116(config, "brg1", 5068800)); // actually SMC COM8116T-020 (unknown clock) brg1.ft_handler().set("mpsc", FUNC(upd7201_new_device::txca_w)); brg1.fr_handler().set("mpsc", FUNC(upd7201_new_device::rxca_w)); com8116_device &brg2(COM8116(config, "brg2", 5068800)); // actually SMC COM8116T-020 brg2.ft_handler().set("mpsc", FUNC(upd7201_new_device::txcb_w)); brg2.ft_handler().append("mpsc", FUNC(upd7201_new_device::rxcb_w)); brg2.fr_handler().set("usart", FUNC(i8251_device::write_txc)); brg2.fr_handler().append("usart", FUNC(i8251_device::write_rxc)); mcs48_cpu_device &kbdmcu(I8035(config, "kbdmcu", 4'608'000)); kbdmcu.set_addrmap(AS_PROGRAM, &v550_state::kbd_map); SCREEN(config, m_screen, SCREEN_TYPE_RASTER); m_screen->set_raw(34.846_MHz_XTAL, 19 * 102, 0, 19 * 80, 295, 0, 272); m_screen->set_screen_update(FUNC(v550_state::screen_update)); scn2672_device &pvtc(SCN2672(config, "pvtc", 34.846_MHz_XTAL / 19)); pvtc.set_addrmap(0, &v550_state::pvtc_char_map); pvtc.set_addrmap(1, &v550_state::pvtc_attr_map); pvtc.set_character_width(19); pvtc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); pvtc.set_screen("screen"); // SCB2673 clock verified at 17.423 MHz }