aboutsummaryrefslogtreecommitdiff
path: root/hw/vga.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-08-11 20:33:04 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-08-11 20:33:04 +0000
commit9da8ba18e60273b9925991712883e54c16d4b626 (patch)
treeeb4462e580b3fe0ff8e37d506470a510836f3817 /hw/vga.c
parent76bc68382096b941d58a018166d5604f44915b1b (diff)
mode X double scan fix (malc)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@364 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/vga.c')
-rw-r--r--hw/vga.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/hw/vga.c b/hw/vga.c
index 0ed8abf24c..9ab9a163cf 100644
--- a/hw/vga.c
+++ b/hw/vga.c
@@ -1124,7 +1124,10 @@ static void vga_draw_graphic(VGAState *s, int full_update)
disp_width = width;
shift_control = (s->gr[0x05] >> 5) & 3;
- double_scan = (s->cr[0x09] & 0x80);
+ if (shift_control > 1)
+ double_scan = ((s->cr[0x09] & 0x1f) != 0);
+ else
+ double_scan = (s->cr[0x09] & 0x80);
if (shift_control != s->shift_control ||
double_scan != s->double_scan) {
full_update = 1;
@@ -1151,7 +1154,6 @@ static void vga_draw_graphic(VGAState *s, int full_update)
} else {
full_update |= update_palette256(s);
v = VGA_DRAW_LINE8D2;
- double_scan = 1; /* XXX: explain me why it is always activated */
}
vga_draw_line = vga_draw_line_table[v * 4 + get_depth_index(s->ds->depth)];