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	22 May 2004 15:47:51 -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;
 
       write_byte(ebda_seg,&EbdaData->ata.devices[device].device, type);
       write_byte(ebda_seg,&EbdaData->ata.devices[device].removable, removable);
@@ -3378,6 +3379,8 @@
       and al,#0x10
       mov ah, al
 
+      or ecx, ecx                    
+      je int1586_tick_end
 int1586_tick:
       in al, #0x61
       and al,#0x10
@@ -3386,6 +3389,7 @@
       mov ah, al
       dec ecx
       jnz int1586_tick
+int1586_tick_end:
 ASM_END
 
       break;
@@ -3781,7 +3785,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 +4423,8 @@
   mouse_flags_2 = read_byte(ebda_seg, 0x0027);
 
   if ( (mouse_flags_2 & 0x80) != 0x80 ) {
-    BX_PANIC("int74_function:\n");
+      //    BX_PANIC("int74_function:\n");
+      return;
     }
 
   package_count = mouse_flags_2 & 0x07;
@@ -8401,57 +8416,69 @@
   cmp al, #0x08
   jne pci_pro_f09
   call pci_pro_select_reg
+  push edx
   mov dx, di
   and dx, #0x03
   add dx, #0x0cfc
   in  al, dx
+  pop edx
   mov cl, al
   jmp pci_pro_ok
 pci_pro_f09: ;; read configuration word
   cmp al, #0x09
   jne pci_pro_f0a
   call pci_pro_select_reg
+  push edx
   mov dx, di
   and dx, #0x02
   add dx, #0x0cfc
   in  ax, dx
+  pop edx
   mov cx, ax
   jmp pci_pro_ok
 pci_pro_f0a: ;; read configuration dword
   cmp al, #0x0a
   jne pci_pro_f0b
   call pci_pro_select_reg
+  push edx
   mov dx, #0x0cfc
   in  eax, dx
+  pop edx
   mov ecx, eax
   jmp pci_pro_ok
 pci_pro_f0b: ;; write configuration byte
   cmp al, #0x0b
   jne pci_pro_f0c
   call pci_pro_select_reg
+  push edx
   mov dx, di
   and dx, #0x03
   add dx, #0x0cfc
   mov al, cl
   out dx, al
+  pop edx
   jmp pci_pro_ok
 pci_pro_f0c: ;; write configuration word
   cmp al, #0x0c
   jne pci_pro_f0d
   call pci_pro_select_reg
+  push edx
   mov dx, di
   and dx, #0x02
   add dx, #0x0cfc
   mov ax, cx
   out dx, ax
+  pop edx
   jmp pci_pro_ok
 pci_pro_f0d: ;; write configuration dword
   cmp al, #0x0d
   jne pci_pro_unknown
   call pci_pro_select_reg
+  push edx
   mov dx, #0x0cfc
   mov eax, ecx
   out dx, eax
+  pop edx
   jmp pci_pro_ok
 pci_pro_unknown:
   mov ah, #0x81
@@ -8468,6 +8495,7 @@
   retf
 
 pci_pro_select_reg:
+  push edx
   mov eax, #0x800000
   mov ax,  bx
   shl eax, #8
@@ -8476,6 +8504,7 @@
   and al,  #0xfc
   mov dx, #0x0cf8
   out dx,  eax
+  pop edx
   ret
 
 use16 386
@@ -8536,57 +8565,69 @@
   cmp al, #0x08
   jne pci_real_f09
   call pci_real_select_reg
+  push dx
   mov dx, di
   and dx, #0x03
   add dx, #0x0cfc
   in  al, dx
+  pop dx
   mov cl, al
   jmp pci_real_ok
 pci_real_f09: ;; read configuration word
   cmp al, #0x09
   jne pci_real_f0a
   call pci_real_select_reg
+  push dx
   mov dx, di
   and dx, #0x02
   add dx, #0x0cfc
   in  ax, dx
+  pop dx
   mov cx, ax
   jmp pci_real_ok
 pci_real_f0a: ;; read configuration dword
   cmp al, #0x0a
   jne pci_real_f0b
   call pci_real_select_reg
+  push dx
   mov dx, #0x0cfc
   in  eax, dx
+  pop dx
   mov ecx, eax
   jmp pci_real_ok
 pci_real_f0b: ;; write configuration byte
   cmp al, #0x0b
   jne pci_real_f0c
   call pci_real_select_reg
+  push dx
   mov dx, di
   and dx, #0x03
   add dx, #0x0cfc
   mov al, cl
   out dx, al
+  pop dx
   jmp pci_real_ok
 pci_real_f0c: ;; write configuration word
   cmp al, #0x0c
   jne pci_real_f0d
   call pci_real_select_reg
+  push dx
   mov dx, di
   and dx, #0x02
   add dx, #0x0cfc
   mov ax, cx
   out dx, ax
+  pop dx
   jmp pci_real_ok
 pci_real_f0d: ;; write configuration dword
   cmp al, #0x0d
   jne pci_real_unknown
   call pci_real_select_reg
+  push dx
   mov dx, #0x0cfc
   mov eax, ecx
   out dx, eax
+  pop dx
   jmp pci_real_ok
 pci_real_unknown:
   mov ah, #0x81
@@ -8599,6 +8640,7 @@
   ret
 
 pci_real_select_reg:
+  push dx
   mov eax, #0x800000
   mov ax,  bx
   shl eax, #8
@@ -8607,6 +8649,7 @@
   and al,  #0xfc
   mov dx, #0x0cf8
   out dx,  eax
+  pop dx
   ret
   
 .align 16
