NOVELL TECHNICAL INFORMATION DOCUMENT DOCUMENT PROCESSING INFO: TITLE: USING MEM /A DOCUMENT ID: TID800060 DOCUMENT REVISION: A DATE: 18AUG94 AUTHOR: SNICOSIA;CEREKSON ALERT STATUS: Yellow DISTRIBUTION: Public INFORMATION TYPE: Symptom Solution README FOR: NA NOVELL PRODUCT CLASS: Desktop Products NOVELL PRODUCT and VERSION: DR DOS 6.0 CATEGORY: Memory ABSTRACT: N/A ----------------------------------------------------------------- DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS 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. ----------------------------------------------------------------- SYMPTOM SYMPTOM: INTERPRETING MEM/A SOLUTION SOLUTION: This document provides a detailed explanation of how to interpret a MEM/A print out. Please note that the MEM /A listing differs from system to system. Also, changes to the machine's hardware or to various operating system configuration files, namely CONFIG.SYS and AUTOEXEC.BAT, will also affect a MEM /A listing. A recommended method for determining changes to this listing is to start examination of the MEM /A listing with a stripped software configuration (i.e.a simple CONFIG.SYS and AUTOEXEC.BAT). NOTE: this document assumes that the reader has an in-depth understanding of DOS memory management principles and terms. A user may find it beneficial to brush up on memory management principles by examining any or all of the memory management references listed below. DR DOS 6.0 User Guide DR DOS 6.0 Optimization and Configuration Tips DR DOS 6.0 Tips #1300 through 1306 MEM /A DESCRIPTION Address refers to the address at which an item (drivers, TSRs, programs etc.) is located in RAM. Segment address range 0000-9FFF refers to the Conventional Memory Area; Address A000-BFFF refers to Video Memory Area; Address C000-EFFF refers to the Upper Memory Area; Address FFFF-11000 refers to the High Memory Area. One can determine where a device driver, TSR, or program is by looking at the first four digits of the address and c hecking against the above ranges. In the attached example, MOUSE is at address E72E:0000 and is therefore in the Upper Memory Area. Owner refers to the actual driver, TSR, or program name which is the owner of the address range. For example MOUSE owns address E72E:000 which is an Upper Memory address. Size refers to the size of the actual device driver, TSR, or program in memory. Size appears in both hexadecimal and decimal formats. For example MOUSE is 13,936 bytes in size or approximately 13 kilobytes. (13,936 bytes / 1024 bytes per kilobyte = approximately 13 kilobytes) Also notice that MOUSE is the owner of the Conventional Memory Address A54:0000. Here, MOUSE's size is only 288 bytes. As one can see the bulk of the program MOUSE is in Upper Memory at address E72E:0000. This smaller amount (288 bytes) of MOUSE remains in Conventional Memory at address A54:0000 as a link or pointer to the rest of MOUSE at address E72E:0000. Many program types will leave a portion of their code, called a "foot print", in Conventional Memory in order to point to the rest of the program in Upper or High Memory. Type defines what occupies each particular address whether it be a Loadable device driver, Built-in device driver, FREE space, Environment, or other program type. Many of the program types are outlined below. Note: One may notice an identical Owner-Type specification both in Conventional Memory and Upper or High Memory. This is because applications may need something in Conventional Memory to find or reference the rest of the program in Upper or Conventional Memory. RAM refers to an addressed area of Random Access Memory. RAM acts as a heading for a certain range of addressable memory. In the example RAM shows a size of 655,360 which refers to all of the 640k of Conventional Memory. INTERRUPT VECTORS refers to the address reserved for the interrupt vector tables. In the example, Interrupt vectors own the first address in RAM of 0:0000 and is 1,024 bytes in size. ROM BIOS Data Area refers to the addresses in RAM of certain ROM BIOS information needed by DOS. In the example, the ROM BIOS data area owns address 40:0000 and is 256 bytes in size. DOS DATA AREA refers to the address reserved as a DOS work area. In the example, the DOS data area owns address 50:000 and is 512 bytes in size. DEVICE DRIVERS is a header for the Built-in device drivers, listed below this line. In the example, Device drivers own the addresses ranging from 70:050B to 70:0671 and add up to 2,912 bytes in size. BUILT-IN DEVICE DRIVER refers to the addresses of DOS's built in I/O functions. In the example, there are many Built-in device drivers which own addresses ranging from 70:050B to 70:0671. SYSTEM is a header for a group of program types defined below the System type line. Notice that the amount of bytes occupied by the System is usually greater than the total of the listed programs. We will assign the term System Overhead to the difference in amount. In the example, System owns addresses 126:0000 to 126:0048 and is 2,528 bytes in size. LOADABLE DEVICE DRIVER generally refers to an address occupied by those device drivers and TSRs which are loaded from the CONFIG.SYS file. In the example, there are loadable device drivers which own addresses 255:0000 (EMM386.SYS), 2BC:0000 (SuperStor's SSTORDRV.SYS), and DF02:0000 (CON,which is ANSI.SYS). PROGRAM refers to the address of an executable (.EXE or .COM) which is currently in RAM. In the example, Program owns addresses A0A:0000 (COMMAND.COM), A78:0000 (MEM.EXE), E72E:0000 (MOUSE.COM), FFFF:00E0 (COMMAND.COM), and FFFF:EFE3 (SuperStor code). NOTE: Notice how MEM owns address A78:0000 and is 80,608 bytes in size. MEM will only take up memory during execution and will release itself from memory upon completion. This is why the 80,608 bytes MEM takes up is not subtracted from the final amount of available Conventional Memory. ENVIRONMENT refers to an address which is owned by environment space set aside by a particular program. A ceiling for environment space is set up via DR DOS 6.0's /E:xxxx switch on the SHELL= statement in CONFIG.SYS Note: generally 16 bytes are added to the environment size. Example: if your environment size is 512 bytes, the size of the environment shown by the MEM command is 528 bytes (512 bytes + 16 bytes). In the example, Environment owns addresses A2B:000 (Environment set up by COMMAND.COM), A54:000 (Environment set up by MOUSE.COM), and A66:0000 (Environment set up by MEM.EXE). FREE refers to the address of a block of RAM space available for use by programs. In the example, address 1E26:000 and beyond are FREE (a total of 531 Kbytes). NOTE: A user may add the amount of MEM.EXE in memory (80,608 bytes) and the amount reported by the FREE at 1E26:000 (531,856 bytes) to determine total available Conventional Memory (612,192). Notice that this number differs to that reported in the Standard Memory Allocation Reporting which reports 612,736 bytes. We term this difference "System Overhead" as it represents a small amount of unreported memory (272 bytes). UPPER SYSTEM MEMORY refers to the address of an EXCLUDED area of memory. Excluded memory is memory which has been made exempt from DOS use or manipulation. In the example, Upper system memory owns address 9FFF:0000 to DF00:0000 (Upper RAM) for an amount of 258,064. This range actually represents a contiguous block that includes the first two segments of Video Memory plus ROMs, Shadow ROMs, the LIM page frame (EMS memory) and the EMM386 driver code which DR DOS does not make available. EXTENDED ROM BIOS Data Area refers to an address of system memory allocated for BIOS use. We would generally term this area BIOS Scratch Area. Many BIOSes have the ability to set aside 1 kilobyte of BIOS Scratch Area for BIOS use. This 1 kilobyte amount will be subtracted from the overall Conventional Memory total which is generally 640 kilobytes (640 kilobytes - 1 kilobyte = 639 kilobytes). In the example, there is not an address owned by the Extended ROM BIOS data area. XMS UPPER MEMORY BLOCK refers to an address owned by a program which put a portion of itself into Upper Memory without the assistance of a HILOAD, HIINSTALL, HIDEVICE, or similar command. SuperStor's device driver, SSTORDRV.SYS, is one such program. SSTORDRV.SYS may not be put into Upper Memory using of the commands above. However, SSTORDRV. SYS will put a portion of itself into Upper Memory as long as it is loaded after a memory manager which creates Upper Memory Blocks (EMM386.SYS). In the example, XMS Upper Memory Blocks own addresses E004:0000, E207:0000, and E6FC:0000 (SHARE.EXE). DR DOS BIOS CODE refers to an address of DR DOS's own Basic Input Output System functions. In the example, DR DOS BIOS code owns address FFFF:1590 and is 2,552 bytes in size. DR DOS KERNAL CODE refers to the address which is occupied by the DR DOS Operating System kernel. This address is affected by the DR DOS 6.0 memory manager's /BDOS switch. In the example, DR DOS kernel code owns address FFFF:2370 and is 37,952 bytes in size. DISK BUFFERS refers to an address which is occupied by small areas or blocks of memory called buffers. The placement of buffers is a result of the DR DOS 6.0 BUFFERS/HIBUFFERS command issued in the CONFIG.SYS file. In the example, Disk buffers owns addresses E47E:0000 (3 buffers in Upper Memory which were unable to fit into High Memory), and FFFF:B833 (27 buffers). Notice that each buffer takes up 512 bytes. ROM refers to an address owned by a Read Only Memory chip. In the example, ROMs own addresses C000:0000, C700:0000, and F900:0000. UPPER RAM serves as a title or header for a group of program types defined below. In the example, Upper RAM owns address DF00:0000 and is 69,632 bytes in size. NOTE: A user may add up all of the amounts of the resident programs between addresses DF00:0000 and EA95:0000 (75,296 bytes) to determine Upper RAM. Notice that this number differs from that reported by Upper RAM, which is 69,632 bytes. We term this difference "System Overhead" as it represents a small amount of unreported memory (5664 bytes). SHADOW ROM refers to an address which is occupied by an area shadowed from a ROM chip into faster RAM either through EMM386.SYS's /ROM switch or through CMOS's shadowing functions. In the example, Shadow ROM owns addresses C6000:0000 and F800:0000. Conventional Memory ----------------------------------------------------------------- Address Owner Size Type ----------------------------------------------------------------- 0:0000 -------- A0000h, 655,360 ------------- RAM --------------- 0:0000 -------- 400h, 1,024 Interrupt vectors 40:0000 -------- 100h, 256 ROM BIOS data area 50:0000 DR DOS 200h, 512 DOS data area 70:0000 DR BIOS B60h, 2,912 Device drivers 70:0553 AUX Built-in device driver 70:0565 COM1 Built-in device driver 70:0577 COM2 Built-in device driver 70:0589 COM3 Built-in device driver 70:059B COM4 Built-in device driver 70:0602 CLOCK$ Built-in device driver 70:0645 CON Built-in device driver 70:0671 A:-D: Built-in device driver 126:0000 DR DOS 11B0h, 4,528 System 126:0048 NUL Built-in device driver 241:0000 DR DOS 2030h, 8,240 System 255:0000 EMMXXX0 640h, 1,632 Loadable device driver 2BC:000 E: 5C30h, 23,600 Loadable device driver A0A:0000 COMMAND 210h, 528 Program A2B:0000 COMMAND 210h, 528 Environment A4C:0000 -------- 80h, 128 FREE A54:0000 MOUSE 120h, 288 Environment A66:0000 MEM 160h, 352 Environment A78:0000 MEM 13AE0h, 80,608 Program 1E26:0000 -------- 81D90h, 548,848 FREE 9FFF:0000 EXCLUDED 3F010h, 258,064 Upper system memory ----------------------------------------------------------------- Upper Memory C000:0000 -------- 6000h, 24,576 ------------- ROM ------------------- C600:0000 -------- 1000h, 4,096 ---------- Shadow ROM ----------- C700:0000 -------- 1000h, 4,096 ------------- ROM -------------------- C800:0000 EMS 10000h, 65,536 -----------EMS memory------------- ----------------------------------------------------------------- D800:0000 EMM386 7000h, 28,672 EMM386 device driver code ----------------------------------------------------------------- DF00:0000 -------- 11000h, 69,632 ---------- Upper RAM ------------- ----------------------------------------------------------------- DF00:0000 DR DOS 1040h, 4,160 System DF02:0000 CON 1020h, 4,128 Loadable device driver E004:0000 DR DOS 1F90h, 8,240 XMS Upper Memory Block E207:0000 DR DOS 2290h, 8,848 XMS Upper Memory Block E430:0000 DRDOS 2CC0h, 11,456 System E47E:0000 DRDOS 600h, 1,536 3 Disk buffers E6FC:0000 SHARE 320h, 800 XMS Upper Memory Block E72E:0000 MOUSE 3670h, 13,936 Program EA95:0000 -------- 56B0h, 22,192 FREE ----------------------------------------------------------------- F800:0000 -------- 1000h, 4,096 ---------- Shadow ROM ----------- F900:0000 -------- 7000h, 28,672 ------------- ROM --------------- High Memory ----------------------------------------------------------------- FFFF:00E0 COMMAND 1380h, 4,992 Program FFFF:1470 -------- 120h, 288 FREE FFFF:1590 DR DOS DE0h, 3,552 DR DOS BIOS code FFFF:2370 DR DOS 9440h, 37,952 DR DOS kernel code FFFF:B7B0 -------- 83h, 131 FREE FFFF:B833 DR DOS 3600h, 13,824 27 Disk buffers FFFF:EFE3 System 101Dh, 4,125 Program ----------------------------------------------------------------- BASIC MEMORY ALLOCATION REPORTING - MEM NOTE: The following description covers the final section of the MEM /A listing, or the listing resulting from a simple MEM command. Also, the following description includes sub-headings which are not found on either of the above two command listings. These subheadings are included to help the user understand other memory areas generally referenced within the DR DOS operating system. Memory Type Total Bytes ( Kbytes ) Available Conventional 655,360 ( 640K) 612,736 ( 598K ) Upper 69,632 ( 68K) 22,192 ( 21K ) High 65,520 ( 64K) 419 ( 0K ) Extended 3,145,728 ( 3,072K) 0 ( 0K ) Extended via XMS N/A 2,932,736 ( 2,864K) EMS 2,932,736 ( 2,864K) 2,932,736 ( 2,864K) CONVENTIONAL refers to the RAM memory between 0-640 kilobytes. Conventional Memory consists of the Low Memory Area and the Temporary Program Area or TPA. LOW MEMORY AREA refers to the first 64k of Conventional Memory. Low Memory Area is where the DOS kernel and its associated structures had to reside previous to recent improvements in memory management. Since such improvements, the DOS kernel and its associated structures may be moved into the Upper Memory Area or High Memory Area. The Low Memory Area area can be disabled (not used by applications) or enabled (used by programs) with the MEMMAX +/- L command. Enabling the Low Memory Area makes it a part of the Temporary Program Area. TRANSIENT (TEMPORARY) PROGRAM AREA refers to the RAM memory area in which applications run. UPPER refers to the RAM memory between 640 kilobytes and 1 megabyte. Under certain circumstances a user may want to use the MEMMAX +/- U command to enable or disable Upper Memory. Video Memory Area refers to the first 128 kilobytes of the Upper Memory area in RAM. This area allows for the paging of video memory from system RAM to the video card's RAM and visa versa. Basically, DOS pages video memory off of the video card into system RAM where the application can access it. Additional Upper Memory may be used by video (eg. for Super VGA). Please see your video card's manual for the complete Upper Memory Requirements (addresses) of the card. Under certain circumstances the MEMMAX +/- V switch may allow for the usage of certain unused Video Memory as Conventional Memory. Please refer to page 581 of the DR DOS User Guide for additional information regarding memory paging. 640 kilobytes to 704 kilobytes is the range that EGA and VGA graphics cards use to page data. This area may go unused with a CGA or Hercules card. 704 kilobytes to 768 kilobytes is used for video memory. Roughly half of this area is used for monochrome or Hercules graphics, roughly half is reserved for CGA, EGA or VGA. 768 KILOBYTES TO 1024 KILOBYTES refers to the Upper Memory Range used to HILOAD, HIDEVICE and HIINSTALL device drivers, TSRs and programs. This area may also be utilized by special hardware cards and ROMs. NOTE: The amount of Total Upper Memory in bytes corresponds to the amount of Upper RAM shown at address DF00:0000. The amount of Available Upper Memory in bytes corresponds to FREE shown at address EA95:0000. HIGH refers to the first 64 kilobytes of RAM memory above 1 megabyte. EXTENDED refers to all RAM memory which is beyond 1 megabyte and has not yet been defined by a specification. EXTENDED VIA XMS refers to Extended memory which has been converted to the XMS specification. EMS refers to Extended memory which has been converted to the EMS or Expanded Memory specification. ----------------------------------------------------------------- Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information. -----------------------------------------------------------------