Disk Operating System (DOS)

Using HIMEM.SYS and EMM386.EXE DOS memory management software to conserve conventional memory by loading COMMAND.COM and device drivers into extended memory.

Using HIMEM.SYS and EMM386.EXE

Following is an example of a CONFIG.SYS file using HIMEM.SYS and EMM386.EXE memory management.

The extended memory manager, HIMEM.SYS is loaded first, followed by EMM386.EXE. EMM386.EXE has several purposes:

  • Emulate expanded sleep using extended memory
  • Make Upper Memory Blocks available for loading device drives
  • Load a portion of DOS into the High Memory Area (HMA)

In this case the NOEMS switch has been used to indicate that no extended memory should be used to emulate expanded memory.

The command dos=high,umb will load a portion of dos into the high memory system and make the Upper Memory Blocks available.

The command deviceHigh=c:\windows\command\ansi.sys loads the ANSI.SYS device driver into the UMB area of memory.

    device=c:\windows\himem.sys
    device=c:\windows\emm386.exe noems
    dos=high,umb
    deviceHigh=c:\windows\command\ansi.sys
    files=200
    buffers=20

The result of these commands can be seen by issuing the following command from the command line:

  mem /c | more

This will give the following screen output. In this case note the areas of memory being used by System and ANSI.SYS.

Modules using memory below 1 MB:

  Name           Total           Conventional       Upper Memory
  --------  ----------------   ----------------   ----------------
  SYSTEM      40,336   (39K)     10,976   (11K)     29,360   (29K)
  HIMEM        1,104    (1K)      1,104    (1K)          0    (0K)
  EMM386       4,320    (4K)      4,320    (4K)          0    (0K)
  DBLBUFF      2,976    (3K)      2,976    (3K)          0    (0K)
  WIN          4,016    (4K)      4,016    (4K)          0    (0K)
  vmm32       52,672   (51K)        640    (1K)     52,032   (51K)
  DOSKEY       4,688    (5K)      4,688    (5K)          0    (0K)
  COMMAND      7,888    (8K)      7,888    (8K)          0    (0K)
  ANSI         4,320    (4K)          0    (0K)      4,320    (4K)
  IFSHLP       2,864    (3K)          0    (0K)      2,864    (3K)
  Free       618,192  (604K)    618,192  (604K)          0    (0K)

Memory Summary:

  Type of Memory       Total         Used          Free
  ----------------  -----------   -----------   -----------
  Conventional          655,360        37,168       618,192
  Upper                  88,576        88,576             0
  Reserved              393,216       393,216             0
  Extended (XMS)     65,971,712             ?   266,424,320
  ----------------  -----------   -----------   -----------
  Total memory       67,108,864             ?   267,042,512

  Total under 1 MB      743,936       125,744       618,192

  Largest executable program size         618,176   (604K)
  Largest free upper memory block               0     (0K)
  MS-DOS is resident in the high memory area.



Bruce Miller, 2004, 2014