#define CPU_HALT_AUTOCONFIG_CONFLICT 7
#define CPU_HALT_PCI_CONFLICT 8
#define CPU_HALT_CPU_STUCK 9
+#define CPU_HALT_SSP_IN_NON_EXISTING_ADDRESS 10
void cpu_semaphore_get(void);
void cpu_semaphore_release(void);
return;
}
+ if (!currprefs.cpu_compatible) {
+ addrbank *ab = &get_mem_bank(m68k_areg(regs, 7));
+ if (!ab || !(ab->flags & ABFLAG_RAM)) {
+ cpu_halt(CPU_HALT_SSP_IN_NON_EXISTING_ADDRESS);
+ return;
+ }
+ }
+
if (currprefs.cpu_model > 68000) {
currpc = exception_pc (nr);
if (nr == 2 || nr == 3) {
am = 3;
} else {
on_rgb = 0xcccc00;
- num1 = -1;
- num2 = 11;
- num3 = gui_data.cpu_halted;
+ num1 = gui_data.cpu_halted >= 10 ? 11 : -1;
+ num2 = gui_data.cpu_halted >= 10 ? gui_data.cpu_halted / 10 : 11;
+ num3 = gui_data.cpu_halted % 10;
am = 2;
}
} else {