VOGONS


First post, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

Hi, today I worked hard (no pun intended) on my Windows 98 PC, I wanted to fix the "out of memory" issue with Blake Stone 2: Planet Strike at any cost and I kinda managed to.
I can now run the game perfectly by "restarting in MS-DOS mode", but if I accidentally run any DOS game (except very few) from Windows 98 itself, I get this error on a white box with a black background:

Explorer
EXPLORER executed an invalid instruction in module GDI.EXE at 0026:0000124a.

If I click "Close", then it just BSoDs and I have to hard reset.

To get to this point, I did some modifications indeed, here's what I did (by finding guides a bit here on Vogons and a bit on Google):

[*]I edited the Config.sys file and I added a "noems" parameter after

device=c:\dos\emm386.exe

so now this is my Config.sys:

DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\WINDOWS\EMM386.EXE noems
DEVICE=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=039,850,C:\WINDOWS\COMMAND\country.sys
DEVICEHIGH=C:\WINDOWS\COMMAND\DRVSPACE.SYS /MOVE
DEVICEHIGH=C:\MOUSE\MOUSE.SYS

I noticed that removing the "HIGH" from "DEVICEHIGH" in the DRVSPACE.SYS driver line stops all this "Explorer executed an invalid instruction in module GDI.EXE" thing to happen, but the games return to the previous state of "not enough memory" and do not run anymore not even from real-mode DOS.

I also limited the RAM first to 512 MB and then to 720 MB (that PC has 1 GB of DDR ram, which is entirely used by XP on the other hardisk) to prevent out of memory errors when switching from real-mode DOS to Windows, but apparently it didn't work... when I restart in DOS-MODE and then I type "win" to get back to Windows 98, it crashes with some insufficient memory error (although the games work fine, not a big issue... I just hard reset, not a big problem if I can't just get back on Windows 98 with the Win command after all).

I'd like to fix this issue and be able to launch the DOS games that didn't have that memory problem to begin with again from Windows itself, because it gets quite annoying after a while to restart in DOS mode just for A GAME and then hard reset and hope to launch Windows 98 instead of XP.... at least until I complete the works on the Intel Celeron DOS PC I'm also building (still needs some tweaking and hopefully a new hardisk, the one I installed makes some creepy noises).

Ah yes, I wasn't sure if I should post this here or in Marvin, either way feel free to move to the right section.

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 2 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

Yeah, well... let's see if some mod can move it there, it'd be annoying to have a thread there and here...

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 3 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Unless you are using DriveSpace compression, there is no reason whatsoever to have DRVSPACE.SYS in your config.sys at all. (DriveSpace has no purpose in this era of cheap, gigantic hard drives.)

I also limited the RAM first to 512 MB and then to 720 MB

Yes, Windows 98 gets unstable with more than 512 MB of RAM. This has been discussed in your previous threads. Crashes (even ones referring to "not enough memory") are entirely expected.

How exactly are you "limiting" the RAM?

Reply 4 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

I'm limiting the ram to 768 MB by adding

MaxPhysPage=30000

under the [386Enh] section of the System.ini file.

From here: https://support.microsoft.com/en-us/kb/184447

EDIT: On further investigation, it seems that removing "noems" from the emm386.exe line does indeed remove that error aswell, but some games return to their "out of memory" state while others run again under Windows aswell.

Last edited by Elia1995 on 2016-05-25, 21:29. Edited 1 time in total.

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 6 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie
Jorpho wrote:
Elia1995 wrote:

Strange, that they would include that reference. That might solve problems related to Windows startup, but that won't solve other problems.

See https://support.microsoft.com/en-us/kb/253912 .

Yeah, I tried both of the methods in that one aswell before the MaxPhysPage one.... they didn't solve the out of memory issue, only the MaxPhysPage one "almost" solved it, but caused that new Explorer crashing thing

I just tried removing the DRVSPACE.SYS line and now Windows 98 doesn't even boot, BSoDs at the startup... good thing I have a dual boot with XP so I can just fix it... here, fix'd that one 🤣

