Print return stack in uxncli

This commit is contained in:
neauoire 2021-08-29 11:53:27 -07:00
parent 3da9352230
commit 2919c11cb9
1 changed files with 16 additions and 6 deletions

View File

@ -27,16 +27,26 @@ error(char *msg, const char *err)
} }
static void static void
inspect(Stack *wst) inspect(Uxn *u)
{ {
Uint8 x, y; Uint8 x, y;
fprintf(stderr, "\n\n"); fprintf(stderr, "\nWorking Stack\n");
for(y = 0; y < 0x08; ++y) { for(y = 0; y < 0x04; ++y) {
for(x = 0; x < 0x08; ++x) { for(x = 0; x < 0x08; ++x) {
Uint8 p = y * 0x08 + x; Uint8 p = y * 0x08 + x;
fprintf(stderr, fprintf(stderr,
p == wst->ptr ? "[%02x]" : " %02x ", p == u->wst.ptr ? "[%02x]" : " %02x ",
wst->dat[p]); u->wst.dat[p]);
}
fprintf(stderr, "\n");
}
fprintf(stderr, "\nReturn Stack\n");
for(y = 0; y < 0x04; ++y) {
for(x = 0; x < 0x08; ++x) {
Uint8 p = y * 0x08 + x;
fprintf(stderr,
p == u->rst.ptr ? "[%02x]" : " %02x ",
u->rst.dat[p]);
} }
fprintf(stderr, "\n"); fprintf(stderr, "\n");
} }
@ -56,7 +66,7 @@ system_talk(Device *d, Uint8 b0, Uint8 w)
switch(b0) { switch(b0) {
case 0x2: d->u->wst.ptr = d->dat[0x2]; break; case 0x2: d->u->wst.ptr = d->dat[0x2]; break;
case 0x3: d->u->rst.ptr = d->dat[0x3]; break; case 0x3: d->u->rst.ptr = d->dat[0x3]; break;
case 0xe: inspect(&d->u->wst); break; case 0xe: inspect(d->u); break;
case 0xf: d->u->ram.ptr = 0x0000; break; case 0xf: d->u->ram.ptr = 0x0000; break;
} }
} }