page_title: IBM PC compatible
section_title: Non-compatible MS-DOS computers
hierarchical_section_title: IBM PC compatible / Compatibility issues / Non-compatible MS-DOS computers
caption_attribution_description: DEC Rainbow 100 Personal Computer in Citilab, Cornellà de Llobregat, Catalonia (Spain)
context_page_description: IBM PC compatible computers are similar to the original IBM PC, XT, and AT that are able to use the same software and expansion cards. It was developed by Business Machine and PC corporation IBM. Such computers were referred to as PC clones, or IBM clones. The term "IBM PC compatible" is now a historical description only, since IBM no longer sells personal computers. The industry jargon "PC" sometimes doesn't mean "personal computer" generally, but rather a computer running Microsoft's Windows operating system, in contrast to Apple's macOS, which usually gives the computer the designation of "Mac".
  These "clones" duplicate almost exactly all the significant features of the IBM PC architecture. This was facilitated by IBM's choice of commodity hardware components 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 by a clean room implementation of its BIOS.
  Early IBM PC compatibles used the same computer bus as the original PC and AT models.
context_section_description: 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 MS-DOS programs did not support 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 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 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 (or work around hardware bugs), 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 (teletype mode). 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" (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 multitask
caption: The DEC Rainbow 100 runs MS-DOS but is not compatible with the IBM PC.
exif: {"Image ImageDescription": "OLYMPUS DIGITAL CAMERA", "Image Make": "OLYMPUS IMAGING CORP.", "Image Model": "E-510", "Image XResolution": "240", "Image YResolution": "240", "Image ResolutionUnit": "Pixels/Inch", "Image Software": "Version 1.1", "Image DateTime": "2008:11:23 10:29:07", "Image ExifOffset": "222", "EXIF ExposureTime": "1/4", "EXIF FNumber": "7/2", "EXIF ExposureProgram": "Program Creative", "EXIF ISOSpeedRatings": "100", "EXIF ExifVersion": "0221", "EXIF DateTimeOriginal": "2008:11:22 23:23:26", "EXIF DateTimeDigitized": "2008:11:22 23:23:26", "EXIF ShutterSpeedValue": "2", "EXIF ApertureValue": "361471/100000", "EXIF ExposureBiasValue": "0", "EXIF MaxApertureValue": "925/256", "EXIF MeteringMode": "Pattern", "EXIF LightSource": "Unknown", "EXIF Flash": "Flash fired, auto mode", "EXIF FocalLength": "14", "EXIF FileSource": "Digital Camera", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Manual Exposure", "EXIF WhiteBalance": "Manual", "EXIF DigitalZoomRatio": "1", "EXIF SceneCaptureType": "Standard", "EXIF GainControl": "None", "EXIF Contrast": "Soft", "EXIF Saturation": "Hard", "EXIF Sharpness": "Soft"}