首页  编辑  

Int13的一些资料

Tags: /超级猛料/Hardware.硬件相关/驱动器相关/硬盘/   Date Created:

int13 的新资料,也许对你有帮助,很长

--------B-1300-------------------------------

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

--------B-1301-------------------------------

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)

BBh    undefined error (hard disk)

CCh    write fault (hard disk)

E0h    status register error (hard disk)

FFh    sense operation failed (hard disk)

SeeAlso: #M0022

--------B-1302-------------------------------

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 v7 [Win95]) have a bug which prevents

     booting on hard disks with 256 heads, so many modern BIOSes provide

     mappings with at most 255 heads

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

--------B-1303-------------------------------

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

--------B-1304-------------------------------

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 11/15/85)

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; the write should be retried at least three times, resetting

     the disk with AH=00h between attempts

   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

SeeAlso: AH=02h,AH=44h,INT 4D/AH=04h,INT 4D/AH=06h

--------B-1305-------------------------------

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

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)

--------B-1305-------------------------------

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

--------d-1305-------------------------------

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)

--------d-13057FSI324D-----------------------

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 Garcia 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"

--------B-1306-------------------------------

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"

--------d-1306-------------------------------

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

--------d-1306-------------------------------

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

--------d-1306-------------------------------

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"

--------B-1307-------------------------------

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

--------d-1307-------------------------------

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"

--------d-1307-------------------------------

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"

--------B-1308-------------------------------

INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)

   AH = 08h

   DL = drive (bit 7 set for hard disk)

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

   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

   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

   the PC-Tools PCFORMAT program requires that AL=00h before it will

     proceed with the formatting

BUG:    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

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

--------d-1308-------------------------------

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"

--------y-130800DLF0-------------------------

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.

--------B-1309-------------------------------

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"

--------B-130A-------------------------------

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

SeeAlso: AH=02h,AH=0Bh,MEM 0040h:0074h

--------B-130B-------------------------------

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

--------B-130C-------------------------------

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

--------B-130D-------------------------------

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

--------B-130E-------------------------------

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

--------B-130F-------------------------------

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

--------B-1310-------------------------------

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

--------B-1311-------------------------------

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

--------B-1312-------------------------------

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

--------d-1312-------------------------------

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)

--------d-1312-------------------------------

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"

--------B-1313-------------------------------

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"

--------d-1313-------------------------------

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"

--------B-1314-------------------------------

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

--------B-1315-------------------------------

INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)

   AH = 15h

   DL = drive number (bit 7 set for hard disk)

Return: CF clear if successful

       AH = type code

       00h no such drive

       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

   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

SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI",MEM 0040h:0075h

--------B-1316-------------------------------

INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)

   AH = 16h

   DL = drive number (00h-7Fh)

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

BUG:    some versions of Award 386 Modular BIOS and AMI BIOS fail to clear

     the media-change status

SeeAlso: AH=15h,AH=49h

--------B-1317-------------------------------

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

--------d-131700-----------------------------

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

--------B-1318-------------------------------

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

--------d-1318-------------------------------

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)

--------d-1318--CX5055-----------------------

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"

--------d-1318--CXD2C9-----------------------

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.

--------B-1319-------------------------------

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

--------d-1319-------------------------------

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

--------d-131A-------------------------------

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

--------d-131A-------------------------------

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"

--------d-131B-------------------------------

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

--------d-131B-------------------------------

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

--------d-131C-------------------------------

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"

--------d-131C-------------------------------

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"

--------d-131C08-----------------------------

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

--------d-131C09-----------------------------

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

--------d-131C0A-----------------------------

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

--------d-131C0B-----------------------------

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)

--------d-131C0C-----------------------------

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)

--------d-131C0D-----------------------------

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"

--------d-131C0E-----------------------------

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"

--------d-131C0F-----------------------------

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"

--------d-131C12-----------------------------

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"

--------c-131D-------------------------------

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

--------d-131F-------------------------------

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"

--------d-1320-------------------------------

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

--------b-1320-------------------------------

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 supporte media type

Notes:    this function is supported by the 3/8/93 ROM BIOS, but only partially

     (AL is always 00h when successful) by the 8/3/93 version

   this function is also supported by some recent versions of the Phoenix

     486 BIOS

(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

--------c-1320-------------------------------

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

--------d-1321-------------------------------

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"

--------c-1321-------------------------------

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

SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh

--------d-1322-------------------------------

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"

--------c-1322-------------------------------

 回复人:rh(有花须酌酒) (2001-6-10 14:01:00)  得0分

TMD,csdn一次不能完全帖完,这里是接着上面的:

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

--------d-1323-------------------------------

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

--------c-1323-------------------------------

INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS

   AH = 23h

Return: AX = status (0000h successful)

   ES = segment of ??? data

--------d-1324-------------------------------

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"

--------c-1324-------------------------------

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

--------d-1325-------------------------------

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)

