Dec 132017
 
Installation information on Western Digital (only) IDE Drives.
File WDAT-IDE.ZIP from The Programmer’s Corner in
Category HD Utilities
Installation information on Western Digital (only) IDE Drives.
File Name File Size Zip Size Zip Type
TPCREAD.ME 199 165 deflated
WDAT_IDE.EXE 10570 4691 deflated
WDAT_IDE.OVL 37576 17240 deflated
WDAT_IDE.TXT 14671 4342 deflated
WDI13.EXE 88819 48644 deflated

Download File WDAT-IDE.ZIP Here

Contents of the WDAT_IDE.TXT file


README - WDAT_IDE

This utility scans the media and remaps any grown defects on a Western
Digital drive. It also provides performance data such as seek times and data
access times.


COMMAND LINE OPTIONS:

To run the menu-driven test, type 'WDAT_IDE' from the DOS prompt.

The following options may be included on the command line after 'WDAT_IDE':
L = open log file WDAT_IDE.LOG (only use this option when
running the test from a floppy, since hard disk data
corruption will occur!!!)
1 = run quick scan of first drive with no menu
2 = run quick scan of second drive with no menu
S = skip pause at end of 'no menu' run
B = adjust bit map formats if necessary and quit
P = update P list instead of G list
G = skip update of grown defect list, but still relocate
sectors and tracks
F = relocate addresses shown in file WDAT_IDE.DAT
D = operate on second drive if F option chosen

The 'L' option may be combined with either the '1' or '2' option. Either
'1' or '2' may be specified, but not both.

The data file for the 'F' option should be an ASCII text file with a C, H and
S specified for each address to be relocated. To relocate a track, specify
the C and H and set the S to 255. All addresses must be specified in decimal.
All addresses are for physical locations, and the sector address is the
sector from index. The first sector is specified as 1, not 0. For example, to
relocate the 23rd sector from index at C10 H1 and the track at C20 H3, store
the following text in WDAT_IDE.DAT:

10, 1, 23
20, 3, 255


For a description of the command line options, type 'WDAT_IDE ?'.


PROGRAM CHARACTERISTICS:

- runs with WDI13
- retries disabled
- identifies drive models and number of drives
- if CMOS is set for no drives, sets CMOS to drive type 1 and issues

cold boot
- revectors INT41 and INT46 to new tables that contain physical drive
parameters
- menu driven
- preserves user data whenever possible (uncorrectable errors cannot be
recovered)


MENU OPTION DESCRIPTIONS:

MAIN MENU SELECTION:

0 - Quick Surface Scan ... 2-3 minutes
1 - Comprehensive Analysis ... 8-12 hours
2 - Performance Data ... Access and Xfer
3 - Select Drive ... 0 or 1
4 - Park Drives and Quit"


MENU SELECTION "0 - Quick Surface Scan" description:

1. Read verifies, sequentially, a track at a time. No writes are
issued.
2. Performs appropriate defect management if errors are detected:
See section below for details regarding defect management.
3. Saves and restores user data, if possible.


MENU SELECTION "1 - Comprehensive Analysis" description:

1. Read verifies, sequentially, a track at a time.
This step executes the 'quick scan' described above.
2. Writes/Reads, sequentially, a track at a time.
In this step, each track is written with 11 data patterns, and
10 reads are issued after each write. So each track is read a
minimum of 110 times, more if errors occur. The data patterns
are:
pattern 0: 00
pattern 1: 33
pattern 2: 5ab6b5ab6b
pattern 3: c086043021800c086043021800
pattern 4: 136b31136bb3
pattern 5: 0101
pattern 6: 492492
pattern 7: cf3cf3
pattern 8: c6319c6319
pattern 9: d6b5ad6b5a
pattern 10: random data
3. Performs appropriate defect management:
See section below for details regarding defect management.
4. Saves and restores user data, if possible.


MENU SELECTION "2 - Performance Data" description:

1. Track-track access time seek test (200 seeks)
2. Average access time seek test (1000 random seeks)
3. Full stroke access time seek test (200 seeks)
4. Data transfer test (average from 200 times)
This test sets the block size to the number of sectors per
logical cylinder, or to 64, whichever is less. 200 Read
commands are issued at address C:0 H:0 S:1. If any error occurs
during any Read, then the error message "Data Error in Cyl 0"
is displayed, and the test is aborted. The data rate in bytes
per second is calculated by dividing A by B, where
A = (200*Blocks per transfer*512) and B = the total time in
seconds.


DEFECT MANAGEMENT DETAILS:

If an error is detected while reading a track, the following steps occur:

1) The track data is stored in memory. If the data cannot be read, then
a message will appear at the end of the test that not all of the data
was restored. For example, the data can not be read if a servo error or
ID Not Found error occurs. However, the data can be read if the most
common type of error, a correctable ECC error, occurs. Retries are
enabled for reading the data into memory to recover as many sectors
as possible.
2) If a Bad Block error is detected, then the sector is re-formatted as no
longer bad, and the test continues with step 3.
3) The sector in error is re-read 20 times with cache disabled.
If any error occurs, the relocation alogorithm shown below is executed.
If no error occurs during any of the re-reads, the sector is not
relocated.
4) Each sector on the track is read 20 times, including the original sector
in error.
5) If an error occurs during any read, the relocation algorithm is
executed, and reverification of the track as shown here in step 4
is repeated.
6) Steps 4-5 are repeated until no errors are detected on the track.
7) The data that was stored in step 1 is rewritten to the track.

