diff options
Diffstat (limited to 'src/emu/cpu/arcompact/arcompact.h')
-rw-r--r-- | src/emu/cpu/arcompact/arcompact.h | 46 |
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; |