--------c-1325-------------------------------

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

--------c-1326-------------------------------

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

--------c-1327--BX0000-----------------------

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

--------c-1328-------------------------------

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"

--------c-1329-------------------------------

INT 13 U - QUICKCACHE II v4.20 - NOP

   AH = 29h

Return: AX = 0000h

--------c-132A-------------------------------

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

--------c-132B-------------------------------

INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS

   AH = 2Bh

   AL = new state (00h disabled, 01h enabled)

Return: AX = status (0000h successful)

--------c-132C-------------------------------

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

--------c-132D-------------------------------

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

--------c-132E-------------------------------

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

--------c-132F-------------------------------

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"

--------c-1330-------------------------------

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

--------c-1331-------------------------------

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)

--------c-1332-------------------------------

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

--------c-1333-------------------------------

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

--------c-1334-------------------------------

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

--------c-1335-------------------------------

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

--------c-1336-------------------------------

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"

--------c-1337-------------------------------

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

--------c-1338-------------------------------

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

--------c-1339-------------------------------

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

--------c-133A-------------------------------

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

--------c-133B-------------------------------

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

--------c-133C-------------------------------

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

--------c-133D-------------------------------

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)

--------c-133E-------------------------------

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

--------c-133F-------------------------------

INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD

   AH = 3Fh

   AL = new value for bonus threshold

Return: AX = status (0000h successful)

--------c-1340-------------------------------

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"

--------d-1341--BX55AA-----------------------

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)

--------c-1341-------------------------------

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"

--------d-1342-------------------------------

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    10h (size of packet)

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

--------N-134257DX1234-----------------------

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"

--------d-1343-------------------------------

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

--------d-1344-------------------------------

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

--------d-1345-------------------------------

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

   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"

--------d-1346-------------------------------

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"

--------d-1347-------------------------------

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)

SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"

--------d-1348-------------------------------

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)

BUG:    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

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)

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

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

SeeAlso: #00278,#00279

--------d-1349-------------------------------

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

--------d-134A-------------------------------

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

--------d-134B00-----------------------------

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

--------d-134B01-----------------------------

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

--------d-134C-------------------------------

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

--------d-134D00-----------------------------

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

--------d-134E-------------------------------

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 13 DMA maximum mode

       06h disable INT 13 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"

--------d-135001-----------------------------

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

--------v-135001------------------------

INT 13 - VIRUS - "Andropinis" - INSTALLATION CHECK

   AX = 5001h

Return: AX = 0150h if resident

SeeAlso: AX=FD50h"VIRUS",INT 21/AX=0B56h

--------v-135342CX0001-----------------------

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

--------d-135501-----------------------------

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

--------d-135502-----------------------------

INT 13 - Seagate ST01/ST02 - RESERVED

   AX = 5502h

--------d-135503-----------------------------

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

--------d-135504-----------------------------

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

--------d-135504-----------------------------

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)

--------d-135505-----------------------------

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

--------d-135505-----------------------------

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

--------d-135506-----------------------------

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

--------d-135507-----------------------------

INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS

   AX = 5507h to 550Dh

Note:    officially listed as "reserved"

--------d-135514-----------------------------

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

--------d-135515-----------------------------

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

--------d-1359-------------------------------

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

--------d-1370-------------------------------

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

----------1375-------------------------------

INT 13 - ???

   AH = 75h

   ???

Return: AH = ???

   ???

Note:    intercepted by PC-Cache (v5.1 only)

----------1376-------------------------------

INT 13 - ???

   AH = 76h

   ???

Return: AH = ???

   ???

Note:    intercepted by PC-Cache (v5.1 only)

--------c-137B00-----------------------------

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    ???

--------c-137B01-----------------------------

INT 13 - NOW! v3.05 - ???

   AX = 7B01h

Return: DX = segment of ???

SeeAlso: AX=7B00h

--------c-137B02-----------------------------

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

--------c-137B03-----------------------------

INT 13 - NOW! v3.05 - ???

   AX = 7B03h

   ???

Return: ???

SeeAlso: AX=7B00h,AX=7B04h

--------c-137B04-----------------------------

INT 13 - NOW! v3.05 - ???

   AX = 7B04h

   ???

Return: ???

SeeAlso: AX=7B03h

--------c-137B05-----------------------------

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

--------c-137B06-----------------------------

INT 13 - NOW! v3.05 - GET ???

   AX = 7B06h

   BX = ???

Return: AX = 0000h

   BX = ???

SeeAlso: AX=7B05h,AX=7B07h

--------c-137B07-----------------------------

INT 13 - NOW! v3.05 - GET ???

   AX = 7B07h

Return: AX = ???

   BX = ???

   CX = ???

   DX = ???

SeeAlso: AX=7B06h

--------c-137B08-----------------------------

