Recently I wanted to play with one of my old PDAs, and its sync software requires a parallel port and Windows 98 environment. Virtual machine does not emulate the parallel port well. Because Thinkpad X41 is my oldest machine with a parallel port (on the dock), I tried to install Windows 98 SE on it.
It turns out X41 was too “new” for Windows 98. There are some driver issues that I can’t resolve. But for my purpose, the result is good enough. So I’m documenting the process here, hope it helps others.
- A Thinkpad X41 (mine is a X40 with a X41 motherboard in it)
- ThinkPad X4 UltraBase (optional, if you want RS232 and Parallel ports)
- Windows 98 SE installer file (just the files, you can copy it from the iso or the CD)
- Windows PE usb drive (for partitioning and file copying)
- USB bootable DOS startup disk (for starting the Win 98 installer)
- Some drivers I collected. Download here.
Things that work:
- Keyboard and trackpoint
- Serial, Parallel and IrDA port
- Video card (software acceleration)
- USB (the ones on the Ultrabase work automatically, onboard USBs need the driver)
- On-board AC’97 Audio (only functional in Windows, not in DOS mode).
- Gigabit Ethernet (this driver causes crash during shutdown, but I can live with it)
Things that don’t work:
- SD card reader, Wifi (no driver)
- PCMCIA, modem (I didn’t test them, maybe PCMCIA will work, I don’t have cards to test.)
Step 1: Prepare your laptop
- Remove the removable RAM if you have one. Windows 98 won’t boot with more than 1GB RAM, we will mod the OS later to fix this.
- Enable all the hardware in the bios so they are visible in the install process.
- Insert the Windows PE USB drive to X41 (not the USB port on the dock), boot from it.
- (All the data on the hard drive will be lost, make sure to backup any important data before this step.)
Partition your HDD to at least two partitions. Format them to FAT32.
- Copy the Windows 98 installer files to the second partition.
- Unzip the drivers I provided to the second partition.
Step 2: Run the Installer
- Boot using the USB DOS startup disk, assuming your installer files are in D:\WIN98SE, you can run the following to execute the installer:
D: format C: cd WIN98SE setup /is
- The installer will start copying files, it will then restart the system. At this point, press F12 to boot into your DOS startup disk again. Then copy the chipset drivers into C:\WINDOWS\INF\, replacing the original files.
- After this, press the power button to shutdown the machine. Remove any USB disks on the machine, then press power button to boot it again.
- The installer will then continue installing it. Follow the instructions until it boots into the welcome screen.
Step 3: Install drivers
- Video driver (using SciTech Display Doctor v7.0 Beta): follow the instructions in the driver pack I provided (Graphics/scitech-display-doctor-7/sdd7.txt).
- Ethernet driver: similar to the video driver, but do it on the “unknown Ethernet device”. Note: you may need to manually set the gateway and DNS in the TCP settings to get Internet working. (Again, this driver causes the OS to crash during shutdown, I don’t find any better solution.)
- AC-97 sound card: the procedure is like the above two.
- USB driver: insert a USB device (e.g. a USB mouse) to the onboard USB, the OS will ask for a driver, point it to the USB driver I provided.
- USB mass storage: Even after installed the USB driver, Windows 98 SE still requires a USB mass storage driver if you have inserted a USB drive. Use the USB mass storage driver I provided.
Step4: Fix the large memory issue
- Windows 98 can not boot with more than 1GB ram. There is a HIMEMX.exe provided in the driver package, that can limit Windows 98 to “see” only 1GB ram, even if you have physically installed more.
- Copy himemx.exe to C:\Windows\ under Windows 98;
- Open the Run dialog box (Windows + R), type sysedit and press Enter;
- Open the file C:\CONFIG.sys;
- At the very beginning of the file, add device=C:\WINDOWS\HIMEMX.EXE /MAX=1048576;
- Save the modification;
- Shutdown your system;
- Insert the removable RAM;
- Start the system;
- You can also add MaxFileCache=524288 under [vcache] in system.ini to ensure that Windows 98 doesn’t eat too much RAM for its cache.
- Windows 98 should now only see 1GB of RAM although 2GB are installed and it should still be stable.
Well, that’s it! Though not perfect, the Windows 98 SE is totally usable at this point. If anyone knows how to make the remaining things work, please leave a comment.