TITLE: DOS Memory Managers and NetWare Lite v1.1 DOCUMENT ID: TID1200382 DOCUMENT REVISION: 2 DATE: 27Apr95 ALERT STATUS: Yellow README FOR: NA NOVELL PRODUCT and VERSION: NETWARE LITE V1.1 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 NetWare Lite v1.1 Note: Information listed is intended for use on 386 or 486 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 NetWare Lite items into upper memory. General Information This basic summary is necessary to understand how to create the best performing servers and clients with NetWare Lite. Random Access Memory (RAM) in 386 and 486 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 NetWare Lite v1.1 may be loaded into upper memory. These files are normally loaded from the STARTNET.BAT file found in the NWLITE directory. These files are the following: LSL.COM, your network board driver (NE2000.COM), IPXODI A, SHARE (found in your DOS directory), SERVER.EXE, and CLIENT.EXE. 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 NetWare Lite files into upper memory by using memory managers from DR DOS 6.0 and MS-DOS 5.0. If you have any questions that are not answered in this document, please consult your DOS documentation. The memory manager, EMM386, 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). DR DOS 6.0 The memory manager included with DR DOS 6.0 is EMM386.SYS. To load drivers and programs into upper memory, several steps must be followed. Note: EMM386.SYS cannot be used with other memory managers. The following is an example of a CONFIG.SYS file that is configured to allow access to upper memory (UMB) and HMA. DEVICE=C:\DRDOS\EMM386.SYS /F=AUTO /K=AUTO /B=FFFF /R=AUTO /E=[START-END] HIDOS=ON In the CONFIG.SYS file, the HIDOS=ON line should be included. This allows the computer to put information into HMA if memory is available. EMM386.SYS [/F=AUTO] Performs an automatic search through upper memory for a free 64KB window. This is the default. This sets up your machine to use expanded or extended memory, whatever your software requests. NetWare Lite 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 [/F=NONE] that will set your machine up to use extended memory and free up considerably more upper memory. [/K=AUTO] Allocates expanded memory. The amount of memory is determined by how much your application requests. [/B=FFFF] Relocates the DR DOS kernel, freeing space in conventional memory for use by applications. By using the ffff location of memory, the kernel will be placed into HMA (if available). [/R=AUTO] Copies data and code from Read Only Memory (ROM) that is slow to run into Random Access Memory (RAM) that is very fast. [/E=[START-END] Excludes an area of upper memory from the area being checked for availability of use. 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. To load NetWare Lite required files into high memory in your STARTNET.BAT file, your syntax should be similar to the following: HILOAD LSL HILOAD NE2000 HILOAD IPXODI A HILOAD SHARE HILOAD SERVER HILOAD CLIENT 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. For complete information on the MEM command, please refer to page 258 to 259 of the DR DOS 6.0 User's Guide or call Novell's FaxBack System at 1-800-768-9771 option 3 or 1-801-429-2700. The titles pertaining to memory management are the following: Document Title 4 Master Index (A listing of all DRDOS FaxBack documents.) 800072 DR DOS 6 Memory Management overview 800073 Basic Memory optimization 800077 Trouble shooting 800074 Using Third-party memory managers 800058 XMS-EMS memory pool 800059 Preventing DR DOS from loading into HMA 800060 The MEM /A Command 800061 Gate A20 and Printing Problems MS-DOS 5.0 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 page 611 in the MS-DOS 5.0 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 5.0 User's Guide on pages 605 to 609. 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 NetWare Lite 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 LH CLIENT To examine where your items are loaded into high memory, type the following from the DOS prompt: MEM /C |MORE (/C classifies programs by memory usage. It also displays conventional memory and upper memory in separate blocks to easily determine where programs are loaded. |MORE pauses at the end of every screen.) For further questions and concerns about loading software into upper memory, consult the MS-DOS 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 NetWare Lite 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. ---------------------------------------------------------------------