summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/devices/cpu/m68000/m68000musashi.cpp25
-rwxr-xr-xsrc/devices/cpu/m68000/m68000musashi.h27
-rw-r--r--src/mame/sega/segaybd.cpp6
-rw-r--r--src/mame/sega/segaybd.h8
4 files changed, 59 insertions, 7 deletions
diff --git a/src/devices/cpu/m68000/m68000musashi.cpp b/src/devices/cpu/m68000/m68000musashi.cpp
new file mode 100755
index 00000000000..41b4c746458
--- /dev/null
+++ b/src/devices/cpu/m68000/m68000musashi.cpp
@@ -0,0 +1,25 @@
+// license:BSD-3-Clause
+// copyright-holders:Karl Stenerud
+
+#include "emu.h"
+#include "m68000musashi.h"
+#include "m68kdasm.h"
+
+DEFINE_DEVICE_TYPE(M68000MUSASHI, m68000msh_device, "m68000msh", "Motorola MC68000 (Musashi)")
+
+std::unique_ptr<util::disasm_interface> m68000msh_device::create_disassembler()
+{
+ return std::make_unique<m68k_disassembler>(m68k_disassembler::TYPE_68010);
+}
+
+
+m68000msh_device::m68000msh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : m68000_musashi_device(mconfig, tag, owner, clock, M68000MUSASHI, 16, 24)
+{
+}
+
+void m68000msh_device::device_start()
+{
+ m68000_musashi_device::device_start();
+ init_cpu_m68000();
+}
diff --git a/src/devices/cpu/m68000/m68000musashi.h b/src/devices/cpu/m68000/m68000musashi.h
new file mode 100755
index 00000000000..0d025d05e44
--- /dev/null
+++ b/src/devices/cpu/m68000/m68000musashi.h
@@ -0,0 +1,27 @@
+// license:BSD-3-Clause
+// copyright-holders:Karl Stenerud
+#ifndef MAME_CPU_M68000_M68000MUSASHI_H
+#define MAME_CPU_M68000_M68000MUSASHI_H
+
+#pragma once
+
+#include "m68kmusashi.h"
+
+class m68000msh_device : public m68000_musashi_device
+{
+public:
+ // construction/destruction
+ m68000msh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+ virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
+
+ virtual u32 execute_min_cycles() const noexcept override { return 4; }
+ virtual u32 execute_max_cycles() const noexcept override { return 158; }
+
+ // device-level overrides
+ virtual void device_start() override;
+};
+
+DECLARE_DEVICE_TYPE(M68000MUSASHI, m68000msh_device)
+
+#endif
diff --git a/src/mame/sega/segaybd.cpp b/src/mame/sega/segaybd.cpp
index 0c132c8ae2f..776f211a8a9 100644
--- a/src/mame/sega/segaybd.cpp
+++ b/src/mame/sega/segaybd.cpp
@@ -1428,13 +1428,13 @@ INPUT_PORTS_END
void segaybd_state::yboard(machine_config &config)
{
// basic machine hardware
- M68000(config, m_maincpu, MASTER_CLOCK/4);
+ M68000MUSASHI(config, m_maincpu, MASTER_CLOCK/4);
m_maincpu->set_addrmap(AS_PROGRAM, &segaybd_state::main_map);
- M68000(config, m_subx, MASTER_CLOCK/4);
+ M68000MUSASHI(config, m_subx, MASTER_CLOCK/4);
m_subx->set_addrmap(AS_PROGRAM, &segaybd_state::subx_map);
- M68000(config, m_suby, MASTER_CLOCK/4);
+ M68000MUSASHI(config, m_suby, MASTER_CLOCK/4);
m_suby->set_addrmap(AS_PROGRAM, &segaybd_state::suby_map);
Z80(config, m_soundcpu, SOUND_CLOCK/8);
diff --git a/src/mame/sega/segaybd.h b/src/mame/sega/segaybd.h
index 864f9b877fa..c38b74558c2 100644
--- a/src/mame/sega/segaybd.h
+++ b/src/mame/sega/segaybd.h
@@ -10,7 +10,7 @@
#pragma once
-#include "cpu/m68000/m68000.h"
+#include "cpu/m68000/m68000musashi.h"
#include "cpu/z80/z80.h"
#include "machine/mb3773.h"
#include "segaic16.h"
@@ -123,9 +123,9 @@ private:
void update_irqs();
// devices
- required_device<m68000_device> m_maincpu;
- required_device<m68000_device> m_subx;
- required_device<m68000_device> m_suby;
+ required_device<m68000msh_device> m_maincpu;
+ required_device<m68000msh_device> m_subx;
+ required_device<m68000msh_device> m_suby;
required_device<z80_device> m_soundcpu;
optional_device<z80_device> m_linkcpu;
required_device<mb3773_device> m_watchdog;