summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
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
commit8f77f6f75874ca67731cc81f6506b0a2969d1622 (patch)
tree1272c4befc565d3037dc1d5201520e435c5c173c /src/devices
parent4baedd6633a1f75f72639e27aa24c73014e18e90 (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.lst1
-rw-r--r--src/devices/cpu/m68000/m68kops.cpp1
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;