Dec 102017
 
Good Simulated Expanded Memory Mgr.
File EM_SIM.ZIP from The Programmer’s Corner in
Category Utilities for DOS and Windows Machines
Good Simulated Expanded Memory Mgr.
File Name File Size Zip Size Zip Type
EMSIM.DOC 17920 5909 deflated
EMSIM.SYS 2508 1357 deflated
EMSTAT.COM 2807 1244 deflated
RDYLOAD.COM 311 236 deflated

Download File EM_SIM.ZIP Here

Contents of the EMSIM.DOC file


EMSimulator


An Expanded Memory Simulator for the IBM AT
and Compatibles.


By Karlton W. Kam

Installation/Users Guide
Limited Evaluation Version


Copyright (c) 1986, Kam & Associates, Inc.
All Rights Reserved.



Kam & Associates, Inc.
3615 Harding Ave. Suite 401
Honolulu, Hawaii 96816
(808) 737-3647



This document and its respective files are a complete working
limited evaluation version of the EMSimulator. All functions are
implemented with the exception that simulated Expanded memory can
not be larger than 256K in size. Users are allowed to distribute
this version freely as long as it is not modified in any way.
Anyone who finds the EMSimulator useful are encouraged to
purchase the complete package which included printed
documentation and an unrestricted version, which will allow up to
8 megabytes of extended memory to be used as expanded memory, for
only $49.95.

We at Kam & Associates are sure that you will find this utility
very useful to any AT or compatible owner. We appreciate any
comments or suggestions that you may have.


Attention AT Extended Memory Owners!

Up until now, most AT memory expansion boards such as the AST
Advantage, Qubie 4X4, Everex RAM 3000, 2500, and Magic Card,
Quadboard AT, Compaq 286, Etc, broke the 640K barrier by offering
Extended Memory (memory above 1 Meg). Unfortunately, even though
many users have several megabytes installed and available, this
memory was not usable by most software programs except IBM's
Vdisk.

The EMSimulator or Expanded Memory Simulator, bridges the gap
between your application software and the AT's previously
unusable Extended memory. Now programs such as Lotus 123 v2,
Symphony v1.1, Lightning, Reflex v1.1, and most L-I-M Expanded
Memory compatible software can access up to 8 megabytes of your
AT's extra memory. By removing the 640K restriction and
limitations of conventional memory, expanded memory makes large
spreadsheets and databases a reality.

The EMSimulator is compatible with the IBM AT and most AT
"Clones" including Compaq's 286 series. Installation of the
EMSimulator is quick and easy requiring only an addition to your
"CONFIG.SYS" file and that extended memory be available via an
expansion board as mentioned above. Compaq 286's and some clones
already have extended memory capabilities so additional boards
may not be required! Contact us or your dealer for more
information.

At an Introductory price of only $49.95, the EMSimulator is an
inexpensive way to utilize, maximize, and enhance both your
hardware and software investment.


Orders Only: Information/Orders
(800)821-5226 Ext. 435 (808)737-3809


Kam & Associates, Inc.
3615 Harding Ave. Suite 401
Honolulu, Hawaii 96816





Commonly asked questions about the EMSimulator.


- Expanded and Extended memory. How do they differ?

Expanded memory has been developed due to the limited (1
megabyte) addressing capability of the 8088 CPU. Software
developers at Lotus, Intel, and Microsoft have designed a bank
switching scheme called expanded memory specifications, or EMS.
By using the EMS scheme, any 8088 or 80286 processor can access
up to 8 megabytes of memory, but at only 64K at any given time.

Since the 80286 CPU can address up to 16 megabytes of memory
directly, Extended memory is any memory located above the normal
1 megabyte boundary. Even though this memory can be as large as
15 megabytes, few programs can take advantage of it, as they and
the current DOS are designed to operate within the 1 megabyte
addressing limit imposed by the 8088 CPU. This limitation will be
circumvented with the availability of a new DOS.

As you can see, these two schemes are very different. Extended
memory is not really useful at this time but will be required
with the advent of the new "Protected Mode" DOS. Expanded memory
will work with existing programs such as Lotus v2, Symphony 1.1,
etc., but is really designed for the PC and XT's 8088 CPU.
Expanded memory is just a stop gap measure when implemented on
the AT's 80286 and will probably not be supported by the new DOS.



- When first turned on, my AT displays that there is 2048K of
memory available. Lotus 123 is supposed to support up to 4
megabytes of memory but shows less that a 400K workspace. Is
something wrong?

If your AT counts to over 640K when turned on, you have Extended
memory installed. Lotus 123 version 2 supports up to 4 megabytes
of Expanded memory which is different from your Extended memory.
By using the EMSimulator, your additional memory above 640K can
be turned into Expanded memory and will be available to Lotus 123
v2 or any EMS compatible program.



- I own a Compaq 286 which my dealer claims can be increased to
up to 2 megabytes. Can the EMSimulator be utilized?

