diff --git a/hash/x37_flop.xml b/hash/x37_flop.xml
new file mode 100644
index 00000000000..2bc2c592fe8
--- /dev/null
+++ b/hash/x37_flop.xml
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+ ABCenix
+ 1985
+ Luxor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ cremount
+ 1985
+ Luxor
+
+
+
+
+
+
+
+
+
+
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 4fbb5784e3c..f0f007749b0 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -2974,6 +2974,7 @@ files {
MAME_DIR .. "src/mame/machine/abc1600mac.h",
MAME_DIR .. "src/mame/video/abc1600.cpp",
MAME_DIR .. "src/mame/video/abc1600.h",
+ MAME_DIR .. "src/mame/drivers/ds90.cpp",
}
createMESSProjects(_target, _subtarget, "magnavox")
diff --git a/src/mame/drivers/ds90.cpp b/src/mame/drivers/ds90.cpp
new file mode 100644
index 00000000000..df22f89892f
--- /dev/null
+++ b/src/mame/drivers/ds90.cpp
@@ -0,0 +1,66 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+
+/*
+
+ Luxor X37 prototype
+
+ (Luxor DS90-10 + ABC 1600 video)
+
+*/
+
+#include "emu.h"
+#include "softlist_dev.h"
+#include "cpu/m68000/m68000.h"
+#include "video/abc1600.h"
+
+class x37_state : public driver_device
+{
+public:
+ x37_state(const machine_config &mconfig, device_type type, const char *tag) :
+ driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu")
+ { }
+
+ void x37(machine_config &config);
+
+private:
+ required_device m_maincpu;
+
+ void program_map(address_map &map);
+ void cpu_space_map(address_map &map);
+};
+
+void x37_state::program_map(address_map &map)
+{
+ map(0x000000, 0x007fff).rom().region("maincpu", 0);
+}
+
+void x37_state::cpu_space_map(address_map &map)
+{
+ map(0xffff0, 0xfffff).m(m_maincpu, FUNC(m68010_device::autovectors_map));
+}
+
+static INPUT_PORTS_START( x37 )
+INPUT_PORTS_END
+
+void x37_state::x37(machine_config &config)
+{
+ // basic machine hardware
+ M68010(config, m_maincpu, 10000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &x37_state::program_map);
+ m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &x37_state::cpu_space_map);
+
+ // video hardware
+ ABC1600_MOVER(config, ABC1600_MOVER_TAG, 0);
+
+ // software list
+ SOFTWARE_LIST(config, "flop_list").set_original("x37_flop");
+}
+
+ROM_START( x37 )
+ ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_LOAD( "x37.rom", 0x0000, 0x8000, CRC(d505e7e7) SHA1(a3ad839e47b1f71c394e5ce28bce199e5e4810d2) )
+ROM_END
+
+COMP( 1985, x37, 0, 0, x37, x37, x37_state, empty_init, "Luxor", "X37 (prototype)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 1f919e10e3f..ffc0b8f0ab3 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -12778,6 +12778,9 @@ drumsta //
drw80pk2 // (c) 1983 IGT
drw80pkr // (c) 1982 IGT
+@source:ds90.cpp
+x37 //
+
@source:dsb46.cpp
dsb46 //
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 7686ad91358..316c6427b3e 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -257,6 +257,7 @@ dps1.cpp
dpsv55.cpp
dragon.cpp
drumsta.cpp
+ds90.cpp
dsb46.cpp
dual68.cpp
duet16.cpp