Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 



dencorso

Day-to-day running Win 9x/ME with more than 1 GiB RAM

Recommended Posts

dw2108    0

Thanks, dencorso. That might have answered my question. Over a gig, are there motherboards such that the BIOS will recognize the RAM with the user tricked into believing all is well when something is only misreading the BIOS, so that we would be merely wasting that RAM? If so, this could be a money saver when it comes to buying boards and RAM.

Dave

BTW. Was not trying to mislead but only find out what happened with 98 SE.

Edited by dw2108

Share this post


Link to post
Share on other sites

dencorso    542

Dave, it's OK!

Rest assured I'm sure your intention was not to mislead.

That said, it's relatively easy to run safely Win 98FE/SE with up to 1 GiB of RAM (or Win ME with 2 GiB, having it recognize almost all of it).

For Win 98FE/SE the how to is outlined here.

Share this post


Link to post
Share on other sites
RetroWish    0

Below are my system's relevant specs.

BIOS Level Data

-------------------------

Motherboard = ASUS P4S800-MX

CPU Socket = Socket 478 for Intel Pentium 4 Northwood/Willamette processor

CPU Speed = 3.0 Ghz

Chipset = SiS661 FX and SiS963L

Memory Sockets = 2 x 184-pin DDR DIMM sockets (max 2 GB)

Memory = 2 x 1 GB PC3200 unbuffered non-ECC DDR DIMMs

VGA = SiS Real256E integrated graphics (onboard)

Onboard VGA Shared Memory Size = 64 MB

Graphics Aperture Size = 64 MB

OS Level Data

----------------------

OS = Win98SE

Gape's Unofficial SP 2.1 = YES

Other Patches = NO

Permanent Paging File on a HDD = YES

CONFIG.SYS Data

----------------------------

DEVICE=c:\WINDOWS\himemx.exe

INSTALL=c:\WINDOWS\xmsdsk.exe 393216 /T

SYSTEM.INI Data

--------------------------

[386Enh]

MinSPs=16

DMABufferSize=64

MaxPhysPage=48600

ConservativeSwapfileUsage=1

EMMExclude=C000-CFFF

PagingDrive=G:

MinPagingFileSize=131072

MaxPagingFileSize=131072

[vcache]

MaxFileCache=393216

SYSTEM.CB Data

---------------------------

[386Enh]

EMMExclude=C000-CFFF

MaxPhysPage=1FFFF

[vcache]

MaxFileCache=65536

Observations

---------------------

System Properties reports 1,156 MB of physical RAM recognized by the OS. Adding the Onboard VGA Shared Memory Size of 64 MB yields 1,220 MB which precisely matches the theoretical maximum achievable without the "magic" of a certain rather well known patch. :>)

After sequentially opening up 30 DOS command windows with no problems (resources never even came close to being critical) I smiled and stopped! :>)

All RAM drive operations have been smooth and stable with Thorough ScanDisk Test always being successful to the very end (never hangs the computer).

Under normal conditions (e.g., other than safe mode), the sum total of the MaxFileCache, RAM drive and Graphics Aperture size physical RAM *provisions* is:

384 MB + 384 MB + 64 MB = 832 MB

Now, my system has 2048 MB of physical RAM. If one subtracts the theoretical maximum of 1,220 MB recognizable by the OS (in my case, clearly *achieved* as well), one gets:

2048 MB - 1220 MB = 828 MB

This amount is a bit *smaller* than the 832 MB *provision* above which is OK, practically speaking. My hunch is that the 30 DOS command windows draw on "regular" Win98SE memory...

Share this post


Link to post
Share on other sites
rloew    93

Observations

---------------------

System Properties reports 1,156 MB of physical RAM recognized by the OS. Adding the Onboard VGA Shared Memory Size of 64 MB yields 1,220 MB which precisely matches the theoretical maximum achievable without the "magic" of a certain rather well known patch. :>)

The VGA has nothing to do with with the reported size or the limit.

You set MaxPhysPage to only recognize 1,158 MB of RAM. 2 MB of RAM is lost due to memory allocation slop.

1,220 is not a theoretical limit. You are already at the limit. The limit varies slightly with the specific configuration.

My Patch is not "magic" it just fixes a number of bugs.

Under normal conditions (e.g., other than safe mode), the sum total of the MaxFileCache, RAM drive and Graphics Aperture size physical RAM *provisions* is:

