INT 13,A - Read Long Sector (XT & newer)
AH = 0A AL = number of sectors (1-121 dec.) CH = track number (0-1023 dec., see below) CL = sector number (1-17 dec., see below) DH = head number (0-15 dec.) DL = fixed drive number (80h=drive 0, 81h=drive 1) ES:BX = address of buffer on return: AH = status (see INT 13,STATUS) AL = number of sectors actually transferred 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 - many good programming references indicate this function is only available on the AT, PS/2 and later systems, but all hard disk systems since the XT have this function available - reads regular data sectors (128-1024 bytes) with an additional 4 byte ECC code included - a DMA boundary error will occur if the buffer at ES:BX crosses a 64K segment boundary - 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│4│3│2│1│0│ CX │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─┴──── sector number │ │ │ │ │ │ │ │ └─┴──────────── high order 2 bits of track number └─┴─┴─┴─┴─┴─┴─┴──────────── low order 8 bits of track number - see INT 13,2