diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2022-11-17 15:48:56 -0500 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2022-11-17 15:50:58 -0500 |
commit | 8f77f6f75874ca67731cc81f6506b0a2969d1622 (patch) | |
tree | 1272c4befc565d3037dc1d5201520e435c5c173c /src/devices | |
parent | 4baedd6633a1f75f72639e27aa24c73014e18e90 (diff) |
m68000: Prevent CI/CEI bits from remaining set after MOVEC to CACR. Fixes maclc not booting. (The code tries to flush the instruction cache by adding #8 to the old value of CACR, which doesn't work if CI reads back as 1.)
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/cpu/m68000/m68k_in.lst | 1 | ||||
-rw-r--r-- | src/devices/cpu/m68000/m68kops.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/devices/cpu/m68000/m68k_in.lst b/src/devices/cpu/m68000/m68k_in.lst index ceaa65eb6d1..57783e60cc2 100644 --- a/src/devices/cpu/m68000/m68k_in.lst +++ b/src/devices/cpu/m68000/m68k_in.lst @@ -4919,6 +4919,7 @@ e3c0 ffc0 lsl w A+-DXWL 01:8 7:14 234fc:5 if (m_cacr & (M68K_CACR_CI | M68K_CACR_CEI)) { m68ki_ic_clear(); + m_cacr &= ~(M68K_CACR_CI | M68K_CACR_CEI); } break; break; diff --git a/src/devices/cpu/m68000/m68kops.cpp b/src/devices/cpu/m68000/m68kops.cpp index 8110bdfae02..b2e4181361b 100644 --- a/src/devices/cpu/m68000/m68kops.cpp +++ b/src/devices/cpu/m68000/m68kops.cpp @@ -20068,6 +20068,7 @@ void m68000_musashi_device::x4e7b_movec_l_2f() if (m_cacr & (M68K_CACR_CI | M68K_CACR_CEI)) { m68ki_ic_clear(); + m_cacr &= ~(M68K_CACR_CI | M68K_CACR_CEI); } break; break; |