Article ID: 82712 - View products that this article applies to.
This article was previously published under Q82712
This article has been archived. It is offered "as is" and will no longer be updated.
The HIMEM.SYS driver that ships with Windows 3.1 (version 3.07, dated 3/10/92, size 13824 bytes), provides an additional command-line switch that allows HIMEM.SYS to use all of the Extended Industry Standard Architecture (EISA) memory installed in the system.
If you have an EISA system that has memory available, and HIMEM.SYS and/or Windows is not using all the memory on the system, adding the /EISA switch to the CONFIG.SYS file as follows may make more memory available for use:
NOTE: This command may cause conflicts if any drivers using extended memory are loaded from the CONFIG.SYS file before HIMEM.SYS.
The /EISA command-line switch has been added to allow HIMEM.SYS to use all the EISA memory installed in an EISA system. The switch is ignored on non- EISA systems. HIMEM.SYS maintains its former behavior when this switch is not used.
When the /EISA switch is not used (or when the MS-DOS version 5.0 version of HIMEM.SYS is used), only the amount of contiguous extended memory identified by Int 15H/88H (get extended memory size) is allocated by HIMEM.SYS. If a system has 24 MB of memory installed (and all extended memory was in one contiguous block starting at 1 MB) and Int 15H/88H reports 16 MB available, HIMEM will use only 16 MB, leaving the remainder unused and unavailable. Several original equipment manufacturer's (OEM) BIOS implementations never indicate more than 16 MB of available memory through Int 15H/88H regardless of how much more memory may be installed. Therefore, on one of these machines with more than 32 MB of memory installed, most of it is not usable with HIMEM.SYS, EMM386.EXE, and Windows 3.0.
This behavior is not a problem in HIMEM.SYS. HIMEM.SYS behaves this way (without the /EISA switch) because it cannot be sure there isn't some other driver loaded before HIMEM.SYS that is already hooking the Int 15H/88H interrupt and allocating extended memory for its own use.
If no other drivers using extended memory are loaded before HIMEM.SYS in the CONFIG.SYS file, the /EISA switch can safely be used to force HIMEM.SYS to allocate all EISA memory, not just the amount returned by Int 15H/88H. This can make a lot more extended memory that conforms to the Extended Memory Specification (XMS) available.
Some older programs that used extended memory (such as Windows 3.0) do not work properly with extended memory addresses above 16 MB. Using the /EISA switch on machines with more than 16 MB may allow Windows 3.1 to use more memory, but will cause Windows 3.0 to fail. Users that plan to switch back and forth between Windows 3.1 and Windows 3.0 may not want to use the /EISA switch.