From 74746f4da558abed6b5f6a000d4e915a0a57d21e Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Fri, 3 Apr 2020 23:47:17 -0700 Subject: Top bits of address register should be cleared on partial command word write. Fixes Mona in 344 bytes demo --- vdp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'vdp.c') diff --git a/vdp.c b/vdp.c index 93ad895..37ad611 100644 --- a/vdp.c +++ b/vdp.c @@ -3732,7 +3732,9 @@ int vdp_control_port_write(vdp_context * context, uint16_t value) } } else { uint8_t mode_5 = context->regs[REG_MODE_2] & BIT_MODE_5; - context->address = (context->address &0xC000) | (value & 0x3FFF); + //contrary to what's in Charles MacDonald's doc, it seems top 2 address bits are cleared + //needed for the Mona in 344 Bytes demo + context->address = value & 0x3FFF; context->cd = (context->cd & 0x3C) | (value >> 14); if ((value & 0xC000) == 0x8000) { //Register write -- cgit v1.2.3