Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Interrupt 26h
 Summary                                   Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     All registers except the segment registers may be destroyed.
 
     When this function returns, the CPU flags originally pushed onto
     the stack by the Int 26h instruction are still on the stack. The
     stack must be cleared by a POPF or ADD SP,2 to prevent
     uncontrolled stack growth and to make accessible any other values
     that were pushed on the stack before the call to Int 26h.
 
     Logical sector numbers are obtained by numbering each disk sector
     sequentially from track 0, head 0, sector 1, and continuing until
     the last sector on the disk is counted. The head number is
     incremented before the track number. Logically adjacent sectors
     may not be physically adjacent, due to interleaving that occurs at
     the device-driver level for some disk types.
 
     The error code is interpreted as follows: The lower byte (AL) is
     the same error code that is returned in the lower byte of DI when
     an Int 24h is issued. The upper byte (AH) contains:
 
     Error     Description
 
     80h       If attachment failed to respond
     40h       If seek operation failed
     20h       If controller failed
     10h       If data error (bad CRC)
     08h       If direct memory access (DMA) failed
     04h       If requested sector not found
     03h       If write-protect fault
     02h       If bad address mark
     01h       If bad command
 
     [Version 4.0+]
     When accessing partitions larger than 32 megabytes under MS-DOS
     version 4.0, this function uses a parameter block with the
     following format:
 
     Bytes       Description
 
     00h-03h     32-bit sector number
     04h-05h     Number of sectors to read
     06h-07h     Offset of buffer
     08h-09h     Segment of buffer
                                    -♦-