INT 13H 02H: Read Sectors
[PC] [XT] [AT]
Expects: AH 02H
AL sector count (see notes)
CH track (cylinder) number (0-n) ◄═╗
CL sector number (1-n) ◄═══════════╩══ (see notes)
DL drive: 0-3=diskette; 80H-81H=hard disk
DH head number
ES:BX caller's buffer address
0:078 Diskette Parameter Table (for diskette operations)
0:104 Hard Disk Parameter Table (for hard disk operations)
──────────────────────────────────────────────────────────────────
Returns: AH BIOS disk error code if CF is set to CY
ES:BX caller's buffer will contain requested data (if no error)
──────────────────────────────────────────────────────────────────
Info: This reads the specified sectors into memory at ES:BX.
Notes: ■ CX is actually used as a 6-bit and 10-bit field to specify
sector and cylinder (this is important on hard disks with more
than 256 cylinders). CX is laid out as:
┌────── CH ─────┬───── CL ──────┐
1 1 1 1 1 1
╓5┬4┬3┬2┬1┬0┬9┬8╥7┬6┬5┬4┬3┬2┬1┬0╖
CX: ║c c c c c c c c C c S s s s s s║
╙─┴─┴─┴─┴─┴─┴─┴─╨─┴─┴─┴─┴─┴─┴─┴─╜
╚═╩═══► high bits of cylinder number
Note that this imposes a "hard stop" low-level limit on the
number of cylinders on a disk (1024). Some BIOSs may support
larger values by simulating additional heads and translating
each request.
■ On diskette reads, this function stops a multi-sector read at
the last sector in a track.
■ On hard disks (with XT and AT BIOSes), a multi-sector read
continues on the next higher head of the same cylinder and if
necessary, advances to the next higher cylinder on the first
head.
■ Parameters are the same as for INT 13H 03H (write sectors).
■ Use INT 13H 0aH (extended read to read data+ECC).
See Also: INT 25H (read absolute sectors)
DOS fn 440dH 61H (IOCTL read track)
INT 13H: BIOS Disk I/O
ROM-BIOS Functions
-♦-