summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/arcompact/arcompact.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/arcompact/arcompact.h')
-rw-r--r--src/emu/cpu/arcompact/arcompact.h46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/emu/cpu/arcompact/arcompact.h b/src/emu/cpu/arcompact/arcompact.h
index 10cfed6e195..4b70e2767dc 100644
--- a/src/emu/cpu/arcompact/arcompact.h
+++ b/src/emu/cpu/arcompact/arcompact.h
@@ -17,6 +17,46 @@
#define ARCOMPACT_OPERATION ((op & 0xf800) >> 11)
+#define ARCOMPACT_HANDLER04_P11_TYPE(name) \
+ARCOMPACT_RETTYPE arcompact_handle##name##_p11(OPS_16) \
+{ \
+ int M = (op & 0x00000020) >> 5; \
+ \
+ switch (M) \
+ { \
+ case 0x00: return arcompact_handle##name##_p11_m0(PARAMS); \
+ case 0x01: return arcompact_handle##name##_p11_m1(PARAMS); \
+ } \
+ \
+ return 0; \
+}; \
+
+#define ARCOMPACT_HANDLER04_TYPE(name) \
+ARCOMPACT_RETTYPE arcompact_handle##name(OPS_16) \
+{ \
+ int p = (op & 0x00c00000) >> 22; \
+ \
+ switch (p) \
+ { \
+ case 0x00: return arcompact_handle##name##_p00(PARAMS); \
+ case 0x01: return arcompact_handle##name##_p01(PARAMS); \
+ case 0x02: return arcompact_handle##name##_p10(PARAMS); \
+ case 0x03: return arcompact_handle##name##_p11(PARAMS); \
+ } \
+ \
+ return 0; \
+}; \
+
+
+#define ARCOMPACT_HANDLER04_TYPE_PM(name) \
+ ARCOMPACT_RETTYPE arcompact_handle##name##_p00(OPS_16); \
+ ARCOMPACT_RETTYPE arcompact_handle##name##_p01(OPS_16); \
+ ARCOMPACT_RETTYPE arcompact_handle##name##_p10(OPS_16); \
+ ARCOMPACT_RETTYPE arcompact_handle##name##_p11_m0(OPS_16); \
+ ARCOMPACT_RETTYPE arcompact_handle##name##_p11_m1(OPS_16); \
+ ARCOMPACT_HANDLER04_P11_TYPE(name); \
+ ARCOMPACT_HANDLER04_TYPE(name); \
+
class arcompact_device : public cpu_device
{
@@ -136,7 +176,7 @@ protected:
ARCOMPACT_RETTYPE arcompact_handle04_1b(OPS_32);
ARCOMPACT_RETTYPE arcompact_handle04_1c(OPS_32);
ARCOMPACT_RETTYPE arcompact_handle04_1d(OPS_32);
- ARCOMPACT_RETTYPE arcompact_handle04_20(OPS_32);
+// ARCOMPACT_RETTYPE arcompact_handle04_20(OPS_32);
ARCOMPACT_RETTYPE arcompact_handle04_21(OPS_32);
ARCOMPACT_RETTYPE arcompact_handle04_22(OPS_32);
ARCOMPACT_RETTYPE arcompact_handle04_23(OPS_32);
@@ -727,6 +767,10 @@ protected:
ARCOMPACT_RETTYPE get_insruction(OPS_32);
+
+ ARCOMPACT_HANDLER04_TYPE_PM(04_20);
+
+
private:
address_space_config m_program_config;