summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Patrick Mackinlay <pmackinlay@hotmail.com>2020-03-23 12:26:25 +0700
committer Patrick Mackinlay <pmackinlay@hotmail.com>2020-03-23 12:26:25 +0700
commit0eb9783619beefdc6e0922b0b766a887eb01d269 (patch)
tree228a929b728b0640a8e6273a9df6d7ccde7fa7bc
parentdb6d9cdbee21dab03e7a4ee64ff81cfbd05ef428 (diff)
New machines marked as NOT_WORKING
---------------------------------- Sony NWS-3260 [Plamen Mihaylov]
-rw-r--r--scripts/target/mame/mess.lua6
-rw-r--r--src/mame/drivers/news_r3k.cpp141
-rw-r--r--src/mame/mame.lst3
3 files changed, 150 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 8e7e1f00933..c75d9f9fb51 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -1224,6 +1224,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"ne",
"nec",
"netronic",
+ "news_r3k",
"next",
"nintendo",
"nokia",
@@ -2929,6 +2930,11 @@ files {
MAME_DIR .. "src/mame/includes/exp85.h",
}
+createMESSProjects(_target, _subtarget, "news_r3k")
+files {
+ MAME_DIR .. "src/mame/drivers/news_r3k.cpp",
+}
+
createMESSProjects(_target, _subtarget, "next")
files {
MAME_DIR .. "src/mame/drivers/next.cpp",
diff --git a/src/mame/drivers/news_r3k.cpp b/src/mame/drivers/news_r3k.cpp
new file mode 100644
index 00000000000..46d6d87dd92
--- /dev/null
+++ b/src/mame/drivers/news_r3k.cpp
@@ -0,0 +1,141 @@
+// license:BSD-3-Clause
+// copyright-holders:Patrick Mackinlay
+
+/*
+ * Sony NEWS R3000 systems.
+ *
+ * Sources:
+ *
+ * TODO
+ * - skeleton only
+ */
+
+#include "emu.h"
+
+#include "cpu/mips/mips1.h"
+
+// memory
+#include "machine/ram.h"
+
+// various hardware
+#include "machine/am79c90.h"
+#include "machine/timekpr.h"
+#include "machine/z80scc.h"
+
+// video
+#include "screen.h"
+
+// audio
+#include "sound/spkrdev.h"
+#include "speaker.h"
+
+// busses and connectors
+#include "machine/nscsi_bus.h"
+#include "bus/nscsi/cd.h"
+#include "bus/nscsi/hd.h"
+#include "bus/rs232/rs232.h"
+
+#include "debugger.h"
+
+#define VERBOSE 0
+#include "logmacro.h"
+
+class news_r3k_state : public driver_device
+{
+public:
+ news_r3k_state(machine_config const &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_cpu(*this, "cpu")
+ , m_ram(*this, "ram")
+ , m_rtc(*this, "rtc")
+ , m_scsibus(*this, "scsi")
+ {
+ }
+
+protected:
+ // driver_device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ // address maps
+ void cpu_map(address_map &map);
+
+ // machine config
+ void common(machine_config &config);
+
+public:
+ void nws3260(machine_config &config);
+
+ void init_common();
+
+protected:
+ // devices
+ required_device<r3000a_device> m_cpu;
+ required_device<ram_device> m_ram;
+ required_device<m48t02_device> m_rtc;
+ required_device<nscsi_bus_device> m_scsibus;
+};
+
+void news_r3k_state::machine_start()
+{
+}
+
+void news_r3k_state::machine_reset()
+{
+}
+
+void news_r3k_state::init_common()
+{
+ // map the configured ram
+ m_cpu->space(0).install_ram(0x00000000, m_ram->mask(), m_ram->pointer());
+}
+
+void news_r3k_state::cpu_map(address_map &map)
+{
+ map(0x1fc00000, 0x1fc1ffff).rom().region("eprom", 0);
+
+ map(0x1ff40000, 0x1ff407ff).rw(m_rtc, FUNC(m48t02_device::read), FUNC(m48t02_device::write));
+}
+
+static void news_scsi_devices(device_slot_interface &device)
+{
+ device.option_add("harddisk", NSCSI_HARDDISK);
+ device.option_add("cdrom", NSCSI_CDROM);
+}
+
+void news_r3k_state::common(machine_config &config)
+{
+ R3000A(config, m_cpu, 20_MHz_XTAL, 32768, 32768);
+ m_cpu->set_addrmap(AS_PROGRAM, &news_r3k_state::cpu_map);
+ m_cpu->set_fpu(mips1_device_base::MIPS_R3010Av4);
+
+ // 12 SIMM slots
+ RAM(config, m_ram);
+ m_ram->set_default_size("16M");
+
+ M48T02(config, m_rtc);
+
+ // scsi bus and devices
+ NSCSI_BUS(config, m_scsibus);
+ NSCSI_CONNECTOR(config, "scsi:0", news_scsi_devices, "harddisk");
+ NSCSI_CONNECTOR(config, "scsi:1", news_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:2", news_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:3", news_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:4", news_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:5", news_scsi_devices, nullptr);
+ NSCSI_CONNECTOR(config, "scsi:6", news_scsi_devices, "cdrom");
+}
+
+void news_r3k_state::nws3260(machine_config &config)
+{
+ common(config);
+}
+
+ROM_START(nws3260)
+ ROM_REGION32_BE(0x20000, "eprom", 0)
+ ROM_SYSTEM_BIOS(0, "nws3260", "NWS-3260 v2.0A")
+ ROMX_LOAD("nws3260.bin", 0x00000, 0x20000, CRC(61222991) SHA1(076fab0ad0682cd7dacc7094e42efe8558cbaaa1), ROM_BIOS(0))
+ROM_END
+
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP(1991, nws3260, 0, 0, nws3260, 0, news_r3k_state, init_common, "Sony", "NWS-3260", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 9feab40632f..ecc6856d775 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -31546,6 +31546,9 @@ newbrainmd //
news // "Virus"??? ((c) 1993 Poby in ROM VIRUS.4)
newsa // "Jeansole / Poby
+@source:news_r3k.cpp
+nws3260 // Sony NEWS NWS-3260
+
@source:next.cpp
next //
nextct //