Back to the Piano Education Home Page

Music and the Home Computer - Old Music Software On New Computers

 

by John M. Zeigler, Ph.D.
Rio Rancho, NM USA

  M
 

any of us have older software for DOS, Windows 3.1 or Windows 95 that we like a lot or into which we have inputted a great deal of data. Replacing this software with a newer version designed to run on more modern computers with the latest operating system may not be desirable or even possible. In several cases, some of the best piano and music training software is no longer even available in versions compatible with new operating systems, because the manufacturer of the original version is no longer in business (e.g. Musicware, JumpMusic, Software Toolworks, etc.). Given these problems, those of us with favorite old software packages may be in trouble figuring out how to get these no longer marketed products to work on the latest and greatest computer.

In this article, we'll briefly explore a bit of the history of computers and operating systems and then talk about some general strategies for working around problems running old software. I offer, in advance, apologies for the many (over) simplifications I'll make in describing the history and characteristics of various operating systems. The intent here is not to present a detailed technical history of PC computing and operating systems, but to provide the reader with enough information to understand why some programs don't work in modern operating systems and how certain general strategies can be used to try to get them to work. You can skip understanding the history and mechanics and just get to problems and possible solutions, although the history will help you understand those problems better.

 

keyinfo.gif (1045 bytes)Windows, PC-DOS, MS-DOS and various other registered trademarked names used in this article are owned by the corporations indicated. These names are used for identification purposes only herein.

 

The IBM-PC and DOS

When introduced in 1981, the IBM-PC came with a 16-bit 8088 Intel processor (i.e. a processor in which data are manipulated by the processor in 16-bit binary "chunks") and a corresponding 16-bit operating system called "PC-DOS" (for "disk operating system"), produced by Microsoft. Although the operating system is a kind of software, it has a special privileged role. It provides the connection between all other software applications written for that operating system and the hardware. It controls disk formatting, writing and reading from disks, copying and deleting files, and a literal host of other relatively "low-level" functions. Although PC-DOS, later renamed by Microsoft "MS-DOS," went through at least six major versions, with additions and improvements along the way, it still retained its fundamental character as a 16-bit "real mode", command line driven system. The "real mode" part of that signifies that DOS programs can address memory and hardware directly (addressing "real" physical memory locations and hardware address "ports"), with relatively little control by the operating system of these critical functions. The result was that one program could overwrite memory or device parameters in use by another program (including DOS itself) and crash the whole system. Unfortunately, such direct memory and hardware addressing gave much greater program speeds, so any demanding DOS program (including virtually all music-related software and games) almost invariably used these instability-producing programming methods. The other major disadvantage of DOS systems was that they could only "see" 640 KB of memory directly and had to perform all their functions in that memory (the famous "640K limit"). Any more memory beyond that could only be accessed slowly and inefficiently by "paging" memory above the limit into addresses within the limit (using an "expanded memory manager").

Protected Mode Processors and Operating Systems

In 1982, Intel introduced the 80286 processor, first used in the IBM PC-AT. This processor had the capability to run in so-called "protected mode," in which the processor could take over control of memory and hardware accesses from software programs, thereby preventing them from overwriting each other's code. At the time, this characteristic was little used, since so much software was DOS software written to use "real mode." However, the 80286 protected mode could address a much larger amount of memory than the 640 K of DOS. With the introduction of the 80386 chip in 1985, however, the advantages of greater memory access capability became inescapably apparent. Also, the 80386 could run in 32-bit protected mode, thereby speeding up computing dramatically. What was needed was a protected mode operating system that could really use those advantages.

16-bit Windows

The Microsoft Windows "operating environment" had been around since 1985, as a kind of overlay for DOS that produced an attractive and more intuitive graphical environment in an otherwise basically command line-driven system. However, in 1990, Microsoft released Windows 3.0, which, for the first time could run in protected mode and use all the memory which protected mode made available. This was still a 16-bit operating system and still had to maintain ability for DOS programs to run in real mode, so it wasn't a "pure" protected mode operating system. A year later, when version 3.1 was released and rapidly adopted worldwide, Windows 3.1 became the new computing paradigm for Intel PC computing. Of course, since Windows 3.1 had to maintain compatibility with DOS applications, the real mode parts of it still remained and still led to frequent "crashes."

32-bit Windows

In 1995, Microsoft released the first version of 32-bit Windows, Windows 95. Windows 95, like its predecessors, had to maintain compatibility with 16-bit Windows and DOS applications. Even though it was a 32-bit operating system, parts of the "kernel" (the most "basic" part of the operating system) still used 16-bit instructions and still allowed real mode operation, again for compatibility. It has been hotly argued in some computing circles whether Windows 95 and its successors, Windows 98 and Windows Me, are "really" 32-bit protected mode systems, given the 16-bit core functions and the still ubiquitous (though less frequent than earlier versions) crashes which occurred with systems running these operating systems.

