Key *k;
int cnt;
+ write_log("FSSAVE: '%s'\n", ui->devname);
save_u64 (a_uniq);
save_u64 (key_uniq);
save_u32 (u->dosbase);
for (k = u->keys; k; k = k->next)
cnt++;
save_u32 (cnt);
+ write_log("%d open files\n", cnt);
for (k = u->keys; k; k = k->next) {
save_u64 (k->uniq);
save_u32 (k->file_pos);
save_u32 (k->createmode);
save_u32 (k->dosmode);
save_string (k->aino->nname);
+ write_log("'%s' uniq=%d seekpos=%d mode=%d dosmode=%d\n",
+ k->aino->nname, k->uniq, k->file_pos, k->createmode, k->dosmode);
}
+ write_log("END\n");
return dst;
}
printf ("\tmmu_op(opcode, regs, extra);\n");
break;
case i_MMUOP30A:
+ printf ("\tuaecptr pc = m68k_getpc (regs);\n");
genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0, 0);
sync_m68k_pc ();
- printf ("\tmmu_op30(opcode, regs, 1, extra);\n");
+ printf ("\tmmu_op30(pc, opcode, regs, 1, extra);\n");
break;
case i_MMUOP30B:
+ printf ("\tuaecptr pc = m68k_getpc (regs);\n");
genamode (curi->smode, "srcreg", curi->size, "extra", 1, 0, 0);
sync_m68k_pc ();
- printf ("\tmmu_op30(opcode, regs, 0, 0);\n");
+ printf ("\tmmu_op30(pc, opcode, regs, 0, 0);\n");
break;
default:
abort ();
extern int getDivs68kCycles(uae_s32 dividend, uae_s16 divisor);
extern void mmu_op (uae_u32, struct regstruct *regs, uae_u16);
-extern void mmu_op30 (uae_u32, struct regstruct *regs, int, uae_u16);
+extern void mmu_op30 (uaecptr, uae_u32, struct regstruct *regs, int, uae_u16);
extern void fpp_opp (uae_u32, struct regstruct *regs, uae_u16);
extern void fdbcc_opp (uae_u32, struct regstruct *regs, uae_u16);
}
#ifdef CPUEMU_0
-void mmu_op30(uae_u32 opcode, struct regstruct *regs, int isextra, uae_u16 extra)
+void mmu_op30(uaecptr pc, uae_u32 opcode, struct regstruct *regs, int isextra, uae_u16 extra)
{
if (currprefs.cpu_model != 68030) {
#ifdef MMUOP_DEBUG
- write_log("Unknown 68030 MMU OP %04.4X\n", opcode);
+ write_log("Unknown 68030 MMU OP %04.4X PC=%X\n", opcode, m68k_getpc(regs));
#endif
- m68k_setpc (regs, m68k_getpc (regs) - isextra ? 4 : 2);
+ m68k_setpc (regs, pc);
op_illg (opcode, regs);
return;
}