From fe25ae41c3dc12f2d8decc6697598c986265e72b Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 13 Apr 2016 22:06:40 +0300 Subject: [PATCH] 68060 unimplemented CPU emu option also enabled 68030 MMU instructions. --- newcpu.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/newcpu.cpp b/newcpu.cpp index 0e0e9c55..37c01340 100644 --- a/newcpu.cpp +++ b/newcpu.cpp @@ -1353,15 +1353,19 @@ static void build_cpufunctbl (void) /* unimplemented opcode? */ if (table->unimpclev > 0 && lvl >= table->unimpclev) { - if (currprefs.int_no_unimplemented && currprefs.cpu_model == 68060) { - cpufunctbl[opcode] = op_unimpl_1; - continue; - } else { - // emulate 68060 unimplemented instructions if int_no_unimplemented=false - if (currprefs.cpu_model != 68060 && table->unimpclev != 5) { + if (currprefs.cpu_model == 68060) { + // unimpclev == 5: not implemented in 68060. + if (currprefs.int_no_unimplemented && table->unimpclev == 5) { + cpufunctbl[opcode] = op_unimpl_1; + continue; + } + if (!currprefs.int_no_unimplemented || table->unimpclev != 5) { cpufunctbl[opcode] = op_illg_1; continue; } + } else { + cpufunctbl[opcode] = op_illg_1; + continue; } } @@ -1508,6 +1512,7 @@ static void prefs_changed_cpu (void) currprefs.fpu_model = changed_prefs.fpu_model; currprefs.mmu_model = changed_prefs.mmu_model; currprefs.cpu_compatible = changed_prefs.cpu_compatible; + currprefs.address_space_24 = changed_prefs.address_space_24; currprefs.cpu_cycle_exact = changed_prefs.cpu_cycle_exact; currprefs.cpu_memory_cycle_exact = changed_prefs.cpu_memory_cycle_exact; currprefs.int_no_unimplemented = changed_prefs.int_no_unimplemented; -- 2.47.3