Windows NT, 2000 and XP

The key to gaining better operating system and application stability was to remove the ability for DOS and Windows applications to address memory and hardware directly. This was one of many important new aspects of the philosophy behind Windows NT and successors Windows 2000 and XP and later. This was done successfully (although some who have seen the infamous "blue screen of death" too often in these operating systems might argue that point) in these "business" operating systems, but at the price of making many DOS-based games and multimedia music applications inoperable. While all will run DOS applications, any such applications that directly address hardware would not run at all in Windows NT (which, unfortunately, included almost all games and many piano software applications like the Miracle Piano Teaching System). DOS programs could be run in "separate memory spaces" in these operating systems, which effectively wall off any misbehaving DOS or 16-bit Windows program from bringing the whole system down, but at the price of compatibility, particularly in NT.

64-bit Windows

Windows XP and later provided optional 64-bit versions. In a 64-bit operating system, program and operating system instructions are handled in 64-bit (i.e. 64 digit binary numbers) "mouthfuls". Think of it as the difference between the eating speed of a human (16-bit), a lion (32-bit), and an alligator (64-bit)! The 64-bit versions have the theoretical capability to run programs faster than 32-bit versions, but application programs must be written and compiled (i.e. converted from programming language to binary machine code) specifically to take advantage of this capability. 32-bit Windows programs will run in 64-bit Windows, but 16-bit programs will not run directly. Most home users have some version of 32-bit Windows and virtually all piano software is supplied in 32-bit form.

The View From Windows Vista®, 7 and 8

These newer versions of Windows come in many "flavors" and two rather different versions, a 32-bit one that most people will use and the 64-bit one for "power users". The 64-bit versions do not support 16-bit (i.e. DOS and Windows 3.x) software at all, so these programs will not run in native 64-bit Vista, though one can run them in DOS emulators (see below). The 32-bit versions can, in principle, run 16-bit software, as well as much software written for Windows versions up through and including Windows XP. However, it is often not easy to get "legacy" software to run under the newer versions of Windows.

About 80% of "legacy" software (DOS and Windows) can be gotten to work after a fashion - if you're willing to work at it. There is no single problem with software install and operation that can be cited as preventing software from installing and running under Vista. The most prevalent problems are security-related ones and can be solved if you search Vista Help efficiently. In fact, Vista Help is often, by far, the best way of finding the necessary dialogs to allow programs to run or install. The error messages you get are often less than informative. Here are some of the most common issues:

Security interface issues: Many older programs, like the Miracle and Piano Discovery System, have problems under Vista and later Windows versions. These manifest themselves as messages that look like "File not found" or "unable to find" during setup. I've seen these problems under Vista, and Windows 7 and 8 many times with other programs. Windows "security" is preventing access to the necessary setup files, because you don't have sufficiently high permissions to access all the files. Just having administrative access under Vista isn't enough, especially with older Win 3.1 programs like PDS.

You can usually remedy this: Start Windows Explorer and point it at the CD-ROM drive where you have the software CD. Right click on the root (top) directory (probably D:) of the software CD and choose Properties from the resulting menu. Then click on the Security tab. Click the Edit... button and in the resulting dialog, look at the authorized users. If your username doesn't appear explicitly, click the Add... button and then type in your username in the resulting dialog. Click Check Names and Windows will find your actual (as Windows sees it) username. Once it finds you, click OK. Now you're back to the Permissions dialog. Give yourself Full control. Now exit out of everything and try the program setup again. If you get the same error, you'll have to do the same process for all the files on the CD. Chances are good that will solve the install problems.

Privilege issues: One of the most common problems with installation and execution of Windows XP software is the need for explicit Administrator privileges to install and run it. Just being logged into an Administrator account won't be enough. Usually, these problems can be solved by starting the software manually (not from the CD-ROM autorun) from Explorer, right-clicking the install program name and choosing Run as an Administrator from the popup menu. Some programs will also require you to set the "compatibility mode" to an earlier version of Windows before you can install them properly.

Windows Help issues: Many of your legacy Windows programs (including most piano software) will work with sufficient effort, but you'll find that their Help won't work! The reason is that Microsoft, in its "wisdom", has decided to eliminate the older (i.e. a couple years ago) Help format reader (winhlp32.exe) from the Vista distribution. You can download it from the MS support site, but only if you use IE as your browser to allow Microsoft to verify that you have "genuine" Windows.

