In the beginning, Intel created the 8086. And it was slow, and without power, and programmers said that it was bad.
And behold, they heaped curses upon it, and turned aside from the faith of Intel to worship at the interactive alter of the golden Apple.
But then the 80386 and 80486 appeared on the scene, and things finally started looking up for a change.
It's almost a truism these days: the 8086 belongs in a museum; the 80286 in your cordless shaver; and the 80386 in your "old" PC -- the one you just donated to the Salvation Army. For today's PC shopper, the 80486 is de rigueur for power users and novices alike. Estimates of Intel's 1994 worldwide sales of 80486-series microprocessors range anywhere from fifteen to thirty million chips, depending on where you look and when. Hey, it's gotta be good news for the games players and simulation buffs among us, right?
But taking full advantage of the hottest new hardware has always been one of the developer's biggest challenges. The world of game and simulation development has always been dangerous territory for the slow, a place where, as a matter of fact, the guy with the fastest code really does own the road. So why are you still writing games with Ralph Nader's old 16-bit C compiler? More and more game developers have turned to 32-bit DOS extenders and C/C++ compilers to achieve new levels of performance by taking advantage of "flat model" programming techniques offered by the 80386 and later chips. By shipping a commercially available tool called a DOS extender with their products, the creators of some of the sexiest games ranging from Id Software's Doom to Papyrus's Indy Car Racing and Maxis's SimCity 2000 have been able to run their creations in full-blown 32-bit protected mode, defying with impunity the speed limits imposed by the antiquated 8086 "real-mode" architecture. and leaving the unwanted baggage of memory management at the side of the road. (EMS, XMS, PMS...whatever they called it, it's history.)
Vendors of 32-bit DOS extenders, accustomed to ten- to fifty- dollar-per-unit royalties gleaned from high-profile customers like Autodesk and Quarterdeck, have only recently turned to the lower-margin multimedia and entertainment industry segments for new business opportunities. DOS/4GW Professional, offered by Rational Systems of Natick, Massachusetts (508-653-6006), is currently the most popular 32-bit DOS extender available, and can be used exclusively with products written under Watcom C++ (800-265-4555), one of the highest quality C compilers available for the PC. X32/VM, marketed by FlashTek, Inc. of Moscow, Idaho (208-882-6893), also offers support for several compilers, with enhanced Watcom debugging support scheduled for release this year. Phar Lap Software of Cambridge, Massachusetts (617-661-1510) will let you run your 32-bit Microsoft C++ or MetaWare High C++ applications under DOS. However, Phar Lap's continued emphasis on royalty-based licensing may limit their appeal to budget-conscious multimedia developers.
Regardless of which DOS extender you choose, you'll find that one of the most difficult tasks involved in 32-bit multimedia software development is the struggle against the constraints of tradition. After all, the IBM PC was born and bred as a real-mode platform. Even such a simple task as chaining to the system timer interrupt for MIDI music playback may consume days of Valuable Development Time - thrilling, enlightened days spent poring over DOS extender manuals and tracing through interrupt stack frames. Fortunately, several options exist for the programmer who's faced with the task of playing sound and music from protected mode. Third-party libraries such as Miles Design's Audio Interface Library (512-345-2642), for it's upcoming SoundStream/32 (AIL 3.0) release scheduled Q2 of 1994, and Human Machine Interfaces' Sound Operating Systems (503-747-2314), offer ready-to-link solutions covering multiple DOS extenders and C compilers. It's also possible to run your existing real-mode sound drivers as real-mode processes in the lower 640K of memory -- but you'll have to become very friendly with manuals with names like "DPMI 0.9 Specification" before you can pull that one off. Or you can port your existing code to protected mode in its entirety, which will offer you the opportunity to learn more about your DOS extender than you know about your mother. As usual, performance comes at a price, but the rewards are very real. And isn't that where the fun is?