Yes, the Compaq 286 can be easily upgraded to 2 megabytes of
memory by simply replacing the 64K RAM chips with 256K chips and
adjusting a few switches. This extra memory then becomes Extended
memory to the 80286 processor. As mentioned above, this memory
can be made to simulate Expanded memory with the EMSimulator and
will then be available to programs that support the EMS
specification. This is also true for many AT "Clones" that claim
to have 1 megabyte or more already installed.



- The EMSimulator seems like a product that can be useful to many
AT owners. Are there any drawbacks?

A few, First, because the EMSimulator is a software program, it
resides in conventional memory and requires about 67K when
operational. Secondly, the EMSimulator is an Expanded Memory
Simulator. Being so, it may not be as fast as actually having an
Expanded memory board installed. The performance will vary
depending on your application program.

Both these issues have been addressed during the development of
the EMSimulator. The EMSimulator is written totally in assembly
language so as to be as compact and as fast as possible. As a
result, the EMSimulator requires less than 7K of disk space and
is virtually transparent to the application program and user.



- How do I use the EMSimulator with my software?

If your program utilizes the Lotus-Intel-Microsoft EMS version
3.2 specifications, it will probably work with the EMSimulator.
Installation of the EMSimulator requires only a simple addition
to your "CONFIG.SYS" file. Once installed, the AT will load a
small 3K device driver called EMSIM.SYS into memory each time it
is turned on. This driver allocates any Extended memory that is
not already used by IBM's VDISK.SYS utility for use as Simulated
Expanded memory. By using the included EMSTAT.COM program, the
EMSimulator device driver can be enabled and disabled whenever
Expanded memory is needed. When enabled, an additional 64K of
conventional memory is used to store the simulated 64K page
buffer. This memory can be reclaimed without rebooting by simply
disabling the driver with the EMSTAT.COM program. EMSTAT.COM also
displays useful and interesting information about the performance
and status of the EMSimulator device driver and can be invoked at
any time.



Installation and Operation of the EMSimulator


Step 1: Installation of EMSIM.SYS device driver.

The EMSimulator consists of two small program files, EMSIM.SYS
and EMSTAT.COM. Together, these two file occupy less than 7K of
disk space. Copy these two files, EMSIM.SYS, and EMSTAT.COM onto
the root directory of your hard disk.

EMSIM.SYS is a device driver that is installed in the CONFIG.SYS
file. To do this, add the line:

DEVICE=EMSIM.SYS

This command should be placed first in the CONFIG.SYS file.
Reboot the system. This driver will be loaded each time the
computer is booted. It will use about 3K of conventional memory.

In its normal state, any extended memory up to 8 megabytes will
be allocated for simulated expanded memory by the EMSIM.SYS
device driver. Users who wish to also create a Ramdisk in
extended memory may do so by using IBM's VDISK device driver.
IBM's VDISK driver MUST be used and it MUST be placed before the
EMSIM.SYS driver in the CONFIG.SYS file so that the VDISK is
installed first. Compaq owners should note that even though the
MS-DOS diskette contains a VDISK driver, it is not the same as
IBM'S VDISK and will not work. Any remaining memory not allocated
to VDISK will be used for simulated expanded memory.

At this point, the EMSIM.SYS device driver is loaded but not
activated.



Step 2: Enabling the EMSimulator device driver.

By using the EMSTAT.COM program, the EMSimulator can be enabled
and disabled when needed. Before using any EMS compatible
software, execute the following command:

EMSTAT E

This will enable the Expanded memory simulator and will allows
your application programs to utilize the extended memory as
expanded memory. When enabled, an additional 64K of memory is
used so your conventional memory size will be slightly smaller.

An alternate method for enabling the EMSimulator driver is the
command:

EMSTAT 0-9

This will Activate an audible click every time a bank switch is
made. This function lets you 'hear' the EMSimulator in action. A
zero will turn this function off while a 9 will produce the
loudest tone. This command will also enable the device driver if
it is not already enabled.

The EMSimulator driver can be disabled at anytime and the 64K of
memory released. This is done by the command:

EMSTAT D

This command will not function if another memory resident
programs is installed after the EMSimulator driver was
enabled.



Step 3: Using the EMSimulator.

Once activated, the EMSimulator will emulate the L-I-M EMS
version 3.2 specification. This allows programs such as Lotus 123
v2.0, Symphony v1.1, Reflex v1.1, etc. to be used. The Expanded
Memory Simulator statistics can be viewed at any time by
executing the EMSTAT program without any parameters. This will
display information on the current status of the EMSIM driver.


Summary of EMSimulator commands.

EMSTAT Displays status information
EMSTAT E Enables device driver
EMSTAT D Disables device driver
EMSTAT 0-9 Toggles audible speaker click
and enables device driver

