Day-to-day running Win 9x/ME with more than 1 GiB RAM hardware and setup used by members who do it
#101
Posted 25 February 2012 - 09:24 PM
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! :>)
#102
Posted 25 February 2012 - 10:34 PM
rloew, on 25 February 2012 - 01:06 PM, said:
RetroWish, on 25 February 2012 - 01:40 AM, said:
---------------------
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):
WinArenas.gif (9.08K)
Number of downloads: 7
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.
#103
Posted 25 February 2012 - 10:59 PM
I suspected that you meant unpatched vs. patched but you could have been referring to something else.
RetroWish, on 25 February 2012 - 07:32 PM, said:
[...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.
Quote
[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.
Quote
[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.
Quote
[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.
Quote
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.
Quote
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.
Quote
[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.
Quote
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.
This post has been edited by rloew: 25 February 2012 - 11:02 PM
#104
Posted 26 February 2012 - 01:05 AM
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"! :>)
#105
Posted 26 February 2012 - 02:57 AM
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
#106
Posted 26 February 2012 - 06:53 PM
@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
#107
Posted 26 February 2012 - 10:22 PM
RetroWish, on 26 February 2012 - 06:53 PM, said:
@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.
#108
Posted 27 February 2012 - 01:14 AM
As usual, your response to my latest post has been prompt and, most importantly, quite comprehensive. Thank you very much for staying with me so far! :>)
My references to "NRU"/"RU" do not aim at establishing some kind of objective dichotomy. Rather, they reflect my actual experiences and puzzlements with various aspects related to the topic under discussion. Please remember that, in your case, my subjective status may come across as decidedly "yesterday's news" since "you've been there, done that", so to speak. I am still struggling with basic moving parts that are super-foundational by the their very all-encompassing nature (e.g. XMS issues, 4th GB mapping issues etc.)
Here is an example. Leyko writes:
[What's needed done first is to forget, once and for all, EMM386 and other memory managers; more or less stable work, or even (system) booting can't be guaranteed with them]
What is one to make of this? Is he including such venerable "beasts" as HIMEM or HIMEMX ?!!? What aspects of EMM386 (QEMM etc) are potentially problematic here? Is it the Expanded Memory or, perhaps, the DEVICEHIGH/LOADHIGH invokations, or both? You see what I mean?
In any case, any and all assistance with such matters is greatly appreciated.
Cheers
#109
Posted 27 February 2012 - 02:49 AM
#110
Posted 27 February 2012 - 05:56 PM
Thanks for the prompt response. That's what I thought too! :>) I speculate that, as experienced "old pros", @Rloew and you have seen your fair share of digital pathologies... To this effect, I would like to ask your opinion about a couple of things regarding HIMEMX and EMM386.
First off, when it comes to HIMEMX, is DOS=HIGH required, implied or, even understood? Also, how can one activate the DOS=UMB option? Does one have to use EMM386? Finally, I have read somewhere that there are some drawbacks to using HIMEMX in MS-DOS 7.1 real-mode. Is this true?
My second question has to do with the Win98se environment itself (not real-mode). Is there a drawback to utilizing the DOS=UMB option while making darn sure that EMM386 (or whatever works with HIMEMX) does not provide Expanded Memory services (i.e., NOEMS NOVCPI)?
Thanks for your patience.
#111
Posted 28 February 2012 - 08:53 PM
I made some progress in dealing with my second question. I have experimented with EMM386 in the context of HIMEMX. My attempt at just allowing UMA/UMB utilization while blocking the provision of Expanded Memory services (NOEMS NOVCPI) led to quite a surprise. Namely, Win98SE just recognized 384 MB of physical memory!!
I wonder if HIMEMX is compatible with some other, hopefully unobtrusive, way to *just* allow UMA/UMB utilization *within* the Win98SE environment...
#112
Posted 28 February 2012 - 10:18 PM
RetroWish, on 27 February 2012 - 05:56 PM, said:
It's not required nor implied, but is understood and will work.
RetroWish, on 27 February 2012 - 05:56 PM, said:
Either EMM386, or any of CEMM, 386MAX, QEMM or NETROOM. None are good ideas with Win 9x/ME so, if you cannot live without UMBs, and have an AMD based machine, the best solution (which is not so good) is to keep using EMM386. If you have an Intel based machine, UMBPCI is the way to go.
RetroWish, on 27 February 2012 - 05:56 PM, said:
I think this answers the questions your experimentation hasn't already answered. Now, enough of thread hijacking. If you want to discuss anything outside the scope of this thread's title, please do open another thread.
#113
Posted 23 April 2012 - 02:43 PM
This topic has been updated!
What's New?
on post #2:
loblo's 4GB system (the only known 4GB Windows Me system in the world
This post has been edited by loblo: 23 April 2012 - 02:45 PM
#114
Posted 24 April 2012 - 12:48 AM
#115
Posted 21 July 2012 - 09:24 PM
Motherboard: Asus M5A97
OSes: Windows 98SE + Windows 95, ME, 3.11 and XP SP3 + MSDOS 7.10, using RFDISK Multi-Boot Profile MBR
Memory: 32 GiB (4x 8 GiB DDR3 DIMMs; 3069 MiB available to Win 98SE; 29692 MiB available to RAMDISKs and 64-Bit Memory SDK)
CPU: AMD FX-8120 Eight Core
Motherboard Ethernet and Sound Disabled (No Win 9x Drivers)
USB 3 (XP Only)
Video Card: NVIDIA 7200GS PCI-E (with 81.98 Driver, with shutdown problem)
Sound Card: Envy24
Ethernet Card: RTL8139
2 Removable SATA Trays
1TB SATA Hard Drive currently installed
Blu-Ray Writer
TBPLUS Disk Package
CONFIG.SYS:
DEVICE=C:\HIMEMEX.SYS /S /V ; used with RAMDSK64 and 64-Bit Memory SDK.
DEVICE=C:\WINDOWS\HIMEM.SYS /NUMHANDLES=64
AUTOEXEC.BAT:
RAMDSK64 R: 6000000 (6GB non-XMS RAMDISK For Internet Temporaries)
Remaining 64-Bit RAM reserved for 64-Bit RAM and Multi-Core SDKs.
vmm32.vxd (real mode), vcache.vxd: 4.10.0.2222, vmm.vxd: 4.10.0.2226 with RAM Limitation Patch 7.1 (with /M and /P Options)
#116
Posted 21 July 2012 - 10:40 PM
What's New?
on post #2:
RLoew's #2 machine has been updated. Now it is the new RAM record holder for 9x/ME: 32 GiB RAM onboard!
Let's keep the list up-to-date:
If you are using 9x/ME with more than 1 GiB RAM, do PM me your info and you shall be added to the list!
#117
Posted 30 July 2012 - 02:07 PM
rloew, on 24 April 2012 - 12:48 AM, said:
Only known 4GB Windows Me system in the world in daily "production" use I guess then.
That's not why I am posting however, but because my system specs have slightly changed, I have replaced my sound card again and I am now happily using an ESI Juli@.
I had too many issues with the M-Audio 2496 vxd driver, ranging from it not being fully multiclient to having noise in the output of some audio applications and generating OS freezes if using GPU accelerated applications after using certain audio apps such as winamp because of some bad interaction with directdraw apparently... None of that crap with the Juli@ which sounds better than the 2496 and whose wdm driver is apparently flawless and has I believe the lowest known audio latency (down to 1ms).
Tip in case of problems for installing/reinstalling wdm audio drivers correctly btw: deleting the HKLM\Enum\SW registry key before install/reinstall is a VERY GOOD IDEA.
This post has been edited by loblo: 30 July 2012 - 02:13 PM
#118
Posted 31 July 2012 - 07:27 PM
What's New?
on post #2:
LoneCrusader's #1 machine has been updated, and his new #2 machine has been added.
Let's keep the list up-to-date:
If you are using 9x/ME with more than 1 GiB RAM, do PM me your info and you shall be added to the list!
#119
Posted 01 August 2012 - 07:54 AM
I decided to change my graphics card back to the nVidia one I tried out some time ago, as I'm now running more demanding applications on the XP side of the system.
The card is now a XFX branded nVidia GeForce 7950GT AGP card with 512 MB of memory on-board.
Works fine with the unofficial tweaked nVidia Display Driver 82.69 at 1920 x 1080 (I've finally bought a 21st century monitor!)
The AGP aperture is now set to 128 MB (the only configuration that works with the card IIRC).
I now have only (!) 3071 MB available to Win 98SE.
I'm putting up with the bad 98 shutdown caused by the card, in every other respect the system is running beautifully!
Cheers, Dave.
#120
Posted 01 August 2012 - 08:06 AM
- ← Windows 98 on Floppy Disks?
- Windows 9x / ME
- How to prevent scandisk from scanning a specific drive during bootup →



Help

Back to top










