See also Operating Systems for more information.

DOS memory drivers
When working with DOS memory drivers, it is useful to know the different types of memory:
Conventional Memory
The first 640KB of addressable memory space
Upper memory
The last 384KB of the first MB. (This exists after the Conventional memory and before the high memory.)
High memory
The first 65,520 bytes of extended memory.
eXtended memory
All memory past the first megabyte
Command.Com, LoadHigh, DeviceHigh

Command.Com would use Conventional memory. The LoadHigh command, which could also be accessed with the LH command, was internal to the command interpretor. 4DOS's LoadHigh command's entry in 4HELP says "LOADHIGH requires version 5.0 or later of MS-DOS, PC DOS, or DR-DOS; Windows 95/98/ME; or an OS/2 DOS session." The DEVICEHIGH command that is usable in a Config.Sys file can load a driver into upper memory, if available. MS-DOS's help system says "If upper memory is not available, the DEVICEHIGH command functions just like the DEVICE command." In Windows 95 and later, the DEVICE commands actually act like the DEVICEHIGH command (trying UMBs first, and acting like the older DEVICE commands that load things into conventional memory if needed) unless the Config.Sys's DOS= command specifies NOAUTO (as documented in the Windows 95 Config.Txt file (Q135481) and the Windows 98 Config.Txt file (Q232557)).

Note that DEVICEHIGH and LOADHIGH relate to UMBs in the UMA, and have nothing to do with the High Memory area (HMA).

XMS (eXtended Memory)
EMM386 provides two functions: Converting XMS into EMS, and providing UMBs.
[#emm286]: EMM286
  • DRDOS may have had this.
  • FreeDOS may have included this.
  • There was some freeware by John Examilotis/Jjex software (for non-commercial and non-profit use, with limitations on redistribution).

    The latest version, EMM286.ZIP, is available at EMM286 Zip file, which the executable file and text file match byte for byte to some archives obtained from other locations. (However, these other archives had modified zip files with advertisements, and MPoli's even had another executable which is likely some sort of site ad: One came from the Channel1 BBS, another was copy of EMM286 (and some other executable) from

    There are also older versions available from the location with what seemed to be the cleanest archive of the new version. They were each made within a month of the next-newer version. EMM286.ZIP has files dated March 31 and the text file refers to Release 1 Version 2. EMMLIM11.ZIP has files dated earlier. EMMLIM10.ZIP has files dated earlier.

On August 1, 2007, near the top of the Club DR-DOS web page, there was "FloX's hint" that recommended JEMMEX. Jemm (Jemm386, JemmEx) and HimemX. (HimemX is for XMS, Jemm is the EMS software.)
Upper Memory Block, Upper Memory Area, High Memory These allow the DeviceHigh and LoadHigh commands to work.
Other modes
DPMI, etc.
Other notes
These are likely to be moved into abot sectinos: EMM286 exists. It uses more memory than other alternatives, and so it might not be the best choice in any circumstances other than using it on a 286. says "EMS emulator without V86 mode but it doesn't support DMA transfers". A key reason not to use it on 386 compatible systems is this can use more memory than alternatives (at least when allocating lots of memory for lots of EMS). QHIMEM: referred to it as QXHIMEM (linking to the QHIMEM site).
Windows (compressed memory)
Listed on some magazine's list as one of the worst products of all time? Now freeware?