home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 198 / DOS6ALL.ZIP / PD0459.TXT < prev    next >
Text File  |  1993-03-10  |  14KB  |  348 lines

  1. ======================================================================
  2.   Microsoft(R) Product Support Services Application Note (Text File)
  3.    PD0459: NO EXPANDED MEMORY AVAILABLE AFTER INSTALLING EMM386.EXE
  4. ======================================================================
  5.                                                    Revision Date: 4/93
  6.                                                       NO DISK INCLUDED
  7.  
  8. The following information applies to Microsoft MS-DOS, versions 5.0
  9. and 6.0.
  10.  
  11.                              INTRODUCTION
  12.                              ============
  13.  
  14. After you install EMM386.EXE to provide access to the upper memory
  15. area (UMA), Windows versions 3.0 and 3.1 no longer provide expanded
  16. memory to your MS-DOS-based applications. This change can cause
  17. certain problems to occur.
  18.  
  19. SYMPTOMS
  20. --------
  21.  
  22. If expanded memory is no longer provided, your MS-DOS-based
  23. applications may exhibit some of the following common symptoms:
  24.  
  25. - When you start an MS-DOS-based application from within Windows, the
  26.   application displays an "Out of Memory" message and then quits.
  27.  
  28. - When you start an MS-DOS-based application from within Windows, the
  29.   application behaves erratically, and displays "Out of Memory"
  30.   messages when you try to perform certain functions.
  31.  
  32. - Windows stops responding (hangs) when you start some MS-DOS-based
  33.   applications, but you can start and run other MS-DOS-based
  34.   applications without any problems.
  35.  
  36. CAUSE
  37. -----
  38.  
  39. The DEVICE command line for EMM386.EXE contains the NOEMS switch,
  40. which tells EMM386.EXE and Windows not to provide expanded memory to
  41. MS-DOS-based applications.
  42.  
  43. SOLUTION
  44. --------
  45.  
  46. To correct this problem, edit your CONFIG.SYS file so that the DEVICE
  47. command for EMM386.EXE uses the RAM switch instead of the NOEMS
  48. switch. Procedure 1 explains how to do this. After you complete
  49. Procedure 1, if some of your memory-resident programs or device
  50. drivers fail to load into upper memory blocks (UMBs), continue with
  51. Procedure 2 and, if necessary, Procedure 3.
  52.  
  53.   NOTE: In the following three procedures, c represents your hard disk
  54.         drive.
  55.  
  56.  
  57.                PROCEDURE 1: CHANGING THE DEVICE COMMAND
  58.                ========================================
  59.  
  60. To use the RAM switch instead of the NOEMS switch, use the following
  61. steps:
  62.  
  63. 1. Use a text editor to open your CONFIG.SYS file. To edit the file
  64.    using MS-DOS Editor, type the following at the MS-DOS command
  65.    prompt, and press the ENTER key:
  66.  
  67.       edit c:\config.sys
  68.  
  69. 2. Locate the DEVICE command for EMM386.EXE. It should look similar to
  70.    the following:
  71.  
  72.       device=c:\dos\emm386.exe noems
  73.  
  74. 3. Substitute RAM for NOEMS. The corrected DEVICE command for
  75.    EMM386.EXE should look similar to the following:
  76.  
  77.       device=c:\dos\emm386.exe ram
  78.  
  79. 4. Save your CONFIG.SYS file and quit the text editor. If you're using
  80.    MS-DOS Editor, choose Exit from the File menu. When MS-DOS Editor
  81.    displays a dialog box prompting you to save your file, choose the
  82.    Yes button or press ENTER.
  83.  
  84. 5. Restart your computer by pressing CTRL+ALT+DEL.
  85.  
  86. 6. Start Windows and try to reproduce the problem. If your application
  87.    runs normally, using the NOEMS switch caused the problem and
  88.    replacing it with the RAM switch corrected it. If the problem still
  89.    occurs, call Microsoft Product Support Services for further
  90.    assistance.
  91.  
  92. After you finish this procedure, you may find some programs or device
  93. drivers now fail to load into UMBs. If so, continue with Procedure 2.
  94. To see if your programs and device drivers successfully loaded into
  95. UMBs, type the following at the MS-DOS command prompt and press ENTER:
  96.  
  97.    mem /c | more
  98.  
  99. This command displays the contents of your computer's conventional and
  100. upper memory, and shows where each program is running in memory. (For
  101. more information about the MEM /C command and UMBs, see page 320 of
  102. the "Microsoft MS-DOS User's Guide and Reference for MS-DOS 5.0". If
  103. you are using MS-DOS 6.0, type HELP at the MS-DOS command prompt.)
  104.  
  105.  
  106.                PROCEDURE 2: MAKING MORE ROOM IN THE UMA
  107.                ========================================
  108.                                    
  109. Certain address ranges in the UMA are normally reserved for use by
  110. hardware adapters. EMM386.EXE usually ignores these ranges and does
  111. not use them for UMBs. On most systems, however, adapters do not use
  112. all the reserved address ranges. You can instruct EMM386.EXE to use
  113. these empty address ranges, thereby increasing the number of programs
  114. and device drivers that you load into UMBs.
  115.  
  116. If you have MS-DOS 6.0, you can use the MemMaker program to maximize
  117. EMM386.EXE's use of the UMA. To do so, use the following steps:
  118.  
  119. 1. Start MemMaker by typing "MEMMAKER" at the MS-DOS command prompt and
  120.    pressing ENTER.
  121.  
  122. 2. When you are prompted to choose express or custom setup, choose
  123.    Custom Setup.
  124.  
  125. 3. When you are asked if you use any programs that need expanded
  126.    memory, choose Yes.
  127.  
  128. 4. In the Advanced Options screen make the following choices:
  129.  
  130.    Specify which drivers and TSRs to include in         No
  131.    optimization?
  132.    
  133.    Scan the upper memory area aggressively?             Yes
  134.    
  135.    Optimize upper memory for use with Windows?          No
  136.    
  137.    Use monochrome region (B000-B7FF) for running        No
  138.    programs?
  139.    
  140.    Keep current EMM386 memory exclusions and            Yes
  141.    inclusions?
  142.    
  143.    Move Extended BIOS Data Area from conventional       Yes
  144.    to upper memory?
  145.    
  146.    
  147.     NOTE: If your computer does not have a monochrome monitor, choose
  148.     Yes in response to the question "Use monochrome region (B000-B7FF)
  149.     for running programs?"
  150.    
  151. 5. After MemMaker restarts your computer the last time, use the MEM /C
  152.    | MORE command to see if your programs successfully loaded into
  153.    UMBs.
  154.  
  155.    If your programs and device drivers are running in UMBs, and your
  156.    MS-DOS-based application works properly and is receiving the
  157.    expanded memory it needs, you have corrected the problem. If not,
  158.    continue with Procedure 3.
  159.  
  160. If you have MS-DOS 5.0, use the following steps to configure
  161. EMM386.EXE's use of the UMA:
  162.  
  163. 1. Create an MS-DOS 5.0 startup disk. To do so, insert a formatted
  164.    floppy disk in drive A, type the following at the MS-DOS command
  165.    prompt, and press ENTER:
  166.  
  167.       sys c: a:
  168.  
  169. 2. Copy your CONFIG.SYS file to the startup disk by typing the
  170.    following:
  171.  
  172.       copy c:\config.sys a:\
  173.  
  174. 3. Use a text editor to open your original CONFIG.SYS file. To edit the
  175.    file using MS-DOS Editor, type the following at the MS-DOS command
  176.    prompt and press ENTER:
  177.  
  178.       edit c:\config.sys
  179.  
  180. 4. Locate the DEVICE command for EMM386.EXE, and insert the i switch
  181.    before the RAM switch. The i switch instructs EMM386.EXE to use an
  182.    address range in the UMA for UMBs. The value you specify for the i
  183.    switch depends on your computer and monitor type.
  184.  
  185.     NOTE: In the following examples, hexadecimal addresses consist of
  186.     the letters A-F and numbers. All "0"s represent zeros, not
  187.     letters.
  188.  
  189.    - If your computer has a monochrome monitor but is not an IBM(R)
  190.      PS/2(R), add the i=E000-EFFF switch before the RAM switch, as
  191.      follows:
  192.    
  193.          device=c:\dos\emm386.exe i=E000-EFFF ram
  194.  
  195.    - If your computer is an IBM PS/2 but does not have a monochrome
  196.      monitor, add the i=B000-B7FF switch before the RAM switch, as
  197.      follows:
  198.    
  199.          device=c:\dos\emm386.exe i=B000-B7FF ram
  200.  
  201.    - If your computer is not an IBM PS/2 and does not have a
  202.      monochrome monitor, add the i=E000-EFFF and the i=B000-B7FF
  203.      switches before the  switch, as follows:
  204.    
  205.          device=c:\dos\emm386.exe i=E000-EFFF i=B000-B7FF ram
  206.  
  207.    - If your computer is an IBM PS/2 with a monochrome monitor, skip
  208.      to Procedure 3.
  209.    
  210. 5. Save your changes and exit the text editor. If you're using MS-DOS
  211.    Editor, choose Exit from the File menu. When MS-DOS Editor displays
  212.    a dialog box prompting you to save your file, choose the Yes button
  213.    or press ENTER.
  214.  
  215. 6. Restart your computer by pressing CTRL+ALT+DEL.
  216.  
  217.    If your computer fails when you start it, the memory range you
  218.    specified for EMM386.EXE is probably being used by hardware
  219.    adapters. In this case, insert your startup disk in drive A and
  220.    restart your computer. Then, edit your CONFIG.SYS file and remove
  221.    the i switch(es) you added to the DEVICE command for EMM386.EXE.
  222.    Call Microsoft Product Support Services for further assistance.
  223.  
  224. 7. After your computer restarts, see if your programs successfully
  225.    loaded into UMBs by using the "MEM /C | MORE" command.
  226.  
  227.    You have corrected the problem if your programs and device drivers
  228.    are running in UMBs and your MS-DOS-based application still works
  229.    properly and is receiving the expanded memory it needs.
  230.    If you still cannot load programs into UMBs, continue with
  231.    Procedure 3.
  232.  
  233.  
  234.      PROCEDURE 3: REDUCING THE SPACE ALLOCATED FOR EXPANDED MEMORY
  235.      =============================================================
  236.  
  237. If you start EMM386.EXE with the RAM switch and programs or device
  238. drivers do not load into UMBs when your computer starts, your system
  239. may not have enough UMBs to run those programs or device drivers. The
  240. RAM switch sets aside 64 kilobytes (K) of the UMA as a page frame for
  241. use with expanded memory. The remaining UMBs may not be large enough
  242. to run your programs, even if you were able to include additional
  243. addresses by following Procedure 2. In such cases, you can instruct
  244. EMM386.EXE to reduce the 64K page frame to 16K, making more UMBs
  245. available.
  246.  
  247.    NOTE: Use this procedure only if your applications use expanded
  248.    memory according to the Lotus-Intel-Microsoft Expanded Memory
  249.    Specification (LIM EMS) version 4.0. Applications that follow the
  250.    LIM EMS version 3.2 need the full 64K page frame, and cannot use
  251.    expanded memory if you follow this procedure. If you are not sure
  252.    which LIM EMS version your application needs, contact your
  253.    application manufacturer.
  254.  
  255. To reduce the size of the 64K page frame and increase the number of
  256. available UMBs, use the following steps:
  257.  
  258. 1. Type EMM386 at the MS-DOS command prompt and press ENTER:
  259.  
  260.    EMM386.EXE displays information about its current memory management
  261.    activities. Locate the line that reads "Page frame segment" and
  262.    write down the hexadecimal address that appears on that line. In
  263.    the following example, the page frame segment address starts at
  264.    E000:
  265.  
  266.       Page frame segment . . . . . . . . . E000 H
  267.  
  268. 2. Use a text editor to open your original CONFIG.SYS file. To edit the
  269.    file using MS-DOS Editor, type the following at the MS-DOS command
  270.    prompt and press ENTER:
  271.  
  272.       edit c:\config.sys
  273.  
  274. 3. Locate the DEVICE command for EMM386.EXE, and insert the P0 switch
  275.    before the RAM switch. The P0 switch should specify the address you
  276.    noted in step 1. For example, if the page-frame segment address
  277.    starts at E000, the DEVICE command appears similar to the
  278.    following:
  279.  
  280.       device=c:\dos\emm386.exe p0=E000 ram
  281.  
  282.     NOTE: In the P0=E000 switch, the "0"s represent zeros.
  283.  
  284. 4. Save your changes and quit the text editor. If you're using MS-DOS
  285.    Editor, choose Exit from the File menu. When MS-DOS Editor displays
  286.    a dialog box prompting you to save your file, choose the Yes button
  287.    or press ENTER.
  288.  
  289. 5. Restart your computer by pressing CTRL+ALT+DEL.
  290.  
  291.    If your computer fails when you start it and you have MS-DOS 5.0,
  292.    insert your startup disk in drive A and restart your computer. Edit
  293.    your CONFIG.SYS file and remove the P0 switch you added to the
  294.    DEVICE command for EMM386.EXE. Then, save the file, restart your
  295.    computer, and repeat Procedure 3. Be sure to carefully note the
  296.    page-frame segment address.
  297.  
  298.    If your computer fails when you start it and you have MS-DOS 6.0,
  299.    restart your computer and press the F8 key. When you are asked if
  300.    you want to load EMM386.EXE, choose No. Edit your CONFIG.SYS file
  301.    and remove the P0 switch you added to the DEVICE command for
  302.    EMM386.EXE. Then, save the file, restart your computer, and repeat
  303.    Procedure 3. Be sure to carefully note the page-frame segment
  304.    address.
  305.  
  306. 6. After your computer starts, see if your programs were successfully
  307.    loaded into UMBs by using the MEM /C | MORE command.
  308.  
  309. You have corrected the problem if your programs and device drivers are
  310. running in UMBs and your MS-DOS-based applications still work properly
  311. and are receiving the expanded memory they need.
  312.  
  313. If your programs and device drivers still do not load into UMBs, it is
  314. possible that your system simply does not have enough UMBs available
  315. to run those programs. See your hardware documentation for information
  316. about which addresses in the UMA are in use, or call Microsoft Product
  317. Support Services for further assistance.
  318.  
  319. If your applications do not seem to be receiving the expanded memory
  320. they need, they may require LIM EMS version 3.2. If this is the case,
  321. you should remove the P0 switch.
  322.  
  323.                         ADDITIONAL INFORMATION
  324.                         ======================
  325.     
  326. For MS-DOS 5.0
  327. ==============
  328.  
  329. For more information about the "MEM /C" command and UMBs, see page 320
  330. of the "Microsoft MS-DOS User's Guide and Reference".
  331.  
  332. For more information about EMM386.EXE and its startup parameters, see
  333. pages 605-609 of the "Microsoft MS-DOS User's Guide and Reference."
  334.  
  335. For MS-DOS 6.0
  336. ==============
  337.  
  338. Type HELP at the MS-DOS command prompt and search on Mem, Emm386, or
  339. EMM386.EXE.
  340.  
  341. Also 
  342. ====
  343.  
  344. "Microsoft Windows User's Guide" explains how to use Windows program
  345. information files (PIFs) to provide expanded memory to MS-DOS-based
  346. applications.
  347.  
  348.