the default parameter table array is located at F000h:E401h in 100% compatible BIOSes; the pointer may be overridden by the hard disk controller's BIOS to support drive formats unknown to the ROM BIOS
SeeAlso: INT 13/AH=09h,INT 1E,INT 46
Format of fixed disk parameters:
Offset | Size | Description |
---|---|---|
00h | WORD | number of cylinders |
02h | BYTE | number of heads |
03h | WORD | starting reduced write current cylinder (XT only, 0 for others) |
05h | WORD | starting write precompensation cylinder number |
07h | BYTE | maximum ECC burst length (XT only) |
08h | BYTE | control byte * bits 0-2: drive option (XT only, 0 for others) * bit 3: set if more than 8 heads (AT and later only) * bit 4: always 0 * bit 5: set if manufacturer's defect map on max cylinder+1 (AT and later only) * bit 6: disable ECC retries * bit 7: disable access retries |
09h | BYTE | standard timeout (XT only, 0 for others) |
0Ah | BYTE | formatting timeout (XT only, 0 for others) |
0Bh | BYTE | timeout for checking drive (XT only, 0 for others) |
0Ch | WORD | cylinder number of landing zone (AT and later only) |
0Eh | BYTE | number of sectors per track (AT and later only) |
0Fh | BYTE | reserved |
SeeAlso: INT 40“Z100”,INT 42“Z100” ———-4112——————————- INT 41 P - MS Windows debugging kernel - “OutputDebugString”
AH = 12h ???
Return: ??? SeeAlso: AH=50h ———-4150——————————- INT 41 P - MS Windows debugging kernel - “DefineDebugSegment”
AH = 50h ???
Return: ??? SeeAlso: AH=12h ———-42——————————— INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA) SeeAlso: INT 10 Note: not used by PS/2 built-in VGA or XGA ———-42——————————— INT 42 - Z100 - Master 8259 - Timer SeeAlso: INT 41“Z100”,INT 43“Z100” ———-43——————————— INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)
points at graphics data for characters 00h-7Fh of the current font
SeeAlso: INT 1F,INT 44“VIDEO” ———-43——————————— INT 43 - Z100 - Master 8259 - Slave 8259 input Note: slave runs in special fully nested mode SeeAlso: INT 42“Z100”,INT 44“Z100” ———-44——————————— INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)
points at graphics data for current character font
SeeAlso: INT 1F,INT 43“VIDEO” ———-44——————————— INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API ———-44——————————— INT 44 - IBM 3270-PC High Level Language API
DS:SI -> parameter control block
———-44——————————— INT 44 - Z100 - Master 8259 - Serial A SeeAlso: INT 43“Z100”,INT 45“Z100” ———-45——————————— INT 45 - Z100 - Master 8259 - Serial B SeeAlso: INT 44“Z100”,INT 46“Z100” ———-46——————————— INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE SeeAlso: INT 13/AH=09h,INT 41 ———-46——————————— INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen SeeAlso: INT 45“Z100”,INT 47“Z100” ———-47——————————— INT 47 - Z100 - Master 8259 - Printer SeeAlso: INT 46“Z100”,INT 48“Z100” ———-478000—————————– INT 47 - SQL Base - DATABASE ENGINE API
AX = 8000h DS:BX -> parameter block, first word is function number
Note: SQL Base is a network-oriented database engine by Gupta Technologies
Values for function number: 01h “SQLFINI” initalialize application's use of the database 02h “SQLFDON” application is done using the database 03h “SQLFCON” connect to a cursor/database 04h “SQLFDIS” disconnect from a cursor/database 05h “SQLFCOM” compile a SQL command 06h “SQLFEXE” execute a SQL command 07h “SQLFCEX” compile and execute a SQL command 08h “SQLFCMT” commit a transaction to the database 09h “SQLFDES” describe the items of a SELECT statement 0Ah “SQLFGFI” get fetch information 0Bh “SQLFFBK” fetch previous result row from SELECT statement 0Ch “SQLFFET” fetch next result row from SELECT statement 0Dh “SQLFEFB” enable fetch backwards 0Eh “SQLFPRS” position in result set 0Fh “SQLFURS” undo result set 10h “SQLFNBV” get number of bind variables 11h “SQLFBND” bind data variables 12h “SQLFBNN” bind numerics 13h “SQLFBLN” bind long number 14h “SQLFBLD” bind long data variables 15h “SQLFSRS” start restriction set processing 16h “SQLFRRS” restart restriction set processing 17h “SQLFCRS” close restriction set 18h “SQLFDRS” drop restriction set 19h “SQLFARF” apply Roll Forward journal 1Ah “SQLFERF” end Roll Forward journal 1Bh “SQLFSRF” start Roll Forward journal 1Ch “SQLFSTO” store a compiled SQL command 1Dh “SQLFRET” retrieve a compiled SQL command 1Eh “SQLFDST” drop a stored command 1Fh “SQLFCTY” get command type 20h “SQLFEPO” get error position 21h “SQLFGNR” get number of rows 22h “SQLFNSI” get number of select items 23h “SQLFRBF” get Roll Back flag 24h “SQLFRCD” get return code 25h “SQLFROW” get number of ROWs 26h “SQLFSCN” set cursor name 27h “SQLFSIL” set isolation level 28h “SQLFSLP” set log parameters 29h “SQLFSSB” set select buffer 2Ah “SQLFSSS” set sort space 2Bh “SQLFRLO” read long 2Ch “SQLFWLO” write long 2Dh “SQLFLSK” long seek 2Eh “SQLFGLS” get long size 2Fh “SQLFELO” end long operation 30h “SQLFRBK” roll back a transaction from the database 31h “SQLFERR” error message 32h “SQLFCPY” copy 33h “SQLFR01” reserved 34h “SQLFSYS” system 35h “SQLFSTA” statistics 36h “SQLFR02” reserved 37h “SQLFXAD” extra add 38h “SQLFXCN” extra character to number 39h “SQLFXDA” extra date add 3Ah “SQLFXDP” extra date picture 3Bh “SQLFXDV” extra divide 3Ch “SQLFXML” extra multiply 3Dh “SQLFXNP” extra number picture 3Eh “SQLFXPD” extra picture date 3Fh “SQLFXSB” extra subtract 40h “SQLFINS” install database 41h “SQLFDIN” deinstall database 42h “SQLFDIR” directory of databases 43h “SQLFTIO” timeout 44h “SQLFFQN” get fully qualified column name 45h “SQLFEXP” explain execution plan 46h “SQLFFER” get full error 47h “SQLFBKP” begin online backup 48h “SQLFRDC” read backup data chunk 49h “SQLFEBK” end backup 4Ah “SQLFRES” begin restore from backup 4Bh “SQLFWDC” write backup data chunk for restore 4Ch “SQLFRRD” recover restored database to consistent state 4Dh “SQLFERS” end restore 4Eh “SQLFNRR” return number of result set rows 4Fh “SQLFSTR” start restriction mode 50h “SQLFSPR” stop restriction mode 51h “SQLFCNC” connect 2 52h “SQLFCNR” connect with no recovery 53h “SQLFOMS” set output message size 54h “SQLFIMS” set input message size 55h “SQLFSCP” set cache pages 56h “SQLFDSC” describe items of a SELECT statement (external) 57h “SQLFLAB” get label info for items in SELECT statement 58h “SQLFCBV” clear bind variables 59h “SQLFGET” get database information 5Ah “SQLFSET” set database information 5Bh “SQLFTEC” translate error code ———-478001—————————– INT 47 - SQL Base - GET VERSION NUMBER
AX = 8001h
Return: ??? Note: SQL Base is a network-oriented database engine by Gupta Technologies ———-48——————————— INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr) SeeAlso: INT 49“PCjr” ———-48——————————— INT 48 - Z100 - Slave 8259 - S100 vectored line 0 SeeAlso: INT 47“Z100”,INT 49“Z100” ———-48——————————— INT 48 - Watstar PC Network data pointer 1 SeeAlso: INT 49“Watstar” ———-49——————————— INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr) SeeAlso: INT 48“PCjr”
Format of translation table: Offset Size Description 00h BYTE number of nonkeyboard scancodes in the table 01h N WORDs high byte 00h (NUL) byte scancode with low order byte
representing the scancode mapped values relative to their input values within the range of 56h through 7Eh
———-49——————————— INT 49 - Z100 - Slave 8259 - S100 vectored line 1 SeeAlso: INT 48“Z100”,INT 4A“Z100” ———-49——————————— INT 49 - Texas Instruments PC - VIDEO I/O???
apparently provides direct video display on the TI Professional PC
———-49——————————— INT 49 - Watstar PC Network data pointer 2 SeeAlso: INT 49“Watstar” ———-490001—————————– INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION
AX = 0001h
Return: AX = status
0000h cannot magnify current video mode 0002h magnified (text mode) 0003h magnified (graphics mode) FFFDh function works only in magnified mode FFFFh MAGic busy, retry later BX,CX,DX destroyed
Notes: MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc.
providing 2x2 text and graphics magnification on VGA, XGA, and SVGA INT 49 is the default, but may be overridden on the commandline. The actual interrupt in use may be found by searching for the signature "MAGic" or "xMAGic" (for the deluxe version) immediately preceding the interrupt handler (this is also the installation check). MAGic uses CodeRunneR, which places the signature "RT" at offset 0000h in the interrupt handler's segment, followed by MAGic's TSR ID of "VMAG".
SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0008h ———-490002—————————– INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION
AX = 0002h
Return: AX = status (see AX=0001h)
BX,CX,DX destroyed
SeeAlso: AX=0001h ———-490003—————————– INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION
AX = 0003h BX = vertical position (character row [text] or pixel row [graphics]) DX = horizontal position (char column [text] or 8-pixel units [gr])
Return: AX = status
0000h successful FFFFh MAGic busy, retry later BX,CX,DX destroyed
Note: window is not moved if the position is inside the current window SeeAlso: AX=0001h,AX=0004h,AX=0005h ———-490004—————————– INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW
AX = 0004h BX = vertical position of upper left corner DX = horizontal position
Return: AX = status (see AX=0003h)
BX,CX,DX destroyed
SeeAlso: AX=0001h,AX=0003h,AX=0005h ———-490005—————————– INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW
AX = 0005h
Return: AX = status
0000h successful BX = vertical position (char row or pixel row) DX = horizontal position (char column or 8-pixel units) FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed
SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0006h,AX=0007h ———-490006—————————– INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN
AX = 0006h
Return: AX = status
0000h successful BX = vertical size (char rows or pixel rows) DX = horizontal size (char cols or 8-pixel units) FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed
SeeAlso: AX=0001h,AX=0005h,AX=0007h ———-490007—————————– INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW
AX = 0007h
Return: AX = status
0000h successful BX = vertical size (char rows or pixel rows) DX = horizontal size (char cols or 8-pixel units) FFFEh invalid function FFFFh MAGic busy, retry later BX,DX destroyed CX destroyed
BUG: in v1.16 and v1.17, this function is not recognized as valid, but
AX=0000h is accepted and will branch into hyperspace
SeeAlso: AX=0001h,AX=0006h ———-490008—————————– INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE
AX = 0008h BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times)
Return: AX = status
0000h successful FFFBh scaling factor only available in MAGic Deluxe FFFCh already in magnified state, can't set size
Notes: this call specifies the amount a subsequent call to AX=0001h should
magnify the display scaling factors greater than 2 are only available in MAGic Deluxe
SeeAlso: AX=0001h ———-4A——————————— INT 4A - SYSTEM - USER ALARM HANDLER
This interrupt is invoked by the BIOS when a real-time clock alarm occurs. An application may use it to perform an action at a predetermined time; however, this interrupt is called from within a hardware interrupt handler, so all usual precautions against reentering DOS must be taken.
SeeAlso: INT 1A/AH=06h ———-4A——————————— INT 4A - Z100 - Slave 8259 - S100 vectored line 2 SeeAlso: INT 49“Z100”,INT 4B“Z100” ———-4B——————————— INT 4B - Z100 - Slave 8259 - S100 vectored line 3 SeeAlso: INT 4A“Z100”,INT 4C“Z100” ———-4B——————————— INT 4B - Common Access Method SCSI interface (draft revision 1.9)
ES:DI -> CAM Control Block (see INT 4F/AX=8100h)
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 installation check for the driver is the string "SCSI_CAM" eight bytes past the INT 4Bh handler it is not known whether any drivers actually implemented this interface on INT 4B instead of INT 4F
SeeAlso: INT 4F/AX=8100h ———-4B80——————————- INT 4B - IBM SCSI interface
AH = 80h details not yet available
———-4B8102DX0000———————– 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 0000h for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS 0001h for Microsoft's EMM386.EXE 4560h ("E`") for Qualitas' 386MAX 4D43h ("MC") for V Communication's Memory Commander 5145h ("QE") for Quarterdeck's QEMM-386 CX = product revision number always 0000h for QMAPS and HPMM.SYS always 0001h for Microsoft's EMM386.EXE v4.20-4.41 SI:DI = maximum DMA buffer size DX = flags bit 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) CF set on error AL = error code (see below)
Note: bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
apparently not always the case
SeeAlso: INT 31
Values for 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
Format of DMA descriptor structure (DDS): Offset Size Description 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 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 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 locked
———-4B8103—————————– INT 4B - Virtual DMA Specification - LOCK DMA REGION
AX = 8103h DX = flags bit 0: reserved (zero) 1: data should be copied into buffer (ignored if bit 2 set) 2: buffer should not be allocated if region noncontiguous or crosses physical alignment boundary specified by bits 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) ES:DI -> DMA descriptor structure (see AX=8102h)
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 AX=8102h) DDS region size field filled wth maximum contiguous length in bytes
SeeAlso: AX=8104h,AX=8105h ———-4B8104—————————– INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
AX = 8104h DX = flags bit 0: reserved (zero) 1: data should be copied out of buffer 2-15: reserved (zero) ES:DI -> DMA descriptor structure (see AX=8102h) 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 AX=8102h) DDS region size field filled wth maximum contiguous length in bytes
SeeAlso: AX=8103h,AX=8106h ———-4B8105—————————– INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
AX = 8105h DX = flags bits 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) ES:DI -> Extended DMA descriptor structure (see AX=8102h) 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 AX=8102h) EDDS region size field filled with max length in bytes that can be locked and described in the EDDS table
SeeAlso: AX=8103h,AX=8106h ———-4B8106—————————– INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
AX = 8106h DX = flags bits 0-5: reserved (zero) 6: EDDS contains page table entries 7: EDDS may contain not-present pages (entry = 0000h) 8-15: reserved (zero) ES:DI -> Extended DMA descriptor structure (see AX=8102h) returned by AX=8105h
Return: CF clear if successful
CF set on error AL = error code (see AX=8102h)
SeeAlso: AX=8104h,AX=8105h ———-4B8107—————————– INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
AX = 8107h DX = flags bit 0: reserved (zero) 1: data should be copied into buffer 2-15: reserved (zero) ES:DI -> DMA descriptor structure (see AX=8102h) 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 AX=8102h)
SeeAlso: AX=8108h ———-4B8108—————————– INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
AX = 8108h DX = flags bit 0: reserved (zero) 1: data should be copied out of buffer 2-15: reserved (zero) ES:DI -> DMA descriptor structure (see AX=8102h) 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 AX=8102h)
SeeAlso: AX=8107h ———-4B8109DX0000———————– INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
AX = 8109h DX = 0000h ES:DI -> DMA descriptor structure (see AX=8102h) 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 AX=8102h)
SeeAlso: AX=810Ah ———-4B810ADX0000———————– INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
AX = 810Ah DX = 0000h ES:DI -> DMA descriptor structure (see AX=8102h) 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 AX=8102h)
SeeAlso: AX=8109h ———-4B810B—————————– 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 AX=8102h)
SeeAlso: AX=810Ch ———-4B810C—————————– 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 AX=8102h)
SeeAlso: AX=810Bh ———-4B810D—————————– INT 4B - QEMM-386 - BUG
AX = 810Dh
Note: the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
call
———-4C——————————— INT 4C - Z100 - Slave 8259 - S100 vectored line 4 SeeAlso: INT 4B“Z100”,INT 4D“Z100” ———-4D——————————— INT 4D - Z100 - Slave 8259 - S100 vectored line 5 SeeAlso: INT 4C“Z100”,INT 4E“Z100” ———-4E——————————— INT 4E - TI Professional PC - DISK I/O
used instead of INT 13 on the TI Professional PC
SeeAlso: INT 13 ———-4E——————————— INT 4E - Z100 - Slave 8259 - S100 vectored line 6 SeeAlso: INT 4D“Z100”,INT 4F“Z100” ———-4F——————————— INT 4F - Z100 - Slave 8259 - S100 vectored line 7 SeeAlso: INT 4E“Z100” ———-4F8100—————————– INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
AX = 8100h ES:BX -> CAM Control Block (CCB) (see below)
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 4B“Common Access Method”
Format of CAM Control Block: Offset Size Description 00h DWORD physical address of this CCB 04h WORD CAM control block length 06h BYTE function code (see below) 07h BYTE CAM status (see below) 08h BYTE SCSI status 09h BYTE path ID (FFh = XPT) 0Ah BYTE target ID 0Bh BYTE logical unit number 0Ch BYTE CAM flags
bits 7-6: direction 00 reserved 01 in 10 out 11 no data transfer bit 5: disable autosense 4: scatter/gather 3: disable callback on completion 2: linked CDB 1: tagged queue action enable 0: CDB is a pointer
0Dh BYTE CAM flags
bit 7: disable disconnect 6: initiate synchronous transfers \ mutually 5: disable synchronous transfers / exclusive 4: SIM queue priority 1 head insertion 0 tail insertion (normal) bit 3: SIM queue freeze 2: engine synchronize bits 1-0: reserved
0Eh BYTE CAM address flags
bit 7: SG list/data (0 = host, 1 = engine) bit 6: CDB pointer (bits 6-1: 0=virtual addr, 1=phys addr) bit 5: SG list/data bit 4: sense buffer bit 3: message buffer bit 2: next CCB bit 1: callback on completion bit 0: reserved
0Fh BYTE target-mode flags
bit 7: data buffer valid bit 6: status valid bit 5: message buffer valid bit 4: reserved bit 3: phase-cognizant mode bit 2: target CCB available bit 1: disable autodisconnect bit 0: disable autosave/restore
—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
bit 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
12h BYTE target mode support
bit 7: processor mode 6: phase-cognizant mode 5-0: reserved
13h BYTE miscellaneous flags
bit 7: scanned high to low instead of low to high 6: removables not included in scan 5: inquiry data not kept by XPT 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
bits 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
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 (see CAM function 03h above) 14h DWORD pointer to asynchronous callback routine 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 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 30h 4 BYTEs reserved 34h BYTE SCSI status 35h 3 BYTEs reserved 38h DWORD residual length 40h 12 BYTEs Command Descriptor Block (CDB) 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
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
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
Completion callback function called with:
interrupts disabled ES:BX -> completed CCB
Asynchronous callback function 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 preserved ———-4F8200CX8765———————– 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” ———-50——————————— INT 50 - TIL Xpert AIM (X.25)
AH = function
———-50——————————— INT 50 - IRQ0 relocated by DESQview Notes: this is the default location for older versions; DESQview v2.26+
searches for unused ranges of interrupts and uses the lowest available range in its list for relocating these IRQs and the next lowest for relocating IRQ8-IRQ15 a range of eight interrupts starting at a multiple of 8 is considered available if all vectors are identical and it has not been excluded with an /XB:nn commandline switch the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these are available, F8h and then 50h are used anyway) the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these are available, F8h and then F0h are used anyway)
SeeAlso: INT 08“IRQ0”,INT 51“DESQview”,INT 54“DESQview”,INT 58“DESQview” ———-50——————————— INT 50 - IRQ0 relocated by IBM 3278 emulation control program SeeAlso: INT 51“IBM 3278” ———-50——————————— INT 50 - IRQ0 relocated by OS/2 v1.x SeeAlso: INT 51“OS/2” ———-500000—————————– INT 50 - Vanderaart TEXT WINDOWS - OPEN TEXT WINDOW
AX = 0000h ES:BX -> name string or ES:0000h if none CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner
Return: AX = window handle or
0000h if not installed FFFFh on error
SeeAlso: AX=0001h,AX=0002h ———-500001—————————– INT 50 - Vanderaart TEXT WINDOWS - CLOSE TEXT WINDOW
AX = 0001h DI = window handle
SeeAlso: AX=0000h ———-500002—————————– INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
AX = 0002h BL = character BH = attribute DL = column DH = row DI = window handle
Return: AX = status
0000h if successful FFFFh if outside window
SeeAlso: AX=0000h ———-500003—————————– INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
AX = 0003h ES:BX -> text string CX = string length (0000h if ASCIZ string) DL = position (FFh centered, else flush left) DH = starting row DI = window handle
Return: AX = status
0000h successful FFFFh did not fit in window
———-500004—————————– INT 50 - Vanderaart TEXT WINDOWS - GET KEY
AX = 0004h CH = type 00h any key 01h 'J' or 'N' (Dutch for yes/no)
Return: AX = key ———-500005—————————– INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
AX = 0005h BL = new attribute CH,CL = row,column of upper left corner DH,DL = row,column of lower right corner DI = window handle
———-500006—————————– INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
AX = 0006h ES:BX -> text string CH = type 00h everything 01h uppercase only 02h positive numbers 03h Dutch postal code ("9999 AA") 04h 'J' or 'N' (Dutch yes/no) 05h telephone or FAX number 06h positive or negative number 07h date (dd/mm/yy) 08h money 09h '1' through '8' 0Ah '1' through '4' 0Bh uppercase filenames DH,DL = row,column of upper left corner DI = window handle
Return: AX = key which terminated entry
0000h Enter 0001h Esc 0002h Down arrow 0003h Up arrow 0004h F10