[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

Re: RE Which Computer



** Reply to message from "Patricia M. Godfrey"  on Sun, 09
Oct 2005 17:34:23 -0400


> Robert, thank you for taking the time to explain all that. Actually, I
> think we were mostly intending the same point, except as regards EMS. If
> I understand you correctly, you're saying that Windows sets aside a
> block of RAM and "tells" the DOS app (or a DOS prompt session) that
> that's the lower 640 K of RAM it's expecting. If you open another VDM,
> Windows sets aside another block (anywhere in physical RAM) and says
> THAT's the lower 640 K. And so on.

Correct.

> And that what MEM (a DOS command)
> reports reflects what it's been "told" by Windows.

It's reporting the status of the particular virtual machine within which it
(MEM) is running.

> But you say
> EMS--or at least the 64 K window through which it is swapped in and
> out-- is an exception to this legerdemain, being really, really the
> block of RAM that it purports to be, and so the same for every DOS
> session?

Yes. Or at least that is my conclusion, based on a potential conflict with the
USB BIOS. Look, the USB BIOS *must* be at a particular location in memory when
the machine starts up, otherwise it couldn't be found. When the machine
starts, no operating system is loaded yet -- the "program" that is running is
the machine BIOS itself. You have selected (or defaulted to) a Boot Order,
when you go into BIOS setup and establish whether your machine will boot from a
floppy first, a CD, a hard drive, or whatever. If your Boot Order says that
you want to boot from a USB device first, then the BIOS looks at DC000, reads
the USB BIOS, then checks whether any USB device is actually ready and able to
boot. If no, it moves to the second device in Boot Order and performs the same
check; if yes, it boots whatever OpSys is on the USB device. Now, the
principle of EMS is a page frame of 64Kb at a fixed location into which any
amount of other memory gets swapped in and out. That "other" memory could be
fetched from any number of VMs, as required -- each VM can store as much as
16Mb of EMS; but only one little 64Kb piece of that 16Mb can be plugged into
this one page frame in the System VM (the real DOS on which 9x is running) at a
given moment. Because managing all this and doing all this swapping is
S-L-O-W, EMS was largely superceded by the more efficient XMS (eXtended Memory)
method.

Let me return once more to what the Signature Tech Ref Guide actually says --
it's important to read this carefully, to evaluate whether you really need EMS
or not. I quote from a msg of mine from 14 November 2002:

------------------------------------------------

What are we using EMS for? Quite a lot, actually. The Signature Tech Ref
Guide has this to say about VAriable ZX (this info does not appear in later
books, but then, there's a fair amount of Signature stuff that remains
operative and relevant that was omitted in later manuals):

"DF ZX - Cancel Expanded Memory -- Turns Signature's use of expanded memory on
and off. (The initial default is 0.)

"df zx=0 Signature automatically uses expanded memory that conforms to LIM
specification 3.2 or later for the following information: main and
supplemental spelling dictionaries; temporary personal dictionary; SIG.MNU
index; and SIG.HLP index.

"df zx=1 Signature does not automatically use expanded memory.

"Note: The ZX default setting was introduced in Signature Version 1.01."

End quote. Now, at the time this manual was printed, there were no DLG or
U1-U4 files. But, like HLP and MNU, those files also generate fairly
large indices, so it stands to reason that they are loaded into EMS too, and
may help to explain why U2 (for example, with a 10Kb index) can be so large
without any apparent adverse effect.

------------------------------------------------

So, Patricia: EMS may only be *required* with non-U.S.English dictionaries,
but it may be quite *useful* when loading, e.g., U2. But is it required? No.

One other tidbit from the past -- a msg of mine dated 7 November 2003:

------------------------------------------------

... it seems true, that if no expanded memory is enabled on the command
line when you launch XyWrite, spelling doesn't work with UK [Microlytics
dictionary]. If ZX=1, spelling doesn't work. With EMS enabled and ZX=0, it
does work. However, I noticed this additional factor: if I set expanded mem
to "/e5120" on the XyWrite launch line, there's no room for EMS to work. If I
set it to "/e4096", I have a 16Kb EMS space. If I set it to "/e2048", I have a
2 megabyte(!) EMS space to work with. Interesting! Smaller is better. Just
don't make it zero.

------------------------------------------------

-----------------------------
Robert Holmgren
holmgren@xxxxxxxx
-----------------------------