summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2021-02-24 20:42:13 -0500
committer arbee <rb6502@users.noreply.github.com>2021-02-24 20:42:13 -0500
commitc186e7eb3aaa637390ea6f6bae75a99eecda8db2 (patch)
treef10f3f29d59066f1cd65eb1749ea47dc77865c8a
parentaeb540deb134a4eea03dc1b0e35815711afb6c6a (diff)
68hc05EG: use proper HC05 base cycle timings and disassembler [R. Belmont, Vas Crabb]
-rw-r--r--src/devices/cpu/m6805/m6805.cpp14
-rw-r--r--src/devices/cpu/m6805/m6805.h4
2 files changed, 18 insertions, 0 deletions
diff --git a/src/devices/cpu/m6805/m6805.cpp b/src/devices/cpu/m6805/m6805.cpp
index 401eafa1c05..bf6ee87c02b 100644
--- a/src/devices/cpu/m6805/m6805.cpp
+++ b/src/devices/cpu/m6805/m6805.cpp
@@ -671,6 +671,20 @@ void m68hc05eg_device::interrupt_vector()
}
}
+u64 m68hc05eg_device::execute_clocks_to_cycles(u64 clocks) const noexcept
+{
+ return (clocks + 1) / 2;
+}
+
+u64 m68hc05eg_device::execute_cycles_to_clocks(u64 cycles) const noexcept
+{
+ return cycles * 2;
+}
+
+std::unique_ptr<util::disasm_interface> m68hc05eg_device::create_disassembler()
+{
+ return std::make_unique<m68hc05_disassembler>();
+}
/****************************************************************************
* HD63705 section
diff --git a/src/devices/cpu/m6805/m6805.h b/src/devices/cpu/m6805/m6805.h
index 8aaf1a2a1f0..824c664b829 100644
--- a/src/devices/cpu/m6805/m6805.h
+++ b/src/devices/cpu/m6805/m6805.h
@@ -320,6 +320,10 @@ protected:
virtual void device_reset() override;
virtual void interrupt_vector() override;
+
+ virtual uint64_t execute_clocks_to_cycles(uint64_t clocks) const noexcept override;
+ virtual uint64_t execute_cycles_to_clocks(uint64_t cycles) const noexcept override;
+ virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
};
// ======================> hd63705_device