// JPM Aug./2019 Fix specific breakpoint for ROM cartridge or unknown memory location writing; added a specific breakpoint for the M68K illegal & unimplemented instruction, unknown exceptions and address error exceptions
// JPM Aug./2019 Fix potential emulator freeze after an exception has occured
// JPM Feb./2021 Added a specific breakpoint for the M68K bus error exception, and a M68K exception catch detection
+// JPM Apr./2021 Keep number of M68K cycles used in tracing mode
//
// Step over function
-void JaguarStepOver(int depth)
+int JaguarStepOver(int depth)
{
bool exit;
+ int cycles;
//bool case55 = false;
//uint32_t m68kSR;
if (!depth)
{
+ cycles = 0;
exit = true;
}
else
do
{
- JaguarStepInto();
+ cycles += JaguarStepInto();
switch (M68KGetCurrentOpcodeFamily())
{
// bsr & jsr
case 54:
case 52:
- JaguarStepOver(depth+1);
+ cycles += JaguarStepOver(depth+1);
//if (depth)
//{
// exit = false;
#ifdef _MSC_VER
#pragma message("Warning: !!! Need to verify the Jaguar Step Over function !!!")
#else
- #warning "!!! Need to verify the Jaguar Step Over function !!!"
+#warning "!!! Need to verify the Jaguar Step Over function !!!"
#endif // _MSC_VER
+ return cycles;
}
// Step into function
-void JaguarStepInto(void)
+int JaguarStepInto(void)
{
+ int cycles;
// double timeToNextEvent = GetTimeToNextEvent();
- m68k_execute(USEC_TO_M68K_CYCLES(0));
+ cycles = m68k_execute(USEC_TO_M68K_CYCLES(0));
// m68k_execute(USEC_TO_M68K_CYCLES(timeToNextEvent));
if (vjs.GPUEnabled)
#else
#warning "!!! Need to verify the Jaguar Step Into function !!!"
#endif // _MSC_VER
+ return cycles;
}