diff --git a/src/video/vid_svga.c b/src/video/vid_svga.c index 5de05c59e..a07764f12 100644 --- a/src/video/vid_svga.c +++ b/src/video/vid_svga.c @@ -11,7 +11,7 @@ * This is intended to be used by another SVGA driver, * and not as a card in it's own right. * - * Version: @(#)vid_svga.c 1.0.39 2019/12/03 + * Version: @(#)vid_svga.c 1.0.40 2019/12/28 * * Authors: Sarah Walker, * Miran Grca, @@ -1119,31 +1119,21 @@ svga_read_common(uint32_t addr, uint8_t linear, void *p) addr &= svga->decode_mask; /* standard VGA latched access */ - if (linear) { - if (addr >= svga->vram_max) - return 0xff; - - addr &= svga->vram_mask; + if (latch_addr >= svga->vram_max) { + for (i = 0; i < count; i++) + svga->latch.b[i] = 0xff; + } else { + latch_addr &= svga->vram_mask; for (i = 0; i < count; i++) - svga->latch.b[i] = svga->vram[addr | i]; - } else { - if (latch_addr >= svga->vram_max) { - for (i = 0; i < count; i++) - svga->latch.b[i] = 0xff; - } else { - latch_addr &= svga->vram_mask; - - for (i = 0; i < count; i++) - svga->latch.b[i] = svga->vram[latch_addr | i]; - } - - if (addr >= svga->vram_max) - return 0xff; - - addr &= svga->vram_mask; + svga->latch.b[i] = svga->vram[latch_addr | i]; } + if (addr >= svga->vram_max) + return 0xff; + + addr &= svga->vram_mask; + if (svga->readmode) { temp = 0xff;