Interrupt List Release 61 Last change 16jul00
Copyright (c) 1989-1999,2000 Ralf Brown
Index for interrupt INT 13

Table of Contents by Order
1300 - INT 13 - DISK - RESET DISK SYSTEM
1301 - INT 13 - DISK - GET STATUS OF LAST OPERATION
1302 - INT 13 - DISK - READ SECTOR(S) INTO MEMORY
1303 - INT 13 - DISK - WRITE DISK SECTOR(S)
1304 - INT 13 - DISK - VERIFY DISK SECTOR(S)
1305 - INT 13 - FLOPPY - FORMAT TRACK
1305 - INT 13 - FIXED DISK - FORMAT TRACK
1305 - INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
13057FSI324D - INT 13 - 2M - FORMAT TRACK
1306 - INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
1306 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
1306 - INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
1306 - INT 13 - V10DISK.SYS - READ DELETED SECTORS
1307 - INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
1307 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
1307 - INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
1308 - INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
1308 - INT 13 - V10DISK.SYS - SET FORMAT
130800DLF0 - INT 13 - SecureDrive - INSTALLATION CHECK
1309 - INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
130A - INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
130B - INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
130C - INT 13 - HARD DISK - SEEK TO CYLINDER
130D - INT 13 - HARD DISK - RESET HARD DISKS
130E - INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
130F - INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
1310 - INT 13 - HARD DISK - CHECK IF DRIVE READY
1311 - INT 13 - HARD DISK - RECALIBRATE DRIVE
1312 - INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
1312 - INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
1312 - INT 13 - SyQuest - START/STOP SCSI DISK
1313 - INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
1313 - INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
1314 - INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
1315 - INT 13 - DISK - GET DISK TYPE (XT 1986/1/10 or later,XT286,AT,PS)
1316 - INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1986/1/10 or later,XT286,AT,PS)
1317 - INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
131700 - INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
1318 - INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
1318 - INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
1318--CX5055 - INT 13 - PU_1700.COM - INSTALLATION CHECK
1318--CXD2C9 - INT 13 - XDF.COM - API
1319 - INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
1319 - INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
131A - INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
131A - INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
131B - INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
131B - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
131C - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
131C - INT 13 U - ESDI FIXED DISK - ???
131C08 - INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
131C09 - INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
131C0A - INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
131C0B - INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
131C0C - INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
131C0D - INT 13 U - ESDI FIXED DISK - ???
131C0E - INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
131C0F - INT 13 U - ESDI FIXED DISK - ???
131C12 - INT 13 U - ESDI FIXED DISK - ???
131D - INT 13 - IBMCACHE.SYS - CACHE STATUS
131F - INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
1320 - INT 13 - DISK - ??? (Western Digital "Super BIOS")
1320 - INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
1320 - INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
1321 - INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
1321 - INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
1322 - INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
1322 - INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
1323 - INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
1323 - INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
1324 - INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
1324 - INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
1325 - INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
1325 - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
1326 - INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
1327--BX0000 - INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
1328 - INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
1329 - INT 13 U - QUICKCACHE II v4.20 - NOP
132A - INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
132B - INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
132C - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
132D - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
132E - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
132F - INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
1330 - INT 13 u - QUICKCACHE II v4.20 - GET INFO
1331 - INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
1332 - INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
1333 - INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
1334 - INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
1335 - INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
1336 - INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
1337 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
1338 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
1339 - INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
133A - INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
133B - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
133C - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
133D - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
133E - INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
133F - INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
1340 - INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
1341--BX55AA - INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
1341 - INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
1342 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
134257DX1234 - INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
1343 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
1344 - INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
1345 - INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
1346 - INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
1347 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
1348 - INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
1349 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
134A - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
134B00 - INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
134B01 - INT 13 - Bootable CD-ROM - GET STATUS
134C - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
134D00 - INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
134E - INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION
135001 - INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
135001 - INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
135342CX0001 - INT 13 - ScanBoot - INSTALLATION CHECK
135501 - INT 13 - Seagate ST01/ST02 - Inquiry
135502 - INT 13 - Seagate ST01/ST02 - RESERVED
135503 - INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
135504 - INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
135504 - INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
135505 - INT 13 - Seagate - ??? - PARK HEADS
135505 - INT 13 - Seagate ST01/ST02 - PARK HEADS
135506 - INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
135507 - INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
135514 - INT 13 U - Seagate - ???
135515 - INT 13 U - Seagate - PARK HEADS???
1359 - INT 13 - SyQuest - Generic SCSI pass through
1370 - INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
1375 - INT 13 - ???
1376 - INT 13 - ???
137B00 - INT 13 - NOW! v3.05 - GET INFORMATION
137B01 - INT 13 - NOW! v3.05 - ???
137B02 - INT 13 - NOW! v3.05 - SET INFORMATION
137B03 - INT 13 - NOW! v3.05 - ???
137B04 - INT 13 - NOW! v3.05 - ???
137B05 - INT 13 - NOW! v3.05 - GET DISK ACCESSES???
137B06 - INT 13 - NOW! v3.05 - GET ???
137B07 - INT 13 - NOW! v3.05 - GET ???
137B08 - INT 13 - NOW! v3.05 - ???
1380--CX6572 - INT 13 - FAST! v4.02+ - API
138001CX6572 - INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
138006CX6572 - INT 13 - FAST! v4.02+ - INSTALLATION CHECK
138007CX6572 - INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
1381--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1382--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1383--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1384--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1385--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
1386--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1387--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1388--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
1389--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
138A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
138EED - INT 13 - HyperDisk v4.01+ - ???
138EEE - INT 13 - HyperDisk v4.01+ - ???
138EEF - INT 13 - HyperDisk v4.01+ - ???
1392--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1393--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1394--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1395--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1396--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1397--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1398--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
1399--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139B--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139C--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
139D--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
13A0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
13A1--SI4358 - INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
13A2--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
13A3--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
13A4--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
13A5--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
13A6--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
13A7--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
13A759 - INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
13A8--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
13A9--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
13AA--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AB--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AC--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AD - INT 13 - Priam HARD DISK CONTROLLER???
13AD--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
13AE--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
13B0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
13BF00 - INT 13 - Mylex/Adaptec??? - ???
13E000 - INT 13 - XBIOS - COMMAND
13EC00 - INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
13EE - INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
13EF - INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
13F2 - INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
13F9 - INT 13 - SWBIOS - INSTALLATION CHECK
13FA--DX5945 - INT 13 - PC Tools v8+ VSAFE, VWATCH - API
13FD50 - INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
13FE - INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
13FF - INT 13 - EZ-Drive - INSTALLATION CHECK
13FF - INT 13 - IBM SurePath BIOS - Officially "Private" Function
13FFFFBHAA - INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE


1300 - INT 13 - DISK - RESET DISK SYSTEM
INT 13 - DISK - RESET DISK SYSTEM
	AH = 00h
	DL = drive (if bit 7 is set both hard disks and floppy disks reset)
