Interrups | Categories | Contents |
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
Interrups | Categories | Contents |