ref: b9f35dab4549abfe4461b1a6bd0f6620b9de425b
parent: 8b4c7b422bd4338a2df0d4e70fc79de96d18537f
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Sun Jul 21 16:00:07 EDT 2024
Clean
--- a/mem.c
+++ b/mem.c
@@ -39,16 +39,16 @@
cramc[a & 0x1f] = (b << 16) | (g << 8) | r;
- printf("cramwrite %x %x\n", a, v);- for(int i=0;i<64;i++)
- printf("%x ", cram[i]);- printf("\n");+ // printf("cramwrite %x %x\n", a, v);+ // for(int i=0;i<64;i++)
+ // printf("%x ", cram[i]);+ // printf("\n");}
uint8_t
z80read(uint16_t a)
{- printf("z80read %x\n", a);+ // printf("z80read %x\n", a);uint16_t v;
if (a < 0x400)
@@ -61,8 +61,8 @@
if (ram_enabled)
return ram[(a - 0x8000) + ram_bank];
else{- printf("== page 2 %x %x %x\n", a, (a - 0x8000) + slotaddr[2], slotaddr[2]);- printf("== rom[(a - 0x8000) + slotaddr[2]] %x\n", rom[(a - 0x8000) + slotaddr[2]]);+ // printf("== page 2 %x %x %x\n", a, (a - 0x8000) + slotaddr[2], slotaddr[2]);+ // printf("== rom[(a - 0x8000) + slotaddr[2]] %x\n", rom[(a - 0x8000) + slotaddr[2]]);return rom[(a - 0x8000) + slotaddr[2]];
}
}else
@@ -72,7 +72,7 @@
void
z80write(uint16_t a, uint8_t v)
{- printf("z80write %x %x\n", a, v);+ // printf("z80write %x %x\n", a, v);if (a < 0x8000)
printf("wrong z80write page 0 or 1 %x %x\n", a, v);else if (a < 0xC000)
@@ -95,20 +95,20 @@
{case 0xFFFC:
ram_bank = (v & (1 << 2)) != 0 ? 0x4000 : 0;
- printf("RAM bank %x\n", ram_bank);+ // printf("RAM bank %x\n", ram_bank);ram_enabled = (v & (1 << 3)) != 0 ? 1 : 0;
- printf("RAM enabled %x\n", ram_enabled);+ // printf("RAM enabled %x\n", ram_enabled);break;
case 0xFFFD:
- printf("Switch mapper slot 0 to %d\n", (v & nbank-1));+ // printf("Switch mapper slot 0 to %d\n", (v & nbank-1));slotaddr[0] = (v & nbank-1) * 0x4000;
break;
case 0xFFFE:
- printf("Switch mapper slot 1 to %d\n", (v & nbank-1));+ // printf("Switch mapper slot 1 to %d\n", (v & nbank-1));slotaddr[1] = (v & nbank-1) * 0x4000;
break;
case 0xFFFF:
- printf("Switch mapper slot 2 to %d\n", (v & nbank-1));+ // printf("Switch mapper slot 2 to %d\n", (v & nbank-1));slotaddr[2] = (v & nbank-1) * 0x4000;
break;
}
@@ -124,7 +124,7 @@
uint8_t
z80in(uint8_t port)
{- printf("z80in %x\n", port);+ // printf("z80in %x\n", port);if (port < 0x40)
return 0xff;
else if (port >= 0x40 && port < 0x80)
@@ -138,10 +138,9 @@
else
return vdpstatus();
else
- if ((port & 0x01) == 0x00){- printf(" read port DC: %x\n", portDC);+ if ((port & 0x01) == 0x00)
return portDC;
- }else
+ else
return (portDD & 0x3f) | (port3F & 0xc0);
}
@@ -148,9 +147,9 @@
void
z80out(uint8_t port, uint8_t v)
{- printf("z80out %x %x\n", port, v);+ // printf("z80out %x %x\n", port, v); if (port < 0x40){- printf(" write to control register\n");+ // printf(" write to control register\n");if ((port & 0x01) == 0x00)
port3E = v;
else{@@ -157,9 +156,9 @@
port3FHC = v & 0x05;
port3F = ((v & 0x80) | (v & 0x20) << 1) & 0xC0;
}
- }else if ((port >= 0x40) && (port < 0x80))
- printf(" write to SN76489 PSG\n");- else if ((port >= 0x80) && (port < 0xC0)){+ }else if ((port >= 0x40) && (port < 0x80)){+ // printf(" write to SN76489 PSG\n");+ }else if ((port >= 0x80) && (port < 0xC0)){ // printf(" write to VDP\n");if ((port & 0x01) == 0x00)
vdpdata(v);
--- a/sms.c
+++ b/sms.c
@@ -119,13 +119,13 @@
void
retro_run(void)
{- printf("%d ================================\n", counter++);+ // printf("%d ================================\n", counter++);input_poll_cb();
process_inputs();
while(!doflush){t = z80step();
- printf("cycles: %d\n", t);+ // printf("cycles: %d\n", t);vdpclock -= t * Z80DIV;
total += t;
@@ -133,7 +133,7 @@
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]);+ // 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]); // printf("vram:\n");// for(int i=14000;i<17000;i++)
--- a/vdp.c
+++ b/vdp.c
@@ -12,7 +12,7 @@
int first = 1;
uint16_t hctr;
static int xmax, xdisp;
-static int sx, snx, col, pri, lum;
+static int sx, snx, col, pri;
enum { ymax = 262, yvbl = 234 };void
@@ -29,7 +29,7 @@
}
static void
-pixeldraw(int x, int y, int v)
+pixeldraw(int x, int y, uint32_t v)
{uint32_t *p;
union { uint32_t l; uint8_t b[4]; } u;@@ -49,14 +49,13 @@
if (vdpy > 192) return;
- int y = vdpy >> 3;
+ int ty = vdpy >> 3;
+ int tyoff = vdpy & 7;
for(int x = 0; x < 256; x++){int tx = x >> 3;
- int ty = y >> 3;
int txoff = x & 7;
- int tyoff = vdpy & 7;
- uint16_t taddr = screenmap + (((y << 5) + tx) << 1);
+ uint16_t taddr = screenmap + (((ty << 5) + tx) << 1);
int tidx = vram[taddr];
int data = (tidx << 5) + (tyoff << 2);
int xx = 7 - txoff;
@@ -77,8 +76,6 @@
static void
spritesinit(void)
{- printf("spritesinit\n");-
uint16_t t1 = (reg[SPRTAB] << 7 & 0x3f00);
uint16_t t2 = t1 + 0x80;
@@ -151,10 +148,10 @@
void
vdpctrl(uint8_t v)
{- printf(" vdp write to control port %x\n", v);+ // printf(" vdp write to control port %x\n", v); if(first){- printf("first\n");+ // printf("first\n");first = 0;
vdpaddr = (vdpaddr & 0xFF00) | v;
return;
@@ -163,7 +160,7 @@
vdpcode = (v >> 6) & 0x03;
vdpaddr = (vdpaddr & 0x00ff) | ((v & 0x3f) << 8);
- printf("vdp code and address %x %x\n", vdpcode, vdpaddr);+ // printf("vdp code and address %x %x\n", vdpcode, vdpaddr);first = 1;
switch(vdpcode){@@ -179,13 +176,13 @@
void
vdpdata(uint8_t v)
{- printf(" vdp (code: %x) write to data port %x\n", vdpcode, v);+ // printf(" vdp (code: %x) write to data port %x\n", vdpcode, v);first = 1;
vdpbuf = v;
switch(vdpcode){case 0: case 1: case 2:
vram[vdpaddr] = v;
- printf("vramwrite %x %x\n", vdpaddr, v);+ // printf("vramwrite %x %x\n", vdpaddr, v);break;
case 3: cramwrite(vdpaddr, v); break;
}
@@ -200,7 +197,7 @@
vdpbuf = vram[vdpaddr];
vdpaddr++;
vdpaddr &= 0x3fff;
- printf(" vdp read from data port %x\n", v);+ // printf(" vdp read from data port %x\n", v);first = 1;
return v;
}
@@ -211,7 +208,7 @@
uint8_t v = vdpstat | 0x1f;
vdpstat = 0;
z80irq = 0;
- printf(" vdp read status flags %x\n", v);+ // printf(" vdp read status flags %x\n", v);first = 1;
return v;
}
@@ -219,7 +216,7 @@
uint8_t
vdphcounter(void)
{- printf(" vdp read hcounter %x\n", vdpx);+ // printf(" vdp read hcounter %x\n", vdpx);return vdpx;
}
@@ -226,7 +223,7 @@
uint8_t
vdpvcounter(void)
{- printf(" vdp read vcounter %x\n", vdpy);+ // printf(" vdp read vcounter %x\n", vdpy);return vdpy;
}
@@ -242,7 +239,6 @@
if(vdpx < xdisp){col = reg[BGCOL] & 0x0f + 16;
pri = 0;
- lum = 0;
planes();
sprites();
pixeldraw(vdpx, vdpy, 0);
--- a/z80.c
+++ b/z80.c
@@ -415,7 +415,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:
@@ -688,9 +688,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);
--
⑨