The Beginning
From here on in, a byte of storage will be the same as a character of storage.
These bytes are composed of eight on/off bits, and have 256 different
combinations of characters - plenty enough for the English language. A
MB is 1,048,576 bytes; a KB is 1,024 bytes.
Odd, but true: PC computers have only one megabyte of standard RAM
memory storage. If the computer is said to have 64M of RAM, then it has 1 MB
of standard RAM. 128M of memory gives 1 MB of standard RAM. It is the PC
way of doing things. One megabyte of storage is really admired by the
software/hardware people.
This is because of the two character address deal. In the old IBM mainframe
era, the addresses of main storage were 3 btyes of storage. This was
changed to 2 bytes when PC's were invented. Perhaps the reasoning was that
PC's were 2/3rds the size of mainframes. Perhaps there wasn't any reasoning.
But the 2 byte address meant that 256 X 256 = 65,536 bytes of storage could be
addressed. Now, to be processed, a byte of storage has to be accessed; and
to be accessed, it has to have an address. The address is for the software
to be able grab onto the byte.
The two byte address needed to be expanded upon. Someone, somehow,
somewhen, figured up up a 2.5 byte address. This became the standard and
is able to address: 256 X 256 X 16 = 1,048,576 bytes of storage. The hardware
people got into the act and added their 2 cents in. This brought the total
memory that could be addressed to be: 1,114,096 bytes. But this extra, from
the hardware people, is not considered to be standard memory. It was added
on, through some sort of special address registers, that are not really standard
operating procedure. This extra 64K is the high memory area.
The high memory area is referred to as HMA, or even simply as high memory.
This area is the first of the extended memory.
From the Start
The first megabyte of the PC memory is the standard memory. It has two
sections. The first is the first 640K = 655,360 bytes. The second is the
remaining 384K = 393,216 bytes. The 640K section is the low memory; the
second section of the megabyte is the upper memory.
Low memory is sometimes called DOS memory, but is usually known as
conventional memory. Upper memory is often referred to as being reserved
memory. These areas are where DOS programs run and from where expanded
memory works.
The areas are shared with other entities. These can be driver programs, TSR
(terminate & stay resident) programs, buffers, and other control blocks. In upper
memory, UMB's (Upper Memory Blocks) contain the driver programs and TSR's.
Then there is the mysterious, "expanded memory page frame". It is in upper
memory, uses up 64 K of storage, is divided up into 4, 16 K 'pages'.
The DOS application programs run in lower memory. The system programs
run in both, wherever they can find room, or are assigned.
Expanded versus Extended
Here is where PC memory becomes tough. 'Extended' is not simply another
word for 'Expanded'. The two terms represent two different techniques of
dealing with storage above 1 MB. Expanded memory is for DOS programs that
use it, and extended memory is for Windows programs; in a nutshell.
Expanded:
Expanded memory generally is limited to 32 MB, is governed by a program
who conforms to EMS - Expanded Memory Specifications. The program is
usually EMM386, and sets up what is knows as a Page Frame, in the upper
memory area. It swaps portions of memory, past 1 MB, to and from the page
frame, where the DOS program can access its addesses. DOS programs are the
only ones who use expanded memory and not all of them do. These are mostly
older ones who want to run in MS-DOS only. EMS is not realy for Windows
programs. Expanded memory is really only a DOS thing.
Extended:
Extended memory is by definition, all memory above and beyond the 1 MB of
conventional memory. It is not expanded memory for DOS, it is memory for
Windows and Windows entities. A different memory control program handles
extended memory. HighMem is the program that controls extended memory.
It also cares for High Memory, and keeps the Windows sub-tasking system going.
This means that HighMem controls the multiprogram deal of Windows. DOS
really only runs one program at a time, but Windows can have several programs
running, simultaneously.
High Memory
The first 64 KB of extended memory is the high memory, is sometimes called
the HMA, or the high memory area. This is the area that was the gift from the
hardware people, and is as addressable as is the area below 1 MB, the standard
memory. Conventional memory is 10 times as large; upper memory is 6 times
the size of high memory. So is high memory very important? Not very is the
answer. You can put some of MS-DOS in it, to save some space in the 1 MB
standard memory area. HighMem.sys controls which programs use high
memory, and which ones don't.
To code the config.sys file, on the hard disk, to conserve space for DOS, and
to not crash the computer, this code is suggested: memCmnds.txt .
tututututututututututututu
|