|
|||||||
Forms of memoryThis section is rather technical, but helps you to understand what is going on before we get to the start files.
Conventional memoryThe area in memory from 0-640 KB is called conventional memory or lower memory. This is where most of the work is done. DOS is the memory manager for conventional memory (it controls it). Upper memory area |
|||||||
Expanded and extended memoryIt is important to distinguish between the physical RAM or memory and the abstract names (upper, extended, etc.) for the way physical RAM is used. If, for instance, you have 4 MB of physical RAM, you can use this in many different ways. This section deals with this. To specify the way in which it is used, you speak of configuring memory. In the "old days," the use of memory above 1 MB started primarily with the Lotus spreadsheet Lotus 1-2-3, with users soon hit the ceiling of the 640 KB, which was the limit for DOS programs. Lotus, Intel and Microsoft developed rules for how their version of expanded memory should be used. This standard was called Expanded Memory Specification (EMS) or LIM EMS. At this time, extra memory cards were manufactured to put in the PC. Primarily older programs are able to use this form of memory, though even many newer games need EMS memory (see Multiple Boots, page *) A memory manager for expanded memory is called an Expanded Memory Manager (EMM). DOS has one of these called EMM386.EXE. Later, another standard for using memory over 1 MB was introduced: eXtended Memory Specifications (XMS). It is most unfortunate that the names are almost identical. This is more relevant to most users today as newer programs are primarily written to use extended memory, which also requires a memory manager, a so-called XMM. DOS has one, HIMEM.SYS. These terms are the names given to the use of physical RAM. They are standardized rules. So RAM above 1 MB can be used as a combination of different forms of memory ? but not until the relevant memory manager is active and able to control how much to use and for what. Expanded memory is also called EMS memory, and when it is available, it is configured according to published standards. High memory area (HMA)The High Memory Area (HMA) is defined as the first 64 KB of extended memory, from 1024-1088 KB. Using a little trick, this area has become available as if it belonged to the first MB, so DOS can use it. Most people use this area to place parts of DOS using DOS=HIGH. Naturally, the memory manager for this area is HIMEM.SYS, as it handles all memory above 1 MB. So HIMEM.SYS controls both high memory (area) and extended memory. MEM/A is the only DOS 6.x command that tells you how this area is being used. The switch is undocumented. (A) HMA is apparently "a part" of extended memory ? yes and no: HMA is available to the processor in real mode while extended memory is only available to the processor in protected mode. How upper and extended memory work together (A)Upper Memory borrows the actual RAM from extended memory. In the jargon, extended memory is mapped to upper memory?s address area, i.e. the CPU is led to believe that certain addresses are in a certain place, though physically they are somewhere else. For example, if you want access to, say, 92 KB of upper memory, it is borrowed from extended memory, which therefore is 92 KB smaller. Try writing REM at the beginning of the line in CONFIG.SYS containing EMM386 and see the result of MEM. Delete the REM again, boot up and check MEM. The sum of upper memory + extended memory is the same! Devices All these forms of memory, except conventional memory, are "a device" in the same way as a monitor, keyboard, printer, etc., and so these forms of memory require a device driver in the same way that other devices do. There are both purely physical and what I call logical, or abstract, devices. The monitor and the keyboard are in themselves not devices but the logical term con or console is a device that refers to the two physical objects, an input and an output object. The term console comes from the days of the original mainframe computers. These had no monitor or separate keyboards but received input and wrote out their results through a kind of telex machine. This machine, called the console, was used for all input to and output from the computer. |
last update:
21. Jul. 2010