]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
68010 RTE format error exception does not clear pending trace.
authorToni Wilen <twilen@winuae.net>
Wed, 1 Jan 2020 13:56:40 +0000 (15:56 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 1 Jan 2020 13:56:40 +0000 (15:56 +0200)
cputest.cpp
newcpu.cpp

index da5c5dc4fd61ce535e1e23edee8dc9d9ca1d023c..defefe127c82e1a513e1b48506ec6d627f6ea48b 100644 (file)
@@ -3882,7 +3882,7 @@ static void test_mnemo(const TCHAR *path, const TCHAR *mnemo, const TCHAR *ovrfi
 
                                                        // did we have trace also active?
                                                        if (SPCFLAG_DOTRACE) {
-                                                               if ((regs.t1 || regs.t0) && (test_exception == 5 || test_exception == 6 || test_exception == 7 || (test_exception >= 32 && test_exception <= 47))) {
+                                                               if ((regs.t1 || regs.t0) && (test_exception == 5 || test_exception == 6 || test_exception == 7 || (test_exception >= 32 && test_exception <= 47) || (cpu_lvl == 1 && test_exception == 14))) {
                                                                        test_exception_extra = 9;
                                                                } else {
                                                                        test_exception_extra = 0;
index 222a814aefdd0bc959882f108b88e687b8ed8cd3..97e597ba64029124170a84cfa7ee4a197e70b04c 100644 (file)
@@ -2333,6 +2333,10 @@ static void exception_check_trace (int nr)
                */
                if (nr == 5 || nr == 6 || nr == 7 || (nr >= 32 && nr <= 47))
                        set_special (SPCFLAG_DOTRACE);
+               // 68010 and RTE format error: trace is not cleared
+               if (nr == 14 && currprefs.cpu_model == 68010)
+                       set_special(SPCFLAG_DOTRACE);
+
        }
        regs.t1 = regs.t0 = 0;
 }