384 MB + 384 MB + 64 MB = 832 MB

MaxFileCache plus any XMS RAM Disk plus some Graphics Apertures determine the amount of System Arena space used for Memory Management. The Kernel and DOS Command Windows use more. The System Arena is limited to 1GB total of Virtual Memory. This limitation is why MaxFileCache needs to be specified when you exceed approx 768MB of RAM.

You would need my Non-XMS RAM Disk, which doesn't use System Arena space, to go any larger.

Now, my system has 2048 MB of physical RAM. If one subtracts the theoretical maximum of 1,220 MB recognizable by the OS (in my case, clearly *achieved* as well), one gets:

2048 MB - 1220 MB = 828 MB

This amount is a bit *smaller* than the 832 MB *provision* above which is OK, practically speaking. My hunch is that the 30 DOS command windows draw on "regular" Win98SE memory...

None of this applies. You have plenty of unused RAM. You are nowhere near your limit.

Your Physical Memory allocation is as follows:

Windows: 1,158 MB

RAM Disk: 384 MB

Aperture: 64 MB

Unused: 441 MB

Reserved: 1 MB (May Vary depending upon motherboard)

Total: 2,048 MB

Edited by rloew

Share this post


Link to post
Share on other sites
RetroWish    0

Hi @rloew,

For starters, I imagine that you would agree that, given the dry, technical content of this forum, some humor may be welcome. I do have a science background and know rather well the difference between "magic" and "rationalist science". I am truly sorry if my well intentioned humor has offended you. My apologies. As far as I am concerned, this is water under the bridge...

Given your prompt response to my post, I assume that you are *still* interested (are you the only one?) in providing key clarifications in an area that, historically, has been confusing, even disorienting, at times. I will try to be as meticulous as I can, given the terminological chaos that may loom large in regards to this particular topic...

First off, I would like to excise the term "theoretical" from my terminology. Instead, I propose that we adopt a Boolean distinction along the lines of:

1) Non-Rloew Universe (NRU)

2) Rloew Universe (RU)

If I am to *truly* understand the technical realities/constraints underpinning the RU, I sure as hell need to understand those underpinning its conceptual and coding predecessor, the NRU... So, kindly bear with me, if you can.

To my statement that "System Properties reports 1,156 MB of physical RAM recognized by the OS" you partially responded:

[...with the reported size or the limit]

I assume, then, that System Properties is attempting to reflect *some* kind of NRU limit (not "theoretical", but a *practical* limit, nonetheless), right?

To my statement that "Adding the Onboard VGA Shared Memory Size of 64 MB yields 1,220 MB" you responded:

[The VGA has nothing to do with with the reported size or the limit]

If true, a lot of NRU technical information regarding this particular aspect that one comes across in these forums is obviously wrong!!

You also wrote:

[You set MaxPhysPage to only recognize 1,158 MB of RAM]

Well, yes. :>) This is *my* practical NRU limit that I zeroed in on by laborious trial and error. My situation is definitely not unique around here, I understand...

Then, you stated:

[1,220 is not a theoretical limit. You are already at the limit. The limit varies slightly with the specific configuration.]

and

[2 MB of RAM is lost due to memory allocation slop.]

Yes, we are in total agreement in an NRU sense. There have been numerous statements in these forums to the effect that no one has ever managed to breach the 1,220 MB NRU *practical* limit... By the way, thank you for enlightening me regarding the poor, little 2 MB that are not reported by System Properties. :>)

Very importantly, you stated:

[MaxFileCache plus any XMS RAM Disk plus some Graphics Apertures determine the amount of System Arena space used for Memory Management. The Kernel and DOS Command Windows use more. The System Arena is limited to 1GB total of Virtual Memory.]

Thank you very much for explicitly specifying the important components applicable here. Clearly, the System Arena requires the "existence" of *some* Virtual Memory.

Here is where I need big-time enlightenment, I am afraid. To begin with, you stated:

[The System Arena is limited to 1GB total of Virtual Memory.]

Yes, under NRU conditions, right? What about *minimum* requirements, though? More to the point, you also wrote:

[This limitation is why MaxFileCache needs to be specified when you exceed approx 768MB of RAM.]

