Jump to content

Help: I need to Get 2GB installed RAM working in Win98SE


EGOvoruhk

Recommended Posts

I think there might be a little problem with your IO.SYS patch!?

Look at the bytes in the following 2 lines: (o=0x0, d=0xd)

\HIMEM.SYSo/TESTMEM:ONdoo

\HIMEMX.EXEo/MAX=999999do

Good poit, can we display or log what will io.sys really call?

Anyway renaming to himem.exe is the simplest way to be sure.

Another thing is if /MAX= is needed at all, StarRiver claims

he run without this parameter. Hm, I will need to do some

more testing.

Link to comment
Share on other sites


Shortly

1) I upgraded io.sys patch to replace himem.sys by himem.exe so rename of the file is needed

2) I can confirm that /max=... parameter IS NOT really needed in config sys (so then I wondew why MS himem.dont work and this himemx works)

3) I did a finetune of MaxPhysPage and ended at value 488FF. Crazy is that when I set 1st itme edit 40000 to 48000 it booted but in VGA mode and display ed error of VGA configuration and open resolution change CPL. But whe I go back an increment MaxPhysPage with smaller steps and do rebooting between every change I was able to reach 488FF (over I got insufficent memory). I tried also xmsdsk again but always got VFAT error BSOD.

w98se2gb.gif

Link to comment
Share on other sites

Congratulations, xrayer!

Now your system is detecting the maximum amount of memory that Win 98SE can detect (for more see this link). Win ME, on the other hand, is known to detect about 1995 MB, but I've never had any success in devising a patch for having vmm.vxd v. 4.90.0.3003 load with Win 98SE. That vmm seems to be much different from v. 4.10.2226, so perhaps it is impossible to have it working in Win 98SE...

2) I can confirm that /max=... parameter IS NOT really needed in config sys (so then I wonder why MS himem don't work and this himemx works)

Well, about this I can tell you two things:

i) It has nothing whatsoever to do with their code, because, although Japheth's HIMEMX is carefully and elegantly coded, Win 98SE's vmm.vxd bypasses all code, literally taking possession only of the data areas (or of the XMS handle table, at the very least). Then again, HIMEMX puts its XMS handle table in its data area, well below 640 kB, in the normal DOS memory arena, while HIMEM.SYS uses the HMA for its table. Even so, I doubt this can cause the different behaviour you and StarRiver observed.

ii) Japheth's HIMEMX is *not* HIMEM.SYS, and does not try to fool Win 98SE into believing it is. So Win 98SE's vmm.vxd acts more tactful in its presence, probably forgoing the use of many undocumented hooks it cannot be sure would work, because it is not dealing with HIMEM.SYS and knows it. This probably is the main difference.

Be as it may, the fact is that you found a way that works, and that certainly will be of help to many others! :thumbup

BTW, there is a rumour, over the net, that XMSDSK hates to be loaded at the top of XMS, with 2 GB or more of RAM.

The same rumour says it stops crashing if you load it without the "/T" command-line switch. Did you try this? I cannot tell you whether this is a urban legend or a fact, because I have only 1.5 GB in my machine, so it's below the purported threshold.

Edited by dencorso
Link to comment
Share on other sites

...Win ME, on the other hand, is known to detect about 1995 MB, but I've never had any success in devising a patch for having vmm.vxd v. 4.90.0.3003 load with Win 98SE. That vmm seems to be much different from v. 4.10.2226, so perhaps it is impossible to have it working in Win 98SE...

Hi dencorso,

I attempted earlier in the year to patch the Windows Me VMM.VXD 4.90.0.3003 to work in 98SE...

I got all the version checks sorted and also the VMM DOS loader version report to IO.SYS sorted...

Nine code changes in all.

The problem is that Me VMM.VXD does not like 98SE V86MMGR.VXD...

So I patched Me V86MMGR.VXD 4.90.0.3000 to work in 98SE with three code changes...

But... 98SE just does not want to work with Me V86MMGR.VXD. It fails with an exception.

Probably something to do with IO.SYS I expect.

I could not get past the V86MMGR.VXD exception, so I shelved it.

Link to comment
Share on other sites

Thanks again for xrayer :thumbup

