Commit a5ba1ca6083aab0b628d03122e3553c92e3da3a5
1 parent
b769d8fe
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
Showing
2 changed files
with
39 additions
and
3 deletions
pc-bios/bios.bin
No preview for this file type
pc-bios/bios.diff
@@ -4,7 +4,7 @@ RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v | @@ -4,7 +4,7 @@ RCS file: /cvsroot/bochs/bochs/bios/rombios.c,v | ||
4 | retrieving revision 1.110 | 4 | retrieving revision 1.110 |
5 | diff -u -w -r1.110 rombios.c | 5 | diff -u -w -r1.110 rombios.c |
6 | --- rombios.c 31 May 2004 13:11:27 -0000 1.110 | 6 | --- rombios.c 31 May 2004 13:11:27 -0000 1.110 |
7 | -+++ rombios.c 20 Jun 2004 13:10:07 -0000 | 7 | ++++ rombios.c 3 Oct 2004 21:41:43 -0000 |
8 | @@ -137,6 +137,7 @@ | 8 | @@ -137,6 +137,7 @@ |
9 | #define DEBUG_INT16 0 | 9 | #define DEBUG_INT16 0 |
10 | #define DEBUG_INT1A 0 | 10 | #define DEBUG_INT1A 0 |
@@ -60,6 +60,15 @@ diff -u -w -r1.110 rombios.c | @@ -60,6 +60,15 @@ diff -u -w -r1.110 rombios.c | ||
60 | ASM_END | 60 | ASM_END |
61 | } | 61 | } |
62 | } | 62 | } |
63 | +@@ -7880,7 +7868,7 @@ | ||
64 | + mov al, #0x02 | ||
65 | + out #0x0a, al ;; clear DMA-1 channel 2 mask bit | ||
66 | + | ||
67 | +- SET_INT_VECTOR(0x1E, #0xF000, #diskette_param_table) | ||
68 | ++ SET_INT_VECTOR(0x1E, #0xF000, #diskette_param_table2) | ||
69 | + SET_INT_VECTOR(0x40, #0xF000, #int13_diskette) | ||
70 | + SET_INT_VECTOR(0x0E, #0xF000, #int0e_handler) ;; IRQ 6 | ||
71 | + | ||
63 | @@ -8344,6 +8332,19 @@ | 72 | @@ -8344,6 +8332,19 @@ |
64 | pop ax | 73 | pop ax |
65 | iret | 74 | iret |
@@ -80,7 +89,34 @@ diff -u -w -r1.110 rombios.c | @@ -80,7 +89,34 @@ diff -u -w -r1.110 rombios.c | ||
80 | ;-------------------- | 89 | ;-------------------- |
81 | #if BX_PCIBIOS | 90 | #if BX_PCIBIOS |
82 | use32 386 | 91 | use32 386 |
83 | -@@ -9560,6 +9561,10 @@ | 92 | +@@ -9515,6 +9516,26 @@ |
93 | + pop ds | ||
94 | + iret | ||
95 | + | ||
96 | ++diskette_param_table2: | ||
97 | ++;; New diskette parameter table adding 3 parameters from IBM | ||
98 | ++;; Since no provisions are made for multiple drive types, most | ||
99 | ++;; values in this table are ignored. I set parameters for 1.44M | ||
100 | ++;; floppy here | ||
101 | ++db 0xAF | ||
102 | ++db 0x02 ;; head load time 0000001, DMA used | ||
103 | ++db 0x25 | ||
104 | ++db 0x02 | ||
105 | ++db 18 | ||
106 | ++db 0x1B | ||
107 | ++db 0xFF | ||
108 | ++db 0x6C | ||
109 | ++db 0xF6 | ||
110 | ++db 0x0F | ||
111 | ++db 0x08 | ||
112 | ++db 79 ;; maximum track | ||
113 | ++db 0 ;; data transfer rate | ||
114 | ++db 4 ;; drive type in cmos | ||
115 | ++ | ||
116 | + .org 0xf045 ; INT 10 Functions 0-Fh Entry Point | ||
117 | + HALT(__LINE__) | ||
118 | + iret | ||
119 | +@@ -9560,6 +9581,10 @@ | ||
84 | .org 0xf859 ; INT 15h System Services Entry Point | 120 | .org 0xf859 ; INT 15h System Services Entry Point |
85 | int15_handler: | 121 | int15_handler: |
86 | pushf | 122 | pushf |
@@ -91,7 +127,7 @@ diff -u -w -r1.110 rombios.c | @@ -91,7 +127,7 @@ diff -u -w -r1.110 rombios.c | ||
91 | push ds | 127 | push ds |
92 | push es | 128 | push es |
93 | pushad | 129 | pushad |
94 | -@@ -9570,6 +9575,10 @@ | 130 | +@@ -9570,6 +9595,10 @@ |
95 | popf | 131 | popf |
96 | //JMPL(iret_modify_cf) | 132 | //JMPL(iret_modify_cf) |
97 | jmp iret_modify_cf | 133 | jmp iret_modify_cf |