🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.os.msdos.programmer
Article #5531

Re: memory

#5531
From: DJ Delorie
Date: Fri, 29 Mar 1991 19:42
66 lines
3123 bytes
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.
Technical Details
Message-ID: <1364@bragi.ctron.com>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!bragi!dj
References: <1991Mar29.163548.768@maverick.ksu.ksu.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!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