I have just installed HimemX.exe on Windosws 98 SE on an Asrock 4coredual-sata2 -Intel core 2 quad processor -2 Gb of DDRII -

My win98's modify steps are just as above

1. Download HimemX from http://japheth.de/Jemm.html

2. Copy himemx.exe to win98 directory

3. Add the line in config.sys

DEVICE=C:\WIN98\HIMEMX.EXE

I am now able to put a maxfilecache of 44000 (48000 did not work for me) while before I was only able to get as high as 40000.

And the most important thing is that I completely solved problems with dos boxes.

I can now start an almost unlimited number of dos windows instances while before (without the himemx) I was unable to run more than 3 dos boxes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Link to comment
Share on other sites

The same rumour says it stops crashing if you load it without the "/T" command-line switch. Did you try this? I cannot tell you whether this is a urban legend or a fact, because I have only 1.5 GB in my machine, so it's below the purported threshold.

Hoho, it works :thumbup

So now I got 850MB ramdisk for swapfile :)

c:\dos\xmsdsk.exe 850000 z: /t /y

And thanks for thoughts about himem vs himemx. I don't know windows kernel magic how it can behave with different xms mgrs.

EDIT:

Ou, seems that windows cannot use xmsdsk ramdisk for swappping. I cannot see the drive letter in swap file setting dialog :(

EDIT2:

Aha, it can be redirected in system.ini now it works

[386Enh]

PagingDrive=Z:

Edited by xrayer
Link to comment
Share on other sites

So now I got 850MB ramdisk for swapfile :)

c:\dos\xmsdsk.exe 850000 z: /t /y

Glad to know it works! Thanks to you we've learnt quite a bunch of new things about Win 98SE.

BTW, you meant to write: "c:\dos\xmsdsk.exe 850000 z: /c1 /y" right?

I've also read somewhere that if you rename the ramdisk to any name, except "MS-RAMDRIVE", during autoexec.bat, then it'll show in the swap file setting dialog...

Link to comment
Share on other sites

BTW, you meant to write: "c:\dos\xmsdsk.exe 850000 z: /c1 /y" right?

No, /c1 parameter only set cluster size I don't care about it let it set automatically. Parameter /t is important.

Link to comment
Share on other sites

Well I have tried everything that was possible (given my knowledge of the problem) and I have not been able to make XMSDSK work without problems.

I have Windosws 98 SE installed on an Asrock 4coredual-sata2 -Intel core 2 quad processor -2 Gb of DDRII -

I have developed the idea that the MaxFileCache entry does not solve definetely the out of memory error.

In some cases no matter what the entry for the MaxFileCache or for MaxPhysPage I got an out of memory error when starting dos.

(I have verified memory values with system monitor)

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

My failed attempts

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

Even in the most favourable situation after starting 6 instances of dos windows,

the out of memory error appears again.

At one point I was able to make XMSDSk work without problem with:

c:\ramdisk\xmsdsk.exe 500000 z: /T /Y

(in autoexec.bat.)

At that point I did loose completely the use of Dos window.

(It is like some important memory resources are taken by the video card or something else and I have no clue about what is it! even if I have developed the idea that the solution is not in the maxfilecache settings : the solution must be in some kind of wise memory management I cannot find)

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

My present configuration (without XMSDSK)

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

I have upgraded to service pack 2 for 98 SE.

and my present settings are:

autoexec.bat

mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)

mode con codepage select=850

keyb it,,C:\WINDOWS\COMMAND\keyboard.sys

LH /L:2 C:\WINDOWS\COMMAND\DOSKEY /INSERT

PROMPT $p$g

SET DIRCMD=/P /A

system.ini

[386Enh]

MaxPhysPage=40000

ebios=*ebios

mouse=*vmouse, msmouse.vxd

device=*dynapage

device=*vcd

device=*vpd

device=*int13

woafont=app850.fon

keyboard=*vkd

MinSPs=16

ConservativeSwapfileUsage=1

DMABufferSize=64

[vcache]

MinFileCache=3000

MaxFileCache=393216

(rest is omitted)

config.sys

DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q

DOS=HIGH,UMB

DEVICE=C:\WINDOWS\EMM386.EXE NOEMS X=A000-F7FF

DEVICE=C:\WINDOWS\setver.exe

device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)

