Esempio n. 1
0
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));
}
Esempio n. 2
0
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
}