Skip to content

Commit 759fe7b

Browse files
committed
New systems marked not working
------------------------------ Tektronix XD88 [CJ Reha]
1 parent a6617e5 commit 759fe7b

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

Diff for: src/mame/mame.lst

+3
Original file line numberDiff line numberDiff line change
@@ -44454,6 +44454,9 @@ tek6130 // Tektronix 6130
4445444454
@source:tektronix/tekxp33x.cpp
4445544455
tekxp330 //
4445644456

44457+
@source:tektronix/xd88.cpp
44458+
xd88_01
44459+
4445744460
@source:telenova/compis.cpp
4445844461
compis // 1985 Telenova Compis
4445944462
compis2 // 1985 Telenova Compis

Diff for: src/mame/tektronix/xd88.cpp

+95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// license:BSD-3-Clause
2+
// copyright-holders:Patrick Mackinlay
3+
4+
/*
5+
* Tektronix XD88 systems.
6+
*
7+
* Sources:
8+
* - https://wiki.unix-haters.org/doku.php?id=tektronix:xd88:resources
9+
*
10+
* TODO:
11+
* - everything
12+
*/
13+
14+
#include "emu.h"
15+
16+
#include "cpu/m88000/m88000.h"
17+
18+
#include "machine/mc88200.h"
19+
20+
//#define VERBOSE (LOG_GENERAL)
21+
#include "logmacro.h"
22+
23+
namespace {
24+
25+
class xd88_state : public driver_device
26+
{
27+
public:
28+
xd88_state(machine_config const &mconfig, device_type type, char const *tag)
29+
: driver_device(mconfig, type, tag)
30+
, m_cpu(*this, "cpu")
31+
, m_cmmu(*this, "cmmu%u", 0U)
32+
, m_boot(*this, "boot")
33+
{
34+
}
35+
36+
void xd88_01(machine_config &config);
37+
38+
protected:
39+
virtual void machine_start() override;
40+
virtual void machine_reset() override;
41+
42+
void cpu_map(address_map &map);
43+
44+
private:
45+
required_device<mc88100_device> m_cpu;
46+
required_device_array<mc88200_device, 8> m_cmmu;
47+
48+
memory_view m_boot;
49+
};
50+
51+
void xd88_state::machine_start()
52+
{
53+
}
54+
55+
void xd88_state::machine_reset()
56+
{
57+
m_boot.select(0);
58+
}
59+
60+
void xd88_state::cpu_map(address_map &map)
61+
{
62+
// TODO: RAM options (8M is standard)
63+
map(0x0000'0000, 0x007f'ffff).ram();
64+
65+
map(0x0000'0000, 0x0003'ffff).view(m_boot);
66+
m_boot[0](0x0000'0000, 0x0003'ffff).rom().region("eprom", 0);
67+
68+
map(0xfe00'0000, 0xfe03'ffff).rom().region("eprom", 0);
69+
}
70+
71+
void xd88_state::xd88_01(machine_config &config)
72+
{
73+
MC88100(config, m_cpu, 20'000'000);
74+
m_cpu->set_addrmap(AS_PROGRAM, &xd88_state::cpu_map);
75+
76+
for (unsigned i = 0; i < std::size(m_cmmu); i++)
77+
MC88200(config, m_cmmu[i], 20'000'000, i).set_mbus(m_cpu, AS_PROGRAM);
78+
79+
// TODO: multiple i&d cmmu's
80+
m_cpu->set_cmmu_d(m_cmmu[0]);
81+
m_cpu->set_cmmu_i(m_cmmu[4]);
82+
}
83+
84+
ROM_START(xd88_01)
85+
ROM_REGION32_BE(0x40000, "eprom", 0)
86+
ROMX_LOAD("160-5796-04__u3930_v1.4.u3930", 0, 0x10000, CRC(db2ef744) SHA1(82ddb494fc1e2693da3d021c1cfeea49ef06ed3e), ROM_SKIP(3))
87+
ROMX_LOAD("160-5797-04__u4230_v1.4.u4230", 1, 0x10000, CRC(8fe40d66) SHA1(30cacd590c2598cb6db1933309d2d60e57f375eb), ROM_SKIP(3))
88+
ROMX_LOAD("160-5798-04__u4530_v1.4.u4530", 2, 0x10000, CRC(2aa2503c) SHA1(edc869a7ac9b6ce68603146884cf9a95ee22d39e), ROM_SKIP(3))
89+
ROMX_LOAD("160-5799-04__u4830_v1.4.u4830", 3, 0x10000, CRC(f7ecedae) SHA1(6063e616e4c1de5af048bd2cb61ad64a57c7f5a4), ROM_SKIP(3))
90+
ROM_END
91+
92+
} // anonymous namespace
93+
94+
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
95+
COMP(1990, xd88_01, 0, 0, xd88_01, 0, xd88_state, empty_init, "Tektronix", "XD88/01", MACHINE_IS_SKELETON)

0 commit comments

Comments
 (0)