back2root:ibm-pc-ms-dos:interrupts:int_13:int_13_02
INT 0x13 - 0x02 - Read Disk Sectors
Request/Call:
reg | value | descr |
AH | 0x02 | |
AL | var | number of sectors to read (1-128 dec.) |
CH | var | track/cylinder number (0-1023 dec., see below) |
CL | var | sector number (1-17 dec.) |
DH | var | head number (0-15 dec.) |
DL | var | drive number (0=A:, 1=2nd floppy, 80h=drive 0, 81h=drive 1) |
ES:BX | var | pointer to buffer |
Return:
reg | descr |
CF | 0 : succesfull
1 : error |
AH | status (see INT 13,01) |
AL | number of sectors read |
BIOS disk reads should be retried at least three times and the controller should be reset upon error detection
be sure ES:BX does not cross a 64K segment boundary or a DMA boundary error will occur
many programming references list only floppy disk register values
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):
bit | descr |
0-5 | sector number |
6-7 | high order 2 bits of track/cylinder |
8-15 | low order 8 bits of track/cyl number |
Back
back2root/ibm-pc-ms-dos/interrupts/int_13/int_13_02.txt · Dernière modification : 2023/01/19 21:55 de frater