=============================================================================== INTRODUCTION TO PS2EMM.TXT =============================================================================== The expanded memory manager for the IBM Personal System/2 80286 Memory Expansion Option is named PS2EMM.SYS. This device driver conforms to the LIM 4.0 Expanded Memory Specification (EMS). Prior to installing this driver, please consult IBM's instructions for installing IBM Personal System/2 Memory Expansion Option board(s). *NOTE: This driver does NOT work with the "IBM 80286 Expanded Memory Adapter /A", also known as the XMA board. If you wish to use the XMA board with WINDOWS 2.10, you will need to have a LIM 4.0 compatable Expanded Memory Manager (EMM), which is not supplied with WINDOWS 2.10. =============================================================================== USING THE IBM PS/2 EXPANDED MEMORY OPTION WITH WINDOWS =============================================================================== The PS2EMM.SYS driver is installed in the CONFIG.SYS file. This will install the Expanded Memory Manager (EMM) at boot time. Once installed correcty, WINDOWS can utilize memory beyond the 640KB barrier for memory management. Applications such as EXCEL, can make use of expanded memory for its' data. DEVICE=[drive:] [\path\] PS2EMM.SYS [/p=xxxx] [/x=mmmm-nnnn] [/e] /p=xxxx (Page Frame Address Location) This parameter allows you to specify directly where the EMM page frame should be located in memory. This 4 digit number (hexidecimal) represents the segment address where four 16KB pages (also called banks) can reside. The page frame can be located anywhere bewteen segments A000 and E000. Once the segment address is specified, it will occupy the next 64KB of contiguous memory. For example, "/p=C200" will locate the page frame between C200-D1FF. The page frame address must be an even multiple of 512 Bytes (C000, C200, C400 ...). /x=mmmm-nnnn (Memory Exclusion Range) This parameter allows you to specify a range of memory which will not be used for mapping expanded memory pages. This is most likely to be used if other Expansion Option Board(s) are installed. If other devices utilize memory between A000 and E000, then there is a possibility of conflict with the EMM and that device. For Example, The IBM Token-Ring Network Adapter utilizes memory between A000-E000 for its' RAM/ROM usage. If those address are not excluded, then there could be some contention between the EMM and the Token-Ring. See the AUTOMATIC DETECTION section for further details. /e (Small Frame EMM Option)\ This switch specifies that SMALL FRAME EMM is to be used. The default is LARGE FRAME EMM. By specifying this switch, you are in effect leaving the motherboard memory ENABLED (memory below 640KB). When enabled, that memory below 640KB will not be made mappable for the EMM. This will conserver conventional memory used by WINDOWS under certain circumstances. By excluding this switch you are telling the driver to DISABLE the motherboard memory and make that memory mappable. This maximizes the amount of memory available for mapping. The criteria you should use in determining whether to use the switch or not depends on the amount of memory installed in your machine. If you have 3MB of memory or above, then LARGE FRAME EMM would be most beneficial to you. If you have less than 3MB installed, then SMALL FRAME would be desirable. *NOTE: If you use Microsoft Excel, you must add the following line below the [Microsoft Excel] header in the WIN.INI file. for information on modifying your WIN.INI file, see Appendix A, "Customizing Your WIN.INI file," in the Microsoft Windows User's Guide. [Microsoft Excel] ExtendedMemory=0 Only add this line if you use the /e parameter on the PS2EMM.SYS line in your config.sys file. Examples: 1. device=c:\foo\PS2EMM.SYS /p=C000 * this will force the page frame to be loaded at the C000 segment. This will occupy the ranges C000-CFFF. 2. device=c:\foo\PS2EMM.SYS /x=D200-D7FF * this will exclude the segments between D200 and D7FF from being mapped by the expanded memory manager. This option is most likely to be used to exclude memory begin used by other cards (such network cards) which need a particular range of memory for their own use. The memory that these cards use must not be mappable. 3. device=c:\foo\PS2EMM.SYS /p=D000 /x=C200-CBFF * this specifys the pageframe to be loaded at the address D000 and to occupy the next 64KB (D000-DFFF). The range C200-CBFF will not be used for mapping by the EMM. 4. device=c:\foo\PS2EMM.SYS /e * the emm will be installed using the small frame manager. This will load the pageframe at the first four 16KB contiguous pages of memory. The mother board will be left enabled and therefore, not be used for mapping. 5. device=c:\foo\PS2EMM.SYS * use defaults. Pageframe is loaded at first available memory. Large frame EMS is used, therefore, the mother board memory is disabled and used for mapping. No ranges are excluded. =============================================================================== AUTOMATIC DETECTION =============================================================================== The PS2EMM.SYS has the ability to automatically detect several Expansion Option Boards which utilize memory between A000-E000. To alleviate you from having to determine what memory address to exclude, or where to load the page frame, the PS2EMM driver will search between A000 and E000 and find thoses addresses which are used by these adapters and exclude them. Thus, in effect, making them non-mappable. Once it finds a contiguous block of memory, it will load the page frame segment. 1. IBM Token-Ring Network Adapter. 2. IBM 3270 Emulation Adapter. 3. Ungermann-Bass Network Adapter. *NOTE: Care must be taken in setting up the Expansion Option Board(s) memory ranges. It is possible that the board(s) occupy memory ranges which would inhibit the PS2EMM driver from find four contiguous 16KB pages for the page frame. If you find you are not getting a full 64KB page-frame, then follow IBM's instructions on installing/configuring Memory Expansion Option Board(s). It might involve relocating address settings to accomodate the page frame. Example: You have the IBM Token-Ring Adapter installed in your machine, and it uses the memory ranges C800-CFFF. DEVICE=C:\FOO\PS2EMM.SYS * When PS2EMM.SYS installs, it searches for non-mappable segments which are occupied by other devices. In this case C800-CFFF. The page frame would then be loaded at D000 to avoid conflict with the other device. The addresses C800-CFFF would be excluded. This is the same as having typed the following in the CONFIG.SYS DEVICE=C:\FOO\PS2EMM.SYS /p=D000 /x=C800-CFFF =============================================================================== ERROR MESSAGES =============================================================================== Message: The system memory was disabled by someone before us. Driver will not be installed. Explanation: Motherboard memory was disabled before an attempt was made to load PS2EMM.SYS. Result: Since the driver must use the motherboard memory, installation of PS2EMM.SYS was abandoned. Solution: Determine what disabled the motherboard memory. Re-enable the motherboard memory before attempting to load PS2EMM.SYS. ------------------------------------------------------------------------------- Message: Not enough pages of expanded memory available for this driver. Explanation: PS2EMM.SYS needs at least 41 pages (656K) if /E option is not specified. The expanded memory board has less than this. Result: PS2EMM.SYS was not loaded. Solution: Try installing with the /E option. ------------------------------------------------------------------------------- Message: There is not enough RAM to initialize this driver. Explanation: Too little memory was available to load PS2EMM.SYS into the lower 640K of RAM. Result: PS2EMM.SYS was not installed. Solution: Free some memory in the lower 640k. Check your CONFIG.SYS file for un-needed device drivers. Reduce the number of buffers specified by the "buffers=" command line in CONFIG.SYS. ------------------------------------------------------------------------------- Message: ERROR: Bad command line. Explanation: Parameters specified for PS2EMM.SYS in the CONFIG.SYS command line are incorrect. Result: PS2EMM.SYS was not installed. Solution: Change the parameters to conform to the usage described above. ------------------------------------------------------------------------------- Message: No memory boards found. Driver will not be installed. Explanation: No IBM Personal System/2 Expanded Memory Option board is installed, or the board is incorrectly installed. Result: PS2EMM.SYS was not installed. Solution: Check the installation of your IBM Personal System/2 Expanded Memory Option board(s). ------------------------------------------------------------------------------- Message: Not enough memory is mappable. Driver will not be installed. Explanation: PS2EMM.SYS found no mappable memory banks below 1 Megabyte with which it can access your expanded memory. Result: PS2EMM.SYS was not installed. Solution: Free some memory below 1 Megabyte by disabling some hardware or software devices. Check your CONFIG.SYS file for unnecessary device drivers. Remove other hardware boards which may be taking up memory. ------------------------------------------------------------------------------- Message: WARNING: Your page frame is smaller than 64K. Some programs that require expanded memory may not be usable. Explanation: The page frame found above 640K is less than 4 banks long. Result: Programs written for LIM 3.2 assumed a page frame 4 banks long and hence will not run in this configuration. Since the LIM 4.0 specification does not require a 4 bank long page frame the driver was still installed. Solution: Free enough memory between 640K and 1 Megabyte to have a page frame of 4 banks. Do this by disabling some hardware or software devices. Check your CONFIG.SYS file for unnecessary device drivers. Remove other hardware boards which may be taking up memory. ------------------------------------------------------------------------------- Message: WARNING: You have no page frame. Some programs that require expanded memory may not be usable. Explanation: No page frame was found above 640K. Result: Programs written according to LIM 3.2 specification won't work in this configuration. Solution: Free enough memory between 640K and 1 Megabyte to have a page frame. Do this by disabling some hardware or software devices. Check your CONFIG.SYS file for unnecessary device drivers. Remove other hardware boards which may be taking up memory. =============================================================================== OTHER MESSAGES =============================================================================== Message: Microsoft PS2 50/60 Expanded Memory Driver version 1.00. Explanation: Banner message with version number. ------------------------------------------------------------------------------ Message: Page frame is located at segment xxxxh. Explanation: Specifies the location of the page frame segment. ------------------------------------------------------------------------------- Message: Extended Memory available has been adjusted to nnnnK. Explanation: By default, IBM Personal System/2 Expanded Memory Option boards are configured at boot time to be extended memory. Because PS2EMM.SYS takes this extended memory, this message reports the amount of extended memory after PS2EMM.SYS takes this memory. =============================================================================== GLOSSARY/TERMS =============================================================================== 1. PAGE FRAME - A contiguous block of memory occupying 64KB of memory. It consist of four 16KB pages starting on an even boundry which is a mulitple of 512 bytes. (ex: C000, C200, D000, D800) This is the location of the interface between your DOS applications and expanded memory. 2. MAPPING - The process of making a logical page appear at a physical page. 3. EMM - Expanded Memory Manager. This controls the interface between your DOS applications and expanded memory. 4. EMS - Expanded Memory Specification. The specification which the EMM is derived from. 5. BANK - The equivalent of a 16KB page. 6. PAGE - The equivalent of 16KB of memory used for mapping. 7. EXPANDED MEMORY - The memory available outside of DOS's 640KB limit.