|Well, here is the hard drive speedup fix itself.|
Step 1: Run coretest once, and note the speed data it gives you. It is not the speed you would actually experience under Windows, because in DOS there is no UDMA driver, so it is simple PIO mode.
Step 2: Set the IDE timings using PCI. You can read more about the usage of pci.exe here.
Here is the command, the IDE speedup fix:
pci r43,7,1=1a r44,7,1=8 r4c,7,1=3f r53,7,1=1 r4b,7,1=X
That big, red X at the end is the most important value. This one makes it or brakes it. Of course, you are supposed to supply a hex number instead of "X". It's default value at boot time is "a8", which leaves a lot of room for improvements. So, here are my recommendations:
Value (X): Recommended for:
a8 Default. NOT recommended. Excessively slow.
54 Very conservative, but still fast. Old HDDs, under 1 GB.
32 Safe, but speedy. UDMA HDDs, over 1 GB.
21 Very speedy! UDMA-33+ HDDs, over 2 GB. All modern drives.
10 For true Speed Freaks with UDMA-66+ drives!!
These are only recommendations. You may want to try other values than what is in this table, and it may work perfectly for you. As a matter of fact, most modern HDDs should work flawlessly with a setting of "10", so yes, you can always try, but do it safely. (No, don't try "0" !) So the next step would be:
Step 3: Test the speed improvement and operational status using Coretest. When using coretest, once again, the speed data are only indicative, and only in comparison to the value at the start.
If coretest fails to complete, hangs, it means that you've gone too far, the timings you chose are too aggressive for your hardware. Take back a notch or two, and try again. If coretest runs like a champ, without a hickup, you are on to something. This is the time to test for the reliability of transfer.
Step 4: Test the reliability of HDD transfer. Run fullnull.com, and wait about a minute or so for it to create a data file of at least 100MB, then stop it by pressing Esc. Check this data file by running nullchk.com. If the data is OK, everything is OK, and should be.
If you have your setting of choice, put it in your autoexec.bat, re-enable Windows to load automatically, reset your IO once, watch as it advances through the boot process, and just as it would start loading Windows, do wish that everything goes well....
Once in Windows, check that the DMA box is checked for the drive, as it should be, and once checked it should stay checked. And did I tell you that you are done? ;)
If you have 2 IDE HDDs on one cable, you can set the timings for each. The timings for the slave drive can be set by adding the value for register "4a" as well, so it should look like this:
pci r43,7,1=1a r44,7,1=8 r4c,7,1=3f r53,7,1=1 r4b,7,1=X r4a,7,1=Y
X is for the master, Y for the slave drive. Again, the value in place of X and Y should be determined based on the table above, or on experimenting. Just never beleive it works without actually testing whether it is reliable.
BTW, I use my HDD - a 10GB ATA-66 Toshiba - with a value of "10", so I obviously am a speed freak. ;)) Using this configuration gives me maximum speed in this little box. My minimum HDD transfer speeds (!) are above 15MB/s, and Sandra puts my HDD well into the desktop ATA-66 category with an index of more than 11000. So, it is chugging along very nicely....
I hope it will work out for you just as well, but I know it should. Just don't hurry with this, and don't risk your data. Test prior to moving on.
This should be enough to get everyone up to speed. In case you need somewhat more information, or want to ask me something off line, send an email to
"my BBS ID" at chez.com
Good luck to Everyone,