mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-26 13:28:06 +11:00
Compare commits
2 Commits
48078d9c9c
...
400ef99b54
Author | SHA1 | Date | |
---|---|---|---|
|
400ef99b54 | ||
|
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"
|
#include "emul.h"
|
||||||
|
|
||||||
static Machine m;
|
static Machine m;
|
||||||
|
static ushort traceval = 0;
|
||||||
|
|
||||||
static uint8_t io_read(int unused, uint16_t addr)
|
static uint8_t io_read(int unused, uint16_t addr)
|
||||||
{
|
{
|
||||||
@ -92,6 +93,15 @@ void emul_loop()
|
|||||||
while (emul_step());
|
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()
|
void emul_printdebug()
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Min SP: %04x\n", m.minsp);
|
fprintf(stderr, "Min SP: %04x\n", m.minsp);
|
||||||
|
@ -30,4 +30,5 @@ Machine* emul_init();
|
|||||||
bool emul_step();
|
bool emul_step();
|
||||||
bool emul_steps(unsigned int steps);
|
bool emul_steps(unsigned int steps);
|
||||||
void emul_loop();
|
void emul_loop();
|
||||||
|
void emul_trace(ushort addr);
|
||||||
void emul_printdebug();
|
void emul_printdebug();
|
||||||
|
@ -683,12 +683,13 @@ CBR:
|
|||||||
or l
|
or l
|
||||||
jp z, BR+2 ; False, branch
|
jp z, BR+2 ; False, branch
|
||||||
; True, skip next 2 bytes and don't branch
|
; True, skip next 2 bytes and don't branch
|
||||||
ld hl, IP
|
ld hl, (IP)
|
||||||
inc (hl)
|
inc hl
|
||||||
inc (hl)
|
inc hl
|
||||||
|
ld (IP), hl
|
||||||
jp next
|
jp next
|
||||||
|
|
||||||
.fill 18
|
.fill 15
|
||||||
|
|
||||||
.db ","
|
.db ","
|
||||||
.dw $-CBR
|
.dw $-CBR
|
||||||
|
Loading…
Reference in New Issue
Block a user