Int 67H [EMS 3.0] Function 43H (67) Allocate handle and pages

Obtains an EMM handle and allocates logical pages of expanded memory to be controlled by that handle.

Call with:

AH = 43H

BX = number of pages to allocate (must be nonzero)

Returns:

If function successful

AH = 00H

DX = EMM handle

If function unsuccessful

AH = error code

Notes:

This is the equivalent of a file open function for the expanded memory manager. The handle that is returned is analogous to a file handle and owns a certain number of expanded memory pages. The handle must be used with every subsequent request to map memory and must be released by a close operation before the application terminates.

This function may fail because there are no handles left to allocate or because there is an insufficient number of expanded memory pages to satisfy the request. In the latter case, Int 67H Function 42H can be used to determine the actual number of pages available.

[EMS 4.0] Int 67H Function 51H can be called to change the number of pages allocated to an EMM handle.

[EMS 4.0] The pages allocated by this function are always 16 KB for compatibility with earlier versions of EMS. See also Int 67H Function 5AH Subfunctions 00H and 01H.

[EMS 4.0] Handle 0000H is always available for use by the operating system, and a prior call to this function is not required. The operating system must call Int 67H Function 51H to assign the desired number of pages to its reserved handle.