INT 2fH 4a02H: Suballocate HMA Memory
Compatibility: ◄Undoc► 5.0+
Expects: AX 4a02H ◄Undocumented►
BX Requested size, in bytes
──────────────────────────────────────────────────────────────────
Returns: ES:DI Address of free space in the HMA▲
FFFF:FFFF (error) DOS is not high or insufficient memory
──────────────────────────────────────────────────────────────────
Info: Applications, device drivers, and TSRs may use this function as
to obtain a smallish chunk of memory outside of conventional
memory without using any UMB▲ space.
On return, ES:DI is the address of the allocation, if the request
succeeded. If DOS is not loaded high (so this fn is not
supported) of if BX is larger than the available HMA space, then
ES:DI returns with FFFF:FFFF.
Before attempting this call, use INT 2fH 4a01H to check how much
HMA space is available.
Notes: ■ This service is undocumented, but has been available since
DOS 5.0.
■ Before accessing the HMA addreses, be sure that A20 is enabled.
See XMS 07H. It is normally enabled all of the time when DOS
is high. When using an HMA suballocation in a TSR or device
driver, you should be sure to restore the stat of the A20
before terminating or otherwise releasing control.
See Also: INT 2fH: Multiplex Interrupt
Extended Memory Specification (XMS)
DOS Functions
-♦-