home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / for-dos / emmram21.arj / EEMRAM.DOC < prev    next >
Text File  |  1989-04-11  |  23KB  |  505 lines

  1.                                   EEMRAM 2.10
  2.  
  3.  
  4.         Purpose
  5.         -------
  6.         EEMRAM is a small utility that can expand your DOS memory from
  7.         640K to a maximum of 736K using Enhanced or LIM 4.0 expanded
  8.         memory.  To use EEMRAM, you must have a memory board that
  9.         provides EEM or LIM4 memory.  A companion program (DERAM) can be
  10.         used to restore the "normal" 640K if necessary.  EEMRAM will
  11.         probably NOT work with Intel EMS products.
  12.  
  13.  
  14.         Before you run EEMRAM
  15.         ---------------------
  16.         In order for EEMRAM to work, several conditions must be met.
  17.         There's more about this elsewhere in this document, but for now
  18.         run these two checks.
  19.  
  20.       |     1. Run MS (just type "MS") and verify that the total free
  21.       |     memory is 655,360 bytes (640K) or 654,336 bytes (639K; PS/2
  22.       |     systems only).  If any other amount is displayed, EEMRAM
  23.       |     cannot be used.
  24.  
  25.             2. Run EMSINFO (just type "EMSINFO") and note the results.
  26.             If they scroll beyond one screenful, you can print the
  27.             results by typing:
  28.  
  29.                 EMSINFO > PRN
  30.  
  31.             EMSINFO must indicate that the EMM type is either "EEMS" or
  32.             "LIM 4.x".  Also, the list of memory segments to which EMS
  33.             memory can be mapped must include the segment "A000".
  34.  
  35.         If EMSINFO does not indicate that segment A000 is available, you
  36.         probably have an EGA or VGA in your system and/or are using an
  37.         Intel EMS board.  If the former, see the section titled "If you
  38.         have an EGA or VGA"; if the latter, you cannot use EEMRAM.
  39.  
  40.         If EMSINFO indicates that EEMRAM cannot be used, and you aren't
  41.         clear on exactly why, just run EEMRAM.  No harm will be done,
  42.         and EEMRAM will display an error message indicating why it won't
  43.         work.  Then look in "EEMRAM error messages" below for possible
  44.         causes and solutions.
  45.  
  46.  
  47.         Running EEMRAM
  48.         --------------
  49.         Here is EEMRAM's syntax:
  50.  
  51.             eemram [/#] [/S]
  52.  
  53.         When run, EEMRAM will increase DOS-usable memory DOS from 640K
  54.         to a maximum of 736K.  The exact amount depends on your hardware
  55.         configuration, particularly on what type of display adapter you
  56.         have installed.  You may want to run EEMRAM via your AUTOEXEC
  57.         startup batch, ideally as the first external program run by the
  58.         batch:
  59.  
  60.             echo off
  61.             cd c:\util
  62.             eemram
  63.             ...
  64.  
  65.         The optional /S parameter is required if you have EEMS memory
  66.         and want to be able to use DERAM (about which, more later).  It
  67.         is not necessary if you have LIM 4.0-compatible memory or don't
  68.         need DERAM.
  69.  
  70.         The optional /# parameter limits EEMRAM's use of EEMS memory to
  71.         some amount less than the maximum possible.  See the next
  72.         section.
  73.  
  74.       | If you have a PS/2 system, a small portion of EEMRAM (1120
  75.       | bytes) may remain resident.  This is because EEMRAM may have to
  76.       | relocate the extended BIOS data area (1K) from high memory to
  77.       | low memory.  DO NOT USE "TSR MANAGERS" SUCH AS MARK AND RELEASE
  78.       | TO RELEASE EEMRAM!
  79.  
  80.         To see the effects of EEMRAM, just run MS (Memory Size) or
  81.         CHKDSK before and after running EEMRAM.
  82.  
  83.  
  84.         Limiting Memory Size: /# parameter
  85.         ----------------------------------
  86.         The optional EEMRAM /# parameter can be used to explicitly
  87.         reduce the number of 16K pages of EMS memory assigned to DOS
  88.         (see "Memory Allocation Information" for more information about
  89.         memory use).  "#" is a decimal digit from 1 to 6 that specifies
  90.         how many pages you want assigned.
  91.  
  92.         EEMRAM will normally assign all contiguous pages available from
  93.         A000 to B400 (6 pages maximum, or 96K).  However, there may be
  94.         cases in which you don't want all of this used, and that's what
  95.         /# does.  An example of /# use:
  96.  
  97.             C> eemram /2
  98.  
  99.         The /2 means "use only two 16K pages of EEMS memory."
  100.  
  101.         If you specify more pages than are available, EEMRAM will only
  102.         use the number available, in effect ignoring your parameter.
  103.  
  104.         Here is a map showing the effects of all possible /#:
  105.  
  106.             Page       /1  /2  /3  /4  /5  /6
  107.             ----       --  --  --  --  --  --
  108.             A000       XX  XX  XX  XX  XX  XX
  109.             A400           XX  XX  XX  XX  XX
  110.             A800               XX  XX  XX  XX
  111.             AC00                   XX  XX  XX
  112.             B000                       XX  XX <---MDA memory begins
  113.             B400                           XX
  114.             B800                              <---CGA memory begins
  115.                        --  --  --  --  --  --
  116.             KB added   16  32  48  64  80  96
  117.             Total KB  656 672 688 704 720 736
  118.  
  119.  
  120.  
  121.         DERAM
  122.         -----
  123.         EEMRAM works by mapping EEMS memory to DOS addresses beginning
  124.         at memory segment A000; EGA/VGA systems also use this area of
  125.         memory, so you will have a conflict using EGA/VGA hi-res
  126.         graphics modes in an EEMRAM environment.  You may also find that
  127.         you have only a few programs that can really use the extra
  128.         EEMRAM memory and that you prefer to leave the EMS memory free
  129.         most of the time.
  130.  
  131.         The DERAM program reverses the effects of EEMRAM:  it restores
  132.         the original 640K of DOS memory and releases the EMS memory
  133.         EEMRAM was using back to the free memory pool.  This may allow
  134.         you to use EGA/VGA hi-res modes.
  135.  
  136.         To restore the original 640K system, just run DERAM:
  137.  
  138.             C> deram
  139.  
  140.                 [NOTE:  to use DERAM with EEMS memory, you must
  141.                 have run EEMRAM with the /S option:
  142.  
  143.                     C> eemram /s
  144.  
  145.                 This saves certain information the DERAM needs.
  146.                 The /S switch is not necessary if you have LIM
  147.                 4.0-compatible memory.  When you use /S, EEMRAM
  148.                 places in memory a small amount (four bytes) of
  149.                 information that DERAM needs.  The information
  150.                 is stored in the little used Interapplications
  151.                 Communication Area (IACA).  If EEMRAM cannot
  152.                 find four consecutive unused bytes in this area,
  153.                 it cannot store the information and DERAM won't
  154.                 work.]
  155.  
  156.         As an example of using EEMRAM and DERAM, suppose that you only
  157.         want to have the extra memory available for one program, your
  158.         word processor BESTWP.  The following command sequence will do
  159.         the trick:
  160.  
  161.             C> eemram /s            [/S needed only for EEMS]
  162.             C> bestwp
  163.             C> deram
  164.  
  165.         You can enter these commands manually or make a small batch file
  166.         or PCED synonym.
  167.  
  168.         The opposite situation holds where you want to run with extra
  169.         memory most of the time, but release it before running the EGA
  170.         graphics program GREATGFX.  The following commands may help:
  171.  
  172.             C> deram
  173.             C> greatgfx
  174.             C> eemram /s            [/S needed only for EEMS]
  175.  
  176.         IMPORTANT NOTE: it is not possible to guarantee that the system
  177.         will operate correctly after DERAM.  Some programs, especially
  178.         system software, TSRs, and device drivers, assume that the
  179.         amount of memory in your system is fixed--that it will not
  180.         change during a session.  However, that is exactly the effect of
  181.         DERAM.  If you find that something doesn't run after DERAM,
  182.         you'll just have to reboot without EEMRAM.
  183.  
  184.  
  185.         Memory Allocation Information
  186.         -----------------------------
  187.         When a typical EEMS or LIM 4.0 memory board is installed, it
  188.         "backfills" DOS memory to 640K; that is, some of the memory on
  189.         the EEMS board is permanently assigned to DOS in such a way that
  190.         the system will appear to DOS to have 640K of main memory.  This
  191.         640K occupies RAM addresses 00000 to 9FFFFF, or, in the more
  192.         traditional segment notation, memory segments 0000 to 9FFF.
  193.  
  194.         Segments beginning at A000 (the next segment above 9FFF) are not
  195.         assigned to DOS by the EMS manager.
  196.  
  197.         However, 64K to 96K of addresses beginning at A000 are often
  198.         unused on PC's.  On a machine equipped with a monochrome display
  199.         adapter (MDA), display memory begins at segment B000, leaving
  200.         64K open from A000-AFFF; on a machine equipped with a color
  201.         graphics adapter (CGA), display memory begins at segment B800,
  202.         leaving 96K open from A000-B7FF.
  203.  
  204.         It is possible to force the EMS manager to assign memory for
  205.         these addresses and to convince DOS that the EMS memory so
  206.         assigned is usable by the system, resulting in as much as 736K
  207.         of DOS-usable memory.  That is what EEMRAM does.
  208.  
  209.         [Contrary to popular opinion, DOS is not limited to 640K; it can
  210.         use whatever memory is available, up to a limit of 1 megabyte.
  211.         The limiting factor is your hardware.  In particular, some
  212.         hardware such as video display adapters and fixed disk
  213.         controllers may use some areas of memory above the 640K mark.
  214.         Also, the DIP switches on many machines are limited to a maximum
  215.         of 640K switch-settable; to go beyond this, it's necessary for
  216.         software such as EEMRAM to override the switch settings.]
  217.  
  218.  
  219.         If you have an EGA or VGA
  220.         -------------------------
  221.         As described above, EEMRAM works by assigning pages of EMS
  222.         memory to DOS addresses beginning at A000h (just above 640K).
  223.         EGA and VGA systems use the same area of memory, so there is a
  224.         potential for conflicts.  However, most EGA/VGA systems use the
  225.         64K of memory between A000 and B000 only in high resolution
  226.         graphics modes, and briefly during mode changes; if you do not
  227.         use high resolution graphics modes frequently, you may still be
  228.         able to use EEMRAM.
  229.  
  230.         You will have to do some work with your system configuration
  231.         file, CONFIG.SYS.  We STRONGLY recommend that you check the
  232.         following steps on a bootable diskette, not with your hard disk
  233.         CONFIG.SYS.  If you are successful, you can then make the
  234.         apprpriate changes in your hard disk CONFIG.SYS.
  235.  
  236.         First, check the statement in CONFIG.SYS file that loads your
  237.         EMS driver software.  If you have a parameter that excludes the
  238.         range of memory beginning at A000, you must remove the
  239.         exclusion.  For example, AST's REMM.SYS might be loaded like
  240.         this:
  241.  
  242.             DEVICE=C:\SYS\REMM.SYS /X=A000-AFFF
  243.  
  244.         The /X parameter tells REMM.SYS not to permit mapping of EMS
  245.         memory to segment A000, and it must be removed.
  246.  
  247.         Next, add the statement:
  248.  
  249.             DEVICE=[d:path]EEMEGA.SYS
  250.  
  251.         to the file IMMEDIATELY BEFORE the DEVICE statement that loads
  252.         your EMS software.  For example:
  253.  
  254.             DEVICE=C:\SYS\EEMEGA.SYS
  255.             DEVICE=C:\SYS\REMM.SYS
  256.  
  257.         Now reboot your system.  It should appear to run normally.  Run
  258.         EMSINFO again and check to be sure that the A000 segment now
  259.         appears in the list of mappable segments.  If it does not, you
  260.         will have to check with your dealer or hardware manufacture to
  261.         see if it's possible to correct the situation.
  262.  
  263.         If you have EEMS memory, EEMEGA uses 16K of EMS.  It does not
  264.         use any EMS memory if you have a LIM 4.0 EMS driver.
  265.  
  266.         When EEMRAM is active, EEMEGA.SYS will not allow any EGA/VGA
  267.         BIOS calls to be used.  Thus, your system will not be permitted
  268.         to go into high-resolution graphics modes.  If you have software
  269.         that must be "installed" for a specific video system, you might
  270.         want to install it for CGA or MDA rather than EGA or VGA.
  271.  
  272.  
  273.         EEMRAM messages and solutions
  274.         -----------------------------
  275.         EEMRAM will not be able to do its job under a number of possible
  276.         conditions.  If EEMRAM reports that it has failed, it will
  277.         display one of the following messages:
  278.  
  279.         EMS MANAGER IS NEITHER LIM 4.0 NOR EEMS
  280.  
  281.             In order to use EEMRAM, your Expanded Memory Manager (EMM)
  282.             must conform to either the EEMS 3.2 or LIM 4.0
  283.             specifications.  Check with your dealer to see if a newer
  284.             EMM is available for your EMS board.
  285.  
  286.         EXPECTED 640K OF DOS MEMORY
  287.  
  288.             Run MS; in order to use EEMRAM, MS must report exactly
  289.             655,360 bytes of total memory (640K).  If MS reports less
  290.             and you know that you do have a 640K system, it's likely
  291.             that some other TSR or device has taken some memory from
  292.             just below 640K.  Try to locate which TSR or device is doing
  293.             this and check with your dealer to see if there's any way to
  294.             eliminate it.  If MS reports more that 640K, perhaps you've
  295.             already run EEMRAM.
  296.  
  297.         UNABLE TO RESIZE MEMORY
  298.  
  299.             EEMRAM must be the owner of the last block of DOS memory
  300.             when it's run.  Always run EEMRAM directly from the DOS
  301.             prompt or from AUTOEXEC.BAT.
  302.  
  303.         UNABLE TO LOCATE EMS MANAGER
  304.  
  305.             EEMRAM wasn't able to find the Expanded Memory Manager
  306.             (EMM).  Either you don't have expanded memory, you haven't
  307.             loaded the EMM, or another program is interfering.
  308.  
  309.         NO PAGES AVAILABLE AT A000
  310.  
  311.             In order for EEMRAM to work, it must be able to assigne
  312.             chunks of EMS memory to DOS addresses beginning at
  313.             segment A000.  If EEMRAM reports that it can't do this, it's
  314.             usually for one of these reasons:
  315.  
  316.             1. Your EMS hardware is not capabable of mapping EMS memory
  317.             to arbitrary memory addresses.  This is true of many older
  318.             EMS boards such as the Intel AboveBoard.  There's no
  319.             solution for this other than to purchase new hardware.
  320.  
  321.             2. Your Expanded Memory Manager (EMM) doesn't support this
  322.             function.  Your EMM must conform to either the EEMS 3.2
  323.             or the LIM 4.0 specification.  Run EMSINFO; it will tell you
  324.             which type of EMM you have.  Check with your dealer to see
  325.             if you can obtain an EEMS or LIM 4.0 EMM for your hardware.
  326.  
  327.             3. Your EMM has detected that you have an EGA or VGA and has
  328.             in effect "prohibited" mapping memory to A000, even though
  329.             both your EMS board and the EMM are capable of such mapping.
  330.             See the EGA/VGA section for a possible solution.
  331.  
  332.         NO EMS MEMORY AVAILABLE
  333.  
  334.             Your EMM has reported that there is no free EMS memory.
  335.             You'll have to reduce the amount of memory used by other
  336.             software.  EEMRAM must have at least 16K free EMS memory and
  337.             can use up to 96K on some systems.
  338.  
  339.         PROGRAM HAS ALREADY BEEN RUN
  340.  
  341.             This message will appear only under LIM 4.0 and indicates
  342.             that EEMRAM has already been run since the last reboot.
  343.  
  344.         ERROR xx ACCESSING EMS MANAGER (AX=yyyy)
  345.  
  346.             Generic message indicating that there's a problem with the
  347.             EMM or the hardware:  the EMM is corrupted, there's a
  348.             hardware failure, your EMM doesn't support a needed
  349.             function, etc.  The number (xx) indicates the specific error
  350.             code returned that the EMM returned to EEMRAM.  The message
  351.             also indicates the EMS function that failed (register AX
  352.             contents were yyyy at time of EMM function call).
  353.  
  354.         WARNING: UNABLE TO SAVE /S INFORMATION FOR DERAM
  355.  
  356.             There is insufficient memory unused in the area that
  357.             EEMRAM/DERAM use to pass needed information back and forth.
  358.             This is a warning message: EEMRAM itself has run successfully,
  359.             but DERAM won't work.
  360.  
  361.       | EXTENDED BIOS DATA REMAPPED TO LOW MEMORY; EEMRAM REMAINING RESIDENT
  362.       |
  363.       |     This is not an error message; it indicates that your
  364.       |     extended BIOS data area (PS/2 systems) has been relocated
  365.       |     from high memory to low memory.  A small portion of EEMRAM
  366.       |     (1120 bytes) will remain resident, but you've only lost the
  367.       |     use of 96 real bytes.
  368.  
  369.  
  370.         DERAM error messages
  371.         --------------------
  372.  
  373.         SYSTEM ALREADY SET TO 640K
  374.  
  375.             DERAM has found that the system already shows 640K of DOS
  376.             memory, so it hasn't done anything.
  377.  
  378.  
  379.         EEMRAM NOT RUN WITH /S OPTION, UNABLE TO RESIZE MEMORY
  380.  
  381.             In order to use DERAM with EEMS memory, you must run EEMRAM
  382.             with the /S switch.  If you did run EEMRAM with /S and you
  383.             see this message, some other program is using the same area
  384.             of memory that EEMRAM/DERAM use to pass information back and
  385.             forth.  You will not be able to use DERAM in this case
  386.             (fortunately, it's unlikely).
  387.  
  388.         ERROR xx ACCESSING EMS MANAGER (AX=yyyy)
  389.  
  390.             Generic message indicating that there's a problem with the
  391.             EMM or the hardware:  the EMM is corrupted, there's a
  392.             hardware failure, your EMM doesn't support a needed
  393.             function, etc.  The number (xx) indicates the specific error
  394.             code returned that the EMM returned to EEMRAM.  The message
  395.             also indicates the EMS function that failed (register AX
  396.             contents were yyyy at time of EMM function call).
  397.  
  398.         UNABLE TO RESIZE MEMORY
  399.  
  400.             DERAM can't modify DOS's memory allocation blocks, so
  401.             nothing has been done.  Always run DERAM directly at the
  402.             DOS prompt or via AUTOEXEC; don't run it as a "child" of
  403.             some other program.
  404.  
  405.  
  406.         Notes
  407.         -----
  408.         1. We can't promise that EEMRAM will work with any specific
  409.         hardware configuration.  If your hardware conflicts with what
  410.         EEMRAM does (EEMRAM won't run properly, system locks up, etc.),
  411.         there's nothing we can do about it.  However, if you know the
  412.         exact nature of the problem and can suggest a solution, let us
  413.         know, preferably by mail or via CompuServe.  We may be able to
  414.         make necessary additions to future versions.
  415.  
  416.         2. In general, EEMRAM is not a TSR (i.e., it is not resident).
  417.         It runs and terminates, restoring the full amount of memory to
  418.         the system.  Because EEMRAM is not a TSR, don't try to use
  419.         MARK/RELEASE, REFEREE, POPDROP, or similar TSR managers to
  420.         "remove" EEMRAM.  EEMRAM cannot be removed by these managers.
  421.         EEMEGA.SYS is a device driver and also cannot be removed;
  422.         however, it uses very little memory.
  423.  
  424.       | As mentioned above, part of EEMRAM may remain resident if you
  425.       | use it on a PS/2 or similar system.  This is because EEMRAM may
  426.       | have to move the 1K extended BIOS data area from high memory to
  427.       | low memory in order to provide a large, contiguous block of
  428.       | memory for DOS to use.  Again, do NOT use a TSR manager to
  429.       | release EEMRAM!  If you do, the critical BIOS data area will be
  430.       | lost to the system; the results are unpredictable, but nothing
  431.       | good will happen.  Note that even though 1120 bytes of EEMRAM
  432.       | will remain resident, you have really lost only 96 bytes--the
  433.       | remaining 1024 bytes is the BIOS data area, which was simply
  434.       | moved lower in memory by EEMRAM.
  435.  
  436.         3. EEMRAM and DERAM both return an errorlevel of 255 if they
  437.         encounter any errors.
  438.  
  439.         4. If EEMRAM needs more EMS memory than is available, it will
  440.         use all that is available.  If no EMS memory at all is
  441.         available, it is an error.
  442.  
  443.  
  444.         Versions
  445.         --------
  446.         2.10 04/11/89
  447.             Added support for relocating extended BIOS data area (PS/2).
  448.  
  449.         2.00 03/30/89
  450.             Added support for LIM 4.0 memory.
  451.             Added EEMEGA.SYS
  452.  
  453.         1.01 08/20/87
  454.             Changed test for enhanced memory, may be a little more
  455.             tolerant of older versions of REMM.SYS et al.
  456.  
  457.  
  458.         Copyright/License/Warranty
  459.         --------------------------
  460.  
  461.         This document and the program files EEMRAM.COM, DERAM.COM
  462.         EEMEGA.SYS, MS.COM, and EMSINFO.EXE ("the software") are
  463.         copyrighted by the author.  The copyright owner hereby licenses
  464.         you to: use the software; make as many copies of the program
  465.         and documentation as you wish; give such copies to anyone; and
  466.         distribute the software and documentation via electronic means.
  467.         There is no charge for any of the above.
  468.  
  469.         You are specifically prohibited from charging, or requesting
  470.         donations, for any such copies, however made; and from
  471.         distributing the software and/or documentation with commercial
  472.         products without prior permission.  An exception is granted to
  473.         recognized user's groups, which are authorized to charge a
  474.         small fee (not to exceed $7) for materials, handling, postage,
  475.         and general overhead.  NO FOR-PROFIT ORGANIZATION IS AUTHORIZED
  476.         TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF THE SOFTWARE
  477.         OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE SOFTWARE OR
  478.         DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
  479.  
  480.         THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
  481.         ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
  482.         OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
  483.         ANY OTHER SUCH FEE FOR THE DISTRIBUTION.  NO FOR-PROFIT
  484.         ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
  485.         FOR WHICH MONEY IS CHARGED WITHOUT PRIOR PERMISSION FROM THE
  486.         COPTRIGHT OWNER.
  487.  
  488.         No copy of the software may be distributed or given away without
  489.         this document; and this notice must not be removed.
  490.  
  491.         There is no warranty of any kind, and the copyright owner is not
  492.         liable for damages of any kind.  By using this free software,
  493.         you agree to this.
  494.  
  495.         The software and documentation are:
  496.  
  497.                            Copyright (C) 1987,1989 by
  498.                              Christopher J. Dunford
  499.                             The Cove Software Group
  500.                               Post Office Box 1072
  501.                             Columbia, Maryland 21044
  502.  
  503.                                 (301) 992-9371
  504.                         CompuServe 76703,2002 [IBMNET]
  505.