ref: dcd84fadf58e5c498c2bbed8cc3267adf3c8b447
parent: 255dafa383bf409f7f1cfeb8538fb7b385fe58a1
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Sun Jul 14 14:12:25 EDT 2024
Print vdp registers
--- a/dat.h
+++ b/dat.h
@@ -2,7 +2,7 @@
extern uint32_t irq;
-extern uint8_t reg[32];
+extern uint8_t reg[16];
extern uint8_t dma;
extern uint8_t z80bus, z80irq;
--- a/mem.c
+++ b/mem.c
@@ -11,7 +11,12 @@
uint16_t cram[64], vsram[40];
uint32_t cramc[64];
uint8_t zram[8192];
-uint8_t reg[32];
+uint8_t reg[16] = {+ 0x36, 0x80, 0xff, 0xff,
+ 0xff, 0xff, 0xfb, 0x00,
+ 0x00, 0x00, 0xff, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
uint8_t ctl[15];
uint8_t dma;
--- a/sms.c
+++ b/sms.c
@@ -105,12 +105,13 @@
t = z80step();
printf("cycles: %d\n", t);vdpclock -= t * Z80DIV;
- total += t * Z80DIV;
+ total += t;
while(vdpclock < 0){vdpstep();
vdpclock += 8;
}
+ printf(" vdp registers: %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x\n", reg[0], reg[1], reg[2], reg[3], reg[4], reg[5], reg[6], reg[7], reg[8], reg[9], reg[10], reg[11], reg[12], reg[13], reg[14], reg[15]); if (total > 702240){flush();
@@ -123,6 +124,7 @@
video_cb(pic, 320, 224, 320*4);
// audioout();
doflush = 0;
+ total = 0;
}
void
--- a/vdp.c
+++ b/vdp.c
@@ -293,6 +293,7 @@
set = 0;
col = 0;
for(p = spr; p < lsp; p++){+ printf("p->x: %d, p->y: %d\n", p->x, p->y);dx = vdpx - p->x;
if(dx >= p->w)
continue;
@@ -341,6 +342,7 @@
vdpcode = (v >> 6) & 0x03;
vdpaddr = (vdpaddr & 0x00ff) | ((v & 0x3f) << 8);
+
printf("vdp code and address %x %x\n", vdpcode, vdpaddr);first = 1;
--- a/z80.c
+++ b/z80.c
@@ -414,7 +414,7 @@
uint16_t a, n;
op = fetch8();
- // printf("ed %.2x\n", op);+ printf("ed %.2x\n", op); switch(op){case 0xa0: case 0xa1: case 0xa8: case 0xa9:
case 0xb0: case 0xb1: case 0xb8: case 0xb9:
@@ -682,9 +682,9 @@
}
}
curpc = pc;
- // printf("%x AF %.2x%.2x BC %.2x%.2x DE %.2x%.2x HL %.2x%.2x IX %.4x IY %.4x\n", curpc, s[rA], s[rF], s[rB], s[rC], s[rD], s[rE], s[rH], s[rL], ix[0], ix[1]);+ printf("%x AF %.2x%.2x BC %.2x%.2x DE %.2x%.2x HL %.2x%.2x IX %.4x IY %.4x\n", curpc, s[rA], s[rF], s[rB], s[rC], s[rD], s[rE], s[rH], s[rL], ix[0], ix[1]);op = fetch8();
- // printf("op: %x\n", op);+ printf("op: %x\n", op); switch(op >> 6){case 1: return move(op >> 3 & 7, op & 7);
case 2: return alu(op >> 3 & 7, op & 7);
--
⑨