EDIT: I just tried to use the "win" command from the real-mode MS-DOS mode. It just hangs there.... CTRL-ALT-DEL doesn't even work, I have to hard reset.

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 7 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Do you mean to say you're actually using DriveSpace..? You clicked something that said "Windows can compress this drive", or something to that effect? I wouldn't have suggested removing it from your config.sys if I thought there was some possibility you were actually using it; I can't remember the last time I heard of someone using it, or even how to switch it off. It is a pretty terrible idea for a large number of reasons. I don't know if it's necessarily responsible for any of your current problems, but it wouldn't surprise me.

Reply 8 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

Since I want to experiment everything and check everything, I just removed the second stick of DDR ram from the motherboard and bingo no more issues.
The games start and Explorer doesn't crash anymore with the "noems" parameter in config.sys, but I can't keep it like that with just 512 MB of ram... Windows XP deserves at least 1 GB and some XP games don't like to be executed with less than 1 GB of ram.

According to this experiment, we need to limit 98's ram amount, but none of those three ways seem to work properly...

About DriveSpace, I don't use it, but it crashes nonetheless when I removed it from config.sys, perhaps with only one 512 MB stick of ram wouldn't crash anymore, but I can't keep that PC at 512 MB due to XP games demand...

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 9 of 17, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Moved.

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 10 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

People have been grappling with this same problem for a very long time now.
>512MB with Windows 98...

I like to use HIMEMX, which is a replacement for HIMEM.SYS; it has a /MAX switch which you can use to limit the RAM when Windows starts up. (You may see people mention it alongside JEMM, a replacement for EMM386, but JEMM does not work with Win9x, so leave that alone.)

Other people like to use XMSDISK to create a RAM drive that consumes all but 512MB of RAM.

Reply 11 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

So if I want to use this HIMEMX, do I have to put it in the config.sys instead of the HIMEM.SYS line ?

Like DEVICE=C:\HIMEMX\BIN\HIMEMX.EXE ?

How do I set it up properly in the config.sys to limit it to 512MB of ram only ?

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 12 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Did you try looking at the documentation to figure it out for yourself? Like the readme.txt that says

To see its usage just run HIMEMX.EXE

As in

HimemX is a device driver that is loaded in CONFIG.SYS.
Please place DEVICE=HIMEMX.EXE [options] before any driver using XMS.

options: [/MAX=####] [/METHOD:xxx] [/HMAMIN=n] [/NUMHANDLES=m]
[/VERBOSE] [/NOABOVE16] [/X] [/LOG]

/MAX=##### limit memory controlled by XMM to #####K
/METHOD:xxx Specifies the method to be used for A20 handling.
Possible values for xxx:
ALWAYSON Assume that A20 line is permanently ON
BIOS Use BIOS to toggle the A20 line
FAST Use port 92h, bypass INT 15h test
PS2 Use port 92h, bypass PS/2 test
KBC Use the keyboard controller
PORT92 Use port 92h always
/HMAMIN=n Specifies minimum number of Kbs of HMA that a program
must request to gain access to the HMA (default: 0Kb)
/NOX2MAX32 No limit for XMS 2.0 free/avail. memory reports (default)
/NUMHANDLES=m Specifies number of XMS handles available (def: 48)
/VERBOSE Gives extra information
/NOABOVE16 Do not use INT 15h function E801h to detect >64M
/X Do not use INT 15h function E820h to detect >64M
/X2MAX32 Limit XMS 2.0 free/avail. memory report to 32M-1K
/LOG Logs the driver activity to the screen

Reply 13 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

DEVICE=C:\HIMEMX\BIN\HIMEMX.EXE /MAX=512 ?

Didn't seem to do anything on first try :\

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 14 of 17, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

😢 Why don't you look again?

/MAX=#####      limit memory controlled by XMM to #####K

/MAX=512 would limit memory to half a megabyte.

Reply 15 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

MAX=50012 ? I suck at byte conversions 🤣

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard

Reply 16 of 17, by Rhuwyn

User metadata
Rank Oldbie
Rank
Oldbie
Elia1995 wrote:

MAX=50012 ? I suck at byte conversions 🤣

512 * 1024 = 524288 would be the correct amount I believe.

Reply 17 of 17, by Elia1995

User metadata
Rank Oldbie
Rank
Oldbie

ok, I'll try that, thanks

Currently assembled vintage computers I own: 11

Most important ones:
A "modded" Olivetti M4 434 S (currently broken).
An Epson El Plus 386DX running MS-DOS 6.22 (currently broken).
Celeron Coppermine 1.10GHz on an M754LMRTP motherboard