]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc1420b3b.zip
authorToni Wilen <twilen@winuae.net>
Sat, 31 Mar 2007 16:27:05 +0000 (19:27 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:32:47 +0000 (21:32 +0200)
filesys.c
gencpu.c
include/newcpu.h
newcpu.c

index c7173a92a65d69602740a55f2defc8a7d2ac0ea7..9cc99844b53bcb9caa6092c779be77cd7d011a46 100755 (executable)
--- a/filesys.c
+++ b/filesys.c
@@ -4379,6 +4379,7 @@ static uae_u8 *save_filesys_virtual (UnitInfo *ui, uae_u8 *dst)
     Key *k;
     int cnt;
 
+    write_log("FSSAVE: '%s'\n", ui->devname);
     save_u64 (a_uniq);
     save_u64 (key_uniq);
     save_u32 (u->dosbase);
@@ -4393,13 +4394,17 @@ static uae_u8 *save_filesys_virtual (UnitInfo *ui, uae_u8 *dst)
     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;
 }
 
index 2272c6fea44b13d241e7dbdd33dc7ec2ba4f26a3..db1128cbc492dd0a77164b9e21a8b6eef2c47c6c 100755 (executable)
--- a/gencpu.c
+++ b/gencpu.c
@@ -2861,14 +2861,16 @@ static void gen_opcode (unsigned long int opcode)
        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 ();
index 08aba6ca749477af611061394e94975a5b2d6a90..8b07415c656d5b759a1fec355393a0d4852ac3f3 100755 (executable)
@@ -310,7 +310,7 @@ extern int getDivu68kCycles(uae_u32 dividend, uae_u16 divisor);
 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);
index c7a790bd7a206fba591ef09223135523c560cd76..761f1fd9af70ca5e2025b88313883fe5e49c56f6 100755 (executable)
--- a/newcpu.c
+++ b/newcpu.c
@@ -1653,13 +1653,13 @@ unsigned long REGPARAM2 op_illg (uae_u32 opcode, struct regstruct *regs)
 }
 
 #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;
     }