aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-09-25 21:41:20 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-09-25 21:41:20 +0000
commit42fc925ec0df2cb8d924bec1c9fb782c12bd8364 (patch)
tree70e3f83854d6b326d74ff9e83984f93045b7f336
parent6f15b608f2a1466de0dccc3e6d9cdee354a1e178 (diff)
VBE 4 bit bank selection fix (Volker Rupper)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2181 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--hw/vga.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/vga.c b/hw/vga.c
index 0609f84ccd..5acacf9b3d 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -447,7 +447,11 @@ static void vbe_ioport_write_data(void *opaque, uint32_t addr, uint32_t val)
}
break;
case VBE_DISPI_INDEX_BANK:
- val &= s->vbe_bank_mask;
+ if (s->vbe_regs[VBE_DISPI_INDEX_BPP] == 4) {
+ val &= (s->vbe_bank_mask >> 2);
+ } else {
+ val &= s->vbe_bank_mask;
+ }
s->vbe_regs[s->vbe_index] = val;
s->bank_offset = (val << 16);
break;