summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-11-12 14:01:29 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-11-12 14:01:29 -0500
commit2e052f7e980f0f5466428e1decdc6baeec904ebd (patch)
tree6b9a6b763b6e3edb5905b2f89b0d2ba7079476d3
parent5d74edba7dad1de51ff413682c34c397a411ab25 (diff)
lbpc: More peripheral stuff (nw)
-rw-r--r--src/mame/drivers/lbpc.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/mame/drivers/lbpc.cpp b/src/mame/drivers/lbpc.cpp
index 6014569e3f8..9d6c54589b7 100644
--- a/src/mame/drivers/lbpc.cpp
+++ b/src/mame/drivers/lbpc.cpp
@@ -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
}