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 | 4 | retrieving revision 1.110 |
| 5 | 5 | diff -u -w -r1.110 rombios.c |
| 6 | 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 | 8 | @@ -137,6 +137,7 @@ |
| 9 | 9 | #define DEBUG_INT16 0 |
| 10 | 10 | #define DEBUG_INT1A 0 |
| ... | ... | @@ -60,6 +60,15 @@ diff -u -w -r1.110 rombios.c |
| 60 | 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 | 72 | @@ -8344,6 +8332,19 @@ |
| 64 | 73 | pop ax |
| 65 | 74 | iret |
| ... | ... | @@ -80,7 +89,34 @@ diff -u -w -r1.110 rombios.c |
| 80 | 89 | ;-------------------- |
| 81 | 90 | #if BX_PCIBIOS |
| 82 | 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 | 120 | .org 0xf859 ; INT 15h System Services Entry Point |
| 85 | 121 | int15_handler: |
| 86 | 122 | pushf |
| ... | ... | @@ -91,7 +127,7 @@ diff -u -w -r1.110 rombios.c |
| 91 | 127 | push ds |
| 92 | 128 | push es |
| 93 | 129 | pushad |
| 94 | -@@ -9570,6 +9575,10 @@ | |
| 130 | +@@ -9570,6 +9595,10 @@ | |
| 95 | 131 | popf |
| 96 | 132 | //JMPL(iret_modify_cf) |
| 97 | 133 | jmp iret_modify_cf | ... | ... |