From backyard to big time; the history of CP-M. Thom Hogan.
The CP/M operating system so popular today has its roots in the very genesis of microcomputing. The designer of CP/M, Gary Kildall, in the early 1970's was a software consultant for Intel, one of the first manufacturers of integrated circuits, and the inventor of the first "microcomputer on a chip," the 8088. Kildall's everyday job was as a computer science professor at the Naval Postgraduate School in Monterey, CA. His two jobs put him in a unique position to observe and tinker with the fledgling microcomputer industry.
Gary began collecting the pieces, that by 1973, formed a home grown microcomputer system. The main processor (the brains of the computer) and its memory were integrated circuits from Intel; the disk drive was a recycled test drive from Shugart; the input and output console consited of a Teletype device.
Needing something to tie all these components together into something that could be used, Kildall wrote a simple "operating system" in his then-favorite language, PL/M. The result he called Control Program/Monitor, or CP/M for short. CP/M, then, is a set of software that controls the basic components of the computer--an operating system.
Kildall showed his earliest versions of CP/M to Intel, but the company declined to market or further develop the project. This isn't surprising, because in 1973 and 1974 microcomputers were a rarity, and the people who had them weren't exactly sure what they wanted to do with them. In addition, Intel already had spent considerable effort on their own operating system, ICIS.
But by 1975 several small companies were marketing microcomputers to curious hobbyists. When most of these companies developed computers that incorporated disk drives, they usually generated their own operating system, also. Had these pioneers--MITS (Altair), IMSAI, Polymorphic, and Processor Technology, for example--been able to get their products to consumers quickly, CP/M might not have become the quasistandard operating system it is today.
The insatiable microcomputer owners, however, weren't about to wait for the industry leaders to come out with new products, so they bought whatever they could find. NorthStar, Vector Graphic, Cromemco, and several other companies got their start selling pieces that could be added to the original IMSAI and Altair microcomputers.
Several of these small microcomputer manufacturers decided to eliminate a costly research and development stage and adopted Kildall's CP/M operating system for their products. Most notable among these smaller companies were Tarbell Electronics and Digital Micro-systems, two firms that were among the first to ship working disk systems. Because these firms manufactured "add-on" components that could be used on virtually any system, owners of Altairs, Vectors, Polys, and others did not have to wait for the manufacturers of their computers to get around to producing drives. In addition, IMSAI had been shipping disk systems without any software to run them; they promised to ship an operating system as soon as it was ready. After trying to develop their own, IMSAI decided to turn out IMDOS, which was really a disguised version of CP/M. User Enthusiasm
Another important element in CP/M history was the enthisiasm of its first users. These true hobbyists tackled apparently insurmountable problems in their pursuit of new knowledge and experience. Theoretically, CP/M-80 could link any 8088- or Z80-based microcomputer with any disk system, and soon a group of hobbyists with "mix and match" systems emerged to test Kildall's product. These hobbyists developed several refinements, and, more important, a strong and visible users' group.
The importance of the support of a strong users' group cannot be underestimated. During the infant years of the microcomputer industry, accurate product information was not readily available. Manufacturers often released products with complete documentation, computer stores were relatively unknown, and in some cases, users' groups were more stable than the companies that developed the product the group was formed to support.
After manufacturers began to deliver reliable disk drives, software developers launched the next vital phase in the evolution of CP/M. The key to making software development financially feasible is to write programs that run on as many different computers as possible. CP/M-80 was one of the few operating systems that could run on just about any 8080- or Z80-based microcomputer, and was not restricted to one type of disk drive. Obviously, it was a prime choice for software developers.
Fortunately for CP/M, the first progrmas that became available were development tools--programs to help programmers generate other programs. Among the development tools that helped establish CP/M as the leading operating system for microcomputers were CBasic (and its predecessor, EBasic), Microsoft Basic, and several special assembly language programs. These tools, in turn, were used to write application programs, such as general ledgers, database and inventory programs, and word processors.
The popularity of the CP/M operating system thus became part of an escalating pattern: CP/M spawned programming languages and development tools, which in turn gave birth to application programs. These CP/m-dependent application programs increased CP/M sales, which again led to an increased number of development tools being introduced. This upward spiral of sales leading to more tools leading to more application programs leading to more sales has continued unabated for several years, and shows no signs of ending. Evolution
During this rapid growth in popularity,
CP/M did not remain the same as it was when it was first introduced.
The original CP/M that Kildall wrote (and his wife, Dorothy McEwen, marketed for him through their jointly owned company, Digital Research) was called CP/M version 1.3. CP/M 1.3 had a few minor problems--after all, it was put together quickly and for Kildall's own use. So Kildall rewrote it, tightened up some of the code, and recreated some of the utility programs that came with it. This became CP/M 1.4. At about the same time, Digital Research sold the rights to CP/M 1.3 to Cromemco, who made some modifications of their own, creating CDOS (Cromemco Disk Operating System).
A few comments are in order about CP/M 1.4 and the equipment it was designed to work with. First, CP/M 1.4 was designed at a time when memory was expensive, and disk drives came in only one flavor: single density. Also, paper tape sytems and Teletype consoles (keyboard with printer) were still extremely popular.
The result is that CP/M 1.4 was designed with the limitations of these devices in mind. CP/M 1.4 takes up little memory (and therefore is limited in what it can do), assumes no intelligence on the part of the accessories attached to the system (and is thus simplistic), and was designed to allow a mixture of then-available peripherals to be attached. In some respects, these are the characteristics that made CP/M popular and established its identity as a quasi-standard: it was not specific to a single computer and could work on a minimally-equipped system.
Computers changed in 1979 and 1980. With the introduction of programs like VisiCalc and WordStar, and with new hardware, such as higher capacity disk drives and low cost memory, computers began to be truly useful.
CP/M changed with the computers. CP/M 2.2 was to update the original operating system to make it more compatible with the changing microcomputer. Whereas CP/M 1.4 was severely limited in the amount of disk storage it could address, CP/M 2.2 was expanded to allow for up to 16 drives each with megabytes of storage space.
Other changes occurred, as well. Most of these were minor enhancements or modifications that made CP/M more flexible. The ability to address more than one type of disk drive at a time (such as mixed 8" and 5-1/4" systems) was allowed.
But the original features of CP/M were still evident; it remained compact and flexible. Digital Research concentrated on selling primarily to manufacturers and distributors, rather than to users. Thus, a small sales effort on the part of Digital Research often meant large numbers of users. Probably the best example of this was when Microsoft introduced the Z80 SoftCard with CP/M 2.2 for the Apple II computer. Within months, tens of thousands of new CP/M-80 users were added. (Note: When we refer to CP/M-80 in this article, we refer to CP/M versions 2.2 and 1.4.)
During the period 1979 to 1981, CP/M became self-perpetuating. Its popularity attracted software companies, which wrote software, which in turn attracted more users, who then attracted more manufacturers. This circular growth pattern accelerated very rapidly, with CP/M-80 going from about 300,000 users in 1979 to almost 1.5 million in early 1983.
But 1981 was the watershed year for CP/M. With the introduction of new microcomputers by computer giants like IBM, Hewlwtt-Packard, and Xerox, all of which are offered with the CP/M operating system standard or as an option, the number of users of CP/M began increasing at an accelerated pace. During this same year, however, the rapidly changing technology of computers once again caught up with CP/M, so Kildall and Digital Research once again went to work to refine the original operating system.
CP/M was originally designed to work on an 8080-based microcomputer. Not to disparage the poor 8080, but it just wasn't a state of the art central processor in 1981. After the 8080 came the Z80. Not only was the Z80 faster than the 8080, but its expanded instruction set allowed for better and faster software. Fortunately, a Z80 can perform any computer instruction that an 8080 can; therefore, the original CP/M can run on a Z80- or 8080-based microcomputer.
The speed of the Z80 invited computer designers to try to make microcomputers support more than one user at a time. In addition, the diminishing cost of micro-processors meant that a designer could simply add a processor for each user he envisioned. Multiuser microcomputer began to be popular. Branches On The Tree
CP/M works only for a single user computer. Digital Research therefore started a second branch of the CP/M tree by creating a product called MP/M (apparently an acronym for Multiple Program/Monitor, although that has never been officially acknowledged).
MP/M works similarly to CP/M can generally learn to use MP/M in an hour or two), but is not exactly the same; software that works with CP/M doesn't always work under MP/M. One thing Digital Research transferred from CP/M to MP/M was the disk format. That means that a disk created on a MP/M system is directly compatible with a CP/M system (assuming the same disk density and size). It also means that data and some progrmas can be used on either a CP/M or MP/M system. This is an important attribute of the CP/M family of operating systems.
Another branch of CP/M appeared with the introduction of 16-bit central processors. The first 16-bit processor to become available in systems was the 8086 (and its cousin, the 8088). Digital Research had always planned to come out with a CP/M, but was beated to the punch by Seattle Computer Products, which offered a CP/M-like operating system they first called 86-DOS.
86-DOS was patterned after CP/M 1.4 with one very important difference: the disk format was changed and the resulting structure of information stored on the disk is entirely different.
86-DOS went on to become Microsoft DOS, then IBM PCDOS, and is now generally referred to as MSDOS. While it is similar to CP/M and originated from CP/M-like beginnings, it is important not to confuse MSDOS with versions of CP/M.
Digital Research did go on to introduce CP/M-86, a version of CP/M that works on 8088 and 8086 central processors. While it, too, is similar to earlier versions of CP/M, it does have some differences in operation. Later versions of CP/M-86 are Concurrent CP/M-86, a version that allows one user to run multiple programs simultaneously, and MP/M-86, which allows multiple users to work from a single computer. As with MP/M, the 8086 versions of CP/M retain the same structure of information on disk, meaning two machines with different processors but the same disk drives can change data.
Our examination of the history of CP/M is not yet finished, however. In early 1983, Digital Research continued to improve on the original version and to expand CP/M to other central processors. Versions of CP/M for 68000 CPUs, Z8000 CPUs, and 16000 CPUs (called CP/M-65K, CP/M-Z8K, and CP/M-16K, respectively) are now available.
At the same time Digital Research was expanding CP/M to run on new central processors, they took what they had learned in these new versions and applied it to the original version of CP/M. The result is a product they call CP/M-Plus. CP/M-Plus is ostenisbly CP/M-80 version 2.2 with additions similar to those found in CP/Ms for other processors.
To get the utmost utility from CP/M, it is important to understand the development of CP/M over the last ten years, since much of what CP/M is today comes from the fact that it was designed to be used on a wide variety of quite different computer hardware. See Figure 1.
At present, it is estimated that over 500 computer manufacturers now offer CP/M-80 or CP/M-86 with their equipment. Almost two million users have CP/M on their computers. Even owners of microcomputers that do not have a 8080, 8086, 8088 or Z80, 68000, 16000, or Z8000 central processor are now able to make use of CP/M with add-on processing boards for everything from Apple and Atari computers to the Commodore 64.
From the modest beginnings of CP/M, it has become the most widely used operating system for microcomputers (and possibly for all computers if number of installations are counted instead of number of users). Many changes have been made to Kildall's original operating system, and, despite its simplicity, it can control even the most complicated equipment. The Future
No history of CP/M would be complete without a peek at the future.
Digital Research continues to refine CP/M and keep its abilities current with the state-of-the-art in computing. The recent introduction of the GSX kernel, a set of graphics enhancements that allow CP/M to manipulate directly the graphics display of the latest computer systems, is one example. A networking kernel, and kernels for other specific computer hardware improvements are on the way. Osborne Computer Corporation's pioneering of automatic recognition of differing data formats is almost sure to work its way into future CP/M designs.
More intersting, however, are announcements that Digital Research plans to support the VisiOn interface (a product that promotes integration of different types of programs and allows simultaneous display of them) and that Concurrent CP/M-86 is being redesigned to support both CP/M and MSDOS data and program files.
These two announcements indicate the two directions that drive future CP/M development: VisiOn points towards the future of computer software, and CP/M will be there; combining MSDOS and CP/M capabilities takes already existing products and attempts to combine them into a single standard product.
Recently, there has been talk of the imminent demise of CP/M, due to IBM's adoption of MSDOS as their standard operating system. Given the effort Digital Research has put into making CP/M address all aspects of microcomputing in the past, and given the number of CP/M users already in existence, such doom-saying is most likely only wishful thinking on the part of competitors. Like it or not, CP/m is here to stay.