home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / MEMORIA / EEMRAM20.ZIP / EEMRAM.DOC < prev    next >
Encoding:
Text File  |  1989-03-30  |  20.7 KB  |  472 lines

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