We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now


Converntional Mem less than 640KB

yan051197 asked
Medium Priority
Last Modified: 2013-12-29
In some of my Win95 PCs, the converntional memory are less
than 640KB, eg, 639KB, 636KB. According to my experience
with virus in MS-DOS time (or 5 years ago), this seems some
virus exists in computer.
I delete config.sys and autoexec.bat, but the result is same:
less than 640 KB.
I use PCtools 4.30 to test, the result:
    PCTools found memory: 640KB
    DOS reported: 639 KB  or 636KB.
I use IBM Anti-Virus program to check, but nothing is found.

Here is output of mem program (a PC of 636KB):

Memory Type        Total       Used       Free
----------------  --------   --------   --------
Conventional          636K        55K       581K
Upper                   0K         0K         0K
Reserved                0K         0K         0K
Extended (XMS)     48,128K    44,740K     3,388K
----------------  --------   --------   --------
Total memory       48,764K    44,795K     3,969K

Total under 1 MB      636K        55K       581K

Total Expanded (EMS)                    48M (49,823,744 bytes)
Free Expanded (EMS)                  3,376K  (3,457,024 bytes)

Largest executable program size       581K (594,512 bytes)  
Largest free upper memory block         0K       (0 bytes)  
MS-DOS is resident in the high memory area.

But some of PCs have 640KB converntional memory reported by mem program.

I am not clear about the memory in Win95.
Please tell me how to find the reason and fix it.
Watch Question


Edited text of question

If your any of your Windows programs are using 16-bit dirvers or even 32 bit-bit protected mode video drivers, it could be affecting your conventional memory size. You would need to REM out any config.sys and autoexec.bat files that reference them. The first 640K of memory is addressed from 000h-9fffh. You can check your memory usage under Computer properties to see what might be using the balance of your memory. You can also look in Dos under MSD.

if u r using drive compression in win95 it would also use conventional memory. But what u have pasted in is not free conventional memory? it is the total conventional listed by mem command. Conventional memory works exact same in Win95 as in DOS. Get a good Antivirus program, eg dr solomons available free for trial on the web

