One of my customers has a legacy client/ server accounting application whose desktop client runs only on Windows 98. Although the accounting application pales in comparison to today’s full-featured ERP suites, it has a capable server-side database engine and it meets the company’s needs.

For the past two years, I’ve helped the company keep its accounting application in production by migrating the Win98 desktop to Microsoft Virtual PC 2007 on Windows XP Professional hosts. If you’ve performed physical to virtual (P2V) migrations, you’re probably aware of the challenges associated with them. Each migration seems to have its own personality and associated obstacles to overcome. In the Win98 P2V migrations, the obstacle was getting the mouse integration feature to work.

Mouse integration lets you seamlessly move the mouse pointer between the virtual machine (VM) window and the host’s desktop. If you don’t have mouse integration, you must hold down the keyboard’s right Alt key to get the mouse to move outside of the VM. This is rather bothersome if you use the VM like a program window.

To get the mouse integration feature, you need to install Virtual PC 2007’s Virtual Machine Additions in your VM after the VM is up and running. Mouse integration has always worked for me for every Windows OS running in Virtual PC 2007, except Win98. It even had worked in my own Win98 VM until I uninstalled and reinstalled Virtual Machine Additions while doing some diagnostic work. (I personally have a Win98 VM for those occasional Symantec pcAnywhere support sessions or Win98- only classic games.) Since then, I spent hours uninstalling and reinstalling Virtual Machine Additions and looking for the reason why mouse integration didn’t work, but to no avail. I even discussed the problem with Microsoft Customer Service and Support (CSS) and a Microsoft product manager. In both cases, the reply was something to the effect of, “Win98 is no longer a supported OS…but mouse integration works for us.”

Recently, the same customer asked me to do another Win98 P2V migration. To my complete astonishment, after installing Virtual Machine Additions, mouse integration worked on the VM. Now I had something to work with for comparative purposes.

The details of the comparative diagnosis are long and boring, so I’ll spare you the minutiae and get right to the solution. The code that makes mouse integration work is in the VM’s C:\Windows\system .ini file. Apparently, a bug in the Virtual Machine Additions installation routine sometimes rears its ugly head when the code is installed into Win98 VMs. To fix the bug, you can use Notepad or edit.com to edit the system.ini file’s \[boot.description\] and \[boot\] sections. Here are the edits you might need to make:
• If the line

mouse.drv=hostmaus.drv is in the \[boot.description\] section, move it to the \[boot\] section.
• If the line HOST.MOUSE.DRV=Microsoft Mouse is in the \[boot.description\] section, delete it. Add the line HOST.MOUSE.DRV=mouse.drv to the \[boot\] section.
• If the line mouse.drv=Standard Mouse is missing in the \[boot.description\] section, add it.

Note that you need to enter these lines exactly as shown. In addition, don’t change any of the other lines in the \[boot\] and \[boot.description\] sections. I entered a line incorrectly at one point in my testing. As a result, when Win98 started to boot, it hung with an error report of “…Windows 98 could not start. Please reinstall Windows….” To fix the problem, I had to use edit.com from DOS to open the system.ini file and make a correction. Afterward, Win98 booted without any problems.

Before you edit the system.ini file, I recommend that you back up the system .ini file. That way, if needed, you can restore the .ini file in its original condition from a Win98 DOS prompt (i.e., press F8 when Win98 starts to boot and select option 5, “Command Line”).