Commit 646be93b4cc87635ffa03e044d1d21f5c80403c1

Authored by bellard
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,6 +597,7 @@ static void vbe_ioport_write(void *opaque, uint32_t addr, uint32_t val)
597 s->sr[0x01] &= ~8; /* no double line */ 597 s->sr[0x01] &= ~8; /* no double line */
598 } else { 598 } else {
599 shift_control = 2; 599 shift_control = 2;
  600 + s->sr[4] |= 0x08; /* set chain 4 mode */
600 } 601 }
601 s->gr[0x05] = (s->gr[0x05] & ~0x60) | (shift_control << 5); 602 s->gr[0x05] = (s->gr[0x05] & ~0x60) | (shift_control << 5);
602 s->cr[0x09] &= ~0x9f; /* no double scan */ 603 s->cr[0x09] &= ~0x9f; /* no double scan */
@@ -1768,6 +1769,13 @@ int vga_initialize(DisplayState *ds, uint8_t *vga_ram_base, @@ -1768,6 +1769,13 @@ int vga_initialize(DisplayState *ds, uint8_t *vga_ram_base,
1768 1769
1769 register_ioport_write(0x1ce, 1, 2, vbe_ioport_write, s); 1770 register_ioport_write(0x1ce, 1, 2, vbe_ioport_write, s);
1770 register_ioport_write(0x1cf, 1, 2, vbe_ioport_write, s); 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 #endif 1779 #endif
1772 1780
1773 vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write); 1781 vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write);