For more than a decade, the programmers behind Microsoft Windows have been caught in a double bind. On one hand, Windows needs to be the latest and greatest OS; on the other hand, it needs to maintain a certain amount of backward compatibility. The problem has been handled in different ways over the years. The Windows 9x platform maintained support for legacy applications at the sacrifice of stability; the Windows NT platform abandoned compatibility for the promise of better stability.
With Windows XP, Microsoft seems to be getting it right. While it’s true that there’s no DOS kernel behind Windows XP, and therefore no guarantee of compatibility with 16-bit programs, XP’s support of legacy applications through a new Compatibility Mode is more effective than any of the attempts in previous Windows versions. I’ll explain how this feature can make nearly any legacy application work with Windows XP.
What constitutes a legacy application?
A legacy application is one that’s designed to run under an older version of the operating system (OS). Legacy applications can include 32-bit programs designed for Windows 9x, Windows NT, or Windows 2000; they can also include 16-bit Windows applications designed for Windows 3.x and MS-DOS applications. Basically, “legacy” is a big basket into which everything is thrown that wasn’t specifically designed for Windows XP.
Most legacy applications work fine in Windows XP with the default settings, and you don’t have to do anything special to make them work. However, you may run into the occasional maverick program that breaks the rules, usually because of some programming quirk created by a shortsighted programmer who never dreamed that his program would live longer than the version of Windows for which he wrote it. Some applications check the OS version at startup, for example, and won’t run unless they find a version they recognize. Others rely on certain system files included with a particular OS or a particular method of accessing the video subsystem or some other hardware.
To be fair, the refusal of a legacy application to run under Windows XP isn’t always due to shortsighted programming. There might have been a very good reason at the time to limit a certain application to a fixed set of OSs. Programmers could not have guessed in the mid-1990s that Windows XP was on its way and that it would make irrelevant what was then a compelling application. A whole class of programs also really does have legitimate reasons for not running under Windows XP, such as older disk utilities. See the sidebar “Don’t even try it…” for more information on that topic.
How Compatibility Mode works
Compatibility issues are nothing new. Many of you probably remember the days of MS-DOS’s SETVER utility, which enabled MS-DOS to trick older applications into believing that an earlier version of MS-DOS was running. And you may recall in Windows 9x a setting for MS-DOS programs that enabled Windows to convince an application that Windows wasn’t running when, in fact, it was.
It’s in the same vein that the new Compatibility Mode feature in Windows XP operates but much more smoothly and with better options. Compatibility Mode in Windows XP doesn’t actually run the older OS that you specify; it just tricks the program into believing that the specified OS is running by changing certain cues that the program receives. Compatibility Mode can emulate Windows 95, Windows 98, Windows NT 4, and Windows 2000. It doesn’t emulate MS-DOS. (I’ll talk about MS-DOS programs later.)
In addition to the behind-the-scenes compatibility it sets up, Compatibility Mode can enable a program to use a 256-color color depth and a 640x480 screen resolution. These video modes have been retired from regular Windows XP operation; you won’t find them available in Display Properties anymore. So if you need to run a program that requires that particular color depth or resolution, Compatibility Mode is the way to get access to those.
You can set up Compatibility Mode in Windows XP in two ways. The wizard method takes a rather long time, but it provides some help for figuring out the right settings to use. The other method is quick and dirty, but you run the risk of getting the settings wrong.
Using the Compatibility Wizard
The Compatibility Wizard is a good choice for first-time users of the Compatibility Mode feature and for situations in which you aren’t sure which Windows version the program in question was written for. The Compatibility Wizard enables you to test various Windows versions and settings on the application to determine which emulation works best for it.
You can run the Compatibility Wizard for a program that’s already installed or for a program you haven’t installed yet. The wizard will walk you through either scenario. To run the Compatibility Wizard, follow these steps:
- 1. Choose Start | All Programs | Accessories | Program Compatibility Wizard. This opens the Help And Support Center with the Program Compatibility Wizard running inside it.
- 2. Read the information on the Welcome screen and click Next.
- 3. When asked how you want to locate the program, choose one of the following:
- · If the program is not installed yet and comes on CD-ROM, choose I Want To Use The Program In The CD-ROM Drive (and then insert the CD). If the Setup program tries to run automatically at this point, close it because you are not ready to run it yet. Then click Next in the wizard.
- · If the program is not installed yet and the Setup file for it is located somewhere else, choose I Want To Locate The Program Manually. Then click Next and either type the name/path to the file or use Browse to locate it. Click Next to continue.
- 4. The wizard will ask which version of Windows you want to try (Figure B). Select the version you want and click Next.
- 5. If you need to use 256-color, 640x480 resolution, or turn off visual themes, mark the appropriate check boxes for these options and click Next (Figure C).
- 6. A summary will appear; click Next to try to run the program (or its Setup).
- 7. When you have decided whether or not the program works with these settings, return to the wizard and indicate your answer and then click Next. If you choose Yes, the Compatibility Wizard saves the current compatibility settings for that application and will run it using those settings from now on. (This isn’t all that useful for a Setup program, but it's great if you did it for an already-installed application.)
- 8. You’ll be prompted to send information to Microsoft; click Yes or No and then click Next | Finish.
An important note
If you used the Compatibility Wizard to install an application, you must use it again to set up the program to run in a particular emulation; the two activities are separate. Some programs require Compatibility Mode for setup but not for normal operation—others, vice versa. Some require it for both.
Once you’ve set a program up for Compatibility Mode, it will run that way every time. If you ever want to remove Compatibility Mode from that program, you can run the wizard again and choose that option, or you can remove it manually, as you’ll learn in the following section.
Setting up Compatibility Mode manually
If the Compatibility Wizard seems like a lot of work to you, you’re right, it is. But it’s foolproof because it enables you to try various settings without saving them. Saving the settings doesn’t occur until the very end, when you have confirmed that the chosen settings work.
If you’re a more intrepid type, you can set a program’s compatibility settings from the Properties box for its executable file, like so:
- 1. Right-click the executable file for the program, or any shortcut to it, and choose Properties. To get to the executable file, locate it with Windows Explorer (probably somewhere in the Program Files folder). To get to a shortcut for an installed program, look on the desktop or open the Start menu.
- 2. Click the Compatibility tab.
- 3. Select the Run This Program In Compatibility Mode For check box and then choose an OS version from the drop-down list (Figure D).
If you set compatibility for the executable file, all shortcuts that point to it will be affected; if you set it for the shortcut only, it will affect the program only when started with that particular shortcut. You could have different shortcuts for different compatibility settings if you chose (although there would be little reason to do so).
- 4. Select any of the check boxes in the Display Settings area as needed for your application.
- 5. Click OK.
Some programs won’t work under Windows XP no matter what you do. For example, some versions of Lotus SmartSuite and some versions of VirusScan will install but won’t run after installation. It's worthwhile to check the Web site for the errant program’s manufacturer to see whether a patch or update has been posted that will allow the program to install and run under XP.
A good support tech knows when it’s time to admit defeat on a particular issue; don’t spend all day trying to get a particular program to run. If it means that much to the user, set up his or her PC to dual boot with the earlier OS and run the application from another partition.
Running MS-DOS programs in Windows XP
Running an MS-DOS program under XP isn’t much different from running one under earlier Windows versions. If it doesn’t run correctly with the default settings, you can adjust the settings from the executable file’s Properties box.
When you adjust an MS-DOS program’s properties, you’re creating a Program Information File (PIF) file for it. As you may remember from earlier Windows versions, a PIF file is a shortcut for a DOS program that sets up a compatible environment in which it can run.
When you double-click the executable file for an MS-DOS program for which you have not specifically set any properties, it uses the file _default.pif, located in the %SystemRoot% folder. If you want to change the default settings for MS-DOS programs, modify the properties for that file rather than for the executable file for a particular application.
Windows 9x included an MS-DOS Mode, which rebooted the system into a true real-mode MS-DOS environment. Windows XP doesn’t include this—it can’t because it’s not based on the MS-DOS kernel. However, it does provide a host of settings you can adjust to try to make an MS-DOS program work a little better.
Here are some of the settings you can adjust:
You can directly edit Autoexe.nt and Config.nt in Notepad to change the default settings for all MS-DOS applications.
- · If you’re having timing problems with the application, click the Advanced button on the Program tab and select the Compatible Timer Hardware Emulation check box (Figure E, again).
- · On the Memory tab, you can specify a certain amount of various types of memory to be allocated to the application (conventional, XMS, EMS, and so on). This might be useful if the program won’t start because it thinks it doesn’t have enough memory. Some programs check at startup to make sure that there’s a large memory pool available, but Windows XP allocates memory to each program on an as-needed basis; allocating a specific amount of memory here can trick the program into working.
- · If you’re having video problems, go to the Screen tab and try deselecting the Fast ROM Emulation check box.
- · If you’re having problems with the mouse pointer, go to the Misc tab and turn on Exclusive Mode for the mouse (Figure F).
- · By default, MS-DOS programs stop running when they’re not in the foreground. If you want the program to continue running in the background when you switch away from it, go to the Misc tab (Figure F) and clear the Always Suspend check box.
- · If the program uses a shortcut key combination that Windows uses, Windows will take precedence and you won’t be able to use that key combination in the application. To give the application precedence for a particular key combination, deselect the key combination’s check box on the Misc tab (Figure F).
- · If the program terminates with an error when the Windows screen saver tries to kick in, clear the Allow Screen Saver check box on the Misc tab (Figure F).
- · While there’s no specific compatibility mode for MS-DOS, an MS-DOS program’s Properties box contains the same Compatibility tab as other applications and shortcuts. This might be useful in cases where an MS-DOS program ran successfully under Windows 95 but won’t run under Windows XP.
You’ve learned how to set up Compatibility Mode for an application both manually and with a wizard, and how to configure MS-DOS program settings for best performance under Windows XP. While not every MS-DOS and older Windows program will run under Windows XP, the vast majority will. The new Compatibility Mode feature goes a long way toward maintaining backward compatibility without unduly crippling Windows XP for more modern applications.