home *** CD-ROM | disk | FTP | other *** search
- EEMRAM 2.10
-
-
- Purpose
- -------
- EEMRAM is a small utility that can expand your DOS memory from
- 640K to a maximum of 736K using Enhanced or LIM 4.0 expanded
- memory. To use EEMRAM, you must have a memory board that
- provides EEM or LIM4 memory. A companion program (DERAM) can be
- used to restore the "normal" 640K if necessary. EEMRAM will
- probably NOT work with Intel EMS products.
-
-
- Before you run EEMRAM
- ---------------------
- In order for EEMRAM to work, several conditions must be met.
- There's more about this elsewhere in this document, but for now
- run these two checks.
-
- | 1. Run MS (just type "MS") and verify that the total free
- | memory is 655,360 bytes (640K) or 654,336 bytes (639K; PS/2
- | systems only). If any other amount is displayed, EEMRAM
- | cannot be used.
-
- 2. Run EMSINFO (just type "EMSINFO") and note the results.
- If they scroll beyond one screenful, you can print the
- results by typing:
-
- EMSINFO > PRN
-
- EMSINFO must indicate that the EMM type is either "EEMS" or
- "LIM 4.x". Also, the list of memory segments to which EMS
- memory can be mapped must include the segment "A000".
-
- If EMSINFO does not indicate that segment A000 is available, you
- probably have an EGA or VGA in your system and/or are using an
- Intel EMS board. If the former, see the section titled "If you
- have an EGA or VGA"; if the latter, you cannot use EEMRAM.
-
- If EMSINFO indicates that EEMRAM cannot be used, and you aren't
- clear on exactly why, just run EEMRAM. No harm will be done,
- and EEMRAM will display an error message indicating why it won't
- work. Then look in "EEMRAM error messages" below for possible
- causes and solutions.
-
-
- Running EEMRAM
- --------------
- Here is EEMRAM's syntax:
-
- eemram [/#] [/S]
-
- When run, EEMRAM will increase DOS-usable memory DOS from 640K
- to a maximum of 736K. The exact amount depends on your hardware
- configuration, particularly on what type of display adapter you
- have installed. You may want to run EEMRAM via your AUTOEXEC
- startup batch, ideally as the first external program run by the
- batch:
-
- echo off
- cd c:\util
- eemram
- ...
-
- The optional /S parameter is required if you have EEMS memory
- and want to be able to use DERAM (about which, more later). It
- is not necessary if you have LIM 4.0-compatible memory or don't
- need DERAM.
-
- The optional /# parameter limits EEMRAM's use of EEMS memory to
- some amount less than the maximum possible. See the next
- section.
-
- | If you have a PS/2 system, a small portion of EEMRAM (1120
- | bytes) may remain resident. This is because EEMRAM may have to
- | relocate the extended BIOS data area (1K) from high memory to
- | low memory. DO NOT USE "TSR MANAGERS" SUCH AS MARK AND RELEASE
- | TO RELEASE EEMRAM!
-
- To see the effects of EEMRAM, just run MS (Memory Size) or
- CHKDSK before and after running EEMRAM.
-
-
- Limiting Memory Size: /# parameter
- ----------------------------------
- The optional EEMRAM /# parameter can be used to explicitly
- reduce the number of 16K pages of EMS memory assigned to DOS
- (see "Memory Allocation Information" for more information about
- memory use). "#" is a decimal digit from 1 to 6 that specifies
- how many pages you want assigned.
-
- EEMRAM will normally assign all contiguous pages available from
- A000 to B400 (6 pages maximum, or 96K). However, there may be
- cases in which you don't want all of this used, and that's what
- /# does. An example of /# use:
-
- C> eemram /2
-
- The /2 means "use only two 16K pages of EEMS memory."
-
- If you specify more pages than are available, EEMRAM will only
- use the number available, in effect ignoring your parameter.
-
- Here is a map showing the effects of all possible /#:
-
- Page /1 /2 /3 /4 /5 /6
- ---- -- -- -- -- -- --
- A000 XX XX XX XX XX XX
- A400 XX XX XX XX XX
- A800 XX XX XX XX
- AC00 XX XX XX
- B000 XX XX <---MDA memory begins
- B400 XX
- B800 <---CGA memory begins
- -- -- -- -- -- --
- KB added 16 32 48 64 80 96
- Total KB 656 672 688 704 720 736
-
-
-
- DERAM
- -----
- EEMRAM works by mapping EEMS memory to DOS addresses beginning
- at memory segment A000; EGA/VGA systems also use this area of
- memory, so you will have a conflict using EGA/VGA hi-res
- graphics modes in an EEMRAM environment. You may also find that
- you have only a few programs that can really use the extra
- EEMRAM memory and that you prefer to leave the EMS memory free
- most of the time.
-
- The DERAM program reverses the effects of EEMRAM: it restores
- the original 640K of DOS memory and releases the EMS memory
- EEMRAM was using back to the free memory pool. This may allow
- you to use EGA/VGA hi-res modes.
-
- To restore the original 640K system, just run DERAM:
-
- C> deram
-
- [NOTE: to use DERAM with EEMS memory, you must
- have run EEMRAM with the /S option:
-
- C> eemram /s
-
- This saves certain information the DERAM needs.
- The /S switch is not necessary if you have LIM
- 4.0-compatible memory. When you use /S, EEMRAM
- places in memory a small amount (four bytes) of
- information that DERAM needs. The information
- is stored in the little used Interapplications
- Communication Area (IACA). If EEMRAM cannot
- find four consecutive unused bytes in this area,
- it cannot store the information and DERAM won't
- work.]
-
- As an example of using EEMRAM and DERAM, suppose that you only
- want to have the extra memory available for one program, your
- word processor BESTWP. The following command sequence will do
- the trick:
-
- C> eemram /s [/S needed only for EEMS]
- C> bestwp
- C> deram
-
- You can enter these commands manually or make a small batch file
- or PCED synonym.
-
- The opposite situation holds where you want to run with extra
- memory most of the time, but release it before running the EGA
- graphics program GREATGFX. The following commands may help:
-
- C> deram
- C> greatgfx
- C> eemram /s [/S needed only for EEMS]
-
- IMPORTANT NOTE: it is not possible to guarantee that the system
- will operate correctly after DERAM. Some programs, especially
- system software, TSRs, and device drivers, assume that the
- amount of memory in your system is fixed--that it will not
- change during a session. However, that is exactly the effect of
- DERAM. If you find that something doesn't run after DERAM,
- you'll just have to reboot without EEMRAM.
-
-
- Memory Allocation Information
- -----------------------------
- When a typical EEMS or LIM 4.0 memory board is installed, it
- "backfills" DOS memory to 640K; that is, some of the memory on
- the EEMS board is permanently assigned to DOS in such a way that
- the system will appear to DOS to have 640K of main memory. This
- 640K occupies RAM addresses 00000 to 9FFFFF, or, in the more
- traditional segment notation, memory segments 0000 to 9FFF.
-
- Segments beginning at A000 (the next segment above 9FFF) are not
- assigned to DOS by the EMS manager.
-
- However, 64K to 96K of addresses beginning at A000 are often
- unused on PC's. On a machine equipped with a monochrome display
- adapter (MDA), display memory begins at segment B000, leaving
- 64K open from A000-AFFF; on a machine equipped with a color
- graphics adapter (CGA), display memory begins at segment B800,
- leaving 96K open from A000-B7FF.
-
- It is possible to force the EMS manager to assign memory for
- these addresses and to convince DOS that the EMS memory so
- assigned is usable by the system, resulting in as much as 736K
- of DOS-usable memory. That is what EEMRAM does.
-
- [Contrary to popular opinion, DOS is not limited to 640K; it can
- use whatever memory is available, up to a limit of 1 megabyte.
- The limiting factor is your hardware. In particular, some
- hardware such as video display adapters and fixed disk
- controllers may use some areas of memory above the 640K mark.
- Also, the DIP switches on many machines are limited to a maximum
- of 640K switch-settable; to go beyond this, it's necessary for
- software such as EEMRAM to override the switch settings.]
-
-
- If you have an EGA or VGA
- -------------------------
- As described above, EEMRAM works by assigning pages of EMS
- memory to DOS addresses beginning at A000h (just above 640K).
- EGA and VGA systems use the same area of memory, so there is a
- potential for conflicts. However, most EGA/VGA systems use the
- 64K of memory between A000 and B000 only in high resolution
- graphics modes, and briefly during mode changes; if you do not
- use high resolution graphics modes frequently, you may still be
- able to use EEMRAM.
-
- You will have to do some work with your system configuration
- file, CONFIG.SYS. We STRONGLY recommend that you check the
- following steps on a bootable diskette, not with your hard disk
- CONFIG.SYS. If you are successful, you can then make the
- apprpriate changes in your hard disk CONFIG.SYS.
-
- First, check the statement in CONFIG.SYS file that loads your
- EMS driver software. If you have a parameter that excludes the
- range of memory beginning at A000, you must remove the
- exclusion. For example, AST's REMM.SYS might be loaded like
- this:
-
- DEVICE=C:\SYS\REMM.SYS /X=A000-AFFF
-
- The /X parameter tells REMM.SYS not to permit mapping of EMS
- memory to segment A000, and it must be removed.
-
- Next, add the statement:
-
- DEVICE=[d:path]EEMEGA.SYS
-
- to the file IMMEDIATELY BEFORE the DEVICE statement that loads
- your EMS software. For example:
-
- DEVICE=C:\SYS\EEMEGA.SYS
- DEVICE=C:\SYS\REMM.SYS
-
- Now reboot your system. It should appear to run normally. Run
- EMSINFO again and check to be sure that the A000 segment now
- appears in the list of mappable segments. If it does not, you
- will have to check with your dealer or hardware manufacture to
- see if it's possible to correct the situation.
-
- If you have EEMS memory, EEMEGA uses 16K of EMS. It does not
- use any EMS memory if you have a LIM 4.0 EMS driver.
-
- When EEMRAM is active, EEMEGA.SYS will not allow any EGA/VGA
- BIOS calls to be used. Thus, your system will not be permitted
- to go into high-resolution graphics modes. If you have software
- that must be "installed" for a specific video system, you might
- want to install it for CGA or MDA rather than EGA or VGA.
-
-
- EEMRAM messages and solutions
- -----------------------------
- EEMRAM will not be able to do its job under a number of possible
- conditions. If EEMRAM reports that it has failed, it will
- display one of the following messages:
-
- EMS MANAGER IS NEITHER LIM 4.0 NOR EEMS
-
- In order to use EEMRAM, your Expanded Memory Manager (EMM)
- must conform to either the EEMS 3.2 or LIM 4.0
- specifications. Check with your dealer to see if a newer
- EMM is available for your EMS board.
-
- EXPECTED 640K OF DOS MEMORY
-
- Run MS; in order to use EEMRAM, MS must report exactly
- 655,360 bytes of total memory (640K). If MS reports less
- and you know that you do have a 640K system, it's likely
- that some other TSR or device has taken some memory from
- just below 640K. Try to locate which TSR or device is doing
- this and check with your dealer to see if there's any way to
- eliminate it. If MS reports more that 640K, perhaps you've
- already run EEMRAM.
-
- UNABLE TO RESIZE MEMORY
-
- EEMRAM must be the owner of the last block of DOS memory
- when it's run. Always run EEMRAM directly from the DOS
- prompt or from AUTOEXEC.BAT.
-
- UNABLE TO LOCATE EMS MANAGER
-
- EEMRAM wasn't able to find the Expanded Memory Manager
- (EMM). Either you don't have expanded memory, you haven't
- loaded the EMM, or another program is interfering.
-
- NO PAGES AVAILABLE AT A000
-
- In order for EEMRAM to work, it must be able to assigne
- chunks of EMS memory to DOS addresses beginning at
- segment A000. If EEMRAM reports that it can't do this, it's
- usually for one of these reasons:
-
- 1. Your EMS hardware is not capabable of mapping EMS memory
- to arbitrary memory addresses. This is true of many older
- EMS boards such as the Intel AboveBoard. There's no
- solution for this other than to purchase new hardware.
-
- 2. Your Expanded Memory Manager (EMM) doesn't support this
- function. Your EMM must conform to either the EEMS 3.2
- or the LIM 4.0 specification. Run EMSINFO; it will tell you
- which type of EMM you have. Check with your dealer to see
- if you can obtain an EEMS or LIM 4.0 EMM for your hardware.
-
- 3. Your EMM has detected that you have an EGA or VGA and has
- in effect "prohibited" mapping memory to A000, even though
- both your EMS board and the EMM are capable of such mapping.
- See the EGA/VGA section for a possible solution.
-
- NO EMS MEMORY AVAILABLE
-
- Your EMM has reported that there is no free EMS memory.
- You'll have to reduce the amount of memory used by other
- software. EEMRAM must have at least 16K free EMS memory and
- can use up to 96K on some systems.
-
- PROGRAM HAS ALREADY BEEN RUN
-
- This message will appear only under LIM 4.0 and indicates
- that EEMRAM has already been run since the last reboot.
-
- ERROR xx ACCESSING EMS MANAGER (AX=yyyy)
-
- Generic message indicating that there's a problem with the
- EMM or the hardware: the EMM is corrupted, there's a
- hardware failure, your EMM doesn't support a needed
- function, etc. The number (xx) indicates the specific error
- code returned that the EMM returned to EEMRAM. The message
- also indicates the EMS function that failed (register AX
- contents were yyyy at time of EMM function call).
-
- WARNING: UNABLE TO SAVE /S INFORMATION FOR DERAM
-
- There is insufficient memory unused in the area that
- EEMRAM/DERAM use to pass needed information back and forth.
- This is a warning message: EEMRAM itself has run successfully,
- but DERAM won't work.
-
- | EXTENDED BIOS DATA REMAPPED TO LOW MEMORY; EEMRAM REMAINING RESIDENT
- |
- | This is not an error message; it indicates that your
- | extended BIOS data area (PS/2 systems) has been relocated
- | from high memory to low memory. A small portion of EEMRAM
- | (1120 bytes) will remain resident, but you've only lost the
- | use of 96 real bytes.
-
-
- DERAM error messages
- --------------------
-
- SYSTEM ALREADY SET TO 640K
-
- DERAM has found that the system already shows 640K of DOS
- memory, so it hasn't done anything.
-
-
- EEMRAM NOT RUN WITH /S OPTION, UNABLE TO RESIZE MEMORY
-
- In order to use DERAM with EEMS memory, you must run EEMRAM
- with the /S switch. If you did run EEMRAM with /S and you
- see this message, some other program is using the same area
- of memory that EEMRAM/DERAM use to pass information back and
- forth. You will not be able to use DERAM in this case
- (fortunately, it's unlikely).
-
- ERROR xx ACCESSING EMS MANAGER (AX=yyyy)
-
- Generic message indicating that there's a problem with the
- EMM or the hardware: the EMM is corrupted, there's a
- hardware failure, your EMM doesn't support a needed
- function, etc. The number (xx) indicates the specific error
- code returned that the EMM returned to EEMRAM. The message
- also indicates the EMS function that failed (register AX
- contents were yyyy at time of EMM function call).
-
- UNABLE TO RESIZE MEMORY
-
- DERAM can't modify DOS's memory allocation blocks, so
- nothing has been done. Always run DERAM directly at the
- DOS prompt or via AUTOEXEC; don't run it as a "child" of
- some other program.
-
-
- Notes
- -----
- 1. We can't promise that EEMRAM will work with any specific
- hardware configuration. If your hardware conflicts with what
- EEMRAM does (EEMRAM won't run properly, system locks up, etc.),
- there's nothing we can do about it. However, if you know the
- exact nature of the problem and can suggest a solution, let us
- know, preferably by mail or via CompuServe. We may be able to
- make necessary additions to future versions.
-
- 2. In general, EEMRAM is not a TSR (i.e., it is not resident).
- It runs and terminates, restoring the full amount of memory to
- the system. Because EEMRAM is not a TSR, don't try to use
- MARK/RELEASE, REFEREE, POPDROP, or similar TSR managers to
- "remove" EEMRAM. EEMRAM cannot be removed by these managers.
- EEMEGA.SYS is a device driver and also cannot be removed;
- however, it uses very little memory.
-
- | As mentioned above, part of EEMRAM may remain resident if you
- | use it on a PS/2 or similar system. This is because EEMRAM may
- | have to move the 1K extended BIOS data area from high memory to
- | low memory in order to provide a large, contiguous block of
- | memory for DOS to use. Again, do NOT use a TSR manager to
- | release EEMRAM! If you do, the critical BIOS data area will be
- | lost to the system; the results are unpredictable, but nothing
- | good will happen. Note that even though 1120 bytes of EEMRAM
- | will remain resident, you have really lost only 96 bytes--the
- | remaining 1024 bytes is the BIOS data area, which was simply
- | moved lower in memory by EEMRAM.
-
- 3. EEMRAM and DERAM both return an errorlevel of 255 if they
- encounter any errors.
-
- 4. If EEMRAM needs more EMS memory than is available, it will
- use all that is available. If no EMS memory at all is
- available, it is an error.
-
-
- Versions
- --------
- 2.10 04/11/89
- Added support for relocating extended BIOS data area (PS/2).
-
- 2.00 03/30/89
- Added support for LIM 4.0 memory.
- Added EEMEGA.SYS
-
- 1.01 08/20/87
- Changed test for enhanced memory, may be a little more
- tolerant of older versions of REMM.SYS et al.
-
-
- Copyright/License/Warranty
- --------------------------
-
- This document and the program files EEMRAM.COM, DERAM.COM
- EEMEGA.SYS, MS.COM, and EMSINFO.EXE ("the software") are
- copyrighted by the author. The copyright owner hereby licenses
- you to: use the software; make as many copies of the program
- and documentation as you wish; give such copies to anyone; and
- distribute the software and documentation via electronic means.
- There is no charge for any of the above.
-
- You are specifically prohibited from charging, or requesting
- donations, for any such copies, however made; and from
- distributing the software and/or documentation with commercial
- products without prior permission. An exception is granted to
- recognized user's groups, which are authorized to charge a
- small fee (not to exceed $7) for materials, handling, postage,
- and general overhead. NO FOR-PROFIT ORGANIZATION IS AUTHORIZED
- TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF THE SOFTWARE
- OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE SOFTWARE OR
- DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
-
- THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
- ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
- OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
- ANY OTHER SUCH FEE FOR THE DISTRIBUTION. NO FOR-PROFIT
- ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
- FOR WHICH MONEY IS CHARGED WITHOUT PRIOR PERMISSION FROM THE
- COPTRIGHT OWNER.
-
- No copy of the software may be distributed or given away without
- this document; and this notice must not be removed.
-
- There is no warranty of any kind, and the copyright owner is not
- liable for damages of any kind. By using this free software,
- you agree to this.
-
- The software and documentation are:
-
- Copyright (C) 1987,1989 by
- Christopher J. Dunford
- The Cove Software Group
- Post Office Box 1072
- Columbia, Maryland 21044
-
- (301) 992-9371
- CompuServe 76703,2002 [IBMNET]
-