Converntional Mem less than 640KB

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.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

yan051197Author Commented:
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
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

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 (, 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 ( 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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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;
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
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.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows OS

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.