summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-07-24 10:09:24 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-07-24 10:22:48 -0400
commit385138a88e2f110f41dd56220f530bd78f610c44 (patch)
tree9db34d678241d6e17da8c9ec181ecb062625cd81
parent8b733c17bb06cb52f0a6ae0354e3b60ac7fd6be9 (diff)
Add dump and skeleton device for Philips CDD2000 CD-R [Cyberia/2 Filebase]
Add dump and skeleton device for Caravalle CD-R N820s [I-Shou University File Server] h83048: Undo variable shadowing (nw)
-rw-r--r--scripts/src/bus.lua4
-rw-r--r--src/devices/bus/nscsi/cdd2000.cpp54
-rw-r--r--src/devices/bus/nscsi/cdd2000.h31
-rw-r--r--src/devices/bus/nscsi/cdrn820s.cpp53
-rw-r--r--src/devices/bus/nscsi/cdrn820s.h34
-rw-r--r--src/devices/bus/nscsi/devices.cpp4
-rw-r--r--src/devices/cpu/h8/h83048.cpp1
-rw-r--r--src/devices/cpu/h8/h83048.h2
8 files changed, 180 insertions, 3 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index 7d56c201172..69af8c860ee 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -2160,6 +2160,10 @@ if (BUSES["NSCSI"]~=null) then
files {
MAME_DIR .. "src/devices/bus/nscsi/cd.cpp",
MAME_DIR .. "src/devices/bus/nscsi/cd.h",
+ MAME_DIR .. "src/devices/bus/nscsi/cdd2000.cpp",
+ MAME_DIR .. "src/devices/bus/nscsi/cdd2000.h",
+ MAME_DIR .. "src/devices/bus/nscsi/cdrn820s.cpp",
+ MAME_DIR .. "src/devices/bus/nscsi/cdrn820s.h",
MAME_DIR .. "src/devices/bus/nscsi/cw7501.cpp",
MAME_DIR .. "src/devices/bus/nscsi/cw7501.h",
MAME_DIR .. "src/devices/bus/nscsi/devices.cpp",
diff --git a/src/devices/bus/nscsi/cdd2000.cpp b/src/devices/bus/nscsi/cdd2000.cpp
new file mode 100644
index 00000000000..36f6a7df82c
--- /dev/null
+++ b/src/devices/bus/nscsi/cdd2000.cpp
@@ -0,0 +1,54 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/*******************************************************************************
+
+ Skeleton device for Philips CDD2000/HP4020 CD-R.
+
+*******************************************************************************/
+
+#include "emu.h"
+#include "bus/nscsi/cdd2000.h"
+#include "cpu/mc68hc11/mc68hc11.h"
+#include "machine/ncr5390.h"
+
+DEFINE_DEVICE_TYPE(CDD2000, cdd2000_device, "cdd2000", "Philips CDD2000 CD-R")
+
+cdd2000_device::cdd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, CDD2000, tag, owner, clock)
+ , nscsi_slot_card_interface(mconfig, *this, "scsic")
+ , m_cdcpu(*this, "cdcpu")
+{
+}
+
+void cdd2000_device::device_start()
+{
+}
+
+void cdd2000_device::mem_map(address_map &map)
+{
+ map(0x0400, 0x040f).m("scsic", FUNC(ncr53cf94_device::map));
+ // 0x0800, 0x080f is another device
+ map(0x1000, 0xffff).rom().region("flash", 0x31000); // TODO: banking
+ map(0x2000, 0x3fff).ram();
+}
+
+void cdd2000_device::device_add_mconfig(machine_config &config)
+{
+ MC68HC11(config, m_cdcpu, 8'000'000); // type and clock are total guesses
+ m_cdcpu->set_addrmap(AS_PROGRAM, &cdd2000_device::mem_map);
+
+ NCR53CF94(config, "scsic", 25'000'000); // type and clock guessed
+}
+
+ROM_START(cdd2000)
+ ROM_REGION(0x40000, "flash", 0)
+ ROM_SYSTEM_BIOS(0, "v126", "Firmware v1.26")
+ ROMX_LOAD("cdd2_126.bin", 0x00000, 0x40000, CRC(8a9f0f85) SHA1(efc6c696b12af7d29fcc37c641bc5879517d6fd8), ROM_BIOS(0)) // 9F9E checksum
+ ROM_SYSTEM_BIOS(1, "v125", "Firmware v1.25")
+ ROMX_LOAD("cdd2_125.bin", 0x00000, 0x40000, CRC(17f1c04a) SHA1(882be4ed5daf70a686929fffcb66fa95b431bbe2), ROM_BIOS(1)) // A29B checksum
+ROM_END
+
+const tiny_rom_entry *cdd2000_device::device_rom_region() const
+{
+ return ROM_NAME(cdd2000);
+}
diff --git a/src/devices/bus/nscsi/cdd2000.h b/src/devices/bus/nscsi/cdd2000.h
new file mode 100644
index 00000000000..e69c65f4548
--- /dev/null
+++ b/src/devices/bus/nscsi/cdd2000.h
@@ -0,0 +1,31 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+
+#ifndef MAME_BUS_NSCSI_CDD2000_H
+#define MAME_BUS_NSCSI_CDD2000_H 1
+
+#pragma once
+
+#include "machine/nscsi_bus.h"
+
+class cdd2000_device : public device_t, public nscsi_slot_card_interface
+{
+public:
+ cdd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ static constexpr feature_type unemulated_features() { return feature::DISK; }
+
+protected:
+ virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<cpu_device> m_cdcpu;
+};
+
+DECLARE_DEVICE_TYPE(CDD2000, cdd2000_device)
+
+#endif // MAME_BUS_NSCSI_CDD2000_H
diff --git a/src/devices/bus/nscsi/cdrn820s.cpp b/src/devices/bus/nscsi/cdrn820s.cpp
new file mode 100644
index 00000000000..5b3b1b87dbb
--- /dev/null
+++ b/src/devices/bus/nscsi/cdrn820s.cpp
@@ -0,0 +1,53 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/*******************************************************************************
+
+ Skeleton device for Sanyo/Caravalle CDR-N820s.
+
+*******************************************************************************/
+
+#include "emu.h"
+#include "bus/nscsi/cdrn820s.h"
+#include "machine/wd33c9x.h"
+
+DEFINE_DEVICE_TYPE(CDRN820S, cdrn820s_device, "cdrn820s", "Caravalle CDR-N820s")
+
+cdrn820s_device::cdrn820s_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, type, tag, owner, clock)
+ , nscsi_slot_card_interface(mconfig, *this, "scsic")
+ , m_h8(*this, "h8")
+{
+}
+
+cdrn820s_device::cdrn820s_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : cdrn820s_device(mconfig, CDRN820S, tag, owner, clock)
+{
+}
+
+void cdrn820s_device::device_start()
+{
+}
+
+void cdrn820s_device::mem_map(address_map &map)
+{
+ map(0x00000, 0x1ffff).rom().region("program", 0);
+}
+
+void cdrn820s_device::device_add_mconfig(machine_config &config)
+{
+ H83048(config, m_h8, 8'000'000); // type and clock unknown
+ m_h8->set_addrmap(AS_PROGRAM, &cdrn820s_device::mem_map);
+ m_h8->set_mode_a20();
+
+ WD33C93A(config, "scsic", 10'000'000); // type and clock unknown
+}
+
+ROM_START(cdrn820s)
+ ROM_REGION(0x40000, "program", 0)
+ ROM_LOAD16_WORD_SWAP("cdr_120.bin", 0x00000, 0x20000, CRC(8cac6862) SHA1(e498dcd9006d257ced6cd0b50c76608e9a8023f7)) // Caravelle CDR-N820S 1.20
+ROM_END
+
+const tiny_rom_entry *cdrn820s_device::device_rom_region() const
+{
+ return ROM_NAME(cdrn820s);
+}
diff --git a/src/devices/bus/nscsi/cdrn820s.h b/src/devices/bus/nscsi/cdrn820s.h
new file mode 100644
index 00000000000..1f5a273e0bc
--- /dev/null
+++ b/src/devices/bus/nscsi/cdrn820s.h
@@ -0,0 +1,34 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+
+#ifndef MAME_BUS_NSCSI_CDRN820S_H
+#define MAME_BUS_NSCSI_CDRN820S_H 1
+
+#pragma once
+
+#include "cpu/h8/h83048.h"
+#include "machine/nscsi_bus.h"
+
+class cdrn820s_device : public device_t, public nscsi_slot_card_interface
+{
+public:
+ cdrn820s_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ static constexpr feature_type unemulated_features() { return feature::DISK; }
+
+protected:
+ cdrn820s_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+
+ virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+private:
+ void mem_map(address_map &map);
+
+ required_device<h83048_device> m_h8;
+};
+
+DECLARE_DEVICE_TYPE(CDRN820S, cdrn820s_device)
+
+#endif // MAME_BUS_NSCSI_CDRN820S_H
diff --git a/src/devices/bus/nscsi/devices.cpp b/src/devices/bus/nscsi/devices.cpp
index 6702493313a..c8f45a0d84a 100644
--- a/src/devices/bus/nscsi/devices.cpp
+++ b/src/devices/bus/nscsi/devices.cpp
@@ -4,6 +4,8 @@
#include "emu.h"
#include "bus/nscsi/cd.h"
+#include "bus/nscsi/cdd2000.h"
+#include "bus/nscsi/cdrn820s.h"
#include "bus/nscsi/cw7501.h"
#include "bus/nscsi/hd.h"
#include "bus/nscsi/s1410.h"
@@ -15,4 +17,6 @@ void default_scsi_devices(device_slot_interface &device)
device.option_add("s1410", NSCSI_S1410);
device.option_add("cw7501", CW7501);
device.option_add("cdr4210", CDR4210);
+ device.option_add("cdrn820s", CDRN820S);
+ device.option_add("cdd2000", CDD2000);
};
diff --git a/src/devices/cpu/h8/h83048.cpp b/src/devices/cpu/h8/h83048.cpp
index 4fda46422bc..d90f690a4b6 100644
--- a/src/devices/cpu/h8/h83048.cpp
+++ b/src/devices/cpu/h8/h83048.cpp
@@ -32,7 +32,6 @@ h83048_device::h83048_device(const machine_config &mconfig, device_type type, co
sci0(*this, "sci0"),
sci1(*this, "sci1"),
watchdog(*this, "watchdog"),
- mode_a20(false),
ram_start(start),
syscr(0)
{
diff --git a/src/devices/cpu/h8/h83048.h b/src/devices/cpu/h8/h83048.h
index 7dac092064e..6876a909c2d 100644
--- a/src/devices/cpu/h8/h83048.h
+++ b/src/devices/cpu/h8/h83048.h
@@ -66,8 +66,6 @@ protected:
required_device<h8_sci_device> sci1;
required_device<h8_watchdog_device> watchdog;
- bool mode_a20;
-
uint32_t ram_start;
uint8_t syscr;