This article was previously published under Q82712
This article has been archived. It is offered "as is" and will no longer be updated.
3.10 3.11 WINDOWS kbenv
The HIMEM.SYS driver that ships with Windows 3.1 (version 3.07, dated3/10/92, size 13824 bytes), provides an additional command-line switch thatallows 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/orWindows is not using all the memory on the system, adding the /EISA switchto the CONFIG.SYS file as follows may make more memory available for use:
NOTE: This command may cause conflicts if any drivers using extended memoryare loaded from the CONFIG.SYS file before HIMEM.SYS.
The /EISA command-line switch has been added to allow HIMEM.SYS to use allthe EISA memory installed in an EISA system. The switch is ignored on non-EISA systems. HIMEM.SYS maintains its former behavior when this switch isnot used.
When the /EISA switch is not used (or when the MS-DOS version 5.0 versionof HIMEM.SYS is used), only the amount of contiguous extended memoryidentified by Int 15H/88H (get extended memory size) is allocated byHIMEM.SYS. If a system has 24 MB of memory installed (and all extendedmemory was in one contiguous block starting at 1 MB) and Int 15H/88Hreports 16 MB available, HIMEM will use only 16 MB, leaving the remainderunused and unavailable. Several original equipment manufacturer's (OEM)BIOS implementations never indicate more than 16 MB of available memorythrough Int 15H/88H regardless of how much more memory may be installed.Therefore, on one of these machines with more than 32 MB of memoryinstalled, most of it is not usable with HIMEM.SYS, EMM386.EXE, and Windows3.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 otherdriver loaded before HIMEM.SYS that is already hooking the Int 15H/88Hinterrupt and allocating extended memory for its own use.
If no other drivers using extended memory are loaded before HIMEM.SYS inthe CONFIG.SYS file, the /EISA switch can safely be used to force HIMEM.SYSto 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 ExtendedMemory Specification (XMS) available.
Some older programs that used extended memory (such as Windows 3.0) do notwork properly with extended memory addresses above 16 MB. Using the /EISAswitch on machines with more than 16 MB may allow Windows 3.1 to use morememory, but will cause Windows 3.0 to fail. Users that plan to switch backand forth between Windows 3.1 and Windows 3.0 may not want to use the /EISAswitch.