summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorGravatarGravatar AJR <ajrhacker@users.noreply.github.com>2019-08-31 19:29:43 -0400
committerGravatarGravatar AJR <ajrhacker@users.noreply.github.com>2019-08-31 19:29:43 -0400
commit857cd30a22e6b9f15f81269ed260fea385ff4343 (patch)
tree3f5dc14727cbc7027f23a1134bf4e74aa4e8b213
parent4ccfe06061b0bf98f25e0a34157e2b7f1bd72c3c (diff)
New machines marked as NOT_WORKING
---------------------------------- Alpha Micro AM-1000 [Bitsavers]
-rw-r--r--scripts/target/mame/mess.lua1
-rw-r--r--src/mame/drivers/am1000.cpp117
-rw-r--r--src/mame/mame.lst3
-rw-r--r--src/mame/mess.flt1
4 files changed, 122 insertions, 0 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index f7899a5dc7c..b1bf192b138 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -3885,6 +3885,7 @@ files {
MAME_DIR .. "src/mame/drivers/alcat7100.cpp",
MAME_DIR .. "src/mame/drivers/alesis_qs.cpp",
MAME_DIR .. "src/mame/drivers/alphasma.cpp",
+ MAME_DIR .. "src/mame/drivers/am1000.cpp",
MAME_DIR .. "src/mame/drivers/ampex.cpp",
MAME_DIR .. "src/mame/drivers/ampex210.cpp",
MAME_DIR .. "src/mame/drivers/ampro.cpp",
diff --git a/src/mame/drivers/am1000.cpp b/src/mame/drivers/am1000.cpp
new file mode 100644
index 00000000000..bab4bb80447
--- /dev/null
+++ b/src/mame/drivers/am1000.cpp
@@ -0,0 +1,117 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Alpha Micro AM-1000 system.
+
+ This system was sold in various configurations beginning in 1982.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+#include "cpu/z80/z80.h"
+//#include "machine/6840ptm.h"
+//#include "machine/6850acia.h"
+//#include "machine/com8116.h"
+//#include "machine/msm5832.h"
+
+class am1000_state : public driver_device
+{
+public:
+ am1000_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_subcpu(*this, "subcpu")
+ , m_mainprom(*this, "mainprom")
+ , m_mainram(*this, "mainram")
+ {
+ }
+
+ void am1000(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+private:
+ u16 rom_ram_r(offs_t offset, u16 mem_mask);
+ void control_w(u8 data);
+
+ void main_map(address_map &map);
+ void sub_map(address_map &map);
+
+ required_device<m68000_device> m_maincpu;
+ required_device<z80_device> m_subcpu;
+ required_region_ptr<u16> m_mainprom;
+ required_shared_ptr<u16> m_mainram;
+
+ bool m_ram_enabled;
+};
+
+
+void am1000_state::machine_start()
+{
+ save_item(NAME(m_ram_enabled));
+}
+
+void am1000_state::machine_reset()
+{
+ m_ram_enabled = false;
+}
+
+
+u16 am1000_state::rom_ram_r(offs_t offset, u16 mem_mask)
+{
+ if (m_ram_enabled)
+ return m_mainram[offset];
+ else
+ return m_mainprom[offset & m_mainprom.mask()];
+}
+
+void am1000_state::control_w(u8 data)
+{
+ m_ram_enabled = true;
+}
+
+
+void am1000_state::main_map(address_map &map)
+{
+ map(0x000000, 0x07ffff).r(FUNC(am1000_state::rom_ram_r)).writeonly().share("mainram"); // TMM41256P-12 x16
+ map(0x800000, 0x801fff).rom().region("mainprom", 0);
+ map(0xfffe00, 0xfffe00).w(FUNC(am1000_state::control_w));
+}
+
+void am1000_state::sub_map(address_map &map)
+{
+ map(0x0000, 0x07ff).rom().region("subprom", 0);
+ map(0x4000, 0x4fff).ram(); // NEC D4016C-2 x2
+}
+
+
+static INPUT_PORTS_START(am1000)
+INPUT_PORTS_END
+
+
+void am1000_state::am1000(machine_config &config)
+{
+ M68000(config, m_maincpu, 16_MHz_XTAL / 2); // MK68000P-8B
+ m_maincpu->set_addrmap(AS_PROGRAM, &am1000_state::main_map);
+
+ Z80(config, m_subcpu, 16_MHz_XTAL / 4); // NEC D780C-1
+ m_subcpu->set_addrmap(AS_PROGRAM, &am1000_state::sub_map);
+}
+
+
+ROM_START(am1000)
+ ROM_REGION16_BE(0x2000, "mainprom", 0) // "© COPYRIGHT 1988 ALPHA MICRO" on labels; "COPR. 1985 ALMI" in byte-swapped data
+ ROM_LOAD16_BYTE("169-13_c00.u83", 0x0000, 0x1000, CRC(1d9cc8c0) SHA1(fced7bde6dbee4b54050bc7a91fc8eb74a659823))
+ ROM_LOAD16_BYTE("169-12_c00.u82", 0x0001, 0x1000, CRC(72bca8ae) SHA1(67d7a13ea2d630af8e6aefeb1a30b2de8cf6012a))
+ // Adjacent 24-pin sockets at U100 and U101 are both unpopulated
+
+ ROM_REGION(0x800, "subprom", 0)
+ ROM_LOAD("169-05_b00.u162", 0x000, 0x800, CRC(e0f8bb40) SHA1(ac2531994eb90447d320401948af07723e51c8f9))
+ROM_END
+
+
+COMP(1988, am1000, 0, 0, am1000, am1000, am1000_state, empty_init, "Alpha Micro", "AM-1000", MACHINE_IS_SKELETON)
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index c71b93e55be..0c5ea45f0e0 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -1184,6 +1184,9 @@ wrldtour //
wrldtour2 //
wrldtour3 //
+@source:am1000.cpp
+am1000 // (c) 1988 Alpha Micro
+
@source:amaticmg.cpp
am_mg24 // (c) 2000 Amatic
am_mg24a // (c) 2000 Amatic
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 82de0acd735..2fc2318a137 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -45,6 +45,7 @@ altos2.cpp
altos5.cpp
altos486.cpp
altos8600.cpp
+am1000.cpp
amico2k.cpp
amiga.cpp
ampex.cpp