]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
68060 BUSCR full emulation.
authorToni Wilen <twilen@winuae.net>
Sat, 21 Sep 2019 16:35:19 +0000 (19:35 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 21 Sep 2019 16:35:19 +0000 (19:35 +0300)
newcpu.cpp
newcpu_common.cpp

index 55d8f85ed0253f6bc6efa0b959b92665917808a3..81b0350a82e80de4ab55cf91532bb0f2e2e192dc 100644 (file)
@@ -3007,15 +3007,20 @@ static void ExceptionX (int nr, uaecptr address)
                Exception_ce000 (nr);
        else
 #endif
+       {
+               if (currprefs.cpu_model == 68060) {
+                       regs.buscr &= 0xa0000000;
+                       regs.buscr |= regs.buscr >> 1;
+               }
                if (currprefs.mmu_model) {
                        if (currprefs.cpu_model == 68030)
-                               Exception_mmu030 (nr, m68k_getpc ());
+                               Exception_mmu030(nr, m68k_getpc());
                        else
-                               Exception_mmu (nr, m68k_getpc ());
+                               Exception_mmu(nr, m68k_getpc());
                } else {
-                       Exception_normal (nr);
+                       Exception_normal(nr);
                }
-
+       }
        regs.exception = 0;
        if (cpu_tracer) {
                cputrace.state = 0;
index 4638e76e8c81df9c3bca150700a7aab2a1d038de..7314172bbbbeb3639d336c6a81002515120c5e3c 100644 (file)
@@ -153,7 +153,7 @@ int m68k_move2c (int regno, uae_u32 *regp)
                case 6: regs.dtt0 = *regp & 0xffffe364; mmu_tt_modified (); break;
                case 7: regs.dtt1 = *regp & 0xffffe364; mmu_tt_modified (); break;
                        /* 68060 only */
-               case 8: regs.buscr = *regp & 0xa0000000; break;
+               case 8: regs.buscr &= 0x50000000; regs.buscr |= *regp & 0xa0000000; break;
 
                case 0x800: regs.usp = *regp; break;
                case 0x801: regs.vbr = *regp; break;