DOS Development History - Part 2

The genealogy of DOS traces its bloodlines through several operating system variants, but CP/M is the core from which it evolved. When Intel released the first microprocessor in November of 1971, the device had no operating system to support its capabilities. Gary Kildall, a computer science teacher at the Naval Post-Graduate School in Monterey, was one of the early people to obtain the chip and he wrote a rudimentary code that translated the 4004 instruction set.

Kildall visited the development lab at Intel in 1972 and shortly thereafter began to work with them on related CPU programming projects as a part-time consultant. This led to Intel contracting with Kildall to develop a high-level language. IBM® had the 360 mainframe series on the market as the standard, and they had developed a uniform high-level programming language called PL/I. Kildall borrowed on the PL/I construction as part of his design, and after reworking the concept he designed PL/M (programming language for microcomputers) for Intel the 8080.

Kildall had been given a development system by Intel that he'd taken back to the Post-Graduate School and set up as a learning tool for his students. This was later upgraded with a tape reader (at this point in technology, microcomputers could not use the disk drives from mainframes due to the memory requirements for the controller code). The need for efficient data storage was met with the concept of using a smaller magnetic disk drive, which had been recently invented by an engineering team led by Alan Shugart at IBM® (who started his own company Shugart Technology, which eventually became Seagate). Kildall needed to design a interface for the disk drive hardware. Despite his initial failure to get the disk drive attached and communicating, he borrowed on the features of the TOPS-10 operating system for the DEC, which he used to write the code for disk storage control. An associate named John Torode eventually succeed in getting the floppy drive to work.

Intel did not consider Kildall's code for controlling disk I/O to a device via the 8008 important, and granted Kildall rights to the software. After completing the individual components of the package, he assembled them together into what was to become CP/M. This was the world's first operating system for Intel-based microcomputers designed in a modular format that used independent components to control the processor and peripherals. The code was written for a 40 column terminal using 300 baud RS232 communications to control devices. The original version 1.0 of CP/M was a combination of four independent modules, two of them logically combined for the purpose of providing hardware primitive bootstraping, the third for command interpretation, and the fourth for handling operating system services and user applications. These modules were the BIOS (Basic Input/Output Services), the BDOS (Basic Disk Operating Services), the CCP (Console Command Processor), and the TPA (Transient Program Area).

The CP/M BIOS was customized for the particular hardware platform the operating system was running on, essentially providing system calls and definitions for device-specific functions such as interpreting disk formats, reading and writing data, interrogating device status, and reading and printing memory buffers. The BDOS was responsible for base-level initialization routines for the disk sub-system. These included File creation, open, and close, disk system reset, drive select, directory search, disk interrogation, DMA address setup, and file delete/rename functions. The BIOS and the BDOS were combined into a single-address entry point module called the FDOS. This module combination (the FDOS) provided all of the basic operations and setup routines to allow the system to interact with the CCP. The CCP was the command interpreter, the module responsible for displaying the ready state prompt on the console screen, taking keyboard input, interpreting the command or parsing the batch file, handing off necessary sub-functions to the FDOS, and returning the displayed results.

CP/M went on to become the standard microcomputer control program. After Microsoft® had established its presence in programming languages, microcomputer hardware began to expand in availability, being cloned by other manufacturers. The common platform for running programs between these systems was floppy disk drives, and while BASIC was an interpretation language, CP/M was an actual operating system to control hardware. Kildall, now in possession of a marketable software program to control systems, formally started Digital Research®. Working with his wife Dorothy in 1974, they began to do a mail order business selling CP/M through advertisements in computer magazines, which grew rapidly.

While Digital was busy with CP/M, Microsoft® was ramping up with a parallel development effort to field their first operating system. By late 1977 an internal development project to create an 8-bit multi-tasking operating system was established, and the product was called M-DOS. Like CP/M, the concept for M-DOS was based on the DEC TOPS-10 operating system. The M-DOS file handling routines were built around Microsoft®'s FAT file system, making for a cleaner and faster use of disk space than those features then found in CP/M. But despite its possibilities, M-DOS was doomed - the base code exceeded 30k at a time when the 8080 memory stack was a maximum of 64k, leaving only a small amount of memory for programs to run. Because of the hardware limitations, Microsoft® decided to abandon the project, having had most of the work done prior to the release of Intel's 8086 CPU.

Thus, from 1977 to 1980, CP/M was the dominant operating system for microcomputers and installed on dozens of different cloned Intel-based systems. Kildall had quit his teaching job in 1977 to work for his business full-time, and eventually, by 1980 CP/M was running on virtually every microcomputer known at the time.

With the introduction of the MITS Altair, the S-100 data bus had come into play for mass production. The original 8-bit design had proven popular and went on to be used in the IMSAI line of personal computers in the mid to late 1970's. CompuPro later extended the bus design to work with 16-bit processors. Seattle Computer Products, a small hardware manufacturer south of Seattle, had been developing S-100 memory boards when Intel released the 16-bit 8086 processor on June 8, 1978. These boards were sold by mail order with limited local distribution. One of SCP's local vendors was The Retail Computer Store in Seattle. Rod Brock, SCP's owner, met up with their in-house electronics technician Tim Paterson while delivering some boards to the store in early 1978. Paterson discussed some quality control issues with the static memory design. Brock took this to heart, and after Paterson graduated in June of 1978 he began working for Brock as a consultant before later being hired as a full-time engineer.

