[comp.windows.ms] Confused about Windows and extended memory drivers

tony@scotty.dccs.upenn.edu (Anthony Olejnik) (11/08/90)

Recently, I purchased an IBM Model 55 (386SX processor).
As part of the store's package deal, Windows 3.0 was installed.

I would like to install my new version of Lotus (v3.1) on this
system.  However, there seems to be a conflict with the expanded/
extended device drivers.

Initially, the CONFIG.SYS had the following two drivers:

	device=himem.sys
        device=smartdrv.sys <and a bunch of associated parameters>

Lotus v3.1, apparently, requires the use of expanded memory drivers.
The Lotus and DOS documentation indicated that the following two
drivers should be installed:

	device=xmaem.sys
	device=xma2ems.sys frame=d000 p254=c000 p255=c400

With all four drivers installed, I'm unable to run both Lotus and
Windows (in fact, I'm not able to boot the machine properly).

I suspect a conflict with himem.sys and DOS's expanded memory
drivers (xmaem and xmaems).

Could anyone help me out on this by providing some advice?

Any help would be *GREATLY* appreciated.

Thanks in advance.

--tony

leefi@microsoft.UUCP (lee fisher) (11/10/90)

Anthony Olejnik <tony@scotty.dccs.upenn.edu> asks:
> 
> Recently, I purchased an IBM Model 55 (386SX processor).
> As part of the store's package deal, Windows 3.0 was installed.
> I would like to install my new version of Lotus (v3.1) on this
> system.  However, there seems to be a conflict with the expanded/
> extended device drivers.Initially, the CONFIG.SYS had the following 
> two drivers:
> 
>     device=himem.sys
>     device=smartdrv.sys <and a bunch of associated parameters>

Sounds ok so far. HIMEM sets up XMS support. SMARTDRV setups up a 
disk cache. You don't have any expanded memory so far.

> Lotus v3.1, apparently, requires the use of expanded memory drivers.
> The Lotus and DOS documentation indicated that the following two
> drivers should be installed:
> 
>     device=xmaem.sys
>     device=xma2ems.sys frame=d000 p254=c000 p255=c400

Personally, I would never recommend using XMA*.SYS. XMAEM takes
PS/2 386 extended memory and emulates IBM's XMA memory (don't ask
me what XMA memory is). XMA2EMS takes XMA memory (which is being
simulated by XMA2EMS) and emulates EMS memory (expanded memory).

But Windows does its own expanded memory emulation ("LIMulation").
All you need to install on your machine for this is HIMEM. Once
Windows is loaded, you'll have simulated expanded memory.

But, if you have an external (outside Windows) LIMulator, Windows
does different things, depending on how it can co-exist/control/die
with this running. I think Windows won't work with XMAEM/XMA2EMS
loaded, but I've never looked into it, nor am I a Windows expert.

So, I'd first simply remove the XMA*.SYS drivers and see how this
goes. Then, if you require expanded memory before you load Windows,
use a LIMulator that Windows can work with, like EMM386.SYS, which
comes with Windows. You'll first have to have installed HIMEM. (If
you have the EMM386 shipped with Windows loaded, when Windows is
loaded, it turns off EMM386 while Windows is running, taking over
the LIMulation itself, and returns EMM control to EMM386 when Windows
terminates.

So, I'm assuming that you'll be running the Lotus app under Windows. 
If this is the case, you won't need external LIMulators, and you can
let Windows do all the LIMulation. I.e., all you should have to 
load is HIMEM. If you want to run your EMS-aware app outside Windows,
you should be using HIMEM and EMM386.

> With all four drivers installed, I'm unable to run both Lotus and
> Windows (in fact, I'm not able to boot the machine properly).
> I suspect a conflict with himem.sys and DOS's expanded memory
> drivers (xmaem and xmaems).

Also, if you use EMM386 or Windows and are having problems, get out 
your PS/2 Reference disk, look at the slot configurations, and find
out what areas of memory you have cards mapped into. Then use the
X= command line switch of EMM386 and the analagous EMMExclude=
field of Windows' SYSTEM.INI [386Enh] to explicitly tell Windows
not to touch these areas of memory.

See the Windows User Guide (the appendices, I believe) for information
on HIMEM.SYS and EMM386.SYS. See the Windows ASCII files SYSINI*.TXT
for information on how to modify SYSTEM.INI. Hope this helps.
__
lee fisher, microsoft corp., redmond, wa, usa, +1.206.936.8621
leefi@microsoft.uucp, {sun,uunet,uw-beaver,decwrl,sco}!microsoft!leefi