Computing.Net > Forums > Disk Operating System > Clear explanation needed.

Computer Problems? Computing.Net has over 1,000,000 posts about all things technology related! Over 90% answered within 24 hours! Click here to start participating now! Also, be sure to check out the New User Guide.

Clear explanation needed.

Reply to Message Icon

Name: John
Date: April 23, 2001 at 18:00:45 Pacific
Comment:

Can someone explain to me in plain modern-day English what exactly the difference is between expanded and extended memory??????????????????



Sponsored Link
Ads by Google

Response Number 1
Name: McJimmy Dong
Date: April 23, 2001 at 18:48:45 Pacific
Reply:

Yeah me too.


0

Response Number 2
Name: Chris Hodapp
Date: April 23, 2001 at 20:18:57 Pacific
Reply:

Well, sure, I have way too much time on my hands. That's why I wrote all this bullsh!t down in Social Studies class while my teacher rambled on and on and on and on about junk.
Here goes...

Extended memory typically refers to _physical memory_ located above 1 meg in the system memory (at the top of Reserved memory, not Upper or High memory for your information (Reserved memory is the physical division, while upper\high memory is the logical memory space there where other memory has been mapped)). This is accessed through hardware functions 15h and 81h, not hardware gate A20 address line. When the processor is in Real mode, this cannot be addressed, only accessed. With the exception of Flat Real mode, in which the segment size is changed to 4 gigs and it all can be addressed that way. But, in protected mode, 4 gigs of physical memory can be addressed.
Typically, Extended memory is accessed through A20 and that is called XMS (Lotus\Intel\Microsoft\AST eXtended Memory Specifications), as this is a better routine than 13h, where there aren't exactly any rules about usage. XMS then can be used for whatever - being mapped to the reserved memory space (between 640K and 1M) as upper memory when the CPU's in Virtual 8086 Address Mode (aka V86), as an emulation of Expanded (EMS) memory (don't worry I'll get to all that later), and for other crap like disk caches and print spoolers and RAM disks.
Got that all? Extended is the physical memory, at absolute locations, while XMS is the logical heap of memory that is really Extended memory accessed through A20. I don't want to go into anything about the HMA or Conventional memory...but if you make me mad, I will.
Expanded memory (Expanded & EMS are about the same, luckily):
EMS was developed long before XMS. It originally came only on hardware memory boards and was for the 8086 and 8088 processors, which could access only 1 meg of memory normally. These, in simple, copied physical pages of memory which couldn't be accessed by the processor, but which COULD be accessed by the memory board, to an area which the processor could access, which had to be within the 1 meg address space. Now, EMS was divided into 16K pages, and there was a 64K area in the first meg of physical system memory, which was called the "page frame". It had 4 pages, and programs could request that a page be mapped in and out of those 4 physical pages, write to them, etc. and then everything would stay on them when mapped in\out. So this enabled the 8086\8088 to access up to 32 megs of memory. Then processors drew on, with the 286, which could access 16 megs of memory, so EMS could be simulated with extended memory. However, not all functions were supported, and it was slow. Then came 386\above. These could access 4 gigs and had mapping ability, which made them almost as fast as a true EMS board. But more functions could be emulated and you could use a full 32 megs of emulated EMS. So true EMS boards don't exist much anymore, too expensive, etc.
Oh, here are all the Lotus\Intel\Microsoft EMS 4.0 functions:
1A get EMM status
1B get EMM status w\ interrupt vector
2A get page frame seg
3A get free page count
3B get used page count
3C get total page count
4A allocate pages to handle
5A map\unmap page to page frame
6A free a handle
7A get LIM EMS version number
8A save memory mapping context w\ handle
9A restore memory mapping context w\o handle
10 & 11 existed only in earlier versions
12A get number of open handles
13A get pages used by handle
14A get pages used by all handles
15A get mapping context
15B set mapping context
15C get current map
15D get size for 15A\B
16A get partial mapping context
16B set partial mapping context
16C get partial mapping context size
17A map\unmap several pages
18A resize handle
19A get handle attrib
19B set handle attrib
19C see if attribs supported by hardware
20A get handle name
20B set handle name
21A get arrraw of all numbers\handles
21B get # of handle name given
21C get number of handles supported by system
22A alter map jump
23A alter map call
23B get number of bytes pushed onto stack when 23A is called
24A copy memory region
24B exchange mem region
25A copy entries from mappable regsion
25B get array of mappable pages
25C get number of mapped pages in mem
26A get free raw page count
...and so on to 30C... all this junk about alternate register sets and DMA register sets, blah blah.
Good night people.......


0

Response Number 3
Name: Tony
Date: April 23, 2001 at 20:32:10 Pacific
Reply:

woh, tough to argue with all that, =)


0

Response Number 4
Name: Moiety
Date: April 23, 2001 at 21:43:39 Pacific
Reply:

Extended/Expanded Memory for dummies:

More recent DOS programs tend to utilize the more dynamic Extended memory. Older DOS programs, like our beloved fits-on-a-floppy Lotus 1-2-3, requires the older Expanded memory blocks.

Emm386.exe allocates memory for either/both types per switches in the config.sys statement.


0

Response Number 5
Name: fred6008
Date: April 23, 2001 at 21:58:54 Pacific
Reply:

Extended memory (XMT) is the memory above 1 megabyte. Windows uses this and many commands in DOS 6.2 and up access it.
Expanded memory fits through a 64 kbyte page in the first 1 megabyte of memory. It came into being first. In early computers through 286 there was no memory above 1 megabyte, but you could get memory cards that fit in an ISA slot. This card was accessed through that 64K "page". Some programs need expanded memory but they are very old. Some other programs can use it if available.


0

Related Posts

See More



Response Number 6
Name: Preston
Date: April 24, 2001 at 07:12:54 Pacific
Reply:

Fred 6008 did a great job of describing this. I'll add a little bit to his post:

1. As mentioned by Fred, expanded memory is the oldest method for using memory above 640k and emm386.exe does this.

2. himem.sys is the XMS (extended) memory manager used by today's newer software. It controls memory above 1mb. However, himem.sys can simulate expanded memory if you have old software that needs it. Using the "noems" command when loading himem.sys will eliminate that.

If you don't use old software, you do not need expanded memory. All modern computers must have extended (XMS) memory.


0

Response Number 7
Name: Tony
Date: April 24, 2001 at 11:07:44 Pacific
Reply:

actually the noems swtich is for emm386.exe, thats the one that simulates ems.
himem.sys only works with xms


0

Response Number 8
Name: Chris Hodapp
Date: April 24, 2001 at 14:58:41 Pacific
Reply:

To Moiety:
Technically, you're not correct, most programs use XMS, not Extended, they're different. Standard Extended was old and there weren't any standards for accessing it. Programs did whatever they wanted. XMS solved these problems.
And EMM386 can't do anything at all without an XMS driver (like HIMEM maybe). It just puts the CPU in V86 mode (a subset of protected mode) and maps XMS to make upper memory or emulates EMS.
To Fred6008:
Technically, you're not correct, the 286 could access up to 16 megs of memory.
Technically, you're correct, Windows does use Extended memory, but in protected mode,
there isn't exactly any Conventional, Upper, Reserved, Extended, XMS, or EMS memory.
But remember, Extended and XMS aren't the same......
To Preston & Tony:
Technically, you're not correct, it doesn't SIMULATE EMS, it EMULATES it.
Simulated means that it's entirely by software & the operating system. Only needed on 286 and only available on 286\above.
Emulated means that both hardware and software do it. With this, it uses the V86 paging functions which were the same as what the hardware memory boards did on the 8086.
Extended is the _physical_ memory above 1 meg, accessed through Int 13h and 81h.
XMS is the specification for accessing extended memory accessed through A20, rather than 13h & 81h. Not Extended. Got that?

Pleased to be of service and correct you all....


0

Sponsored Link
Ads by Google
Reply to Message Icon






Post Locked

This post is quite old and has been locked from receiving new replies. Please create a new posting instead.


Go to Disk Operating System Forum Home


Sponsored links

Ads by Google


Results for: Clear explanation needed.

DOS cmd UNDELETE www.computing.net/answers/dos/dos-cmd-undelete/14045.html

installing old dos game www.computing.net/answers/dos/installing-old-dos-game/13516.html

Need to kill Windows!!! www.computing.net/answers/dos/need-to-kill-windows/12264.html