Country=039,850,C:\WINDOWS\COMMAND\country.sys

(I have tried and cannot use UMBPCI.SYS at the place of EMM386 cause my motherboard is not supported)

EMM386.exe did work only with the setting: X=A000-F7FF .

I do not think that EGOvoruhk either has solved the problem????

In this configuration I am able to start 2 (two) fresh dos windows before I get the out of memory at the 3rd dos istance.

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

XMSDSK Failure

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

Whenever XMSDSK succesfully creates a ram drive then my dos windows become unavailable for the "out of memory error"

MOREOVER XMSDSK does not work properly: when I start the scandisk, to check the sectors into the ramdrive Z, the write attempt fails after a while.

A more simple copy write attempts fails too.

The failure happens not at a specific point.

what happens is that I got a blue screen with not recoverable error sayng things like:

"An exception 0E has occurred at 0028:C0004D6D in VxD Vmm(01) + 00003D6D. This was called from 0028:C19359C4 in Vxd Rmm(01) + 00000254"

I have tried many different settings for XMSDSK.

(Some example :

c:\ramdisk\xmsdsk.exe 1800000 z: /T /Y

c:\ramdisk\xmsdsk.exe 1100000 z: /c1 /T /Y

c:\ramdisk\xmsdsk.exe 500000 z: /T /Y

c:\ramdisk\xmsdsk.exe 500000 z: /c64 /T /Y

c:\ramdisk\xmsdsk.exe 500000 z: /c1 /T /Y

)

great!

Link to comment
Share on other sites

BTW, you meant to write: "c:\dos\xmsdsk.exe 850000 z: /c1 /y" right?

No, /c1 parameter only set cluster size I don't care about it let it set automatically. Parameter /t is important.

Well, I think you didn't get my point...

I can run XMSDSK with or without the /T switch, and Win 98SE doesn't care. Older versions of Win refused to run without the /T parameter (which loads XMSDSK at the top of XMS, as farther away from HMA as possible), for sure. As I said, Win 98SE does not care whether XMSDSK is at the top or at the bottom (close to the HMA) of XMS, in my experience, so the /T parameter in not fundamental anymore. However, there is a legend that XMSDSK has a bug that prevents it from loading at the top with 2 GB or more of RAM. Since you are able to load and run XMSDSK OK, having 2 GB of RAM, you either demonstrated it is just a baseless legend, or, more probably, have found out yet another strange quirk related to HYMEM.SYS, for it works for you but you are using HIMEMX.EXE. Curiouser and curioser... :yes:

On the other hand, the /C1 switch directs XMSDSK to automatically select the smallest possible sector number per cluster, what leads to the best possible performance of the FAT, without you having explicitly to set that number. Hence, in my opinion, you should be using it. ;)

Frank Uberto's XMSDSK is among the best and most carefully written pieces of software I've ever seen. It rocks. :thumbup

Edited by dencorso
Link to comment
Share on other sites

And the most important thing is that I completely solved problems with dos boxes.

I can now start an almost unlimited number of dos windows instances while before (without the himemx) I was unable to run more than 3 dos boxes!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Hi, vick1111!

I confirm your finding: before I was able to open around 20 DOS Boxes, whereas, with HIMEMX and all other things unchanged, I can now open more than 40! :thumbup

Edited by dencorso
Link to comment
Share on other sites

On the other hand, the /C1 switch directs XMSDSK to automatically select the smallest possible sector number per cluster, what leads to the best possible performance of the FAT, without you having explicitly to set that number. Hence, in my opinion, you should be using it. ;)

I'm not sure about it. When you have small clusters then FAT must be greater and seeking for the specified cluster will take long time when browsing large FAT. And when using the ramdisk for paging file the minimum allocated size is one page - 4kB so smaller clusters don't bring any advantage. Anyway for my ramdisk size and FA16 FS limitation the smallest cluster size is 16kB. I didn't checked what value was automatically set.

Edited by xrayer
Link to comment
Share on other sites

>GreyPhound

I finally had time to read through entire thread from the beginning.

Thaks for your effort with translation of Igor's technical article,

I got some better view or windows memory management now.

Spasibo!

But it's still not clear why in some cases himemx.exe works

and himem.sys not. Anyway I'm use this solutoin more than week

