When referring to memory, most programmers use hexadecimal equivalents. Figure 1 shows the end of conventional memory at the address A000. The programs that generally must reside in conventional memory and cannot be moved to another location are listed in Figure 2 . Loading as many programs as possible into upper memory frees up the amount of conventional memory that many DOS applications consider as a critical resource. For example, when a system that has 8 MB of memory, it usually means that, with DOS, the system has roughly 1 MB of memory in the conventional and upper memory areas, and 7 MB of extended memory.
Extended memory has no effect on memory optimization.
EMM386.EXE is the driver that allows DOS users to access the upper memory area. Most programs today can use XMS to access memory above the first 1 MB, and using XMS is the preferred method of access for a user who wants to gain the most possible conventional memory. When you use the RAM option with EMM386.EXE, it turns on EMS, and automatically uses 64 KB of upper memory. UMB command attempts to move a lot of the system data into a UMB, thus saving a large amount of conventional memory. Several things already occupy the upper memory area, as listed in Figure 3 .