emul: add useful emul_trace() debugging tool
This commit is contained in:
parent
48078d9c9c
commit
d2dcd96ce1
10
emul/emul.c
10
emul/emul.c
@ -7,6 +7,7 @@ They all run on the same kind of virtual machine: A z80 CPU, 64K of RAM/ROM.
|
||||
#include "emul.h"
|
||||
|
||||
static Machine m;
|
||||
static ushort traceval = 0;
|
||||
|
||||
static uint8_t io_read(int unused, uint16_t addr)
|
||||
{
|
||||
@ -92,6 +93,15 @@ void emul_loop()
|
||||
while (emul_step());
|
||||
}
|
||||
|
||||
void emul_trace(ushort addr)
|
||||
{
|
||||
ushort newval = m.mem[addr+1] << 8 | m.mem[addr];
|
||||
if (newval != traceval) {
|
||||
traceval = newval;
|
||||
fprintf(stderr, "trace: %04x PC: %04x\n", traceval, m.cpu.PC);
|
||||
}
|
||||
}
|
||||
|
||||
void emul_printdebug()
|
||||
{
|
||||
fprintf(stderr, "Min SP: %04x\n", m.minsp);
|
||||
|
@ -30,4 +30,5 @@ Machine* emul_init();
|
||||
bool emul_step();
|
||||
bool emul_steps(unsigned int steps);
|
||||
void emul_loop();
|
||||
void emul_trace(ushort addr);
|
||||
void emul_printdebug();
|
||||
|
Loading…
Reference in New Issue
Block a user