Relocation Algorithm Details:

If a servo error occurs, the track is relocated.
If an ID Not Found error occurs, the track is relocated.
If a physical track already has 2 relocated sectors, the track is
relocated.
If an ECC or DAM error occurs, the sector is relocated. Since retries are
disabled, correctable ECC errors are reported as uncorrectable and
are relocated.
If any other type of error occurs, an error message is displayed and the
test is terminated.


To relocate a track, updates must occur to the configuration sector, the
track bit map, and the grown defect list. The following steps are taken:

1) The number of spares available is determined from the configuration
sector. If no spares are available, then an error message is
displayed and the program is terminated.
2) If spares are available, then an available spare address is
determined based on the spare track bit map.
3) The spare track list in the conguration sector is updated and
written to the drive. If the track in error is a spare, then the
old spare is replaced with the new spare in the list. For example,
if track 0 was relocated to track 2000, and track 2000 later
appeared bad, then track 0 would be re-relocated to track 2001,
and the bit for track 2000 would remain cleared so it could not
be used in the future.
4) The used bit is cleared and the new bit map is written to the drive.
5) The new grown defect list is written to the drive.


To relocate a sector, updates must occur to the sector bit map and the
grown defect list. Also, the relocation address must be stored in the
defective sector after it has been marked bad. The following steps are
taken:

1) The spare sector bit map is checked for available spares. If no
spares are available, then an error message is displayed, and
the program is terminated.
2) If spares are available, then an available spare address is
determined based on the spare sector bit map. The search for a
spare begins at the cylinder with an error, and then proceeds to
check cylinders at +-1, then +-2, etc., until an unused spare is
located. If the sector in error is a spare itself, then it is
relocated to a new spare, causing a 'chain' of relocations.
3) The sector in error is marked bad, then the 'Write Relocation ID'
command is issued so the sector contains the address of the spare.
4) The used bit is cleared and the new bit map is written to the drive.
5) The new grown defect list is written to the drive.


REVISION HISTORY:

rev 2.1 2/12/92 Fix bug - no longer hangs before main menu -
used to hang if FTS rev had a space before
the number.
Fix bug - When parsing .DAT file, now
relocates address even when line does not
end with a linefeed.
Added P option to update P list instead of G
list.
Because of lack of code space, rearranged seek
tests so now tk-tk test is followed by
full stroke test.

rev 2.0 12/13/91 Supports AC2200.

rev 1.9 9/24/91 Add option to immediately relocate bad blocks
instead of formatting and testing them
first.
Relocate defects on cyl 0 and 1 during write
error process instead of giving error
message.
Do not allow bad block errors during any
write command (previously ignored these
errors).
Fix bug so correct spare tracks get used
(introduced in previous rev).
User must hit a key before re-boot occurs.
Fix bug: If track address from input file
has already been relocated, modify existing
entry instead of adding new entry.
To work with ACER BIOS, which doesn't allow
retries to be disabled, test for corr.
ecc errors at drive level in addition to
testing BIOS error code.

rev 1.8 9/10/91 Fix batch file so program gets executed if F
option is enabled.
Fix bug: When running 2 drives, zone
information from second drive would be used
when operating on first drive. This caused
errors if drives were different models.

rev 1.7 9/9/91 Relocates track if Write Fault bit is set
or if Seek Complete bit is not set
following Extract Interleave cmd.
Parks drives correctly (issues seek to cyl
07ffh instead of ff07h).

rev 1.6 9/6/91 Has option to get relocation addresses from
file WDAT_IDE.DAT.
If bad block is detected, reformats sector
and then checks for any error.
Skips park command for Tidbit drives.
Relocates track if Write Fault bit is set
following Verify error.
Only issues REREAD PARMS cmd to Tidbit
(piranha was getting an error)
When selecting drive, no longer looks for
Seek Complete bit since want to relocate
tracks with this error

rev 1.5 8/5/91 Supports AB130 (Tidbit 30MB)
Supports option to skip update of grown
defect list

rev 1.4 7/11/91 Parks drive with seek to cyl 2047 instead
of 1023, and issues seek command directly
instead of through BIOS
Doesn't show AB130 in list of drives supported
Relocates track if error occurs when
relocating sector
Supports command line option to update bit
map format and quit

rev 1.3 6/24/91 Supports Tidbit and Caviar II
Lets user continue if unidentified drive is
present
Allows defects on cylinders 0 and 1
Swaps bits in bit maps if necessary

rev 1.2 3/12/91 Supports piranha
Re-scans correct track after relocating a
sector (previous revision re-read wrong
cylinder, which sometimes caused drive
to park)
Waits for keystroke at end of 'no menu' run
so user can see results

rev 1.1 12/4/90 Doesn't open log file unless requested
Displays new menu order

rev 1.0 11/14/90 Initial release


 December 13, 2017  Add comments

Leave a Reply