___________________________________________________________________________ STACKER NOTE STACKER NOTE Title: Loading Stacker into Upper Memory with MS-DOS 5.0 or Windows 3.1. STAC FAX Index #2102 - 6/19/92 ___________________________________________________________________________ Background. MS-DOS 5.0 and Windows 3.1 come with an expanded memory manager, EMM386.EXE, that enables the loading of device drivers and TSRs into the Upper Memory area on 386 and 486 machines. The Stacker device driver may be loaded into this area if the system is configured properly and if there is an upper memory block (UMB) large enough to accommodate the driver's initialization size. Stacker reports the initialization size of its device driver at boot time. As EMM386 loads, it reports the size of the largest UMB. (Use the pause key during system boot to view these figures.) If you attempt to load the Stacker driver into the UMBs and they are not large enough, the driver will simply load into the lower 640k of conventional memory. Optimizing upper memory usage can be a complex task. Freeing up UMBs that are large enough may require much trial and error. You may even have to experiment with the order in which device drivers are loaded. This document provides the necessary configuration information to get you started. Requirements. 1. The computer must be a 386 or 486 with at least 1MB of memory. 2. The Config.sys file must contain the following statements (in this order): DEVICE=C:\\HIMEM.SYS (where is DOS or WINDOWS) DEVICE=C:\\EMM386.EXE switches (switches are explained later) DOS=UMB (or DOS=HIGH,UMB) 3. You need to tell DOS to load the Stacker device HIGH by changing the syntax from DEVICE= to DEVICEHIGH= in Config.sys. For example, DEVICE=C:\STACKER\STACKER.COM C:\STACVOL.DSK becomes DEVICEHIGH=C:\STACKER\STACKER.COM C:\STACVOL.DSK NOTES: 1. Make sure HIMEM.SYS and EMM386.EXE exist on the uncompressed boot drive or they will not be available during system startup. 2. Stacker's SSWAP program is not memory resident. Therefore, it is not necessary to load its device driver high. EMM386.EXE Switches. The switches (parameters) tell EMM386 to perform a variety of functions like opening the Upper Memory Area for device drivers and TSRs, or to create Expanded (EMS) memory for applications. The switches you choose will depend on your applications and the type of memory they require. 1. If some applications use EMS memory, use the RAM parameter. This will provide access to the UMBs and create a 64k EMS page frame. For example: DEVICE=c:\DOS\EMM386.EXE RAM 2. If no EMS memory is required, use the NOEMS parameter. This will provide access to the UMBs and create 64K more usable space than the RAM parameter. No EMS services will be provided. For example: DEVICE=c:\DOS\EMM386.EXE NOEMS 3. In order to free up the MAXIMUM amount of upper memory, you can add the m9 parameter. When used in conjunction with the RAM parameter, this will inform EMM386 to position the page frame at address E000h, freeing up an additional 64K of RAM. When used with the NOEMS parameter, the 64k memory block starting at E000h will be added to the available UMBs. For example: DEVICE=c:\DOS\EMM386.EXE NOEMS m9 This line will free up the maximum amount of UMBs on most systems. It is possible to specify other memory starting address with the m# parameter. Please consult your DOS or Windows manual. NOTE: This option will work on most IBM-compatible machines. However, a few machines like the PS/2 contain BIOS information at E000. You will not be able to use the M9 option on these machines. Checking Stacker's memory location. To see if the Stacker device driverwas successfully loaded into the UMBs, use the DOS MEM command. Type: MEM /C to view the memory map. The Stacker XT/8 coprocessor card and EMM386. If you have the XT/8 coprocessor card, it will be necessary to exclude the 16K upper memory address range that it uses from use by EMM386. For example, if the coprocessor base address is cc00, add x=cc00-cfff to the EMM386 device driver. You can determine the coprocessor address by examining the /B= parameter on the Stacker device line in Config.sys. For example, if /B=CC00, the EMM386 line would read: DEVICE=C:\DOS\EMM386.EXE NOEMS m9 x=cc00-cfff Failure to exclude the address will result in the message "Coprocessor not functioning, invoking software driver". The following table lists the seven possible memory ranges, based on the base address of the XT/8 coprocessor card: Base Address to Exclude ------------ ------------------ c400 c400-c7ff c800 c800-cbff cc00 cc00-cfff d000 d000-d3ff d400 d400-d7ff d800 d800-dbff dc00 dc00-dfff NOTE: The Stacker AT/16 card uses an exclusive I/O address so it requires no special treatment. ___________________________________________________________________________ Copyright 1993, Stac Electronics