Return: AH = status (see #00234)
	CF clear if successful (returned AH=00h)
	CF set on error
Note:	forces controller to recalibrate drive heads (seek to track 0)
	for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
	  both the master drive and the slave drive respond to the Reset
	  function that is issued to either drive
SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
SeeAlso: INT 56"Tandy 2000",MEM 0040h:003Eh

Top
1301 - INT 13 - DISK - GET STATUS OF LAST OPERATION
INT 13 - DISK - GET STATUS OF LAST OPERATION
	AH = 01h
	DL = drive (bit 7 set for hard disk)
Return: CF clear if successful (returned status 00h)
	CF set on error
	AH = status of previous operation (see #00234)
Note:	some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
	  status in both AH and AL
SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0041h,MEM 0040h:0074h

(Table 00234)
Values for disk operation status:
 00h	successful completion
 01h	invalid function in AH or invalid parameter
 02h	address mark not found
 03h	disk write-protected
 04h	sector not found/read error
 05h	reset failed (hard disk)
 05h	data did not verify correctly (TI Professional PC)
 06h	disk changed (floppy)
 07h	drive parameter activity failed (hard disk)
 08h	DMA overrun
 09h	data boundary error (attempted DMA across 64K boundary or >80h sectors)
 0Ah	bad sector detected (hard disk)
 0Bh	bad track detected (hard disk)
 0Ch	unsupported track or invalid media
 0Dh	invalid number of sectors on format (PS/2 hard disk)
 0Eh	control data address mark detected (hard disk)
 0Fh	DMA arbitration level out of range (hard disk)
 10h	uncorrectable CRC or ECC error on read
 11h	data ECC corrected (hard disk)
 20h	controller failure
 31h	no media in drive (IBM/MS INT 13 extensions)
 32h	incorrect drive type stored in CMOS (Compaq)
 40h	seek failed
 80h	timeout (not ready)
 AAh	drive not ready (hard disk)
 B0h	volume not locked in drive (INT 13 extensions)
 B1h	volume locked in drive (INT 13 extensions)
 B2h	volume not removable (INT 13 extensions)
 B3h	volume in use (INT 13 extensions)
 B4h	lock count exceeded (INT 13 extensions)
 B5h	valid eject request failed (INT 13 extensions)
 B6h	volume present but read protected (INT 13 extensions)
 BBh	undefined error (hard disk)
 CCh	write fault (hard disk)
 E0h	status register error (hard disk)
 FFh	sense operation failed (hard disk)
SeeAlso: #M0022

Top
1302 - INT 13 - DISK - READ SECTOR(S) INTO MEMORY
INT 13 - DISK - READ SECTOR(S) INTO MEMORY
	AH = 02h
	AL = number of sectors to read (must be nonzero)
	CH = low eight bits of cylinder number
	CL = sector number 1-63 (bits 0-5)
	     high two bits of cylinder (bits 6-7, hard disk only)
	DH = head number
	DL = drive number (bit 7 set for hard disk)
	ES:BX -> data buffer
Return: CF set on error
	    if AH = 11h (corrected ECC error), AL = burst length
	CF clear if successful
	AH = status (see #00234)
	AL = number of sectors transferred (only valid if CF set for some
	      BIOSes)
Notes:	errors on a floppy may be due to the motor failing to spin up quickly
	  enough; the read should be retried at least three times, resetting
	  the disk with AH=00h between attempts
	most BIOSes support "multitrack" reads, where the value in AL
	  exceeds the number of sectors remaining on the track, in which
	  case any additional sectors are read beginning at sector 1 on
	  the following head in the same cylinder; the MSDOS CONFIG.SYS command
	  MULTITRACK (or the Novell DOS DEBLOCK=) can be used to force DOS to
	  split disk accesses which would wrap across a track boundary into two
	  separate calls
	the IBM AT BIOS and many other BIOSes use only the low four bits of
	  DH (head number) since the WD-1003 controller which is the standard
	  AT controller (and the controller that IDE emulates) only supports
	  16 heads
	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
	under Windows95, a volume must be locked (see INT 21/AX=440Dh/CX=084Bh)
	  in order to perform direct accesses such as INT 13h reads and writes
	all versions of MS-DOS (including MS-DOS 7 [Windows 95]) have a bug
	  which prevents booting on hard disks with 256 heads (FFh), so many
	  modern BIOSes provide mappings with at most 255 (FEh) heads
	some cache drivers flush their buffers when detecting that DOS is
	  bypassed by directly issuing INT 13h from applications.  A dummy
	  read can be used as one of several methods to force cache
	  flushing for unknown caches (e.g. before rebooting).
BUGS:	When reading from floppies, some AMI BIOSes (around 1990-1991) trash
	  the byte following the data buffer, if it is not arranged to an even
	  memory boundary.  A workaround is to either make the buffer word
	  aligned (which may also help to speed up things), or to add a dummy
	  byte after the buffer.
	MS-DOS may leave interrupts disabled on return from this function.
	Apparently some BIOSes or intercepting resident software have bugs
	  that may destroy DX on return or not properly set the Carry flag.
	  At least some Microsoft software frames calls to this function with
	  PUSH DX, STC, INT 13h, STI, POP DX.
	on the original IBM AT BIOS (1984/01/10) this function does not disable
	  interrupts for harddisks (DL >= 80h).	 On these machines the MS-DOS/
	  PC DOS IO.SYS/IBMBIO.COM installs a special filter to bypass the
	  buggy code in the ROM (see CALL F000h:211Eh)
SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",AH=42h"IBM"
SeeAlso: INT 21/AX=440Dh/CX=084Bh,INT 4D/AH=02h

Top
1303 - INT 13 - DISK - WRITE DISK SECTOR(S)
INT 13 - DISK - WRITE DISK SECTOR(S)
	AH = 03h
	AL = number of sectors to write (must be nonzero)
	CH = low eight bits of cylinder number
	CL = sector number 1-63 (bits 0-5)
	     high two bits of cylinder (bits 6-7, hard disk only)
	DH = head number
	DL = drive number (bit 7 set for hard disk)
	ES:BX -> data buffer
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
	AL = number of sectors transferred
	      (only valid if CF set for some BIOSes)
Notes:	errors on a floppy may be due to the motor failing to spin up quickly
	  enough; the write should be retried at least three times, resetting
	  the disk with AH=00h between attempts
	most BIOSes support "multitrack" writes, where the value in AL
	  exceeds the number of sectors remaining on the track, in which
	  case any additional sectors are written beginning at sector 1 on
	  the following head in the same cylinder; the CONFIG.SYS command
	  MULTITRACK can be used to force DOS to split disk accesses which
	  would wrap across a track boundary into two separate calls
	the IBM AT BIOS and many other BIOSes use only the low four bits of
	  DH (head number) since the WD-1003 controller which is the standard
	  AT controller (and the controller that IDE emulates) only supports
	  16 heads
	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
	under Windows95, an application must issue a physical volume lock on
	  the drive via INT 21/AX=440Dh before it can successfully write to
	  the disk with this function
SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",AH=43h"IBM"
SeeAlso: INT 21/AX=440Dh"DOS 3.2+",INT 4D/AH=03h

Top
1304 - INT 13 - DISK - VERIFY DISK SECTOR(S)
INT 13 - DISK - VERIFY DISK SECTOR(S)
	AH = 04h
	AL = number of sectors to verify (must be nonzero)
	CH = low eight bits of cylinder number
	CL = sector number 1-63 (bits 0-5)
	     high two bits of cylinder (bits 6-7, hard disk only)
	DH = head number
	DL = drive number (bit 7 set for hard disk)
	ES:BX -> data buffer (PC,XT,AT with BIOS prior to 1985/11/15)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
	AL = number of sectors verified
Notes:	errors on a floppy may be due to the motor failing to spin up quickly
	  enough (timeout error 80h); the write should be retried at least
	  three times, resetting the disk with AH=00h between attempts
	on floppys, the operation should also be retried on media change
	  (06h) detection.
	this function does not compare the disk with memory, it merely
	  checks whether the sector's stored CRC matches the data's actual CRC
	the IBM AT BIOS and many other BIOSes use only the low four bits of
	  DH (head number) since the WD-1003 controller which is the standard
	  AT controller (and the controller that IDE emulates) only supports
	  16 heads
	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
BUG:	some Epson ROM BIOSes sometimes have problems properly handling this
	  function. The workaround is to reset the disk (INT 13/AH=00h) before
	  the call.
SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h

Top
1305 - INT 13 - FLOPPY - FORMAT TRACK
INT 13 - FLOPPY - FORMAT TRACK
	AH = 05h
	AL = number of sectors to format
	CH = track number
	DH = head number
	DL = drive number
	ES:BX -> address field buffer (see #00235)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
Notes:	on AT or higher, call AH=17h first
	the number of sectors per track is read from the diskette parameter
	  table pointed at by INT 1E
BUG:	some old Compaq BIOSes have a bug when attempting to call this function
	  from Windows Standard Mode with EMM386 loaded.  A possible workaround
	  is to call this function from Real Mode e.g. through DPMI function
	  "Call Real Mode function with FAR return" (see INT 31/AX=0301h).
SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E

Format of floppy format address field buffer entry (one per sector in track):
Offset	Size	Description	(Table 00235)
 00h	BYTE	track number
 01h	BYTE	head number (0-based)
 02h	BYTE	sector number
 03h	BYTE	sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)

Top
1305 - INT 13 - FIXED DISK - FORMAT TRACK
INT 13 - FIXED DISK - FORMAT TRACK
	AH = 05h
	AL = interleave value (XT-type controllers only)
	ES:BX -> 512-byte format buffer
		the first 2*(sectors/track) bytes contain F,N for each sector
		   F = sector type
			00h for good sector
			20h to unassign from alternate location
			40h to assign to alternate location
			80h for bad sector
		   N = sector number
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = high bits of cylinder number (bits 7,6)
	DH = head
	DL = drive
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
Notes:	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
	for XT-type controllers on an AT or higher, AH=0Fh should be called
	  first
	the IBM AT BIOS and many other BIOSes use only the low four bits of
	  DH (head number) since the WD-1003 controller which is the standard
	  AT controller (and the controller that IDE emulates) only supports
	  16 heads
	not all controller support sector types 20h and 40h
	under Windows95, an application must issue a physical volume lock on
	  the drive via INT 21/AX=440Dh before it can successfully write to
	  the disk with this function
SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah

Top
1305 - INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
	AH = 05h
	DL = hard drive ID
	ES:BX -> mode select data (see #00236)
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
Notes:	this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
	  format a SCSI disk with the desired parameters
	the mode select data below is from the SCSI-1 specification
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h

Format of Future Domain SCSI mode select data:
Offset	Size	Description	(Table 00236)
 00h	BYTE	number of bytes of remaining data (12 + vendor unique length)
 01h	BYTE	reserved (0)
 02h	BYTE	medium type (0 for hard disk)
 03h	BYTE	reserved (0)
 04h	BYTE	block descriptor length (8)
 05h	BYTE	density code (0 for hard disk)
 06h  3 BYTEs	(big-endian) number of blocks (000000h for entire disk)
 09h	BYTE	reserved (0)
 0Ah  3 BYTEs	(big-endian) block length (512 standard, or 256)
 0Dh	???	vendor-specific parameter bytes (optional)

Top
13057FSI324D - INT 13 - 2M - FORMAT TRACK
INT 13 - 2M - FORMAT TRACK
	AX = 057Fh
	SI = 324Dh ("2M")
	CH = track number
	DH = head number
	DL = drive number
	ES:BX -> boot sector of future 2M diskette
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
Program: 2M is a TSR developed by Ciriaco GarcĀ”a de Celis to support
	  non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
	  and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
InstallCheck: must search for a "CiriSOFT:2M:1.3" or "CiriSOFT:2MX:3.0" or
	  similar (recomended ":2M:", ":2MX:", or ":2MB:" substrings) in the
	  CiriSOFT TSR interface
Notes:	it is not necessary to call AH=17h or AH=18h first (will be ignored)
	the diskette format must always begin on cylinder 0 head 0
	the boot sector can be obtained from an already-formatted 2M diskette
	  (by calling AH=02h with head number 00h in 2M v1.x and with head
	  number 80h for 2M v2+)
	since 2M v2.0, the BOOT sector is emulated using the first physical
	  sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
	  diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
	  FAT1) of 2M, in order to read the SuperBOOT code, head number must be
	  80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
	  This lets diskcopy programs format 2M target diskettes copying
	  SuperBOOT code. If the target diskette is already 2MF formatted
	  (containing boot code) this trick it is not necessary.
	when using STV technology (offset 65 of boot sector equal to 1) it is
	  necessary to write the full track before formatting (except track 0
	  side 0) to complete the format and skip future CRC errors on read; in
	  track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
	  may do a format-write-verify sequential phases to improve performance
SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"

Top
1306 - INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
	AH = 06h
	AL = interleave value
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = sector number
	DH = head
	DL = drive
Return: AH = status code (see #00234)
Note:	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
SeeAlso: AH=05h"FIXED",AH=07h"FIXED"

Top
1306 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
	AH = 06h
	AL = interleave
	     (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
	DL = hard drive ID
	DH = defect list info (see #00237)
	ES:BX -> defect table A, B or C (see #00238,#00239,#00240)
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
Notes:	block addresses must be in ascending order (for table B, cylinder is
	  most significant, byte from index least significant; for table C,
	  cylinder is most significant, sector number least significant)
	table B defect bytes from index of FFFFFFFFh indicates that the entire
	  track shall be reassigned
	table C defect sector number of FFFFFFFFh indicates that the entire
	  track shall be reassigned
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"

Bitfields for Future Domain SCSI defect list info:
Bit(s)	Description	(Table 00237)
 7-5	drive LUN
 4	defect list is available
 3	defect list is complete (erase drive's defect list)
 2-0	defect table format
	(000=use defect table A, 100=use defect table B,
	 101=use defect table C)

Format of Future Domain SCSI defect table A:
Offset	Size	Description	(Table 00238)
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	(big-endian) defect list length (4*number of defects)
 06h  4 DWORDs	(big-endian) defect block addresses

Format of Future Domain SCSI defect table B:
Offset	Size	Description	(Table 00239)
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	(big-endian) defect list length (8*number of defects)
 06h 8N BYTEs	defect list [array] (see #00241)

Format of Future Domain SCSI defect table C:
Offset	Size	Description	(Table 00240)
 00h	WORD	number of bytes remaining in table
 02h	BYTE	reserved (0)
 03h	BYTE	reserved (0)
 04h	WORD	(big-endian) defect list length (8*number of defects)
 06h 8N BYTEs	defect list [array] (see #00241)

Format of Future Domain SCSI defect list entry:
Offset	Size	Description	(Table 00241)
 00h  3 BYTEs	(big-endian) cylinder number of defect
 03h	BYTE	head number of defect
 04h	DWORD	(big-endian) defect bytes from index

Top
1306 - INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
	AH = 06h
Return: AH = status code (see #00234)
	CF clear if successful
	    AL = first drive supported
		(80h nonconcurrent operation, 81h concurrent operation)
	CF set on error
Desc:	determine the number of the first supported SCSI drive
Note:	the return value is 80h when two SCSI drives are supported, 81h if
	  only one SCSI drive is installed
SeeAlso: AH=08h"PC",#00732 at INT 1A/AX=B102h

Top
1306 - INT 13 - V10DISK.SYS - READ DELETED SECTORS
INT 13 - V10DISK.SYS - READ DELETED SECTORS
	AH = 06h
	AL = number of sectors
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = sector number
	DH = head
	DL = drive
	ES:BX -> buffer
Return: AH = status code (see #00234)
Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
SeeAlso: AH=02h,AH=07h"V10DISK.SYS"

Top
1307 - INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
	AH = 07h
	AL = interleave value (XT only)
	ES:BX = 512-byte format buffer (see AH=05h)
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = sector number
	DH = head
	DL = drive
Return: AH = status code (see #00234)
Note:	AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
	  than 1024 cylinders by placing bits 10 and 11 of the cylinder number
	  into bits 6 and 7 of DH
SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah

Top
1307 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
	AH = 07h
	AL = interleave (0 = default, 1 = consecutive sectors,
	       2 - 255 = vendor unique)
	DL = hard drive ID
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"

Top
1307 - INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
	AH = 07h
	AL = number of sectors
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = sector number
	DH = head
	DL = drive
	ES:BX -> buffer
Return: AH = status code (see #00234)
Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
SeeAlso: AH=03h,AH=06h"V10DISK.SYS"

Top
1308 - INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
	AH = 08h
	DL = drive (bit 7 set for hard disk)
	ES:DI = 0000h:0000h to guard against BIOS bugs
Return: CF set on error
	    AH = status (07h) (see #00234)
	CF clear if successful
	    AH = 00h
	    AL = 00h on at least some BIOSes
	    BL = drive type (AT/PS2 floppies only) (see #00242)
	    CH = low eight bits of maximum cylinder number
	    CL = maximum sector number (bits 5-0)
		 high two bits of maximum cylinder number (bits 7-6)
	    DH = maximum head number
	    DL = number of drives
	    ES:DI -> drive parameter table (floppies only)
Notes:	may return successful even though specified drive is greater than the
	  number of attached drives of that type (floppy/hard); check DL to
	  ensure validity
	for systems predating the IBM AT, this call is only valid for hard
	  disks, as it is implemented by the hard disk BIOS rather than the
	  ROM BIOS
	the IBM ROM-BIOS returns the total number of hard disks attached
	  to the system regardless of whether DL >= 80h on entry.
	Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
	  but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
	may indicate only two drives present even if more are attached; to
	  ensure a correct count, one can use AH=15h to scan through possible
	  drives
	Reportedly some Compaq BIOSes with more than one hard disk controller
	  return only the number of drives DL attached to the corresponding
	  controller as specified by the DL value on entry.  However, on
	  Compaq machines with "COMPAQ" signature at F000h:FFEAh,
	  MS-DOS/PC DOS IO.SYS/IBMBIO.COM call INT 15/AX=E400h and 
	  INT 15/AX=E480h to enable Compaq "mode 2" before retrieving the count
	  of hard disks installed in the system (DL) from this function.
	the maximum cylinder number reported in CX is usually two less than
	  the total cylinder count reported in the fixed disk parameter table
	  (see INT 41h,INT 46h) because early hard disks used the last cylinder
	  for testing purposes; however, on some Zenith machines, the maximum
	  cylinder number reportedly is three less than the count in the fixed
	  disk parameter table.
	for BIOSes which reserve the last cylinder for testing purposes, the
	  cylinder count is automatically decremented
	on PS/1s with IBM ROM DOS 4, nonexistent drives return CF clear,
	  BX=CX=0000h, and ES:DI = 0000h:0000h
	machines with lost CMOS memory may return invalid data for floppy
	  drives. In this situation CF is cleared, but AX,BX,CX,DX,DH,DI,
	  and ES contain only 0.  At least under some circumstances, MS-DOS/
	  PC DOS IO.SYS/IBMBIO.COM just assumes a 360 KB floppy if it sees
	  CH to be zero for a floppy.
	the PC-Tools PCFORMAT program requires that AL=00h before it will
	  proceed with the formatting
	if this function fails, an alternative way to retrieve the number
	  of floppy drives installed in the system is to call INT 11h.
	In fact, the MS-DOS/PC-DOS IO.SYS/IBMBIO.COM attempts to get the
	  number of floppy drives installed from INT 13/AH=08h, when INT 11h
	  AX bit 0 indicates there are no floppy drives installed. In addition
	  to testing the CF flag, it only trusts the result when the number of
	  sectors (CL preset to zero) is non-zero after the call.
BUGS:	several different Compaq BIOSes incorrectly report high-numbered
	  drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
	  same geometry as drive 80h; as a workaround, scan through disk
	  numbers, stopping as soon as the number of valid drives encountered
	  equals the value in 0040h:0075h
	a bug in Leading Edge 8088 BIOS 3.10 causes the DI,SI,BP,DS, and ES
	  registers to be destroyed
	some Toshiba BIOSes (at least before 1995, maybe some laptops???
	  with 1.44 MB floppies) have a bug where they do not set the ES:DI
	  vector even for floppy drives. Hence these registers should be
	  preset with zero before the call and checked to be non-zero on
	  return before using them.  Also it seems these BIOSes can return
	  wrong info in BL and CX, as S/DOS 1.0 can be configured to preset
	  these registers as for an 1.44 MB floppy.
	the PS/2 Model 30 fails to reset the bus after INT 13/AH=08h and
	  INT 13/AH=15h. A workaround is to monitor for these functions
	  and perform a transparent INT 13/AH=01h status read afterwards.
	  This will reset the bus. The MS-DOS 6.0 IO.SYS takes care of
	  this by installing a special INT 13h interceptor for this purpose.
	AD-DOS may leave interrupts disabled on return from this function.
	Some Microsoft software explicitly sets STI after return.
SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E
SeeAlso: INT 41"HARD DISK 0"

(Table 00242)
Values for diskette drive type:
 01h	360K
 02h	1.2M
 03h	720K
 04h	1.44M
 05h	??? (reportedly an obscure drive type shipped on some IBM machines)
	2.88M on some machines (at least AMI 486 BIOS)
 06h	2.88M
 10h	ATAPI Removable Media Device

Top
1308 - INT 13 - V10DISK.SYS - SET FORMAT
INT 13 - V10DISK.SYS - SET FORMAT
	AH = 08h
	AL = number of sectors
	CH = cylinder number (bits 8,9 in high bits of CL)
	CL = sector number
	DH = head
	DL = drive
Return: AH = status code (see #00234)
Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
Note:	details not available
SeeAlso: AH=03h,AH=06h"V10DISK.SYS"

Top
130800DLF0 - INT 13 - SecureDrive - INSTALLATION CHECK
INT 13 - SecureDrive - INSTALLATION CHECK
	AX = 08000h
	DL = F0h
Return: AX = EDCBh for version 1.0-1.2
	AX = EDCCh for version 1.3
	CX = code segment
	DX = data address within code segment
Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
	  an encrypted partition on your harddisk.

Top
1309 - INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
	AH = 09h
	DL = drive (80h for first, 81h for second)
Return: CF clear if successful
	CF set on error
	AH = status (see #00234)
Notes:	on the PC and XT, this function uses the parameter table pointed at by
	  INT 41
	on the AT and later, this function uses the parameter table pointed at
	  by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
	  DL=81h
SeeAlso: INT 41"HARD DISK 0",INT 46"HARD DISK 1"

Top
130A - INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
	AH = 0Ah
	AL = number of sectors (01h may be only value supported)
	CH = low eight bits of cylinder number
	CL = sector number (bits 5-0)
	     high two bits of cylinder number (bits 7-6)
	DH = head number
	DL = drive number (80h = first, 81h = second)
	ES:BX -> data buffer
Return: CF clear if successful
	CF set on error
	AH = status (see #00234)
	AL = number of sectors transferred
Notes:	this function reads in four to seven bytes of error-correcting code
	  along with each sector's worth of information
	data errors are not automatically corrected, and the read is aborted
	  after the first sector with an ECC error
	used for diagnostics only on PS/2 systems; IBM officially classifies
	  this function as optional
BUG:	on the original IBM AT BIOS (1984/01/10) this function does not disable
	  interrupts for harddisks (DL >= 80h). On these machines the MS-DOS/
	  PC DOS IO.SYS/IBMBIO.COM installs a special filter to bypass the
	  buggy code in the ROM (see CALL F000h:211Eh)
SeeAlso: AH=02h,AH=0Bh,MEM 0040h:0074h

Top
130B - INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
	AH = 0Bh
	AL = number of sectors (01h may be only value supported)
	CH = low eight bits of cylinder number
	CL = sector number (bits 5-0)
	     high two bits of cylinder number (bits 7-6)
	DH = head number
	DL = drive number (80h = first, 81h = second)
	ES:BX -> data buffer
Return: CF clear if successful
	CF set on error
	AH = status (see #00234)
	AL = number of sectors transferred
Notes:	each sector's worth of data must be followed by four to seven bytes of
	  error-correction information
	used for diagnostics only on PS/2 systems; IBM officially classifies
	  this function as optional
SeeAlso: AH=03h,AH=0Ah,MEM 0040h:0074h

Top
130C - INT 13 - HARD DISK - SEEK TO CYLINDER
INT 13 - HARD DISK - SEEK TO CYLINDER
	AH = 0Ch
	CH = low eight bits of cylinder number
	CL = sector number (bits 5-0)
	    high two bits of cylinder number (bits 7-6)
	DH = head number
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h

Top
130D - INT 13 - HARD DISK - RESET HARD DISKS
INT 13 - HARD DISK - RESET HARD DISKS
	AH = 0Dh
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234)
Notes:	reinitializes the hard disk controller, resets the specified drive's
	  parameters, and recalibrates the drive's heads (seek to track 0)
	for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
	  both the master drive and the slave drive respond to the Reset
	  function that is issued to either drive
	not for PS/2 ESDI drives
SeeAlso: AH=00h,INT 21/AH=0Dh

Top
130E - INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
	AH = 0Eh
	DL = drive number (80h = first, 81h = second hard disk)
	ES:BX -> buffer
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
Notes:	transfers controller's sector buffer.  No data is read from the drive
	used for diagnostics only on PS/2 systems
SeeAlso: AH=0Ah

Top
130F - INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
	AH = 0Fh
	DL = drive number (80h = first, 81h = second hard disk)
	ES:BX -> buffer
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234)
Notes:	does not write data to the drive
	should be called before formatting to initialize an XT-type
	  controller's sector buffer
	used for diagnostics only on PS/2 systems
SeeAlso: AH=0Bh

Top
1310 - INT 13 - HARD DISK - CHECK IF DRIVE READY
INT 13 - HARD DISK - CHECK IF DRIVE READY
	AH = 10h
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AH=11h

Top
1311 - INT 13 - HARD DISK - RECALIBRATE DRIVE
INT 13 - HARD DISK - RECALIBRATE DRIVE
	AH = 11h
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
Note:	causes hard disk controller to seek the specified drive to cylinder 0
SeeAlso: AH=00h,AH=0Ch,AH=10h,AH=19h"FIXED DISK",MEM 0040h:003Eh

Top
1312 - INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
	AH = 12h
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234 at AH=01h)
	AL = 00h
SeeAlso: AH=13h,AH=14h

Top
1312 - INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
	AH = 12h
	DL = hard drive ID
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234 at AH=01h)
Notes:	available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
	if the given drive is a SCSI device, the SCSI Stop Unit command is sent
	  and either "Disk prepared for shipping" or "Disk Stop command failed"
	  is displayed
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)

Top
1312 - INT 13 - SyQuest - START/STOP SCSI DISK
INT 13 - SyQuest - START/STOP SCSI DISK
	AH = 12h
	AL = subfunction
	    00h start disk
	    01h stop disk
	CX = wait flag
	    00h wait for ready
	    01h don't wait for ready
	DL = hard drive ID (bit 7 for hard disks must be set)
Return: CF set on error
	CF clear if successful
	AH = status
	    00h successful
	    01h invalid function request
	    80h timeout
SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"

Top
1313 - INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
	AH = 13h
	DL = drive number (80h = first, 81h = second hard disk)
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234 at AH=01h)
	AL = 00h
SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"

Top
1313 - INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
	AH = 13h
	DL = drive ID (bit 7 set for hard disks)
Return: CF set on error
	    AH = status (07h) (see #00234 at AH=01h)
	CF clear if successful
	    AH = 00h
	    BL = drive type (AT/PS2 floppies only) (see #00242)
	    CH = low eight bits of maximum cylinder number
	    CL = maximum sector number (bits 5-0)
		 high two bits of maximum cylinder number (bits 7-6)
	    DH = maximum head number
	    DL = number of drives
	    ES:DI -> drive parameter table (floppies only)
Notes:	the return values are identical to the standard INT 13/AH=08h, but the
	  number of drives is not limited to 2, so
	scanning all possible drive numbers with the Read DASD Type call
	  (AH=15h) should generally be preferred to determine the number of
	  drives attached to the system.
SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"

Top
1314 - INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
	AH = 14h
Return: CF set on error
	CF clear if successful
	AH = status code (see #00234 at AH=01h)
	AL = 00h
SeeAlso: AH=12h,AH=13h

Top
1315 - INT 13 - DISK - GET DISK TYPE (XT 1986/1/10 or later,XT286,AT,PS)
INT 13 - DISK - GET DISK TYPE (XT 1986/1/10 or later,XT286,AT,PS)
	AH = 15h
	DL = drive number (bit 7 set for hard disk)
	(AL = FFh, CX = FFFFh, see Note)
Return: CF clear if successful
	    AH = type code
		00h no such drive
		    (SpeedStor) AL = 03h hard disk
				    CX:DX = number of 512-byte sectors
		01h floppy without change-line support
		02h floppy (or other removable drive) with change-line support
		03h hard disk
		    CX:DX = number of 512-byte sectors
	CF set on error
	    AH = status (see #00234 at AH=01h)
Note:	SyQuest can report type 01h or 02h for 'hard disks', since its media
	  is removable
BUGS:	many versions of the Award 486 BIOS do not return the sector count
	  because the BIOS exit code restores CX and DX to their original
	  values after the function had already set them to correct values
	Some releases of PC Tools REBUILD preset CX=FFFFh and only trust the
	  results if CH <= 2 on return (which would cut off drives > 16 Gb).
	several different Compaq BIOSes incorrectly report high-numbered
	  drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
	  same geometry as drive 80h; as a workaround, scan through disk
	  numbers, stopping as soon as the number of valid drives encountered
	  equals the value in 0040h:0075h
	the PS/2 Model 30 fails to reset the bus after INT 13/AH=08h and
	  INT 13/AH=15h.  A workaround is to monitor for these functions
	  and perform a transparent INT 13/AH=01h status read afterwards.
	  This will reset the bus. The MS-DOS 6.0 IO.SYS takes care of
	  this by installing a special INT 13h interceptor for this purpose.
	Some releases of SpeedStor have a bug where it reports AX=0003h instead
	  of correctly reporting AH=03h for hard disks. A possible workaround
	  when testing for hard disks is to check for AH=03h and AX=0003h.
	  In this case this function should be invoked with a bogus fixed
	  value in AL, e.g. AL=FFh.
SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI",MEM 0040h:0075h

Top
1316 - INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1986/1/10 or later,XT286,AT,PS)
INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1986/1/10 or later,XT286,AT,PS)
	AH = 16h
	DL = drive number (00h-7Fh)
	SI = 0000h (to avoid crash on AT&T 6300)
Return: CF clear if change line inactive
	    AH = 00h (disk not changed)
	CF set if change line active
	    AH = status
		01h invalid command (SyQuest)
		06h change line active or not supported
		80h drive not ready or not present
Notes:	call AH=15h first to determine whether the drive supports a change
	  line
	this call also clears the media-change status, so that a disk change
	  is only reported once
BUGS:	some versions of Award 386 Modular BIOS and AMI BIOS fail to clear
	  the media-change status
	AT&T 6300 WGS systems crash if SI <> 0 on entry.
	some pre 1986/08/04 Compaq ROM BIOS have a serious bug where this
	  function may re-configure a hard disk depending on what is located
	  at ES:[BX] and data indexed to by it. MS-DOS/PC DOS IO.SYS/IBMBIO.COM
	  install a special filter when they detect Compaq ROM BIOSes with
	  earlier dates.
	some Compaq 286 systems have a bug in all INT 13h functions >= 16h,
	  which causes the byte at DS:0074h to be destroyed when called for
	  hard disks (DL >= 80h). MS-DOS/PC DOS IO.SYS/IBMBIO.COM performs a
	  test on this bug using this sub-function, and if found installs a
	  special filter which points DS into ROM, so that it cannot cause
	  any harm.
	some drives (or controllers???) forget the change line status
	  if another drive is accessed afterwards. The DOS BIOS takes care
	  of this by not relying on the reported change line status when
	  the change line is not active and a different drive is accessed,
	  instead it reports "don't know" to the DOS kernel.
SeeAlso: AH=15h,AH=49h

Top
1317 - INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
	AH = 17h
	AL = format type
	    01h = 320/360K disk in 360K drive
	    02h = 320/360K disk in 1.2M drive
	    03h = 1.2M disk in 1.2M drive
	    04h = 720K disk in 720K or 1.44M drive
	DL = drive number
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
Note:	this function does not handle 1.44M drives; use AH=18h instead
SeeAlso: AH=15h,AH=18h

Top
131700 - INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
	AX = 1700h
	CL = length of buffer
	DL = hard drive ID
	ES:BX -> buffer for info (see #00243)
Return: CF clear if successful
	    CH = number of bytes returned in buffer???
	CF set on error
	    AH = status code (see #00234 at AH=01h)
Notes:	this function is not available with 8-bit controller ROM versions < 7.0
	information block bytes 5-n are vendor-specific in older SCSI devices
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"

Format of Future Domain SCSI inquiry information block:
Offset	Size	Description	(Table 00243)
 00h	BYTE	device type
		bits 0-4: peripheral device type (see #00244)
		bits 5-7: peripheral qualifier (see #00245)
 01h	BYTE	device type modifier
		bits 0-6: device type modifier
		bit 7: removable medium
 02h	BYTE	SCSI version (see #00246)
 03h	BYTE	data format/capabilities (see #00247)
 04h	BYTE	additional data length (total remaining bytes)
 05h  2 BYTEs	reserved
 07h	BYTE	device capabilities (see #00248)
 08h  8 BYTEs	vendor identification (space-padded ASCII)
 10h  8 BYTEs	product identification (space-padded ASCII)
 20h  4 BYTEs	product revision level (space-padded ASCII)
 24h 20 BYTEs	vendor specific
 38h 40 BYTEs	reserved
 60h	var	vendor specific parameters

(Table 00244)
Values for Future Domain SCSI peripheral device type:
 00h	direct-access device (e.g., magnetic disk)
 01h	sequential-access device (e.g., magnetic tape)
 02h	printer device
 03h	processor device
 04h	write-once device (e.g., some optical disks)
 05h	CD-ROM device
 06h	scanner device
 07h	optical memory device (e.g., some optical disks)
 08h	medium changer device (e.g., jukeboxes)
 09h	communications device
 0Ah	(defined by ASC IT8)
 0Bh	(defined by ASC IT8)
 0Ch-1Eh reserved
 1Fh	unknown or no device type

(Table 00245)
Values for Future Domain SCSI peripheral qualifier:
 000b	device is currently connected to this logical unit and available
 001b	target is capable of supporting the specified peripheral, but the
	  physical device is not currently connected to this logical unit
 010b	reserved
 011b	target can't support a physical device on this logical unit
 1xxb	vendor specific

Bitfields for Future Domain SCSI version:
Bit(s)	Description	(Table 00246)
 0-2	ANSI-approved version
	000 device might or might not comply to ANSI standard
	001 device complies to ANSI SCSI-1
	010 device complies to ANSI SCSI-2
	other reserved
 3-5	ECMA version
 6-7	ISO version

Bitfields for Future Domain SCSI data format/capabilities:
Bit(s)	Description	(Table 00247)
 0-2	response data format
	000 information block is as specified in SCSI-1
	001 information block is as specified in CCS
	010 information block is as specified in SCSI-2
	other reserved
 4-5	reserved
 6	terminate I/O process supported
 7	asynchronous event notification supported

Bitfields for Future Domain SCSI device capabilities:
Bit(s)	Description	(Table 00248)
 0	device responds to RESET with a hard RESET
 1	tagged command queuing supported
 2	reserved
 3	linked commands supported
 4	synchronous data transfer supported
 5	16-transfers supported
 6	32-transfers supported
 7	relative addressing supported

Top
1318 - INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
	AH = 18h
	DL = drive number
	CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
	CL = sectors per track (bits 0-5)
	     top 2 bits of highest cylinder number (bits 6,7)
Return: AH = status
	    00h requested combination supported
	    01h function not available
	    0Ch not supported or drive type unknown
	    80h there is no disk in the drive
	ES:DI -> 11-byte parameter table (see #01264 at INT 1E)
Note:	this function does not set the INT 1E vector to point at the returned
	  parameter table; it is the caller's responsibility to do so
SeeAlso: AH=05h,AH=07h,AH=17h,INT 1E

Top
1318 - INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
	AH = 18h
	DL = hard drive ID
Return: CF set on error
	    AH = status code (see #00234 at AH=01h)
	CF clear if successful
	    AX = 4321h (magic number)
	    CX = controller family code (see #00249)
	    ---if family code=0200h
		DH = number of exclusively ROM-controlled SCSI devices
		DL = canonical SCSI device number for specified drive
	    ---if family code <> 0200h
		BH = number of exclusively ROM-controlled SCSI devices
		BL = canonical SCSI device number for specified drive
Notes:	also sets an internal flag (non-resettable) which prevents some
	  controller messages from being displayed, allows writes to
	  removable devices (use caution!), and enables the INT 13 interface
	  for more than one drive (i.e. DL >= 81h) in at least some ROM
	  versions
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h

(Table 00249)
Values for Future Domain SCSI controller family code:
 0200h	TMC-1680/? (ROM 3.0)
 0203h	TMC-1650/1660/1670/1680 (ROM 2.0)
 040Ah	TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
 050Dh	TMC-840/841/880/881 (ROM 5.2D)
 0700h	TMC-830/850/860/875/885 (ROM 7.0)

Top
1318--CX5055 - INT 13 - PU_1700.COM - INSTALLATION CHECK
INT 13 - PU_1700.COM - INSTALLATION CHECK
	AH = 18h
	CX = 5055h ('PU')
	DL = 00h
Return: AX = 7570h ('up') if PU_1700 is installed
Program: PU_1700 is a BIOS enhancer from PU Service Systems which permits
	  formatting diskettes at higher capacity (1.78M instead of 1.44M)
SeeAlso: AX=057Fh/SI=324Dh"2M"

Top
1318--CXD2C9 - INT 13 - XDF.COM - API
INT 13 - XDF.COM - API
	AH = 18h
	CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
	DX = 0000h
	BX = function
	    0000h installation check
		  Return: AH = 0Ch
			  CX = 7269h ("ri" = Roger Ivey)
			  ES = segment of driver
			  CF set
	    2F64h ("/d") disable the driver
		  Return: AH = 0Ch
			  ES:BX = pointer to activation flag (it is set to 0:
				  set it to 1 to enable the driver again)
			  CX = 7269h
			  CF set
	    2F75h ("/u") unload the driver (restore interrupts & free memory)
		  Return: AH = 0Ch
			  DL = 55h ("U") if successful
			     = 00h	   if fails
			  CX = 7269h
			  ES = segment of driver
			  CF set
			  AL, BX, DH, and DI destroyed
Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
	  developed by Roger D. Ivey
Note:	After disabling or enabling the driver, a disk change must be performed
	  or simulated to reset the driver.

Top
1319 - INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
	AH = 19h
	DL = drive
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AH=11h

Top
1319 - INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
	AH = 19h
	DL = hard drive ID
Return: CF set on error
	    AH = status code (see #00234 at AH=01h)
	CF clear if successful
	    AH = disk type (03h = fixed disk)
	    CX:DX = number of 512-byte sectors
Notes:	sends SCSI Read Capacity command to get number of logical blocks and
	  adjusts the result for 512-byte sectors
	displays either "Error in Read Capacity Command" or "nnn Bytes per
	  sector" (nnn=256 or 512, the only sizes supported in the translation
	  code)
	should probably be called when a removable device has its media changed
	returns the same values as AH=15h
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h

Top
131A - INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
	AH = 1Ah
	AL = defect table entry count
	CL = format modifiers (see #00250)
	DL = drive (80h,81h)
	ES:BX -> defect table (see #00251), ignored if AL=00h
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
Note:	if periodic interrupt selected, INT 15/AH=0Fh is called after each
	  cylinder is formatted
SeeAlso: AH=07h,INT 15/AH=0Fh

Bitfields for ESDI format modifiers:
Bit(s)	Description	(Table 00250)
 4	generate periodic interrupt
 3	perform surface analysis
 2	update secondary defect map
 1	ignore secondary defect map
 0	ignore primary defect map

Format of defect table entry [array]:
Offset	Size	Description	(Table 00251)
 00h  3 BYTEs	relative sector address (little-endian)
 03h	BYTE	flags and defect count
		bit 7: last logical sector on track
		bit 6: first logical sector on track
		bit 5: last logical sector on cylinder
		bit 4: logical sectors are pushed onto next track
		bits 3-0: number of defects pushed from previous cylinder

Top
131A - INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
	AH = 1Ah
	CH = track (bits 8,9 in high bits of CL)
	CL = sector (01h to number of sectors/track for drive)
	DH = head
	DL = hard drive ID
Return: CF set on error
	AH = status code (see #00234 at AH=01h)
	CX:DX = logical block number of last quickly-accessible block after
		given block
Notes:	sends SCSI Read Capacity command with the PMI bit set to obtain the
	  logical block address of the last block after which a substantial
	  delay in data transfer will be encountered (usually the last block
	  on the current cylinder).  No translation to 512 byte sectors is
	  performed on the result if data is stored on the disk in other than
	  512 byte sectors.
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=15h,AH=19h"SCSI"

Top
131B - INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
	AH = 1Bh
	AL = number of sectors to read
	DL = drive
	ES:BX -> buffer for manufacturing header (defect list)
Return: CF set on error
	CF clear if successful
	AH = status
Note:	manufacturing header format (Defect Map Record format) can be found
	  in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
	the first sector read contains the manufacturing header with the number
	  of defect entries and the beginning of the defect map; the remaining
	  sectors contain the remainder of the defect map

Top
131B - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
	AH = 1Bh
	DL = hard drive ID
Return: CF set on error
	    AH = status code (see #00234 at AH=01h)
	CF clear if successful
	    ES:BX -> SCSI disk information block (see #00252)
Notes:	also sets a non-resettable flag which prevents some controller messages
	  from being displayed
	the TMC-950 does not support any Future Domain BIOS calls; instead,
	  it provides a full CAM implementation (see INT 4F/AX=8100h)
SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"

Format of Future Domain SCSI disk information block:
Offset	Size	Description	(Table 00252)
 00h	BYTE	drive physical information (see #00253)
 01h	WORD	translated number of cylinders
 03h	BYTE	translated number of heads
 04h	BYTE	translated number of sectors per track (17, 34, or 63)
 05h	BYTE	drive address
		bits 0-2: logical unit number
		bits 3-5: device number
 06h	BYTE	01h at initialization
 07h	BYTE	sense code byte 00h, or extended sense code byte 0Ch
 08h	BYTE	00h
 09h	BYTE	00h or extended sense code byte 02h (sense key)
 0Ah	BYTE	00h
 0Bh 10 BYTEs	copy of Command Descriptor Block (CDB) (see #03236,#03237)
 15h	DWORD	translated number of sectors on device

Bitfields for Future Domain SCSI device physical information:
Bit(s)	Description	(Table 00253)
 0	???
 1	device uses parity
 2	256 bytes per sector instead of 512
 3	don't have capacity yet???
 4	disk is removable
 5	logical unit number is not present

Top
131C - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
	AH = 1Ch
	DL = hard drive ID (any valid SCSI hard disk)
Return: CF set on error
	    AH = status code (see #00234 at AH=01h)
	CF clear if successful
	    ES:BX -> first byte of free RAM on controller
Notes:	the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
	  to 1BFFh on-board the controller for storing drive information and
	  controller status; ES:BX points to the first byte available for other
	  uses
	ES contains the segment at which the controller resides; the
	  controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
SeeAlso: AH=1Bh"SCSI"

Top
131C - INT 13 U - ESDI FIXED DISK - ???
INT 13 U - ESDI FIXED DISK - ???
	AH = 1Ch
	AL = subfunction (01h-06h)
	DL = drive (80h,81h)
	???
Return: ???
Note:	these functions perform a controller command 0612h without DMA
SeeAlso: AX=1C08h,PORT 3510h"ESDI"

Top
131C08 - INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
	AX = 1C08h
	DL = drive (80h,81h)
	ES:BX -> buffer for Command Complete Status Block (see #00254)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AX=1C09h,AX=1C0Ah,PORT 3510h"ESDI"

Format of ESDI Command Complete Status Block:
Offset	Size	Description	(Table 00254)
 00h	BYTE	07h
 01h	BYTE	size of block in words (07h)
 02h	BYTE	command error code (see #00255)
 03h	BYTE	command status code (see #00256)
 04h	BYTE	device error code, group 1 (see #00257)
 05h	BYTE	device error flags, group 2 (see #00258)
 06h	WORD	number of unprocessed sectors due to abnormal termination
 08h	DWORD	last Relative Sector Address processed by command
 0Ch	WORD	number of sectors corrected by ECC codes

(Table 00255)
Values for ESDI command error code:
 00h	successful
 01h	parameter invalid
 02h	unknown function
 03h	unsupported command
 04h	command cancelled
 05h	unknown function
 06h	controller diagnostics failed
 07h	formatting failed
 08h	format error in primary map
 09h	format error in secondary map
 0Ah	diagnostic failure during formatting
 0Bh	warning: secondary map too large during formatting
 0Ch	warning: non-zero defect
 0Dh	system checksum error during formatting
 0Eh	warning: incompatible device
 0Fh	warning: push table overflowed
 10h	warning: more than 15 sectors pushed to next cylinder
 11h	internal hardware error
 12h	warning: errors found while verifying sectors
 13h	invalid device
 FFh	device error

(Table 00256)
Values for ESDI command status code:
 01h	successful
 03h	successful after ECC
 05h	successful after retries
 06h	format partially completed
 07h	successful after ECC and retries
 08h	command completed with warning (see #00255)
 09h	abort complete
 0Ah	reset complete
 0Bh	data transfer ready (no status block)
 0Ch	command completed with failure (see #00257,#00258)
 0Dh	DMA error
 0Eh	command block error (see #00255)
 0Fh	bad attention code
SeeAlso: #00257

(Table 00257)
Values for ESDI device error code, group 1:
 00h	successful
 01h	seek fault detected by device
 02h	interface fault
 03h	sector ID not found
 04h	disk not formatted
 05h	unrecoverable ECC error
 06h	ECC error in sector ID
 07h	invalid relative sector address
 08h	timeout
 09h	sector defective
 0Ah	disk changed (removable media)
 0Bh	selection error
 0Ch	write protected (removable media)
 0Dh	write fault
 0Eh	read fault
 0Fh	no index or sector pulse
 10h	device not ready
 11h	seek error detected by adapter
 12h	bad format
 13h	volume overflow
 14h	data address mark not found
 15h	sector ID not found
 16h	missing device configuration data
 17h	first/last relative sector flags missing
 18h	track empty
 81h	timeout while waiting for stop
 82h	timeout while waiting for end of data transfer
 84h	stopped awaiting data transfer during formatting
 85h	timeout while waiting for head switch
 86h	timeout while awaiting DMA completion
SeeAlso: #00256,#00258

Bitfields for ESDI device error flags, group 2:
Bit(s)	Description	(Table 00258)
 7-5	unused
 4	ready
 3	selected
 2	write fault
 1	on track 0
 0	seek/command complete
SeeAlso: #00257

Top
131C09 - INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
	AX = 1C09h
	DL = drive (80h,81h)
	ES:BX -> buffer for Device Status Block (see #00259)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AX=1C08h,AX=1C0Ah,PORT 3510h"ESDI"

Format of ESDI Device Status Block:
Offset	Size	Description	(Table 00259)
 00h	BYTE	08h
 01h	BYTE	number of words in block (09h)
 02h	BYTE	error flags
 03h	BYTE	unused
 04h	BYTE	command error code (see #00255)
 05h	BYTE	command status code (see #00256)
 06h	WORD	ESDI standard status
 08h  5 WORDs	ESDI vendor-specific status codes

Top
131C0A - INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
	AX = 1C0Ah
	DL = drive (80h,81h)
	ES:BX -> buffer for Drive Configuration Status Block (see #00260)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
Note:	device configuration format can be found in IBM ESDI Fixed Disk Drive
	  Adapter/A Technical Reference
SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch

Format of ESDI Drive Configuration Status Block:
Offset	Size	Description	(Table 00260)
 00h	BYTE	09h
 01h	BYTE	number of words in block (06h)
 02h	BYTE	flags
 03h	BYTE	number of spare sectors per cylinder
 04h	DWORD	total number of usable sectors
 08h	WORD	total number of cylinders
 0Ah	BYTE	tracks per cylinder
 0Bh	BYTE	sectors per track

Top
131C0B - INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
	AX = 1C0Bh
	ES:BX -> buffer for Controller Configuration Status Block (see #00261)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AX=1C0Ch

Format of ESDI Controller Configuration Status Block:
Offset	Size	Description	(Table 00261)
 00h	BYTE	E9h
 01h	BYTE	number of words in block (06h)
 02h	WORD	unused (0000h)
 04h	DWORD	controller microcode revision level
 08h  2 WORDs	unused (0000h)

Top
131C0C - INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
	AX = 1C0Ch
	ES:BX -> buffer for POS Information Status Block (see #00262)
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
SeeAlso: AX=1C0Bh

Format of ESDI POS Information Status Block:
Offset	Size	Description	(Table 00262)
 00h	BYTE	EAh
 01h	BYTE	number of words in block (05h)
 02h	WORD	magic value FFDDh
 04h	BYTE	POS register 3
 05h	BYTE	POS register 2
 06h	BYTE	POS register 5 (unused, FFh)
 07h	BYTE	POS register 4 (unused, FFh)
 08h	BYTE	POS register 7 (unused, FFh)
 09h	BYTE	POS register 6 (unused, FFh)

Top
131C0D - INT 13 U - ESDI FIXED DISK - ???
INT 13 U - ESDI FIXED DISK - ???
	AX = 1C0Dh
	DL = drive (80h,81h)
	???
Return: ???
Note:	invokes controller command 0614h without DMA
SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"

Top
131C0E - INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
	AX = 1C0Eh
	CH = low 8 bits of cylinder number
	CL = sector number, high two bits of cylinder number in bits 6 and 7
	DH = head number
	DL = drive number (80h,81h)
	ES:BX -> ABA number
Return: CF set on error
	CF clear if successful
	AH = status (see #00234 at AH=01h)
Note:	ABA (absolute block address) format can be found in IBM ESDI Adapter
	  Technical Reference by using its Device Configuration Status Block
SeeAlso: AX=1C08h,AX=1C0Fh,PORT 3510h"ESDI"

Top
131C0F - INT 13 U - ESDI FIXED DISK - ???
INT 13 U - ESDI FIXED DISK - ???
	AX = 1C0Fh
	DL = drive (80h,81h)
	???
Return: ???
Note:	invokes controller command 0614h without DMA
SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h,PORT 3510h"ESDI"

Top
131C12 - INT 13 U - ESDI FIXED DISK - ???
INT 13 U - ESDI FIXED DISK - ???
	AX = 1C12h
	DL = drive (80h,81h)
	???
Return: ???
Note:	invokes controller command 0612h without DMA
SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"

Top
131D - INT 13 - IBMCACHE.SYS - CACHE STATUS
INT 13 - IBMCACHE.SYS - CACHE STATUS
	AH = 1Dh
	AL = subfunction
	    01h get status record
		DL = drive???
		Return: ES:BX -> status record (see #00263)
			CF set on error
			    AH = error code
	    02h set cache status
		ES:BX -> status record (see #00263)
		DL = drive???
		Return: CF set on error

Format of IBMCACHE.SYS status record:
Offset	Size	Description	(Table 00263)
 00h	DWORD	total number of read requests
 04h	DWORD	total number of hits
 08h	DWORD	number of physical disk reads
 0Ch	DWORD	total number of sectors requested by physical disk reads
 10h  6 BYTEs	???
 16h	DWORD	pointer to start of error list (see #00264)
 1Ah	DWORD	pointer to end of error list
 1Eh	WORD	???
 20h	BYTE	using extended memory if nonzero
 21h	BYTE	???
 22h  4 BYTEs	ASCII version number
 26h	WORD	cache size in KB
 28h	WORD	sectors per page

Format of IBMCACHE.SYS error list:
Offset	Size	Description	(Table 00264)
 00h	DWORD	relative block address of bad page
 04h	BYTE	drive
 05h	BYTE	sector bit-map
 06h	WORD	next error

Top
131F - INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
	AH = 1Fh
	AL = subfunction
	    00h allow media removal
	    01h prevent media removal (lock door)
	DL = drive ID (bit 7 set for hard disks)
Return: CF clear if successful
	    AH = 00h
	CF set on error
	    AH = error code
		00h successful
		01h invalid function request
		80h timeout
		DDh media change requested
SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"

Top
1320 - INT 13 - DISK - ??? (Western Digital "Super BIOS")
INT 13 - DISK - ??? (Western Digital "Super BIOS")
	AH = 20h
	???
Return: ???
Notes:	returns some kind of status related to whether the drive contains its
	  default media type
	QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases

Top
1320 - INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
INT 13 U - Compaq, ATAPI Removable Media Device - GET CURRENT MEDIA FORMAT
	AH = 20h
	DL = drive number (00h,01h)
Return: CF clear if successful
	    AL = media type (see #00265)
	    AH = 00h
	CF set on error
	    AH = error code
		01h invalid request
		30h drive does not support media sense
		31h no such drive / media not present
		32h non-default media / drive does not support media type
Notes:	this function is supported by the 1993/3/8 Compaq ROM BIOS, but only
	  partially (AL is always 00h when successful) by the 1993/8/3 version
	this function is also supported by some recent versions of the Phoenix
	  486 BIOS
	this function does not seem to be supported by some Toshiba BIOSes
	  (at least before 1995, maybe some laptops??? with 1.44 MB floppies),
	  because S/DOS 1.0 contains code to bypass a call to this function,
	  always assuming the drive would not support media sense.
SeeAlso: AH=15h

(Table 00265)
Values for Compaq/ATAPI diskette media type:
 03h	720K  (1M unformatted)
 04h	1.44M (2M unformatted)
 06h	2.88M (4M unformatted)
 0Ch	360K
 0Dh	1.2M
 0Eh	Toshiba 3mode
 0Fh	NEC 3mode (1024-byte sectors)
 10h	ATAPI Removable Media Device

Top
1320 - INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
	AH = 20h
	AL = drive (00h = A:, etc. or 7Fh for all removable drives???
				   or FFh for all drives)
Return: AX = status (0000h successful)
Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
	  Associates, Inc.
Desc:	flush any dirty buffers for the specified drive(s) and then discard
	  those sector buffers
SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h

Top
1321 - INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
	AH = 21h
	AL = number of sectors to write
	CH = low byte of 12-bit cylinder number
	CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
	DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
	DL = drive number (80h,81h)
	ES:BX -> buffer for data to be read
Return: CF clear if successful
	    ES:BX buffer filled
	CF set on error
	AH = status (see #00234 at AH=01h)
Desc:	read from the disk using the Multiple Block mode available on newer
	  IDE drives and some hard disk controllers, which generates an
	  interrupt only after the end of transferring a group of sectors
	  rather than after each sector
Notes:	must call AH=24h"PS/1" before using this function
	input values in CL and DH are not range-checked
	the byte at address 0040h:0074h is set to the status of the operation
SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"

Top
1321 - INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
	AH = 21h
Return: AX = status (0000h successful)
Desc:	immediately write all dirty sectors back to disk
Note:	this is one out of several cache flush calls issued by the PTS-DOS 6.51
	  and S/DOS 1.0 kernel before rebooting. It is called with DL=80h and
	  conflicts with the PS/2 function of the same function number, because
	  the kernel does not perform Quickcache's installation check first.
SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh

Top
1322 - INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
	AH = 22h
	AL = number of sectors to write
	CH = low byte of 12-bit cylinder number
	CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
	DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
	DL = drive number (80h,81h)
	ES:BX -> buffer containing data to be written
Return: CF clear if successful
	CF set on error
	AH = status (see #00234 at AH=01h)
Desc:	write to the disk using the Multiple Block mode available on newer
	  IDE drives and some hard disk controllers, which generates an
	  interrupt only after the end of transferring a group of sectors
	  rather than after each sector
Notes:	must call AH=24h"PS/1" before using this function
	input values in CL and DH are not range-checked
	the byte at address 0040h:0074h is set to the status of the operation
SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"

Top
1322 - INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
	AH = 22h
	AL = new state (00h disabled, 01h enabled)
Return: AX = status (0000h successful)
Note:	enables/disables caching of all drives
SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h

Top
1323 - INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
	AH = 23h
	AL = feature number (see #00266)
	DL = drive number (80h,81h)
	???
Return: CF clear if successful
	CF set on error
	AH = status (see #00234 at AH=01h)
SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"

(Table 00266)
Values for PS/1 hard disk feature number:
 01h	select 8-bit data transfers instead of 16-bit
 02h	enable write cache
 22h	Write Same, user-specified area
 33h	disable retries
 44h	set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
 54h	set cache segments
 55h	disable lookahead
 66h	disable reverting to power-on defaults
 77h	disable error correctioni
 81h	select 16-bit data transfers (default)
 82h	disable write cache
 88h	enable error correction (default)
 99h	enable retries (default)
 AAh	enable lookahead
 BBh	set ECC length for read long/write long to four bytes
 CCh	enable reverting to power-on defaults
 DDh	Write Same, entire disk
SeeAlso: #P0535

Top
1323 - INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
	AH = 23h
Return: AX = status (0000h successful)
	ES = segment of ??? data

Top
1324 - INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
	AH = 24h
	AL = number of sectors per block (2,4,8,16)
	DL = drive number (80h,81h)
Return: CF clear if successful
	CF set onerror
	AH = status (see #00234 at AH=01h)
Desc:	specify how many sectors the controller should transfer as a group
	  between operation-complete interrupts when using the Read Multiple
	  and Write Multiple functions (AH=21h,AH=22h)
Notes:	set the number of sectors to 0 to disable multiple-transfer mode
	the maximum value for the block size depends on the fixed disk
	  drive type.  The value is stored in byte 15h of the fixed disk
	  drive parameter table that is created by POST.
	the byte at address 0040h:0074h is set to status of operation.
SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"

Top
1324 - INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
	AH = 24h
	BX = new number of sector buffers in cache
Return: AX = status
	    0000h successful
	    0001h failed--size adjusted
	    8000h cache cannot be resized while enabled
SeeAlso: AH=36h

Top
1325 - INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
	AH = 25h
	DL = drive number (80h,81h)
	ES:BX-> 512 byte buffer for reply packet
Return: CF clear if successful
	CF set on error
	AH = status (see #00234 at AH=01h)
	buffer filled with ATA/IDE-style drive information block (see #00267)
Desc:	retrieves the 256 words of drive data stored on an IDE hard disk
Notes:	the byte at address 0040h:0074h is set to the status of the operation
	IBM officially classifies this function as optional
SeeAlso: AH=23h"PS/1"

Format of drive information block:
Offset	Size	Description	(Table 00267)
 00h	WORD	general drive configuration (see #00268)
 02h	WORD	number of cylinders
 04h	WORD	reserved
 06h	WORD	number of heads
 08h	WORD	number of unformatted bytes per track
 0Ah	WORD	number of unformatted bytes per sector
 0Ch	WORD	number of sectors per track
 0Eh  6 BYTEs	vendor unique
 14h 20 BYTEs	serial number in ASCII, 0000h=not specified)
 28h	WORD	buffer type
 2Ah	WORD	buffer size in 512 byte increments (0000h=not specified)
 2Ch	WORD	number of ECC bytes passed on Read/Write Long cmds
		0000h = not specified
 2Eh  8 BYTEs	firmware revision in ASCII, 0000h=not specified
 36h 40 BYTEs	model number in ASCII, 0000h=not specified
 5Eh	WORD	bits 15-8  Vendor Unique
		bits 7-0  00h = Read/Write Multiple commands not implemented
			  xxh = Maximum number of sectors that can be
			  transferred per interrupt on Read and Write
			  Multiple commands
 60h	WORD	0000h = cannot perform doubleword I/O
		0001h = can perform doubleword I/O
 62h	WORD	capabilities
		bit 15-9  0=reserved
		bit 8  1=DMA Supported
		bit 7-0	 Vendor Unique
 64h	WORD	reserved
 66h	WORD	bits 15-8 PIO data transfer cycle timing mode
		bits 7-0  Vendor Unique
 68h	WORD	bits 15-8 DMA data transfer cycle timing mode
		bits 7-0  Vendor Unique
 6Ah	WORD	bits 15-1 reserved
		bit 0	1=the fields reported in tranlation mode are valid
			0=the fields reported in translation mode may be valid
 6Ch	WORD	number of current cylinders
 6Eh	WORD	number of current heads
 70h	WORD	number of current sectors per track
 72h	DWORD	current capacity in sectors
 76h	WORD	reserved
 78h 136 BYTEs	not defined by ATA spec 2.6
100h 64 BYTEs	vendor unique
140h 96 BYTEs	reserved
Note:	the above description is as in the ATA (AT Attachment) Specification.
SeeAlso: #P0516

Bitfields for general drive configuration:
Bit(s)	Description	(Table 00268)
 15	0   reserved for non-magnetic drives
 14	format speed tolerance gap required
 13	track offset option available
 12	data strobe offset option available
 11	rotational speed tolerance is > 0.5%
 10	disk transfer rate > 10 Mbs
 9	disk transfer rate > 5Mbs but <= 10Mbs
 8	disk transfer rate <= 5Mbs
 7	removable cartridge drive
 6	fixed drive
 5	spindle motor control option implemented
 4	head switch time > 15 usec
 3	not MFM encoded
 2	soft sectored
 1	hard sectored
 0	reserved (0)

Top
1325 - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
	AH = 25h
	BX = interval
Return: AX = status (0000h successful)
Desc:	specify how often the cache should write dirty buffers to disk when
	  buffered writes are enabled
SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh

Top
1326 - INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
	AH = 26h
Return: AX = status
	    0000h successful
	    0001h-00FFh interrupt vector which was hooked by another TSR
SeeAlso: AH=27h

Top
1327--BX0000 - INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
	AH = 27h
	BX = 0000h
Return: AX = 0000h if installed
	BX nonzero if installed
	    BH = major version
	    BL = binary minor version
Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
	  Associates, Inc.
SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h

Top
1328 - INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
	AH = 28h
	AL = new state (00h disabled, 01h enabled)
Return: AX = status (0000h successful)
SeeAlso: AH=20h"QUICKCACHE"

Top
1329 - INT 13 U - QUICKCACHE II v4.20 - NOP
INT 13 U - QUICKCACHE II v4.20 - NOP
	AH = 29h
Return: AX = 0000h

Top
132A - INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
	AH = 2Ah
	AL = buffer size (1-30)
Return: AX = status (0000h successful)
Desc:	specify the number of cache sector buffers to dedicate to buffered read
	  and write operations
SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah

Top
132B - INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
	AH = 2Bh
	AL = new state (00h disabled, 01h enabled)
Return: AX = status (0000h successful)

Top
132C - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
	AH = 2Ch
	AL = new state (00h disabled, 01h enabled)
Return: AX = status (0000h successful)
Desc:	specify whether the cache should delay disk writes
Note:	this function enables or disables delayed writes for all drives; use
	  AH=38h to change a single drive
SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h

Top
132D - INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
	AH = 2Dh
	AL = new state (00h disabled, 01h enabled)
Return: AX = status (0000h successful)
Desc:	specify whether the cache should attempt to read ahead of actual
	  requests
Note:	this function enables or disables read-ahead for all drives; use AH=37h
	  to change a single drive
SeeAlso: AH=2Ch,AH=37h

Top
132E - INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
	AH = 2Eh
	BX = flush count
Return: AX = status (0000h successful)
Desc:	specify how many dirty sectors the cache should write after each flush
	  interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch

Top
132F - INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
	AH = 2Fh
Return: AX = status (0000h successful)
Desc:	immediately flush up to "flushcount" dirty sectors to disk as if the
	  flush interval had expired
SeeAlso: AH=21h"QUICKCACHE"

Top
1330 - INT 13 u - QUICKCACHE II v4.20 - GET INFO
INT 13 u - QUICKCACHE II v4.20 - GET INFO
	AH = 30h
	AL = what to get
	    00h system info (see #00269)
	    01h drive info (see #00270)
	    02h access frequency (array of 30 words)
	    03h drive index
		(array of 32 bytes indicating BIOS drive for DOS drive)
	DS:DX -> buffer for info
Return: AX = status (0000h successful, 8000h invalid info specifier)
Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
	  Associates, Inc.

Format of QUICKCACHE II system info:
Offset	Size	Description	(Table 00269)
 00h	BYTE	flag: cache enabled
 01h	BYTE	flag: buffered writes enabled
 02h	BYTE	flag: buffered reads enabled
 03h	BYTE	flag: sounds enabled
 04h	BYTE	flag: autodismount enabled
 05h	BYTE	???
 06h	BYTE	flag: ???
 07h	BYTE	flag: ???
 08h	BYTE	flag: "em_assigned"
 09h	BYTE	flag: emulated EMS
 0Ah	BYTE	single sector bonus
 0Bh	BYTE	"sticky_max"
 0Ch	BYTE	write sector bonus
 0Dh	BYTE	bonus threshold
 0Eh	WORD	flush interval
 10h	WORD	flush count
 12h	WORD	reserve pool size
 14h	WORD	remaining space in reserve pool
 16h	WORD	required free memory
 18h	WORD	total cache sectors
 1Ah	WORD	dirty cache sectors
 1Ch	BYTE	trace buffer size
 1Dh	BYTE	reserved (padding)
SeeAlso: #00270

Format of QUICKCACHE II drive info [16-element array, one element]:
Offset	Size	Description	(Table 00270)
 00h	BYTE	DOS drive number
 01h	BYTE	BIOS drive number
 02h	BYTE	maximum sector number
 03h	BYTE	maximum head number
 04h	BYTE	read buffer size
 05h	BYTE	write buffer size
 06h	BYTE	last status
 07h	BYTE	flag: enabled
 08h	BYTE	flag: buffered write enabled
 09h	BYTE	flag: buffered read enabled
 0Ah	BYTE	flag: in use (drive info is valid)
 0Bh	BYTE	flag: cylinder flush
 0Ch	BYTE	reserved (padding)
 0Dh	BYTE	sectors per track
 0Eh	WORD	sector size
 10h	WORD	sectors assigned
 12h	WORD	dirty sectors
 14h	WORD	reserved sectors
 16h	WORD	number of read errors
 18h	WORD	number of write errors
 1Ah	DWORD	"rio_count"
 1Eh	DWORD	number of cache misses
 22h	DWORD	"wio_count"
 26h	DWORD	"dio_count"
SeeAlso: #00269

Top
1331 - INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
	AH = 31h
	BX = number of paragraphs of conventional memory to reserve for apps
Return: AX = status (0000h successful)

Top
1332 - INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
	AH = 32h
	AL = drive number (00h=A:)
Return: AX = status (0000h successful)
SeeAlso: AH=22h"QUICKCACHE",AH=33h

Top
1333 - INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
	AH = 33h
	AL = drive number (00h=A:)
Return: AX = status (0000h successful)
SeeAlso: AH=22h"QUICKCACHE",AH=32h

Top
1334 - INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
	AH = 34h
	AL = function
	    00h end sector locking/unlocking
	    01h lock all accessed sectors into cache
	    02h unlock all accessed sectors and discard from cache
Return: AX = status (0000h successful)
SeeAlso: AH=20h"QUICKCACHE",AH=35h

Top
1335 - INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
	AH = 35h
	BX = number of sectors in lock pool
Return: AX = status (0000h successful)
Desc:	specify the number of cache sector buffers which may be dedicated to
	  data locked into the cache
SeeAlso: AH=34h

Top
1336 - INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
	AH = 36h
	AL = new size of trace buffer
Return: AX = status (0000h successful)
Note:	called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call
SeeAlso: AH=24h"QUICKCACHE"

Top
1337 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
	AH = 37h
	AL = new state (00h disabled, else enabled)
	DL = drive number (00h = A:)
Return: AX = status (0000h successful)
SeeAlso: AH=2Dh,AH=38h

Top
1338 - INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
	AH = 38h
	AL = new state (00h disabled, else enabled)
	DL = drive number (00h = A:)
Return: AX = status (0000h successful)
SeeAlso: AH=2Ch,AH=37h

Top
1339 - INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
	AH = 39h
	AL = new size of read buffer
	DL = drive number (00h = A:)
Return: AX = status (0000h successful)
Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
	  Associates, Inc.
SeeAlso: AH=2Ah,AH=3Ah

Top
133A - INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
	AH = 3Ah
	AL = new size of write buffer
	DL = drive number (00h = A:)
Return: AX = status (0000h successful)
SeeAlso: AH=2Ah,AH=39h

Top
133B - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
	AH = 3Bh
	AL = new state of ??? (01h enabled, else disabled)
Return: AX = status (0000h successful)
Note:	is affected by the flag reported at offset 05h of the system info
	  returned by AH=30h, and sets the flag at offset 06h
SeeAlso: AH=3Ch

Top
133C - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
	AH = 3Ch
	AL = new state of ??? (01h enabled, else disabled)
Return: AX = status (0000h successful)
Note:	is affected by the flag reported at offset 05h of the system info
	  returned by AH=30h, and sets the flag at offset 07h
SeeAlso: AH=3Bh

Top
133D - INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
	AH = 3Dh
	AL = new state (01h enabled, else disabled)
	DL = drive number (00h = A:)
Return: AX = status (0000h successful)

Top
133E - INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
	AH = 3Eh
	AL = new value for bonus
Return: AX = status (0000h successful)
Desc:	specify the bonus score to give to single-sector transfers in order to
	  keep those sectors in the cache longer

Top
133F - INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
	AH = 3Fh
	AL = new value for bonus threshold
Return: AX = status (0000h successful)

Top
1340 - INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
	AH = 40h
	AL = new value for "sticky_max"
Return: AX = status (0000h successful)
SeeAlso: AH=41h"QUICKCACHE"

Top
1341--BX55AA - INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
	AH = 41h
	BX = 55AAh
	DL = drive (80h-FFh)
Return: CF set on error (extensions not supported)
	    AH = 01h (invalid function)
	CF clear if successful
	    BX = AA55h if installed
	    AH = major version of extensions
		01h = 1.x
		20h = 2.0 / EDD-1.0
		21h = 2.1 / EDD-1.1
		30h = EDD-3.0
	    AL = internal use
	    CX = API subset support bitmap (see #00271)
	    DH = extension version (v2.0+ ??? -- not present in 1.x)
Note:	the Phoenix Enhanced Disk Drive Specification v1.0 uses version 2.0 of
	  the INT 13 Extensions API
SeeAlso: AH=42h"INT 13 Ext",AH=48h"INT 13 Ext"

Bitfields for IBM/MS INT 13 Extensions API support bitmap:
Bit(s)	Description	(Table 00271)
 0	extended disk access functions (AH=42h-44h,47h,48h) supported
 1	removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h)
	  supported
 2	enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported
	extended drive parameter table is valid (see #00273,#00278)
 3-15	reserved (0)

Top
1341 - INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
	AH = 41h
	AL = direction
	    01h save to file
	    else restore from file
	ES:DI -> 1024-byte buffer for ???
Return: AX = status (0000h successful, 8000h failed)
Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
	  Associates, Inc.
SeeAlso: AH=40h"QUICKCACHE"

Top
1342 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
	AH = 42h
	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
SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"

Format of disk address packet:
Offset	Size	Description	(Table 00272)
 00h	BYTE	size of packet (10h or 18h)
 01h	BYTE	reserved (0)
 02h	WORD	number of blocks to transfer (max 007Fh for Phoenix EDD)
 04h	DWORD	-> transfer buffer
 08h	QWORD	starting absolute block number
		(for non-LBA devices, compute as
		  (Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
		  SelectedSector - 1
 10h	QWORD	(EDD-3.0, optional) 64-bit flat address of transfer buffer;
		  used if DWORD at 04h is FFFFh:FFFFh

Top
134257DX1234 - INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
	AX = 4257h ("BW")
	DX = 1234h
Return: BX = 414Ch if installed
Program: BWLPD is the printer daemon from the BW-NFS package
SeeAlso: INT 62/AH=00h"ETHDEV"

Top
1343 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
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
SeeAlso: AH=03h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=44h

Top
1344 - INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
	AH = 44h
	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 verified
SeeAlso: AH=04h,AH=41h"INT 13 Ext",AH=42h"INT 13 Ext",AH=47h

Top
1345 - INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
	AH = 45h
	AL = operation
	    00h lock media in drive
	    01h unlock media
	    02h check lock status
	DL = drive number
Return: CF clear if successful
	    AH = 00h
	    AL = lock state (00h = unlocked)
	CF set on error
	    AH = error code (see #00234)
Notes:	this function is required to be supported for any removable drives
	  numbered 80h or higher
	a device may be locked even if no media is present in the drive
	up to 255 locks may be placed on a drive, and the media will not
	  be physically unlocked until all locks have been removed
SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"

Top
1346 - INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
	AH = 46h
	AL = 00h (reserved)
	DL = drive number
Return: CF clear if successful
	    AH = 00h
	CF set on error
	    AH = error code (see #00234)
SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"

Top
1347 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
	AH = 47h
	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)
Note:	this function initiates the seek, and may return before the seek
	  actually completes
SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"

Top
1348 - INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
	AH = 48h
	DL = drive (80h-FFh)
	DS:SI -> buffer for drive parameters (see #00273)
Return: CF clear if successful
	    AH = 00h
	    DS:SI buffer filled
	CF set on error
	    AH = error code (see #00234)
BUGS:	several different Compaq BIOSes incorrectly report high-numbered
	  drives (such as 90h, B0h, D0h, and F0h) as present, giving them the
	  same geometry as drive 80h; as a workaround, scan through disk
	  numbers, stopping as soon as the number of valid drives encountered
	  equals the value in 0040h:0075h
	Dell machines using PhoenixBIOS 4.0 Release 6.0 fail to correctly
	  handle this function if the flag word at DS:[SI+2] is not 0000h
	  on entry
SeeAlso: AH=08h,AH=41h,AH=49h,MEM 0040h:0075h

Format of IBM/MS INT 13 Extensions drive parameters:
Offset	Size	Description	(Table 00273)
 00h	WORD	(call) size of buffer
		    (001Ah for v1.x, 001Eh for v2.x, 42h for v3.0)
		(ret) size of returned data
 02h	WORD	information flags (see #00274)
 04h	DWORD	number of physical cylinders on drive
 08h	DWORD	number of physical heads on drive
 0Ch	DWORD	number of physical sectors per track
 10h	QWORD	total number of sectors on drive
 18h	WORD	bytes per sector
---v2.0+ ---
 1Ah	DWORD	-> EDD configuration parameters (see #00278)
		FFFFh:FFFFh if not available
---v3.0 ---
 1Eh	WORD	signature BEDDh to indicate presence of Device Path info
 20h	BYTE	length of Device Path information, including signature and this
		  byte (24h for v3.0)
 21h  3 BYTEs	reserved (0)
 24h  4 BYTEs	ASCIZ name of host bus ("ISA" or "PCI")
 28h  8 BYTEs	ASCIZ name of interface type
		"ATA"
		"ATAPI"
		"SCSI"
		"USB"
		"1394" IEEE 1394 (FireWire)
		"FIBRE" Fibre Channel
 30h  8 BYTEs	Interface Path (see #00275)
 38h  8 BYTEs	Device Path (see #00276)
 40h	BYTE	reserved (0)
 41h	BYTE	checksum of bytes 1Eh-40h (two's complement of sum, which makes
		  the 8-bit sum of bytes 1Eh-41h equal 00h)
Note:	if the size is less than 30 on call, the final DWORD will not be
	  returned by a v2.x implementation; similarly for the Device Path info
SeeAlso: #00277,#03196

Bitfields for IBM/MS INT 13 Extensions information flags:
Bit(s)	Description	(Table 00274)
 0	DMA boundary errors handled transparently
 1	cylinder/head/sectors-per-track information is valid
 2	removable drive
 3	write with verify supported
 4	drive has change-line support (required if drive >= 80h is removable)
 5	drive can be locked (required if drive >= 80h is removable)
 6	CHS information set to maximum supported values, not current media
 15-7	reserved (0)
Note:	bits 4-6 are only valid if bit 2 is set
SeeAlso: #00273

Format of EDD v3.0 Interface Path:
Offset	Size	Description	(Table 00275)
---ISA---
 00h	WORD	16-bit base address
 02h  6 BYTEs	reserved (0)
---PCI---
 00h	BYTE	PCI bus number
 01h	BYTE	PCI device number
 02h	BYTE	PCI function number
 03h  5 BYTEs	reserved (0)
SeeAlso: #00273,#00276

Format of EDD v3.0 Device Path:
Offset	Size	Description	(Table 00276)
---ATA---
 00h	BYTE	flag: 00h = master, 01h = slave
 01h  7 BYTEs	reserved (0)
---ATAPI---
 00h	BYTE	flag: 00h = master, 01h = slave
 01h	BYTE	logical unit number
 02h  6 BYTEs	reserved (0)
---SCSI---
 00h	BYTE	logical unit number
 01h  7 BYTEs	reserved (0)
---USB---
 00h	BYTE	to be determined
 01h  7 BYTEs	reserved (0)
---IEEE1394---
 00h	QWORD	64-bit FireWire General Unique Identifier (GUID)
---FibreChannel---
 00h	QWORD	Word Wide Number (WWN)
SeeAlso: #00273,#00275

Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table:
Offset	Size	Description	(Table 00277)
 00h	WORD	number of cylinders
 02h	BYTE	number of heads
 03h	BYTE	A0h (signature indicating translated table)
 04h	BYTE	number of physical sectors per track
 05h	WORD	starting write precompensation cylinder number
 07h	BYTE	reserved
 08h	BYTE	control byte (see #03198 at INT 41"DISK 0")
 09h	WORD	number of physical cylinders
 0Bh	BYTE	number of physical heads
 0Ch	WORD	cylinder number of landing zone
 0Eh	BYTE	number of logical sectors per track
 0Fh	BYTE	checksum
Program: the Phoenix Enhanced Disk Drive Specification is an addition to the
	  IBM/MS INT 13 extensions
SeeAlso: #00278,#03196

Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table:
Offset	Size	Description	(Table 00278)
 00h	WORD	physical I/O port base address
 02h	WORD	disk-drive control port address
 04h	BYTE	drive flags (see #00279)
 05h	BYTE	proprietary information
		bits 7-4 reserved (0)
		bits 3-0: Phoenix proprietary (used by BIOS)
 06h	BYTE	IRQ for drive (bits 3-0; bits 7-4 reserved and must be 0)
 07h	BYTE	sector count for multi-sector transfers
 08h	BYTE	DMA control
		bits 7-4: DMA type (0-2) as per ATA-2 specification
		bits 3-0: DMA channel
 09h	BYTE	programmed I/O control
		bits 7-4: reserved (0)
		bits 3-0: PIO type (1-4) as per ATA-2 specification
 0Ah	WORD	drive options (see #00280)
 0Ch  2 BYTEs	reserved (0)
 0Eh	BYTE	extension revision level (high nybble=major, low nybble=minor)
		(currently 10h for v1.0 and 11h for v1.1-3.0)
 0Fh	BYTE	2's complement checksum of bytes 00h-0Eh
		8-bit sum of all bytes 00h-0Fh should equal 00h
Note:	this structure is also called the Device Paramter Table Extension
	  (DPTE)
SeeAlso: #00277

Bitfields for Phoenix Enhanced Disk Drive Spec drive flags:
Bit(s)	Description	(Table 00279)
 7	reserved (1)
 6	LBA enabled
 5	reserved (1)
 4	drive is slave
 3-0	reserved (0)
SeeAlso: #00278,#00280

Bitfields for Phoenix Enhanced Disk Drive Spec drive options:
Bit(s)	Description	(Table 00280)
 0	fast PIO enabled
 1	fast DMA access enabled
 2	block PIO (multi-sector transfers) enabled
 3	CHS translation enabled
 4	LBA translation enabled
 5	removable media
 6	ATAPI device (CD-ROM)
 7	32-bit transfer mode
---v1.1+ ---
 8	ATAPI device uses DRQ to signal readiness for packet command
	(must be 0 if bit 6 is 0)
 10-9	translation type (must be 00 if bit 3 is 0)
	00 Phoenix bit-shifting translation
	01 LBA-assisted translation
	10 reserved
	11 proprietary translation
---v3.0---
 11	Ultra DMA access enabled
 15-12	reserved (0)
SeeAlso: #00278,#00279

Top
1349 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
	AH = 49h
	DL = drive number
Return: CF clear if media has not changed
	    AH = 00h
	CF set if media may have changed
	    AH = 06h (see #00234)
Note:	unlike AH=16h, any drive number may be specified
SeeAlso: AH=16h,AH=41h"INT 13 Ext",AH=46h

Top
134A - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
	AH = 4Ah
	AL = 00h
	DS:SI -> specification packet (see #00281)
Return: CF clear if successful
	CF set on error (drive will not be in emulation mode)
	AX = return codes
SeeAlso: AH=48h,AX=4B00h,AH=4Ch,AH=4Dh

Format of Bootable CD-ROM Specification Packet:
Offset	Size	Description	(Table 00281)
 00h	BYTE	size of packet in bytes (13h)
 01h	BYTE	boot media type (see #00282)
 02h	BYTE	drive number
		00h floppy image
		80h bootable hard disk
		81h-FFh nonbootable or no emulation
 03h	BYTE	CD-ROM controller number
 04h	DWORD	Logical Block Address of disk image to emulate
 08h	WORD	device specification (see also #00282)
		(IDE) bit 0: drive is slave instead of master
		(SCSI)	bits 7-0: LUN and PUN
			bits 15-8: bus number
 0Ah	WORD	segment of 3K buffer for caching CD-ROM reads
 0Ch	WORD	load segment for initial boot image
		if 0000h, load at segment 07C0h
 0Eh	WORD	number of 512-byte virtual sectors to load
		(only valid for AH=4Ch)
 10h	BYTE	low byte of cylinder count (for INT 13/AH=08h)
 11h	BYTE	sector count, high bits of cylinder count (for INT 13/AH=08h)
 12h	BYTE	head count (for INT 13/AH=08h)
SeeAlso: #00283,AH=08h

Bitfields for Bootable CD-ROM boot media type:
Bit(s)	Description	(Table 00282)
 3-0	media type
	0000 no emulation
	0001 1.2M diskette
	0010 1.44M diskette
	0011 2.88M diskette
	0100 hard disk (drive C:)
	other reserved
 5-4	reserved (0)
 6	image contains ATAPI driver
 7	image contains SCSI driver(s)
SeeAlso: #00281

Top
134B00 - INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
	AX = 4B00h
	DL = drive number or 7Fh to terminate all emulations
	DS:SI -> empty specification packet (see #00281)
Return: CF clear if successful
	CF set on error (drive will still be in emulation mode)
	AX = return codes
	DS:SI specification packet filled
SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh

Top
134B01 - INT 13 - Bootable CD-ROM - GET STATUS
INT 13 - Bootable CD-ROM - GET STATUS
	AX = 4B01h
	DL = drive number
	DS:SI -> empty specification packet (see #00281)
Return: CF clear if successful
	CF set on error
	AX = return codes
	DS:SI specification packet filled
Note:	same as AX=4B00h, but does not terminate emulation
SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch,AH=4Dh

Top
134C - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
	AH = 4Ch
	AL = 00h
	DS:SI -> specification packet (see #00281)
Return: never, if successful
	CF set (error while attempting to boot)
	AX = error codes
SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Dh

Top
134D00 - INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
	AX = 4D00h
	DS:SI -> command packet (see #00283)
Return: CF clear if successful
	CF set on error
	AX = return codes
SeeAlso: AH=48h,AH=4Ah,AX=4B00h,AH=4Ch

Format of Bootable CD-ROM "get boot catalog" command packet:
Offset	Size	Description	(Table 00283)
 00h	BYTE	size of packet in bytes (08h)
 01h	BYTE	number of sectors of boot catalog to read
 02h	DWORD	-> buffer for boot catalog
 06h	WORD	first sector in boot catalog to transfer
SeeAlso: #00281

Top
134E - INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION
INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION
	AH = 4Eh
	AL = function
	    00h enable prefetch
	    01h disable prefetch
	    02h set maximum PIO transfer mode
	    03h set PIO mode 0
	    04h set default PIO transfer mode
	    05h enable INT 13h DMA maximum mode
	    06h disable INT 13h DMA
	DL = drive number
Return: CF clear if successful
	    AH = 00h
	    AL = status
		00h command was safe (only affected specified drive)
		01h other devices are affected
	CF set on error
	    AH = error code (see #00234)
Note:	DMA and PIO modes are mutually exclusive, so selecting DMA disables
	  PIO (for either the specified device or all devices on that
	  controller), and selecting PIO disables DMA
SeeAlso: AH=41h"INT 13 Extensions",AX=5001h"Enhanced Disk Drive"

Top
135001 - INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
	AX = 5001h
	DL = drive number
	ES:BX -> command packet (see #00284)
Return: CF clear if successful
	    AH = 00h
	CF set on error
	    AH = error code
Desc:	send data to and from a serial packet-oriented device, such as IEEE1394
	  and USB
SeeAlso: AH=41h"INT 13 Extensions",AH=4Eh

Format of Enhanced Disk Drive Spec v3.0 command packet:
Offset	Size	Description	(Table 00284)
 00h	WORD	signature B055h
 02h	BYTE	length of packet in bytes
 03h	BYTE	reserved (0)
 04h  N BYTEs	formatted packet data

Top
135001 - INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK
	AX = 5001h
Return: AX = 0150h if resident
SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56h

Top
135342CX0001 - INT 13 - ScanBoot - INSTALLATION CHECK
INT 13 - ScanBoot - INSTALLATION CHECK
	AX = 5342h ("SB")
	CX = 0001h
	DX = 0000h
Return: CF clear if ScanBoot installed
	   AX = 0000h
	   CX = serial number ("SW" if shareware release)
	   DX = version
	   BX,SI,ES destroyed
Program: ScanBoot is a virus-detection TSR by PanSoft

Top
135501 - INT 13 - Seagate ST01/ST02 - Inquiry
INT 13 - Seagate ST01/ST02 - Inquiry
	AX = 5501h
	DH = number of bytes to transfer
	DL = drive ID (80h, 81h, ...)
	ES:BX -> buffer for results
Return: ES:BX buffer filled with the Inquiry results
Notes:	the ST01/ST02 BIOS does not return any success/failure indication,
	  so all commands must be assumed to have been successful
	the ST01/ST02 BIOS always maps its drives after the previous BIOS
	  drives without changing the BIOS drive count at 0040h:0075h
	this command is identical to the SCSI Inquiry command

Top
135502 - INT 13 - Seagate ST01/ST02 - RESERVED
INT 13 - Seagate ST01/ST02 - RESERVED
	AX = 5502h

Top
135503 - INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
	AX = 5503h
	DH = DTQ byte (see #00285)
	DL = drive ID (80h, 81h, ...)
Return: nothing

Bitfields for DTQ byte:
Bit(s)	Description	(Table 00285)
 7	reserved
 6	SCSI drive attached
 5	reserved
 4	selected drive is ST225N/NP (Paired)
 3	selected drive is ST225N
 2	Host Adapter checks parity on the selected drive
 1	selected drive has been installed
 0	Seagate installation software present

Top
135504 - INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
	AX = 5504h
	DX = drive (bit 7 set for hard disk)
Return: CF clear if successful
	    AX = 4321h if ST01/ST02h
	    AX = 4322h if ??? Seagate controller
	CF set on error
SeeAlso: AX=5505h,AX=5514h

Top
135504 - INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
	AX = 5504h
	DL = drive ID (80h, 81h, ...)
Return: AX = 4321h
	BL = selected drive number (00h, 01h)
	BH = number of drives attached to Host Adapter (max. 2)

Top
135505 - INT 13 - Seagate - ??? - PARK HEADS
INT 13 - Seagate - ??? - PARK HEADS
	AX = 5505h
	DX = drive (bit 7 set for hard disk)
Return: CF clear if successful
	CF set on error
SeeAlso: AX=5504h,AX=5515h

Top
135505 - INT 13 - Seagate ST01/ST02 - PARK HEADS
INT 13 - Seagate ST01/ST02 - PARK HEADS
	AX = 5505h
	DL = drive ID (80h, 81h, ...)
	DH = subfunction
	    00h park heads (SCSI Stop command)
	    01h un-park heads (SCSI Start command)
Return: nothing

Top
135506 - INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
	AX = 5506h
	DL = drive ID (80h, 81h, ...)
	DH = subfunction
	    00h disable parity check
	    01h enable parity check
	    02h return current parity setting
Return: AL = status
	    00h parity checking disabled
	    01h parity checking enabled

Top
135507 - INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
	AX = 5507h to 550Dh
Note:	officially listed as "reserved"

Top
135514 - INT 13 U - Seagate - ???
INT 13 U - Seagate - ???
	AX = 5514h
	DX = drive (bit 7 set for hard disk)
Return: CF clear if successful
	CF set on error
	AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
SeeAlso: AX=5504h,AX=5515h

Top
135515 - INT 13 U - Seagate - PARK HEADS???
INT 13 U - Seagate - PARK HEADS???
	AX = 5515h
	DX = drive (bit 7 set for hard disk)
Return: CF clear if successful
	CF set on error
Note:	appears to be identical to AX=5505h
SeeAlso: AX=5504h,AX=5505h

Top
1359 - INT 13 - SyQuest - Generic SCSI pass through
INT 13 - SyQuest - Generic SCSI pass through
	AH = 59h
	CX = HOST_ID, 0-based
	DX = 80h
	ES:BX pointer to SCSI structure (see #00286)
Return: CF clear
	AH = 95h
SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"

Format of SyQuest SCSI structure:
Offset	Size	Description	(Table 00286)
 00h	WORD	opcode (see #00287)
 02h	BYTE	target's SCSI ID
 03h	BYTE	target's logical unit number
 04h	BYTE	data direction (00h no data xfer, 01h data in, FFh data out)
 05h	BYTE	host status
		00h successful
		01h selection time out
		02h data over-run or under-run
 06h	BYTE	target status at command completion
		00h successful
		02h check status
		08h busy
 07h	BYTE	command data block length
 08h	DWORD	request data length
 0Ch	DWORD	result data length (actual length of data transferred)
 10h	DWORD	-> CDB (see #03236,#03237,#03238)
 14h	DWORD	-> data buffer
Note:	The handler does not perform a 'Request Sense' command if there was an
	  error

(Table 00287)
Values for SCSI opcode:
 00h	verify interface
	clears carry flag and returns if function is available
 01h	returns the ID of the INT 13h Handler in a NULL terminated string of
	length less than 40 byte including the terminator.
	The string is stored in the buffer pointed by p_buf.
 02h	device mapping info. The caller provides a one byte buffer.
	The handler stores the Int 13h Device ID (80h or above) in the buffer.
	It stores 0 if that target does not exists.
 03h	execute SCSI command
 04h	device reset
 05h	SCSI bus reset
SeeAlso: #00286

Top
1370 - INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
	AH = 70h
	???
Return: ???
Note:	Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
	  formatting program) make this call, presumably to EDVR.SYS (the
	  partitioning driver)
SeeAlso: AH=ADh

Top
1375 - INT 13 - ???
INT 13 - ???
	AH = 75h
	???
Return: AH = ???
	???
Note:	intercepted by PC-Cache (v5.1 only)

Top
1376 - INT 13 - ???
INT 13 - ???
	AH = 76h
	???
Return: AH = ???
	???
Note:	intercepted by PC-Cache (v5.1 only)

Top
137B00 - INT 13 - NOW! v3.05 - GET INFORMATION
INT 13 - NOW! v3.05 - GET INFORMATION
	AX = 7B00h
	CX:DX -> 1F8h-byte buffer for information record (see #00288)
Return: AX = 0000h
	BX = segment of main resident code
	ES = ???
Program: NOW! is a disk cache by Vertisoft Systems, Inc.
SeeAlso: AX=7B02h,AH=EFh

Format of NOW! information record:
Offset	Size	Description	(Table 00288)
 00h 80 BYTEs	name of directory from which NOW! was started
 50h 424 BYTEs	???
 81h  ? BYTEs	array of bytes for ???
 F7h 250 BYTEs	array of 25 entries, one per drive???
	Offset	Size	Description
	 00h  2 BYTEs	???
	 02h	WORD	???
	 04h	WORD	???
	 06h  4 BYTEs	???
1F1h  7 BYTEs	???

Top
137B01 - INT 13 - NOW! v3.05 - ???
INT 13 - NOW! v3.05 - ???
	AX = 7B01h
Return: DX = segment of ???
SeeAlso: AX=7B00h

Top
137B02 - INT 13 - NOW! v3.05 - SET INFORMATION
INT 13 - NOW! v3.05 - SET INFORMATION
	AX = 7B02h
	BX = segment of ??? (10h above a PSP)
	CX:DX -> 1F8h-byte information record (see #00288)
Return: ???
Program: NOW! is a disk cache by Vertisoft Systems, Inc.
Note:	NOW! grabs the INT 24h value from the PSP reached via the segment in
	  BX
SeeAlso: AX=7B00h

Top
137B03 - INT 13 - NOW! v3.05 - ???
INT 13 - NOW! v3.05 - ???
	AX = 7B03h
	???
Return: ???
SeeAlso: AX=7B00h,AX=7B04h

Top
137B04 - INT 13 - NOW! v3.05 - ???
INT 13 - NOW! v3.05 - ???
	AX = 7B04h
	???
Return: ???
SeeAlso: AX=7B03h

Top
137B05 - INT 13 - NOW! v3.05 - GET DISK ACCESSES???
INT 13 - NOW! v3.05 - GET DISK ACCESSES???
	AX = 7B05h
Return: BX:AX = number of physical accesses???
	DX:CX = total disk accesses???
SeeAlso: AX=7B00h,AX=7B06h

Top
137B06 - INT 13 - NOW! v3.05 - GET ???
INT 13 - NOW! v3.05 - GET ???
	AX = 7B06h
	BX = ???
Return: AX = 0000h
	BX = ???
SeeAlso: AX=7B05h,AX=7B07h

Top
137B07 - INT 13 - NOW! v3.05 - GET ???
INT 13 - NOW! v3.05 - GET ???
	AX = 7B07h
Return: AX = ???
	BX = ???
	CX = ???
	DX = ???
SeeAlso: AX=7B06h

Top
137B08 - INT 13 - NOW! v3.05 - ???
INT 13 - NOW! v3.05 - ???
	AX = 7B08h
	CX = ??? (default 00h)
Return: ???
SeeAlso: AX=7B00h

Top
1380--CX6572 - INT 13 - FAST! v4.02+ - API
INT 13 - FAST! v4.02+ - API
	AH = 80h
	CX = 6572h
	DX = 1970h
	ES:BX -> request packet (see #00290)
	AL = function number (see #00289)
Return: AH = status (except function 06h)
	    00h if successful
	    01h invalid function
	    05h not supported by the installed variant
	CF clear if successful
	CF set on error
	AL may be destroyed
Program: FAST! is a disk cache by Future Computing Systems and marketed by
	  BLOC Publishing Corp.
SeeAlso: AX=8001h,AX=8006h,AX=8007h
Index:	hotkeys;FAST!

(Table 00289)
Values for FAST! function:
 01h	get cache information (see AX=8001h)
 04h	disable cache
 05h	enable cache and reset statistics
 06h	installation check (see AX=8006h)
 07h	unhook interrupts (see AX=8007h)
 09h	flush cache
 0Ah	(v4.02+) enable staged writes
 0Bh	(v4.02+) disable staged writes
 0Ch	(v4.02+) enable beep on flush
 0Dh	(v4.02+) disable beep on flush
 0Eh	???
 0Fh	???
 10h	(v4.12+) enable hotkeys
 11h	(v4.12+) disable hotkeys
 12h	(v4.13+) set idle delay
 13h	(v4.13+) set flush dirty percentage
 14h	(v5.00+) enable mouse checks
 15h	(v5.00+) disable mouse checks
 16h	(v5.00d+) reduce cache size to minimum
 17h	(v5.00d+) increase cache size to maximum

Format of FAST! request packet:
Offset	Size	Description	(Table 00290)
 00h	DWORD	pointer to 19-byte signature string (see #00291)
 04h	DWORD	pointer to buffer for data (if needed by function)

(Table 00291)
Values for FAST! v4.04-v5.03 signature string:
 13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h

Top
138001CX6572 - INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
	AX = 8001h
	CX = 6572h
	DX = 1970h
	ES:BX -> request packet (see #00292)
Return: AH = 00h if successful
SeeAlso: AH=80h,AX=8006h

Format of FAST! request packet:
Offset	Size	Description	(Table 00292)
 00h	DWORD	-> 19-byte signature string (see #00291)
 04h	DWORD	-> buffer for cache information (see #00293)

Format of FAST! cache information (v5.00-5.03):
Offset	Size	Description	(Table 00293)
 00h	WORD	binary version number of FAST! (v5.00 = 01F4h)
 02h	BYTE	revision letter (61h = X.XXa, 62h = X.XXb, etc.)
 03h	BYTE	FAST! variant
		(01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
 04h	DWORD	total number of read requests
 08h	DWORD	number of physical disk reads
 0Ch	DWORD	grabbed hash buckets
 10h	DWORD	"st_386mem"
 14h	DWORD	total number of writes (only counted when staging enabled)
 18h	DWORD	number of physical disk writes (only when staging enabled)
 1Ch	DWORD	number of write errors while flushing cache
 20h	WORD	flags1 (see #00294)
 22h	WORD	flags
		bit 0: ???
		bit 1: staged writes enabled
 24h	WORD	???
 26h	WORD	maximum cache size in KB
 28h	WORD	minimum cache size in KB
 2Ah	WORD	segment of first cache buffer (FASTC)
		segment of EMS page frame (FASTE)
		XMS handle (FASTX XMS)
 2Ch	WORD	number of hash buckets containing no entries
 2Eh	WORD	number of hash buckets containing one entry
 30h	WORD	number of hash buckets containing two entries
 32h	WORD	number of hash buckets containing three entries
 34h	WORD	number of hash buckets containing four entries
 36h	WORD	number of hash buckets containing five entries
 38h	WORD	maximum contiguous sectors
 3Ah	WORD	hash factor
 3Ch	WORD	number of paragraphs of memory used below 1M
 3Eh	WORD	entries per hash bucket
 40h	WORD	idle delay in seconds
 42h  2 BYTEs	???
 44h	WORD	staged write threshold percentage
 46h  2 BYTEs	???
 48h	WORD	number of dirty sectors
 4Ah	WORD	number of staged write buffers
 4Ch	WORD	current cache size in KB
 4Eh	WORD	beep frequency in Hz
 50h	WORD	???
 52h	WORD	???

Bitfields for FAST! flags1:
Bit(s)	Description	(Table 00294)
 0	beep on flush
 3	hotkeys enabled
 4	mouse idle check enabled
 8	caching enabled
 13	???

Top
138006CX6572 - INT 13 - FAST! v4.02+ - INSTALLATION CHECK
INT 13 - FAST! v4.02+ - INSTALLATION CHECK
	AX = 8006h
	CX = 6572h
	DX = 1970h
	ES:BX -> request packet (see #00295)
Return: AX = 1965h if installed
SeeAlso: AH=80h,AX=8001h,AX=8007h

Format of FAST! request packet:
Offset	Size	Description	(Table 00295)
 00h	DWORD	-> 19-byte signature string (see #00291)

Top
138007CX6572 - INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
	AX = 8007h
	CX = 6572h
	DX = 1970h
	ES:BX -> request packet (see #00296)
Return: AX = 1965h if installed
SeeAlso: AH=80h,AX=8006h
Index:	uninstall;FAST!

Format of FAST! request packet:
Offset	Size	Description	(Table 00296)
 00h	DWORD	-> 19-byte signature string (see #00291)

Top
1381--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = 81h
	SI = 4358h
	???
Return: ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
	  to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
	returns immediately in PC-Cache v5.x
Index:	PC-Cache|Qualitas Qcache

Top
1382--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = 82h
	SI = 4358h
	???
Return: AL = ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call
SeeAlso: AH=84h
Index:	PC-Cache|Qualitas Qcache

Top
1383--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = 83h
	SI = 4358h
	AL = ???
	ES:BX -> ???
	???
Return: ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call
SeeAlso: AH=85h
Index:	PC-Cache|Qualitas Qcache

Top
1384--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = 84h
	SI = 4358h
	AL = ???
	???
Return: AL = ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call
SeeAlso: AH=82h
Index:	PC-Cache|Qualitas Qcache

Top
1385--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = 85h
	SI = 4358h
	AL = ???
	DL = ???
	???
Return: ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
	  to PC-Kwik v3.20)
SeeAlso: AH=83h
Index:	PC-Cache|Qualitas Qcache

Top
1386--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
INT 13 - Super PC-Kwik v4.00+ - ???
	AH = 86h
	SI = 4358h
	???
Return: ???
Note:	Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
	  thus supports this call
Index:	Qualitas Qcache

Top
1387--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
INT 13 - Super PC-Kwik v4.00+ - ???
	AH = 87h
	SI = 4358h
	???
Return: AH = status??? (00h)
	CX = ???
	DX = ??? (0000h)
Note:	Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
	  thus supports this call
Index:	Qualitas Qcache

Top
1388--SI4358 - INT 13 - Super PC-Kwik v4.00+ - ???
INT 13 - Super PC-Kwik v4.00+ - ???
	AH = 88h
	SI = 4358h
	???
Return: AH = status??? (00h)
	CX = ???
	DX = ??? (0000h)
Note:	Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
	  thus supports this call
Index:	Qualitas Qcache

Top
1389--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 89h
	SI = 4358h
	???
Return: ???

Top
138A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 8Ah
	SI = 4358h
	???
Return: ???

Top
138EED - INT 13 - HyperDisk v4.01+ - ???
INT 13 - HyperDisk v4.01+ - ???
	AX = 8EEDh
	???
Return: ???
Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AX=DF00h

Top
138EEE - INT 13 - HyperDisk v4.01+ - ???
INT 13 - HyperDisk v4.01+ - ???
	AX = 8EEEh
Return: CF set
	AX = CS of HyperDisk resident code
	???
Note:	identical to AX=8EEFh in HYPERDKX v4.21-4.30
SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh

Top
138EEF - INT 13 - HyperDisk v4.01+ - ???
INT 13 - HyperDisk v4.01+ - ???
	AX = 8EEFh
Return: CF set
	AX = CS of HyperDisk resident code
	???
Note:	identical to AX=8EEEh in HYPERDKX v4.21-4.30
SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh

Top
1392--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 92h
	SI = 4358h
	???
Return: AH = status??? (00h)
	DL = ???
SeeAlso: AH=93h

Top
1393--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 93h
	SI = 4358h
	???
Return: AH = status??? (00h)
	AL = ???
SeeAlso: AH=92h

Top
1394--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 94h
	SI = 4358h
	???
Return: ???

Top
1395--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 95h
	SI = 4358h
	???
Return: AH = status??? (00h)
	DX = ???

Top
1396--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 96h
	SI = 4358h
	AL = ??? (01h)
	BX = ??? (0790h)
	DL = ???
Return: AH = status??? (00h)
	DX = ???

Top
1397--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 97h
	SI = 4358h
	???
Return: ???

Top
1398--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 98h
	SI = 4358h
	???
Return: ???

Top
1399--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 99h
	SI = 4358h
	???
Return: ???

Top
139A--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 9Ah
	SI = 4358h
	???
Return: ???

Top
139B--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 9Bh
	SI = 4358h
	???
Return: ???

Top
139C--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 9Ch
	SI = 4358h
	???
Return: ???
Note:	functions 9Ch and 9Dh are the only ones which are fully reentrant; all
	  other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
	  if a previous call is still in progress

Top
139D--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = 9Dh
	SI = 4358h
	???
Return: ???

Top
13A0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
	AH = A0h
	SI = 4358h
Return: AX = segment of resident code
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
	  corresponds to PC-Kwik v3.27)
SeeAlso: INT 16/AX=FFA5h/CX=1111h
Index:	PC-Cache|Qualitas Qcache

Top
13A1--SI4358 - INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
	AH = A1h
	SI = 4358h
Return: CF clear
	AH = 00h (v5.10)
Notes:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
	  corresponds to PC-Kwik v3.20)
	this function is one out of several cache flush calls issued by the
	  PTS-DOS 6.51 and S/DOS 1.0 kernel before rebooting.
SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
Index:	PC-Cache|Qualitas Qcache

Top
13A2--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = A2h
	SI = 4358h
	???
Return: ???
Note:	PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
	  Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
	  corresponds to PC-Kwik v3.20)
Index:	PC-Cache|Qualitas Qcache

Top
13A3--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
	AH = A3h
	SI = 4358h
Return: CF clear
SeeAlso: AH=A4h

Top
13A4--SI4358 - INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
	AH = A4h
	SI = 4358h
Return: CF clear
SeeAlso: AH=A3h

Top
13A5--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
	AH = A5h
	SI = 4358h
Return: AX = ???
	SI = ???
Notes:	called and used internally by Super PC-Kwik when a program terminates
	  via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
	this call is not supported by Qualitas Qcache 4.00
Index:	PC-Cache
SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch

Top
13A6--SI4358 - INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
	AH = A6h
	SI = 4358h
	DS:DX -> ASCIZ program name
	ES:BX -> EXEC data block (see #01590 at INT 21/AH=4Bh)
Return: ???
Note:	called and used internally by Super PC-Kwik when a program is loaded
	  with INT 21/AX=4B00h
SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh

Top
13A7--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
INT 13 CU - Super PC-Kwik 5.1 - ???
	AH = A7h
	SI = 4358h
Return: ???
Note:	called and used internally by Super PC-Kwik on some INT 21 calls
SeeAlso: AH=A5h,AH=A6h,AH=A8h

Top
13A759 - INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
	AX = A759h
Return: AX = 59A7h if installed
	    DX:BX -> ??? data
Program: SDRes is the resident portion of the Search&Destroy antiviral by
	  Fifth Generation Systems, as bundled with Novell DOS 7
SeeAlso: INT 21/AH=0Eh/DL=ADh

Top
13A8--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - ???
INT 13 CU - Super PC-Kwik 5.1 - ???
	AH = A8h
	SI = 4358h
Return: ???
Note:	called and used internally by Super PC-Kwik on some INT 21 calls
SeeAlso: AH=A5h,AH=A6h,AH=A7h

Top
13A9--SI4358 - INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
	AH = A9h
	SI = 4358h
Return: ???
Note:	called and used internally by Super PC-Kwik when an application issues
	  INT 21/AH=4Dh
SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh

Top
13AA--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
INT 13 - Super PC-Kwik v4+ - ???
	AH = AAh
	SI = 4358h
	???
Return: ???
Note:	Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
	  this call

Top
13AB--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
INT 13 - Super PC-Kwik v4+ - ???
	AH = ABh
	SI = 4358h
	???
Return: ???
Note:	Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
	  this call

Top
13AC--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
INT 13 - Super PC-Kwik v4+ - ???
	AH = ACh
	SI = 4358h
	???
Return: ???
Note:	Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
	  this call

Top
13AD - INT 13 - Priam HARD DISK CONTROLLER???
INT 13 - Priam HARD DISK CONTROLLER???
	AH = ADh
	???
Return: ???
Note:	this call is made from Priam's EFMT.EXE (low-level formatter), probably
	  to check the ROM type on the controller for their hard disk kits
SeeAlso: AH=70h

Top
13AD--SI4358 - INT 13 - Super PC-Kwik v4+ - ???
INT 13 - Super PC-Kwik v4+ - ???
	AH = ADh
	SI = 4358h
	???
Return: ???
Note:	Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
	  this call

Top
13AE--SI4358 - INT 13 - Super PC-Kwik v5.10+ - ???
INT 13 - Super PC-Kwik v5.10+ - ???
	AH = AEh
	SI = 4358h
	???
Return: ???

Top
13B0--SI4358 - INT 13 - Super PC-Kwik v3.20+ - ???
INT 13 - Super PC-Kwik v3.20+ - ???
	AH = B0h
	SI = 4358h
	???
Return: ???
Note:	PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
	  supports this call; Qualitas Qcache does not support it
Index:	PC-Cache

Top
13BF00 - INT 13 - Mylex/Adaptec??? - ???
INT 13 - Mylex/Adaptec??? - ???
	AX = BF00h
	BX = PCI address???
	DI = 0000h ???
	DL = drive number (80h = C:)
Return: ???
Note:	some poorly-commented code using this function notes that there had
	  been a workaround for some Mylex BIOS bug by setting DL to 8Fh

Top
13E000 - INT 13 - XBIOS - COMMAND
INT 13 - XBIOS - COMMAND
	AX = E000h
	CX = 0
	DL = drive number (80h,81h,82h,83h)
	ES:BX = pointer to XBIOS Command Block (see #00297)
Return: CF clear if successful
	    CX = 1234h XBIOS Signature
	CF set on error
Program: XBIOS is a driver in some versions of Disk Manager that is
	  loaded from the disk MBR, replacing the ROM BIOS disk support
	  e.g. adding LBA mode support, and read/write multiple.
SeeAlso: AH=F9h"SWBIOS"

Format of XBIOS Command Block:
Offset	Size	Description	(Table 00297)
 00h	BYTE	function
		0Eh Get XBIOS Configuration Information
		    Return: buffer points to Ontrackr_Ref_Data structure
			(see #00298)
 01h	BYTE	reserved (must be zero before function call)
 02h	DWORD	buffer pointer - Input or output depending on opcode
SeeAlso: #00298,#00299

Format of Ontrackr_Ref_Data structure:
Offset	Size	Description	(Table 00298)
 00h	WORD	Size of structure (33h)
 02h	BYTE	VxD Chain mode
 03h 12 BYTEs	Drive 1: Ontrackr_VxD_Data structure (see #00299)
 0Fh 12 BYTEs	Drive 2: Ontrackr_VxD_Data structure
 1Bh 12 BYTEs	Drive 3: Ontrackr_VxD_Data structure
 27h 12 BYTEs	Drive 4: Ontrackr_VxD_Data structure (see #00299)
SeeAlso: #00297,#00299

Format of Ontrackr_VxD_Data structure:
Offset	Size	Description	(Table 00299)
 00h	BYTE	INT 13h drive number
 01h	DWORD	Delta skew value
 05h	BYTE	Physical  heads (Word 3 of Identify Data)
 06h	BYTE	Physical sectors per track (Word 6 of Identify Data)
 07h	BYTE	Multiple Block Size (Blocking factor)
 08h	BYTE	Read/Write Multiple disable flags
		00001000b	drive supports r/w multiple
		00000100b	do not use read multiple
		00000010b	do not use write multiple
 09h	WORD	Base port address (1F0/170)
 0Bh	BYTE	Hardware interrupt channel (14/15)
SeeAlso: #00298

Top
13EC00 - INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK
	AX = EC00h
Return: CF clear if installed
SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920h

Top
13EE - INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
	AH = EEh
	DL = drive number (80h, 81h)
Return: CF clear
	   AH = 00h
Program: SWBIOS is a TSR by Ontrack Computer Systems
Desc:	the following INT 13 call will add 1024 to the specified cylinder
	  number to get the actual cylinder number desired
Notes:	the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
	Disk Manager also supports these calls
	this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
	  in order to allow caching of drives using SWBIOS to access more than
	  1024 cylinders
	for software which supports that call, this function is equivalent to
	  calling AH=EFh with CX=0400h
SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AX=DF00h
Index:	PC-Cache;huge disks|Disk Manager

Top
13EF - INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
	AH = EFh
	CX = cylinder offset for next INT 13 call
	DL = drive number (80h, 81h)
Return: CF clear
	    AH = 00h
Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
	  IDE drives supporting the read multiple and write multiple commands
Desc:	the following INT 13 call will add the number given by this call to
	  the specified cylinder to get the actual cylinder number, then reset
	  the offset to zero
Note:	this function is also supported by the NOW! disk cache, and presumably
	  newer versions of SWBIOS and Disk Manager
	for software which supports this call, AH=EEh is equivalent to calling
	  this function with CX=0400h
	the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
	  and AH=EFh
SeeAlso: AX=7B00h

Top
13F2 - INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
INT 13 - VIRUS - "Neuroquila" - INSTALLATION CHECK
	AH = F2h
Return: CF ??? if installed
SeeAlso: AX=EC00h,INT 12/AX=4350h/BX=4920h,INT 21/AX=0B56h

Top
13F9 - INT 13 - SWBIOS - INSTALLATION CHECK
INT 13 - SWBIOS - INSTALLATION CHECK
	AH = F9h
	DL = drive number (80h,81h)
Return: CF clear
	    DX = configuration word
		bit 15 set if other SWBIOS extensions available
	CF set on error
Program: SWBIOS is a TSR by Ontrack Computer Systems
	XBIOS is a driver in some versions of Disk Manager that is
	  loaded from the disk MBR, replacing the ROM BIOS disk support
	  eg adding LBA mode support, and read/write multiple.
Note:	Disk Manager also supports these calls
SeeAlso: AH=EEh,AX=E000h"XBIOS",AH=FFh"EZ-Drive"
Index:	Disk Manager

Top
13FA--DX5945 - INT 13 - PC Tools v8+ VSAFE, VWATCH - API
INT 13 - PC Tools v8+ VSAFE, VWATCH - API
	AH = FAh
	DX = 5945h
	AL = function (00h-07h)
Return: varies by function
	if not installed:
	    CF set
		AH = 01h
Note:	this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
	  so it is listed in its entirety under INT 16/AX=FA00h and following
SeeAlso: INT 16/AX=FA00h

Top
13FD50 - INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
INT 13 - VIRUS - "Predator" - INSTALLATION CHECK
	AX = FD50h
Return: AX = 50FDh if resident
SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"

Top
13FE - INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
	AH = FEh
	DL = drive number (80h, 81h)
Return: CF clear
	DX = number of cylinders beyond 1024 on drive
Program: SWBIOS is a TSR by Ontrack Computer Systems
Notes:	standard INT 13/AH=08h will return a cylinder count truncated to 1024
	BIOS without this extension would return count modulo 1024
	Disk Manager also supports these calls
SeeAlso: AH=EEh

Top
13FF - INT 13 - EZ-Drive - INSTALLATION CHECK
INT 13 - EZ-Drive - INSTALLATION CHECK
	AH = FFh
	DL = drive number (80h)
Return: CF clear
	    AX = AA55h
	    ES:BX -> string "AERMH13Vxx", where xx is the version number of
		  the EZ-Drive driver
	CF set on error
Program: EZ-Drive is a driver by Micro House that is loaded from the
	  hard disk MBR, replacing the ROM BIOS disk support, eg adding
	  LBA mode support, and read/write multiple.
Note:	this function is called by the Windows95 Master Boot Record
SeeAlso: AX=E000h"XBIOS",AH=F9h"SWBIOS"

Top
13FF - INT 13 - IBM SurePath BIOS - Officially "Private" Function
INT 13 - IBM SurePath BIOS - Officially "Private" Function
	AH = FFh

Top
13FFFFBHAA - INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
	AX = FFFFh
	BH = AAh
	BL = subfunction
	    00h installation check
		Return: AX = 1234h if installed
	    01h turn on Turbo mode
	    02h turn off Turbo mode
	    03h set Turbo mode according to hardware switch
	    04h set disk access to Turbo mode
	    05h set disk access to Normal mode
Return: nothing
SeeAlso: INT 15/AH=DFh
Index:	installation check;UNIQUE UX Turbo Utility

Top
Home Interrupt Index: by Category by Number TOC: by Order Top