Philip I Neison,
IBM PC Emulator For Atari ST
What's made by Atari and runs your favorite IBM PC software? Six months ago, the answer would have been Atari's new PC clone. But now Avant-Garde Software has introduced a program named pcditto which emulates an IBM PC entirely in software.
Emulation—one computer mimicking another—is a controversial topic. Let's start with some popular pros and cons, airing the cons first.
- The IBM PC is an inferior machine with a slow processor, crude graphics, and a user interface that harks back to the infancy of computing. Even assuming that you could emulate such a device, what ST owner would want to? Let the ST be an ST.
- Software emulators give you the worst of both worlds. A PC/ST combo, for example, combines the PC's antiquated, keyboard-driven user interface with the ST's non-standard keyboard. Strip both machines down to the lowest common denominator, and you're left with all the functionality of a VIC-20.
- PC clones are so cheap, they'll soon be peddled in shrink-wrap on the racks of grocery store checkout lines. If you really want to run IBM PC software, do what everyone else does: Buy a clone.
Now for some pros.
- The IBM PC software base is immense and mature. A software emulator provides the cheapest possible entrEe to thousands of slick programs—most of which will never be released in native ST versions.
- A software emulator makes sense if you have an occasional need to run an MS-DOS application, but can't spare the dollars or desk space for an entire second system. If you had to choose a second computer, you could do worse than a PCcompatible, even one that's slow.
- Regardless of utility, there's something inherently fascinating about a software emulator. If you fire up pc-ditto at an ST user-group meeting, you may hear some catcalls, but there won't be a soul in the room who can resist peeking over your shoulder to see if it really works.
Like every PC-compatible machine, pc-ditto has to boot up by loading the system files IBMBIO.COM, IBMDOS.COM, and COMMAND.COM (the names of these files will differ on non-IBM systems). However, the pc-ditto package does not include the IBM PC system files, which belong to Microsoft or IBM, depending on whether you're talking about MS-DOS or the virtually identical PC-DOS.
Thus, your first task is to obtain a copy of DOS on a disk that your system can read. Disk compatibility creates less difficulty than you might imagine, since a 31/2-inch ST drive can read and write to any 31/2-inch MS-DOS disk, provided the disk was formatted on an MS-DOS machine. Many PC-compatible laptops have 31/2-inch drives, as do the new Personal System/2 machines from IBM. It's also possible to buy a PC-compatible 51/4-inch external drive for the ST.
Once you supply pc-ditto with a DOS disk, the drive whirs briefly while the system files load. Then it appears—the famous A> prompt that inspires love and hate in so many of us. If you type DIR and press Return, the computer prints a genuine MS-DOS directory on the screen. It looks like you're in business. Could it really be this easy?
It's an old programming adage that any computer can emulate any other computer, as long as speed is no consideration. Like most adages, this one isn't strictly true, but it emphasizes a vital point. Much of the functionality of any computer rises from the speed at which it performs the task at hand. You wouldn't tolerate a word processor that made you wait three seconds between every keystroke, for instance. The pc-ditto emulator isn't that slow, but I found it sluggish enough to make most MS-DOS programs virtually unusable.
My original plan for this column was to show how you might bootstrap your way into PC compatibility at the lowest possible cost. Using pc-ditto, I planned to boot up GW-BASIC, type in a rudimentary telecommunications program, call an information service, and download a public domain word processor, which I would use to write a column about the joys of PC compatibility.
I am not writing this column on an emulated IBM PC, although I did go so far as to download and try out the public domain word processor, along with a dozen assorted MS-DOS applications I brought home from the office. Although I was anxious for pc-ditto to work well, it now lives in a box labeled "Software I Will Never Use Again."
What Price Compatibility?
Here are some figures to explain my lack of enthusiasm. They're based on the venerable Sieve of Eratosthenes benchmark program which everyone and his brother now uses to measure processing speed (even though it doesn't test much except looping speed). The first set of numbers shows the time in seconds to run a BASIC version of the Sieve, using GW-BASIC on an IBM AT, IBM XT, and a 1040ST using pc-ditto.
The last number is not a misprint. It takes pc-ditto over 24 minutes to run a GW-BASIC program that an XT runs in just over 2 minutes and an AT runs in less than 11/2 minutes. Here are the times for running the compiled C version of the Sieve:
In this case, the emulator takes close to 12 minutes to process code that the XT runs in 11/2 minutes and the AT rips through in just over 1/2 minute.
All of these times represent the average of several trials, rounded to the nearest second. Speed isn't everything, of course. Sluggishness aside, I have to admit that pc-ditto seems to run "well-behaved" MS-DOS software without noticeable problems, although my survey was anything but scientific. Whether you're willing to tolerate a ten-to-one speed decrease is a question you'll have to answer for yourself. As with all software, it's only prudent to try before you buy. Haul your favorite MS-DOS application down to your local dealer and ask to see it demonstrated with pc-ditto.
Ignoring The Lessons Of History
Here's another case where the Amiga's history offers an interesting parallel. Commodore sank considerable effort into a software IBM PC emulator called the "Transformer," but eventually junked it in favor of a hardware/software solution that amounts to a PC on a card. The Amiga 2000's Bridge card contains an 8086 processor, floppy disk controller, some shared RAM, and two or three glue chips to hold everything together. The arrangement makes sense, especially given the very low price of basic PC components. You let the 8086 do its own processing, make your ports and keyboard available for I/O, and use the host processor only for supervision, as it were. You'd expect the same solution to be even easier on the ST, since it already contains a disk drive that can read and write MS-DOS disks. But the ST's closed architecture makes it hard to design such a card at a reasonable cost.