Brock had been thinking about building his own computer system, and with the release of the 8086 he saw the potential to make his idea a reality. Shortly after he was hired, Brock suggested to Paterson that he attend a seminar given by Intel about the 8086. Paterson's impression of the chip was favorable, and after putting together a design plan for a S-100 CPU board, he built three prototypes with two working by May, 1979. Microsoft®, now a Seattle-area software developer, had been working on developing software for the 8086 platform when they were contacted by SCP about 16-bit software that could run on their CPU card. After discussions took place Paterson worked with Bob O'Rear at Microsoft® to port their code to the prototype. The process went quickly, and after only a week O'Rear had managed to adapt Stand-Alone Disk BASIC's 32k instruction set to the card and get it working.

Digital Research® had also been working on improving CP/M to take advantage of the features now available on the 8086 processor. Digital contacted Seattle Computer about testing their new CP/M-86 on the prototype card. But with only two working versions, SCP was unable to provide a test platform at the time for Digital to use in its research efforts. Still, Paterson assumed CP/M-86 would be the operating system SCP eventually bundled with their card, and despite having Microsoft®'s BASIC in place, he asked Digital about the delivery date for CP/M-86 and was advised December, 1979. With the delivery 4 months out, Paterson knew SCP would have to ship with Microsoft®'s BASIC for the first few months but then they could migrate to the new operating system - Brock's vision of a computer produced by Seattle Computer Products with a 16-bit operating system would then be a reality.

In June 1979, SCP and Microsoft® attended the National Computer Conference in New York. Microsoft® had been invited by Lifeboat Associates, a software publishing house (later to become Programmer's Paradise) to share their booth space. Paul Allen had, in turn, invited Tim Paterson to bring along his S-100 CPU card running Microsoft®'s new BASIC-86 to demonstrate at the event. At the time, BASIC-86 on the SCP card was the only running 16-bit program available, but despite this orders came in and by November 1979 SCP had started to ship their CPU card bundled with Microsoft® BASIC-86. Digital Research®, which had indicated a December, 1979 release date for CP/M-86, was falling behind on research and development, and by the Spring of 1980 SCP sales of their new computer system were lagging, with only a core consumer audience of developers.

Paterson approached Brock with a suggestion: since Digital was not going to come out with CP/M-86 any time soon, what about developing their own 16-bit operating system? Paterson was well-qualified holding a Computer Science degree and having written an operating system for the Zilog Z-80 as a term paper project. Brock consented, and Paterson began to work on the project in April of 1980.

International Business Machines was the world's largest manufacturer of mainframe systems, but had no presence in the developing market for microcomputers, at the time dominated by the Apple II. In August, 1980 IBM® management held a meeting to discuss how to tap into the Apple marketshare by fielding a new kind of personal computer. At one point they had considered the idea of buying out Atari Computer as a wholesale acquisition of product line, but instead deferred to designing and producing an IBM® product.

The IBM® 5100 computer, which had been released in 1975 after a two-year development cycle known as Project Mercury, was IBM®'s first attempt at a smaller-scale machine. But its $10,000 cost kept it out of reach for small business and home users. This, in turn, had produced unfavorable revenue and dampened IBM®'s desires to diversify into smaller computer systems. Hoping to avoid the same mistake, they put William Lowe, IBM®'s laboratory director, in charge of creating a new prototype PC. Lowe assembled a team of 12 engineers in Boca Raton, Florida into a top-secret operation IBM® called Project Chess. The initial problem was identifying the characteristic features required for the design - it needed mass appeal, ease of use, a natural fit with the business community, and a pricing structure to cross over to home users.

Lowe decided that, rather than do in-house manufacturing, the computer should be built around readily-available components from other sources. By outsourcing the parts, IBM® was able to build their microcomputer around an open architecture (unlike Apple which contained proprietary boards and devices). This method was later destined to be the reason Compaq and other computer makers were able to parallel IBM®'s computer design as "IBM® Clones". As part of the development phase, Project Chess engineers needed to research industry trends and sought out a variety of consultants for ideas (who were all put under non-disclosure contracts). Their tactic was to conduct "surveys" with prospective hardware and software companies. When they established their contacts, they would collect as many details as possible and compile the results.

Microsoft® by now had been well-established as a language developer and was successful and highly-regarded in its own right. As part of its survey effort, IBM® contacted Microsoft® to solicit ideas on what capabilities their fledgling PC code-named "Acorn" would likely have. A group led by Jack Sams met with Bill Gates, who would make IBM® re-think their strategy and design for the prototype system. Gates emphasized that the design should be built around Intel's new 16-bit 8086 microprocessor to take advantage of double-byte wide processing. The new design should have better graphics, based on a 16 color video sub-system, and be more user friendly, incorporating design features not yet found on existing systems. At the conclusion of the meeting, the Project Chess team was already rethinking their direction.

Shortly after their first meeting, IBM® contacted Microsoft® again. This time they revealed their intentions to build a new Personal Computer and admitted they wanted to incorporate several of Gate's ideas in the design. After discussing the plan further, they asked Microsoft® if they could write a BASIC for their new computer, the requirement being it had to be coded to reside in a ROM Chip on the system board. Microsoft®, which had already written a BASIC for the 8086 chip, agreed to undertake the job, and IBM® signed a production contract. Acorn was not complete, however. The missing element for IBM®'s new computer was an operating system to control the hardware.