Commit 3f433d2c87d666e446b1cd45c52390d61edd189b
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
Showing
3 changed files
with
45 additions
and
1 deletions
pc-bios/README
| 1 | - The PC BIOS comes from the Bochs project | 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 | - The VGA BIOS comes from the LGPL VGA bios project | 4 | - The VGA BIOS comes from the LGPL VGA bios project |
| 4 | (http://www.nongnu.org/vgabios/). | 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; |