Browse code

Print stack in debugger

neauoire authored on 23/03/2021 02:24:05
Showing 2 changed files
... ...
@@ -28,7 +28,7 @@ else
28 28
 fi
29 29
 
30 30
 echo "Assembling.."
31
-./bin/assembler projects/examples/dev.console.usm bin/boot.rom
31
+./bin/assembler projects/software/left.usm bin/boot.rom
32 32
 
33 33
 echo "Running.."
34 34
 if [ "${2}" = '--cli' ]; 
... ...
@@ -22,6 +22,19 @@ error(char *msg, const char *err)
22 22
 	return 0;
23 23
 }
24 24
 
25
+void
26
+printstack(Stack *s)
27
+{
28
+	Uint8 x, y;
29
+	for(y = 0; y < 0x08; ++y) {
30
+		for(x = 0; x < 0x08; ++x) {
31
+			Uint8 p = y * 0x08 + x;
32
+			printf(p == s->ptr ? "[%02x]" : " %02x ", s->dat[p]);
33
+		}
34
+		printf("\n");
35
+	}
36
+}
37
+
25 38
 #pragma mark - Devices
26 39
 
27 40
 Uint8
... ...
@@ -81,9 +94,11 @@ start(Uxn *u)
81 94
 	printf("RESET --------\n");
82 95
 	if(!evaluxn(u, u->vreset))
83 96
 		return error("Reset", "Failed");
97
+	printstack(&u->wst);
84 98
 	printf("FRAME --------\n");
85 99
 	if(!evaluxn(u, u->vframe))
86 100
 		return error("Frame", "Failed");
101
+	printstack(&u->wst);
87 102
 	return 1;
88 103
 }
89 104