From d3d5c69620a13a40aab0b55bc466621f09f89553 Mon Sep 17 00:00:00 2001 From: Pixel <> Date: Sat, 5 May 2001 13:20:29 +0000 Subject: Pouet --- lib/simulator.c | 54 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 22 deletions(-) (limited to 'lib/simulator.c') diff --git a/lib/simulator.c b/lib/simulator.c index c7c709c..8db38ef 100644 --- a/lib/simulator.c +++ b/lib/simulator.c @@ -14,7 +14,7 @@ #include "linker.h" #include "terminal.h" -int HasToRun = 1, HasToReset = 0, debug = 0; +int HasToRun = 1, HasToReset = 0, debug = 0, trace = 0; Uint32 base_addr = 0; @@ -424,28 +424,38 @@ void Debogueur(void) Champ1(instruction), Champ2(instruction), Champ3(instruction)); fprintf(stderr, "%08lX:%08lX - %08lX - %08lX > ", LireRegistrePC(), instruction, LD(LireRegistrePC() + 1), LD(LireRegistrePC() + 2)); - - switch (fgetc(input)) { - case 'G': - case 'g': - fprintf(stderr, "Go\n\n"); - debug = 0; - out = 1; - break; - case 'p': - case 'P': - fprintf(stderr, "Proceed\n\n"); + + if (!trace) { + switch (fgetc(input)) { + case 'G': + case 'g': + fprintf(stderr, "Go\n\n"); + debug = 0; + out = 1; + break; + case 'p': + case 'P': + fprintf(stderr, "Proceed\n\n"); + out = 1; + break; + case 'R': + case 'r': + break; + case 'T': + case 't': + trace = 1; + out = 1; + break; + case 'Q': + case 'q': + clearterm(); + exception(1, _("Shutdown requested")); + default: + fprintf(stderr, _("Help:\nG: go\nP: Proceed\nR: display registers\nT: trace\nQ: quit\n")); + } + } else { + fprintf(stderr, "Tracing...\n\n"); out = 1; - break; - case 'R': - case 'r': - break; - case 'Q': - case 'q': - clearterm(); - exception(1, _("Shutdown requested")); - default: - fprintf(stderr, _("Help:\nG: go\nP: Proceed\nR: display registers\nQ: quit\n")); } } } -- cgit v1.2.3