; INT 13 extended read =
-------------------------------------------------------------------------=
------- =
; Entry:AH - 42h =
=20
; DL - Drive number =
=20
; DS:SI - Disk address packet =
=20
; Exit: carry clear =
=20
; AH - 0 =
=20
; carry set =
=20
; AH - error code =
=20
; This function transfer sectors from =
the device to memory. In the event of an error, =
=20
; the block count field of the disk =
address packet contains the number of good blocks =
=20
; read before the error occurred. =
=20
; =
=20
; DS:SI -> Device address packet =
=
=20
; Offset Type Description =
=
=20
; 0 Byte Packet size in bytes. Shall =
be 10h.
; 1 Byte Reserved, must be 0 =
=20
; 2 Byte Number of blocks to transfer. =
This field has a maximum value of 127 (7Fh).
; 3 Byte Reserved, must be 0 =
=20
; 4 2Word Address of transfer buffer. =
The is the buffer which Read/Write operations will use =20
; to transfer the data. This is a =
32-bit address of the form Seg:Offset.=20
; 8 4word Starting logical block =
address, on the target device, of the data to be transferred. =20
; This is a 64 bit unsigned =
linear address. If the device supports LBA addressing this =20
; value should be passed =
unmodified. If the device does not support LBA addressing =20
; the following formula holds =
true when the address is converted to a CHS value: =20
; LBA =3D (C1 * H0 + H1) * S0 + =
S1 - 1 =20
; where: C1 =3D Selected Cylinder =
Number =20
; H0 =3D Number of Heads (Maximum =
Head Number + 1) =20
; H1 =3D Selected Head Number =
=20
; S0 =3D Maximum Sector Number =
=20
; S1 =3D Selected Sector Number =
=20
INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
AH = 43h
AL = write flags
---v1.0,2.0---
bit 0: verify write
bits 7-1 reserved (0)
---v2.1+ ---
00h,01h write without verify
02h write with verify
DL = drive number
DS:SI -> disk address packet (see #00272)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (see #00234)
disk address packet's block count field set to number of blocks
successfully transferred
Note: the BIOS returns CF set/AH=01h (invalid function) if verify is
requested but not supported