Ok, here is my *main* question. What is the relationship between physical RAM *installed* (not necessarily recognized by the OS as such) and Virtual Memory, always in an NRU sense? I am afraid that I cannot wade through all these "urban legends" all by myself. :>) To boot, aside from the Virtual Memory requirements that you have alluded to, do all (some of) these components utilize *physical* RAM as well, when active/invoked? If so, does the RAM come off the 1,158 MB that the OS recognizes?

More specifically, you wrote:

[Your Physical Memory allocation is as follows:

Windows: 1,158 MB

RAM Disk: 384 MB

Aperture: 64 MB

Unused: 441 MB

Reserved: 1 MB (May Vary depending upon motherboard)

Total: 2,048 MB ]

If "Unused" amounts to 441 MB, where does the MaxFileCache provision fit, if or when actually activated by the OS? Does it consume part of the 1,156 MB that the OS recognizes? (I have already asked this before in a more inclusive framework)

I am afraid that I am lost in a dual world where the same components appear to make separate (?) claims on installed/recognized physical RAM as opposed to the Virtual Memory which is the home of the System Arena. Any further enlightenment would greatly be appreciated.

Thank You

Share this post


Link to post
Share on other sites
rloew    93

First off, I would like to excise the term "theoretical" from my terminology. Instead, I propose that we adopt a Boolean distinction along the lines of:

1) Non-Rloew Universe (NRU)

2) Rloew Universe (RU)

[edit by dencorso]

Not familiar with the terminology. Please clarify.

Share this post


Link to post
Share on other sites
bphlpt    104

I think he meant:

1) system without rloew modified files

2) system with rloew modified files

So the rest of his post is pretty much asking for clarification of terms and measurements using a system that does not have rloew modified files in it, if I understood him correctly.

Cheers and Regards

Share this post


Link to post
Share on other sites
RetroWish    0

Ok, Rloew

In the interest of *finally* doing away with a bunch of misconceptions and "urban legends", I will walk the proverbial extra mile here.

Non-Rloew Universe (NRU)

--------------------------------------

This is the state of affairs regarding Win98SE *without* a user doing anything like what you have done with your celebrated patch to address the RAM limitations under long-standing discussion. It certainly includes a technical understanding of why the limitations *do* exist in the NRU and, possibly, a conceptual as well as technical blueprint aiming at overcoming them.

Rloew Universe (RU)

------------------------------

The starting point is, of course, the NRU. The RU is characterized by the existence of individuals (like yourself ), who, armed with the requisite technical knowledge, proceeded to *do* something about the aforesaid NRU RAM limitations. It also includes all relevant experience relating to the *actually* overcome RAM limitations, whether as programmers/distributors of successful solutions (patches) as well as users of such tools (bug fixes).

I hope this sets the stage for an eagerly awaited discussion! :>)

Share this post


Link to post
Share on other sites
dencorso    542

Observations

---------------------

System Properties reports 1,156 MB of physical RAM recognized by the OS. Adding the Onboard VGA Shared Memory Size of 64 MB yields 1,220 MB which precisely matches the theoretical maximum achievable without the "magic" of a certain rather well known patch. :>)

The VGA has nothing to do with with the reported size or the limit.

The Onboard VGA reserves its share of RAM for itself much before the time DOS boots, so by that time it aready is "not there". Nonetheless, part of it will be mapped within the System Arena and part at the A0000-BFFFF region of the Compatibility Arena of Virtual Machine #0 for Win 9x/ME.

Real Addresses are the dominion of the VMM (and of the hardware itself). All that is there, from the POV of the rest of the SO and all other applications are Virtual Addresses. The Swapfile is part of the implementation of Virtual Memory, but its size does not define the Virtual Address Map, which is predefined by the OS, taking into account the CPU's intrinsic limits to address space. The full Virtual Address Space used by Win 9x/ME is described in Q125691 - INFO: Overview of the Windows 95 Virtual Address Space Layout. Now, in a nutshell, it's set like this (and divided in four Arenas by MS):

post-134642-0-52964900-1330230735_thumb.

You should, by all means, re-read Q125691, whence the figure above came, and also Igor Leyko's Article (in English, by GreyPhound) (link to the original Igor Leyko's Article in Russian). So, there are just so many adresses, and that's all. All things that go in the System Arena must fit within 1 GiB, else the OS must crash from lack of other options.

Share this post


Link to post
Share on other sites
rloew    93

Going from Rloew to "Rolw" only made things unclear. It does not follow.

