From 85bdf40a1c851a9835599feb98ffda0eac9ebadf Mon Sep 17 00:00:00 2001 From: TC1995 Date: Sun, 15 Oct 2023 19:27:33 +0200 Subject: [PATCH] VGA/XGA memory fix. the XGA memory test takes account of Win3.x' XGA memory test again without conflicting XGAKIT's test, fixes DOS-based boxes using Win3.x XGA drivers in 386 mode. --- src/video/vid_svga.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/video/vid_svga.c b/src/video/vid_svga.c index 360fcbb5f..8ec645016 100644 --- a/src/video/vid_svga.c +++ b/src/video/vid_svga.c @@ -1259,6 +1259,8 @@ svga_write_common(uint32_t addr, uint8_t val, uint8_t linear, void *priv) xga->test = val; if (addr == 0xa0001) xga->a5_test = 1; + else if (addr == 0xafffe) + xga->a5_test = 2; xga->on = 0; vga_on = 1; @@ -1479,7 +1481,7 @@ svga_read_common(uint32_t addr, uint8_t linear, void *priv) ret = xga->test; xga->on = 1; vga_on = 0; - } else if ((addr == 0xa0000) && xga->a5_test) { /*This is required by XGAKIT to pass the memory test*/ + } else if ((addr == 0xa0000) && (xga->a5_test == 1)) { /*This is required by XGAKIT to pass the memory test*/ svga_log("A5 test bank = %x.\n", addr); addr += xga->read_bank; ret = xga->vram[addr & xga->vram_mask];