INT 67H 55xxH: Alter Page Map and JMP
Compatibility: EMS 4.0+
Expects: AH 55H
AL subfn: 00H=Use page numbers in prMapInfo->wFrameLoc
01H=Use segment addresses in prMapInfo->wFrameLoc
DS:SI address of an EmsMapAndJmpRec (see below)
DX EMM Handle (as obtained via INT 67H 4300H)
──────────────────────────────────────────────────────────────────
Returns: (none)
──────────────────────────────────────────────────────────────────
Info: This lets you swap some pages of executable code into memory,
then execute that code.
DS:SI points to a structure that identifies which pages to map and
where to jump. If is formatted as:
EmsMapAndJmpRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 4 pCodeAddr FAR address to JMP
+4 1 bPgCnt number of pages to map
+5 4 prMapInfo FAR addr of an EmsMapInfoRec
9 size of this structure
Depending upon AL, the wFrameLoc fields of the EmsMapInfoRec will
contain either page numbers (usually 0-3) or segment address (for
instance, d000H, d400H, etc).
Notes: See INT 67H 50xxH (map multiple pages) for related info.
This fn does not provide a mechanism to return control to the
caller. Use INT 67H 56xxH (map and call) to CALL rather than
JMP.
See Also: INT 67H: EMM Services
Extended Memory Specification (XMS)
Interrupts and BIOS Services
-♦-