My Dad uses Novell PerfectWorks 2.1 (a derivative of WordPerfect) for writing his invoices. This software was originally released in 1995 for Windows 3.1. Even though it's a 16-bit program designed for Windows 3.1, it still worked under 32-bit Windows XP. However, he recently upgraded to a 64-bit Windows 7 computer, and even under compatibility mode, it won't run anymore. Over the years, he has written thousands of invoices in this software, so manually converting them all isn't feasible.

This is a textbook case of the importance of using open-source software and open standards rather than becoming locked into proprietary software sold-out to a company that went out-of-business.

Fortunately, Microsoft offers a free Windows XP virtual machine disk image for Windows 7 users, which they call "XP Mode". There are two slightly different versions available for download, but you probably want the version contained within WindowsXPMode_en-us.exe from the official Microsoft Download Centre.

I initially tried following the official Microsoft TechNet article on how to Load and Configure Windows XP Mode on Windows 7 using Microsoft Virtual PC. I installed PerfectWorks within the VM, which seemed to work fine, but whenever I tried to open a document, I got: "Application Error: WPWORK20 caused a General Protection Fault in module WPWORK20.EXE at 002B:5588".

General Protection Fault

I'm not entirely sure why it works under Windows XP on a physical computer, but not under a Windows XP virtual machine within Microsoft Virtual PC. The simplest explanation I could find is that many Virtual Machines Managers do not fully emulate all CPU features, so sometimes run into edge cases where the Virtual Machine behaves differently to a physical machine (credit to smjain for his eloquent wording here).

I tried using VMWare Workstation Player instead, as suggested by How-To Geek. The XP Mode VM image provided by Microsoft is in the Windows Virtual PC format, however VMware Workstation Player has a special "Import Windows XP Mode VM" menu option.

VMware Workstation 12 Player will need VMware vCenter Converter installed to perform the conversion. Without it, I get the message "This feature of VMWare Player requires the VMware vCenter Converter Standalone product. Download version 5.5 ... with the Client-Servers installation option selected". Follow this message exactly. The latest version of vCenter Converter won't work, because the functionality to import the Virtual Machine disk format used by Windows Virtual PC was removed in vCenter Converter version 6.

VMware Workstation 12 Player requires vCenter Converter Standalone version 5.5 to import the XP Mode VM.

The vCenter Converter server runs constantly on your computer in the background, but you can uninstall it after importing the Virtual Machine into VMWare Workstation Player. I found that it left a hidden user even after uninstallation, which was preventing Windows from automatically logging in as the default user. You can remove the hidden user with the Windows Local Users and Groups Manager (lusrmgr.msc) tool.

The install of PerfectWorks in XP Mode within VMware Workstation Player worked perfectly. My Dad can now continue using PerfectWorks in all its hideous retro glory.

16-bit PerfectWorks on 32-bit Windows XP in 64-bit VMware Workstation Player on Windows 7