Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!bragi!dj From: dj@bragi.ctron.com (DJ Delorie) Newsgroups: comp.os.msdos.programmer Subject: Re: memory Message-ID: <1364@bragi.ctron.com> Date: 29 Mar 91 19:42:42 GMT References: <1991Mar29.163548.768@maverick.ksu.ksu.edu> Organization: None whatsoever Lines: 66 In article <1991Mar29.163548.768@maverick.ksu.ksu.edu> razor@matt.ksu.ksu.edu writes: >I have a question about memory and extended memories on a pc. Here is my >question: > > Up to 640K memory, this is called BASE memory? > > From 640K to 1024K, this is called XMS? What does XMS stand for? > > From 1024K on up is called EMS? What does EMS stand for? Here's a short tutorial on memory types (I had to give this speech a lot in a previous job): 0K - 640K is called "conventional" memory. It can be accessed by any program. This is the default arena for MSDOS programs. 640K - 1024K is called "high" memory, otherwise known as XT/AT channel, device memory, and a variety of other meaningless names. This memory can be accessed by any program, and there are utilities (QEMM, 386MAX for 386's, plus a plethora of PD's) that can run programs up there when there's memory present. 1024K - 1088K is usually also called "high" memory, but often abbreviated as the HMA for High Memory Area. This is accessible by any program, but only on 286's and 386's, and only after you shut off gate-A20. Himem.sys normally manages this memory. 1024K-16M (or 4G on 386's) is called "extended" memory. You must enter protected mode to access this memory. XMS stands for Extended Memory Specification. It is a method by which extended memory can be properly shared and re-used by many programs. Himem.sys, for example, provides an XMS interface for extended memory. EMS stands for the Expanded Memory Specification. "Expanded" memory is memory whose interface meets the EMS specification. This type of memory is selectively paged (from a pool of up to 16M) into the 640K-1024K range, or more recently into anywhere from 0K-1024K. Any program can access this memory. EMS was used by PC & XT class machines to break the 640K memory restriction. LIM stands for Lotus-Microsoft-Intel, the controllers of EMS (although we all know that public acceptance controls everything). LIM 3.x allows up to 64K of EMS at a time to be paged in. LIM 4.x allows any amount to be paged in. Some programs & hardware enhancements allow a computer to use some or all of its extended memory as expanded memory by controlling the mapping of physical memory into the program's address space. Some 286/386 terms: "Real" memory is usually 0-1M. This is what can be accessed from "real" mode. "Protected" memory is 1M-16M (4G on 386's), but really refers to 0-16M(4G), as you can access everything from protected memory. 386's only: "Physical" memory is what hardware sees as RAM. "Linear" memory is what the application sees after the memory references pass through the paging unit. Also known as Virtual memory.