1304
Category: BIOS
INT 13 - DISK - VERIFY DISK SECTOR(S)
AH = 04h
AL = number of sectors to verify (must be nonzero)
CH = low eight bits of cylinder number
CL = sector number 1-63 (bits 0-5)
high two bits of cylinder (bits 6-7, hard disk only)
DH = head number
DL = drive number (bit 7 set for hard disk)
ES:BX -> data buffer (PC,XT,AT with BIOS prior to 1985/11/15)
Return: CF set on error
CF clear if successful
AH = status (see #00234)
AL = number of sectors verified
Notes: errors on a floppy may be due to the motor failing to spin up quickly
enough (timeout error 80h); the write should be retried at least
three times, resetting the disk with AH=00h between attempts
on floppys, the operation should also be retried on media change
(06h) detection.
this function does not compare the disk with memory, it merely
checks whether the sector's stored CRC matches the data's actual CRC
the IBM AT BIOS and many other BIOSes use only the low four bits of
DH (head number) since the WD-1003 controller which is the standard
AT controller (and the controller that IDE emulates) only supports
16 heads
AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
than 1024 cylinders by placing bits 10 and 11 of the cylinder number
into bits 6 and 7 of DH
BUG: some Epson ROM BIOSes sometimes have problems properly handling this
function. The workaround is to reset the disk (INT 13/AH=00h) before
the call.
SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h