Int 13/AH=04h

lup.gif ldown.gif Interrups Categories Contents

rbline.gif

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.

See Also: AH=02h - AH=44h - INT 4D/AH=04h - INT 4D/AH=06h

Category: Bios - Int 13h - D

rbline.gif

lup.gif ldown.gif Interrups Categories Contents