• Please review our updated Terms and Rules here

Windows 98 on a Pentium 4 tweener.

I confess to running Win98SE mostly in MS-DOS real mode, that is "BootGUI=0" in MSDOS.SYS. Gives me a bit of control before Windows takes over and saves me the trouble of hitting F8 to interrupt the boot process. But that's just me.

Okay--here's the relevant portion of my CONFIG.SYS (Mine are menu-driven and can be a bit involved).
Code:
DEVICE=C:\XMS\HIMEM\HIMEMX.EXE /NUMHANDLES=64
DOS=HIGH,UMB
FILES=50
LASTDRIVE=Z
DEVICEHIGH=TIMCD.SYS /D:MSCD0000

and then AUTOEXEC.BAT
Code:
LH C:\WINDOWS\COMMAND\DOSKEY
LH C:\USR\DOSLFN
LH C:\HXRT\HXLDR32
SET TEMPDRIVE=S
SET TEMPSIZE=2048000000
C:\XMS\XMSDISK\XMSDSK %TEMPDRIVE%: %TEMPSIZE% /Y /T
SET TEMP=%TEMPDRIVE%:\TEMP
SET TMP=%TEMP%

DOSLFN is a utility that allows for long file names when in MS-DOS mode (I think it's part of FREEDOS).
HXRT is a package that sometimes allows Win32 protected-mode programs to run in DOS mode: https://www.japheth.de/HX.html
The autoexec file creates a 2GB RAMdisk and calls it drive S:.

Finally, once Windows is installed, you'll want to modify your /WINDOWS/SYSTEM.INI file so that a section looks like this:
Code:
[386Enh]
MaxPhysPage=40000
ebios=*ebios
woafont=dosapp.fon
mouse=*vmouse, msmouse.vxd
device=*dynapage

In other words, you want to modify the "MaxPhysPage" value as shown.

If you have time, do pick up the "unofficial Win98SE Service Pack" here: https://www.htasoft.com/u98sesp/

All this works on a system that boots Win98SE, Windows XP, Windows 7 and Debian Buster.
ChuckG,
Do all 4 OS boot from a single drive?
If so, can you comment on your boot loader?
 
Well, this has been challenging for me to get W98SE running on my P4 system.

I think I understand ChuckG's suggestions.
I think the main one is to modify the boot up of Win98SE by changing system.ini and including HimemX.exe.

But I am at a roadblock now and looking for suggestions. Here's what happened:

* went through the installation of W98SE from CD
* got past the first stage, asked for reboot, all good.
* can't get past this reboot, so go under the hood and set up system.ini with the needed changes, himemX etc.
* now, I can proceed to the 2nd stage of Win98SE setup. I apply my license key, and all going well. Feeling good. Reboot time.

Here's where it gets interesting. I figure I'm good to go. but...
* I get a blue screen stating something vague about some device is operating in 32bit mode but some sub components are in compatibility mode. press any key to restart so all devices will be in compatibility mode" or something like this.
* machine seems frozen, have to hard restart.

* now, the machine freezes during boot up. By looking at BOOTLOG.TXT, I can see that the process fails at the file esdi_506.prd, and at the step called IOS.

Nothing I have tried gets me past this problem. I've read in some places that Win98SE MAY suffer from the high speed CPU problem. Could that be the culprit here? Could hyperthreading be the problem?
esdi_506.prd is subject to this high speed bug in Win95 for example.

Any suggestions?

I feel like if I try this over again I will just end up in the same place.
 
The 32 bit compatibility error is probably related to the IDE controller. Windows 98 is probably falling back to DOS disk mode access, which is more compatible, but a whole lot slower. You won't get DMA transfers and be stuck in PIO mode for disk access. This could be because of the hardware not being supported, but it could also be because the CPU is too fast. I remember having this problem on many computers back in the day, so it certainly isn't explicitly tied to speed.

Could that be the culprit here? Could hyperthreading be the problem?

Windows 9x has no concept of multiprocessing, it can't utilize more than one core or thread. If you turn HT on a Pentium 4, you're essentially cutting the processor performance in half, since the OS can't use or even see the other thread.

You need to install the speed patch, but we're back to the chicken and egg problem. The OS is already screwed up from the CPU being too fast. If the motherboard has the option, you can try cutting the FSB clock down to as low as it will go, which will reduce the CPU clock speed. You can also turn off all of the CPU cache to further slow the CPU down (usually called internal and/or external cache or L1 and L2). This still may not be enough, because the raw clock speed can still cause issues, even if the CPU is crippled.
 
Microsoft released several revisions of the install media, I'm betting that one of them eventually included the speed bug patch. Could be that whatever version he has predates the patch, and whatever version you have is after the patch and includes it.
 
I think it was windows 95 that had the cpu speed problem. There was an update for it when the AMD K6 CPUs came out. I believe there is a way to install it from DOS these days as well.
 
Progress.

I actually redid the W98 install with a small change to Bios settings. I put the ide drives in compatibility mode.

Seems like that may have been it. I now have a windows 98SE booting, and am installing win2k on an adjacent partition.

Bumpy ride indeed.
 
Windows 9x has no concept of multiprocessing, it can't utilize more than one core or thread. If you turn HT on a Pentium 4, you're essentially cutting the processor performance in half, since the OS can't use or even see the other thread

That’s a new one.

Hyperthreading doesn’t “cut the processor performance in half” if it’s enabled but you’re running a non-MP-aware OS, it’s just a non-issue. There are edge cases where you can get suboptimal performance (usually when you have multiple *physical* cores with Hyperthreading) when you’re running an SMP-enabled OS that isn’t aware of the differences when it comes to scheduling threads (and as a result does something dumb like plop two greedy threads onto one physical core to Hyperthread instead of spreading them across two so they can actually run simultaneously), but Windows 9x will never, ever try to schedule two threads at once under any circumstance. A Hyperthreading-equipped CPU doesn’t just dumbly time-slice 50% of its power to doing nothing if there’s nothing scheduled on the second virtual thread.

That all said, there’s certainly no harm to disabling it, I guess, but the point is it really just doesn’t matter with Windows 98. (There is legit debate about whether it’s a good or bad idea to have it enabled with NT or 2000, which suffer that problem of being SMT enabled but not understanding the scheduling optimization quirks.)
 
Last edited:
That’s a new one.

Hyperthreading doesn’t “cut the processor performance in half” if it’s enabled but you’re running a non-MP-aware OS, it’s just a non-issue. There are edge cases where you can get suboptimal performance (usually when you have multiple *physical* cores with Hyperthreading) when you’re running an SMP-enabled OS that isn’t aware of the differences when it comes to scheduling threads (and as a result does something dumb like plop two greedy threads onto one physical core to Hyperthread instead of spreading them across two so they can actually run simultaneously), but Windows 9x will never, ever try to schedule two threads at once under any circumstance. A Hyperthreading-equipped CPU doesn’t just dumbly time-slice 50% of its power to doing nothing if there’s nothing scheduled on the second virtual thread.

That all said, there’s certainly no harm to disabling it, I guess, but the point is it really just doesn’t matter with Windows 98. (There is legit debate about whether it’s a good or bad idea to have it enabled with NT or 2000, which suffer that problem of being SMT enabled but not understanding the scheduling optimization quirks.)

It's been a long time since I ran Windows 98 on a Pentium 4, so I built up a Pentium 4 machine last night and tested HT on vs off. Oh boy, what I thought would take an hour, ended up taking 5 hours. Ran into every possible problem, bad RAM, corrupt BIOS and a bad CPU. My whole bench looked like a disaster with meters, EEPROM programmers, multiple boards, etc.

Also found out that some chipsets run into the CPU too fast problem, while others don't. First tried an Asus P4S800D-X, which has a SiS 655FX chipset. It constantly threw "Windows Protection Errors", random crashing and BSODs until I dropped the FSB to take the CPU to 1.5 GHz from 3 GHz. Even there it was unstable, but it would at least get into Windows. I abandoned this because I didn't have a compatible P4 that would go slower. For sake of seeing if the board was even stable, installed Windows XP on it. No issues there. In XP however, having HT enabled WOULD cut performance of applications by 50% when HT was enabled. If you didn't have a HT aware application, which was basically everything at the time, HT would cause severe performance issues.

The next board I tried was an Asus P4P800E Deluxe with an Intel 865PE chipset. This board had zero issues with the P4 running at a stock 3 GHz in Windows 98, after I remedied the corrupt BIOS. Doing a diff on the dumped EEPROM with an official BIOS image showed quite a bit of corruption. Bitrot? Cosmic rays? Who knows.

I was able to do benchmarks on this board on HT on vs off. And there WAS performance degradation, but not the 50% like I remembered. It was more along the lines of 10-30% depending on the test. Whatever Intel is doing inside the P4 to process two threads at once is inefficient and wastes CPU resources, even if the second thread is never being used.
 
In XP however, having HT enabled WOULD cut performance of applications by 50% when HT was enabled.

Interesting results, considering that in 2002 Tom’s Hardware tested the brand new hyper threading version of the Pentium 4 under Windows XP with HT both enabled and disabled; having it enabled improved like 90% of the benchmarks and in the remaining cases the hit was never even close to 50% other than the one DirectX 7 benchmark that puked with it on. Their overall conclusion was that most of the time the Hyperthreading 3.06GHz P4 outran a 3.6Ghz P4 without it.


I would try replicating your results (which is a bit of a challenge considering you didn’t say what you tested, you’re just throwing out a percent with no numbers or screenshots) if my old Dell P4 actually still works, but… honestly, my plan is to die of old age before I ever install Windows XP *or* 9x on anything again. Been there, done that, got the tee shirt, never again.
 
Just stumbled on this thread and wanted to post some clarification about the CPU "speed limit"...

It was a Windows 95 thing and it was apparently also an issue with the pre-release and the absolute earliest version of Windows 98 First Edition RTM. Beyond that, it was no longer an issue. I've been a regular at Vogons for about 7 years and I've been into PCs for about 25 and I've personally never run into or even heard a single post mentioning this issue personally. Back in the day I used Windows 98SE up until 2003 or so because I disliked XP and I had a 1.33Ghz Athlon Thunderbird, an Athlon XP 1800+ and an overclocked Athlon XP 1700+ Thoroughbred B core running over 2Ghz. None of them had issues at the time and I have not had speed issues with 98SE since I started getting back into "retro" computing. I believe there were patches for Athlon 64 processors later on, but this is unrelated to clock speed.

As others have mentioned, most of the issues with trying to run Windows 9x on newer PCs comes down to chipset and motherboard compatibility. Assigning resources can be a huge problem with newer boards that have tons of integrated features. It helps tremendously to disable all extra serial, parallel and other ports\devices in the BIOS. I haven't bothered trying to do this in a while but I also recall some systems working better if you adjust settings related to Plug N Play. As I understand it, the issue is that Windows 9x is very stupid (by modern standards) about trying to manage system resources, so when you have the motherboard and OS trying to move devices around it gets very sketchy and you will frequently end up with either blue screens or important features running in compatibility mode... usually it's the storage controller, which makes it feel like you're loading everything from a floppy disk.

If you limit RAM to 512MB (or patch the OS), and can get the resources and drivers figured out, Windows 98SE tends to work just fine on much newer hardware than was ever intended.

I hope that helps clear some things up.
 
Back
Top