INT 31H 0100H: Allocate DOS Memory Block

                                                    Compatibility: DPMI 1.0+ 
 Expects: AX    0100H
          BX    size of allocation, in 16-byte paragraphs
          ──────────────────────────────────────────────────────────────────
 Returns: CF    NC (clear) if successful
                else AX = DPMI Error Code
                     BX = size of largest available block, in 16-byte pares
          AX    real-mode segment base address of allocated block
          DX    selector for allocated block
          ──────────────────────────────────────────────────────────────────
    Info: This allocates a block of memory from the DOS pool (i.e., memory
          below the 1MB mark).  It returns both a real-mode segment address
          and a protected-mode selector.

          This is typically used by programs which wish to share memory
          between a real-mode app and a protected mode app.

       BX if this is > 1000H (a request for more than 64K), and if the
          caller is in 16-bit mode, then the value returned in DX is
          actually a base selector (the first in a series).  Use
          INT 31H 0003H to see how much to add to this selector to access
          the data above 64K.

          Each selector will have a limit of 64K except the last one whose
          limit is set to cover the remaining area.

    Note: You must not modify the LDT descriptor entry(s) represented by
          the returned selector(s).  Use INT 31H 0101H to deallocate or use
          INT 31H 0102H to resize.

See Also: DPMI API
          INT 2fH: Multiplex Interrupt
          DOS Functions
                                    -♦-