Jump to content

"Not Enough Memory" error discussion


Recommended Posts

Technically Windows 98 SE with some patches can have up to 1gb of classical ram

Just out of interest win9x can have 4 gig of "classical" ram being 32bit, altering vcache.vxd might be a start in enabling this.

All the best

Link to comment
Share on other sites


Technically Windows 98 SE with some patches can have up to 1gb of classical ram

Just out of interest win9x can have 4 gig of "classical" ram being 32bit, altering vcache.vxd might be a start in enabling this.

All the best

You think altering vcache.vxd would help that cause?

Link to comment
Share on other sites

Technically Windows 98 SE with some patches can have up to 1gb of classical ram

Just out of interest win9x can have 4 gig of "classical" ram being 32bit, altering vcache.vxd might be a start in enabling this.

All the best

You think altering vcache.vxd would help that cause?

Lowering vcache.vxd`s internal limit to 200 meg or so should certainly leave plenty of addresses available in the system arena, this lower amount should also be plenty for the file system drivers to use. If nothing else it will alleviate the required system.ini entries and begin to track down which part prevents us from using the full amount of memory and even going above this limit by using 36 bit (win2k`s method) available in cpu`s from ages ago.

It would be also interesting to find out if it is this file or if not which one that interacts with the cpu memory protection management hardware checking the segment limit in the descriptor table entry.

Edited by oscardog
Link to comment
Share on other sites

  • 1 month later...
  • 10 months later...

I'm using a computer with Epox EP-8KRA2+ and 1GB RAM. This motherboard has PATA, SATA and HPT372 RAID controllers.

Last year I was using just the PATA controller. SATA and RAID were deactivated in BIOS. Win98 ran with no MaxPhysPage and 768 MB cache.

This year I bought 2 HDDs and I activated the RAID controller. I had to reduce cache size to 512 MB to avoid memory errors.

This week I connected a SATA HDD and I activated the SATA controller. Even with cache size set to 64 MB I cannot start windows! Now I'm using MaxPhysPage=2FFFF and I can't open any DOS windows.

I read post #4 where oscardog explained vcache and system arena, and I read some articles on the internet about this subject, but I still don't understand some things:

- How can a 65 KB SATA driver use so much memory in system arena?

- I understand that vcache can use memory from system arena, but why having more RAM creates problems? System arena is a virtual memory with fixed size and address. And why does MaxPhysPage=2FFFF help? How does it affect system arena?

- If vcache uses memory from system arena, can't it be moved somewhere else (private arena or shared arena) with a patch?

- If Windows doesn't have enough memory to start, bootlog always shows that it stops at ESDI_506.PDR. Why?

Edited by Marius '95
Link to comment
Share on other sites

Even XP has trouble with SATA drives. i think that depending on SATA driver it may cause trouble. driver is just not optimized well.

also how big is disk you connected? maybe 137gig patch needs to be extended and included in vcache.vxd.

Link to comment
Share on other sites

Maybe wrong ESDI_506.PDR version for your large HDD.

Or you connected Pata and Sata drives at the same time and it's not compatible toghether.

ESDI_506.PDR is not used for SATA. SATA uses VIAMRAID.MPD.

Yes, I used all 3 controllers simultaneously:

- PATA: 120GB HDD (Win98) + CD + DVD

- SATA: 500GB HDD

- RAID: 2x500GB RAID 0

When I activate SATA, a new PATA controller is detected but afterwards everything works OK. I didn't notice any performance problems but (because of these memory problems) I keep the SATA HDD as a backup drive and rarely use it.

But I still don't understand why it uses so much memory...

Are there any "generic" drivers for SATA controllers that I can test? Or is there any other "generic" PATA driver that replaces ESDI_506.PDR?*

*I know about VIA Bus Master Miniport Driver. I can't use it. It's incompatible with DVD writing.

Edited by Marius '95
Link to comment
Share on other sites

My objective is to run Win98 with no memory errors with 1GB RAM, all 3 controllers active, 512 MB cache, and no MaxPhysPage. I did some more testing and:

- Using above configuration, memory erros occur only when the HDD is connected to SATA controller, NOT when controller is active but no drive connected.

- I tried many different versions of SATA driver including v2.20. None solved the problem and there were no differences between them. Computer always restarted while loading ESDI_506.PDR. Using MaxPhysPage=2FFFF windows started but DOS windows could not be opened.

- I tried replacing standard PATA driver (containing ESDI_506.PDR) with VIA Bus Master Miniport Driver v3.20b (containing VIADSK.MPD) and EVERYTHING WORKED!!! In fact, PATA performance is improved with this driver. Too bad I can't keep it - no DVD with this driver.

Conclusion: there must be something wrong with ESDI_506.PDR. I belive this is the main cause for memory errors in (my) Win98.

I wish LLXX was here... :(

Does anyone use only SCSI/SATA drives? I wonder how much memory can Win98 use and how big vcache can be if ESDI_506.PDR is not loaded.

Link to comment
Share on other sites

  • 3 months later...

So after another year of testing i was able to bring up some new tested settings not only included with vcache but also with classic dos memory management:

Config.sys

SWITCHES=/F /E

DOS=HIGH,UMB,noAUTO

FILEShigh=255

BUFFERShigh=32,8

LASTDRIVE=k

FCBShigh=1,0

STACKShigh=0,0

DEVICE=C:\OS\HIMEM.SYS /numhandles=128 /hmain=64 /TESTMEM:OFF /Q

DEVICE=C:\dos\EMM386.EXE RAM NOTR

SET PATH=C:\OS;C:\OS\COMMAND;c:\vc;C:\DOS

SET BLASTER=A220 I5 D1

SET CTSYN=C:\OS

DEVICEhigh=C:\DOS\QCDROM.SYS /D:AADVARK

DEVICEhigh=C:\OS\SETVER.EXE

DEVICEhigh=C:\OS\IFSHLP.SYS

; these lines belong to slovak localization and GUI will not run without them

devicehigh=C:\OS\COMMAND\DISPLAY.SYS con=(ega,,1)

Country=421,852,C:\OS\COMMAND\country.sys

i use emm386.exe because of its compatibility with my dos sound driver. SB16 Emulation driver wont work without it, and also if dos driver is not present the windows driver will fail to run causing system to hang in BSOD.

system is always able to run with FILEShigh=255. no trouble was detected.

Before i used setting BUFFERShigh=99,8 to try largest possible memory for buffers. The following errors occurred:

Civilization I - error message reporting not enough memory. Graphic problems in game

Warcraft III - Log reporting memory adress which "could not be read" and closing the game

Setting it to 32,8 seems to be optimal for system processes (i think it has something to do with IRQ inputs and outputs but i am not sure - the number i choosed is doubled value of IRQs i have in system)

Autoexec.bat

@echo off

cls

@CTTY NUL

LFNFOR ON

set windir=c:\os

set winbootdir=c:\os

mode con codepage prepare=((852) C:\OS\COMMAND\ega.cpi)

mode con codepage select=852

lh keyb sl,,C:\OS\COMMAND\keybrd2.sys

rem c:\dos\xmsdsk\xmsdsk.exe 513732 K: /c1 /t /y

C:\dos\xmsdsk\xmsdsk.exe 524288 K: /c1 /t /y

C:\OS\COMMAND\label K: scorpion

lh C:\dos\blaster\sbeinit.com

c:\dos\shsucdx.com /d:AADVARK /Q /l:f

c:\dos\cmouse\ctmouse.exe

rem lh c:\dos\lsl

rem c:\dos\e1000odi

rem c:\dos\e1000pkt 0x60

rem c:\dos\ipxodi.com /a

rem lh vc

c:\dos\umbpci\umbfill.com

CTTY CON

SET PATH=%PATH%;C:\PROGRA~1\ATITEC~1\ATICON~1

setting windir and winbootdir is mentioned in WinME documentation as some kind of help with one bug preventing from crashing during boot. I found out it can help stabilize systems which are extremely overclocked. This may also affect stability at all.

also note "rem" setting of xmsdisk and "used" setting. forbidden line has smaller value of memory. this was used to set 1024 megabytes in windows when emm386 was present. Later i found out that this small part of memory is troublesome when it comes to real performance. That setting caused some games to crash especially Farcry which caused BSOD during exiting of game. therefore is necessary to set memory to 524288. Why is Ramdisk labeled as Scorpion? it fools system so this memory can be set as target disk for swapfile. Ramdisks cannot be normally set as swapfile, but labeled ramdisk can.

also notice that i use umbfill.com. it has very special function. It stabilizes system while using more than 768mb of memory for windows. with it i am able to use up to 1gb of ram.

System.ini

[386Enh]

MaxPhysPage=40000

ConservativeSwapfileUsage=0

DMABufferSize=64

PagingDrive=K:

MinPagingFileSize=523264

MaxPagingFileSize=523264

[vcache]

MaxFileCache=32768

MinFileCache=32768

ChunkSize=512

MaxPhysPage also helps to stabilize system while using 1gb of ram. Vcache settings are quite cruel, but Microsoft have never tested system behaviour with values larger than 32768. I tested doubled value and sometimes experienced errors with not enough memory, especially when computer was running whole day.

There is also recommended to have"Max" and "Min" values same. System will reserve rigid block of memory for cache and will not change the addressing while system is running so the possibility of colision in ram will be lowered. Chunksize is random. i dont know what exactly it does, i just suspect... :)

also i have good results when setting full paths to some files which are called from system.ini. but not all of them can be called this way.

Link to comment
Share on other sites

@Offler

My PC has a Pentium III 1gig processor, 512mb ram, 80gig HD and a 64mb video card. Will your settings work with my PC? It hangs sometimes when I have several tabs opened simultaneously in Firefox and with Yahoo Messenger running along with it.

Link to comment
Share on other sites

BUFFERShigh=32,8?!

Why that much for crying out loud!

Use buffers = 10 so they'll fit in HMA.

Also, if you want to improve HD performance before Win98 kicks in, you are better off with QCACHE or UIDE than high BUFFERS settings... Just remember to configure Windows to recognize QCACHE/UIDE as a safe driver in IOS.INI.

Link to comment
Share on other sites

to jglori:

the problem can be elsewhere than in buffers. try it and you will see if it help.

to alexanrs:

i know it is still much memory, but thats why i set it this way :D my system is an experiment how far can 32bit single core procesor system go with the same chipset (good old Via Apollo Pro 133T). I am quite generous when it comes to setting some things...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...