デバッガー機能をsrc/debbugger.cに独立
[YACASL2.git] / src / debugger.c
diff --git a/src/debugger.c b/src/debugger.c
new file mode 100644 (file)
index 0000000..68e24fb
--- /dev/null
@@ -0,0 +1,27 @@
+#include "exec.h"
+
+void debugger()
+{
+    char *buf = malloc_chk(DBINSIZE + 1, "debugger.buf");
+    for( ; ;) {
+        fprintf(stdout, "COMET II (Type ? for help) > ");
+        fgets(buf, DBINSIZE, stdin);
+        if(*buf == '\0' || *buf == 's') {
+            break;
+        } else if(*buf == 'c') {
+            execmode.debugger = false;
+            break;
+        } else if(*buf == 't') {
+            fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
+            dspregister();
+        } else if(*buf == 'd') {
+            dumpmemory();
+        } else if(*buf == '?') {
+            fprintf(stdout, "s (default) -- Step by step running your program until next interaction.\n");
+            fprintf(stdout, "c -- Continue running your program.\n");
+            fprintf(stdout, "t -- Display CPU register.\n");
+            fprintf(stdout, "d -- Display memory dump.\n");
+            break;
+        }
+    }
+}