Contents of the USERDIAG.DOC file
WESTERN DIGITAL USER DIAGNOSTICS
This document is intended to accompany the utility USERDIAG.EXE
placed on this bulletin board for your convenience.
The utility is a safe, non-destructive way for your customer
(or your self) to verify the configuration of your AT
compatible computer, and to specifically test the hard drive/
Upon loading the program, the low-order ram pointer bytes are
presented to the screen. The machine's power-on self tests
test installed peripherals, and if valid ones exsist, the
tables are updated.
NOTE : THIS UTILITY DOES NOT PERFORM THE SETUP OR FORMAT
FUNCTIONS. THESE FUNCTIONS MUST BE PERFORMED BY
THE MACHINE'S MANUFACTURER-SUPPLIED SETUP AND
FORMAT UTILITIES. IN THE EVENT A FORMATTER IS
REQUIRED, WE SUGGEST THE OBTAINING OF THE WD
A sample of the start-up screen follows:
System contains the following :
640K bytes of RAM
2 Floppy disk drive(s)
1 Parallel printer port(s)
2 Asynchronous serial port(s)
1 Hard disk drive(s) of the following configuration(s) ...
Drive Cylinders Heads Precomp cyl Landing zone Sectors/track
0 820 10 65535 820 17
Total formatted capacity of drive 0 is 71,372,800 bytes
If the above information is not correct, run your system's setup utility
The following diagnostic will use the configuration information above
Do you want to do a hard drive / controller diagnostic ( y / n) ??
Note that the total count for all devices, as well as the
physical capacity of the hard drive is indicated. The useable
capacity is somewhat less, due to the partitioning method
that DOS uses.
You can proceed to the controller/drive diagnostic by typing
'y' now. No return is necessary.
The disk diagnostic is useful for a problem installation,
or to verify absolute disk addresses in the event of a disk
The user can directly enter any cylinder, sector, or head
he desires to test. The drive number can also be selected
if TWO drives are present. The amount of sectors to test
(sector count) is valid only for a (R)ead operation. If
no value is entered for any parameter, the program
drive = 0
cylinder = 0
head = 0
sector no. = 1
sector count = 256
command = re(Z)ero
The currently supported commands are :
re(Z)ero ....... recalibrates drive to cylinder 0
(S)eek ....... positions drive to any cylinder
(R)ead ....... transfers data from drive starting
at location chosen, and continues
for duration of sector count
(W)rite / read . transfers a random pattern of
data to the drive, then reads
it back, and checks for errors.
THIS IS DONE ONLY AT THE LAST
SECTOR OF THE DRIVE. YOU CANNOT
CHANGE THE LOCATION.
(A)ll .......... each of the preceeding commands
done in order. Any error will
terminate the sequence, and you
have the option of trying a
As you may notice, the sector number, sector count, and
head number have no bearing on re(Z)ero and (S)eek
IMPORTANT NOTE : Illegal disk addresses have been screened
for, and the following is how the program
ILLEGAL SECTOR NUMBER : results when sector 0 or a sector number
greater than the actual sector per track
count is selected. Sector 0 is fixed
to 1, and the sector per track value
from the system BIOS is the maximum.
ILLEGAL HEAD NUMBER : results when a head number greater
than ONE LESS THAN THE BIOS VALUE
is selected. Head (<0) is fixed to 0
and head numbers are truncated at
one less than the BIOS value.
ILLEGAL CYLINDER NO. : results when a cylinder number less
than zero or greater than ONE LESS
than the BIOS table. Handled exactly
like the heads, above. Can also
result when a read operation will
span many cylinders. The actual
cylinder entered is tested against
the selected value PLUS the sector
count divided by the number of sectors
in a cylinder PLUS 1. If the result
would be greater, than the max cylinder
count of the drive, the difference is
ILLEGAL SECTOR COUNT .. results when less than zero or
greater than 255 is entered. The
program makes 0 equal 256, and
<0 equal 1.
A sample session follows:
Drive 0 selected automatically
Select a cylinder between 0 and 819 ? 819
Select a head (surface) between 0 and 9 ? 9
Select a starting sector between 1 and 17 ? 1
Select a number of sectors between 1 and 256 ? 17
The following commands are available :
re(Z)ero, (S)eek, (R)ead, (W)rite/read verify, (A)ll
ENTER YOUR OPTION : ? a
Now issuing the rezero (recal) command ......... command successful !
Now issuing the seek command ................... command successful !
Now issuing the read command ................... command successful !
For your protection, this part of our show will only do the LAST SECTOR
That will be ... cylinder 819 , head 9 , sector 17
Now issuing the write command .................. command successful !
Now issuing the read command to compare data ... command successful !
Now comparing data ............................. data compared O.K. !
Want another test( y / n ) ?
IMPORTANT NOTE : In the event of an error, the status and
error registers are presented to the screen.
An English interpretation of the HIGHEST
PRIORITY ERROR will follow. If there is a
real problem, such as an XT controller
installed in the system, or a timeout error
that "hangs" the controller, the status
and error register values may be the same.
The sector count, head number, and cylinder
number are also displayed.
Possible error codes listed below:
POSSIBLE ERROR CODES :
ERROR PROBABLE CAUSE
DRIVE NOT READY Improper drive select option on drive.
TRACK 0 ERROR Drive not up to speed, or no seek
complete signal received. Cable fault.
Power the machine off and re-verify
drive select option and cable connections.
WRITE FAULT FROM DRIVE Improper drive type selected in SETUP.
Above maximum cylinder number or head
number was selected. Verify the drive
type selected in SETUP.
CONTROLLER STAYED BUSY No index signal was present from the
INDEX STAYED ACTIVE drive. If this signal is missing, the
controller will wait forever if a
(R)ead command is selected. Power the
machine off and re-verify drive select
option and cable connections.
DRQ FAILURE The controller either still has data
that was unread or is waiting for
data to write. If this persists, the
controller is probably defective.
BAD BLOCK ON DRIVE These are either unreadable or marked as
DATA CORRECTED ON bad at format time. BE SURE THESE AREAS
DRIVE ARE NOT USED. Use a format utility (WDFMT)
UNCORRECTABLE DATA and enter these areas as bad. If the
ERROR disk contains data, try to relocate the
ID FIELD (address) cluster that contains this area using a
NOT FOUND DOS disk utility. Verify that the drive
type selected in SETUP matches the actual
configuration of the hard drive, and
that a low-level format was performed on
the ENTIRE drive.
ILLEGAL COMMAND The controller was unable to recognize
the command you issued. This could be
caused by incorrect jumper configuration
on controller (check USER'S GUIDES
section of this BBS). Also could be
IF PROBLEMS PERSIST ... 24 hour Technical Support number 1-800-777-4787