From 12eb29412456cc0fff3d5ddc607297e4b7a443e4 Mon Sep 17 00:00:00 2001 From: AJR Date: Wed, 10 Jul 2019 23:20:58 -0400 Subject: New machines marked as NOT_WORKING ---------------------------------- CD-R 4210 (v1.13) [Metropoli BBS Archive] --- scripts/target/mame/mess.lua | 1 + src/mame/drivers/cdr4210.cpp | 104 +++++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 3 ++ src/mame/mess.flt | 1 + 4 files changed, 109 insertions(+) create mode 100644 src/mame/drivers/cdr4210.cpp diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index e4e610ac7d0..52ebdba7c27 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3884,6 +3884,7 @@ files { MAME_DIR .. "src/mame/drivers/chaos.cpp", MAME_DIR .. "src/mame/drivers/cd2650.cpp", MAME_DIR .. "src/mame/drivers/cdc721.cpp", + MAME_DIR .. "src/mame/drivers/cdr4210.cpp", MAME_DIR .. "src/mame/drivers/cit101.cpp", MAME_DIR .. "src/mame/machine/cit101_kbd.cpp", MAME_DIR .. "src/mame/machine/cit101_kbd.h", diff --git a/src/mame/drivers/cdr4210.cpp b/src/mame/drivers/cdr4210.cpp new file mode 100644 index 00000000000..a89f89cf6e3 --- /dev/null +++ b/src/mame/drivers/cdr4210.cpp @@ -0,0 +1,104 @@ +// license:BSD-3-Clause +// copyright-holders:AJR +/******************************************************************************* + + Skeleton driver for CDR4210 SCSI CD-R drive by Creative Technology Ltd. + +*******************************************************************************/ + +#include "emu.h" +#include "cpu/m37710/m37710.h" +#include "machine/ncr5390.h" +#include "machine/nscsi_bus.h" + +class cdr4210_state : public driver_device +{ +public: + cdr4210_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + { + } + + void cdr4210(machine_config &config); + +protected: + virtual void machine_start() override; + +private: + u8 mystery_data_r(); + void mystery_data_w(u8 data); + void mystery_address_w(u8 data); + + void mem_map(address_map &map); + + required_device m_maincpu; + + u8 m_mystery_address; +}; + +void cdr4210_state::machine_start() +{ + m_mystery_address = 0; + + save_item(NAME(m_mystery_address)); +} + +u8 cdr4210_state::mystery_data_r() +{ + if (!machine().side_effects_disabled()) + logerror("%s: Reading from mystery register #%02X\n", machine().describe_context(), m_mystery_address); + + return 0; +} + +void cdr4210_state::mystery_data_w(u8 data) +{ + logerror("%s: Writing %02X to mystery register #%02X\n", machine().describe_context(), data, m_mystery_address); +} + +void cdr4210_state::mystery_address_w(u8 data) +{ + m_mystery_address = data; +} + +void cdr4210_state::mem_map(address_map &map) +{ + map(0x000880, 0x007fff).ram(); + map(0x008000, 0x03ffff).rom().region("flash", 0x08000); + map(0x050000, 0x050000).w(FUNC(cdr4210_state::mystery_address_w)); + map(0x050001, 0x050001).rw(FUNC(cdr4210_state::mystery_data_r), FUNC(cdr4210_state::mystery_data_w)); + map(0x058000, 0x05800f).m("scsi:7:scsic", FUNC(ncr53cf94_device::map)); + map(0x060000, 0x060003).noprw(); // ? +} + +static INPUT_PORTS_START(cdr4210) +INPUT_PORTS_END + +static void scsi_devices(device_slot_interface &device) +{ + device.option_add_internal("scsic", NCR53CF94).clock(25'000'000); // type guessed +} + +void cdr4210_state::cdr4210(machine_config &config) +{ + M37710S4(config, m_maincpu, 12'500'000); // type and clock are total guesses + m_maincpu->set_addrmap(AS_PROGRAM, &cdr4210_state::mem_map); + + NSCSI_BUS(config, "scsi"); + NSCSI_CONNECTOR(config, "scsi:0", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:1", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:2", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:3", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:4", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:5", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:6", scsi_devices, nullptr); + NSCSI_CONNECTOR(config, "scsi:7", scsi_devices, "scsic", true); +} + +ROM_START(cdr4210) + ROM_REGION16_LE(0x40000, "flash", 0) + ROM_LOAD("cr113.bin", 0x00000, 0x40000, CRC(fd2faff9) SHA1(6aafdedf12240ad347427287c0db289f90bd064d)) +ROM_END + +SYST(1996, cdr4210, 0, 0, cdr4210, cdr4210, cdr4210_state, empty_init, "Creative Technology", "CD-R 4210 (v1.13)", MACHINE_IS_SKELETON) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index abb9ea2e4d4..6766261fa8c 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -9740,6 +9740,9 @@ quizard4 // (c) TAB Austria 1998 quizard4_40 // (c) TAB Austria 1997 quizard4_41 // (c) TAB Austria 1998 +@source:cdr4210.cpp +cdr4210 // + @source:cedar_magnet.cpp cedmag mag_time diff --git a/src/mame/mess.flt b/src/mame/mess.flt index 20fd3854b01..d9544bbbc2e 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -135,6 +135,7 @@ ccs2810.cpp ccs300.cpp cd2650.cpp cdc721.cpp +cdr4210.cpp cfx9850.cpp cgc7900.cpp cgenie.cpp -- cgit v1.2.3