diff musashi/m68kcpu.c @ 1507:2455662378ed mame_interp

Added MAME Z80 core, re-enabled 68K tracing in Musashi core, disabled a bunch of code gen stuff when using interpreters from MAME
author Michael Pavone <pavone@retrodev.com>
date Sat, 30 Dec 2017 18:27:06 -0800
parents ded16f3d7eb4
children 2e57910fd641
line wrap: on
line diff
--- a/musashi/m68kcpu.c	Wed Dec 27 13:46:52 2017 -0800
+++ b/musashi/m68kcpu.c	Sat Dec 30 18:27:06 2017 -0800
@@ -708,7 +708,7 @@
 
 
 			/* Trace m68k_exception, if necessary */
-			//m68ki_exception_if_trace(this); /* auto-disable (see m68kcpu.h) */
+			m68ki_exception_if_trace(this); /* auto-disable (see m68kcpu.h) */
 		}
 
 		/* set previous PC to current PC for the next entry into the loop */
@@ -860,10 +860,12 @@
 	vector = M68K_INT_ACK_AUTOVECTOR;//int_ack_callback(*this, int_level);
 
 	/* Get the interrupt vector */
-	if(vector == M68K_INT_ACK_AUTOVECTOR)
+	if(vector == M68K_INT_ACK_AUTOVECTOR) {
 		/* Use the autovectors.  This is the most commonly used implementation */
 		vector = EXCEPTION_INTERRUPT_AUTOVECTOR+int_level;
-	else if(vector == M68K_INT_ACK_SPURIOUS)
+		uint32_t e_clock = this->c.current_cycle / this->c.options->gen.clock_divider;
+		this->c.current_cycle += ((9-4) + e_clock % 10) * this->c.options->gen.clock_divider;
+	} else if(vector == M68K_INT_ACK_SPURIOUS)
 		/* Called if no devices respond to the interrupt acknowledge */
 		vector = EXCEPTION_SPURIOUS_INTERRUPT;
 	else if(vector > 255)