INT 13 - NOW! v3.05 - ???

   AX = 7B08h

   CX = ??? (default 00h)

Return: ???

SeeAlso: AX=7B00h

--------c-1380--CX6572-----------------------

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

--------c-138001CX6572-----------------------

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    ???

--------c-138006CX6572-----------------------

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)

--------c-138007CX6572-----------------------

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)

--------c-1381--SI4358-----------------------

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-CacheQcache

--------c-1382--SI4358-----------------------

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-CacheQcache

--------c-1383--SI4358-----------------------

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-CacheQcache

--------c-1384--SI4358-----------------------

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-CacheQcache

--------c-1385--SI4358-----------------------

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-CacheQcache

--------c-1386--SI4358-----------------------

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

--------c-1387--SI4358-----------------------

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

--------c-1388--SI4358-----------------------

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

--------c-1389--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 89h

   SI = 4358h

   ???

Return: ???

--------c-138A--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 8Ah

   SI = 4358h

   ???

Return: ???

--------c-138EED-----------------------------

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

--------c-138EEE-----------------------------

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

--------c-138EEF-----------------------------

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

--------c-1392--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 92h

   SI = 4358h

   ???

Return: AH = status??? (00h)

   DL = ???

SeeAlso: AH=93h

--------c-1393--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 93h

   SI = 4358h

   ???

Return: AH = status??? (00h)

   AL = ???

SeeAlso: AH=92h

--------c-1394--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 94h

   SI = 4358h

   ???

Return: ???

--------c-1395--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 95h

   SI = 4358h

   ???

Return: AH = status??? (00h)

   DX = ???

--------c-1396--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 96h

   SI = 4358h

   AL = ??? (01h)

   BX = ??? (0790h)

   DL = ???

Return: AH = status??? (00h)

   DX = ???

--------c-1397--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 97h

   SI = 4358h

   ???

Return: ???

--------c-1398--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 98h

   SI = 4358h

   ???

Return: ???

--------c-1399--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 99h

   SI = 4358h

   ???

Return: ???

--------c-139A--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 9Ah

   SI = 4358h

   ???

Return: ???

--------c-139B--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 9Bh

   SI = 4358h

   ???

Return: ???

--------c-139C--SI4358-----------------------

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

--------c-139D--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = 9Dh

   SI = 4358h

   ???

Return: ???

--------c-13A0--SI4358-----------------------

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-CacheQcache

--------c-13A1--SI4358-----------------------

INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE

   AH = A1h

   SI = 4358h

Return: CF clear

   AH = 00h (v5.10)

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)

SeeAlso: INT 16/AX=FFA5h/CX=FFFFh

Index:    PC-CacheQcache

--------c-13A2--SI4358-----------------------

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-CacheQcache

--------c-13A3--SI4358-----------------------

INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE

   AH = A3h

   SI = 4358h

Return: CF clear

SeeAlso: AH=A4h

--------c-13A4--SI4358-----------------------

INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE

   AH = A4h

   SI = 4358h

Return: CF clear

SeeAlso: AH=A3h

--------c-13A5--SI4358-----------------------

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

--------c-13A6--SI4358-----------------------

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

--------c-13A7--SI4358-----------------------

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

--------v-13A759-----------------------------

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

--------c-13A8--SI4358-----------------------

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

--------c-13A9--SI4358-----------------------

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

--------c-13AA--SI4358-----------------------

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

--------c-13AB--SI4358-----------------------

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

--------c-13AC--SI4358-----------------------

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

--------d-13AD-------------------------------

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

--------c-13AD--SI4358-----------------------

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

--------c-13AE--SI4358-----------------------

INT 13 - Super PC-Kwik v5.10+ - ???

   AH = AEh

   SI = 4358h

   ???

Return: ???

--------c-13B0--SI4358-----------------------

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

--------d-13E000-----------------------------

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    INT13 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

--------v-13EC00-----------------------------

INT 13 - VIRUS - "Tiso" - INSTALLATION CHECK

   AX = EC00h

Return: CF clear if installed

SeeAlso: AH=F2h,INT 12/AX=4350h/BX=4920h

--------d-13EE-------------------------------

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 disksManager

--------c-13EF-------------------------------

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

--------v-13F2-------------------------------

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

--------d-13F9-------------------------------

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

--------v-13FA--DX5945-----------------------

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

--------v-13FD50------------------------

INT 13 - VIRUS - "Predator" - INSTALLATION CHECK

   AX = FD50h

Return: AX = 50FDh if resident

SeeAlso: AX=5001h"VIRUS",INT 16/AH=DDh"VIRUS"

--------d-13FE-------------------------------

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

----------13FF-------------------------------

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"

--------B-13FF-------------------------------

INT 13 - IBM SurePath BIOS - Officially "Private" Function

   AH = FFh

--------U-13FFFFBHAA-------------------------

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