| ... | ... |
@@ -59,7 +59,12 @@ To start the rom, point the emulator to the newly created rom: |
| 59 | 59 |
bin/uxnemu bin/life.rom |
| 60 | 60 |
``` |
| 61 | 61 |
|
| 62 |
-You can also use the emulator without graphics by using `uxncli`. You can find additional roms [here](https://sr.ht/~rabbits/uxn/sources). |
|
| 62 |
+You can also use the emulator without graphics by using `uxncli`. You can find additional roms [here](https://sr.ht/~rabbits/uxn/sources). If you only wish to build `uxncli` |
|
| 63 |
+ |
|
| 64 |
+``` |
|
| 65 |
+cc src/uxn.c -DNDEBUG -Os -g0 -s src/uxncli.c -o bin/uxncli |
|
| 66 |
+ |
|
| 67 |
+``` |
|
| 63 | 68 |
|
| 64 | 69 |
### I/O |
| 65 | 70 |
|
| ... | ... |
@@ -27,7 +27,7 @@ error(char *msg, const char *err) |
| 27 | 27 |
} |
| 28 | 28 |
|
| 29 | 29 |
static void |
| 30 |
-inspect(Uint8 *stack, Uint8 wptr, Uint8 rptr, Uint8 *memory) |
|
| 30 |
+inspect(Stack *wst) |
|
| 31 | 31 |
{
|
| 32 | 32 |
Uint8 x, y; |
| 33 | 33 |
fprintf(stderr, "\n\n"); |
| ... | ... |
@@ -35,8 +35,8 @@ inspect(Uint8 *stack, Uint8 wptr, Uint8 rptr, Uint8 *memory) |
| 35 | 35 |
for(x = 0; x < 0x08; ++x) {
|
| 36 | 36 |
Uint8 p = y * 0x08 + x; |
| 37 | 37 |
fprintf(stderr, |
| 38 |
- p == wptr ? "[%02x]" : " %02x ", |
|
| 39 |
- stack[p]); |
|
| 38 |
+ p == wst->ptr ? "[%02x]" : " %02x ", |
|
| 39 |
+ wst->dat[p]); |
|
| 40 | 40 |
} |
| 41 | 41 |
fprintf(stderr, "\n"); |
| 42 | 42 |
} |
| ... | ... |
@@ -56,6 +56,7 @@ system_talk(Device *d, Uint8 b0, Uint8 w) |
| 56 | 56 |
switch(b0) {
|
| 57 | 57 |
case 0x2: d->u->wst.ptr = d->dat[0x2]; break; |
| 58 | 58 |
case 0x3: d->u->rst.ptr = d->dat[0x3]; break; |
| 59 |
+ case 0xe: inspect(&d->u->wst); break; |
|
| 59 | 60 |
case 0xf: d->u->ram.ptr = 0x0000; break; |
| 60 | 61 |
} |
| 61 | 62 |
} |
| ... | ... |
@@ -132,11 +133,8 @@ static void |
| 132 | 133 |
run(Uxn *u) |
| 133 | 134 |
{
|
| 134 | 135 |
uxn_eval(u, PAGE_PROGRAM); |
| 135 |
- while(read(0, &devconsole->dat[0x2], 1) > 0) {
|
|
| 136 |
- if(devsystem->dat[0xe]) |
|
| 137 |
- inspect(u->wst.dat, u->wst.ptr, u->rst.ptr, u->ram.dat); |
|
| 136 |
+ while(read(0, &devconsole->dat[0x2], 1) > 0) |
|
| 138 | 137 |
uxn_eval(u, mempeek16(devconsole->dat, 0)); |
| 139 |
- } |
|
| 140 | 138 |
} |
| 141 | 139 |
|
| 142 | 140 |
static int |