Int 67H [EMS 4.0] Function 56H (86) Subfunctions 00H and 01H Map pages and call

Alters the expanded memory mapping context and performs a far call to the specified address. When the destination routine executes a far return, the EMM again alters the page-mapping context as instructed and then returns control to the original caller.

Call with:

AH = 56H

AL = subfunction

0 = map using physical page numbers

1 = map using physical page segments

DX = EMM handle

DS:SI = segment:offset of buffer (see Notes)

Returns:

If function successful

AH = 00H

If function unsuccessful

AH = error code

Notes:

The format of the buffer containing map and call information is:

Offset Length Description 00H 4 far pointer to call target 04H 1 number of pages to map before call 05H 4 far pointer to list of pages to map before call (see below) 09H 1 number of pages to map before return 0AH 4 far pointer to list of pages to map before return (see below) 0EH 8 reserved (0)

Both map lists have the same format and consist of a series of double-word entries, one per page. The first word of each entry contains the logical page number, and the second word contains the physical page number or segment (depending on the value in register AL) to which it should be mapped.

A request to map zero pages and call is not an error; the effect is a simple far call.

This function uses extra stack space to save information about the mapping context; the amount of stack space required can be determined by calling Int 67H Function 56H Subfunction 02H.