HOW TO FIND A STARTING ADDRESS Trying to calculate a start address for Extended memory can be a confusing ordeal. Having everything measured in Kilobytes (K) doesn't help either. This is written to answer the questions and aid in the selection of proper addresses when installing a memory board. In any discussion it's always best to know what you are talking about. The following definitions should be of use during this exercise. Conventional Memory This type of memory is also known as Base Memory and is a maximum of 640K. Base memory is used by programs and TSR (Terminate and Stay Resident) drivers. If there is not enough Base memory to load a program, DOS will announce an error of "Not enough memory to load program". Although programs do use other types of memory for their work, they can only load into Conventional Memory. Extended Memory Extended memory (also referred to as Expansion Memory) is physically addressed on the motherboard starting at 1024K (1 Megabyte) and occupying every consecutive address above it, until you run out of existing RAM. When you add memory expansion boards, this is where your start address resides. Expanded Memory Expanded memory is not formally recognized by DOS and system and requires the use of a manager program. This program creates a 64K page frame in which the memory is "paged" through. This page frame window is located in area of address space known as Reserved Memory. Much like a lazy-susan, you only have access to 64K of the memory at a time. When the computer has a need for information that is located in another portion of the memory, the manager pages to that section. This all happens unseen to the computer operator. ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ 16MB º º º º Extended Memory Memory address space provided by 286 ATs and up º º º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ 1024K º º Reserved Memory Address RAM cannot be addressed to the Reserved Area º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ 640K º º º Base Memory Programs can only use Base Memory º º ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄþ 0K Reserved Address Space This is the area located between the 640K and 1024K address marks. The IBM tandard defined this area to be used for system use. TSR drivers, expanded memory managers, video and network card I/O addresses can all be addressed in the 384K reserved area. Selecting Start Addresses When selecting a start address for your memory board, you must first determine the configuration of your existing memory. This is done by converting the RAM amount into its' literal size. 1MB = 1024K, 2MB = 2048K, etc. When you have RAM on your motherboard the computer has to map it to existing address spaces in order to make use of it. The address spaces were outlined in the first part of this article. Once you are aware of the amount of RAM that is installed on the motherboard, it becomes a matter of just matching numbers. In a system with 1MB of RAM installed, there would be 640K Base and 384K Extended. The Extended memory starts at the 1024K address mark and occupies 384K of space. This memory would stop at 1408K address mark. 1024K start + 384K RAM = 1408K. Mapping the memory in this way means totally skipping the Reserved Address Area used by the system. Memory has to occupy consecutive addresses, but it will NOT occupy the reserved area. What results is a 384K offset when mapping memory that exceeds 640K. The following chart may help to visualize this concept. MEMORY START SIZE ADDRESS 640K 1MB+0K= 1024K 1024K 1MB+384K= 1408K 2048K 2MB+384K= 2792K 3072K 3MB+384K= 3456K 4096K 4MB+384K= 4480K 5120K 5MB+384K= 5504K Exceptions to the rule are always present. In this case they take the form of shadow RAM, reserved memory, and proprietary addressing schemes. With shadow RAM and reserved memory (not to be confused with reserved address space), the system recalls a portion of the mapped RAM for it's own use. How and why make no difference right now, but the fact that the memory is no longer being used as RAM does. When this RAM is recalled for other uses you must make the adjustment to your starting address. For instance, some IBM micro-channel model computers reserve 128K for use with OS/2. If you have 2MB installed on the motherboard, your start address would be 2MB+384K or 2792K. If the computer is reserving 128K for other uses you must subtract 128K from the total start address. Example: IBM Model 80 w/2MB 2048K RAM BocaRam/2 Plus w/4MB 4096K RAM After the installation procedure is completed you should check the start address. If it is wrong, the RAM will overlap, and that will cause an error. This machine reserves 128K for OS/2 because the total usable memory states 1920K (that's 2048K - 128K). Be sure the start address is set to 2MB + 256K (or 2664K). The memory on the board will start where the motherboard left off.