and didn't found problem. I only sometims hit the limit of swapfile

in ramdisk when etiting huge soundtracks in goldwawe, swapfile

ran out of space and shoot windows down. If I would had set swap to HDD

it could grow to bigger size. But from ramdisk it runs pretty fast!

Unfortunatelly memory protection is poor so instead kernel should

shoot the app exceeding memory it allow shoot off all system :)

It depends on used program.

Link to comment
Share on other sites

  • 2 weeks later...

to XRayer:

if you enter XMSDSK line like this:

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

C:\OS\COMMAND\label K: scorpion

then the xmsdsk will be labeled as scorpion drive and system will recognize it as a harddisk. than you can enter the parameters in system settings without manually editing system ini. the drive will become visible for swapping. you can do this in Autoexec.bat

Link to comment
Share on other sites

BTW, you meant to write: "c:\dos\xmsdsk.exe 850000 z: /c1 /y" right?
No, /c1 parameter only set cluster size I don't care about it let it set automatically. Parameter /t is important.
Well, I think you didn't get my point...

I can run XMSDSK with or without the /T switch, and Win 98SE doesn't care. Older versions of Win refused to run without the /T parameter (which loads XMSDSK at the top of XMS, as farther away from HMA as possible), for sure. As I said, Win 98SE does not care whether XMSDSK is at the top or at the bottom (close to the HMA) of XMS, in my experience, so the /T parameter in not fundamental anymore. However, there is a legend that XMSDSK has a bug that prevents it from loading at the top with 2 GB or more of RAM. Since you are able to load and run XMSDSK OK, having 2 GB of RAM, you either demonstrated it is just a baseless legend, or, more probably, have found out yet another strange quirk related to HYMEM.SYS, for it works for you but you are using HIMEMX.EXE. Curiouser and curioser... :yes:

1) I have 2Gb of RAM, of which 1150.0 MB are available as per System Properties WITHOUT xmsdsk.exe, io.sys patched with w98iopat.exe (many thanks to xrayer!)

device=c:\...\himem.exe /MAX=1178624 /NUMHANDLES=64 /VERBOSE

MaxPhysPage=48000

DMABufferSize=64

EMMExclude=C000-CFFF

MinFileCache=32768

MaxFileCache=261120

ChunkSize=4096

AGP aperture=64MB

The parameters are a modification of xrayer's

device=c:\...\himem.exe /MAX=1048576 /NUMHANDLES=64 /VERBOSE

MaxPhysPage=40000

PCI-graphics card (NO AGP aperture)

When I run with C:\...\xmsdsk.exe 524288 z: /c1 /t /y in autoexec.bat, a RAMdisk z: of 512MB is created, BUT:

System Properties now shows ONLY 640.0MB RAM (before: 1150.0MB)

With xrayer's parameters I had pre-RAMdisk 1022.0MB, post-RAMdisk only 513.0MB

The /t switch appearantly did NOT work for me - maybe because I use an AGP card? (xrayer uses a PCI graphics card)

The readme.txt of xmsdsk says about the /t switch:

"Parameter /t can be used to tell the driver to allocate XMS memory from the top addresses instead of lower ones. Some machines under Win95 hang up when there's no free memory under 16 MBytes. It can be used too if you have problem playing sounds under Windows. These 2 issues seem to be related to DMA buffering."

Any idea of how to set the parameters with a 64MB AGP aperture?

2) After setting the swapfile to RAMdrive z: with PagingDrive=Z: I got shutdown problems:

- Win98SE hangs after selecting either Shut Down, Restart or Restart in MS-DOS mode, with a blinking cursor on a black screen

- the selection Standby is not displayed in the Shut Down Windows menu anymore

xrayer possibly didn't notice, since the GeForce driver series 80 always has shutdown problems anyway with newer GeForce cards

3) I have seen in several system.ini files here the use of ConservativeSwapfileUsage=1. Does this really do anything under Win98SE? Microsoft only lists Windows 98 Standard Edition, NOT Windows Second Edition http://support.microsoft.com/kb/223294

4) Has anybody tried any memory defragmentation software with 2GB RAM plus io.sys patched with w98iopat.exe, plus xmsdsk, plus swapfile location=ramdisk, with AGP vs PCI graphics card?

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