A simple, yet frustrating "What am I missing?" question

A

Al

DOS game. Windows XP Home. PIF has "auto" for all memory
allocations. I run the PIF and get this message:
"You must have 2700K of expanded memory."
I have 1.5GB of memory, yet when I type "mem", I show 0 for
the allocated expanded memory. I have tried adjusting
within the PIF, yet no change ever occurs. What am I
missing? I have adjusted all up and down the available
memory choices, yet nothing makes a difference. I click on
"apply" when finished. I run the PIF again and still have
ZERO expanded memory allocated.

The Culprit: Masters of Magic (ancient DOS game). It needs
581KB of conventional memory and 2700KB of expanded. In my
"mem" command, I show 600KB available, so that is cool.
But I keep getting 0KB of expanded memory. It has so long
since I have worked in DOS, I cannot recall the commands
for allocating, or if they would eve still function now.

Any ideas on what I am doing wrong, or what am missinng
that is making any change to Expanded Memory not stick?
Thanks!

Al
 
G

Guest

Expanded Memor
Extended memory is that memory available above the 1 MB conventional memory limit on IBM compatible computers. This generally must be addressed by software using the Expanded Memory Specification (EMS). Hence, the need for an EMS driver or some sort of software to handle this task

Does the Memory Status screen report that your system has EMS memory installed?
The below procedure will only work if you have DOS installed on your system
If no, enable EMS in your CONFIG.SYS file by adding the following line: DEVICE=C:\DOS\EMM386.EXE YESEMS.
If yes, from the C:\ prompt type Q /E3 and press Enter. (There is a space between the Q and the /.)
 
W

Wesley Vogel

Al, see if this helps.

[[To increase the performance of the MS-DOS-based program, you can allocate
more memory. To make this change, after clicking Properties in step 2, on
the Memory tab, set Expanded (EMS) memory or Extended (XMS) memory to Auto,
and no limit will be imposed. If you experience program errors, set the
value in the Total window to 8192.]]

To create or change a program information file (PIF)
[[Prior to creating or making changes to the PIF, please review the
MS-DOS-based program documentation. Changing the PIF affects how the program
interacts with Windows. The program might only work correctly with specific
default settings.

Open My Computer.
Do one of the following:
If you want to create a program information file (PIF) for a program, locate
the program and right-click it. Then click Properties and change the default
settings to match the program requirements.
If you want to change the settings of an existing PIF file, locate the
shortcut to the program file and right-click it. Click Properties and make
the appropriate changes.
Notes
To open My Computer, double-click the My Computer icon on the desktop.
Creating a program information file (PIF) for an MS-DOS-based program
creates a shortcut to the program executable. All the settings saved in the
PIF file are contained in the shortcut.
To specify whether an MS-DOS-based program starts in a full screen or in a
window, change the Run properties on the Program (or Shortcut) tab.
To view MS-DOS-based program output on the screen faster, after clicking
Properties in step 2, on the Screen tab, select Fast ROM emulation under
Performance. Please review the documentation that came with your video card
to ensure it supports Fast ROM emulation.
To increase the performance of the MS-DOS-based program, you can allocate
more memory. To make this change, after clicking Properties in step 2, on
the Memory tab, set Expanded (EMS) memory or Extended (XMS) memory to Auto,
and no limit will be imposed. If you experience program errors, set the
value in the Total window to 8192.
The Properties dialog box has replaced the PIF Editor used in earlier
versions of Windows.]]
 
C

cquirke (MVP Win9x)

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
 
A

Alex Nichol

Al said:
DOS game. Windows XP Home. PIF has "auto" for all memory
allocations. I run the PIF and get this message:
"You must have 2700K of expanded memory."
I have 1.5GB of memory, yet when I type "mem", I show 0 for
the allocated expanded memory.

For best DOS conventional memory, and support of Expanded, edit the
windows\system32\config.nt and autoexec.nt files.

In config.nt have (apart from the large number of REM lines) just
EMM = B=4000 RAM
(note the exact spaces - either side of the first = and before RAM,
none next to the second =) and

dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40
(or higher files= if needed)

and in autoexec.nt have

REM Install DPMI support
lh %SystemRoot%\system32\dosx

with other earlier lh lines REM ed out, and then any SET or PATH lines
that may already be present at the end.

This should give about 612K conventional for a program, run from a
shortcut (.pif) made to its .exe file. R-click the shortcut, Properties
and on the Memory page you can set an explicit value - rather than Auto
- for any EMM or XMS memory it may need, and for initial environment
space
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top