View Full Version : XTIDE HellTest

October 15th, 2009, 06:50 PM
Helltest documentation
Oct 2009
Helltest is a hard drive verification program. It writes random data to random, single sectors on the target drive, and reads the data back for comparison.
The data and addresses used during the test are all pseudo-random, meaning you will get the same patterns every time you run this test. This makes it a perfect application for verifying that XTIDE can read and write the same data as a modern hard drive controller.
Warning: This test is destructive to the data on the hard disk. Use this test only on scratch drives.
Application: Helltest is useful for verifying that data written to the drive using the XTIDE interface is readable and correct. The data patterns can also be verified on another computer, which proves that the data written by the XTIDE is perfectly readable on other IDE controllers. Finally, if the data patterns were written on another IDE controller, helltest can verify that data is read properly on the XTIDE. This test will *not* expose any LBA translation errors.
Helltest is a DOS based program, and requires Extended INT13 functions to be available to issue the read/writes. Most modern computers manufactured after about 2003 should have EINT13 support available to DOS.
User options:
After launching helltest and agreeing that this program is potentially very destructive, you'll see a menu with three options:
V - do a read+verify test on a previously written hard drive.<br>
W - do a write only test (no reads or verify)<br>
B - do both a write then a read-verify to compare the data.<br>
V - Verify test:
The Verify test only does reads to random sectors to the drive, and then compares the data found against the internally generated data. This would be useful by having the drive written on a modern controller and then read back on the XTIDE. All 512 bytes of the sector are compared. Any bit errors are displayed to the screen, and the option to quit or continue testing is given. See the error reporting section below for details.
W - Write test:
The Write test picks a random LBA to write to, then writes 1 sector of data to the drive. The data is a pseudo-random series of 508 bytes, ranging from 00 to FFh. The first 4 bytes of the data in the sector is the value of the LBA written to the drive. This test is useful in that it is faster than the write+verify test. Use this to write the data on one controller, then use the above test to read it back, ideally on a different computer altogether. No error reporting is done in this test.
B - Write and Verify test
This test first writes the data to the drive, then reads it back and compares it with the data written. Since there is no cache involved on the XTIDE, any data read is read directly off the drive and not from memory. Errors are reported and displayed, see the error reporting section below for details. This test is useful for verifying data integrity on the XTIDE itself.
Error reporting:
When a read-verify error is detected, the entire contents of the expected and found data are displayed to the screen, with a prompt to continue or not.
Expected data and found data are displayed in columns, expected data is on the left. Mismatches are displayed in Red, matches are in White. The first 4 bytes of the data displayed will be the LBA number written to the drive, and should match the LBA number under test.
[ a screenshot of an error condition will go here]
Notes: The test is pretty brutal to the hard drive heads, and should probably not be run for extended periods of time. Likely, a data mismatch/signal error will be exposed within a half hour of execution (on an 8088 based machine).
Best strategy:
1)Get two, scratch hard drives.
2)Install a drive on the XTIDE and another drive on a modern computer.
3)Start the test on both systems, and do the 'B' (write and verify) test. Let each test run for 15-30 minutes. (the XTIDE based machine will not do nearly as many sector tests as the modern machine, obviously.)
4)Stop the tests by pressing the ESC key, provided no errors occurred.
5)Swap the drives on the 2 platforms, re-run the test and perform the Verify test. This will verify that both the data written to the XTIDE drive is readable on the modern platform, and that the XTIDE can read data written to by the modern machine. If both tests pass up to the point where the test was stopped, then you can be confident your XTIDE controller is working as it should.