IBM PC compatible
An IBM PC compatible is any personal computer that is hardware- and software-compatible with the IBM Personal Computer and its subsequent models. Like the original IBM PC, an IBM PC–compatible computer uses an x86-based central processing unit, sourced either from Intel or a second source like AMD, Cyrix or other vendors such as Texas Instruments, Fujitsu, OKI, Mitsubishi or NEC and is capable of using interchangeable commodity hardware such as expansion cards. Initially such computers were referred to as PC clones, IBM clones or IBM PC clones, but the term "IBM PC compatible" is now a historical description only,. IBM itself no longer sells personal computers, having sold its division to Lenovo in 2005. "Wintel" is a similar description that is more commonly used for modern computers.
The designation "PC", as used in much of personal computer history, has not meant "personal computer" generally, but rather an x86 computer capable of running the same software that a contemporary IBM PC could. The term was initially in contrast to the variety of home computer systems available in the early 1980s, such as the Apple II, TRS-80, and Commodore 64. Later, the term was primarily used in contrast to Commodore's Amiga and Apple's Macintosh computers.
Overview
These "clones" duplicated almost all the significant features of the original IBM PC architectures. This was facilitated by IBM's choice of commodity hardware components, which were cheap, and by various manufacturers' ability to reverse-engineer the BIOS firmware using a "clean room design" technique. Columbia Data Products built the first clone of the IBM personal computer, the MPC 1600 by a clean-room reverse-engineered implementation of its BIOS. Other rival companies, Corona Data Systems, Eagle Computer, and the Handwell Corporation were threatened with legal action by IBM, who settled with them. Soon after in 1982, Compaq released the very successful Compaq Portable, also with a clean-room reverse-engineered BIOS, and also not challenged legally by IBM.Early IBM PC compatibles used the same computer buses as their IBM counterparts, switching from the 8-bit IBM PC and XT bus to the 16-bit IBM AT bus with the release of the AT. IBM's introduction of the proprietary Micro Channel architecture in its Personal System/2 series resulted in the establishment of the Extended Industry Standard Architecture bus open standard by a consortium of IBM PC compatible vendors, redefining the 16-bit IBM AT bus as the Industry Standard Architecture bus. Additional bus standards were subsequently adopted to improve compatibility between IBM PC compatibles, including the VESA Local Bus, Peripheral Component Interconnect, and the Accelerated Graphics Port.
Descendants of the x86 IBM PC compatibles, namely 64-bit computers based on "x86-64/AMD64" chips comprise the majority of desktop computers on the market as of 2021, with the dominant operating system being Microsoft Windows. Interoperability with the bus structure and peripherals of the original PC architecture may be limited or non-existent. Many modern computers are unable to use old software or hardware that depends on portions of the IBM PC compatible architecture which are missing or do not have equivalents in modern computers. For example, computers which boot using Unified Extensible Firmware Interface-based firmware that lack a Compatibility Support Module, or CSM, required to emulate the old BIOS-based firmware interface, or have their CSMs disabled, cannot natively run MS-DOS since MS-DOS depends on a BIOS interface to boot.
Only the Macintosh had kept significant market share without having compatibility with the IBM PC, except in the period between the transition to Intel processors and transition to Apple silicon, when Macs used standard PC components and were capable of dual-booting Windows with Boot Camp.
Origins
IBM decided in 1980 to market a low-cost single-user computer as quickly as possible. On August 12, 1981, the first IBM PC went on sale. There were three operating systems available for it. The least expensive and most popular was PC DOS made by Microsoft. In a crucial concession, IBM's agreement allowed Microsoft to sell its own version, MS-DOS, for non-IBM computers. The only component of the original PC architecture exclusive to IBM was the BIOS.IBM at first asked developers to avoid writing software that addressed the computer's hardware directly and to instead make standard calls to BIOS functions that carried out hardware-dependent operations. This software would run on any machine using MS-DOS or PC DOS. Software that directly addressed the hardware instead of making standard calls was faster, however; this was particularly relevant to games. Software addressing IBM PC hardware in this way would not run on MS-DOS machines with different hardware. The IBM PC was sold in high enough volumes to justify writing software specifically for it, and this encouraged other manufacturers to produce machines that could use the same programs, expansion cards, and peripherals as the PC. The x86 computer marketplace rapidly excluded all machines which were not hardware-compatible or software-compatible with the PC. The 640 KB barrier on "conventional" system memory available to MS-DOS is a legacy of that period; other non-clone machines, while subject to a limit, could exceed 640 KB.
Rumors of "lookalike," compatible computers, created without IBM's approval, began almost immediately after the IBM PC's release. InfoWorld wrote on the first anniversary of the IBM PC that
By June 1983 PC Magazine defined "PC 'clone as "a computer accommodate the user who takes a disk home from an IBM PC, walks across the room, and plugs it into the 'foreign' machine". Demand for the PC by then was so strong that dealers received 60% or less of the inventory they wanted, and many customers purchased clones instead. Columbia Data Products produced the first computer more or less compatible with the IBM PC standard during June 1982, soon followed by Eagle Computer. Compaq announced its first product, an IBM PC compatible in November 1982, the Compaq Portable. The Compaq was the first sewing machine-sized portable computer that was essentially 100% PC-compatible. The court decision in Apple v. Franklin, was that BIOS code was protected by copyright law, but it could reverse-engineer the IBM BIOS and then write its own BIOS using clean room design. Note this was over a year after Compaq released the Portable. The money and research put into reverse-engineering the BIOS was a calculated risk.
Compatibility issues
Non-compatible MS-DOS computers: Workalikes
At the same time, many manufacturers such as Tandy/RadioShack, Xerox, Hewlett-Packard, Digital Equipment Corporation, Sanyo, Texas Instruments, Tulip, Wang and Olivetti introduced personal computers that supported MS-DOS, but were not completely software- or hardware-compatible with the IBM PC.Tandy described the Tandy 2000, for example, as having a "'next generation' true 16-bit CPU", and with "More speed. More disk storage. More expansion" than the IBM PC or "other MS-DOS computers". While admitting in 1984 that many PC DOS programs did not work on the computer, the company stated that "the most popular, sophisticated software on the market" was available, either immediately or "over the next six months".
Like IBM, Microsoft's apparent 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 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's business 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 machines that were compatible with IBM hardware—thus supporting direct calls to the hardware—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, PC applications quickly developed 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 other than to advance it after displaying each letter. While the BIOS video interface routines were adequate for rudimentary output, they were necessarily less efficient than direct hardware addressing, as they added extra processing; they did not have "string" output, but only character-by-character teletype output, and they inserted delays to prevent CGA hardware "snow" ——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 system calls. 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 rudimentary graphics functions such as changing screen modes and plotting single points. To make a BIOS call for every point drawn or modified 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. Software written to address IBM PC hardware directly would run on any IBM clone, but would have to be rewritten especially for each non-PC-compatible MS-DOS machine.
- 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 with the ability to exchange data 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 19,200 bit/s.
- Even for standard business applications, speed of execution was a significant competitive advantage. Integrated software Context MBA preceded Lotus 1-2-3 to market and included more functions. Context MBA was written in UCSD p-System, 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 it quickly surpassed Context MBA's sales.
- 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.
- Some software was designed to run only on a true IBM PC, and checked for an actual IBM BIOS.