Allocate Extended Memory Block (Function 09h)
ARGS: AH = 09h
DX = Amount of extended memory being requested in K-bytes
RETS: AX = 0001h if the block is allocated, 0000h otherwise
DX = 16-bit handle to the allocated block
ERRS: BL = 80h if the function is not implemented
BL = 81h if a VDISK device is detected
BL = A0h if all available extended memory is allocated
BL = A1h if all available extended memory handles are in use
This function attempts to allocate a block of the given size out of the
pool of free extended memory. If a block is available, it is reserved
for the caller and a 16-bit handle to that block is returned. The
handle should be used in all subsequent extended memory calls. If no
memory was allocated, the returned handle is null.
NOTE: Extended memory handles are scarce resources. Programs should try
to allocate as few as possible at any one time. When all of a driver's
handles are in use, any free extended memory is unavailable.