XMS 0bH: Move Extended Memory Block
Compatibility: XMS 2.0+
Expects: AH 0bH
DS:SI address of a filled-in XmsMoveInfoRec (see below)
──────────────────────────────────────────────────────────────────
Returns: AX status: 0000H = successful
0001H = error and BL=XMS error code (if BL >= 80H)
──────────────────────────────────────────────────────────────────
Info: This fn copies a block of data from one location to another. Use
it to transfer data into and out of extended memory. It can also
copy data from place to place in conventional memory or between
extended memory blocks.
DS:SI points to a structure that describes the data to be moved. It is
formatted as:
XmsMoveInfoRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 4 lRgnLength DWORD size, in bytes to move
(must be an even number)
+4 2 wSrcHandle src XMB handle or 0=conventional mem
+6 4 lSrcOffset DWORD offset in src XMB block
or segment:offset in conventional mem
+0aH 2 wDestHandle dest XMB handle or 0=conventional mem
+0cH 4 lDestOffset DWORD offset in dest XMB block
or segment:offset in conventional mem
16 size of an XmsMoveInfoRec
When wSrcHandle or wDestHandle is 0000H, the source or
destination is in conventional memory. In that case, the
lSrcOffset (or lDestOffset) must be a 32-bit segment:offset in
conventional memory.
Notes: ■ If source and destination overlap, the source must be less than
the destination.
■ The lRgnLength must be even.
■ The move is faster when both source and destination begin on
WORD boundaries and faster still when aligned on DWORD
boundaries (on 386+ CPUs).
See Also: XMS Functions
Extended Memory Specification (XMS)
DOS Functions
-♦-