summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/nscsi/cdu561.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nscsi/cdu561.cpp')
-rw-r--r--src/devices/bus/nscsi/cdu561.cpp84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/devices/bus/nscsi/cdu561.cpp b/src/devices/bus/nscsi/cdu561.cpp
new file mode 100644
index 00000000000..2d2506f474f
--- /dev/null
+++ b/src/devices/bus/nscsi/cdu561.cpp
@@ -0,0 +1,84 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/*******************************************************************************
+
+ Skeleton device for Sony CDU561-52 CD-ROM drive.
+
+ PCB: MAIN 1-644-812-13
+
+ Microcontroller:
+ - Mitsubishi M37732S4AFP
+
+ Memories:
+ - TI TMS27C010A-12 EPROM or equivalent
+ - Mosel MS62256CLL-10FC or Sony CXK58257AM-10L 32,768x8 Static RAM
+ - Mosel MS514256A-70VC 262,144x4 Fast Page Mode DRAM (x2; near CXD1198)
+ - Fujitsu MB81C79A-45 or Sony CXK5971AM-35 8,192x9 Static RAM (near CXD1186)
+
+ Other major digital ICs:
+ - Sony CXD1185CQ SCSI Controller
+ - Sony CXD1186Q CD-ROM Decoder
+ - Sony CXD1198AQ CD-ROM Subcode Decoder
+ - Sony CXD2500BQ CD Digital Signal Processor
+ - Sony CXD2568M
+ - Sony CXD8416Q
+
+ Linear ICs:
+ - Sony CXA1372AQ RF Signal Processing Servo Amplifier for CD Player
+ - Sony CXA1571M RF Amplifier for CD Player
+ - Toshiba TA8406P Dual Power Operational Amplifier (x3)
+
+ XTALs:
+ - D169 (near CXD2500B)
+ - 24.00MX (near CXD1198)
+
+*******************************************************************************/
+
+#include "emu.h"
+#include "cdu561.h"
+
+#include "cpu/m37710/m37710.h"
+#include "machine/cxd1185.h"
+
+DEFINE_DEVICE_TYPE(CDU561_25, cdu561_25_device, "cdu561_25", "Sony CDU561-25")
+
+cdu561_25_device::cdu561_25_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : device_t(mconfig, CDU561_25, tag, owner, clock)
+ , nscsi_slot_card_interface(mconfig, *this, "scsic")
+{
+}
+
+void cdu561_25_device::device_start()
+{
+}
+
+void cdu561_25_device::mem_map(address_map &map)
+{
+ map(0x000880, 0x007fff).ram();
+ map(0x008000, 0x01ffff).rom().region("eprom", 0x8000);
+ map(0x020000, 0x02ffff).rom().region("eprom", 0);
+ map(0x030000, 0x03000f).noprw(); // CXD1186?
+ map(0x050000, 0x05000f).m("scsic", FUNC(cxd1185_device::map));
+ map(0x070000, 0x070001).nopr(); // ?
+}
+
+void cdu561_25_device::device_add_mconfig(machine_config &config)
+{
+ m37732s4_device &mcu(M37732S4(config, "mcu", 24_MHz_XTAL / 2));
+ mcu.set_addrmap(AS_PROGRAM, &cdu561_25_device::mem_map);
+
+ CXD1185(config, "scsic", 24_MHz_XTAL / 2);
+}
+
+ROM_START(cdu561_25)
+ ROM_REGION16_LE(0x20000, "eprom", 0)
+ ROM_SYSTEM_BIOS(0, "19a", "apl1.9a")
+ ROMX_LOAD("apl1.9a_83fb.ic302", 0x00000, 0x20000, CRC(0efc50eb) SHA1(8bfd6ebc0863017914808e8282a5914cdc828f56), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "18f", "apl1.8F")
+ ROMX_LOAD("apl1.8f_d905.ic302", 0x00000, 0x20000, CRC(3ea92e48) SHA1(2f409fd59c5f09d22e00b39f4b0b57e16316090d), ROM_BIOS(1))
+ROM_END
+
+const tiny_rom_entry *cdu561_25_device::device_rom_region() const
+{
+ return ROM_NAME(cdu561_25);
+}