summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-01-20 14:41:54 -0500
committer AJR <ajrhacker@users.noreply.github.com>2020-01-20 14:41:54 -0500
commit81703afe74615ec5cc399dd91946e4d3b05d83a7 (patch)
tree3deae6bfb7b8b42f12a56d3622d4e8cc6f9cebb9
parent9ce190865bf7ebe26f3f9b958f75015cb69a6a95 (diff)
New machines marked as NOT_WORKING
---------------------------------- AID-80F Development System [Maggi9295]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/aid80f.cpp140
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
4 files changed, 145 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 10281731053..bcb015ec3d2 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -4037,6 +4037,7 @@ files {
MAME_DIR .. "src/mame/drivers/aaa.cpp",
MAME_DIR .. "src/mame/drivers/acd.cpp",
MAME_DIR .. "src/mame/drivers/aceex.cpp",
+ MAME_DIR .. "src/mame/drivers/aid80f.cpp",
MAME_DIR .. "src/mame/drivers/akaiax80.cpp",
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",
MAME_DIR .. "src/mame/drivers/alesis_qs.cpp",
diff --git a/src/mame/drivers/aid80f.cpp b/src/mame/drivers/aid80f.cpp
new file mode 100644
index 00000000000..933558c3dd7
--- /dev/null
+++ b/src/mame/drivers/aid80f.cpp
@@ -0,0 +1,140 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ AID-80F was Mostek's development system for the Z80 and 3870 families.
+ It was later advertised as the development system for the MATRIX-80
+ (MDX) STD bus microcomputer.
+
+ Boards available for this modular system included:
+ * SDB-80E/OEM-80E CPU Module
+ * FLP-80E Floppy Controller
+ * CRT-80E Video Terminal Controller
+ * PPG-8/16 2708/2758/2716 PROM Programmer
+ * AIM-80 Z80 Application Interface Module
+ — later replaced by AIM-Z80AE (4 MHz) and AIM-Z80BE (6 MHz)
+ * AIM-72 3870 Application Interface Module
+ — later replaced by AIM-7XE
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+#include "machine/ram.h"
+#include "machine/wd_fdc.h"
+#include "machine/z80ctc.h"
+#include "machine/z80pio.h"
+#include "machine/z80sio.h"
+
+class aid80f_state : public driver_device
+{
+public:
+ aid80f_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_ram(*this, RAM_TAG)
+ , m_monitor(*this, "monitor")
+ {
+ }
+
+ void aid80f(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
+ u8 ram_r(offs_t offset);
+ void ram_w(offs_t offset, u8 data);
+ u8 monitor_r(offs_t offset);
+
+ void mem_map(address_map &map);
+ void io_map(address_map &map);
+
+ required_device<z80_device> m_maincpu;
+ required_device<ram_device> m_ram;
+ required_region_ptr<u8> m_monitor;
+
+ bool m_ram_enabled;
+};
+
+void aid80f_state::machine_start()
+{
+ save_item(NAME(m_ram_enabled));
+}
+
+void aid80f_state::machine_reset()
+{
+ m_ram_enabled = false;
+}
+
+u8 aid80f_state::ram_r(offs_t offset)
+{
+ if (m_ram_enabled)
+ return m_ram->read(offset);
+ else
+ return m_monitor[offset & 0xfff];
+}
+
+void aid80f_state::ram_w(offs_t offset, u8 data)
+{
+ if (m_ram_enabled)
+ m_ram->write(offset, data);
+}
+
+u8 aid80f_state::monitor_r(offs_t offset)
+{
+ if (!machine().side_effects_disabled())
+ m_ram_enabled = true;
+ return m_monitor[offset];
+}
+
+void aid80f_state::mem_map(address_map &map)
+{
+ map(0x0000, 0xffff).rw(FUNC(aid80f_state::ram_r), FUNC(aid80f_state::ram_w));
+ map(0xe000, 0xefff).r(FUNC(aid80f_state::monitor_r));
+}
+
+void aid80f_state::io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0xdc, 0xdf).rw("pio", FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
+}
+
+static INPUT_PORTS_START(aid80f)
+INPUT_PORTS_END
+
+static const z80_daisy_config daisy_chain[] =
+{
+ { "ctc" },
+ { "pio" },
+ { "sio" },
+ { nullptr }
+};
+
+void aid80f_state::aid80f(machine_config &config)
+{
+ Z80(config, m_maincpu, 4.9152_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &aid80f_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &aid80f_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
+
+ RAM(config, m_ram).set_default_size("64K");
+
+ Z80CTC(config, "ctc", 4.9152_MHz_XTAL / 2);
+ Z80PIO(config, "pio", 4.9152_MHz_XTAL / 2);
+ Z80SIO(config, "sio", 4.9152_MHz_XTAL / 2);
+
+ FD1771(config, "fdc", 4_MHz_XTAL / 4);
+}
+
+ROM_START(aid80f)
+ ROM_REGION(0x1000, "monitor", 0)
+ ROM_LOAD("ddt1.u48", 0x0000, 0x0400, CRC(c9e5dc59) SHA1(3143bca7472900e7255ec0e39ca4121d1cb74c5f))
+ ROM_LOAD("ddt2.u49", 0x0400, 0x0400, CRC(dd37f628) SHA1(6da130a3678fd84070dd4ae3487c5212db5604ef))
+ ROM_LOAD("ddt3.u50", 0x0800, 0x0400, CRC(646d5fd2) SHA1(b9d0a4b3658835c5d724d709ca3cd70d69474caa))
+ ROM_LOAD("ddt4.u51", 0x0c00, 0x0400, CRC(c78e34c2) SHA1(5f3a4631d0b806a077b817f566ebbddd77ad7ba5))
+ // U52 socket is empty
+ROM_END
+
+COMP(1978, aid80f, 0, 0, aid80f, aid80f, aid80f_state, empty_init, "Mostek", "AID-80F Development System", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 9bd57de508c..edff2774942 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -994,6 +994,9 @@ age_cand // AGE Candy Crane
agat7 // Agat-7
agat9 // Agat-9
+@source:aid80f.cpp
+aid80f //
+
@source:aim65.cpp
aim65 // Rockwell AIM65
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index f4b026a1870..6e93f240a99 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -31,6 +31,7 @@ adm31.cpp
adm36.cpp
advision.cpp
agat.cpp
+aid80f.cpp
aim65.cpp
aim65_40.cpp
akaiax80.cpp