Index: rombios.c
===================================================================
RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v
-retrieving revision 1.108
-diff -u -w -r1.108 rombios.c
---- rombios.c 9 Feb 2004 16:48:50 -0000 1.108
-+++ rombios.c 16 May 2004 13:44:26 -0000
-@@ -2254,6 +2254,7 @@
- type = read_byte(get_SS(),buffer+1) & 0x1f;
- removable = (read_byte(get_SS(),buffer+0) & 0x80) ? 1 : 0;
- mode = read_byte(get_SS(),buffer+96) ? ATA_MODE_PIO32 : ATA_MODE_PIO16;
-+ blksize = 2048;
+retrieving revision 1.174
+diff -u -w -r1.174 rombios.c
+--- rombios.c 17 Oct 2006 16:48:05 -0000 1.174
++++ rombios.c 8 Feb 2007 21:57:48 -0000
+@@ -9472,6 +9472,14 @@
+ mov eax, #0x00040000
+ call eax
- write_byte(ebda_seg,&EbdaData->ata.devices[device].device, type);
- write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable);
-@@ -3781,7 +3782,17 @@
- write_word(ebda_seg, 0x0022, mouse_driver_offset);
- write_word(ebda_seg, 0x0024, mouse_driver_seg);
- mouse_flags_2 = read_byte(ebda_seg, 0x0027);
-+ if (mouse_driver_offset == 0 &&
-+ mouse_driver_seg == 0) {
-+ /* remove handler */
-+ if ( (mouse_flags_2 & 0x80) != 0 ) {
-+ mouse_flags_2 &= ~0x80;
-+ inhibit_mouse_int_and_events(); // disable IRQ12 and packets
-+ }
-+ } else {
-+ /* install handler */
- mouse_flags_2 |= 0x80;
-+ }
- write_byte(ebda_seg, 0x0027, mouse_flags_2);
- CLEAR_CF();
- regs.u.r8.ah = 0;
-@@ -4409,7 +4420,8 @@
- mouse_flags_2 = read_byte(ebda_seg, 0x0027);
++ ;; reset the memory (some boot loaders such as syslinux suppose
++ ;; that the memory is set to zero)
++ mov edi, #0x00040000
++ mov ecx, #0x40000 / 4
++ xor eax, eax
++ rep
++ stosd
++
+ ;; return to 16 bit protected mode first
+ db 0xea
+ dd rombios32_10
+Index: rombios.h
+===================================================================
+RCS file: /cvsroot/bochs/bochs/bios/rombios.h,v
+retrieving revision 1.3
+diff -u -w -r1.3 rombios.h
+--- rombios.h 3 Oct 2006 20:27:30 -0000 1.3
++++ rombios.h 8 Feb 2007 21:57:48 -0000
+@@ -19,7 +19,7 @@
+ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+ /* define it to include QEMU specific code */
+-//#define BX_QEMU
++#define BX_QEMU
- if ( (mouse_flags_2 & 0x80) != 0x80 ) {
-- BX_PANIC("int74_function:\n");
-+ // BX_PANIC("int74_function:\n");
-+ return;
- }
+ #ifndef LEGACY
+ # define BX_ROMBIOS32 1
+Index: rombios32.c
+===================================================================
+RCS file: /cvsroot/bochs/bochs/bios/rombios32.c,v
+retrieving revision 1.8
+diff -u -w -r1.8 rombios32.c
+--- rombios32.c 3 Oct 2006 20:27:30 -0000 1.8
++++ rombios32.c 8 Feb 2007 21:57:48 -0000
+@@ -852,6 +852,11 @@
+ int ioapic_id, i, len;
+ int mp_config_table_size;
- package_count = mouse_flags_2 & 0x07;
++#ifdef BX_QEMU
++ if (smp_cpus <= 1)
++ return;
++#endif
++
+ #ifdef BX_USE_EBDA_TABLES
+ mp_config_table = (uint8_t *)(ram_size - ACPI_DATA_SIZE - MPTABLE_MAX_SIZE);
+ #else