It is recommended that the EMSimulator be enabled only when
necessary and after all memory resident programs have been
loaded unless the resident programs themselves require EMS. By
enabling the EMSimulator, which itself is a memory resident
program, last, the 64K memory required can be released when the
driver is disabled. This can be accomplished by the use of batch
files. For example, when using Lotus 123 version 2, the batch
file LOTUSEXP.BAT can be created as follows:

EMSTAT E
LOTUS
EMSTAT D

This will automatically enable and disable the EMSimulator
whenever Lotus 123 is executed.


Hints and Advice about using the EMSimulator.

When using the EMSimulator with Ready!, by Living Videotext Inc.,
version 1.00c or greater must be used. Ready! must be the first
program loaded into expanded memory and the program
'RDYLOAD.COM', which is included on the EMSimulator diskette,
must be executed immediately after Ready! is loaded. This program
resolves an obscure error when Ready! is loaded and allows other
EMS compatible programs to be executed concurrently with Ready!.
Also, make sure the the file 'READY.AB', which is on your Ready!
diskette, is on the same directory before executing Ready! as it
is needed to utilize Expanded memory.

Lotus 123 and Symphony users may notice a slowdown in execution
and movement within the spreadsheet whenever large amounts of
expanded memory is used. This is most noticeable after combining
or editing large spreadsheets or after sorting large databases.
This is because the memory management scheme of Lotus/Symphony
often fragments its data putting contiguous data in non-
contiguous memory and causing a large number of bank switch of
expanded memory to be required whenever accessed. Saving then re-
loading the workspace will regain its performance.

Another main factor that limits Lotus' memory management scheme
is that conventional memory must be used to retain pointers to
data stored in expanded memory. This means that even though you
may have large amounts of expanded memory, not all of it may be
usable because conventional memory will often be filled with
pointers to expanded memory and once full, will signal a memory
error.


Background/Technical information.

The Expanded memory scheme has been developed due to the limited
(1 megabyte) addressing capability of the 8088 CPU. Software
developers at Lotus, Intel, and Microsoft have designed a bank
switching scheme called expanded memory specifications, or EMS.
By using the EMS scheme, any 8088 or 80286 processor can access
up to 8 megabytes of memory, but only 64K at any given time.

Since the 80286 CPU can address up to 16 megabytes of memory
directly, Extended memory is any memory located above the normal
1 megabyte boundary. Even though this memory can be as large as
15 megabytes, few programs can take advantage of it, as they and
the current DOS are designed to operate within the 1 megabyte
addressing limit imposed by the 8088 CPU. This limitation will be
circumvented with the availability of a new DOS.

As you can see, these two schemes are very different. Extended
memory is not really useful at this time but will be required
with the advent of the new "Protected Mode" DOS. Expanded memory
will work with existing programs such as Lotus v2, Symphony 1.1,
etc., but is really designed for the PC and XT's 8088 CPU.
Expanded memory is just a stop gap measure when implemented on
the AT's 80286 and will probably not be supported by the new DOS.

The EMSimulator has been developed to "Bridge the Gap" between
these two different memory schemes. By following and simulating
the L-I-M EMS 3.2 specification, most programs that support it
can now be used successfully with the AT's Extended memory.

Because the EMSimulator simulates the Expanded memory scheme, it
will not and cannot function as fast as a true EMS bank switched
board. Depending on your application program and the number of
bank switches it requires, the performance may or may not be
affected. Throughout its entire development, careful attention
has been used to assure that the EMSimulator will be as
transparent and as fast as possible.

The EMSimulator consists of over 1500 lines of 80286 assembly
language code which when assembled, results in two files that are
about 7000 bytes in length. Assembly Language allows direct
access to the 80286 CPU and the AT's hardware and architecture
when executing. This assured the most efficient and compact code
in the end as assembly is native language of the 80286 CPU and no
intermediate translations are needed when executing.

The 80286 CPU has two modes of operation, Real Mode, which is
designed to emulate the 8088 CPU. This mode is what the AT is
usually running in thus the usual 640K memory limit. Protected
Mode allows the 80286 to access up to 16 megabytes of memory
although this mode is not supported by very many programs so the
extra memory is usually not used.

As mentioned above, the L-I-M EMS scheme has been designed to
allow access to up to 8 megabytes of memory to any program that
supports it. This memory is available in 16K pages which 4 pages
can be access at any given time through a "Window" in the 1
megabyte memory map of the 8088 or the 80286 in Real mode.

When operating, the EMSimulator allows EMS compatible programs to
access to up to 8 megabytes of Extended memory. This is done not
by executing programs in its Protected mode, but by automatically
moving memory from its Extended memory to below the 1 megabyte
area where it is accessible to programs through the 64K "Window".
This memory move is done as quickly as possible whenever the
executing program calls for a different page to be mapped into
the window. On EMS compatible memory boards, this is mostly
handled through hardware thus the mapping done very quickly.
Because the EMSimulator uses existing memory and does not require
a special memory board, blocks of memory are moved from Extended
memory and into the "Window" by the CPU.




 December 10, 2017  Add comments

Leave a Reply