From 32563970c25265aee4325db14d9f1f12bc0ce628 Mon Sep 17 00:00:00 2001 From: SarahW Date: Tue, 18 Feb 2020 12:08:53 +0000 Subject: [PATCH] Bit 0 of port 3da on Amstrad PC1512 is a toggle bit instead of display enable. --- src/vid_pc1512.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/vid_pc1512.c b/src/vid_pc1512.c index afe3c5d..3c962d0 100644 --- a/src/vid_pc1512.c +++ b/src/vid_pc1512.c @@ -107,7 +107,8 @@ static uint8_t pc1512_in(uint16_t addr, void *p) case 0x3d5: return pc1512->crtc[pc1512->crtcreg]; case 0x3da: - return pc1512->stat; + pc1512->stat ^= 0x01; /*Bit 0 is toggle bit on PC1512*/ + return pc1512->stat ^ 0x01; } return 0xff; } @@ -174,7 +175,6 @@ static void pc1512_poll(void *p) if (!pc1512->linepos) { timer_advance_u64(&pc1512->timer, pc1512->dispofftime); - pc1512->stat |= 1; pc1512->linepos = 1; oldsc = pc1512->sc; if (pc1512->dispon) @@ -342,8 +342,6 @@ static void pc1512_poll(void *p) timer_advance_u64(&pc1512->timer, pc1512->dispontime); if ((pc1512->lastline - pc1512->firstline) == 199) pc1512->dispon = 0; /*Amstrad PC1512 always displays 200 lines, regardless of CRTC settings*/ - if (pc1512->dispon) - pc1512->stat &= ~1; pc1512->linepos = 0; if (pc1512->vsynctime) {