[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
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

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

See Also: 31
This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson