Re: A simple, yet frustrating "What am I missing?" question
From: cquirke (MVP Win9x) (cquirkenews_at_nospam.mvps.org)
Date: 02/15/04
- Next message: Jim Macklin: "Re: Upgrade Time"
- Previous message: CWatters: "Re: eBay Account Update ?"
- In reply to: Wesley Vogel: "Re: A simple, yet frustrating "What am I missing?" question"
- Next in thread: Alex Nichol: "Re: A simple, yet frustrating "What am I missing?" question"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 15 Feb 2004 16:16:40 +0200
On Sat, 14 Feb 2004 18:22:09 GMT, "Wesley Vogel"
Let me start my correcting another reply that claimed extended memory
would have to be accessed via EMS. Not so.
DOS conventionally uses only the lowest 640k of RAM, because DOS
requires memory to be contiguous and IBM put the system ROMs at
address 640k. That didn't seem to matter at a time when the 8086
processor could only address 1M RAM, but it became a pain later.
During the 8086 era, users needed more memory to handle large
spreadsheets in Lotus 1-2-3. So Lotus, Intel and Microsoft developed
the Expanded Memory Services (EMS) standard, which swapped additional
RAM through a 64k "window" between 640k and 1M. This was a hardware
thing; EMS cards with the extra RAM were added via ISA-8 slots.
The 286 processor added the ability to addresss RAM > 1M using the new
processor's "protected" mode. DOS added HiMem.sys to provide access
to this via eXtended Memory Services (XMS) standard. HiMem.sys also
used a trick to access the first 64k RAM over 1M as High memory
directly, without having to resort to XMS.
The 386 processor added the key functionalities we rely on today - the
ability to map system RAM to any logical address, and to page contents
between RAM and "virtual memory" on disk. DOS added EMM386.exe to use
this address remapping to emulate hardware EMS and to allow puddles of
RAM between 640k and 1M to be used as Upper Memory Blocks (UMB).
In DOS, you use:
- HiMem.sys to access XMS
- DOS=High to get HiMem.sys to use High memory for DOS
- Emm386.exe to access EMS and UMB
- DOS=UMB to get Emm386.exe to use UMB for DOS
In Windows 9x and presumably NT/Win2000/XP, the OS provides DOS
applications with native XMS, EMS and DPMS (DOS Protected Mode
Services) access - but not UMB access. But you may need to fiddle
with .pif Properties (Memory tab) to manage these.
This is where Wesley's excellent advice kicks in...
<excellent advice snipped>
One thing: If you copy over a DOS app that comes with its own .pif,
the chances are high this may have insane settings - especially with
regard to the Memory tab. This is almost inevitable when the .pif
dates from Win3.yuk days (as is typical for C:\WP51 Word Perfect).
So go Properties, Memory and look for settings set to None; generally
Auto will work fine. One exception; apps that generate a lot of
environment variables ("Set" commands etc.) may fail if Environment is
left to Auto - I suspect because the environment is automatically
sized in terms of current contents. I find 2048 works well there.
>------------ ----- ---- --- -- - - - -
The most accurate diagnostic instrument
in medicine is the Retrospectoscope
>------------ ----- ---- --- -- - - - -
- Next message: Jim Macklin: "Re: Upgrade Time"
- Previous message: CWatters: "Re: eBay Account Update ?"
- In reply to: Wesley Vogel: "Re: A simple, yet frustrating "What am I missing?" question"
- Next in thread: Alex Nichol: "Re: A simple, yet frustrating "What am I missing?" question"
- Messages sorted by: [ date ] [ thread ]