I suspected that you meant unpatched vs. patched but you could have been referring to something else.

To my statement that "System Properties reports 1,156 MB of physical RAM recognized by the OS" you partially responded:

[...with the reported size or the limit]

I assume, then, that System Properties is attempting to reflect *some* kind of NRU limit (not "theoretical", but a *practical* limit, nonetheless), right?

The System Properties shows the amount of Physical RAM Memory managed by Windows. There is no limit to what it can show.

The limit of interest is determined by an overflow in a table that is used to manage Physical Memory. There are other limits, but they are higher.

To my statement that "Adding the Onboard VGA Shared Memory Size of 64 MB yields 1,220 MB" you responded:

[The VGA has nothing to do with with the reported size or the limit]

If true, a lot of NRU technical information regarding this particular aspect that one comes across in these forums is obviously wrong!!

I don't recall seeing 1,220 MB being mentioned anywhere.

The VGA Shared Memory is taken from the Total Physical RAM, but is not related to the Maximum allowed RAM. So 1,220 MB has no meaning.

You also wrote:

[You set MaxPhysPage to only recognize 1,158 MB of RAM]

Well, yes. :>) This is *my* practical NRU limit that I zeroed in on by laborious trial and error. My situation is definitely not unique around here, I understand...

Lucky you. I only got 1,152 MB in my experiments.

Very importantly, you stated:

[MaxFileCache plus any XMS RAM Disk plus some Graphics Apertures determine the amount of System Arena space used for Memory Management. The Kernel and DOS Command Windows use more. The System Arena is limited to 1GB total of Virtual Memory.]

Thank you very much for explicitly specifying the important components applicable here. Clearly, the System Arena requires the "existence" of *some* Virtual Memory.

Here is where I need big-time enlightenment, I am afraid. To begin with, you stated:

[The System Arena is limited to 1GB total of Virtual Memory.]

Yes, under NRU conditions, right? What about *minimum* requirements, though? More to the point, you also wrote:

The System Arena is exactly 1GB of Virtual Memory, by definition.

This memory can be mapped to Physical Memory, Swapped to Disk, or unused.

[This limitation is why MaxFileCache needs to be specified when you exceed approx 768MB of RAM.]

MaxFileCache sets the amount of Virtual Memory reserved for the File Cache. The actual amount of Physical Memory used is dynamic, but the Virtual Memory usage never changes.

Ok, here is my *main* question. What is the relationship between physical RAM *installed* (not necessarily recognized by the OS as such) and Virtual Memory, always in an NRU sense? I am afraid that I cannot wade through all these "urban legends" all by myself. :>) To boot, aside from the Virtual Memory requirements that you have alluded to, do all (some of) these components utilize *physical* RAM as well, when active/invoked? If so, does the RAM come off the 1,158 MB that the OS recognizes?

Any active Code or Data must reside in Physical Memory. Windows allocates general RAM from the RAM it reserved at boot, 1,158 MB in your case.

Memory Mapped I/O, Adapter RAM (including VGA Apertures), and DOS based RAM Disks, are not allocated from this RAM.

But managing this Memory may tie up Virtual Memory in the System Arena to map to it.

More specifically, you wrote:

[Your Physical Memory allocation is as follows:

Windows: 1,158 MB

RAM Disk: 384 MB

Aperture: 64 MB

Unused: 441 MB

Reserved: 1 MB (May Vary depending upon motherboard)

Total: 2,048 MB ]

If "Unused" amounts to 441 MB, where does the MaxFileCache provision fit, if or when actually activated by the OS? Does it consume part of the 1,156 MB that the OS recognizes? (I have already asked this before in a more inclusive framework)

In your Computer, the File Cache premanently reserves 384MB of the System Arena in Virtual RAM. When in actual use, it will take up to 384MB of Physical RAM from the 1,156 MB recognized by Windows.

I am afraid that I am lost in a dual world where the same components appear to make separate (?) claims on installed/recognized physical RAM as opposed to the Virtual Memory which is the home of the System Arena. Any further enlightenment would greatly be appreciated.

With 4 different types of Virtual Arenas, 4 different usages of Physical RAM, and Memory Mapped I/O Space, it can get complicated.

Even the use of HIMEMX vs. HIMEM has an effect.

You should probably read up on Memory mapping and Virtual Memory.

Edited by rloew

Share this post


Link to post
Share on other sites
RetroWish    0

