summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/mcs51/axc51-core_dasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/mcs51/axc51-core_dasm.cpp')
-rw-r--r--src/devices/cpu/mcs51/axc51-core_dasm.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/devices/cpu/mcs51/axc51-core_dasm.cpp b/src/devices/cpu/mcs51/axc51-core_dasm.cpp
new file mode 100644
index 00000000000..dd9677965bc
--- /dev/null
+++ b/src/devices/cpu/mcs51/axc51-core_dasm.cpp
@@ -0,0 +1,42 @@
+// license:BSD-3-Clause
+// copyright-holders:David Haywood
+/*****************************************************************************
+
+ AXC51-CORE (AppoTech Inc.)
+
+ used in
+
+ AX208 SoC
+
+ *****************************************************************************/
+
+#include "emu.h"
+#include "axc51-core_dasm.h"
+
+axc51core_disassembler::axc51core_disassembler() : mcs51_disassembler(default_names)
+{
+}
+
+
+offs_t axc51core_disassembler::disassemble_op(std::ostream &stream, unsigned PC, offs_t pc, const data_buffer &opcodes, const data_buffer &params, uint8_t op)
+{
+ uint32_t flags = 0;
+ uint8_t prm = 0;
+
+ switch( op )
+ {
+ // unknown, probably the 16-bit extended ocpodes, see page 14 of AX208-SP-101-EN manual, encodings not specified!
+ // note, the other AXC51-CORE based manuals don't seem to mention these, are they really AX208 specific?
+ case 0xa5:
+ prm = params.r8(PC++);
+ util::stream_format(stream, "unknown ax208 a5 $%02X", prm);
+ break;
+
+ default:
+ return mcs51_disassembler::disassemble_op(stream, PC, pc, opcodes, params, op);
+ }
+
+ return (PC - pc) | flags | SUPPORTED;
+}
+
+