summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/amis2000/amis2000d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/amis2000/amis2000d.cpp')
-rw-r--r--src/devices/cpu/amis2000/amis2000d.cpp41
1 files changed, 14 insertions, 27 deletions
diff --git a/src/devices/cpu/amis2000/amis2000d.cpp b/src/devices/cpu/amis2000/amis2000d.cpp
index adf5e2ed338..cff6155fa0a 100644
--- a/src/devices/cpu/amis2000/amis2000d.cpp
+++ b/src/devices/cpu/amis2000/amis2000d.cpp
@@ -7,21 +7,9 @@
*/
#include "emu.h"
-#include "debugger.h"
-#include "amis2000.h"
+#include "amis2000d.h"
-
-enum e_mnemonics
-{
- mLAB = 0, mLAE, mLAI, mLBE, mLBEP, mLBF, mLBZ, mXAB, mXABU, mXAE,
- mLAM, mXC, mXCI, mXCD, mSTM, mRSM,
- mADD, mADCS, mADIS, mAND, mXOR, mCMA, mSTC, mRSC, mSF1, mRF1, mSF2, mRF2,
- mSAM, mSZM, mSBE, mSZC, mSOS, mSZK, mSZI, mTF1, mTF2,
- mPP, mJMP, mJMS, mRT, mRTS, mNOP, mHALT,
- mINP, mOUT, mDISB, mDISN, mMVS, mPSH, mPSL, mEUR
-};
-
-static const char *const s_mnemonics[] =
+const char *const amis2000_disassembler::s_mnemonics[] =
{
"LAB", "LAE", "LAI", "LBE", "LBEP", "LBF", "LBZ", "XAB", "XABU", "XAE",
"LAM", "XC", "XCI", "XCD", "STM", "RSM",
@@ -32,7 +20,7 @@ static const char *const s_mnemonics[] =
};
// number of bits per opcode parameter, negative indicates complement
-static const s8 s_bits[] =
+const s8 amis2000_disassembler::s_bits[] =
{
0, 0, 4, 2, 2, 2, 2, 0, 0, 0,
-2, -2, -2, -2, 2, 2,
@@ -42,21 +30,18 @@ static const s8 s_bits[] =
0, 0, 0, 0, 0, 0, 0, 0
};
-#define _OVER DASMFLAG_STEP_OVER
-#define _OUT DASMFLAG_STEP_OUT
-
-static const u32 s_flags[] =
+const u32 amis2000_disassembler::s_flags[] =
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, _OVER, _OUT, _OUT, 0, 0,
+ 0, 0, STEP_OVER, STEP_OUT, STEP_OUT, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
-static const u8 s2000_mnemonic[0x100] =
+const u8 amis2000_disassembler::s2000_mnemonic[0x100] =
{
/* 0x00 */
mNOP, mHALT, mRT, mRTS, mPSH, mPSL, mAND, mSOS,
@@ -98,12 +83,9 @@ static const u8 s2000_mnemonic[0x100] =
mJMP, mJMP, mJMP, mJMP, mJMP, mJMP, mJMP, mJMP
};
-
-
-CPU_DISASSEMBLE(amis2000)
+offs_t amis2000_disassembler::disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params)
{
- int pos = 0;
- u8 op = oprom[pos++];
+ u8 op = opcodes.r8(pc);
u8 instr = s2000_mnemonic[op];
util::stream_format(stream, "%-5s ", s_mnemonics[instr]);
@@ -128,5 +110,10 @@ CPU_DISASSEMBLE(amis2000)
util::stream_format(stream, "$%02X", param);
}
- return pos | s_flags[instr] | DASMFLAG_SUPPORTED;
+ return 1 | s_flags[instr] | SUPPORTED;
+}
+
+u32 amis2000_disassembler::opcode_alignment() const
+{
+ return 1;
}