Video issues: Unfortunately, many MS-DOS programs which ran well under XP don't run correctly under later versions of Windows. These give an error "this program does not support fullscreen mode". As described in the relevant Microsoft Knowledgebase article, this problem is not directly solvable in native 64-bit versions of Windows, because they don't support 16-bit DOS applications at all. For the 32-bit Windows versions, the Windows video drivers don't support all DOS video modes, thus producing the error. Microsoft suggests a workaround of installing the Windows XP drivers for your video adapter.

Font Issues: There are some (as in, many) other differences between NT, 2000, XP, Vista, 7 and 8 and earlier versions of Windows. One important one is that Windows versions starting with 2000 and XP utilize a new type of font technology, called OpenType, rather than the TrueType technology of earlier versions of Windows. Although OpenType is supposed to be "backward compatible" with TrueType, some older programs will install TrueType fonts that are not fully compatible with OpenType. There is no easy fix for this problem, which produces scrambled or blocked out characters on your screen. There are some font conversion programs available, but these are not really tools for the average home user. Of course, if you get to the point that you're talking about having to learn how to convert fonts, it may just be easier and cheaper to buy new software.

Upgrading: Most providers of older Windows software don't offer support for the older Windows XP versions under Vista, 7 and 8. Often, they have eliminated all support for those versions. They have "certified" versions that they will sell you. This will cost you extra money, but if you're not a computer expert, it may save you a lot of time just to upgrade all your software. If the company which wrote the software is out of business, you will probably have the best luck with a DOS emulator.

Getting Old Software to Run

The purpose for this long dissertation on the fundamentals of operating systems and hardware is to provide the reader a basis for understanding the major reasons for the failure of older software to run properly in newer operating systems. First and foremost of these is attempts by the software to directly access memory and hardware resources. Of course, you can't rewrite the program, and, as is often the case, the manufacturer of the software either is no longer in business or doesn't support it anymore, so you can't get any tech support. All versions of Windows after Windows NT allow you to run the program in a "separate memory space," as indicated above. To do this, go to the program shortcut, right click on it to bring up the context menu, choose Properties and select the Shortcut tab. Click on the Advanced ... button. Check the Run in separate memory space box, then OK out of all these windows and try it. This may or may not allow the program to run, but at least should "limit the damage" if the program crashes.

Using Compatibility Mode in XP and Beyond

With the introduction of Windows 2000, a new feature was added: the so-called "compatibility mode," installed by default in Windows XP, Vista, 7 and 8 and readily enabled in Windows 2000 (for instructions, see Microsoft Knowledge Base article 279792 - HOW TO: Enable Application Compatibility-Mode Technology in Windows 2000 SP2 and SP3). By using compatibility mode, one can cause Windows 2000, Vista, XP, Windows 7  and 8 to operate somewhat like ("emulate") earlier versions of 32-bit Windows (Windows 95, Windows 98, and Windows Me), but not 16-bit Windows. Thus, if you have a program which ran fine in an earlier version of Windows, but won't do so in 2000, Vista or XP, you can use compatibility mode to have the operating system provide an environment more like that of the Windows version under which it ran properly.

Compatibility mode is accessed in similar ways in all these operating systems. Go to your program shortcut, right click on it, and select Properties from the popup menu. This will bring up a tabbed display. Go to the Compatibility tab and check the Compatibility mode box. Choose the compatibility mode from the drop-down menu. Generally, you'll want to choose either the latest version of the operating system that you know the program worked with or which the program documentation says it works with or, if the program is really old, choose Windows 95. Then click on OK to exit this. Now try to run the program. With luck, you may now have it working. There is even a program compatibility Wizard available in XP and later to help you with this process. You can run the Wizard from Control Panel. Compatibility mode does not guarantee that your errant program will run properly, but it will give you a fighting chance. As they say, "if at first you don't succeed, try, try again." If one compatibility mode doesn't work right, try another.

