Compatibility Issues
See also: Influence of the IBM PC on the personal computer marketAt the same time, many manufacturers such as Xerox, Hewlett-Packard, Digital Equipment Corporation, Sanyo, Texas Instruments, Tulip, Wang and Olivetti introduced personal computers that were MS DOS compatible, but not completely software- or hardware-compatible with the IBM PC.
Microsoft's intention was that application writers would write to the application programming interfaces in MS-DOS or the firmware BIOS, and that this would form what would now be termed a hardware abstraction layer. Each computer would have its own Original Equipment Manufacturer (OEM) version of MS-DOS, customized to its hardware. Any software written for MS-DOS would operate on any MS-DOS computer, despite variations in hardware design.
This expectation seemed reasonable in the computer marketplace of the time. Until then Microsoft was based primarily on computer languages such as BASIC. The established small system operating software was CP/M from Digital Research which was in use both at the hobbyist level and by the more professional of those using microcomputers. To achieve such widespread use, and thus make the product viable economically, the OS had to operate across a range of machines from different vendors that had widely varying hardware. Those customers who needed other applications than the starter programs could reasonably expect publishers to offer their products for a variety of computers, on suitable media for each.
Microsoft's competing OS was intended initially to operate on a similar varied spectrum of hardware, although all based on the 8086 processor. Thus, MS-DOS was for several years sold only as an OEM product. There was no Microsoft-branded MS-DOS: MS-DOS could not be purchased directly from Microsoft, and each OEM release was packaged with the trade dress of the given PC vendor. Malfunctions were to be reported to the OEM, not to Microsoft. However, as "compatibles" became widespread, it soon became clear that the OEM versions of MS-DOS were virtually identical, except perhaps for the provision of a few utility programs.
MS-DOS provided adequate functionality for character-oriented applications such as those that could have been implemented on a text-only terminal. Had the bulk of commercially important software been of this nature, low-level hardware compatibility might not have mattered. However, in order to provide maximum performance and leverage hardware features (or work around hardware bugs), PC applications quickly evolved beyond the simple terminal applications that MS-DOS supported directly. Spreadsheets, WYSIWYG word processors, presentation software and remote communication software established new markets that exploited the PC's strengths, but required capabilities beyond what MS-DOS provided. Thus, from very early in the development of the MS-DOS software environment, many significant commercial software products were written directly to the hardware, for a variety of reasons:
- MS-DOS itself did not provide any way to position the text cursor (except to advance it after printing each letter). While the BIOS video interface routines were adequate for rudimentary output, they were inefficient; they did not have "string" output (only output by individual character) and they inserted delay periods to compensate for CGA hardware "snow" (a display artifact of CGA cards produced when writing directly to screen memory)-- an especially bad artifact since they were called by IRQs, thus making multitasking very difficult. A program that wrote directly to video memory could achieve output rates 5 to 20 times faster than making standard calls to the BIOS and MS-DOS. Turbo Pascal used this technique from its earliest versions.
- Graphics capability was not taken seriously in the original IBM design brief; graphics were considered only from the perspective of generating static business graphics such as charts and graphs. MS-DOS did not have an API for graphics, and the BIOS only included the most rudimentary of graphics functions (such as changing screen modes and plotting single points). To make a BIOS call for every point drawn or modified also increased overhead considerably, making the BIOS interface notoriously slow. Because of this, line-drawing, arc-drawing, and blitting had to be performed by the application to achieve acceptable speed, which was usually done by bypassing the BIOS and accessing video memory directly.
- Video games, even early ones, mostly required a true graphics mode. They also performed any machine-dependent trick the programmers could think of in order to gain speed. Though initially the major market for the PC was for business applications, games capability became an important factor motivating PC purchases as prices decreased. The availability and quality of games could mean the difference between the purchase of a PC compatible or a different platform like the Amiga.
- Communications software directly accessed the UART serial port chip, because the MS-DOS API and the BIOS did not provide full support and was too slow to keep up with hardware which could transfer data at 19200 bit/s.
- Even for standard business applications, speed of execution was a significant competitive advantage. This was shown dramatically by Lotus 1-2-3's out-competition of rival Context MBA in the then-popular genre of integrated software. Context MBA preceded Lotus to market and included more functions; it was written in standard Pascal, making it very portable but too slow to be truly usable on a PC. 1-2-3 was written in x86 assembly language and performed some machine-dependent tricks. It was so much faster that Context MBA was effectively finished as soon as Lotus was introduced.
- Disk copy-protection schemes, in common use at the time, worked by reading nonstandard data patterns on the diskette to verify originality. These patterns were impossible to detect using standard DOS or BIOS calls, so direct access to the disk controller hardware was necessary for the protection to work.
At first, few clones other than Compaq's offered full compatibility. Reviewers and users developed suites of programs to test compatibility; the ability to operate Lotus 1-2-3 or Microsoft Flight Simulator became a standard test. Vendors gradually learned not only to emulate the IBM BIOS but also to use identical hardware chips to perform key functions within the system. Although Compaq kept its BIOS proprietary, eventually the Phoenix BIOS and similar commercially-available products permitted computer makers to build essentially 100%-compatible clones without having to reverse-engineer the IBM PC BIOS themselves.
Over time, IBM damaged its own market by itself failing to appreciate the importance of "IBM compatibility". It introduced products such as the IBM PC Convertible which was outsold by the heavier but much earlier and more compatible Compaq Portable, and the PCjr, which had significant incompatibilities with the original PC and was soon discontinued.
By the late 1980s buyers began to regard PCs as commodities, and doubted that the security blanket of the IBM brand warranted the greater price. Meanwhile, MS-DOS-compatible (but not hardware-compatible) systems did not succeed in the market. Being unable to operate off-the-shelf software packages for the IBM PC and true compatibles made for poor sales and the eventual extinction of this category of systems. Also, because of hardware incompatibility with the IBM PC design, the Intel 80186 processor released only a year after the IBM PC was never popular in general-purpose personal computers.
Read more about this topic: IBM PC Compatible
Famous quotes containing the word issues:
“How to attain sufficient clarity of thought to meet the terrifying issues now facing us, before it is too late, is ... important. Of one thing I feel reasonably sure: we cant stop to discuss whether the table has or hasnt legs when the house is burning down over our heads. Nor do the classics per se seem to furnish the kind of education which fits people to cope with a fast-changing civilization.”
—Mary Barnett Gilson (1877?)