changeset 1917:b91c35bce3e9

Top bits of address register should be cleared on partial command word write. Fixes Mona in 344 bytes demo
author Michael Pavone <pavone@retrodev.com>
date Fri, 03 Apr 2020 23:47:17 -0700
parents 6ece1e2c7a15
children 6fdac0108e47
files vdp.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/vdp.c	Thu Apr 02 20:41:26 2020 -0700
+++ b/vdp.c	Fri Apr 03 23:47:17 2020 -0700
@@ -3732,7 +3732,9 @@
 		}
 	} 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