Outils pour utilisateurs

Outils du site


Interruption 13h - Disks - WIP

[1] : The 1983 version of the “IBM XT BIOS Technical Reference” shows these functions are available for the XT but many other programming references say they aren't available until the AT. This is probably due to misunderstanding the design of the disk BIOS. Upon bootup the hard disk BIOS replaces the default INT 13h diskette handler with the hard disk INT 13h handler.

Most disk BIOS calls use the following parameter scheme:

reg description
AH function request number
AL number of sectors (1-128 dec.)
CH cylinder number (0-1023 dec.)
CL sector number (1-17 dec.)
DH head number (0-15 dec.)
DL drive number (0=A:, 1=2nd floppy, 80h=drive 0, 81h=drive 1)
DL drive number (0=A:, 1=2nd floppy, 80h=C:, 81h=D:)
Note that some programming references use (0-3) as the drive number which represents diskettes only.
ES:BX address of user buffer

and return with:

CF 0 if successful
1 if error
AH status of operation (see INT 13,01)
  • INT 13 diskette read functions should be retried at least 3 times to assure the disk motor has time to spin up to speed
  • physical sector numbers can be converted to and from DOS sector numbers with the following formulas:

DosSector = (sector - 1) + (head * SectorsPerTrack) + (track * SectorsPerTrack * NumHeads)

PhysicalSector = 1 + (DosSector  MOD  SectorsPerTrack)

PhysicalHead = (DosSector / SectorsPerTrack)  MOD  NumHeads

PhysicalTrack = DosSector / (SectorsPerTrack * NumHeads)


back2root/ibm-pc-ms-dos/interrupts/int_13/start.txt · Dernière modification : 2023/01/19 21:49 de frater