PDA

View Full Version : INT 13 Reference



Erik
September 22nd, 2010, 04:43 PM
INT 13 programming interface. Details for each command can be found on
Ralf Brown\'s Interrupt List (http://www.delorie.com/djgpp/doc/rbinter/ix/13/)
INT 13 Supported Functions
align="center" border="1" cellpadding="3" cellspacing="0" width="95%"
|-
| AH = 00h || Reset Disk Drives || No actual ATA command sent to drive, always returns success (see 0dh)
|-
| AH = 01h || Check Drive Status || returns status of last operation
|-
| AH = 02h || Read Sectors From Drive
|-
| AH = 03h || Write Sectors To Drive
|-
| AH = 04h || Verify Sectors
|-
| AH = 08h || Get Drive Parameters
|-
| AH = 09h || Initialize Disk Controller || Not Required. Already done by controller, returns success
|-
| AH = 0Ch || Move Drive Head To Cylinder || No actual ATA command sent to drive, always returns success
|-
| AH = 0Dh || Reset Disk Drives || No means of actually resetting an ATA drive with this controller
|-
| AH = 15h || Read Drive Type
|-
| AH = 19h || Park Heads || Parking is done by the drive automatically

INT 13 Unsupported Functions
These function calls return status in AH=01 and CY flag is set, signaling that the routine is unsupported by XT-IDE BIOS.
align="center" border="1" cellpadding="3" cellspacing="0" width="95%"
|-
| AH = 05h || format track(s) || not used on IDE devices
|-
| AH = 06h || format track(s) & set bad sector map || not used on IDE devices
|-
| AH = 07h || format drive starting at track || not used on IDE devices
|-
| AH = 0Ah || read long || read and return CRC data. Does anyone use this?
|-
| AH = 0Bh || write long || write with CRC data. Does anyone use this?
|-
| AH = 0Eh || read sector buffer (XT only) || no idea what this is supposed to do
|-
| AH = 0Fh || write sector buffer (XT only) || no idea what this is supposed to do
|-
| AH = 10h || check if drive ready || maybe this should be supported? Never seen it used
|-
| AH = 11h || recalibrate drive || not used on IDE devices
|-
| AH = 12h || controller RAM diagnostics || not used on IDE devices
|-
| AH = 13h || Drive Diagnostics || not used on IDE devices
|-
| AH = 14h || perform internal diagnostics || not used on IDE devices
|-
| AH = 16h || floppy only
|-
| AH = 17h || set format type (floppy)
|-
| AH = 18h || set format type (HDD) || not used on IDE devices
|-
| AH = 1Ah || ESDI, unused
|-
| AH = 1Bh || ESDI, unused
|-
| AH = 1Ch || ESDI, unused
|-
| AH = 1Dh || IBM Cache, unused
|-
| AH = 1Eh || unused
|-
| AH = 1Fh || Syquest, unused
|-
| AH = 20h || unused
|-
| AH = 26-40 || unused

INT 13 Future Supported Functions
These function calls currently return status in AH=01 and CY flag is set, signaling that the routine is unsupported by XT-IDE BIOS. Support for these functions may or may not be forthcoming, depending on user requirements
align="center" border="1" cellpadding="3" cellspacing="0" width="95%"
|-
| AH = 21h || read multiple
|-
| AH = 22h || write multiple
|-
| AH = 23h || set features
|-
| AH = 24h || set multiple mode
|-
| AH = 25h || get drive ID data

Enhanced INT 13 Supported Functions
These function calls are used only by operating systems that have Enhanced INT 13 support, such as FreeDOS, MS-DOS 7 (DOS that comes with MS Windows 95 and higher).
EINT13 calls allow for drives up to over 2TB in size.
align="center" border="1" cellpadding="3" cellspacing="0" width="95%"
|-
| AH = 41h || check extensions present
|-
| AH = 42h || read sectors
|-
| AH = 43h || write sectors
|-
| AH = 44h || verify sectors
|-
| AH = 47h || Extended seek || No actual ATA command sent to drive, always returns success
|-
| AH = 48h || get drive parameters

Enhanced INT 13 Unsupported Functions
These function calls return status in AH=01 and CY flag is set, signaling that the routine is unsupported by XT-IDE BIOS.
align="center" border="1" cellpadding="3" cellspacing="0" width="95%"
|-
| AH = 45h || lock/unlock drive || no removable drive support
|-
| AH = 46h || eject drive || no removable drive support
|-
| AH = 49h || removable media eject || no removable drive support
|-
| AH = 4ah-4d || reserved
|-
| AH = 4eh || set hardware configuration || No need to change PIO modes