Without wishing to get into the details to too great a degree, since they are poorly documented, Compatibility Mode works in at least a couple different ways. First, it limits program calls (requests by application programs to use elements of Windows code) to certain DLL's (Dynamic Link Libraries, the basic units of Windows programming), which work differently in different versions of Windows. Windows simply translates or transfers calls to different parts of the DLL's, when in Compatibility Mode, allowing many programs, which would otherwise be incompatible with the current version of Windows, to operate. This is somewhat analogous to running Windows in Safe Mode, where only basic sets of drivers and code are used. Second, in some cases, it works simply by identifying the Windows version to the program as something other than it is (e.g. Windows 95, rather than XP, when running in XP's Compatibility Mode), because the program is hard-coded to check for and run only under "Windows 95", for example. Although many programmers think that Compatibility Mode is a "kludge", it's a small price to pay to allow the widest variety of programs to operate, without requiring us to completely replace our entire program library every time a new version of Windows arrives.

To run a program this way, go to your program shortcut, right click on the shortcut, and select Properties from the popup menu. This will bring up a tabbed display. Go to the Compatibility tab and check the Compatibility mode box. Choose Windows 95 compatibility mode for DOS programs or the latest version of Windows supported by the program for Windows programs. Then click on OK to exit this. Now try to run the program. With luck, you may now have the program running. If not go back to the shortcut, right click again to bring up the context menu., choose Properties again and select the Shortcut tab. Click on the Advanced ... button. Check the Run in separate memory space box, then OK out of all these windows and try again. Since no significant changes are made to your machine when using Compatibility Mode, you can rapidly try the various Windows versions (emulations) available in Compatibility Mode in turn, if the version you choose doesn't help. Windows Vista also offers a Compatibility Mode "wizard" to help you through the process. Just search Windows Help to find and run it. Compatibility Mode should not be used with system-level programs (antivirus, disk utilities, firewalls, etc.).

Hardware Changes

Of course, just as the operating system software has changed, there have been a virtually innumerable number of important advances in the hardware of computing. Most of these have been positive, but one has had a fairly serious impact on some programs, particularly the Miracle Piano Teaching System. This program uses an 8x14 pixel font, which has, unfortunately, been eliminated from the on-board ROM of most modern video cards. The result is "scrambled" characters on many of the Miracle menus. If you're running the DOS Miracle (or trying to) or any other DOS program which doesn't play well in modern versions of Windows, you'll almost certainly need a handy little free fix for this available in the form of an installable DOS device driver that restores 8x14 font support. You can find out more about this, as well as download the fix, at FIX8X14 - 8x14 font fixer. Another alternative for running DOS programs of all sorts under all versions of 32 and 64-bit Windows, which doesn't need this font fixer, is discussed below.

Another Option

Surprisingly, there is another good option that really works for running older DOS software in newer operating systems. This is a free DOS emulator called DOSBox. This emulator simulates DOS in a window, not only in 32-bit Windows, but in 64-bit Windows, Mac OS X, several flavors of Linux, and a couple of other rarer systems. It's completely free to download DOSBox under the GNU license. DOSBox is slightly more complicated to use than native DOS, but, chances are you'll spend less time getting old software like Miracle DOS up and running in DOSBox than you will trying to solve the problems in XP or Vista. I have tested the Miracle DOS, several DOS games, a DOS scientific program, and a couple of DOS business applications in DOSBox running under Vista with good success. There is also a very good DOSBoxWiki on installation and setup to help you get started. The DOSBox environment provides good support for sound and MIDI input. Programs running in the DOSBox can be run either full screen or in a window.

I've tested several well-behaved (not writing directly to hardware) DOS applications in DOSBox. All run well there with no adjustment at all. You can also find a long list of programs pre-tested by others on the DOSBox site. DOSBox can be configured easily to meet the needs of any particular DOS program by editing a single, well-documented file in the DOSBox program directory, dosbox.conf, with any ASCII editor. If you're using DOSBox in Vista or later Windows versions, you'll need to give yourself explicit privileges to be able to edit dosbox.conf. DOSBox has many options, explained in the Wiki and as comments in the .conf file. For example, you can control the size of the full screen display by changing one parameter. This is important, since many DOS applications become much too pixelated if displayed full screen at current monitor resolutions. There are many options for input and sound. For more on using and configuring DOSBox for piano software, see my Miracle Piano DOS in DOSBox FAQ. There are other DOS emulators, free and commercial, but I've not tested these wiht piano software.

Why Bother?

Sadly, one of the most important reasons that people with an interest in music and piano learning software should care about how to make their older software work on newer machines is that some of the best software is no longer available in updated versions. Mostly this is due to "consolidation" in the software industry (a euphemistic way of saying "business bankruptcies"). That's not to say that there isn't good, up-to-date software out there for music and piano, but the options are fewer and may not be right for everyone. I hope that this article gives you an understanding for why old software doesn't always work well with newer systems and how one can go about remedying at least some of the problems. These "fixes" aren't guaranteed to work in all cases, but they are sure better to try than throwing the software and/or hardware away!

 
 
 
 
Page created: 3/10/04
Last updated: 01/07/14
 
Site Policies Credits About Feedback Reprinting
     

Reprinting from the Piano Education Page The Piano Education Page, Op. 9, No. 2, http://pianoeducation.org
© Copyright 1995-2014 John M. Zeigler. All rights reserved.