xrayer Posted April 1, 2008 Posted April 1, 2008 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=999999doGood 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 claimshe run without this parameter. Hm, I will need to do somemore testing.
xrayer Posted April 2, 2008 Posted April 2, 2008 Shortly1) I upgraded io.sys patch to replace himem.sys by himem.exe so rename of the file is needed2) 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.
dencorso Posted April 2, 2008 Posted April 2, 2008 (edited) 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! 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 April 2, 2008 by dencorso
RetroOS Posted April 2, 2008 Posted April 2, 2008 ...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.
vick1111 Posted April 2, 2008 Posted April 2, 2008 Thanks again for xrayer 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 above1. Download HimemX from http://japheth.de/Jemm.html2. Copy himemx.exe to win98 directory3. Add the line in config.sysDEVICE=C:\WIN98\HIMEMX.EXEI 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!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
xrayer Posted April 2, 2008 Posted April 2, 2008 (edited) 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 So now I got 850MB ramdisk for swapfile c:\dos\xmsdsk.exe 850000 z: /t /yAnd 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 April 2, 2008 by xrayer
dencorso Posted April 3, 2008 Posted April 3, 2008 So now I got 850MB ramdisk for swapfile c:\dos\xmsdsk.exe 850000 z: /t /yGlad 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...
xrayer Posted April 3, 2008 Posted April 3, 2008 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.
rsx7 Posted April 3, 2008 Posted April 3, 2008 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.batmode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)mode con codepage select=850keyb it,,C:\WINDOWS\COMMAND\keyboard.sysLH /L:2 C:\WINDOWS\COMMAND\DOSKEY /INSERTPROMPT $p$gSET DIRCMD=/P /Asystem.ini [386Enh]MaxPhysPage=40000ebios=*ebiosmouse=*vmouse, msmouse.vxddevice=*dynapagedevice=*vcddevice=*vpddevice=*int13woafont=app850.fonkeyboard=*vkdMinSPs=16ConservativeSwapfileUsage=1DMABufferSize=64[vcache]MinFileCache=3000MaxFileCache=393216(rest is omitted)config.sysDEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /QDOS=HIGH,UMBDEVICE=C:\WINDOWS\EMM386.EXE NOEMS X=A000-F7FF DEVICE=C:\WINDOWS\setver.exedevice=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 /Yc:\ramdisk\xmsdsk.exe 1100000 z: /c1 /T /Yc:\ramdisk\xmsdsk.exe 500000 z: /T /Yc:\ramdisk\xmsdsk.exe 500000 z: /c64 /T /Yc:\ramdisk\xmsdsk.exe 500000 z: /c1 /T /Y)great!
dencorso Posted April 4, 2008 Posted April 4, 2008 (edited) 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... 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. Edited April 4, 2008 by dencorso
dencorso Posted April 4, 2008 Posted April 4, 2008 (edited) 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! Edited April 4, 2008 by dencorso
xrayer Posted April 4, 2008 Posted April 4, 2008 (edited) 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 April 4, 2008 by xrayer
xrayer Posted April 11, 2008 Posted April 11, 2008 >GreyPhoundI 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 worksand himem.sys not. Anyway I'm use this solutoin more than weekand didn't found problem. I only sometims hit the limit of swapfilein ramdisk when etiting huge soundtracks in goldwawe, swapfileran out of space and shoot windows down. If I would had set swap to HDDit could grow to bigger size. But from ramdisk it runs pretty fast!Unfortunatelly memory protection is poor so instead kernel shouldshoot the app exceeding memory it allow shoot off all system It depends on used program.
Offler Posted April 25, 2008 Posted April 25, 2008 to XRayer:if you enter XMSDSK line like this:c:\dos\xmsdsk\xmsdsk.exe 524288 K: /c1 /t /yC:\OS\COMMAND\label K: scorpionthen 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
Multibooter Posted April 26, 2008 Posted April 26, 2008 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... 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 /VERBOSEMaxPhysPage=48000DMABufferSize=64EMMExclude=C000-CFFFMinFileCache=32768MaxFileCache=261120ChunkSize=4096AGP aperture=64MBThe parameters are a modification of xrayer'sdevice=c:\...\himem.exe /MAX=1048576 /NUMHANDLES=64 /VERBOSEMaxPhysPage=40000PCI-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.0MBThe /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 anymorexrayer possibly didn't notice, since the GeForce driver series 80 always has shutdown problems anyway with newer GeForce cards3) 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/2232944) 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?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now