TITLE: DOS Memory Managers and Personal NetWare DOCUMENT ID: TID1200851 DOCUMENT REVISION: 0 DATE: 16JUN95 ALERT STATUS: Yellow README FOR: NA NOVELL PRODUCT and VERSION: Personal NetWare v1.0 ABSTRACT: NA --------------------------------------------------------------------- DISCLAIMER: THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEAN TO VERIFY THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION. --------------------------------------------------------------------- ISSUE: DOS Memory Managers and Personal NetWare v1.0 Note: Information listed is intended for use on 386, 486 and Pentium based computers. For information on other machines, please consult your DOS manual. This document is intended to aid the user in the basic steps of loading Personal NetWare items into upper memory. General Information This basic summary is necessary to understand how to create the best performing servers and clients with Personal NetWare. Random Access Memory (RAM) in 386, 486 and Pentium computers has a uniform structure. The first 640KB of memory is known as conventional memory, the location where applications load. The next 384KB of memory is known as upper memory, where system files and other files (such as mouse drivers or network drivers) can be loaded if memory management software is used. On machines with more than 1MB of RAM, the first 64KB of memory above 1MB is known as the HMA (High Memory Area). All the necessary files in Personal NetWare v1.0 may be loaded into upper memory. These files are normally loaded from the STARTNET.BAT file found in the NWCLIENT directory. These files are the following: LSL.COM, your network board driver (NE2000.COM), IPXODI, SERVER.EXE, VLM.EXE and SHARE (found in your DOS directory). The proper syntax for loading these files into upper memory depends on which version of DOS and memory manager you choose to use. Following are instructions to load Personal NetWare files into upper memory by using memory managers from Novell DOS 7.0 and MS-DOS 6.xx. If you have any questions that are not answered in this document, please consult your DOS documentation. The memory manager, EMM386.EXE, will relocate software into upper memory. Without the use of the EMM386 manager, the only memory that can be used is conventional memory (the first 640KB of memory). Novell DOS 7.0 ------------------- The memory manager included with Novell DOS 7.0 is EMM386.EXE. To load drivers and programs into upper memory, several steps must be followed. The following is an example of a CONFIG.SYS file that is configured to allow access to upper memory (UMB) and HMA. DEVICE=C:\NWDOS\EMM386.EXE FRAME=NONE /EXCLUDE=[START-END] DOS=HIGH,UMB EMM386.EXE Switches included with EMM386.EXE that are most commonly used to increase system performance are the following: [/]EXCLUDE=start-end[,start-end] Forces the memory manager to exclude the specified areas of upper memory when it searches for usable upport memory; start and end are the starting and ending segment addresses of each area to exclude. This switch should be used if an item uses a specific memory location. For example: If your network board had a memory address setting of CC00 and you used the switch [/E=CC00-CFFF], then the EMM386.SYS driver would not allow any software to occupy the same area of memory. This is a solution to random errors (the machine lockup) that may occur if the network-board driver is overwritten. [/]FRAME=AUTO | NONE | ADDRESS Enables expanded (EMS) memory emulation. AUTO (the default) lets the memory manager locate the page frame; NONE disables EMS emulation; ADDRESS identifies a specific location In upper memory. Personal NetWare will not be able to load completely into upper memory if this option is used because of limited space. Novell suggests if possible you use [/FRAME=NONE] that will set your machine up to use extended memory and free up considerably more upper memory To load Personal NetWare required files into high memory in your STARTNET.BAT file, your syntax should be similar to the following: LH LSL LH NE2000 LH IPXODI A LH SHARE LH SERVER VLM To examine where your items are loaded into high memory, type the following from the DOS prompt: MEM /A /P (/A shows all information. /P pauses at the end of every screen.) From this screen you will be given several screens of information. To determine what is located in upper memory, be aware that the address A000:0000 is where conventional memory ends and upper memory begins, and FFFF:0000 is where upper memory ends and the high memory area begins. DOS=HIGH,UMB The HIGH switch allows DOS to relocate the system files into a location called the HMA (High Memory Area), freeing up more conventional memory space. The UMB (Upper Memory Block) switch is for linking conventional memory with upper memory. Loading drivers or devices into upper memory is necessary. Remember, to load any command high, the line must follow the memory manager device line in the CONFIG.SYS. The command to load a device high in the CONFIG.SYS file is DEVICEHIGH. The command to load an item high in the AUTOEXEC.BAT file or any .BAT file is LH or LOADHIGH. MS-DOS 6.xx ----------------- The memory manager included with MS-DOS 5.0 is EMM386.EXE. To load drivers and programs into upper memory, several steps must be followed. In the CONFIG.SYS file, device drivers for HIMEM.SYS and EMM386.EXE must be included and placed in a specific order. To ensure the proper setup, it is best to have the device line containing HIMEM.SYS at the beginning of the CONFIG.SYS file, the second line should contain the EMM386.EXE line, and the third line should contain a specification of where to load the DOS system files. For example: DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE /X=MMMM-NNNN NOEMS DOS=HIGH,UMB HIMEM.SYS Generally, the default specifications for HIMEM.SYS are sufficient for your system. The main exception is the /MACHINE:XXXX specification; replace XXXX with your machine type. Please see the MS-DOS 6.xx User's Guide for complete information. EMM386.EXE Switches included with EMM386.EXE that are most commonly used to increase system performance are the following: [X=[MMMM-NNNN]] Where MMMM-NNNN denotes an address that EMM386.EXE will not be allowed to use. This is very useful for excluding the address of your network-board driver so it will not be overwritten by DOS. (If the board memory address is set at CC00, the switch would be X=CC00-CFFF.) [NOEMS] Allows access to upper memory and prevents access to expanded memory. It does allow access to extended memory. Other switches can be found in the MS-DOS 6.xx User's Guide or online help. DOS The HIGH switch allows DOS to relocate the system files into a location called the HMA (High Memory Area), freeing up more conventional memory space. The UMB (Upper Memory Block) switch is for linking conventional memory with upper memory. Loading drivers or devices into upper memory is necessary. Remember, to load any command high, the line must follow the three lines listed above. The command to load a device high in the CONFIG.SYS file is DEVICEHIGH. The command to load an item high in the AUTOEXEC.BAT file or any .BAT file is LH or LOADHIGH. To load the required Personal NetWare files into upper memory in your STARTNET.BAT file, your syntax should be similar to the following: LH SHARE LH LSL LH NE2000 LH IPXODI A LH SERVER VLM To examine where your items are loaded into high memory, type the following from the DOS prompt: MEM /C /P (/C classifies programs by memory usage. It also displays conventional memory and upper memory in separate blocks to easily determine where programs are loaded. /P pauses at the end of every screen.) For further questions and concerns about loading software into upper memory, consult the MS-DOS 6.xx User's Guide or contact Microsoft Technical Support. QEMM-386 (by Quarterdeck) --------------------------------------------- Other memory managers may be used and there is a good variety on the market. If you use QEMM, Novell suggests that you consider the following information. QEMM uses a feature called Stealth mode that hides ROM code and makes its memory address mappable as HIGH RAM, then it may be used for loading TSRs or device drivers. This Stealth mode is turned on in the CONFIG.SYS with an ST:x parameter. The x may be an F for Frame or M for Mapping. Example: Device=c:\qemm\qemm386.sys ST:F or ST:M FRAME shares the page frame with a ROM area. It must see 64KB of contiguous HIGH RAM; otherwise, it will revert back to using conventional RAM starting at 576KB to 640KB (64KB total). MAPPING, makes use of the 386 memory mapping capabilities. Memory problems may manifest themselves through random lockup, generally upon initial bootup when device drivers are loading, or at later times when applications are loaded. If you suspect memory problems while using Personal NetWare and QEMM-386, try removing the Stealth parameter from the CONFIG.SYS, then reboot and see if problem persists. If it does not, then refer to your troubleshooting documentation or contact Quarterdeck for instructions on debugging the problem. Usually it is merely a memory conflict that may be corrected by excluding certain memory ranges. Novell's experience shows the most common memory range to exclude is the network board. See the previous information for exclude examples. In addition, their may be problems or conflicts with disk caching utilities due to improper page frame preservation. If you are using disk cache and suspect conflicts manifest by system failures or corruption, remove the caching utility. If the problem goes away, the conflict may be due to advanced disk features. Consult your appropriate documentation and turn off advanced features such as advanced reads and writes, then reload the cache utility. --------------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. ---------------------------------------------------------------------