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
                                    -♦-