INT 13,4 - Verify Disk Sectors
AH = 04
AL = number of sectors to verify (1-128 dec.)
CH = track/cylinder number (0-1023 dec., see below)
CL = sector number (1-17 dec.)
DH = head number (0-15 dec.)
DL = drive number (0=A:, 1=2nd floppy, 80h=drive 0, 81h=drive 1)
ES:BX = pointer to buffer
on return:
AH = status (see INT 13,STATUS)
AL = number of sectors verified
CF = 0 if successful
= 1 if error
- BIOS disk reads should be retried at least three times and the
controller should be reset upon error detection
- causes controller to calculate the CRC of the disk data and
compare it against the CRC stored in the sector header
- BIOS before 11/15/85 required ES:BX point to a valid buffer
that doesn't cross DMA boundaries. More recent BIOS versions
actually ignore the buffer and the DMA boundary requirement
- use this function to check for valid formatted diskette in a
the specified drive and for drive ready for read
- only the disk number is checked for validity
- the parameters in CX change depending on the number of cylinders;
the track/cylinder number is a 10 bit value taken from the 2 high
order bits of CL and the 8 bits in CH (low order 8 bits of track):
|F|E|D|C|B|A|9|8|7|6|5-0| CX
| | | | | | | | | | `----- sector number
| | | | | | | | `--------- high order 2 bits of track/cylinder
`------------------------ low order 8 bits of track/cyl number
- see DETECTING