From 759fe7bde1d450749de50912772ab9b4d0c02192 Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Wed, 3 Jul 2024 10:01:27 +0700 Subject: New systems marked not working ------------------------------ Tektronix XD88 [CJ Reha] --- src/mame/mame.lst | 3 ++ src/mame/tektronix/xd88.cpp | 95 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 src/mame/tektronix/xd88.cpp diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 2cfa09d2d8c..a982cf2a247 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -44454,6 +44454,9 @@ tek6130 // Tektronix 6130 @source:tektronix/tekxp33x.cpp tekxp330 // +@source:tektronix/xd88.cpp +xd88_01 + @source:telenova/compis.cpp compis // 1985 Telenova Compis compis2 // 1985 Telenova Compis diff --git a/src/mame/tektronix/xd88.cpp b/src/mame/tektronix/xd88.cpp new file mode 100644 index 00000000000..1c0688effc3 --- /dev/null +++ b/src/mame/tektronix/xd88.cpp @@ -0,0 +1,95 @@ +// license:BSD-3-Clause +// copyright-holders:Patrick Mackinlay + +/* + * Tektronix XD88 systems. + * + * Sources: + * - https://wiki.unix-haters.org/doku.php?id=tektronix:xd88:resources + * + * TODO: + * - everything + */ + +#include "emu.h" + +#include "cpu/m88000/m88000.h" + +#include "machine/mc88200.h" + +//#define VERBOSE (LOG_GENERAL) +#include "logmacro.h" + +namespace { + +class xd88_state : public driver_device +{ +public: + xd88_state(machine_config const &mconfig, device_type type, char const *tag) + : driver_device(mconfig, type, tag) + , m_cpu(*this, "cpu") + , m_cmmu(*this, "cmmu%u", 0U) + , m_boot(*this, "boot") + { + } + + void xd88_01(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + void cpu_map(address_map &map); + +private: + required_device m_cpu; + required_device_array m_cmmu; + + memory_view m_boot; +}; + +void xd88_state::machine_start() +{ +} + +void xd88_state::machine_reset() +{ + m_boot.select(0); +} + +void xd88_state::cpu_map(address_map &map) +{ + // TODO: RAM options (8M is standard) + map(0x0000'0000, 0x007f'ffff).ram(); + + map(0x0000'0000, 0x0003'ffff).view(m_boot); + m_boot[0](0x0000'0000, 0x0003'ffff).rom().region("eprom", 0); + + map(0xfe00'0000, 0xfe03'ffff).rom().region("eprom", 0); +} + +void xd88_state::xd88_01(machine_config &config) +{ + MC88100(config, m_cpu, 20'000'000); + m_cpu->set_addrmap(AS_PROGRAM, &xd88_state::cpu_map); + + for (unsigned i = 0; i < std::size(m_cmmu); i++) + MC88200(config, m_cmmu[i], 20'000'000, i).set_mbus(m_cpu, AS_PROGRAM); + + // TODO: multiple i&d cmmu's + m_cpu->set_cmmu_d(m_cmmu[0]); + m_cpu->set_cmmu_i(m_cmmu[4]); +} + +ROM_START(xd88_01) + ROM_REGION32_BE(0x40000, "eprom", 0) + ROMX_LOAD("160-5796-04__u3930_v1.4.u3930", 0, 0x10000, CRC(db2ef744) SHA1(82ddb494fc1e2693da3d021c1cfeea49ef06ed3e), ROM_SKIP(3)) + ROMX_LOAD("160-5797-04__u4230_v1.4.u4230", 1, 0x10000, CRC(8fe40d66) SHA1(30cacd590c2598cb6db1933309d2d60e57f375eb), ROM_SKIP(3)) + ROMX_LOAD("160-5798-04__u4530_v1.4.u4530", 2, 0x10000, CRC(2aa2503c) SHA1(edc869a7ac9b6ce68603146884cf9a95ee22d39e), ROM_SKIP(3)) + ROMX_LOAD("160-5799-04__u4830_v1.4.u4830", 3, 0x10000, CRC(f7ecedae) SHA1(6063e616e4c1de5af048bd2cb61ad64a57c7f5a4), ROM_SKIP(3)) +ROM_END + +} // anonymous namespace + +/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ +COMP(1990, xd88_01, 0, 0, xd88_01, 0, xd88_state, empty_init, "Tektronix", "XD88/01", MACHINE_IS_SKELETON) -- cgit v1.2.3