BIOS floppy fix for NT4 (Mike Nordell, Derek Fawcus)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 3 Oct 2004 21:47:33 +0000 (21:47 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 3 Oct 2004 21:47:33 +0000 (21:47 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1096 c046a42c-6fe2-441c-8c8c-71466251a162

pc-bios/bios.bin
pc-bios/bios.diff

index b87e10b..dbac540 100644 (file)
Binary files a/pc-bios/bios.bin and b/pc-bios/bios.bin differ
index 443236a..4e38d18 100644 (file)
@@ -4,7 +4,7 @@ RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v
 retrieving revision 1.110
 diff -u -w -r1.110 rombios.c
 --- rombios.c  31 May 2004 13:11:27 -0000      1.110
-+++ rombios.c  20 Jun 2004 13:10:07 -0000
++++ rombios.c  3 Oct 2004 21:41:43 -0000
 @@ -137,6 +137,7 @@
  #define DEBUG_INT16        0
  #define DEBUG_INT1A        0
@@ -60,6 +60,15 @@ diff -u -w -r1.110 rombios.c
  ASM_END
      }
  }
+@@ -7880,7 +7868,7 @@
+   mov  al, #0x02
+   out  #0x0a, al   ;; clear DMA-1 channel 2 mask bit
+-  SET_INT_VECTOR(0x1E, #0xF000, #diskette_param_table)
++  SET_INT_VECTOR(0x1E, #0xF000, #diskette_param_table2)
+   SET_INT_VECTOR(0x40, #0xF000, #int13_diskette)
+   SET_INT_VECTOR(0x0E, #0xF000, #int0e_handler) ;; IRQ 6
 @@ -8344,6 +8332,19 @@
    pop   ax
    iret
@@ -80,7 +89,34 @@ diff -u -w -r1.110 rombios.c
  ;--------------------
  #if BX_PCIBIOS
  use32 386
-@@ -9560,6 +9561,10 @@
+@@ -9515,6 +9516,26 @@
+   pop  ds
+   iret
++diskette_param_table2:
++;;  New diskette parameter table adding 3 parameters from IBM
++;;  Since no provisions are made for multiple drive types, most
++;;  values in this table are ignored.  I set parameters for 1.44M
++;;  floppy here
++db  0xAF
++db  0x02 ;; head load time 0000001, DMA used
++db  0x25
++db  0x02
++db    18
++db  0x1B
++db  0xFF
++db  0x6C
++db  0xF6
++db  0x0F
++db  0x08
++db    79 ;; maximum track
++db     0 ;; data transfer rate
++db     4 ;; drive type in cmos
++
+ .org 0xf045 ; INT 10 Functions 0-Fh Entry Point
+   HALT(__LINE__)
+   iret
+@@ -9560,6 +9581,10 @@
  .org 0xf859 ; INT 15h System Services Entry Point
  int15_handler:
    pushf
@@ -91,7 +127,7 @@ diff -u -w -r1.110 rombios.c
    push  ds
    push  es
    pushad
-@@ -9570,6 +9575,10 @@
+@@ -9570,6 +9595,10 @@
    popf
    //JMPL(iret_modify_cf)
    jmp iret_modify_cf