summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/mips.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mips.cpp')
-rw-r--r--src/mame/drivers/mips.cpp92
1 files changed, 37 insertions, 55 deletions
diff --git a/src/mame/drivers/mips.cpp b/src/mame/drivers/mips.cpp
index 545cc6aec3c..1c97b1cb165 100644
--- a/src/mame/drivers/mips.cpp
+++ b/src/mame/drivers/mips.cpp
@@ -410,7 +410,7 @@ void rx2030_state::rx2030_map(address_map &map)
case 19: // keyboard
LOGMASKED(LOG_IOCB, "iocb %s command 0x%04x data 0x%02x (%s)\n",
iop_commands[iocb], iop_cmd,
- m_ram->read(0x1000 + iocb_cmdparam + 6),
+ m_ram->read(0x1000 + iocb_cmdparam + 7),
machine().describe_context());
break;
@@ -548,33 +548,24 @@ void rx2030_state::rx2030(machine_config &config)
FLOPPY_CONNECTOR(config, "fdc:0", "35hd", FLOPPY_35_HD, true, mips_floppy_formats).enable_sound(false);
// scsi bus and devices
- NSCSI_BUS(config, m_scsibus, 0);
-
- nscsi_connector &harddisk(NSCSI_CONNECTOR(config, "scsi:0", 0));
- mips_scsi_devices(harddisk);
- harddisk.set_default_option("harddisk");
-
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:1", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:2", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:3", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:4", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:5", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:6", 0));
-
- // scsi host adapter
- nscsi_connector &adapter(NSCSI_CONNECTOR(config, "scsi:7", 0));
- adapter.option_add_internal("aic6250", AIC6250);
- adapter.set_default_option("aic6250");
- adapter.set_fixed(true);
- adapter.set_option_machine_config("aic6250", [this](device_t *device)
- {
- aic6250_device &adapter = downcast<aic6250_device &>(*device);
-
- adapter.set_clock(10_MHz_XTAL); // clock assumed
+ NSCSI_BUS(config, m_scsibus);
+ NSCSI_CONNECTOR(config, "scsi:0", mips_scsi_devices, "harddisk");
+ NSCSI_CONNECTOR(config, "scsi:1", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:2", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:3", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:4", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:5", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:6", mips_scsi_devices, nullptr);
+
+ // scsi host adapter (clock assumed)
+ NSCSI_CONNECTOR(config, "scsi:7").option_set("aic6250", AIC6250).clock(10_MHz_XTAL).machine_config(
+ [this](device_t *device)
+ {
+ aic6250_device &adapter = downcast<aic6250_device &>(*device);
- adapter.int_cb().set_inputline(m_iop, INPUT_LINE_IRQ7).invert();
- adapter.breq_cb().set(m_iop, FUNC(v50_device::dreq_w<1>));
- });
+ adapter.int_cb().set_inputline(m_iop, INPUT_LINE_IRQ7).invert();
+ adapter.breq_cb().set(m_iop, FUNC(v50_device::dreq_w<1>));
+ });
// ethernet
AM7990(config, m_net);
@@ -757,8 +748,7 @@ void rx3230_state::rx3230(machine_config &config)
{
R3000A(config, m_cpu, 50_MHz_XTAL / 2, 32768, 32768);
m_cpu->set_addrmap(AS_PROGRAM, &rx3230_state::rx3230_map);
- // TODO: FPU disabled until properly emulated
- //m_cpu->set_fpurev(mips1_device_base::MIPS_R3010A);
+ m_cpu->set_fpurev(mips1_device_base::MIPS_R3010A);
m_cpu->in_brcond<0>().set([]() { return 1; }); // writeback complete
// 32 SIMM slots, 8-128MB memory, banks of 8 1MB or 4MB SIMMs
@@ -773,37 +763,29 @@ void rx3230_state::rx3230(machine_config &config)
m_rambo->parity_out().set_inputline(m_cpu, INPUT_LINE_IRQ5);
//m_rambo->buzzer_out().set(m_buzzer, FUNC(speaker_sound_device::level_w));
m_rambo->set_ram(m_ram);
- m_rambo->dma_r<0>().set("scsi:7:ncr53c94", FUNC(ncr53c94_device::dma_r));
- m_rambo->dma_w<0>().set("scsi:7:ncr53c94", FUNC(ncr53c94_device::dma_w));
+ m_rambo->dma_r<0>().set("scsi:7:ncr53c94", FUNC(ncr53c94_device::dma16_r));
+ m_rambo->dma_w<0>().set("scsi:7:ncr53c94", FUNC(ncr53c94_device::dma16_w));
// scsi bus and devices
- NSCSI_BUS(config, m_scsibus, 0);
-
- nscsi_connector &harddisk(NSCSI_CONNECTOR(config, "scsi:0", 0));
- mips_scsi_devices(harddisk);
- harddisk.set_default_option("harddisk");
-
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:1", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:2", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:3", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:4", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:5", 0));
- mips_scsi_devices(NSCSI_CONNECTOR(config, "scsi:6", 0));
+ NSCSI_BUS(config, m_scsibus);
+ NSCSI_CONNECTOR(config, "scsi:0", mips_scsi_devices, "harddisk");
+ NSCSI_CONNECTOR(config, "scsi:1", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:2", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:3", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:4", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:5", mips_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:6", mips_scsi_devices, nullptr);
// scsi host adapter
- nscsi_connector &adapter(NSCSI_CONNECTOR(config, "scsi:7", 0));
- adapter.option_add_internal("ncr53c94", NCR53C94);
- adapter.set_default_option("ncr53c94");
- adapter.set_fixed(true);
- adapter.set_option_machine_config("ncr53c94", [this](device_t *device)
- {
- ncr53c94_device &adapter = downcast<ncr53c94_device &>(*device);
-
- adapter.set_clock(24_MHz_XTAL);
+ NSCSI_CONNECTOR(config, "scsi:7").option_set("ncr53c94", NCR53C94).clock(24_MHz_XTAL).machine_config(
+ [this](device_t *device)
+ {
+ ncr53c94_device &adapter = downcast<ncr53c94_device &>(*device);
- adapter.irq_handler_cb().set(*this, FUNC(rx3230_state::irq_w<INT_SCSI>)).invert();
- adapter.drq_handler_cb().set(m_rambo, FUNC(mips_rambo_device::drq_w<0>));
- });
+ adapter.set_busmd(ncr53c94_device::busmd_t::BUSMD_1);
+ adapter.irq_handler_cb().set(*this, FUNC(rx3230_state::irq_w<INT_SCSI>)).invert();
+ adapter.drq_handler_cb().set(m_rambo, FUNC(mips_rambo_device::drq_w<0>));
+ });
// ethernet
AM7990(config, m_net);