EMM Functions

 TECH Help! describes all services supported by the Expanded Memory Manager
 version 4.0 and previous versions.  4.0 has been standard since 1987 so
 there should be few compatibility problems if you use the 4.0 functions.

 To access an EMM function, load AX with a function number, set other
 registers as described for the function, and invoke INT 67H.  Be sure to
 check the return status in AH.  A non-zero return value indicates an

  ▀▀▀▀▀  ─────────────────────────────────────────────── Standard Functions
  4000H  Get EMM status
  4100H  Get frame segment address
  4200H  Get memory total and available
  4300H  Open handle / allocate pages
  44xxH  Map memory (swap EMS page into/out of memory)
  4500H  Close handle / free pages
  4600H  Get EMM version number
         ─────────────────────────────────────────────── Advanced Functions
  4700H  Save mapping context
  4800H  Restore mapping context
  4b00H  Count handle's pages
  4c00H  Count active handles
  4d00H  Get page info (all handles)

  4exxH  Get/Set entire page map
   4e00H Get all mapping registers into an array at ES:DI
   4e01H Set all mapping registers from array at DS:SI
   4e02H Get and set mapping registers (SubFns 0 and 1 combined)
   4e03H Query size of buffer needed for SubFns 0-2

  4fxxH  Get/Set partial page map (EMS 4.0).
   4f00H Get mapping registers
   4f01H Restore mapping
   4f02H Query size of buffer needed for SubFn 0.

  50xxH  Map/Unmap multiple pages (EMS 4.0).

  5100H  Reallocate (resize) EMS Handle (EMS 4.0).

  52xxH  Get/Set Handle attribute (EMS 4.0).
   5200H Get handle attribute
   5201H Set Handle attribute
   5202H Query attribute capability

  53xxH  Get/Set Handle name (EMS 4.0).
   5300H Get handle name
   5301H Set handle name

  54xxH  Find Named Handle (EMS 4.0).
   5400H Get handle directory
   5401H Search for named handle
   5401H Count all open handles

  55xxH  Alter Page Map and Jump (EMS 4.0).

  56xxH  Alter Page Map and Call (EMS 4.0).

  57xxH  Move/Exchange Memory (EMS 4.0).
   5700H Move memory region
   5701H Exchange memory regions

  58xxH  Get Mappable Physical Address Array (EMS 4.0).
   5800H Get segment-to-page map array
   5801H Count segment-to-page array entries
         ─────────────────────────────────────── Operating System Functions
  59xxH  Get Hardware configuration (EMS 4.0)
   5900H Get hardware info
   5901H Get unallocated raw page count

  5axxH  Allocate Standard/Raw Pages (EMS 4.0)
   5a00H Allocate standard 16K byte logical pages
   5a01H Allocate raw pages

  5bxxH  Alternate Map Register Set (EMS 4.0)
   5b00H Get alternate map register set
   5b01H Set alternate map register set
   5b02H Get alternate map register set array size
   5b03H Allocate alternate map register set
   5b04H Deallocate alternate map register set
   5b05H Allocate DMA register set
   5b06H Enable DMA on alternate map register set
   5b07H Disable DMA on alternate map register set
   5b08H Deallocate DMA register set

  5c00H  Prepare for warm boot (EMS 4.0)

  5dxxH  Enable/Disable OS Function Set Functions (EMS 4.0)
   5d00H Enable all OS-only EMM functions
   5d01H Disable all OS-only EMM functions
   5d02H Return access key (enable next caller to get a key)

See Also: EMS
          Extended Memory Specification (XMS)
          DOS Interrupts
          Interrupts and BIOS Services