diff --git a/dsim.c b/dsim.c index 883a0ee..1876279 100644 --- a/dsim.c +++ b/dsim.c @@ -8,6 +8,9 @@ #include #include +#define EMU_ID 0xed6f +#define EMU_VER 0x0000 + uint16_t ram[0x10000]; uint16_t ra, rb, rc, rx, ry, rz, ri, rj; uint16_t rpc, rsp, rex, ria; @@ -20,6 +23,27 @@ uint16_t intq[MAX_INTQ_SIZE]; unsigned int intq_size; uint8_t intq_head; +void dumpregs() +{ + printf("%4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s %4s\n", + "PC","SP","A","B","C","X","Y","Z","I","J","EX","IA"); + printf("%04hx %04hx %04hx %04hx %04hx %04hx %04hx %04hx %04hx %04hx %04hx %04hx\n", + rpc, rsp, ra, rb, rc, rx, ry, rz, ri, rj, rex, ria); +} + +void dump_ram(uint16_t addr, uint16_t count) +{ + uint16_t i, a; + + for (i=0; i 1) { load_image(argv[1]); - dump_ram(0, 32); reset(); while (running) next(); }