if u r using drive compression in win95 it would also use conventional memory. But what u have pasted in is not free conventional memory? it is the total conventional listed by mem command. Conventional memory works exact same in Win95 as in DOS. Get a good Antivirus program, eg dr solomons available free for trial on the web

     Conventional memory in a DOS box works exactly the same as it does in a normal DOS session.  When you open a DOS box, type MEM /C /P to get a list of the programs occupying conventional memory.  Probably the reason you do not get all 640k is being used for a 16-bit driver or DOS environment space, not a virus.  If you still think you have a virus, there are lots of anti-virus programs that you can download for a free trial... Dr. Solomon's, McAfee Anti-virus (http://www.mcafee.com), etc.  Even if you don't have a virus, it never hurts to be careful.

     These days, it doesn't matter much anyway.  Most DOS-based games now use what is known as a "DOS Extender" to use the memory past 640k.  These games still require some conventional memory, but usually only about 350k to 450k.  The only problem is that when playing one of these games under Win95, if you have one of the "Windows 95 compatible" keyboards, if you accidentally hit the logo key between the Ctrl and Alt keys, it'll go back to Win95 and won't let you go back to your game.  To get around this, go to Microsoft's web site (http://www.microsoft.com) and download the Kernal Tools.  There's a program in there called DOSWINKY.INF that will disable this key when you're running a program in a DOS box.

Here's a little batch file that will open EDIT in DOS and you can save it to text to report everything that's being loaded, and where. It would help these fellows help you, you're in real good hands here.

Some PC's have a CMOS settings to reserve 1K for Drive table information.  Check the CMOS for setting called "reserve 1K memory" or something similar.  

Thoiugh I have never seen one reserve 3K...  Double check for virus.
Maybe an answer:
When you are running OEM Service Release 2 (OSR2), there
may not be enough free conventional memory.
Buffers are being loaded into conventional memory.
Add the following lines to the Config.sys file in the root
folder of the boot drive, and then restart your computer:

When a "buffers=" value is not specified in the Config.sys
file, buffers are set to 23. Buffers are loaded into the
High Memory Area (HMA) if space allows. Io.sys and Msdos.sys
are also normally loaded into the HMA, leaving insufficient
room to store 23 buffers. The buffers are therefore loaded
into conventional memory, creating the low memory situation.

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Heard of this?
Virus name  - Dodgy
Virus type  - Boot sector virus
Affects     - Boot sectors of floppy disks, partition sector of hard

A detailed description and extra driver (tested with Findvirus version
7.73) maybe found on our web site at:


Detection for the Dodgy virus will be included in Dr Solomon's
FindVirus v7.74

(a confirmed win95 virus)

I strongly urge you to take Ikon's comment to heart. Then:
I just prepared this yesterday.
How To Optimize DOS Memory Under OSR2? The EMM386 NOEMS BUG

If you are using the EMM386 memory manager with the NOEMS or RAM switch, your upper memory and extended memory is lost when restarting in DOS mode. All drivers and devices then
load into low memory (causing a shortage of low memory). Here's a sample config.sys line which causes the bug.
Solution: None.
Workaround: Some users appear to not have this problem at all, for whatever reasons. There seem to be users the suggestion works for, and users the suggestion doesn't work for. So, here they are:
Suggestion 1: Use an older version (previous Windows95 or DOS version) of EMM386.EXE.
Suggestion 2: Use the AUTO switch instead of NOEMS or RAM.
Suggestion 3: Make sure you load SMARTDRV as well.
NOTE: The SMARTDRV option is a topic of great debate; Experiment.
Suggestion 4: Use the RAM ON switch instead.
Suggestion 4: Do not allow the doublespace driver to load.
Suggestion 5: Upgrade to DirectX 4 (DirectX 2 is bundled with OSR2).
Suggestion 6: Use the "MS-DOS Prompt" icon/.pif instead of booting/restarting to DOS. Customize the settings of this .pif.
Fun, 32-Bit Style Game users, listen up!
For maximum DOS memory in an MS-DOS session, add the line LocalLoadHigh=1 to the
[386Enh] section of SYSTEM.INI. Players of Duke Nukem 3D and Quake-or anyone who plays a
game that uses 32-bit DOS extender software-will reap the benefit of that much more memory.
Low Free Conventional Memory with OEM Service Release 2
There is so much information on memory and OSR2 that I couldn't put it all here. Do this please;
Go to; http://www.microsoft.com/kb/default.asp
At Step 1: Choose Windows 95
At Step 5: Enter as a Search Phrase "msdos.sys and memory"
New in OSR2 is support for Hard Drive/CDROM Direct Memory Access. With DMA enabled, no processor time is used to access the hard drive or CD ROM. The result is an improvement in overall
system performance. However, the default for DMA is disabled (for the default OSR2 Bus Mastering IDE controller drivers)!
Note that varying hardware configurations will show varying improvements in system performance when DMA is enabled.
To enable HD DMA, go to Control Panel > System > Device Manager > Disk Drives. Highlight your hard drive, click properties. Click the "settings" tab. Check the box next to "DMA." Restart the
system when prompted, and repeat for any additional hard or CD ROM drives.
NOTE that the DMA checkbox only appears 1) for IDE drives, and 2) only if the default OSR2 bus mastering IDE controller drivers are installed and configured correctly. Some IDE drives do not
support Bus Mastering. To determine if your hardware supports Bus Mastering, do the test
described at http://www.microsoft.com/kb/articles/q159/5/60.htm.
OSR2 supports Bus Mastering, but only by checking the DMA box, is Bus Mastering turned "on."
Note that the DMA check box only appears when using the default Windows95 OSR2 Bus Master drivers. If you are using non-bus mastering drivers, the DMA box won't show up because Bus
Mastering cannot be enabled. If you are using other Bus Mastering drivers, the DMA box does not show up because it is enabled by default, and you don't have the option of disabling Bus Mastering.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.