Hello @rloew,

I am really indebted to you for your prompt and comprehensive reply to my posts. Now that you have pointed the way towards further specific technical enlightenment I will be hitting the books shortly. If I have further questions I know where to come for answers... I will try not to waste your time with information and conclusions that I can access/arrive at on my own, being scientifically meticulous etc.

Thanks Again

PS. Sorry about the unfortunate spelling mistake. Now I've got it. It is "RLOEW"! :>)

Share this post


Link to post
Share on other sites
dencorso    542

Here are two good book recommendations:

Modern Operating Systems (by Andrew S. Tanenbaum) ISBN 978-0-13-600663-3 (not necessarily the 3rd ed., which is the current one)

or, if you're much more technically minded, the book that enabled/inspired Linus Torvalds to create LINUX:

Operating Systems: Design and Implementation, (by Andrew S. Tanenbaum and Albert Woodhull), ISBN 978-0-13-142938-3

Share this post


Link to post
Share on other sites
RetroWish    0

Hello @Dencorso and @Rloew,

@Dencorso, thank you for taking the time to suggest those two books for further technical reading. They will have to wait until summer! :>) Also, thank you for entering my system into the ever expanding "hall of retro-fame"...

@Rloew, Igor Leyko's article was a conceptual game changer for me. A million thanks for pointing me in that direction! :>) If it is not too much to ask, could you comment in your usual precise language on the differences between HIMEM and HIMEMX, especially as they relate to VMM.VXD initialization? It appears that HIMEMX (which I *am* using) significantly expanded options, always in an NRU sense and in the context of *this* topic, right?

Cheers

Share this post


Link to post
Share on other sites
rloew    93

Hello @Dencorso and @Rloew,

@Dencorso, thank you for taking the time to suggest those two books for further technical reading. They will have to wait until summer! :>) Also, thank you for entering my system into the ever expanding "hall of retro-fame"...

@Rloew, Igor Leyko's article was a conceptual game changer for me. A million thanks for pointing me in that direction! :>) If it is not too much to ask, could you comment in your usual precise language on the differences between HIMEM and HIMEMX, especially as they relate to VMM.VXD initialization? It appears that HIMEMX (which I *am* using) significantly expanded options, always in an NRU sense and in the context of *this* topic, right?

Cheers

I'm not sure why you are so obsessed with "NRU". The vast majority of the issues discussed are not affected by "RU" vs. "NRU".

Only the following are different:

With my Patch, Windows 9x is not limited to recognizing 1,158 MB of Physical RAM. It is able to use as much as 4GB without crashing.

There is also a DMA Memory Patch, which fixes a DMA Memory exhaustion issue that has not been discussed so far.

I also have a Non-XMS RAM Disk that is completely unmanaged by Windows, so no Virtual Memory in the System Arena is reserved at any time.

In addition I have a 64-Bit Version that can use 64-Bit Physical Memory, leaving all 32-Bit RAM available for Windows or other purposes.

All other matters, such as the System Arena issue are unaffected.

As to your current question.

The difference between HIMEM and HIMEMX, that I studied, is the way that Memory Allocated outside of Windows is handled. Since XMS RAM Disks are allocated from memory before Windows is loaded, they are affected by this choice.

HIMEM is understood by Windows, so Windows takes over the management of this Non-Windows Memory. To do so, Windows reserves an equal sized area of Virtual memory in the System Arena, to map the Physical RAM of the Non-Windows Memory into Virtual Memory, so accesses to this Memory can be handled within Windows.

HIMEMX is not understood by Windows, so Windows is not aware of the Allocated Non-Windows Memory, and does not reserve Virtual Memory in the System Arena. Calls to HIMEMX, to access this Memory, are passed to Interrupt 15H which is handled by Windows. Windows will then Allocate Virtual Memory from the System Arena to map the RAM being accessed.

In the case of a XMS RAM Disk, using HIMEM will end up Allocating System Arena Virtual Memory for the entire RAM Disk, immediately upon Startup. If the RAM Disk is too big, Windows will crash.

If HIMEMX is used, System Arena Virtual Memory is only Allocated when the RAM Disk is actually accessed. This Memory is never Released, so eventually the entire RAM Disk will be Allocated in System Arena Virtual Memory. With an oversized RAM Disk, Windows will crash as you fill it up.

Share this post


Link to post
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.

×