BIOS floppy fix for NT4 (Mike Nordell, Derek Fawcus)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1096 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
bellard 2004-10-03 21:47:33 +00:00
parent b769d8fef6
commit a5ba1ca608
2 changed files with 39 additions and 3 deletions

Binary file not shown.

View 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