lbpc: More peripheral stuff (nw)

This commit is contained in:
AJR 2019-11-12 14:01:29 -05:00
parent 5d74edba7d
commit 2e052f7e98

View File

@ -16,6 +16,7 @@
#include "emu.h"
//#include "bus/isa/isa.h"
#include "bus/nscsi/devices.h"
#include "bus/rs232/rs232.h"
#include "cpu/nec/v5x.h"
#include "machine/ins8250.h"
#include "machine/ncr5380n.h"
@ -68,12 +69,20 @@ void lbpc_state::lbpc(machine_config &config)
m_maincpu->set_clk<0>(14.318181_MHz_XTAL / 12); // TCLK input generated by ASIC1
m_maincpu->set_clk<1>(14.318181_MHz_XTAL / 12);
m_maincpu->set_clk<2>(14.318181_MHz_XTAL / 12);
m_maincpu->in_ior_cb<3>().set("scsi:7:ncr", FUNC(ncr53c80_device::dma_r));
m_maincpu->out_iow_cb<3>().set("scsi:7:ncr", FUNC(ncr53c80_device::dma_w));
m_maincpu->in_ior_cb<1>().set("fdc", FUNC(wd37c65c_device::dma_r));
m_maincpu->out_iow_cb<1>().set("fdc", FUNC(wd37c65c_device::dma_w));
m_maincpu->in_ior_cb<2>().set("scsi:7:ncr", FUNC(ncr53c80_device::dma_r));
m_maincpu->out_iow_cb<2>().set("scsi:7:ncr", FUNC(ncr53c80_device::dma_w));
INS8250(config, "com", 1.8432_MHz_XTAL); // INS8250AV
ins8250_device &com(INS8250(config, "com", 1.8432_MHz_XTAL)); // NS8250AV
com.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ4);
com.out_rts_callback().set("serial", FUNC(rs232_port_device::write_rts)); // J3 pin 4
com.out_tx_callback().set("serial", FUNC(rs232_port_device::write_txd)); // J3 pin 5
com.out_dtr_callback().set("serial", FUNC(rs232_port_device::write_dtr)); // J3 pin 7
WD37C65C(config, "fdc", 16_MHz_XTAL, 9.6_MHz_XTAL); // WD37C65BJM
wd37c65c_device &fdc(WD37C65C(config, "fdc", 16_MHz_XTAL, 9.6_MHz_XTAL)); // WD37C65BJM
fdc.intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ6);
fdc.drq_wr_callback().set(m_maincpu, FUNC(v40_device::dreq_w<1>));
NSCSI_BUS(config, "scsi");
NSCSI_CONNECTOR(config, "scsi:0", default_scsi_devices, nullptr);
@ -84,8 +93,15 @@ void lbpc_state::lbpc(machine_config &config)
NSCSI_CONNECTOR(config, "scsi:5", default_scsi_devices, nullptr);
NSCSI_CONNECTOR(config, "scsi:6", default_scsi_devices, nullptr);
NSCSI_CONNECTOR(config, "scsi:7").option_set("ncr", NCR53C80).machine_config([this] (device_t *device) {
downcast<ncr5380n_device &>(*device).drq_handler().set(m_maincpu, FUNC(v40_device::dreq_w<3>));
downcast<ncr5380n_device &>(*device).drq_handler().set(m_maincpu, FUNC(v40_device::dreq_w<2>));
});
rs232_port_device &serial(RS232_PORT(config, "serial", default_rs232_devices, nullptr));
serial.dcd_handler().set("com", FUNC(ins8250_device::dcd_w)); // J3 pin 1
serial.dsr_handler().set("com", FUNC(ins8250_device::dsr_w)); // J3 pin 2
serial.rxd_handler().set("com", FUNC(ins8250_device::rx_w)); // J3 pin 3
serial.cts_handler().set("com", FUNC(ins8250_device::cts_w)); // J3 pin 6
serial.ri_handler().set("com", FUNC(ins8250_device::ri_w)); // J3 pin 8
}