INT 13h,  04h (4)        Verify Sectors                                   all

Verifies one or more fixed disk or diskette sectors.

On entry:      AH         04h
AL         Number of sectors to verify
CH         Cylinder number (10-bit value; upper 2 bits
in CL)
CL         Starting sector number
DH         Head number
DL         Drive number

Returns:       AH         Status of operation (See Service 01h)
AL         Number of sectors verified
CF         Set if error, cleared otherwise


Verifies the specified number of sectors starting at the specified
location (head, cylinder, and track) on the disk. The verification
process consists of checking that the sectors can be found and read
(checking address fields) and that the Cyclic Redundancy Check (CRC)
is correct. No memory area is needed for this operation.

Notes:         Values in DL less than 80h specify floppy disks;
values greater than 80h specify fixed disks. For
example, 0 means the first floppy diskette, while
80h means the first fixed disk.

The cylinder number is a ten-bit quantity (0 through
1023). Its most significant two bits are in bits 7
and 6 of CL; the remaining eight bits are in CH. The
starting sector number fits in the low-order portion
(lower 6 bits) of CL.

The value returned in AL (number of sectors
verified) may not give the correct number of
sectors, even though no error occurred while
verifying. Use the results of the Carry flag and AH
(status flag) to determine the status of the

The sectors verified must all be on the same
cylinder and same side for diskettes, while a hard
disk can verify up to 255 sectors at one time.

If an error is encountered verifying a sector, use
Service 0h to reset the drive and retry the
operation. It is recommended that at least 3 retries
be attempted before an error is signalled, since the
error may have resulted from the diskette motor not
being up to speed.

For the AT, XT-286, and PC Convertible, the BIOS
executes INT 15h, Service 90h (Device Busy), for the
diskette (Type = 01h) and the fixed disk (Type =
00h) prior to waiting for the interrupt. INT 15h,
Service 91h (Interrupt Complete), is executed upon
completion. Also diskette operations that require
the diskette motor to be on will call INT 15h,
Service 90 (Device Busy), with the type equal to
"Diskette Drive Motor Start" (Type = FDh). This
allows the system to perform another task while the
drive motor is waiting to get up to speed.

See also: INT 13h, 01h

INT 13h, 04h (4) Verify Sectors all