void exception2_fetch(uae_u32 opcode, int offset)
{
exception2_fetch_common(opcode, offset);
+ regs.pc = test_exception_addr;
doexcstack();
}
if (currprefs.cpu_model == 68010) {
test_exception_3_di = -1;
}
+ regs.pc = test_exception_addr;
doexcstack();
}
*p++ = regs.fp_ea_set ? 0x01 : 0x00;
break;
case 8: // 68010 address/bus error
+ // program counter
+ p = store_rel(p, 0, opcode_memory_start, gl(sf + 2), 1);
// SSW
*p++ = sf[8];
*p++ = sf[9];
}
if (safe_memory_start != 0xffffffff) {
- int err = check_safe_memory(test_low_memory_start, test_low_memory_end);
+ int err = check_safe_memory(test_memory_start, test_memory_end);
err += check_safe_memory(test_low_memory_start, test_low_memory_end);
err += check_safe_memory(test_high_memory_start, test_high_memory_end);
if (err == 3) {
break;
case 8: // 68010 bus/address error
{
+ // program counter
+ v = opcode_memory_addr;
+ p = restore_rel_ordered(p, &v);
+ pl(exc + 2, v);
uae_u16 ssw = (p[0] << 8) | p[1];
exc[8] = *p++;
exc[9] = *p++;