A Short History of MS-DOS
Known variously as Seattle Computer 86-DOS, IBM Personal Computer DOS, and Zenith Z-DOS, MS-DOS was developed by Seattle Computer Products for its 8086-based computer system. The MS-DOS history is intertwined with the general development of software for 8086-based computers.
In May 1979, Seattle Computer made the first prototype of its 8086 microprocessor card for the S-100 bus. There were brief discussions with Digital Research about using one of Seattle Computer's prototypes to aid in developing CP/M-86, which was to be ready "soon". Although Seattle Computer was considering using CP/M-86 when it became available (expected no later than the end of 1979), there were only two working prototypes of the 8086 processor card, and it was felt that both were needed in house. Therefore, there wasn't one free for Digital Research. Microsoft had already started a strong 8086 software-development program. The firm was ready to try the 8086 version of Stand-Alone Disk BASIC, which is a version of its BASIC interpreter with a built-in operating system. During the last two weeks of May 1979, this BASIC was made completely functional using the hardware that Seattle Computer provided for Microsoft. Seattle Computer Products displayed the complete package (8086 running disk BASIC) in New York the first week of June at the 1979 National Computer Conference. (This was the first-ever public display of an 8086 BASIC and of an 8086 processor card for the S-100 bus.) Seattle Computer shipped its first 8086 cards in November 1979, with Stand-Alone Disk BASIC as the only software to run on it. The months rolled by, and CP/M-86 was nowhere in sight. Finally, in April 1980, Seattle decided to create its own DOS. This decision resulted just as much from concern about CP/M's shortcomings as from the urgent need for a general-purpose operating system.
The first versions of the operating system, called QDOS 0.10, were shipped in August 1980. QDOS stood for Quick and Dirty Operating System because it was thrown together in such a hurry (two man-months), but it worked surprisingly well. It had all the basic utilities for assembly-language development except an editor. One week later, Seattle Computer had created an operating system with an editor, an absurdity known as EDLIN (editor of lines). A primitive line-oriented system, it was supposed to last less than six months. (Unfortunately, it has lasted much longer than that as part MS-DOS).
In the last few days of 1980, a new version of the DOS was released, now known as 86-DOS version 0.3. Seattle Computer passed this new version on to Microsoft, which had bought non-exclusive rights to market 86-DOS and had one customer for it at the time. Also about this time, Digital Research released the first copies of CP/M-86. In April 1981, Seattle Computer Products released 86-DOS version 1.00, which was very similar to the versions of MS-DOS that are widely distributed today. In July 1981, Microsoft bought all rights to the DOS from Seattle Computer, and the name MS-DOS was adopted. Shortly afterward, IBM announced the Personal Computer, using as its operating system what was essentially Seattle Computer's 86-DOS 1.14. Microsoft has been continuously improving the DOS, providing version 1.24 to IBM (as IBM's version 1.1) with MS-DOS version 1.25 as the general release to all MS- DOS customers in March 1982. Now version 2.0, released in February 1983, has just been announced with IBM's new XT computer.
Additional History of DOS
DOS (pronounced Doss) has become the accepted name for the line of operating systems whose names have included QDOS, 86-DOS, IBM Personal Computer DOS, and MS-DOS. At its peak, DOS was by far the most widely used computer program in the world. While at one time "DOS" was a generic term for "Disk Operating System", this is no longer the case, at least within the personal computer industry. ("OS" is now the generic term.) Although DOS became popular by tagging along with the success of the IBM Personal Computer, its origin actually goes back to an earlier generation of microcomputers. The first widely used microcomputers were built around a chassis called the S-100 Bus. This began with the introduction of the Altair 8800 by Microwave Instrumentation and Telemetry Systems in 1975. The motherboard of the Altair had no active components on it - just a row of 100-pin connectors. The connectors would accept a 5" x 10" circuit board that added a specific function to the computer. The microprocessor itself would be on the CPU card; additional cards would have memory (RAM) and interfaces to a TeleType or keyboard and video display.
In 1978, Seattle Computer Products (SCP) of Tukwila, Washington, was a manufacturer of S- 100 memory cards. One of their customers was the only computer store in Seattle at the time, The Retail Computer Store. The store's repair technician, Tim Paterson, was a full-time student at the University of Washington and user of an IMSAI 8080 microcomputer since 1976. When the owner of SCP, Rod Brock, came by the store to make deliveries and take orders, Paterson complained about some problems they were having with the product. After Paterson graduated that June, he went directly to work for SCP to fix those problems. Paterson was the only full-time engineer at SCP, and all design was turned over to him. In July of 1978, Intel released their new 8086 microprocessor. Brock sent Paterson to an Intel seminar to find out what it was all about. Up until that time, almost all S-100 computers used the Intel 8080 microprocessor or the newer and faster Zilog Z80. Both were 8-bit microprocessors, and could run the same software. The 8086 was a 16-bit microprocessor with the potential to be much faster, although existing 8-bit software would not run on it.
Brock gave Paterson the go-ahead to begin designing an 8086 CPU card for the S-100 Bus, and the first prototypes were working in May, 1979. SCP contacted Microsoft to see about getting 16-bit software for their new computer. As it turned out, Microsoft was fully underway developing software for the 8086, and they were ready to test it on real hardware. Microsoft had moved from Albuquerque, New Mexico, to Bellevue, Washington in early 1979, just a 30-minute drive from SCP's offices. Paterson packed up the prototype and set to work with Bob O'Rear at Microsoft to bring up Stand-Alone Disk BASIC on it. SCP began shipping their 8086 computer system in November 1979 with Microsoft Stand- Alone Disk BASIC as the only software to run on it. Although BASIC was a suitable programming language for hobbyists to use on their own machines, very little commercial software was written with it. In order to get a software base for their machine that would make it truly useful, SCP needed a general-purpose operating system for it. Among 8-bit computers, the CP/M operating system from Digital Research had become the standard. Digital Research was known to be working on a 16-bit version for the 8086 microprocessor, CP/M-86, and had expressed interest in using a prototype of the SCP 8086 CPU card to aid in their development (SCP declined). CP/M-86 was expected to be available by the end of 1979.
By April of 1980, CP/M-86 had not yet arrived and SCP was very concerned. Sales of the 8086 computer system were minimal, since only developers or hobbyists who wanted to be on the leading edge would be interested in computer with no real software. Paterson proposed to Brock that SCP take control of the situation by writing their own operating system instead of relying on someone else. Paterson had graduated with a Bachelor of Science in Computer Science, Magna Cum Laude. Although he had gone directly to work for SCP after graduation, he also dabbled in graduate school. The coursework included a class in operating systems, and he wrote a multi-tasking operating system for the Z80 microprocessor as a term project. He felt qualified to write an operating system for the 8086, and thought he could make it better than CP/M. Paterson proposed a two-phase software development project: first, a quick and dirty operating system, to fill the immediate need for SCP's 8086 computer; second (and never realized), a much more refined operating system available in both a single-user and multi-user version. Again, Brock gave Paterson the go-ahead.
Paterson's primary objective in the design of DOS was to make it as easy as possible for software developers to write applications for it. To achieve this, Paterson sought to make the Application Program Interface (API) compatible with CP/M. While a given 8-bit program written for CP/M could not be directly run on the 16-bit 8086, it was possible for that program's author to translate it in a semi-automated process so that it would. CP/M compatibility of the API was key to making the translated program run correctly. Also, it was hoped that the familiarity of the CP/M-style API would make it easier for developers to learn to write programs for DOS. The secondary objective in the design of DOS was to make it fast and efficient, so it was written entirely in 8086 assembly language. Paterson was particularly concerned about the way files were organized on disk; he felt that the format used by CP/M was a significant bottleneck. After evaluating techniques used by Unix, ISIS, UCSD P-System, and others, he settled on a variation of the system used by Microsoft Stand-Alone Disk BASIC. It used a File Allocation Table (FAT), which was extremely compact. To Paterson, it seemed quite suitable for the 1.2 MB floppy disks of the day, and could handle disks up to 64 MB, if microcomputers ever needed anything of that size!
Over the months from April through July, 1980, Paterson was able to spend about half his time working on QDOS, the Quick and Dirty Operating System. It began shipping with the 8086 computer system in August. SCP approached Microsoft about adapting their software to run under DOS, who said it was possible - for a price. Shortly afterward, Microsoft came back to SCP with a different proposal. Microsoft offered to market DOS for SCP, and they already had the first customer lined up, although they couldn't reveal who it was. They made a deal: Microsoft would pay SCP $10,000 for the right to market DOS, and $15,000 for each OEM customer. The per-customer figure was half of what SCP figured was the going rate for a flat-fee license, which was a common arrangement at the time. So SCP came away with $25,000 in cash, and Microsoft had obtained an operating system for their secret customer, IBM.
Microsoft had been with working with IBM on their personal computer project since the outset. Microsoft originally sent IBM to Digital Research for the operating system, but IBM felt rebuffed when Digital Research would not sign a non-disclosure agreement. So Microsoft offered them an alternative by striking the deal with SCP for DOS. In July of 1981, the month before the IBM Personal Computer was announced, Microsoft offered to buy DOS (now called 86-DOS) from SCP instead of continuing to pay a $15,000 per-customer royalty. This would give Microsoft flexibility in pricing, and return SCP back to its roots as a hardware company. Microsoft paid $50,000, plus a license for SCP to include DOS with their computer systems. Five years later, Microsoft and a struggling SCP fought a legal battle over the specifics of that DOS license; in the end, it was settled by Microsoft buying the license back for a reported $975,000. Thus Microsoft's payments to SCP for DOS ended up totaling $1,050,000.
In the early days of the IBM PC, DOS was viewed as IBM's proprietary operating system. Microsoft set out to change that in 1982 by trying to interest their OEM customers - who were primarily buying Microsoft's programming languages - to sign up for DOS as well (now called MS-DOS), in direct competition with CP/M-86. Although Microsoft had previously committed to developing CP/M-86 versions of their products, they were eventually able to convert every customer to DOS versions instead - in one case, by simply giving DOS away. That saved them considerable development effort, and at the same time made CP/M-86 less attractive since it didn't run any of Microsoft's software. Microsoft's marketing combined with the success of the IBM PC and compatibles made DOS a runaway hit for 15 years. Microsoft kept improving and evolving it, often by including in DOS features that had been available in programs from third parties. The beginning of the end came in 1995 with Microsoft's release of Windows 95, which had the function of DOS built in. Microsoft stopped updating DOS after that, as part of a strategy to move from the 16-bit DOS world to a new 32-bit world of Windows 95 and Windows NT.