Index for category d - disk I/O enhancements,
Table of Contents by Order
11----SI6A6A - INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
11FF--SI6A6A - INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
12----CX1807 - INT 12 - PARKER v2.0+ - INSTALLATION CHECK
1305 - INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
13057FSI324D - INT 13 - 2M - FORMAT TRACK
1306 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
1306 - INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
1306 - INT 13 - V10DISK.SYS - READ DELETED SECTORS
1307 - INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
1307 - INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
1308 - INT 13 - V10DISK.SYS - SET FORMAT
1312 - INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
1312 - INT 13 - SyQuest - START/STOP SCSI DISK
1313 - INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
131700 - INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
1318 - INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
1318--CX5055 - INT 13 - PU_1700.COM - INSTALLATION CHECK
1318--CXD2C9 - INT 13 - XDF.COM - API
1319 - INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
131A - INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
131A - INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
131B - INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
131B - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
131C - INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
131C - INT 13 U - ESDI FIXED DISK - ???
131C08 - INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
131C09 - INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
131C0A - INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
131C0B - INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
131C0C - INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
131C0D - INT 13 U - ESDI FIXED DISK - ???
131C0E - INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
131C0F - INT 13 U - ESDI FIXED DISK - ???
131C12 - INT 13 U - ESDI FIXED DISK - ???
131F - INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
1320 - INT 13 - DISK - ??? (Western Digital "Super BIOS")
1321 - INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
1322 - INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
1323 - INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
1324 - INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
1325 - INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
1341--BX55AA - INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
1342 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
1343 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED WRITE
1344 - INT 13 - IBM/MS INT 13 Extensions - VERIFY SECTORS
1345 - INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE
1346 - INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA
1347 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK
1348 - INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS
1349 - INT 13 - IBM/MS INT 13 Extensions - EXTENDED MEDIA CHANGE
134A - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION
134B00 - INT 13 - Bootable CD-ROM - TERMINATE DISK EMULATION
134B01 - INT 13 - Bootable CD-ROM - GET STATUS
134C - INT 13 - Bootable CD-ROM - INITIATE DISK EMULATION AND BOOT
134D00 - INT 13 - Bootable CD-ROM - RETURN BOOT CATALOG
134E - INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION
135001 - INT 13 - Enhanced Disk Drive Spec v3.0 - SEND PACKET COMMAND
135501 - INT 13 - Seagate ST01/ST02 - Inquiry
135502 - INT 13 - Seagate ST01/ST02 - RESERVED
135503 - INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
135504 - INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
135504 - INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
135505 - INT 13 - Seagate - ??? - PARK HEADS
135505 - INT 13 - Seagate ST01/ST02 - PARK HEADS
135506 - INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
135507 - INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
135514 - INT 13 U - Seagate - ???
135515 - INT 13 U - Seagate - PARK HEADS???
1359 - INT 13 - SyQuest - Generic SCSI pass through
1370 - INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
13AD - INT 13 - Priam HARD DISK CONTROLLER???
13E000 - INT 13 - XBIOS - COMMAND
13EE - INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
13F9 - INT 13 - SWBIOS - INSTALLATION CHECK
13FE - INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
150F - INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only)
1552 - INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT
16FF70BX0000 - INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
16FF70BX0001 - INT 16 U - PC Tools v8+ DRIVEMAP - ???
16FF70BX0002 - INT 16 U - PC Tools v8+ DRIVEMAP - ???
16FFA3BXFFA3 - INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
1AB001CX4D52 - INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
214402 - INT 21 - CD-ROM device driver - IOCTL INPUT
214402 - INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE
214402 - INT 21 - ATA Software Programming Interface (ATASPI) - INTERFACE
214403 - INT 21 - CD-ROM device driver - IOCTL OUTPUT
214403 - INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
214404 - INT 21 U - xDISK v3.31 - CONFIGURE
214404 - INT 21 - SFS v1.00 - GET CONFIGURATION INFORMATION
214405 - INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS
214405 - INT 21 U - xDISK v3.31 - ???
214405 - INT 21 - COMBI-disk v1.13 - CONTROL COMBI-disk
214405 - INT 21 - SFS v1.00 - DRIVER CONTROL
21440C - INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE
214410BXFFFF - INT 21 U - NewSpace - ENABLE DRIVER
214411BXFFFF - INT 21 U - NewSpace - DISABLE DRIVER
214412BXFFFF - INT 21 U - NewSpace - INSTALLATION CHECK???
214413BXFFFF - INT 21 U - NewSpace - GET ???
214414BXFFFF - INT 21 U - NewSpace - DEBUGGING DUMP
2144FFBXFFFF - INT 21 U - NewSpace - ???
2169FFDX0000 - INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER
2169FFDXCFBF - INT 21 U - CUBIT v4.00 - UNINSTALL
21DC - INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
21FEDC - INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
2D--10 - INT 2D - dLite 1.0+ - GET PARAMETER BLOCK ADDRESS
2D--11 - INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET ORIGINAL SIZE
2D--12 - INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET COMPRESSED SIZE
2F1001 - INT 2F U - DR DOS 6.0+ FDOS EXTENSIONS - INSTALL FDOS HOOK (SHARE / DELWATCH)
2F1010CX0000 - INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - SUPERSTOR - QUERY PHYS FREE SPACE
2F1100SFDADA - INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK
2F1500BX0000 - INT 2F - CD-ROM - INSTALLATION CHECK
2F1501 - INT 2F - CD-ROM - GET DRIVE DEVICE LIST
2F1502 - INT 2F - CD-ROM - GET COPYRIGHT FILE NAME
2F1503 - INT 2F - CD-ROM - GET ABSTRACT FILE NAME
2F1504 - INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME
2F1505 - INT 2F - CD-ROM - READ VTOC
2F1506 - INT 2F - CD-ROM - TURN DEBUGGING ON
2F1507 - INT 2F - CD-ROM - TURN DEBUGGING OFF
2F1508 - INT 2F - CD-ROM - ABSOLUTE DISK READ
2F1509 - INT 2F - CD-ROM - ABSOLUTE DISK WRITE
2F150A - INT 2F - CD-ROM - RESERVED
2F150B - INT 2F - CD-ROM v2.00+ - DRIVE CHECK
2F150CBX0000 - INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION (GET VERSION)
2F150D - INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS
2F150E - INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE
2F150F - INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY
2F1510 - INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST
2F15FFBX0000 - INT 2F - CD-ROM - CORELCDX - INSTALLATION CHECK
2F5700 - INT 2F U - IOMEGA DRIVERS - INSTALLATION CHECK
2F5701 - INT 2F U - IOMEGA DRIVERS - SECONDARY INSTALLATION CHECK
2F5710 - INT 2F U - IOMEGA DRIVERS - GET DRIVER INFORMATION???
2F5711 - INT 2F U - IOMEGA DRIVERS - LOCK MEDIA IN DRIVE
2F5712 - INT 2F U - IOMEGA DRIVERS - UNLOCK MEDIA IN DRIVE / EJECT
2F7200 - INT 2F - SRDISK v1.30+ - INSTALLATION CHECK
2F7201 - INT 2F - SRDISK v2.02 - GET CODE/DATA SEGMENT
2F7F00 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK
2F7F01 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND
2F7F02 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET
2F7F03 - INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL
2FAFDE - INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION
2FC300 - INT 2F - SETWPR.COM - INSTALLATION CHECK
2FC302 - INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE
2FC64CBX5553 - INT 2F U - Smart Prompt - INSTALLATION CHECK
2FD8C0 - INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK
2FDD--BX7844 - INT 2F - xDISK v3.32+ - INSTALLATION CHECK
2FF700 - INT 2F - AUTOPARK.COM - INSTALLATION CHECK
2FF701 - INT 2F - AUTOPARK.COM - SET PARKING DELAY
2FF800CX4455 - INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK
2FF801CX4455 - INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL
4B - INT 4B - Common Access Method SCSI interface (draft revision 1.9)
4B80 - INT 4B - IBM SCSI interface
4B8102DX0000 - INT 4B - Virtual DMA Specification (VDS) - GET VERSION
4B8103 - INT 4B - Virtual DMA Specification - LOCK DMA REGION
4B8104 - INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
4B8105 - INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
4B8106 - INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
4B8107 - INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
4B8108 - INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
4B8109DX0000 - INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
4B810ADX0000 - INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
4B810B - INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
4B810C - INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
4F0081 - INT 4F - ATA Software Programming Interface (ATASPI) - SEND ATASPI REQUEST
4F0082CX8765 - INT 4F - ATA Software Programming Interface (ATASPI) - INSTALLATION CHECK
4F8100 - INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
4F8200CX8765 - INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
60 - INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
61 - INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
62 - INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
63 - INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
63 - INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
64 - INT 64 - Adaptec controllers - DRIVE 1 DATA
64 - INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
65 - INT 65 - Adaptec controllers - DRIVE 1 DATA
65 - INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
66 - INT 66 - Adaptec controllers - DRIVE 1 DATA
66 - INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
67 - INT 67 - Adaptec controllers - DRIVE 1 DATA
67 - INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
78 - INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
7800 - INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
7801 - INT 78 - TARGA.DEV - GET I/O PORT
7802 - INT 78 - TARGA.DEV - SET DMA CHANNEL
7803 - INT 78 - TARGA.DEV - GET DMA CHANNEL
7804 - INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
7805 - INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
7806 - INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
7808 - INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
7809 - INT 78 - TARGA.DEV - RESET SCSI BUS
7810 - INT 78 - TARGA.DEV - SEND SCSI COMMAND
7811 - INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
7812 - INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
7813 - INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
7814 - INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
7815 - INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
79 - INT 79 U - ADP-60 IDE adapter - ???
80 - INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
81 - INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
C0 - INT C0 - AMI BIOS - DRIVE 0 DATA
C1 - INT C1 - AMI BIOS - DRIVE 0 DATA
C2 - INT C2 - AMI BIOS - DRIVE 0 DATA
C3 - INT C3 - AMI BIOS - DRIVE 0 DATA
C4 - INT C4 - AMI BIOS - DRIVE 1 DATA
C5 - INT C5 - AMI BIOS - DRIVE 1 DATA
C6 - INT C6 - AMI BIOS - DRIVE 1 DATA
C7 - INT C7 - AMI BIOS - DRIVE 1 DATA
INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6 SI = 6A6Ah AH = command (see #00227) AL = SCSI Addressing (see #00228) Return: CF clear if successful DI = 6A6Ah if AH=01h on entry (maybe for all functions???) AH = ??? for command 01h CF set on error AL = error code SeeAlso: INT 21/AX=4402h"ASPI" (Table 00227) Values for SDLP command: 00h SDLP initialization 01h SDLP System Identify 02h simple read sectors 03h simple write sectors 04h simple verify sectors/seek to sector 05h get device size/type 06h ready unit 07h format unit 08h diagnostics 09h rewind 0Ah erase 0Bh write filemarks 0Ch space 0Dh prevent/allow media removal 0Eh load/unload media 0Fh reserved - returns good status 10h set block size 11h write setmark 12h set error level 13h get address of Request Sense Buffer 14h get SDLP error via Request Sense F0h Vendor Unique Function (WD7000-FASST2 only) FDh reset current SCSI HAC FEh get/set current SCSI HAC FFh execute SCSI command Bitfields for SDLP SCSI addressing: Bit(s) Description (Table 00228) 7-6 Host Adapter 5-3 SCSI Target ID 2-0 SCSI Target LUN (logical unit number)Top
INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND AH = FFh SI = 6A6Ah AL = SCSI Addressing (see #00230) CX = bytes of data to be transmitted (max FFF0h) DH = 00h DL = length of SCSI Command Descriptor Block DS:DI -> SCSI Command Descriptor Block ES:BX -> data buffer Return: CF set on error AL = error code CF clear if successful Note: because of busmaster operations with WD7000FASST avoid accessing video memory directly; check 386 memory manager for VDS support. The WD7000XTAT works with programmed IO and does not have this limitation. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h Bitfields for SDLP SCSI addressing: Bit(s) Description (Table 00230) 2-0 SCSI Target LUN (logical unit number) 5-3 SCSI Target ID 7 write flag, set for write operations, clear otherwiseTop
INT 12 - PARKER v2.0+ - INSTALLATION CHECK CX = 1807h Return: AX = kilobytes of contiguous memory starting at absolute address 00000h CX = 1961h if installed Program: PARKER is an optionally-resident hard disk parking program by Johan ZwiekhorstTop
INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND AH = 05h DL = hard drive ID ES:BX -> mode select data (see #00236) Return: CF set on error CF clear if successful AH = status code (see #00234) Notes: this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to format a SCSI disk with the desired parameters the mode select data below is from the SCSI-1 specification the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h Format of Future Domain SCSI mode select data: Offset Size Description (Table 00236) 00h BYTE number of bytes of remaining data (12 + vendor unique length) 01h BYTE reserved (0) 02h BYTE medium type (0 for hard disk) 03h BYTE reserved (0) 04h BYTE block descriptor length (8) 05h BYTE density code (0 for hard disk) 06h 3 BYTEs (big-endian) number of blocks (000000h for entire disk) 09h BYTE reserved (0) 0Ah 3 BYTEs (big-endian) block length (512 standard, or 256) 0Dh ??? vendor-specific parameter bytes (optional)Top
INT 13 - 2M - FORMAT TRACK AX = 057Fh SI = 324Dh ("2M") CH = track number DH = head number DL = drive number ES:BX -> boot sector of future 2M diskette Return: CF set on error CF clear if successful AH = status (see #00234) Program: 2M is a TSR developed by Ciriaco GarcĀ”a de Celis to support non standard diskettes with 820-902/1476-1558K (5.25 DD/HD) and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED) InstallCheck: must search for a "CiriSOFT:2M:1.3" or "CiriSOFT:2MX:3.0" or similar (recomended ":2M:", ":2MX:", or ":2MB:" substrings) in the CiriSOFT TSR interface Notes: it is not necessary to call AH=17h or AH=18h first (will be ignored) the diskette format must always begin on cylinder 0 head 0 the boot sector can be obtained from an already-formatted 2M diskette (by calling AH=02h with head number 00h in 2M v1.x and with head number 80h for 2M v2+) since 2M v2.0, the BOOT sector is emulated using the first physical sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED diskettes store the SuperBOOT code. To skip the FAT2 emulation (using FAT1) of 2M, in order to read the SuperBOOT code, head number must be 80h-81h instead 0-1 (bit 7 active) in standard read/write functions. This lets diskcopy programs format 2M target diskettes copying SuperBOOT code. If the target diskette is already 2MF formatted (containing boot code) this trick it is not necessary. when using STV technology (offset 65 of boot sector equal to 1) it is necessary to write the full track before formatting (except track 0 side 0) to complete the format and skip future CRC errors on read; in track 0 side 1 the head used must be 81h instead 1. Diskcopy programs may do a format-write-verify sequential phases to improve performance SeeAlso: AH=05h"FLOPPY",AH=18h/CX=5055h,INT 2F"CiriSOFT"Top
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 indexTop
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=B102hTop
INT 13 - V10DISK.SYS - READ DELETED SECTORS AH = 06h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive ES:BX -> buffer Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies SeeAlso: AH=02h,AH=07h"V10DISK.SYS"Top
INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE AH = 07h AL = interleave (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique) DL = hard drive ID Return: CF set on error CF clear if successful AH = status code (see #00234) SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"Top
INT 13 - V10DISK.SYS - WRITE DELETED SECTORS AH = 07h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive ES:BX -> buffer Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies SeeAlso: AH=03h,AH=06h"V10DISK.SYS"Top
INT 13 - V10DISK.SYS - SET FORMAT AH = 08h AL = number of sectors CH = cylinder number (bits 8,9 in high bits of CL) CL = sector number DH = head DL = drive Return: AH = status code (see #00234) Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies Note: details not available SeeAlso: AH=03h,AH=06h"V10DISK.SYS"Top
INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK AH = 12h DL = hard drive ID Return: CF set on error CF clear if successful AH = status code (see #00234 at AH=01h) Notes: available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A if the given drive is a SCSI device, the SCSI Stop Unit command is sent and either "Disk prepared for shipping" or "Disk Stop command failed" is displayed the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h)Top
INT 13 - SyQuest - START/STOP SCSI DISK AH = 12h AL = subfunction 00h start disk 01h stop disk CX = wait flag 00h wait for ready 01h don't wait for ready DL = hard drive ID (bit 7 for hard disks must be set) Return: CF set on error CF clear if successful AH = status 00h successful 01h invalid function request 80h timeout SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"Top
INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+) AH = 13h DL = drive ID (bit 7 set for hard disks) Return: CF set on error AH = status (07h) (see #00234 at AH=01h) CF clear if successful AH = 00h BL = drive type (AT/PS2 floppies only) (see #00242) CH = low eight bits of maximum cylinder number CL = maximum sector number (bits 5-0) high two bits of maximum cylinder number (bits 7-6) DH = maximum head number DL = number of drives ES:DI -> drive parameter table (floppies only) Notes: the return values are identical to the standard INT 13/AH=08h, but the number of drives is not limited to 2, so scanning all possible drive numbers with the Read DASD Type call (AH=15h) should generally be preferred to determine the number of drives attached to the system. SeeAlso: AH=08h"PC",AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"Top
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 supportedTop
INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION AH = 18h DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful AX = 4321h (magic number) CX = controller family code (see #00249) ---if family code=0200h DH = number of exclusively ROM-controlled SCSI devices DL = canonical SCSI device number for specified drive ---if family code <> 0200h BH = number of exclusively ROM-controlled SCSI devices BL = canonical SCSI device number for specified drive Notes: also sets an internal flag (non-resettable) which prevents some controller messages from being displayed, allows writes to removable devices (use caution!), and enables the INT 13 interface for more than one drive (i.e. DL >= 81h) in at least some ROM versions the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h (Table 00249) Values for Future Domain SCSI controller family code: 0200h TMC-1680/? (ROM 3.0) 0203h TMC-1650/1660/1670/1680 (ROM 2.0) 040Ah TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A) 050Dh TMC-840/841/880/881 (ROM 5.2D) 0700h TMC-830/850/860/875/885 (ROM 7.0)Top
INT 13 - PU_1700.COM - INSTALLATION CHECK AH = 18h CX = 5055h ('PU') DL = 00h Return: AX = 7570h ('up') if PU_1700 is installed Program: PU_1700 is a BIOS enhancer from PU Service Systems which permits formatting diskettes at higher capacity (1.78M instead of 1.44M) SeeAlso: AX=057Fh/SI=324Dh"2M"Top
INT 13 - XDF.COM - API AH = 18h CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey) DX = 0000h BX = function 0000h installation check Return: AH = 0Ch CX = 7269h ("ri" = Roger Ivey) ES = segment of driver CF set 2F64h ("/d") disable the driver Return: AH = 0Ch ES:BX = pointer to activation flag (it is set to 0: set it to 1 to enable the driver again) CX = 7269h CF set 2F75h ("/u") unload the driver (restore interrupts & free memory) Return: AH = 0Ch DL = 55h ("U") if successful = 00h if fails CX = 7269h ES = segment of driver CF set AL, BX, DH, and DI destroyed Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks, developed by Roger D. Ivey Note: After disabling or enabling the driver, a disk change must be performed or simulated to reset the driver.Top
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=8100hTop
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 cylinderTop
INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY AH = 1Ah CH = track (bits 8,9 in high bits of CL) CL = sector (01h to number of sectors/track for drive) DH = head DL = hard drive ID Return: CF set on error AH = status code (see #00234 at AH=01h) CX:DX = logical block number of last quickly-accessible block after given block Notes: sends SCSI Read Capacity command with the PMI bit set to obtain the logical block address of the last block after which a substantial delay in data transfer will be encountered (usually the last block on the current cylinder). No translation to 512 byte sectors is performed on the result if data is stored on the disk in other than 512 byte sectors. the TMC-950 does not support any Future Domain BIOS calls; instead, it provides a full CAM implementation (see INT 4F/AX=8100h) SeeAlso: AH=15h,AH=19h"SCSI"Top
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 mapTop
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 presentTop
INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM AH = 1Ch DL = hard drive ID (any valid SCSI hard disk) Return: CF set on error AH = status code (see #00234 at AH=01h) CF clear if successful ES:BX -> first byte of free RAM on controller Notes: the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h to 1BFFh on-board the controller for storing drive information and controller status; ES:BX points to the first byte available for other uses ES contains the segment at which the controller resides; the controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h SeeAlso: AH=1Bh"SCSI"Top
INT 13 U - ESDI FIXED DISK - ??? AH = 1Ch AL = subfunction (01h-06h) DL = drive (80h,81h) ??? Return: ??? Note: these functions perform a controller command 0612h without DMA SeeAlso: AX=1C08h,PORT 3510h"ESDI"Top
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: #00257Top
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 codesTop
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 trackTop
INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION AX = 1C0Bh ES:BX -> buffer for Controller Configuration Status Block (see #00261) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C0Ch Format of ESDI Controller Configuration Status Block: Offset Size Description (Table 00261) 00h BYTE E9h 01h BYTE number of words in block (06h) 02h WORD unused (0000h) 04h DWORD controller microcode revision level 08h 2 WORDs unused (0000h)Top
INT 13 U - ESDI FIXED DISK - GET POS INFORMATION AX = 1C0Ch ES:BX -> buffer for POS Information Status Block (see #00262) Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) SeeAlso: AX=1C0Bh Format of ESDI POS Information Status Block: Offset Size Description (Table 00262) 00h BYTE EAh 01h BYTE number of words in block (05h) 02h WORD magic value FFDDh 04h BYTE POS register 3 05h BYTE POS register 2 06h BYTE POS register 5 (unused, FFh) 07h BYTE POS register 4 (unused, FFh) 08h BYTE POS register 7 (unused, FFh) 09h BYTE POS register 6 (unused, FFh)Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C0Dh DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0614h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA AX = 1C0Eh CH = low 8 bits of cylinder number CL = sector number, high two bits of cylinder number in bits 6 and 7 DH = head number DL = drive number (80h,81h) ES:BX -> ABA number Return: CF set on error CF clear if successful AH = status (see #00234 at AH=01h) Note: ABA (absolute block address) format can be found in IBM ESDI Adapter Technical Reference by using its Device Configuration Status Block SeeAlso: AX=1C08h,AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C0Fh DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0614h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h,PORT 3510h"ESDI"Top
INT 13 U - ESDI FIXED DISK - ??? AX = 1C12h DL = drive (80h,81h) ??? Return: ??? Note: invokes controller command 0612h without DMA SeeAlso: AH=1Ch"ESDI",AX=1C0Fh,PORT 3510h"ESDI"Top
INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT AH = 1Fh AL = subfunction 00h allow media removal 01h prevent media removal (lock door) DL = drive ID (bit 7 set for hard disks) Return: CF clear if successful AH = 00h CF set on error AH = error code 00h successful 01h invalid function request 80h timeout DDh media change requested SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"Top
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 casesTop
INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS AH = 21h AL = number of sectors to write CH = low byte of 12-bit cylinder number CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7) DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7) DL = drive number (80h,81h) ES:BX -> buffer for data to be read Return: CF clear if successful ES:BX buffer filled CF set on error AH = status (see #00234 at AH=01h) Desc: read from the disk using the Multiple Block mode available on newer IDE drives and some hard disk controllers, which generates an interrupt only after the end of transferring a group of sectors rather than after each sector Notes: must call AH=24h"PS/1" before using this function input values in CL and DH are not range-checked the byte at address 0040h:0074h is set to the status of the operation SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"Top
INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS AH = 22h AL = number of sectors to write CH = low byte of 12-bit cylinder number CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7) DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7) DL = drive number (80h,81h) ES:BX -> buffer containing data to be written Return: CF clear if successful CF set on error AH = status (see #00234 at AH=01h) Desc: write to the disk using the Multiple Block mode available on newer IDE drives and some hard disk controllers, which generates an interrupt only after the end of transferring a group of sectors rather than after each sector Notes: must call AH=24h"PS/1" before using this function input values in CL and DH are not range-checked the byte at address 0040h:0074h is set to the status of the operation SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"Top
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: #P0535Top
INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE AH = 24h AL = number of sectors per block (2,4,8,16) DL = drive number (80h,81h) Return: CF clear if successful CF set onerror AH = status (see #00234 at AH=01h) Desc: specify how many sectors the controller should transfer as a group between operation-complete interrupts when using the Read Multiple and Write Multiple functions (AH=21h,AH=22h) Notes: set the number of sectors to 0 to disable multiple-transfer mode the maximum value for the block size depends on the fixed disk drive type. The value is stored in byte 15h of the fixed disk drive parameter table that is created by POST. the byte at address 0040h:0074h is set to status of operation. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"Top
INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE AH = 25h DL = drive number (80h,81h) ES:BX-> 512 byte buffer for reply packet Return: CF clear if successful CF set on error AH = status (see #00234 at AH=01h) buffer filled with ATA/IDE-style drive information block (see #00267) Desc: retrieves the 256 words of drive data stored on an IDE hard disk Notes: the byte at address 0040h:0074h is set to the status of the operation IBM officially classifies this function as optional SeeAlso: AH=23h"PS/1" Format of drive information block: Offset Size Description (Table 00267) 00h WORD general drive configuration (see #00268) 02h WORD number of cylinders 04h WORD reserved 06h WORD number of heads 08h WORD number of unformatted bytes per track 0Ah WORD number of unformatted bytes per sector 0Ch WORD number of sectors per track 0Eh 6 BYTEs vendor unique 14h 20 BYTEs serial number in ASCII, 0000h=not specified) 28h WORD buffer type 2Ah WORD buffer size in 512 byte increments (0000h=not specified) 2Ch WORD number of ECC bytes passed on Read/Write Long cmds 0000h = not specified 2Eh 8 BYTEs firmware revision in ASCII, 0000h=not specified 36h 40 BYTEs model number in ASCII, 0000h=not specified 5Eh WORD bits 15-8 Vendor Unique bits 7-0 00h = Read/Write Multiple commands not implemented xxh = Maximum number of sectors that can be transferred per interrupt on Read and Write Multiple commands 60h WORD 0000h = cannot perform doubleword I/O 0001h = can perform doubleword I/O 62h WORD capabilities bit 15-9 0=reserved bit 8 1=DMA Supported bit 7-0 Vendor Unique 64h WORD reserved 66h WORD bits 15-8 PIO data transfer cycle timing mode bits 7-0 Vendor Unique 68h WORD bits 15-8 DMA data transfer cycle timing mode bits 7-0 Vendor Unique 6Ah WORD bits 15-1 reserved bit 0 1=the fields reported in tranlation mode are valid 0=the fields reported in translation mode may be valid 6Ch WORD number of current cylinders 6Eh WORD number of current heads 70h WORD number of current sectors per track 72h DWORD current capacity in sectors 76h WORD reserved 78h 136 BYTEs not defined by ATA spec 2.6 100h 64 BYTEs vendor unique 140h 96 BYTEs reserved Note: the above description is as in the ATA (AT Attachment) Specification. SeeAlso: #P0516 Bitfields for general drive configuration: Bit(s) Description (Table 00268) 15 0 reserved for non-magnetic drives 14 format speed tolerance gap required 13 track offset option available 12 data strobe offset option available 11 rotational speed tolerance is > 0.5% 10 disk transfer rate > 10 Mbs 9 disk transfer rate > 5Mbs but <= 10Mbs 8 disk transfer rate <= 5Mbs 7 removable cartridge drive 6 fixed drive 5 spindle motor control option implemented 4 head switch time > 15 usec 3 not MFM encoded 2 soft sectored 1 hard sectored 0 reserved (0)Top
INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK AH = 41h BX = 55AAh DL = drive (80h-FFh) Return: CF set on error (extensions not supported) AH = 01h (invalid function) CF clear if successful BX = AA55h if installed AH = major version of extensions 01h = 1.x 20h = 2.0 / EDD-1.0 21h = 2.1 / EDD-1.1 30h = EDD-3.0 AL = internal use CX = API subset support bitmap (see #00271) DH = extension version (v2.0+ ??? -- not present in 1.x) Note: the Phoenix Enhanced Disk Drive Specification v1.0 uses version 2.0 of the INT 13 Extensions API SeeAlso: AH=42h"INT 13 Ext",AH=48h"INT 13 Ext" Bitfields for IBM/MS INT 13 Extensions API support bitmap: Bit(s) Description (Table 00271) 0 extended disk access functions (AH=42h-44h,47h,48h) supported 1 removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h) supported 2 enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported extended drive parameter table is valid (see #00273,#00278) 3-15 reserved (0)Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ AH = 42h DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) disk address packet's block count field set to number of blocks successfully transferred SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext" Format of disk address packet: Offset Size Description (Table 00272) 00h BYTE size of packet (10h or 18h) 01h BYTE reserved (0) 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD) 04h DWORD -> transfer buffer 08h QWORD starting absolute block number (for non-LBA devices, compute as (Cylinder*NumHeads + SelectedHead) * SectorPerTrack + SelectedSector - 1 10h QWORD (EDD-3.0, optional) 64-bit flat address of transfer buffer; used if DWORD at 04h is FFFFh:FFFFhTop
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=44hTop
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=47hTop
INT 13 - IBM/MS INT 13 Extensions - LOCK/UNLOCK DRIVE AH = 45h AL = operation 00h lock media in drive 01h unlock media 02h check lock status DL = drive number Return: CF clear if successful AH = 00h AL = lock state (00h = unlocked) CF set on error AH = error code (see #00234) Notes: this function is required to be supported for any removable drives numbered 80h or higher a device may be locked even if no media is present in the drive up to 255 locks may be placed on a drive, and the media will not be physically unlocked until all locks have been removed SeeAlso: AH=41h"INT 13 Ext",AH=46h,AH=49h,INT 15/AH=52h"INT 13 Extensions"Top
INT 13 - IBM/MS INT 13 Extensions - EJECT MEDIA AH = 46h AL = 00h (reserved) DL = drive number Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) SeeAlso: AH=49h,INT 15/AH=52h"INT 13 Extensions"Top
INT 13 - IBM/MS INT 13 Extensions - EXTENDED SEEK AH = 47h DL = drive number DS:SI -> disk address packet (see #00272) Return: CF clear if successful AH = 00h CF set on error AH = error code (see #00234) Note: this function initiates the seek, and may return before the seek actually completes SeeAlso: AH=0Ch,AH=42h"INT 13 Ext"Top
INT 13 - IBM/MS INT 13 Extensions - GET DRIVE PARAMETERS AH = 48h DL = drive (80h-FFh) DS:SI -> buffer for drive parameters (see #00273) Return: CF clear if successful AH = 00h DS:SI buffer filled CF set on error AH = error code (see #00234) BUGS: several different Compaq BIOSes incorrectly report high-numbered drives (such as 90h, B0h, D0h, and F0h) as present, giving them the same geometry as drive 80h; as a workaround, scan through disk numbers, stopping as soon as the number of valid drives encountered equals the value in 0040h:0075h Dell machines using PhoenixBIOS 4.0 Release 6.0 fail to correctly handle this function if the flag word at DS:[SI+2] is not 0000h on entry SeeAlso: AH=08h,AH=41h,AH=49h,MEM 0040h:0075h Format of IBM/MS INT 13 Extensions drive parameters: Offset Size Description (Table 00273) 00h WORD (call) size of buffer (001Ah for v1.x, 001Eh for v2.x, 42h for v3.0) (ret) size of returned data 02h WORD information flags (see #00274) 04h DWORD number of physical cylinders on drive 08h DWORD number of physical heads on drive 0Ch DWORD number of physical sectors per track 10h QWORD total number of sectors on drive 18h WORD bytes per sector ---v2.0+ --- 1Ah DWORD -> EDD configuration parameters (see #00278) FFFFh:FFFFh if not available ---v3.0 --- 1Eh WORD signature BEDDh to indicate presence of Device Path info 20h BYTE length of Device Path information, including signature and this byte (24h for v3.0) 21h 3 BYTEs reserved (0) 24h 4 BYTEs ASCIZ name of host bus ("ISA" or "PCI") 28h 8 BYTEs ASCIZ name of interface type "ATA" "ATAPI" "SCSI" "USB" "1394" IEEE 1394 (FireWire) "FIBRE" Fibre Channel 30h 8 BYTEs Interface Path (see #00275) 38h 8 BYTEs Device Path (see #00276) 40h BYTE reserved (0) 41h BYTE checksum of bytes 1Eh-40h (two's complement of sum, which makes the 8-bit sum of bytes 1Eh-41h equal 00h) Note: if the size is less than 30 on call, the final DWORD will not be returned by a v2.x implementation; similarly for the Device Path info SeeAlso: #00277,#03196 Bitfields for IBM/MS INT 13 Extensions information flags: Bit(s) Description (Table 00274) 0 DMA boundary errors handled transparently 1 cylinder/head/sectors-per-track information is valid 2 removable drive 3 write with verify supported 4 drive has change-line support (required if drive >= 80h is removable) 5 drive can be locked (required if drive >= 80h is removable) 6 CHS information set to maximum supported values, not current media 15-7 reserved (0) Note: bits 4-6 are only valid if bit 2 is set SeeAlso: #00273 Format of EDD v3.0 Interface Path: Offset Size Description (Table 00275) ---ISA--- 00h WORD 16-bit base address 02h 6 BYTEs reserved (0) ---PCI--- 00h BYTE PCI bus number 01h BYTE PCI device number 02h BYTE PCI function number 03h 5 BYTEs reserved (0) SeeAlso: #00273,#00276 Format of EDD v3.0 Device Path: Offset Size Description (Table 00276) ---ATA--- 00h BYTE flag: 00h = master, 01h = slave 01h 7 BYTEs reserved (0) ---ATAPI--- 00h BYTE flag: 00h = master, 01h = slave 01h BYTE logical unit number 02h 6 BYTEs reserved (0) ---SCSI--- 00h BYTE logical unit number 01h 7 BYTEs reserved (0) ---USB--- 00h BYTE to be determined 01h 7 BYTEs reserved (0) ---IEEE1394--- 00h QWORD 64-bit FireWire General Unique Identifier (GUID) ---FibreChannel--- 00h QWORD Word Wide Number (WWN) SeeAlso: #00273,#00275 Format of Phoenix Enhanced Disk Drive Spec translated drive parameter table: Offset Size Description (Table 00277) 00h WORD number of cylinders 02h BYTE number of heads 03h BYTE A0h (signature indicating translated table) 04h BYTE number of physical sectors per track 05h WORD starting write precompensation cylinder number 07h BYTE reserved 08h BYTE control byte (see #03198 at INT 41"DISK 0") 09h WORD number of physical cylinders 0Bh BYTE number of physical heads 0Ch WORD cylinder number of landing zone 0Eh BYTE number of logical sectors per track 0Fh BYTE checksum Program: the Phoenix Enhanced Disk Drive Specification is an addition to the IBM/MS INT 13 extensions SeeAlso: #00278,#03196 Format of Phoenix Enhanced Disk Drive Spec Fixed Disk Parameter Table: Offset Size Description (Table 00278) 00h WORD physical I/O port base address 02h WORD disk-drive control port address 04h BYTE drive flags (see #00279) 05h BYTE proprietary information bits 7-4 reserved (0) bits 3-0: Phoenix proprietary (used by BIOS) 06h BYTE IRQ for drive (bits 3-0; bits 7-4 reserved and must be 0) 07h BYTE sector count for multi-sector transfers 08h BYTE DMA control bits 7-4: DMA type (0-2) as per ATA-2 specification bits 3-0: DMA channel 09h BYTE programmed I/O control bits 7-4: reserved (0) bits 3-0: PIO type (1-4) as per ATA-2 specification 0Ah WORD drive options (see #00280) 0Ch 2 BYTEs reserved (0) 0Eh BYTE extension revision level (high nybble=major, low nybble=minor) (currently 10h for v1.0 and 11h for v1.1-3.0) 0Fh BYTE 2's complement checksum of bytes 00h-0Eh 8-bit sum of all bytes 00h-0Fh should equal 00h Note: this structure is also called the Device Paramter Table Extension (DPTE) SeeAlso: #00277 Bitfields for Phoenix Enhanced Disk Drive Spec drive flags: Bit(s) Description (Table 00279) 7 reserved (1) 6 LBA enabled 5 reserved (1) 4 drive is slave 3-0 reserved (0) SeeAlso: #00278,#00280 Bitfields for Phoenix Enhanced Disk Drive Spec drive options: Bit(s) Description (Table 00280) 0 fast PIO enabled 1 fast DMA access enabled 2 block PIO (multi-sector transfers) enabled 3 CHS translation enabled 4 LBA translation enabled 5 removable media 6 ATAPI device (CD-ROM) 7 32-bit transfer mode ---v1.1+ --- 8 ATAPI device uses DRQ to signal readiness for packet command (must be 0 if bit 6 is 0) 10-9 translation type (must be 00 if bit 3 is 0) 00 Phoenix bit-shifting translation 01 LBA-assisted translation 10 reserved 11 proprietary translation ---v3.0--- 11 Ultra DMA access enabled 15-12 reserved (0) SeeAlso: #00278,#00279Top
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=46hTop
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: #00281Top
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=4DhTop
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=4DhTop
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=4DhTop
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: #00281Top
INT 13 - IBM/MS INT 13 Extensions v2.1+ - SET HARDWARE CONFIGURATION AH = 4Eh AL = function 00h enable prefetch 01h disable prefetch 02h set maximum PIO transfer mode 03h set PIO mode 0 04h set default PIO transfer mode 05h enable INT 13h DMA maximum mode 06h disable INT 13h DMA DL = drive number Return: CF clear if successful AH = 00h AL = status 00h command was safe (only affected specified drive) 01h other devices are affected CF set on error AH = error code (see #00234) Note: DMA and PIO modes are mutually exclusive, so selecting DMA disables PIO (for either the specified device or all devices on that controller), and selecting PIO disables DMA SeeAlso: AH=41h"INT 13 Extensions",AX=5001h"Enhanced Disk Drive"Top
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 dataTop
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 commandTop
INT 13 - Seagate ST01/ST02 - RESERVED AX = 5502hTop
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 presentTop
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=5514hTop
INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION AX = 5504h DL = drive ID (80h, 81h, ...) Return: AX = 4321h BL = selected drive number (00h, 01h) BH = number of drives attached to Host Adapter (max. 2)Top
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=5515hTop
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: nothingTop
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 enabledTop
INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS AX = 5507h to 550Dh Note: officially listed as "reserved"Top
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=5515hTop
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=5505hTop
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: #00286Top
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=ADhTop
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=70hTop
INT 13 - XBIOS - COMMAND AX = E000h CX = 0 DL = drive number (80h,81h,82h,83h) ES:BX = pointer to XBIOS Command Block (see #00297) Return: CF clear if successful CX = 1234h XBIOS Signature CF set on error Program: XBIOS is a driver in some versions of Disk Manager that is loaded from the disk MBR, replacing the ROM BIOS disk support e.g. adding LBA mode support, and read/write multiple. SeeAlso: AH=F9h"SWBIOS" Format of XBIOS Command Block: Offset Size Description (Table 00297) 00h BYTE function 0Eh Get XBIOS Configuration Information Return: buffer points to Ontrackr_Ref_Data structure (see #00298) 01h BYTE reserved (must be zero before function call) 02h DWORD buffer pointer - Input or output depending on opcode SeeAlso: #00298,#00299 Format of Ontrackr_Ref_Data structure: Offset Size Description (Table 00298) 00h WORD Size of structure (33h) 02h BYTE VxD Chain mode 03h 12 BYTEs Drive 1: Ontrackr_VxD_Data structure (see #00299) 0Fh 12 BYTEs Drive 2: Ontrackr_VxD_Data structure 1Bh 12 BYTEs Drive 3: Ontrackr_VxD_Data structure 27h 12 BYTEs Drive 4: Ontrackr_VxD_Data structure (see #00299) SeeAlso: #00297,#00299 Format of Ontrackr_VxD_Data structure: Offset Size Description (Table 00299) 00h BYTE INT 13h drive number 01h DWORD Delta skew value 05h BYTE Physical heads (Word 3 of Identify Data) 06h BYTE Physical sectors per track (Word 6 of Identify Data) 07h BYTE Multiple Block Size (Blocking factor) 08h BYTE Read/Write Multiple disable flags 00001000b drive supports r/w multiple 00000100b do not use read multiple 00000010b do not use write multiple 09h WORD Base port address (1F0/170) 0Bh BYTE Hardware interrupt channel (14/15) SeeAlso: #00298Top
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 ManagerTop
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 ManagerTop
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=EEhTop
INT 15 C - SYSTEM - FORMAT UNIT PERIODIC INTERRUPT (PS ESDI drives only) AH = 0Fh AL = phase code 00h reserved 01h surface analysis 02h formatting Return: CF clear if formatting should continue CF set if formatting should terminate Note: called during ESDI drive formatting after each cylinder is completed SeeAlso: INT 13/AH=1AhTop
INT 15 C - IBM/MS INT 13 Extensions - MEDIA EJECT INTERCEPT AH = 52h DL = drive number Return: CF clear if OK to eject media AH = 00h CF set if ejection disallowed AH = error code (B1h,B3h) (see #00234) Note: called by the IBM/MS INT 13 Extensions driver/BIOS when an ejection request is made SeeAlso: INT 13/AH=46h"INT 13 Extensions"Top
INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK AX = FF70h BX = 0000h CX = 4C69h ('Li') DX = 6E6Bh ('nk') Return: AX = 0000h CX = 4350h ('CP') DH = major version DL = minor version Program: DRIVEMAP is a redirector which allows drives on computers connected over the parallel or serial ports to appear as local drives SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002hTop
INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0001h DL = ??? Return: AX = ??? DH = ??? SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002hTop
INT 16 U - PC Tools v8+ DRIVEMAP - ??? AX = FF70h BX = 0002h CX = ??? DX = ??? Return: AX = ??? or FFFEh/FFFFh on error DL = ??? BUG: DRIVEMAP will branch to random locations for BX values other than those listed above for v8.0-9.0 because a) the incorrect register is range-tested, resulting in BX=0003h-5CD6h being accepted as valid function numbers, and b) the conditional which branches on invalid function numbers jumps to the following instruction, becoming a NOP SeeAlso: INT 2F/AX=9203h"DRIVEMAP" Index: installation check;DRIVEMAPTop
INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK AX = FFA3h BX = FFA3h CX = FFA3h Return: BX = CX = 5555h if installed AX = resident code segment Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk- access indicator on the screen; in v7 and v8, this function was provided by DATAMON Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3hTop
INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER AX = B001h CX = 4D52h ("MR") DX = 4349h ("CI") Return: CX = 4943h ("IC") if installed DX = 524Dh ("RM") if installed ES:DI -> MRCINFO structure (see #00725) Note: this call is functionally identical to INT 2F/AX=4A12h, which should be called first, as this call is used for the first, ROM-based MRCI server, while the other call is used for RAM-based servers which may be partially or entirely replacing a prior server SeeAlso: INT 2F/AX=4A12h Format of MRCINFO structure: Offset Size Description (Table 00725) 00h 4 BYTEs vendor signature "MSFT" Microsoft 04h WORD server version (high=major) 06h WORD MRCI specification version 08h DWORD address of server entry point (see #00727) 0Ch WORD bit flags: server capabilities (see #00726) 0Eh WORD bit flags: hardware assisted capabilities (see #00726) 10h WORD maximum block size supported by server (at least 8192 bytes) Bitfields for MRCI capabilities: Bit(s) Description (Table 00726) 0 standard compress 1 standard decompress 2 update compress 3 MaxCompress (not present in initial public release) 4 reserved 5 incremental decompress 6 MRCI 2.0 standard compress 7 MRCI 2.0 standard decompress 8-14 reserved 15 this structure is in ROM and can't be modified (server capabilities only) (Table 00727) Call MRCI entry point with: DS:SI -> MRCREQUEST structure (see #00728) CX = type of client (0000h application, 0001h file system) AX = operation 0001h perform standard compression 0002h perform standard decompression 0004h perform update compression 0008h perform MaxCompress 0020h perform incremental decompression 0040h perform MRCI 2.0 standard compression 0080h perform MRCI 2.0 standard decompression AX = FFFFh clear flags BX = bitmask of flags to clear (set bits in BX are flags to clear) Return: AX = status 0000h successful 0001h invalid function 0002h server busy, try again 0003h destination buffer too small 0004h incompressible data 0005h bad compressed data format BP destroyed (MS-DOS 6.2) Note: MRCI driver may chain to a previous driver Format of MRCREQUEST structure: Offset Size Description (Table 00728) 00h DWORD pointer to source buffer 04h WORD size of source buffer (0000h = 64K) 06h WORD (UpdateCompress only) (call) offset in source buffer of beginning of changed data (ret) offset in destination buffer of beginning of changed compressed data 08h DWORD pointer to destination buffer must contain original compressed data for UpdateCompress 0Ch WORD size of destination buffer (0000h = 64K) any compression: size of buffer for compressed data standard decompression: number of bytes to be decompressed incremental decompression: number of byte to decompress now (ret) actual size of resulting data 0Eh WORD client compressed data storage allocation size 10h DWORD incremental decompression state data set to 00000000h before first incremental decompression call Notes: the source and destination buffers may not overlap the source and destination buffer sizes should normally be the same application should not update the contents of the MRCREQUEST structure between incremental decompression callsTop
INT 21 - CD-ROM device driver - IOCTL INPUT AX = 4402h BX = file handle referencing character device for CD-ROM driver CX = number of bytes to read DS:DX -> control block (see #01449) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: the data returned depends on the first byte of the control block (two bytes for functions 01h/07h/0Bh, see #01449); the remainder of the control block is filled by the driver some device drivers support several subunits (that is more than one drive) but it is not possible to distinguish between them with this function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead under Windows95, the "mscd$$$$" device cannot be opened so you cannot obtain the handle required by this function: use INT 2F/AX=1510h or INT 2F/AX=0802h instead SeeAlso: AX=4403h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h (Table 01448) Values for CD-ROM data being requested: 00h device driver header address 01h drive head location 02h reserved 03h error statistics 04h audio channel info 05h raw drive bytes (uninterpreted and device-specific) 06h device status 07h sector size 08h volume size 09h media change status 0Ah audio disk info 0Bh audio track info 0Ch audio Q-Channel info 0Dh audio sub-channel info 0Eh UPC code 0Fh audio status info Format of CD-ROM control block: Offset Size Description (Table 01449) 00h BYTE data being requested (see #01448) ---function 00h--- 01h DWORD device driver header address (see also AH=52h,#01646) ---function 01h--- 01h BYTE (call) addressing mode 00h HSG 01h Red Book 02h DWORD current location of drive's head logical sector number in HSG mode frame/second/minute/unused in Red Book mode (HSG sector = minute * 4500 + second * 75 + frame - 150) ---function 03h--- 01h N BYTEs undefined as of 5 Aug 88 specification ---function 04h--- 01h BYTE input channel (0-3) for output channel 0 02h BYTE volume for output channel 0 03h BYTE input channel (0-3) for output channel 1 04h BYTE volume for output channel 1 05h BYTE input channel (0-3) for output channel 2 06h BYTE volume for output channel 2 07h BYTE input channel (0-3) for output channel 3 08h BYTE volume for output channel 3 Notes: output channels 0 and 1 are left and right, 2 and 3 are left prime and right prime; a volume of 00h is off the default setting is for each input channel to be assigned to the same-numbered output channel at full (FFh) volume ---function 05h--- 01h BYTE number of bytes read 02h 128 BYTEs buffer for drive bytes ---function 06h--- 01h DWORD device parameters (see #01450) ---function 07h--- 01h BYTE (call) read mode 00h cooked 01h raw 02h WORD (return) sector size in bytes ---function 08h--- 01h DWORD volume size in sectors BUGS: Aztech device driver v1.10 and v1.27 (at least) return the last sector number, i.e. total number of sectors - 1 Windows95 returns the total number of sectors + 150 (see the Red Book to HSG conversion formula at function 01h to understand why this happens) ---function 09h--- 01h BYTE media change status 00h don't know 01h media unchanged FFh media has been changed ---function 0Ah--- 01h BYTE lowest audio track number 02h BYTE highest audio track number 03h DWORD start address of lead-out track (Red Book format) --function 0Bh--- 01h BYTE (call) track number 02h DWORD starting point of track (Red Book format) 06h BYTE track control info bits 15,14,12: track type (notice: bits not contiguous!) 000 two audio channels, no pre-emphasis 001 two audio channels with pre-emphasis 010 data track 100 four audio channels, no pre-emphasis 101 four audio channels with pre-emphasis other reserved bit 13: digital copy permitted ---function 0Ch--- 01h BYTE CONTROL and ADR byte (as received from drive) 02h BYTE track number 03h BYTE point or index 04h BYTE minute \ 05h BYTE second > running time within track 06h BYTE frame / 07h BYTE zero 08h BYTE "AMIN" or "PMIN" \ 09h BYTE "ASEC" or "PSEC" > running time on disk 0Ah BYTE "AFRAME" or "PFRAME" / ---function 0Dh--- 01h DWORD starting frame address (Red Book format) 05h DWORD transfer address 09h DWORD number of sectors to read Note: copies 96 bytes of sub-channel info per sector into buffer ---function 0Eh--- 01h BYTE CONTROL and ADR byte 02h 7 BYTEs UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0) 09h BYTE zero 0Ah BYTE "AFRAME" ---function 0Fh--- ??? documentation not yet available 01h WORD pause status (0000h not paused, 0001h paused) 03h DWORD audio play start address 07h DWORD ??? audio play length or end address Bitfields for CD-ROM device parameters: Bit(s) Description (Table 01450) 0 door open 1 door unlocked 2 supports raw reading in addition to cooked 3 writable 4 can play audio/video tracks 5 supports interleaving 6 reserved 7 supports prefetch requests 8 supports audio channel control 9 supports Red Book addressing in addition to HSG 10 audio is playing 11 no disk in drive 12 supports R-W subchannelsTop
INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE AX = 4402h BX = file handle for device "SCSIMGR$" CX = 0004h or 0005h (refer to notes below) DS:DX -> buffer for result (see #01452), set to zeros before call Return: CF clear if successful AX = 0004h or 0005h (refer to notes below) CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: the variant of the call requesting five bytes is an UNDOCUMENTED extension supported by Adaptec's ASPI2DOS.SYS, ASPI4DOS.SYS, and ASPI7DOS.SYS; if made of a host manager which does not support the variant, only four bytes will be returned. If the variant is supported, Adaptec's WINASPI.DLL assumes that the host manager is an "advanced" one which operates in either real or protected mode (and thus does not require a DPMI INT 31/AX=0301h call to be invoked from protected mode). Support of the five-byte variant also appears to imply that an advanced ASPI host manager uses no temporary storage space except the SRB (see #01454) and the stack, and that it is fully reentrant. if called with a standard request for four bytes, even Adaptec's advanced drivers return only the requested four bytes containing the ASPI entry point address the function address is called with the address of a SCSI Request Block (see #01454) on the stack and the caller must clean up the stack SeeAlso: AX=440Ch"ASPITAPE",INT 11/AH=FFh"WD7000" Format of ASPI IOCTL result: Offset Size Description (Table 01452) 00h DWORD function address 04h BYTE number of SCSI host adapters supported by host manager (Table 01453) Values for ASPI request number: 00h "HA_INQ" host adapter inquiry / extended host adapter inquiry 01h "GET_TYPE" get device type 02h "EXEC_SIO" execute SCSI I/O 03h "ABORT_SRB" abort SRB 04h "RESET_DEV" reset SCSI device 05h "SET_HAPRMS" set host adapter parameters 06h get disk drive information 7Fh (Adaptec) get ASPI manager info? Note: request 7Fh is supported by all the Adaptec's DOS ASPI managers: ASPI2DOS.SYS (for AHA-152x), ASPI4DOS.SYS (for AHA-154x/164x), ASPI7DOS.SYS (for AIC-77xx), and ASPI8DOS.SYS (for AIC-78xx) Format of SCSI Request Block (64 bytes): Offset Size Description (Table 01454) 00h BYTE request number (see #01453) 01h BYTE request status (see #01455) 02h BYTE host adapter ID 03h BYTE request flags (see #01456) 04h DWORD reserved (0) ---request 00h--- 08h BYTE (ret) number of host adapters 09h BYTE (ret) target adapter ID 0Ah 16 BYTEs (ret) SCSI manager ID 1Ah 16 BYTEs (ret) host adapter ID 2Ah 16 BYTEs (ret) host adapter-unique parameters (see #90010,#90011) ---extended request 00h--- 04h 2 BYTEs (call) extended request signature 55h AAh (ret) if extended request supported, reply AAh 55h 06h WORD (call) length of extended buffer at offset 3Ah (ret) number of bytes returned in extended buffer 08h BYTE (ret) number of host adapters 09h BYTE (ret) target adapter ID 0Ah 16 BYTEs (ret) SCSI manager ID 1Ah 16 BYTEs (ret) host adapter ID 2Ah 16 BYTEs (ret) host adapter-unique parameters 3Ah N BYTEs extended buffer 3Ah WORD features (see #01457) 3Ch WORD maximum scatter/gather list length 3Eh DWORD maximum SCIS data transfer size (0 = unlimited) ---request 01h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah BYTE (ret) device type (see #01460) ---request 02h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah DWORD data allocation length (ret) residual byte length (if supported and requested) 0Eh BYTE sense allocation length 0Fh DWORD data buffer pointer 13h DWORD next request pointer (for linking) 17h BYTE CDB length 18h BYTE (ret) host adapter status (see #01454) 19h BYTE (ret) target status (see #01459) 1Ah DWORD post routine address (see #01466) 1Eh WORD real mode Post DS 20h DWORD SRB pointer 24h WORD reserved 26h DWORD SRB physical address 2Ah 22 BYTEs SCSIMGR$ workspace 40h N BYTEs CCB, including sense data (20-24 bytes) ---request 03h--- 08h DWORD address of SRB to abort ---request 04h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah 14 BYTEs reserved 18h BYTE (ret) host adapter status (see #01458) 19h BYTE (ret) target status (see #01459) 1Ah DWORD post routine address 1Eh 34 BYTEs workspace ---request 05h--- 08h 16 BYTEs host adapter-unique parameters ---request 06h--- 08h BYTE target ID 09h BYTE logical unit number 0Ah BYTE disk drive flags (see #01461) 0Bh BYTE INT 13h drive number 0Ch BYTE preferred head number translation 0Dh BYTE preferred sector size translation 0Eh 10 BYTEs reserved ---request 7Fh--- 08h WORD base I/O port address 0Ah BYTE number of I/O ports used 0Bh BYTE ??? (01h returned for AHA-152x) 0Ch BYTE interrupt level 0Dh BYTE DMA channel 0Eh BYTE (ASPI7DOS.SYS) EISA slot number (ASPI8DOS.SYS) PCI device number 0Fh BYTE bits 7-1: reserved (0) bit 0: (AHA-152x) ??? 10h DWORD ASPI entry point address 14h DWORD previous ASPI entry point address 18h WORD offset to "ASPI request dispatcher" procedure 1Ah WORD offset to "interrupt handler" procedure 1Ch WORD offset to some procedure 1Eh WORD offset to some procedure 20h WORD offset to host adapter data 22h BYTE ??? (apparently always 02h) 23h BYTE reserved??? (0) 24h BYTE (ASPI8DOS.SYS) PCI bus number? 25h 11 BYTEs reserved??? (0) SeeAlso: #01462 (Table 01455) Values for ASPI request status: 00h not done yet 01h completed successfully 02h aborted by host 04h SCSI I/O error 80h invalid 81h no adapter 82h no device attached else status SeeAlso: #01454 Bitfields for ASPI request flags: Bit(s) Description (Table 01456) 0 posting enabled 1 linking enabled 2 residual byte length reported in Data Allocation Length field 3 transfer from SCSI target to host 4 transfer from host to SCSI target 5 scatter/gather 7-6 reserved Note: no data is transferred if both bits 3 and 4 are set; if neither is set, the direction is determined by the SCSI command SeeAlso: #01454 Bitfields for ASPI extended features: Bit(s) Description (Table 01457) 0 scatter/gather supported 1 residual byte length reported 2 Wide SCSI 16 host adapter 3 Wide SCSI 32 host adapter 15-4 reserved SeeAlso: #01454 (Table 01458) Values for host adapter status: 00h no error detected 11h select timeout 12h data overrun 13h bus error 14h bus failure (Table 01459) Values for target status: 00h no status 02h sense data stored in SRB 08h target busy 18h reservation error (Table 01460) Values for device type: 00h disk drive 01h tape drive (streamer) 02h printer 03h processor 04h WORM drive 05h CD-ROM drive 06h scanner 07h optical drive 08h autochanger 09h communications device (Table 01461) Values for disk drive flags: 00h no INT 13 access 01h INT 13 with DOS access 02h INT 13 without DOS access 03h invalid flags Format of CCB: Offset Size Description (Table 01462) 00h BYTE command code (see #01463) 01h BYTE flags bits 4-0: vary by function bits 7-5: logical unit number 02h BYTE "adr_1" 03h BYTE "adr_0" 04h BYTE length 05h BYTE control ... 06h/0Ah 14 BYTEs buffer for sense data (see #01464) SeeAlso: #01454 (Table 01463) Values for CCB command code: 00h test unit ready 01h rewind 03h request sense data 05h get block size limits 08h Group 0 read 0Ah Group 0 write 10h write file marks 11h SCSI Space (set position?) 12h SCSI Inquire 15h set mode information 16h reserve SCSI device 17h release SCSI device 19h erase 1Ah request mode information 1Bh load/unload media 1Dh request target self-check 24h set window parameters 25h get window parameters 28h Group 1 read 2Ah Group 1 write 31h document feeder control 34h get scan data status ---vendor-specific commands--- D3h get document feeder status D4h set document feeder mode Format of sense data: Offset Size Description (Table 01464) 00h BYTE error code (bit 7 set if valid) 01h BYTE segment number 02h BYTE sense key bit 6: EOM bit 5: ILI bits 0-3: sense key (see #01465) 03h 4 BYTEs information bytes 07h BYTE additional sense length (0Ah) 08h 4 BYTEs command-specific information 0Ch BYTE additional sense code 0Dh BYTE additional sense code qualifier 0Eh BYTE field replaceable unit code 0Fh 3 BYTEs sense key specific bytes (Table 01465) Values for sense key: 00h no sense data 02h SCSI unit not ready 03h media error 04h unrecoverable hardware error 05h illegal parameter in CDB 06h target has been reset 0Bh target aborted command (Table 01466) Values ASPI post function is called with: STACK: DWORD -> SRB (see #01454) which completed interrupts disabled Return: EBP, EBX, ESI, EDI must be preserved interrupts disabled Note: the post function may issue any ASPI function except an abort; it should complete as quickly as possible Format of ASPI2DOS.SYS v3.65 host adapter unique parameters: Offset Size Description (Table 90010) 00h WORD reserved? (0) 02h WORD reserved? (0) 04h WORD base I/O port address 06h BYTE interrupt level 07h 9 BYTEs reserved (0) SeeAlso: #90011,#01454 Format of ASPI4DOS.SYS v3.35 host adapter unique parameters: Offset Size Description (Table 90011) 00h WORD offset to "ASPI request dispatcher" procedure 02h WORD offset to "interrupt handler" procedure 04h 12 BYTEs reserved (0) SeeAlso: #90010,#01454Top
INT 21 - ATA Software Programming Interface (ATASPI) - INTERFACE AX = 4402h BX = file handle for device "$ATAMGR$" CX = 0004h (size of buffer in bytes) DS:DX -> buffer for result (see #90000), set to zeros before call Return: CF clear if successful AX = 0004h CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: ATASPI is an API to control IDE, EIDE, and ATAPI devices, proposed by Future Domain; there's at least one driver in existence which conforms to this specification: ATASPI16.SYS by Future Domain (see #90002) on the stack and the caller must clean up the stack Future Domain ATASPI16.SYS v2.2 performs ATASPI calls using INT 4Fh interface instead of this INT 21/4402h interface and itself supports both interfaces SeeAlso: AX=4402h"ASPI",INT 4F/AX=0081h,INT 4F/AX=0082h,PORT 01F0h-01F7h"HDC1" Format of ATASPI IOCTL result: Offset Size Description (Table 90000) 00h DWORD ATASPI entry point address (Table 90001) Call ATASPI entry point with: STACK: DWORD -> ATA Request Block (ARB) (see #90003) Notes: caller must clean up the stack the large-model C declaration is void (*entry)(ARB_Struct *); SeeAlso: #90000 (Table 90002) Values for ATASPI command code: 00h ATA controller inquiry 01h get ATA device type 02h execute ATA I/O 03h abort ATA request 04h reset ATA device 05h set ATA controller parameter 06h get ATA disk drive information SeeAlso: #90003 Format of ATA Request Block (ARB): Offset Size Description (Table 90003) 00h BYTE command code (see #90002) 01h BYTE (ret) status (see #90004) 02h BYTE ATA controller number 03h BYTE request flags (see #90005) 04h DWORD reserved (0) ---request 00h--- 08h BYTE (ret) total number of ATA controllers valid only if ATA controller number = 0FFh 09h BYTE reserved (0) 0Ah 16 BYTEs (ret) ATA manager ID 1Ah 16 BYTEs (ret) ATA controller ID 2Ah 16 BYTEs (ret) controller unique parameters (see #90010) ---request 01h--- 08h BYTE device ID (00h = master, 01h = slave) 09h BYTE reserved (0) 0Ah BYTE (ret) peripheral device type (see #90007) ---request 02h--- 08h BYTE device ID 09h BYTE reserved (0) 0Ah DWORD data transfer length (ret) residual byte length 0Eh BYTE sense allocation length (N) 0Fh DWORD data buffer pointer 13h DWORD reserved (0) 17h BYTE ACB length (M) for Task File requests must be set to 07h, for ATAPI Packet requests must match the number of bytes in the packet 18h BYTE (ret) ATA controller status (see #90006) 19h BYTE (ret) device status value of the error register, 00h if no error (see #P0512) 1Ah DWORD post routine address (see #90009) 1Eh WORD data transfer block size (in bytes) number of data bytes to transfer per hardware interrupt for Task File requests; number of data bytes host prefers to transfer per hardware interrupt for ATAPI Packet commands 20h 32 BYTEs reserved for ATASPI workspace 40h M BYTEs ATA/ATAPI command block (ACB) contains AT Task File Structure (see #90008) if bit 2 of the request flags is set, ATAPI packet (see #03236,#03237,#03238) if bit 2 is cleared 40h+M N BYTEs sense allocation area ---request 03h--- 08h DWORD address of ARB to be aborted ---request 04h--- 08h BYTE device ID 09h 15 BYTEs reserved (0) 18h BYTE (ret) ATA controller status (see #90006) 19h BYTE (ret) device status 1Ah DWORD post routine address (see #90009) 1Eh 34 BYTEs reserved for ATASPI workspace ---request 05h--- 08h 16 BYTEs controller unique parameters (vendor unique) ---request 06h--- 08h BYTE device ID 09h BYTE reserved (0) 0Ah BYTE (ret) drive flags (see #01461) 0Bh BYTE (ret) INT 13h drive 0Ch BYTE (ret) preferred head translation 0Dh BYTE (ret) preferred sector translation 0Eh 10 BYTEs reserved (0) (Table 90004) Values for ATASPI request status: 00h request in progress 01h request completed without error 02h request aborted by host 04h request completed with error 80h invalid request 81h invalid ATA controller number 82h ATA device not installed 83h ATA controller/device busy Note: if ATASPI ever returns 83h as the status, it is the responsibility of the driver/applications to re-send the request at a later time SeeAlso: #90003 Bitfields for request flags: Bit(s) Description (Table 90005) 7 reserved (0) 6 "ByteXfer" =0 use word transfer mode =1 use byte transfer mode 5 (ATAPI device) DSC unavailable action (DUA) =0 queue the request and service it when DSC bit is set =1 return with status 83h 4-3 direction 00 direction determined by device 01 data in 10 data out 11 no data transfer 2 request type =0 ATAPI Packet Command =1 AT Task File Structure 1 reserved (0) 0 "Post" =0 disable posting =1 enable posting SeeAlso: #90003 (Table 90006) Values for ATA controller status: 00h no error 11h device not present 12h data overrun/underrun SeeAlso: #90003 (Table 90007) Values for peripheral device type: 00h direct-access device (e.g. magnetic disk) 01h tape device (QIC-121 SCSI Architectural Model) 02h-04h reserved 05h CD-ROM device 06h reserved 07h optical memory device (e.g. some optical disks) 08h-0Bh reserved 0Ch tape device (Cost Sensitive Architectural Model) 0Dh-1Eh reserved 1Fh unknown or no device type 80h non-ATAPI device SeeAlso: #90003 Format of AT Task File Structure: Offset Size Description (Table 90008) 00h features register 01h sector count register 02h cylinder LSB register 04h cylinder MSB register 05h device/head register (see #P0513) 06h command register (see #P0515) SeeAlso: #90005 (Table 90009) Values ATASPI post function is called with: STACK: DWORD -> ARB (see #90003) which completed interrupts disabled Return: EBP, EBX, ESI, EDI must be preserved interrupts disabled Notes: the post function may issue any ATASPI function except an abort; it should complete as quickly as possible the large-model C declaration is void (*post)(ARB_Struct *); SeeAlso: #90003 Format of Future Domain controller unique parameters: Offset Size Description (Table 90010) 00h WORD controller features 02h WORD controller main I/O port 04h WORD controller alternate I/O port 06h BYTE controller IRQ 07h BYTE ??? (00h or 01h) 08h BYTE ??? (00h or 01h) 09h 7 BYTEs reserved (0) SeeAlso: #90003Top
INT 21 - CD-ROM device driver - IOCTL OUTPUT AX = 4403h BX = file handle referencing character device for CD-ROM driver CX = number of bytes to write DS:DX -> control block (see #01524) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Notes: some device drivers support several subunits (that is more than one drive) but it is not possible to distinguish between them with this function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead under Windows95, the "mscd$$$$" device cannot be opened so you cannot obtain the handle required by this function: use INT 2F/AX=1510h or INT 2F/AX=0802h instead SeeAlso: AX=4402h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h Format of CR-ROM control block: Offset Size Description (Table 01524) 00h BYTE function code 00h eject disk 01h lock/unlock door 02h reset drive 03h control audio channel 04h write device control string 05h close tray ---functions 00h,02h,05h--- no further fields ---function 01h--- 01h BYTE lock function 00h unlock door 01h lock door ---function 03h--- 01h BYTE input channel (0-3) for output channel 0 02h BYTE volume for output channel 0 03h BYTE input channel (0-3) for output channel 1 04h BYTE volume for output channel 1 05h BYTE input channel (0-3) for output channel 2 06h BYTE volume for output channel 2 07h BYTE input channel (0-3) for output channel 3 08h BYTE volume for output channel 3 Note: output channels 0 and 1 are left and right, 2 and 3 are left prime and right prime; a volume of 00h is off ---function 04h--- 01h N BYTEs bytes to send directly to the CD-ROM drive without interpretationTop
INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS AX = 4403h BX = handle for device "SCSITAPE" CX = number of bytes to write DS:DX -> SCSITAPE control block (see #01525) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4405h"ST-01",INT 78/AH=10h Format of SCSITAPE control block: Offset Size Description (Table 01525) 00h WORD command type 'F' Format (argument 1 = interleave, argument 2 = format type) 'E' Erase 'R' Rewind 'L' Load 'N' No Load 'S' Space (argument 1 = count, argument 2 = type) 'M' File Mark (argument 1 = count) 'A' Reassign 02h WORD argument 1 04h WORD argument 2 06h WORD segment of command buffer 08h WORD offset of command buffer 0Ah WORD length of command bufferTop
INT 21 U - xDISK v3.31 - CONFIGURE AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 0047h (length of version string) DS:DX -> 79-byte buffer for version string and ??? DS:0081h = commandline containing new switches for driver Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio SeeAlso: AX=4405h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"Top
INT 21 - SFS v1.00 - GET CONFIGURATION INFORMATION AX = 4404h BL = drive number (00h = default, 01h = A:, etc) CX = 001Ah (length of data packet) DS:DX -> buffer for data packet (see #01536) Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by Peter C. Gutmann SeeAlso: AX=4405h"SFS" Format of SFS data packet: Offset Size Description (Table 01536) 00h 4 BYTEs signature string "SFS1" 04h WORD SFS unit number (0-based) 06h WORD drive on which the SFS volume is mounted 08h DWORD sector offset of logical volume from start of physical volume 0 if logical volume = physical volume 0Ch WORD flag: 00h = no disk mounted, 01h = disk mounted 0Eh WORD flag: 00h read/write, 01h read-only 10h WORD quick-unmount hotkey (high byte = shift state, low = scan code) (see #00006) 12h WORD auto-unmount time in minutes, or 0000h if already expired, or FFFFh if not set 14h WORD time in minutes remaining before auto-unmount 16h WORD internal driver check code 0000h no error 0001h driver consistency check failed 0002h unit consistency check failed 18h WORD disk access mode 0000h BIOS 0001h IDE direct access 0002h SCSI direct accessTop
INT 21 - Brian Antoine Seagate ST-01 SCSI.SYS - IOCTL - EXECUTE COMMANDS AX = 4405h BX = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> SCSIDISK control block (see also #01525 at AX=4403h"ST-01") Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4403h"ST-01"Top
INT 21 U - xDISK v3.31 - ??? AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> buffer containing version string ??? Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: xDISK is a shareware resizeable EMS RAMdisk by FM de Monasterio SeeAlso: AX=4404h"xDISK",INT 2F/AH=DDh/BX=7844h"xDISK"Top
INT 21 - COMBI-disk v1.13 - CONTROL COMBI-disk AX = 4405h BL = drive number (00h = default, 01h = A:, etc) for RAM disk CX = number of bytes to write DS:DX -> buffer containing command packet (see #01539) Return: CF clear if successful AX = number of bytes actually transferred CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) SeeAlso: AX=4404h"COMBI" (Table 01538) Values for COMBI-disk command code: 80h flush cache 81h change options byte 82h shrink memory 83h expand memory 84h get dirty block information 85h reset write errors 86h reset counters Format of COMBI-disk command packet: Offset Size Description (Table 01539) 00h WORD version 02h BYTE command code (see #01538) ---command code 80h--- no additional fields ---command code 81h--- 03h BYTE new options byte (see #01540) ---command code 82h--- 03h WORD number of KB to release ---command code 83h--- 03h WORD number of KB to expand ---command code 84h--- 03h DWORD -> buffer for block info (see #01541) ---command code 85h--- 03h DWORD block ID ---command code 86h--- 03h BYTE which counters to reset bit 0: hard disk read counts bit 1: hard disk write counts bit 2: RAM disk read/write counts Note: multiple commands may be placed in a single packet by stringing together as many command/argument pairs as desired Bitfields for COMBI-disk options byte: Bit(s) Description (Table 01540) 0 cache off 1 cache frozen 2 write caching enabled 3 delayed writing disabled 5 fix memory allocation (no XMS lending) 6 no 'sector not found' error Format of COMBI-disk block info: Offset Size Description (Table 01541) 00h DWORD block ID 04h BYTE bitmask of valid sectors in block 05h BYTE bitmask of dirty sectors in block 06h BYTE last error returned by BIOS 07h BYTE number of errorsTop
INT 21 - SFS v1.00 - DRIVER CONTROL AX = 4405h BL = drive number (00h = default, 01h = A:, etc) CX = number of bytes to write DS:DX -> data to write (see #01543) Return: CF clear if successful AX = number of bytes actually written CF set on error AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h) Program: SFS (Secure FileSystem) is a shareware encrypting disk driver by Peter C. Gutmann SeeAlso: AX=4404h"SFS" (Table 01542) Values for SFS control function: 00h "PACKET_SET_DISKINFO" set disk parameters 01h "PACKET_SET_KEYINFO" set keying information 02h "PACKET_SET_READONLY" select read/write or read-only 03h "PACKET_SET_DRIVENO" set drive number to mount 04h "PACKET_SET_MOUNTSTATUS" set mount status 05h "PACKET_SET_UNMOUNT" set/clear quick-unmount hotkey 06h "PACKET_SET_TIMEOUT" set/clear auto-unmount timeout Format of SFS control data packet: Offset Size Description (Table 01543) 00h WORD signature 4330h ('C0') 02h WORD function (see #01542) ---function 00h--- 04h WORD sector size in bytes 06h BYTE sectors per cluster 07h WORD number of boot sectors 09h BYTE number of copies of FAT 0Ah WORD size of root directory in entries 0Ch WORD number of sectors on disk, 16-bit 0Eh BYTE media descriptor byte 0Fh WORD sectors per FAT 11h WORD sectors per track 13h WORD number of heads 15h DWORD number of hidden sectors 19h DWORD number of sectors on disk, 32-bit ---function 01h--- 04h 20 BYTEs master IV for encrypted disk 18h 64 BYTEs NDC/SHS keying information ---function 02h--- 04h WORD read-only state: 00h read-only, 01h read/write ---function 03h--- 04h WORD drive number (see #01544) 06h DWORD sector offset of logical volume from start of physical volume 0 if logical volume = physical volume ---function 04h--- 04h WORD mount status (00h unmounted, 01h mounted) ---function 05h--- 04h WORD hotkey (high byte = shift state, low byte = scan code or 00h) (see #00006) 0000h to disable hotkey ---function 06h--- 04h WORD timeout in minutes before automatic unmount 0000h to disable auto-unmount Notes: the data for function 00h corresponds to a DOS BPB (see AH=53h) functions 00h, 01h, and 03h automatically unmount the encrypted drive unmounting a drive with function 04h also destroys the encryption information in the driver and forces all dirty buffers to be flushed Bitfields for SFS drive number: Bit(s) Description (Table 01544) 15-12 drive access mode 0000 BIOS access 0001 direct IDE access 0010 direct SCSI access ---if BIOS access--- 11-8 unused (0) 7-0 BIOS drive number ---if IDE access--- 11-8 unused (0) 7-0 IDE drive number ---if SCSI access--- 11-8 SCSI host number 7-4 SCSI target ID 3-0 SCSI logical unit numberTop
INT 21 - Greg Shenaut ASPITAPE.SYS - INTERFACE AX = 440Ch BX = device handle CH = category code 07h tape (ASPITAPE.SYS) CL = function 01h "mtop" - perform tape operation 02h "mtget" - get tape status 03h ignore end-of-tape errors 04h enable end-of-tape errors DS:DX -> parameter block (see #01554,#01555) Return: CF set on error AX = error code (see #01680 at AH=59h/BX=0000h) CF clear if successful DS:DX -> data block Notes: This device driver is a simple DOS interface to the Adaptec Advanced SCSI Programming Interface (ASPI). It provides the following device names as access to the SCSI tape, 'RMTx' (rewind on close) and 'NRMTx' (NO rewind on close) where x can go from 0 to 3. There may also be the following names 'MTx' and 'NMTx' which default to 1024 byte blocks. The names may also have a '$' appended to try and make them unique from file names of 'RMT0' etc. once opend these devices must be put into RAW mode SeeAlso: AX=4402h"ASPI" Format of ASPITAPE.SYS mtop parameter block: Offset Size Description (Table 01554) 00h WORD operation code 00h "MTWEOF" - write an end-of-file record 01h "MTFSF" - forward space file 02h "MTBSF" - backward space file 03h "MTFSR" - forward space record 04h "MTBSR" - backward space record 05h "MTREW" - rewind 06h "MTOFFL" - rewind and unload 07h "MTNOP" - perform TEST UNIT READY 02h DWORD repetition count Format of ASPITAPE.SYS mtget parameter block: Offset Size Description (Table 01555) 00h BYTE ASPI host ID 01h BYTE SCSI target ID 02h BYTE SCSI logical unit number 03h BYTE device parameters bit 0: drive must use fixed-block read and write bit 7: drive is an ASPI device 04h BYTE current device state (see #01556) 05h BYTE unit number within driver 06h WORD fixed block blocksize 08h BYTE last SCSI status 09h BYTE last SCSI sense key 0Ah WORD last SCSI opcode (packed) (see #01557) 0Ch WORD residual bytes from SCSI opcode Bitfields for ASPITAPE.SYS current device state: Bit(s) Description (Table 01556) 0 device currently opened in buffered mode 1 drive currently opened in nonbuffered mode 2 rewind drive on last close 3 drive has been written on 4 drive has been read from 5 next read will return 0 bytes 6 EOM will resemble EOF 7 drive may be busy rewinding Bitfields for SCSI opcode: Bit(s) Description (Table 01557) 0-7 SCSI operation (SCSI packet byte 0) 8-10 SCSI flags (SCSI packet byte 1) 11-12 ASPI "Direction Bits" (ASPI SRB byte 3)Top
INT 21 U - NewSpace - ENABLE DRIVER AX = 4410h BX = FFFFh Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read Note: compressed files are not accessible unless the driver is enabled SeeAlso: AX=4411h/BX=FFFFhTop
INT 21 U - NewSpace - DISABLE DRIVER AX = 4411h BX = FFFFh Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read Note: compressed files are not accessible unless the driver is enabled SeeAlso: AX=4410h/BX=FFFFhTop
INT 21 U - NewSpace - INSTALLATION CHECK??? AX = 4412h BX = FFFFh Return: AX = PSP segment of NewRes (resident driver for NewSpace) BX:DX -> ??? CX = ??? SeeAlso: AX=4411h/BX=FFFFhTop
INT 21 U - NewSpace - GET ??? AX = 4413h BX = FFFFh Return: AX = code segment of NewRes (resident driver for NewSpace) BX = offset of ??? SeeAlso: AX=4412h/BX=FFFFhTop
INT 21 U - NewSpace - DEBUGGING DUMP AX = 4414h BX = FFFFh Return: debugging dump written to X:\NEWSPACE.SMP SeeAlso: AX=4413h/BX=FFFFh,AX=44FFh/BX=FFFFhTop
INT 21 U - NewSpace - ??? AX = 44FFh BX = FFFFh DX = ??? Program: NewSpace is a TSR by Isogon Corporation which automatically compresses all files as they are written and decompresses them as they are read SeeAlso: AX=4414h/BX=FFFFhTop
INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER AX = 69FFh DX = 0000h BX = CB00h (magic value) Return: ES:BX -> CUBITR.EXE handler for INT 21 InstallCheck: test that the first eight bytes at the returned interrupt handler are EBh 07h "CUBITR" (a short jump around the signature followed by the signature) Note: the byte following the signature (i.e. ES:[BX+8]) indicates whether CUBITR is active (01h) or disabled (00h) SeeAlso: AX=69FFh/DX=CFBFh Index: installation check;CUBITTop
INT 21 U - CUBIT v4.00 - UNINSTALL AX = 69FFh DX = CFBFh CX = EFCFh BX = CB00h (magic value) Return: ES:BX -> CUBITR.EXE handler for INT 21 CX = status 2020h successful 2222h failed Note: if DX is neither 0000h nor CFBFh on entry, some other code is executed SeeAlso: AX=69FFh/DX=0000hTop
INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF AH = DCh DX = state 0000h turn on 0001h turn off SeeAlso: AX=FEDChTop
INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK AX = FEDCh Return: AX = CDEFh if installed Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits infrequently-used files to be compressed to save space and transparently expanded when accessed SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"Top
INT 2D - dLite 1.0+ - GET PARAMETER BLOCK ADDRESS AL = 10h AH = AMIS multiplex number for dLite Return: CF clear if successful ES:BX -> parameter block (see #02577) CF set on error Program: dLite is a shareware TSR by Rainer Schuetze which transparently expands compressed files when they are read SeeAlso: AL=11h"dLite",AL=12h"dLite",INT 21/AX=FEDCh"PCMANAGE" Format of dLite parameter block: Offset Size Description (Table 02577) 00h BYTE TSR flags (see #02578) 01h WORD maximum number of programs needing original filesize 03h WORD current number of programs needing original filesize 05h WORD maximum number of files that can be handled by dLite (should be the same as FILES= in CONFIG.SYS) 07h WORD offset (in the same segment as the parameter block) of the table of programs needing the original filesize (8 bytes each, without path or extension, uppercase, and zero \ terminated if shorter than 8 bytes) Bitfields for dLite TSR flags: Bit(s) Description (Table 02578) 0 deny FCB access 1 dLite sleeping rather than activated 2 always indicate original filesize when reading directory entries, rather than only for specified programs 3-7 reserved SeeAlso: #02577Top
INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET ORIGINAL SIZE AL = 11h AH = AMIS multiplex number for dLite BX = file handle Return: CF clear if successful DX:AX = size of uncompressed file CF set on error (not dPressed file) SeeAlso: AL=10h"dLite",AL=12h"dLite"Top
INT 2D - dLite 1.0+ - CHECK FOR dPressed FILE AND GET COMPRESSED SIZE AL = 12h AH = AMIS multiplex number for dLite BX = file handle Return: CF clear if successful DX:AX = size of compressed file CF set on error (not dPressed file) SeeAlso: AL=10h"dLite",AL=11h"dLite"Top
INT 2F U - DR DOS 6.0+ FDOS EXTENSIONS - INSTALL FDOS HOOK (SHARE / DELWATCH) AX = 1001h DX:BX -> new FDOS stub entry function Return: nothing Notes: the default handler for the pointer set by this call under DELWATCH simply returns with CF set In Digital Research terminology FDOS is the part of the BDOS kernel (IBMDOS.COM) responsible for the file system and related tasks, and its functionality is also used by the BDOS kernel itself. However, for reasons of performance and code size, it uses direct calling. This interrupt allows external components like SHARE file locking or DELWATCH delete tracking software to hook into the internal backdoor INT 2F/AH=10h/AL<=09h chain in the kernel, so that they can actually allows the kernel to ensure that several conditions are met when passing control to these registered components including proper maintaining A20, re-enterancy, or critical section mutexing (e.g. getting the disk sub-system queue "MXdisk"). The default handler in the BDOS just sets the carry flag and returns. Currently known clients to this shared interface are DR DOS 6.0 SHARE 1.xx, DR DOS 6.0+ DELWATCH 1.00+, which both chain onto the same call far address, and the version of AddStor's SuperStor which is bundled with DR DOS 6.0 However, the DR PalmDOS, and Novell DOS 7 - DR-DOS 7.03 SHARE 2.00-2.05 do not use this function to hook into the system. Instead they fix up the share stubs directly. DR PalmDOS SHARE 2.00 uses the stubs at Table !!! INT 21/AH=52h, while Novell DOS 7 - DR-DOS 7.03 SHARE 2.01-2.05 use the private set of share stubs at Table !!! at INT 21/AX=4458h). Future releases may possibly again fix up the share stubs at INT 21/AH=52h. SeeAlso: AX=1000h,AX=F800hTop
INT 2F CU - Novell DOS 7+ FDOS EXTENSIONS - SUPERSTOR - QUERY PHYS FREE SPACE AX = 1010h CX = 0000h Return: CX = free space 0000h if no physical space left on the drive else there is still space available Notes: This private function is internally called by the FDOS part of the OS kernel on "out of disk space" conditions. It allows optimized behaviour of DELWATCH delete tracking software in conjunction with disk compression, and was implemented for SuperStor (but it would also work with other disk compression if they hook this function). If there truly is no physical space left on the drive, the FDOS asks DELWATCH to purge files in its queue until enough space has been freed, or there actually is no free disk space any more. By using the INT 2F/AX=1001h FDOS hook, the call can be intercepted by external system components such as SuperStor, bundled with DR DOS "Panther" and Novell DOS 7 BETAs. This function must under no circumstances be called by applications! SeeAlso: INT 2F/AX=1001h,AX=10FEhTop
INT 2F - MSCDEX (MS CD-ROM Extensions) - INSTALLATION CHECK AX = 1100h subfn DADAh STACK: WORD DADAh Return: AL = status 00h not installed, OK to install STACK unchanged 01h not installed, not OK to install STACK unchanged FFh installed STACK: WORD ADADh if MSCDEX installed DADBh if Lotus CD/Networker installed Note: although MSCDEX sets the stack word to ADADh on return, any value other than DADAh is considered to mean that MSCDEX is already installed; Lotus CD/Networker v4+ uses this feature to fool MSCDEX into thinking it is already installed when it is in fact CD/Networker that is installed Index: installation check;Lotus CD/Networker Index: Lotus CD/Networker;installation checkTop
INT 2F - CD-ROM - INSTALLATION CHECK AX = 1500h BX = 0000h Return: BX = number of CD-ROM drive letters used CX = starting drive letter (0=A:) AX = 15FFh (Novell DOS 7 NWCDEX only!) Notes: this installation check DOES NOT follow the format used by other software this installation check conflicts with the DOS 4.00 GRAPHICS.COM installation check BUG: this function may return an incorrect starting drive letter when INTERLNK is installed SeeAlso: AX=150Ch,AX=15FFh,INT 2F/AX=D000h"Lotus"Top
INT 2F - CD-ROM - GET DRIVE DEVICE LIST AX = 1501h ES:BX -> buffer to hold drive letter list (5 bytes per drive letter) Return: buffer filled, for each drive letter BYTE subunit number in driver DWORD address of device driver header (see #01646) Note: reportedly returns AX=0000h and an invalid address under Windows95; other reports say it works fine SeeAlso: AX=1510hTop
INT 2F - CD-ROM - GET COPYRIGHT FILE NAME AX = 1502h ES:BX -> 38-byte buffer for name of copyright file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1503hTop
INT 2F - CD-ROM - GET ABSTRACT FILE NAME AX = 1503h ES:BX -> 38-byte buffer for name of abstract file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1502h,AX=1504hTop
INT 2F - CD-ROM - GET BIBLIOGRAPHIC DOC FILE NAME AX = 1504h ES:BX -> 38-byte buffer for name of bibliographic documentation file CX = drive number (0=A:) Return: CF set if drive is not a CD-ROM drive AX = 000Fh (invalid drive) CF clear if successful SeeAlso: AX=1502h,AX=1503hTop
INT 2F - CD-ROM - READ VTOC AX = 1505h ES:BX -> 2048-byte buffer CX = drive number (0=A:) DX = sector index (0=first volume descriptor,1=second,...) Return: CF set on error AX = error code (15=invalid drive,21=not ready) CF clear if successful AX = volume descriptor type (1=standard,FFh=terminator,0=other) Note: This function was not supported by Novell DOS 7 NWCDEX prior to the 08/16/94 updateTop
INT 2F - CD-ROM - TURN DEBUGGING ON AX = 1506h BX = debugging function to enable Note: reserved for development SeeAlso: AX=1507hTop
INT 2F - CD-ROM - TURN DEBUGGING OFF AX = 1507h BX = debugging function to disable Note: reserved for development SeeAlso: AX=1506hTop
INT 2F - CD-ROM - ABSOLUTE DISK READ AX = 1508h ES:BX -> buffer CX = drive number (0=A:) SI:DI = starting sector number DX = number of sectors to read Return: CF set on error AL = error code (0Fh invalid drive,15h not ready) CF clear if successful Note: returns error 15h (not ready) under Windows95 if the starting sector number is less than 10h SeeAlso: AX=1509hTop
INT 2F - CD-ROM - ABSOLUTE DISK WRITE AX = 1509h ES:BX -> buffer CX = drive number (0=A:) SI:DI = starting sector number DX = number of sectors to write Note: corresponds to INT 26h and is currently reserved and nonfunctional, but could be implemented for CD-R and CD-RW drives SeeAlso: AX=1508hTop
INT 2F - CD-ROM - RESERVED AX = 150AhTop
INT 2F - CD-ROM v2.00+ - DRIVE CHECK AX = 150Bh CX = drive number (0=A:) Return: BX = ADADh if MSCDEX.EXE installed AX = support status 0000h if drive not supported nonzero if supported SeeAlso: AX=150DhTop
INT 2F - CD-ROM v2.00+ - GET MSCDEX.EXE VERSION (GET VERSION) AX = 150Ch BX = 0000h Return: BH = major version BL = minor version Notes: MSCDEX.EXE versions prior to 2.00 leave BX unchanged, thus BX should be 0000h on entry Corel's CORELCDX.COM v1.01d returns 2.20, v1.12a returns 2.21 Meridian Data's CDNETEX.EXE returns its own version number, e.g. 4.70 J.M.A. Hall's CDEMU2.COM returns 2.10 (it is an MSCDEX emulator for networked CD-ROM drives) Windows95 returns v2.95 Novell DOS 7 NWCDEX.EXE returns the same version number reported in its startup message SeeAlso: AX=1500h"CD-ROM",AX=15FFh"CORELCDX"Top
INT 2F - CD-ROM v2.00+ - GET CD-ROM DRIVE LETTERS AX = 150Dh ES:BX -> buffer for drive letter list (1 byte per drive) Return: buffer filled with drive numbers (0=A:). Each byte corresponds to the drive in the same position for function 1501h SeeAlso: AX=150BhTop
INT 2F - CD-ROM v2.00+ - GET/SET VOLUME DESCRIPTOR PREFERENCE AX = 150Eh BX = subfunction 00h get preference DX = 0000h Return: DX = preference settings 01h set preference DH = volume descriptor preference 01h = primary volume descriptor 02h = supplementary volume descriptor DL = supplementary volume descriptor preference 01h = shift-Kanji CX = drive number (0=A:) Return: CF set on error AX = error code (15=invalid drive,1=invalid function) CF clear if successfulTop
INT 2F - CD-ROM v2.00+ - GET DIRECTORY ENTRY AX = 150Fh CL = drive number (0=A:) CH bit 0 = copy flag clear if direct copy set if copy to structure which removes ISO/High Sierra diffs ES:BX -> ASCIZ path name SI:DI -> buffer for directory entry (see #02628,#02629) must be 255 bytes for direct copy, 285 bytes for canonical Return: CF set on error AX = error code CF clear if successful AX = disk format (0=High Sierra,1=ISO 9660) Note: this function was not supported by Novell DOS 7 NWCDEX prior to the 08/16/94 update Format of CD-ROM directory entry (direct copy): Offset Size Description (Table 02628) 00h BYTE length of directory entry 01h BYTE length of XAR in Logical Block Numbers 02h DWORD LBN of data, Intel (little-endian) format 06h DWORD LBN of data, Motorola (big-endian) format 0Ah DWORD length of file, Intel format 0Eh DWORD length of file, Motorola format ---High Sierra--- 12h 6 BYTEs date and time 18h BYTE bit flags 19h BYTE reserved ---ISO 9660--- 12h 7 BYTEs date and time (seventh byte is offset from GMT in 15-minute increments) 19h BYTE bit flags ---both formats--- 1Ah BYTE interleave size 1Bh BYTE interleave skip factor 1Ch WORD volume set sequence number, Intel format 1Eh WORD volume set sequence number, Motorola format 20h BYTE length of file name 21h N BYTEs file name BYTE (optional) padding if filename is odd length N BYTEs system data SeeAlso: #02629,#01352 Format of CD-ROM directory entry (canonicalized): Offset Size Description (Table 02629) 00h BYTE length of XAR in Logical Block Numbers 01h DWORD Logical Block Number of file start 05h WORD size of disk in logical blocks 07h DWORD file length in bytes 0Bh 7 BYTEs date and time 12h BYTE bit flags 13h BYTE interleave size 14h BYTE interleave skip factor 15h WORD volume set sequence number 17h BYTE length of file name 18h 38 BYTEs ASCIZ filename 3Eh WORD file version number 40h BYTE number of bytes of system use data 41h 220 BYTEs system use data SeeAlso: #02628Top
INT 2F - CD-ROM v2.10+ - SEND DEVICE DRIVER REQUEST AX = 1510h CX = CD-ROM drive letter (0 = A, 1 = B, etc) ES:BX -> CD-ROM device driver request header (see #02597 at AX=0802h) Return: CF clear if device driver has been called (check the request header's status word to determine whether an error has occurred) ES:BX request header updated CF set if device driver has not been called AX = error code (000Fh = invalid drive, 0001h = invalid function) ES:BX request header unchanged Notes: MSCDEX initializes the device driver request header's subunit field based on the drive number specified in CX MSCDEX v2.21 through v2.25 (at least) return error code AX=0001h if nested calls are attempted BUGS: Novell DOS 7 NWCDEX prior to the 12/13/94 update did not initialize the subunit field Windows95 sets CF if CX isn't a CD-ROM drive but leaves CF unchanged if the drive is in fact a CD-ROM SeeAlso: AX=0802hTop
INT 2F - CD-ROM - CORELCDX - INSTALLATION CHECK AX = 15FFh BX = 0000h Return: BX = ABCDh if CORELCDX loaded Note: Corel's CORELCDX.COM is a replacement for MSCDEX.EXE; it also supports the standard MSCDEX installation check calls AX=1500h and AX=150Ch SeeAlso: AX=1500h"CD-ROM",AX=150ChTop
INT 2F U - IOMEGA DRIVERS - INSTALLATION CHECK AX = 5700h BX = program ID??? (0201h used by GUEST.EXE) DX = 496Fh ('Io') Return: AL = status 00h not installed FFh installed SeeAlso: AX=5701h,AX=5710h,AX=5711h,AX=5712hTop
INT 2F U - IOMEGA DRIVERS - SECONDARY INSTALLATION CHECK AX = 5701h BX = program ID??? (0201h used by GUEST.EXE) DX = 496Fh ('Io') Return: AX = 0001h if GUEST.EXE installed SeeAlso: AX=5700h,AX=5710h,AX=5711h,AX=5712hTop
INT 2F U - IOMEGA DRIVERS - GET DRIVER INFORMATION??? AX = 5710h BX = program ID??? (0201h used by GUEST.EXE) DX = 496Fh ('Io') Return: AX = ??? (BX ORed with ???) BX = ??? (internal variable) CX = ??? (internal variable) DX = ??? (CX ORed with ???) SeeAlso: AX=5700h,AX=5701h,AX=5711h,AX=5712hTop
INT 2F U - IOMEGA DRIVERS - LOCK MEDIA IN DRIVE AX = 5711h BX = program ID??? (0201h used by GUEST.EXE) DX = 496Fh ('Io') Return: CF clear if successful (storage medium in drive) AX = new lock count CF set on error (drive empty) SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5712hTop
INT 2F U - IOMEGA DRIVERS - UNLOCK MEDIA IN DRIVE / EJECT AX = 5712h BX = program ID??? (0201h used by GUEST.EXE) DX = 496Fh ('Io') Return: AX = new lock count (00h = unlocked) Note: if the lock count was already zero, the storage medium is ejected from the drive SeeAlso: AX=5700h,AX=5701h,AX=5710h,AX=5711hTop
INT 2F - SRDISK v1.30+ - INSTALLATION CHECK AX = 7200h Return: AL = FFh if installed ES = segment of device driver header (see #02856) Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala SeeAlso: AX=7201h Format of SRDISK device driver header: Offset Size Description (Table 02856) 00h 10 BYTEs same as standard device driver header (see #01646 at INT 21/AH=52h) 0Ah BYTE number of subunits (drives) supported by driver 0Bh 3 BYTEs signature "SRD" 0Eh 4 BYTEs memory type string ("XMS "/"EMS ") 12h 4 BYTEs ASCII driver version string "N.NN" 16h BYTE 00h 17h BYTE configuration format version (currently 00h or 01h) 18h WORD offset of drive configuration data SeeAlso: #01646Top
INT 2F - SRDISK v2.02 - GET CODE/DATA SEGMENT AX = 7201h Return: AL = FFh if installed ES = segment of device driver header (see #02856) Program: SRDISK is a freeware resizeable RAMdisk by Marko Kohtala SeeAlso: AX=7200hTop
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - INSTALLATION CHECK AX = 7F00h Return: AL = FFh if installed SeeAlso: AX=7F01h"Harper",AX=7F02h"Harper",AX=7F03h"Harper"Top
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO COMMAND AX = 7F01h DS:DX -> command record (see #02927) Return: AL = status 00h successful else error code SeeAlso: AX=7F00h"Harper",AX=7F02h"Harper",INT 11/AH=FFh"SDLP" SeeAlso: INT 21/AX=4402h"ASPI",INT 4F/AX=8100h Format of CD-ROM redirector command record: Offset Size Description (Table 02927) 00h BYTE ID 01h 10 BYTEs CDB (Command Descriptor Block) for operation (see #03236,#03237) 0Bh WORD segment of buffer 0Dh WORD offset of buffer 0Fh BYTE status 10h BYTE sense 12h WORD countTop
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - DO RESET AX = 7F02h SeeAlso: AX=7F00h,AX=7F01hTop
INT 2F - Jim Harper's CD-ROM redirector SCSI driver - UNINSTALL AX = 7F03h Return: AL = status 00h successful 01h unable to uninstall SeeAlso: AX=7F00hTop
INT 2F - Disk-Emu - INSTALLATION CHECK / GET VERSION AX = AFDEh ES:DI -> 14-byte buffer for data (see #02979) Return: AX = CFDEh (Carlos Fernandez Disk-Emu) if installed BX = version (BH = major, BL = minor) Format of Disk-Emu information data: Offset Size Description (Table 02979) 00h BYTE number of tracks 01h BYTE sectors per track 02h WORD bytes per sector 04h BYTE number of heads 05h BYTE flag: 00h inactive, 01h active 06h BYTE write protection (00h none, 01h full, 02h pseudo) 07h BYTE saved (00h some unsaved data, 01h all data saved) 08h BYTE disk in memory (00h no, 01h yes) 09h WORD EMS handle 0Bh WORD XMS handle 0Dh BYTE memory type used for disk (00h XMS, 01h EMS)Top
INT 2F - SETWPR.COM - INSTALLATION CHECK AX = C300h Return: AL = FFh if installed Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa SeeAlso: AX=C302h"SETWPR"Top
INT 2F - SETWPR.COM - SET WRITE-PROTECTION STATE AX = C302h BL = new state 00h disk may be written 01h disk write-protected Return: AL = FFh if installed Program: SETWPR is a hard-disk write-protection TSR by Jaroslaw Rafa SeeAlso: AX=C300h"SETWPR"Top
INT 2F U - Smart Prompt - INSTALLATION CHECK AX = C64Ch BX = 5553h Return: AX = 4CC6h if installed BX = 5355h if installed Program: Smart Prompt (SMARTPMT) is a freeware TSR by Steve Gibson which forces an immediate flush of SmartDrive's (and compatible caches') buffers on returning to the DOS promptTop
INT 2F U - Novell NLCACHE,NWCACHE - INSTALLATION CHECK AX = D8C0h Return: AL = FFh if installed CL = memory type (01h NLCACHEC, 02h NLCACHEX, 03h NLCACHEM) DH = major version (01h for v1.1) DL = minor version (01h for v1.1) ES:DI -> private API entry point (see #03091) Program: NWCACHE is the disk cache included with Personal NetWare, Novell DOS 7, Caldera OpenDOS 7.01, DR-OpenDOS 7.02, DR-DOS 7.02, and Caldera Thin Clients/Lineo DR-DOS 7.03. Note: This function is called by the NetWare Lite and Personal NetWare SERVER. It may also be called by future (post DR-DOS 7.03) COMMAND.COM before it returns to the prompt. BUG: Some pre-BETA 17 (1993/09/28) versions of NWCACHE returned -1,0,1 instead of 1,2,3 for the memory type in CL. SeeAlso: AX=D800h,AX=D880h (Table 03091) Call NLCACHE/NWCACHE "sideband function" API entry point with: BX = function 0000h flush request from server Return: CF clear if successful at flushing deferred writes AX = 0000h CF set on error AX = error code 0001h (NWCACHE only) get cache statistics ES:DI -> buffer for statistics (see #04122) Return: CF clear if successful AX = 0000h ES:DI buffer filled other Return: CF set AX = 0001h (invalid function) Format of NWCACHE cache statistics: Offset Size Description (Table 04122) 00h WORD version 02h BYTE memory type 03h WORD initial cache size in KB 05h WORD current cache size in KB 07h DWORD number of read requests 0Bh DWORD number of physical reads performed 0Fh DWORD number of write requests 13h DWORD number of physical writes performed 17h BYTE delay ticks for deferred write (0 if no deferral) 18h WORD maximum number of sectors in lookahead buffer 1Ah WORD number of disk errors 1Ch WORD number of cache memory errors SeeAlso: #03091Top
INT 2F - xDISK v3.32+ - INSTALLATION CHECK AH = DDh BX = 7844h ('xD') CX = 4953h ('IS') DX = 4B3Fh ('K?') AL = desired drive (01h-1Ah) or 00h to check for xDISK on any drive ES:DI -> 25-byte data buffer (see #03099) Return: AX = DDFFh if installed (on specified drive if AL nonzero on entry) BX = 87BBh DX = B4C0h ES:DI buffer filled CX,CF destroyed SeeAlso: INT 21/AX=4404h"xDISK",INT 21/AX=4405h"xDISK" Format of xDISK data buffer: Offset Size Description (Table 03099) 00h DWORD pointer to ASCIZ driver signature "xDISK unit: X" 04h BYTE flag: 01h if disk linked to DOS, 00h if unlinked 05h BYTE flag: 01h if write protected, 00h if not 06h BYTE flag: 01h if root directory full, 00h if not 07h BYTE flag: 01h if free space uncompacted, 00h if compacted 08h BYTE resizing state: 00h not resizable, 01h resized, 80h resizable 09h BYTE flag: 01h inelastic resizable disk, 00h elastic 0Ah 2 BYTEs reserved 0Ch BYTE flag: 01h collapsed disk, 00h not collapsed 0Dh BYTE flag: 01h using all EMS, 00h some EMS free 0Eh BYTE flag: 01h password enabled, 00h disabled 0Fh BYTE flag: 01h password audio feedback, 00h no feedback 10h BYTE flag: 01h password video feedback, 00h no feedback 11h BYTE flag: 01h confirm changes, 00h no confirmation 12h BYTE flag: 01h terse display, 00h verbose display 13h BYTE flag: 01h click speaker on disk access, 00h no click 14h BYTE flag: 01h flash icon on disk access, 00h no icon flash 15h BYTE FAT entry size: 00h 12-bit, FFh 16-bit 16h WORD count of open files in RAM disk 18h BYTE unusedTop
INT 2F - AUTOPARK.COM - INSTALLATION CHECK AX = F700h Return: AL = state 00h not installed FFh installed Program: AUTOPARK.COM is a resident hard disk parker by Alan D. JonesTop
INT 2F - AUTOPARK.COM - SET PARKING DELAY AX = F701h BX:CX = 32-bit count of 55ms timer ticksTop
INT 2F U - SuperStor PRO 2XON.COM - INSTALLATION CHECK AX = F800h CX = 4455h ("DU") DL = 45h ("E") Return: AL = FFh if installed ES:BX -> ASCII signature "Universal Data Exchange" Program: SuperStor is a disk-compression program by Addstor. Note: returns AX=0001h if AL is not 00h or 01h SeeAlso: AX=1001h,AX=F801hTop
INT 2F U - SuperStor PRO 2XON.COM - UNINSTALL AX = F801h CX = 4455h ("DU") DL = 45h ("E") ES:BX = return address if successful Return: at specified address if successfully removed from memory else AL = error code ??? Program: SuperStor is a disk-compression program by Addstor. Note: returns AX=0001h if AL is not 00h or 01h SeeAlso: AX=1001h,AX=F800hTop
INT 4B - Common Access Method SCSI interface (draft revision 1.9) ES:DI -> CAM Control Block (see #03229 at INT 4F/AX=8100h) InstallCheck: test for the string "SCSI_CAM" eight bytes past the INT 4Bh handler Notes: the CAM committee moved the interface to INT 4F after revision 1.9 to avoid conflicting with the IBM SCSI interface and the Virtual DMA specification the only driver to date reported to use the CAM interface on INT 4B instead of INT 4F is from Future Domain (which has drivers for CAM on either interrupt) SeeAlso: INT 4F/AX=8100h Index: installation check;Common Access Method SCSI interfaceTop
INT 4B - IBM SCSI interface AH = 80h AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS) further details not yet availableTop
INT 4B - Virtual DMA Specification (VDS) - GET VERSION AX = 8102h DX = 0000h Return: CF clear if successful AH = major version number AL = minor version number BX = product number (see #03217) CX = product revision number always 0000h for QMAPS and HPMM.SYS always 0001h for Microsoft's EMM386.EXE v4.20-4.41 DX = flags (see #03219) SI:DI = maximum DMA buffer size CF set on error AL = error code (see #03218) Note: bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is apparently not always the case SeeAlso: INT 2C/AX=002Bh,INT 31/AX=0400h,MEM 0040h:007Bh"4Bh" Index: installation check;Virtual DMA Specification (Table 03217) Values for VDS product number: 0000h for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS 0001h for Microsoft's EMM386.EXE 0003h for Windows 3.x WIN386.EXE 0300h OS/2 (all versions to date) 0EDCh for DR DOS 6.0 EMM386.SYS 4560h ("E`") for Qualitas' 386MAX 4D43h ("MC") for V Communications' Memory Commander 5145h ("QE") for Quarterdeck's QEMM-386 524Dh ("RM") for Helix's Netroom RM386 (Table 03218) Values for VDS error code: 01h region not in contiguous memory 02h region crossed a physical alignment boundary 03h unable to lock pages 04h no buffer available 05h region too large for buffer 06h buffer currently in use 07h invalid memory region 08h region was not locked 09h number of physical pages greater than table length 0Ah invalid buffer ID 0Bh copy out of buffer range 0Ch invalid DMA channel number 0Dh disable count overflow 0Eh disable count underflow 0Fh function not supported 10h reserved flag bits set in DX Bitfields for VDS flags: Bit(s) Description (Table 03219) 0 PC/XT bus (DMA in first megabyte only) 1 physical buffer/remap region in first megabyte 2 automatic remap enabled 3 all memory is physically contiguous 4-15 reserved (zero)Top
INT 4B - Virtual DMA Specification - LOCK DMA REGION AX = 8103h DX = flags (see #03220) ES:DI -> DMA descriptor structure (see #03221,#03222,#03223) Return: CF clear if successful DDS physical address field filled in DDS buffer ID field filled (0000h if no buffer allocated) CF set on error AL = error code (see #03218) DDS region size field filled wth maximum contiguous length in bytes BUGS: Windows 3.0 does not correctly support automatic remapping or copying in enhanced mode Windows 3.0 in enhanced mode does not return a correct code on error SeeAlso: AX=8104h,AX=8105h Bitfields for VDS flags: Bit(s) Description (Table 03220) 0 reserved (zero) 1 data should be copied into buffer (ignored if 2 set) 2 buffer should not be allocated if region noncontiguous or crosses physical alignment boundary specified by 4-5 3 don't attempt automatic remap 4 region must not cross 64K physical alignment boundary 5 region must not cross 128K physical alignment boundary 6-15 reserved (zero) Format of DMA descriptor structure (DDS): Offset Size Description (Table 03221) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD buffer ID 0Ch DWORD physical address Format of Extended DMA descriptor structure (EDDS): Offset Size Description (Table 03222) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD reserved 0Ch WORD number available 0Eh WORD number used 10h DWORD region 0 physical address 14h DWORD region 0 size in bytes 18h DWORD region 1 physical address 1Ch DWORD region 1 size in bytes ... Format of Extended DMA descriptor structure (EDDS) with page table entries: Offset Size Description (Table 03223) 00h DWORD region size 04h DWORD offset 08h WORD segment/selector 0Ah WORD reserved 0Ch WORD number available 0Eh WORD number used 10h DWORD page table entry 0 (same as 80386 page table entry) 14h DWORD page table entry 1 ... Note: bits 1-11 of the page table entries should be zero; bit 0 set if page is present and lockedTop
INT 4B - Virtual DMA Specification - UNLOCK DMA REGION AX = 8104h DX = flags bit 0: reserved (zero) bit 1: data should be copied out of buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221,#03222) with region size, physical address, and buffer ID fields set Return: CF clear if successful DDS physical address field set DDS buffer ID field set (0000h if no buffer allocated) CF set on error AL = error code (see #03218) DDS region size field filled wth maximum contiguous length in bytes Note: Windows 3.0 does not check whether the region extends beyond the end of a segment BUG: Windows 3.0 in enhanced mode does not return a correct code on error SeeAlso: AX=8103h,AX=8106hTop
INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION AX = 8105h DX = flags (see #03224) ES:DI -> Extended DMA descriptor structure (see #03222,#03223) region size, linear segment, linear offset, and number avail fields set Return: CF clear if successful EDDS number used field set if DX bit 6 set, lower 12 bits of BX = offset in first page CF set on error AL = error code (see #03218) EDDS region size field filled with max length in bytes that can be locked and described in the EDDS table BUG: Windows 3.0 in enhanced mode may return zero instead of the physical page address for pages which were originally not present SeeAlso: AX=8103h,AX=8106h Bitfields for VDS flags: Bit(s) Description (Table 03224) 0-5 reserved (zero) 6 EDDS should be returned with page table entries 7 only present pages should be locked (not-present pages receive entry of 0000h) 8-15 reserved (zero)Top
INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION AX = 8106h DX = flags (see #03225) ES:DI -> Extended DMA descriptor structure (see #03222,#03223) returned by AX=8105h Return: CF clear if successful CF set on error AL = error code (see #03218) Note: according to the Microsoft version of the VDS specification, the actual scatter/gather list is ignored, while according to the IBM version of the specification, "the result of a LOCK operation" must be provided to this function SeeAlso: AX=8104h,AX=8105h Bitfields for VDS flags: Bit(s) Description (Table 03225) 0-5 reserved (zero) 6 EDDS contains page table entries 7 EDDS may contain not-present pages (entry = 0000h) 8-15 reserved (zero)Top
INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER AX = 8107h DX = flags bit 0: reserved (zero) bit 1: data should be copied into buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221) with region size set (also region offset and region segment if DX bit 1 set) Return: CF clear if successful DDS physical address and buffer ID set DDS region size filled with length of buffer CF set on error AL = error code (see #03218) SeeAlso: AX=8108hTop
INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER AX = 8108h DX = flags bit 0: reserved (zero) bit 1: data should be copied out of buffer bits 2-15 reserved (zero) ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID set (also region size/region offset/segment if DX bit 1 set) Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: under Windows 3.0 Enhanced mode, you must specify that data be copied for this function to work correctly SeeAlso: AX=8107hTop
INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER AX = 8109h DX = 0000h ES:DI -> DMA descriptor structure (see #03221,#03222) with buffer ID, region segment/offset, and region size fields set BX:CX = starting offset into DMA buffer Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count SeeAlso: AX=810AhTop
INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER AX = 810Ah DX = 0000h ES:DI -> DMA descriptor structure (see #03221,#03223) with buffer ID, region segment/offset, and region size fields set BX:CX = starting offset into DMA buffer Return: CF clear if successful CF set on error AL = error code (see #03218) BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count SeeAlso: AX=8109hTop
INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION AX = 810Bh BX = DMA channel number DX = 0000h Return: CF clear if successful CF set on error AL = error code (see #03218) SeeAlso: AX=810ChTop
INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION AX = 810Ch BX = DMA channel number DX = 0000h Return: CF clear if successful ZF set if disable count decremented to zero CF set on error AL = error code (see #03218) SeeAlso: AX=810BhTop
INT 4F - ATA Software Programming Interface (ATASPI) - SEND ATASPI REQUEST AX = 0081h ES:BX -> ATA Request Block (see #90002) Return: AH = 00h always??? Note: this interface has probably appeared in some later revisions of ATASPI than 0.72 SeeAlso: INT 21/AX=4402h"ATASPI",INT 4F/AX=0082hTop
INT 4F - ATA Software Programming Interface (ATASPI) - INSTALLATION CHECK AX = 0082h CX = 8765h DX = CBA9h Return: AH = 00h if installed CX = 9ABCh DX = 5678h ES:DI -> "$ATAMGR$" Note: this interface has probably appeared in some later revisions of ATASPI than 0.72 SeeAlso: INT 21/AX=4402h"ATASPI",INT 4F/AX=0081hTop
INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM AX = 8100h ES:BX -> CAM Control Block (CCB) (see #03229) Return: AH = status 00h successful 01h invalid CCB address (0000h:0000h) Note: the SCSI Interface Module (SIM) may complete the requested function and invoke the completion callback function before this call returns SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method" (Table 03228) Values for CAM function code: 00h NOP 01h execute SCSI I/O 02h get device type 03h path inquiry 04h release SIM queue 05h set async callback 06h set device type 07h-0Fh reserved 10h abort SCSI command 11h reset SCSI bus 12h reset SCSI device 13h terminate I/O process 14h-1Fh reserved 20h engine inquiry 21h execute engine request 22h-2Fh reserved 30h enable logical unit number 31h execute target I/O 32h-7Fh reserved 80h-FFh vendor-specific functions Format of CAM Control Block: Offset Size Description (Table 03229) 00h DWORD physical address of this CCB 04h WORD CAM control block length 06h BYTE function code (see #03228) 07h BYTE CAM status (see #03232) 08h BYTE SCSI status 09h BYTE path ID (FFh = XPT) 0Ah BYTE target ID 0Bh BYTE logical unit number 0Ch WORD CAM flags (see #03230) 0Eh BYTE CAM address flags (see #03231) 0Fh BYTE target-mode flags (see #03233) ---function 02h--- 10h DWORD pointer to 36-byte buffer for inquiry data or 0000h:0000h 14h BYTE peripheral device type of target logical unit number ---function 03h--- 10h BYTE version number (00h-07h prior to rev 1.7, 08h = rev 1.7, 09h-FFh = rev no, i.e. 23h = rev 2.3) 11h BYTE SCSI capabilities (see #03234) 12h BYTE target mode support bit 7: processor mode bit 6: phase-cognizant mode bit 5-0: reserved 13h BYTE miscellaneous flags bit 7: scanned high to low instead of low to high bit 6: removables not included in scan bit 5: inquiry data not kept by XPT bits 4-0: reserved 14h WORD engine count 16h 14 BYTEs vendor-specific data 24h DWORD size of private data area 28h DWORD asynchronous event capabilities (see #03235) 2Ch BYTE highest path ID assigned 2Dh BYTE SCSI device ID of initiator 2Eh 2 BYTEs reserved 30h 16 BYTEs SIM vendor ID 40h 16 BYTEs HBA (host bus adaptor) vendor ID 50h 4 BYTEs operating-system dependant usage ---functions 00h,04h,11h,12h--- no additional fields ---function 05h--- 10h DWORD asynchronous event enables (refer to function 03h above) 14h DWORD pointer to asynchronous callback routine (see #03241) 18h DWORD pointer to peripheral driver buffer 1Ch BYTE size of peripheral buffer ---function 06h--- 10h BYTE peripheral device type of target ---functions 10h,13h--- 10h DWORD pointer to CCB to be aborted ---function 20h--- 10h WORD engine number 12h BYTE engine type 00h buffer memory 01h lossless compression 02h lossy compression 03h encryption 13h BYTE engine algorithm ID 00h vendor-unique 01h LZ1 variation 1 (STAC) 02h LZ2 variation 1 (HP DCZL) 03h LZ2 variation 2 (Infochip) 14h DWORD engine memory size ---function 21h--- 10h DWORD pointer to peripheral driver 14h 4 BYTEs reserved 18h DWORD OS-dependent request-mapping info 1Ch DWORD address of completion callback routine 20h DWORD pointer to scatter/gather list or data buffer 24h DWORD length of data transfer 28h DWORD pointer to engine buffer data 2Ch 2 BYTEs reserved 2Eh WORD number of scatter/gather entries 30h DWORD maximum destination data length 34h DWORD length of destination data 38h DWORD source residual length 3Ch 12 BYTEs reserved 48h DWORD OS-dependent timeout value 4Ch 4 BYTEs reserved 50h WORD engine number 52h WORD vendor-unique flags 54h 4 BYTEs reserved 58h N BYTEs private data area for SIM ---function 30h--- 10h WORD group 6 vendor-unique CDB length 12h WORD group 7 vendor-unique CDB length 14h DWORD pointer to target CCB list 18h WORD number of target CCBs ---other functions--- 10h DWORD pointer to peripheral driver 14h DWORD pointer to next CCB 18h DWORD OS-dependent request mapping information 1Ch DWORD address of completion callback routine (see #03240) 20h DWORD pointer to scatter/gather list or data buffer 24h DWORD length of data transfer 28h DWORD pointer to sense info buffer 2Ch BYTE length of sense info buffer 2Dh BYTE CDB length 2Eh WORD number of scatter/gather entries scatter/gather list is array of 2N DWORDs, each pair specifying the address and length of a data block 30h 4 BYTEs vendor-specific data 34h BYTE (ret) SCSI status 35h BYTE (ret) auto-sense residual length 36h 2 BYTEs reserved 38h DWORD (ret) residual length 40h 12 BYTEs Command Descriptor Block (CDB) (see #03236,#03237,#03238) 44h DWORD OS-dependent timeout value 48h DWORD pointer to message buffer 4Ch WORD length of message buffer 4Eh WORD vendor-unique flags 50h BYTE tag queue action 51h 3 BYTEs reserved 54h N BYTEs private data area for SIM Bitfields for CAM flags: Bit(s) Description (Table 03230) 0 CDB is a pointer 1 tagged queue action enable 2 linked CDB 3 disable callback on completion 4 scatter/gather 5 disable autosense 7-6 direction (00 reserved, 01 in, 10 out, 11 no data transfer) 9-8 reserved 10 engine synchronize 11 SIM queue freeze 12 SIM queue priority 1 head insertion 0 tail insertion (normal) 13 disable synchronous transfers \ mutually 14 initiate synchronous transfers / exclusive 15 disable disconnect Bitfields for CAM address flags: Bit(s) Description (Table 03231) 7 SG list/data (0 = host, 1 = engine) 6 CDB pointer (6-1: 0=virtual addr, 1=phys addr) 5 SG list/data 4 sense buffer 3 message buffer 2 next CCB 1 callback on completion 0 reserved (Table 03232) Values for CAM status: 00h request in progress 01h request successful 02h host aborted request 03h unable to abort request 04h request completed with error 05h CAM is busy 06h invalid request 07h invalid path ID 08h no such SCSI device 09h unable to terminate I/O process 0Ah timeout on target selection 0Bh timeout on command 0Dh receive message rejection 0Eh sent/received SCSI bus reset 0Fh detected uncorrectable parity error 10h Autosense request failed 11h no HBA detected 12h data over/underrun 13h bus freed unexpectedly 14h target bus phase sequence failure 15h CCB too small 16h requested capability not available 17h sent bus device reset 18h terminate I/O process 38h invalid LUN 39h invalid target ID 3Ah unimplemented function 3Bh nexus not established 3Ch invalid initiator ID 3Dh received SCSI Command Descriptor Block 3Eh LUN already enabled 3Fh SCSI bus busy Note: bit 6 set to indicate frozen SIM queue bit 7 set to indicate valid autosense Bitfields for CAM target-mode flags: Bit(s) Description (Table 03233) 7 data buffer valid 6 status valid 5 message buffer valid 4 reserved 3 phase-cognizant mode 2 target CCB available 1 disable autodisconnect 0 disable autosave/restore Bitfields for SCSI capabilities: Bit(s) Description (Table 03234) 7 modify data pointers 6 wide bus (32 bits) 5 wide bus (16 bits) 4 synchronous transfers 3 linked commands 2 reserved 1 tagged queueing 0 soft reset Bitfields for CAM asynchronous event capabilities: Bit(s) Description (Table 03235) 31-24 vendor-specific 23-8 reserved 7 new devices found during rescan 6 SIM module deregistered 5 SIM module registered 4 sent bus device reset to target 3 SCSI AEN 2 reserved 1 unsolicited reselection 0 unsolicited SCSI bus reset Format of Six-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03236) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 MSB of logical block address (bits 4-0) 02h WORD logical block address (low word) 04h BYTE transfer length 05h BYTE control byte SeeAlso: #03237,#03238 Format of Ten-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03237) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 reserved in SCSI-3 02h DWORD logical block address (low word) 06h BYTE reserved 07h WORD transfer length 09h BYTE control byte SeeAlso: #03236,#03238 Format of Twelve-Byte SCSI Command Descriptor Block (CDB): Offset Size Description (Table 03238) 00h BYTE operation code (see #03239) 01h BYTE logical unit number (bits 7-5), SCSI-1/SCSI-2 reserved in SCSI-3 02h DWORD logical block address (low word) 06h DWORD transfer length 0Ah BYTE reserved 0Bh BYTE control byte SeeAlso: #03236,#03237 (Table 03239) Values for SCSI CDB operation code for direct-access devices: 00h Test Unit Ready 01h Rezero Unit 03h Request Sense 04h Format Unit 07h Reassign Blocks 08h Read (6-byte CDB) 0Ah Write (6-byte CDB) 0Bh Seek (6-byte CDB) 12h Inquiry 15h Mode Select (6-byte CDB) 16h Reserve 17h Release 18h Copy 1Ah Mode Sense (6-byte CDB) 1Bh Start/Stop Unit 1Ch Receive Diagnostic Results 1Dh Send Diagnostic 1Eh Prevent/Allow Medium Removal 25h Read Capacity 28h Read (10-byte CDB) 2Ah Write (10-byte CDB) 2Bh Seek (10-byte CDB) 2Eh Write and Verify 2Fh Verify 30h Search Data High 31h Search Data Equal 32h Search Data Low 33h Set Limits 34h Prefetch 35h Synchronize Cache 36h Lock/Unlock Cache 37h Read Defect Data 39h Compare 3Ah Copy and Verify 3Bh Write Buffer 3Ch Read Buffer 3Eh Read Long 3Fh Write Long 40h Change Definition 41h Write Same 4Ch Log Select 4Dh Log Sense 55h Mode Select (10-byte CDB) 5Ah Mode Sense (10-byte CDB) SeeAlso: #03236,#03237,#03238 (Table 03240) Values completion callback function is called with: interrupts disabled ES:BX -> completed CCB (Table 03241) Values asynchronous callback function is called with: AH = opcode AL = path ID generating callback DH = target ID causing event DL = LUN causing event CX = data byte count (if applicable) ES:BX -> data buffer (if applicable) Return: all registers preservedTop
INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK AX = 8200h CX = 8765h DX = CBA9h Return: AH = 00h if installed CX = 9ABCh DX = 5678h ES:DI -> "SCSI_CAM" SeeAlso: AX=8100h,INT 4B"Common Access Method"Top
INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec" SeeAlso: INT 64"Adaptec",INT C0"AMI",#00732 at INT 1A/AX=B102h Notes: this vector stores the first four bytes of the parameter table for hard disk 0 these vectors are used by the following Adaptec controllers: ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16 these vectors are NOT used by the following Adaptec controllers: ACB 2310, ACB 2312, ACB 2320D, ACB 2322DTop
INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA Desc: this vector stores the second four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"Top
INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA Notes: this vector stores the third four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"Top
INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA Desc: this vector stores the last four bytes of the parameter table for hard disk 0 SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"Top
INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40 Desc: the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13 has been moved there) and places the old value hereTop
INT 64 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the first four bytes of the parameter table for hard disk 1 Notes: these vectors are used by the following Adaptec controllers: ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16 these vectors are NOT used by the following Adaptec controllers: ACB 2310, ACB 2312, ACB 2320D, ACB 2322D SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"Top
INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information Note: This vector is overwritten by Pdisk to install custom harddrive types. It can either destroy 4 vectors and take no memory or TSR and take up some memory. SeeAlso: INT 65"Pdisk"Top
INT 65 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the second four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"Top
INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 66"Pdisk"Top
INT 66 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the third four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"Top
INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 67"Pdisk"Top
INT 67 - Adaptec controllers - DRIVE 1 DATA Desc: this vector stores the last four bytes of the parameter table for hard disk 1 SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"Top
INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information SeeAlso: INT 64"Pdisk",INT 66"Pdisk"Top
INT 78 - ADP-60 IDE controller - ORIGINAL INT 13 SeeAlso: INT 79"ADP-60"Top
INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT AH = 00h DX = interface board I/O port Return: CF set on error AL = error code (see #03786) InstallCheck: (used by TARGA.DEV) test for the string "SCSI" at offset 03h into the interrupt handler Note: if this routine is not called, the port is the driver's default (usually 0280h or 0300h) SeeAlso: AH=01h,AH=02h Index: installation check;TARGA.DEV (Table 03786) Values for TARGA.DEV error code: 00h illegal command given to SCSI code 01h invalid I/O port specified (must be from 100H to 3F8H, and must be on an 8-port boundary) 02h invalid DMA channel specified (must be from 1 to 3) 03h invalid SCSI board number specified (must be from 0 to 7) 04h error from data register test during self-test 05h SCSI input signals not all 0 when SCSI RST activated 06h SCSI input signals not all 0 before selecting a SCSI device 07h BSY signal is active; SCSI bus is busy 08h SCSI board not selected, BSY signal did not come on in response to raising SEL 09h time-out waiting for status state, signifying end of DMA transferTop
INT 78 - TARGA.DEV - GET I/O PORT AH = 01h Return: DX = current interface board I/O port SeeAlso: AH=00h,AH=03h"TARGA"Top
INT 78 - TARGA.DEV - SET DMA CHANNEL AH = 02h AL = interface board DMA channel Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the DMA channel is the driver's default (usually 3) SeeAlso: AH=00h,AH=03h"TARGA"Top
INT 78 - TARGA.DEV - GET DMA CHANNEL AH = 03h Return: AL = current interface board DMA channel SeeAlso: AH=01h,AH=02hTop
INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER AH = 04h AL = SCSI device number Return: CF set on error AL = error code (see #03786) Note: if this routine is not called, the device number used is the driver's default (usually 0) SeeAlso: AH=02h,AH=05hTop
INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER AH = 05h Return: AL = current SCSI device number SeeAlso: AH=03h"TARGA",AH=04hTop
INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE AH = 06h AL = new state 00h clear early return mode 01h set early return mode Note: if early return mode is set then SCSI will return with no errors when the last DMA transfer is started in a call with AH=13h or AH=14h if this routine is not called, early return mode is cleared SeeAlso: AH=13h,AH=14h,AH=15hTop
INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST AH = 08h Return: CF set on error AL = error code (see #03786) Note: the SCSI bus is also reset SeeAlso: AH=09hTop
INT 78 - TARGA.DEV - RESET SCSI BUS AH = 09h Return: AL = error code if carry set (see #03786) SeeAlso: AH=08hTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AH = 10h DS:SI -> command bytes (see #03804) Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) SeeAlso: AH=11h,INT 21/AX=4403h"ST-01" Format of SCSI Command: Offset Size Description (Table 03804) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O) AH = 11h DS:SI -> command bytes (see #03805) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command receives data internally one byte at a time SeeAlso: AH=10h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03805) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O) AH = 12h DS:SI -> command bytes (see #03806) ES:BX -> data storage area CX = number of data bytes to transfer Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: this command sends data internally one byte at a time SeeAlso: AH=14h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03806) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA) AH = 13h DS:SI -> command bytes (see #03807) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command receives data using DMA SeeAlso: AH=11h,AH=12h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03807) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA) AH = 14h DS:SI -> command bytes (see #03808) ES:BX -> data storage area DX:CX = number of data bytes to transfer Return: AH = SCSI status byte (if early return mode is clear) CF clear if successful AL = SCSI message byte (if early return mode is clear) CF set on error AL = error code (see #03786) Note: this command sends data using DMA SeeAlso: AH=12h,AH=13h Format of TARGA.DEV SCSI Command: Offset Size Description (Table 03808) 00h BYTE length of command 01h ??? command bytesTop
INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA) AH = 15h Return: AH = SCSI status byte CF clear if successful AL = SCSI message byte CF set on error AL = error code (see #03786) Note: if AH=06h was previously called to set the early return mode, this function finishes a command AH=13h or AH=14h which returned before the last DMA transfer was finished SeeAlso: AH=06h,AH=13h,AH=14hTop
INT 79 U - ADP-60 IDE adapter - ??? SeeAlso: INT 78"ADP-60"Top
INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 81"BusLogic"Top
INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!) Note: the factory-default location for the eight bytes of scratchpad RAM needed by the SCSI adapter is 0000h:0200h, which is interrupt vectors 80h and 81h SeeAlso: INT 80"BusLogic"Top
INT C0 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the hard disk parameter table SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C1"AMI",INT C2"AMI" SeeAlso: INT C3"AMI",INT C4"AMI"Top
INT C1 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the hard disk parameter table SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI",INT C2"AMI" SeeAlso: INT C3"AMI"Top
INT C2 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the hard disk parameter table SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"Top
INT C3 - AMI BIOS - DRIVE 0 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the hard disk parameter table SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"Top
INT C4 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the first four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C5"AMI" SeeAlso: INT C6"AMI",INT C7"AMI"Top
INT C5 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the second four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C6"AMI",INT C7"AMI"Top
INT C6 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the third four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C5"AMI",INT C7"AMI"Top
INT C7 - AMI BIOS - DRIVE 1 DATA Note: this vector is used by some AMI BIOSes to store the final four bytes of the second hard disk's parameter table SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI" SeeAlso: INT C5"AMI",INT C6"AMI"Top