Interrupt Helper v1.0 by Independent (IND)
35981 of 48,116 files
- Browsers may flag this download as unwanted or malicious. If unsure, scan it with VirusTotal.
-
Last modified Mar 9, 1997 12:02:04 AM
MD5 checksum 4988e83aa4b7739692e3088e0ba12808
Mime type ASCII text, with CRLF line terminators
Download VDS.TXT
Size 9 kB
1997 March 9
- Text / Computer tool
- Peter Quiring, Ralph Brown, writer credits
This information was extracted from Ralph Brown's Interrupt List (r52) by
Peter Quiring. You may distribute this freely.
Interrupt Helper v1.0 d-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 (see #2472)
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 #2474)
SI:DI = maximum DMA buffer size
CF set on error
AL = error code (see #2473)
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
Index: installation check;Virtual DMA Spec
(Table 2472)
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 2473)
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 2474)
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)
Interrupt Helper v1.0 d-4B8103
INT 4B - Virtual DMA Specification - LOCK DMA REGION
AX = 8103h
DX = flags (see #2475)
ES:DI -> DMA descriptor structure (see #2476,#2477,#2478)
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 #2473)
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 2475)
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 2476)
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 2477)
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 2478)
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
Interrupt Helper v1.0 d-4B8104
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 #2476,#2477) 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 #2473)
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=8106h
Interrupt Helper v1.0 d-4B8105
INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
AX = 8105h
DX = flags (see #2479)
ES:DI -> Extended DMA descriptor structure (see #2477,#2478)
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 #2473)
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 2479)
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)
Interrupt Helper v1.0 d-4B8106
INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
AX = 8106h
DX = flags (see #2480)
ES:DI -> Extended DMA descriptor structure (see #2477,#2478) returned
by AX=8105h
Return: CF clear if successful
CF set on error
AL = error code (see #2473)
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 2480)
0-5 reserved (zero)
6 EDDS contains page table entries
7 EDDS may contain not-present pages (entry = 0000h)
8-15 reserved (zero)
Interrupt Helper v1.0 d-4B8107
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 #2476) 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 #2473)
SeeAlso: AX=8108h
Interrupt Helper v1.0 d-4B8108
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 #2476,#2477) 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 #2473)
BUG: under Windows 3.0 Enhanced mode, you must specify that data be copied
for this function to work correctly
SeeAlso: AX=8107h
Interrupt Helper v1.0 d-4B8109DX0000
INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
AX = 8109h
DX = 0000h
ES:DI -> DMA descriptor structure (see #2476,#2477) 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 #2473)
BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count
SeeAlso: AX=810Ah
Interrupt Helper v1.0 d-4B810ADX0000
INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
AX = 810Ah
DX = 0000h
ES:DI -> DMA descriptor structure (see #2476,#2478) 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 #2473)
BUG: Windows 3.0 Enhanced mode does not correctly interpret the copy count
SeeAlso: AX=8109h
Interrupt Helper v1.0 d-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 #2473)
SeeAlso: AX=810Ch
Interrupt Helper v1.0 d-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 #2473)
SeeAlso: AX=810Bh
Interrupt Helper v1.0 Q-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