Commit 3f433d2c87d666e446b1cd45c52390d61edd189b

Authored by bellard
1 parent 1a084f3d

int13 CDROM BIOS fix (aka Solaris x86 install CD fix)


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@807 c046a42c-6fe2-441c-8c8c-71466251a162
pc-bios/README
1 1 - The PC BIOS comes from the Bochs project
2   - (http://bochs.sourceforge.net/).
  2 + (http://bochs.sourceforge.net/). A patch from bios.diff was applied.
  3 +
3 4 - The VGA BIOS comes from the LGPL VGA bios project
4 5 (http://www.nongnu.org/vgabios/).
... ...
pc-bios/bios.bin
No preview for this file type
pc-bios/bios.diff 0 → 100644
  1 +Index: rombios.c
  2 +===================================================================
  3 +RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v
  4 +retrieving revision 1.108
  5 +diff -u -w -r1.108 rombios.c
  6 +--- rombios.c 9 Feb 2004 16:48:50 -0000 1.108
  7 ++++ rombios.c 16 May 2004 13:44:26 -0000
  8 +@@ -2254,6 +2254,7 @@
  9 + type = read_byte(get_SS(),buffer+1) & 0x1f;
  10 + removable = (read_byte(get_SS(),buffer+0) & 0x80) ? 1 : 0;
  11 + mode = read_byte(get_SS(),buffer+96) ? ATA_MODE_PIO32 : ATA_MODE_PIO16;
  12 ++ blksize = 2048;
  13 +
  14 + write_byte(ebda_seg,&EbdaData->ata.devices[device].device, type);
  15 + write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable);
  16 +@@ -3781,7 +3782,17 @@
  17 + write_word(ebda_seg, 0x0022, mouse_driver_offset);
  18 + write_word(ebda_seg, 0x0024, mouse_driver_seg);
  19 + mouse_flags_2 = read_byte(ebda_seg, 0x0027);
  20 ++ if (mouse_driver_offset == 0 &&
  21 ++ mouse_driver_seg == 0) {
  22 ++ /* remove handler */
  23 ++ if ( (mouse_flags_2 & 0x80) != 0 ) {
  24 ++ mouse_flags_2 &= ~0x80;
  25 ++ inhibit_mouse_int_and_events(); // disable IRQ12 and packets
  26 ++ }
  27 ++ } else {
  28 ++ /* install handler */
  29 + mouse_flags_2 |= 0x80;
  30 ++ }
  31 + write_byte(ebda_seg, 0x0027, mouse_flags_2);
  32 + CLEAR_CF();
  33 + regs.u.r8.ah = 0;
  34 +@@ -4409,7 +4420,8 @@
  35 + mouse_flags_2 = read_byte(ebda_seg, 0x0027);
  36 +
  37 + if ( (mouse_flags_2 & 0x80) != 0x80 ) {
  38 +- BX_PANIC("int74_function:\n");
  39 ++ // BX_PANIC("int74_function:\n");
  40 ++ return;
  41 + }
  42 +
  43 + package_count = mouse_flags_2 & 0x07;
... ...