Commit 646be93b4cc87635ffa03e044d1d21f5c80403c1
1 parent
26aa7d72
Bochs VBE emulation fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@774 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
8 additions
and
0 deletions
hw/vga.c
... | ... | @@ -597,6 +597,7 @@ static void vbe_ioport_write(void *opaque, uint32_t addr, uint32_t val) |
597 | 597 | s->sr[0x01] &= ~8; /* no double line */ |
598 | 598 | } else { |
599 | 599 | shift_control = 2; |
600 | + s->sr[4] |= 0x08; /* set chain 4 mode */ | |
600 | 601 | } |
601 | 602 | s->gr[0x05] = (s->gr[0x05] & ~0x60) | (shift_control << 5); |
602 | 603 | s->cr[0x09] &= ~0x9f; /* no double scan */ |
... | ... | @@ -1768,6 +1769,13 @@ int vga_initialize(DisplayState *ds, uint8_t *vga_ram_base, |
1768 | 1769 | |
1769 | 1770 | register_ioport_write(0x1ce, 1, 2, vbe_ioport_write, s); |
1770 | 1771 | register_ioport_write(0x1cf, 1, 2, vbe_ioport_write, s); |
1772 | + | |
1773 | + /* old Bochs IO ports */ | |
1774 | + register_ioport_read(0xff80, 1, 2, vbe_ioport_read, s); | |
1775 | + register_ioport_read(0xff81, 1, 2, vbe_ioport_read, s); | |
1776 | + | |
1777 | + register_ioport_write(0xff80, 1, 2, vbe_ioport_write, s); | |
1778 | + register_ioport_write(0xff81, 1, 2, vbe_ioport_write, s); | |
1771 | 1779 | #endif |
1772 | 1780 | |
1773 | 1781 | vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write); | ... | ... |