Patchwork Regression: more 0.12 regression (SeaBIOS related?)

login
register
mail settings
Submitter Roy Tam
Date March 8, 2010, 11:08 a.m.
Message ID <473191351003080308x1dcded56ted4fde0458767f8c@mail.gmail.com>
Download mbox | patch
Permalink /patch/47110/
State New
Headers show

Comments

Roy Tam - March 8, 2010, 11:08 a.m.
2010/3/8 Jamie Lokier <jamie@shareable.org>:
> Roy Tam wrote:
>> - can't type correctly in GW-BASIC from DOS 2.0 - 3.31
>> - keyboard input is ignored when booting Korean edition of MS-DOS 6.20
>> - can't type correctly in FreeDOS/V (Ver 0138,
>> http://homepage1.nifty.com/bible/dos/fdos0138.lzh ), getting Illegal
>> Instruction error when you type something in short period.
>> - after the termination of qbasic run session, you can't press a key
>> to go back to editor in "press a key to continue" prompt, you have to
>> type something not just "press a key". When I modify the program and
>> press Shift-F5 to start the program, after execution and then exit
>> qbasic, Shift key modifier still activating, instead of deactivated
>> after I release Shift key.
>
> I think there was a change to one of the keyboard heuristics
> to solve a problem with another DOS program.  That might
> explain all these keyboard thingies.
>

seems so.

the following hack reenables QEMU/Bochs BIOS booting with -vga std
(for both pc and isapc):
--
--

and the STOP 0x3e when CD-ROM booting NT 4.0 seems to be QEMU issue(I
tested with latest git today).
for DOS-based NT installations, NT 4.0 still gets STOP 0x3e, and NT
3.51 still freezes after switching to 80x50 text mode.

Patch

diff --git a/hw/vga-isa.c b/hw/vga-isa.c
index 7937144..071134a 100644
--- a/hw/vga-isa.c
+++ b/hw/vga-isa.c
@@ -45,5 +45,8 @@  int isa_vga_init(void)
     vga_init_vbe(s);
     /* ROM BIOS */
     rom_add_vga(VGABIOS_FILENAME);
+#ifdef TARGET_I386
+    rom_add_file(VGABIOS_FILENAME,NULL,0xc0000);
+#endif
     return 0;
 }
diff --git a/hw/vga-pci.c b/hw/vga-pci.c
index eef78ed..f083110 100644
--- a/hw/vga-pci.c
+++ b/hw/vga-pci.c
@@ -109,6 +109,9 @@  static int pci_vga_initfn(PCIDevice *dev)
     vga_init_vbe(s);
      /* ROM BIOS */
      rom_add_vga(VGABIOS_FILENAME);
+#ifdef TARGET_I386
+     rom_add_file(VGABIOS_FILENAME,NULL,0xc0000);
+#endif
      return 0;
 }