来源(CSDN社区 community.csdn.net)

From: http://topic.csdn.net/t/20010610/13/153808.html

  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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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-Cache|Qualitas   Qcache
  --------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   disks|Disk   Manager
  --------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

Link: http://www.asm32.net/article_details.aspx?id=3199