[comp.sys.ibm.pc] weakness in the LIM EMS 4.0 spec

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (02/02/90)

In article <28980@amdcad.AMD.COM> phil@pepsi.amd.com () writes:
$Well, guess what. This driver simply grabs 64 Kbytes of conventional
$memory, calls it the memory buffer, and implements EMS by going into
$protected mode and shuffling data back and forth to extended memory.

   There's a very good reason that the program (EMS40.SYS) does this.
If you look at the article, I believe it says that this driver will
allow you to use extended memory on a 286 to mimic expanded memory.
There are a lot of programs out there that will not recognize extended
memory but will make good use of expanded (such as Lotus Symphony).
If you have a 286 with 4M of memory of which all but 640K is extended,
as far as Symphony is concerned you only have 640K.  But if you use
EMS40.SYS, you now have about 570K (taking off 64K for the page
frame and a little for the driver) of conventional memory and over 3M
of expanded memory, and Symphony can now make use of more of your
memory.  Sure, it's slower, and you wouldn't want to use it with an
operating system that uses 4.0's backfilling, but it's a lot better
than nothing for many applications.

-- 
Stephen M. Dunn                               cs4g6ag@maccs.dcss.mcmaster.ca
          <std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
****************************************************************************
       "I want to look at life - In the available light" - Neil Peart

ray@philmtl.philips.ca (Ray Dunn) (02/03/90)

In referenced article, phil@pepsi.amd.com (phil ngai) writes:
>
>Well, guess what. This driver simply grabs 64 Kbytes of conventional
>memory, calls it the memory buffer, and implements EMS by going into
>protected mode and shuffling data back and forth to extended memory.
>....
>With standards like this, who needs standards?

You are not describing a deficiency in the *standard*, you have found what
might be initially considered a poor or restricted *implementation* of the
standard.

However, you are describing a *software only* implementation that gives you
EMS on a machine that has no hardware to support it.  In effect it is an
*emulation* of EMS memory using 286 extended memory, and as such can be
extremely useful.

A similar implementation of EMS can be done (and has been) on an XT machine
using swapping to disk.  I may be wrong, but doesn't another popular but
multi-tasking operating system also use hidden memory/disk swaps?  (:-).
[Yes I do understand that automatic paging a-la-UNIX is infinitely more
program friendly than the simple but awkward to use application controlled
memory paging of LIM 4.0]

The *speed* of an EMS implementation, is of course something that an
application program can do little about, however the other complaint, the
fact that it used a maximum of only one 64K page, can of course be detected
by the application which could modify its behaviour accordingly.

The fact that the standard allows a wide variation in the window and
physical memory availability is, of course, because of the wide variation in
the physical hardware on which the standard is defined to run.
-- 
Ray Dunn.                    | UUCP: ray@philmtl.philips.ca
Philips Electronics Ltd.     |       ..!{uunet|philapd|philabs}!philmtl!ray
600 Dr Frederik Philips Blvd | TEL : (514) 744-8200  Ext : 2347 (Phonemail)
St Laurent. Quebec.  H4M 2S9 | FAX : (514) 744-6455  TLX : 05-824090

mwilcox@pcocd2.intel.com (Mike Wilcox ) (02/03/90)

In article <25C87DEC.22918@maccs.dcss.mcmaster.ca> cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) writes:
>In article <28980@amdcad.AMD.COM> phil@pepsi.amd.com () writes:
>$Well, guess what. This driver simply grabs 64 Kbytes of conventional
>$memory, calls it the memory buffer, and implements EMS by going into
>$protected mode and shuffling data back and forth to extended memory.
>
>   There's a very good reason that the program (EMS40.SYS) does this.
>If you look at the article, I believe it says that this driver will
>allow you to use extended memory on a 286 to mimic expanded memory.
>There are a lot of programs out there that will not recognize extended
>memory but will make good use of expanded (such as Lotus Symphony).

.. stuff about memory deleted..

>memory.  Sure, it's slower, and you wouldn't want to use it with an
>operating system that uses 4.0's backfilling, but it's a lot better
>than nothing for many applications.
>
>-- 
>Stephen M. Dunn                               cs4g6ag@maccs.dcss.mcmaster.ca


Well, I guess that explains why ems40.sys doesn't work with my windows/286.

The system won't boot with himem.sys smartdrv.sys and ems40.sys loaded.

What it doesn't explain is why paradox 3.0 won't load with ems40.sys
loaded. I have a 10Mhz 286 with 1 meg on the Motherboard and 2 3Megs add
in cards as exTENded memory. Can't set them for expanded. Anyway Paradox
3.0 just freezes the whole system (have to hard reset) if ems40.sys id
loaded. Doesn't even show the opening screen.

Any help would be aprreciated.


***************************************************************************
Mike Wilcox                           *     mwilcox@pcocd2.intel.com
Intel Corp.                           *
Folsom CA                             *
***************************************************************************

phil@pepsi.amd.com (Phil Ngai) (02/03/90)

In article <25C87DEC.22918@maccs.dcss.mcmaster.ca> cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) writes:
|   There's a very good reason that the program (EMS40.SYS) does this.

I understand that the program will be valuable to some people and I
am not knocking it. My complaint is that if a program like this can
truly be said to be EMS 4.0, (and I think it can) then the 4.0 standard
is so loose that it is almost useless as a means of shopping and
comparing products. I have just returned a 286 motherboard which was
EMS 4.0 because it was useless for multi-tasking.

I'm starting to think it's just a plot to make us buy 386SXs...

Did you realize that the E000 segment is useless on a 286 (unless you
have a Chargecard) but a 386 will let you use it?

--
Phil Ngai, phil@amd.com		{uunet,decwrl,ucbvax}!amdcad!phil
It's a boy!

cs4g6ag@maccs.dcss.mcmaster.ca (Stephen M. Dunn) (02/04/90)

In article <1570@mipos3.intel.com> mwilcox@pcocd2.UUCP (Mike Wilcox ) writes:
$What it doesn't explain is why paradox 3.0 won't load with ems40.sys
$loaded. I have a 10Mhz 286 with 1 meg on the Motherboard and 2 3Megs add
$in cards as exTENded memory. Can't set them for expanded. Anyway Paradox
$3.0 just freezes the whole system (have to hard reset) if ems40.sys id
$loaded. Doesn't even show the opening screen.

   EMS40.SYS seems to be incompatible with some software or combinations
of software.  Last summer, I tried using it on a couple of machines on
a network.  We were using a special network printing utility (Network
Assistant Plus) which would use 64K of EMS, if you had it, to store its
overlays; otherwise, it would have to load them from the server every
time you wanted them.

   Anyway, EMS40.SYS and NAP worked fine together; EMS40.SYS and Symphony
worked fine (though rather slowly) together.  However, if we tried
using both at the same time, the machine would hang.

   I never found out what the problem was; NAP and Symphony coexisted
beautifully on other machines with proper EMS 3.2 or 4.0, and I
never found anything else that we used that would not run with
EMS40.SYS.
-- 
Stephen M. Dunn                               cs4g6ag@maccs.dcss.mcmaster.ca
          <std_disclaimer.h> = "\nI'm only an undergraduate!!!\n";
****************************************************************************
       "I want to look at life - In the available light" - Neil Peart