From 385138a88e2f110f41dd56220f530bd78f610c44 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 24 Jul 2019 10:09:24 -0400 Subject: 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) --- scripts/src/bus.lua | 4 +++ src/devices/bus/nscsi/cdd2000.cpp | 54 ++++++++++++++++++++++++++++++++++++++ src/devices/bus/nscsi/cdd2000.h | 31 ++++++++++++++++++++++ src/devices/bus/nscsi/cdrn820s.cpp | 53 +++++++++++++++++++++++++++++++++++++ src/devices/bus/nscsi/cdrn820s.h | 34 ++++++++++++++++++++++++ src/devices/bus/nscsi/devices.cpp | 4 +++ src/devices/cpu/h8/h83048.cpp | 1 - src/devices/cpu/h8/h83048.h | 2 -- 8 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 src/devices/bus/nscsi/cdd2000.cpp create mode 100644 src/devices/bus/nscsi/cdd2000.h create mode 100644 src/devices/bus/nscsi/cdrn820s.cpp create mode 100644 src/devices/bus/nscsi/cdrn820s.h 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 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 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 sci1; required_device watchdog; - bool mode_a20; - uint32_t ram_start; uint8_t syscr; -- cgit v1.2.3