Gary Kildall was born on the 19th of May in 1942 in Seattle of mixed Norwegian and Swedish descent. His grandfather, Harold, was the Chief Mate of a steamship in the 1920s that ran lumber transport from Seattle to Singapore with an adopted stray dog, Hector. In 1927, Harold quit the route and started Kildall’s Nautical School. The school became one of the best in the USA for the training of civilian seafarers, and Gary’s father, Joseph, carried on Harold’s legacy. Joseph held a master mariner license, and he became an instructor at the Kildall School around the start of World War II. Harold and Joseph then began training ship captains who would carry supplies to Europe during the war while doging German submarines.
Gary joined the school as an instructor and worked there in the early 1960s alongside his father and grandfather. He expanded his education via the school’s library, and he was generally expected to one day take over the family business. But, Gary Kildall wanted a more advanced education. Having been a bit of a greaser in his youth, he hadn’t done particularly well in high school, but he wrote to the University of Washington’s Regents citing his work as an instructor at the Kildall School and this gained him entry as a student at the university despite his less than stellar records.
Kildall states that school was difficult for him at first. He knew some trigonometry from Kildall’s Nautical School, but calculus was tough on him. He didn’t really have the best study habits either. He did, however, have self-discipline and that served him well; he quickly developed a bit of passion for mathematics, art, and history. In 1965, Kildall’s class on numerical analysis was using Marchant calculators. These were mechanical desktop calculators that Kildall says were sometimes correct. One day after class, Kildall’s friend Dale Leatherman approached him, opened his notebook, and pulled out an unpunched card that had the words “FORTRAN STATEMENT” printed along the top. The two then proceeded to take courses in computers starting with assembly language programming for the IBM 7094.
The University of Washington bought a Burroughs B5500 that ran ALGOL. Using this computer, ALGOL, and XPL, Kildall began to experiment with writing compilers. In 1966, Kildall was hired to maintain the ALGOL compiler for the school’s two B5500s, and he lightly abused the position. He wanted to learn, not just work, and he’d often put up a sign that read “B5500 Down For Maintenance” at midnight, and then take the sign down around six in the morning. During those hours, he’d explore the ALGOL compiler, play around, and occasionally do his job. Eventually, Kildall was granted an acoustic coupler for remote access with which he used a Teletype Model 33.
In 1967, Kildall was offered the opportunity to enter the first Master’s Degree of Computer Science program at UW along with nineteen others. Sadly, around the same time, Kildall received a letter from the Draft Board. The Army informed him, quite strongly, that he’d be going to war in Vietnam. Kildall’s past life on the water showed up for him in this instance. His father had some rather high ranking friends in the Navy, and he got Gary connected with one of them. Gary then joined the Navy, satisfying the Draft Board, and was granted a reprieve to finish his master’s degree while working toward his commission as an officer. For Gary Kildall, OCS was at Newport, Rhode Island in 1967 and 1968. He reports much of the training and other OCS experiences as having been terrible, but he also recalled having a very easy time with navigation and other actual seafaring knowledge due to his time at Kildall’s Nautical School. After OCS, he went on to receive his M.S. in December of 1969. Doctor Charles Odegaard was the President of the university, and he’d been impressed by Kildall’s performance in the CS department (both as a student and as an employee), and Odegaard was also on the board of the Naval Postgraduate School in Monterey. Odegaard called Captain Williams of the ROTC at UW, and suggested Kildall for an opening as an instructor in mathematics and computer science at NPS Monterey. Kildall promptly accepted when this opportunity was offered.
NPS Monterey used an IBM System/370 and this pushed Kildall over to PL/I. And, while performing duties as a teacher, a cryptographer, and officer’s mess liquor inventory officer, he worked toward his Ph.D. Shortly after leaving the Navy in 1972, he was able to complete his Ph.D. at UW, and he returned to NPS as a civilian professor. NPS encouraged their professors to do a day of consulting work in Silicon Valley each week keeping their classrooms up to date on the latest and greatest developments. For his part, Kildall did consulting work under the name of Microcomputer Applications Associates.
In 1972, another teacher at NPS, Gerry Barber, brought an advertisement from Electronic Engineering Times to Kildall. It was for a $25 microprocessor from Intel. Of course, the chip was just four bits, wasn’t really $25 (about $187 in 2024) unless you bought thousands of them, and it didn’t really have any ecosystem just yet, but… it was still so much cheaper than anything else available at the time that it sparked the interest of both gentlemen. Yet, this was still out of the budget of either of them. A development system for the Intel 4004 was around $1000 (about $7500 in 2024) and a used teletype was usually above $700 while a young professor’s pay at the time would be around $20,000 annually (or roughly $150,000 in 2024).
Doctor Kildall wasn’t the type to be put off. Without the money for SIM4-01 development system, Kildall wrote an Intel 4004 simulator for the IBM System/360. The first program he wrote for that simulator was an automatical celestial navigation calculator. Kildall’s father had dreamt of this as a mechanical device with a crank, and Gary had immediately realized that a microprocessor would make this possible without any mechanical parts. As Kildall was finishing up his programming work, he called Intel to see about getting some real hardware. Initially, Kildall tried to trade his simulator for the hardware, but Bob Garrow had little interest. What he did want was the library of trigonometry routines that Kildall had written. Over a dinner of cannelloni at Garrow’s favorite Italian restaurant in Santa Clara, they made the deal. Just as he had with the acoustic coupler and teletype, Kildall built himself a briefcase computer using the 4004 in 1972. This was a machine he took around for demos and lectures. Fortunately, he was also able to trade a teletype diagnostic program he’d written for the 4004 for a Teletype Model 33 from a repair company in Cupertino.
For his consulting time, Kildall began working as for Intel in 1973. He made the third person in Intel’s software group with the other two being Bill Byerly and Ken Burgett. The Intel 8008 was first made available commercially in April of 1972, and by the time that Kidall joined Intel, it was already featured in at least one model of microcomputer, the Q1. Apparently, Kildall must have enjoyed his work at Intel, because he quickly began spending more than his single day of consulting time there, and he could often be found sleeping in his VW van in the Intel parking lot overnight. One of the tasks we can assume was responsible for this behavior was PL/M (Programming Language for Micromputers) that Kildall designed and wrote for Intel’s 8008.
In this early state, PL/M code was written on a DEC PDP-10 and printed to paper tape. That tape was then loaded into your 8008 computer and run. Gary didn’t like this as he wanted microcomputers to be self-hosting. He traded more software for an Intellec 8, and he then got a personal loan for $1700 to buy a character video display and a printer. Armed with a far better computer than his 4004, he set about writing a compiler for PL/M that would run on the 8008 itself. This was slow and difficult work as the 8008’s stack consisted of just eight return addresses of fourteen bits each. This is a serious limitation that makes even modestly complex programs… extremely slow. This limitation was solved with the introduction of the Intel 8080 in April of 1974, and of course, the Intellec 8 had an upgrade path called the Mod 80 which featured the new CPU.
While the new chip made PL/M development far more possible than it had been, Kildall needed some kind of storage, and preferably, random access storage. As luck would have it, Memorex was close by Intel’s offices and they’d introduced the Memorex 650 Flexible Disc File in 1972. The new floppy disk drive promised two thousand feet worth of paper tape storage operating a thousand times faster than a teletype’s paper tape reader and with random access. Naturally, money was short. Kildall was still paying off his CRT and the Memorex drive was expensive. The controller for the drive was even more expensive. Well, Alan Shugart had just opened Shugart Associates so Kildall decided to try his luck with Alan. SA employee Finis Connor provided an old and worn test drive that had about ten thousand hours on it along with new head pads. Armed with an eight inch floppy disk drive and no controller, he was still far from his destination.
All of this effort, and Kildall was sitting at NPS with a useless floppy disk drive just sitting around. Well, while he lacked a controller, he could still make progress on the software front using his simulator, and that’s precisely what he chose to do. He needed a program that would allow him to run the PL/M compiler and deal with the requisite files. This operating system was named CP/M or Control Program for Microcomputers mimicking the program language’s name that had inspired it. So, using a DEC PDP-10 minicomputer running TOPS-10, he’d written the entirety of the first version of CP/M in PL/M and tested it with the 8080 simulator. He even wrote an editor (ED). Everything was working, but he still lacked a disk controller. He called a friend at UW, John Torode, and the two worked out a floppy disk microcontroller over the course of a few months. They then loaded CP/M from paper tape to a floppy disk, booted CP/M from the floppy, and they were greeted with a prompt. Pressing his luck a bit, Kildall typed ED
. It worked. DIR
worked, TYPE
worked, and it would seem that all of Kildall’s hard work had finally paid off, but he continued to work at NPS and further developed CP/M utilities in the evenings.
Over the summer of 1975, Kildall worked as a consutlant to Signetics who were competing with Intel. From Kildall, they were hoping for a high level language similar to PL/M, and Kildall delivered PLuS for the 2650. This project consumed his summer, and it didn’t amount to much as the Signetics 2650 was a failure and PLuS with it. Yet, one very important meeting occurred during that work. Jim Warren was another consultant at Signetics, and he was the editor of Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, a publication that would see its first release in January of 1976 and have a large impact in early computing. Warren suggested that Kildall sell CP/M to the public which Kildall subsequently did. As one might expect, DDJ mentioned the system in 1976:
Dr. Kildall's CP/M is available from Digital Research, for $35-$70 depending on the level of documentation desired. The software comes in the form of a "loaded" disk, including an editor or two, an assembler or two, a PIP, a debugger, and who knows what else (it grows from month to month).
By the time it was mentioned DDJ, CP/M had already made its way into the world. In 1975, Omron of America licensed CP/M along with the custom disk controller from Gary Kildall and John Torode for $25,000 (around $145000 in 2024). Both the controller and the operating system were put to use in Omron’s intelligent terminal. The version licensed to Omron was 1.0 and it was customized for their hardware specifically. Just a little later, Lawrence Livermore Laboratories licensed CP/M in June of 1975, but I haven’t been able to find what they paid or what their specific hardware was. Later that same year, a student of Kildall’s, Glenn Ewing, was fixing to leave the Navy and had earned himself a consulting gig with IMSAI. IMSAI was promising prospective customers a disk operating system, but they hadn’t yet started any work to that end. Ewing was well aware of his teacher’s CP/M and suggested that IMSAI use it. So, Ewing and Kildall then began working on porting CP/M to the IMSAI 8080. Of course, by this point, Kildall had done this kind of work many times, and he didn’t want to continue doing it. The solution the two came up with was called BIOS or Basic I/O System. This was a generalized interface for things like display controllers, disk controllers, and keyboard controllers that could be modified by a skilled programmer in a short time while the rest of CP/M wouldn’t need to be modified at all. With that completed, the two were able to load CP/M 1.2 on an IMSAI 8080 and demonstrate it to IMSAI. This resulted in another $25,000 licensing deal. Work with IMSAI was very influential on the development of early CP/M versions. Todd Fischer worked closely with Kildall on CP/M versions 1.2 and 1.3 which later evolved into IMDOS as IMSAI made their own changes.
By this point, the essential structure of CP/M as it would later be known was in place. The first part was the BIOS which contained all of the machine-dependent software, and it often involved some assembly language. The second part was the BDOS, or basic disk operating system, that provided the necessary code for interacting with files, and more generic disk and file operations that weren’t specific to any particular drives or controllers. The third piece was the CCP, or Console Command Processor, that served as the command line shell.
Here, I need to state that there is some differing information about the first CP/M license. A few sources cite a company called Gnat Computers of San Diego as having received an unlimited license for $90 in 1977. The issue with this is that Gary Kildall clearly stated that the very first commercial license was sold to Omron of America for $25,000 two years prior. As for unofficial licenses or limited non-commercial licenses, the only such license I’ve been able to find evidence of was to Ben Cooper in late 1974 for use in an astrological game machine. This was a coin operated machine where the “player” typed in his/her birthday and the machine would display the player’s horoscope. According to Kildall, this license was actually free as Cooper worked with Kildall essentially in a QA feedback loop that allowed Kildall to do some iterative development.
Doctor Gary Kildall’s wife Dorothy was certain that they needed to form a corporation. Gary would work on software while Dorothy undertook the running of the business. For this, she used her maiden name, McEwen, to avoid the young company being seen as a mom and pop shop. Digital Research was started in 1976 with the name Intergalactic Digital Research. The “Intergalactic” part was due to a consultant in Sausalito already having the shorter name. The name was changed to the shorter form legally in 1978 when the consultant went out of business. The first version of CP/M made available for public purchase was version 1.3, which as mentioned earlier, cost between $35 and $70 depending upon the amount of documentation desired. This early version was proudly on display at the West Coast Computer Faire in 1976 where they shared a booth with Structured Systems Group founded by one of Kildall’s students, Alan Cooper, who would later create Visual Basic.
CP/M version 1.4 was released (as far as I can tell) in 1978 (open source archives at least have dates from 1978) at $100 per copy (about $480 in 2024). This was a good year for the company with sales reaching $100000 per month. The Kildalls purchased an old Victorian house on Pacific Grove’s Lighthouse Avenue, and this became the company’s headquarters.
Importantly, it was around the time of that first West Coast Faire that Digital Research took a firm stance that they’d not compete with computer makers or indepdendent software vendors as these were Digtal Research’s customers. As far as Kildall was concerned, it wouldn’t be good for business, and it wouldn’t be good for him personally. Many of the people making computers, writing application software, and creating add-in cards for systems were personal friends of his. This was even true of one Bill Gates whom Kildall had initially met at UW when Gates and Allen were caught stealing computer time. At a computer conference in 1979, Gates and Kildall even discussed merging their companies in Pacific Grove while they were driving around Monterey. Despite the two having been friendly with one another, having respected one another, and having seen the insane opportunities they’d have had working together, they mutually chose not to pursue a merger. For DRI, this choice came down to not competing with customers which Microsoft was already doing by this point in time. For Microsoft, DRI would be the larger part of the merger, and this would have limited Bill’s growth. Beyond this, the two men had completely different attitudes about business, and they knew that this could have led to disaster. Despite not going into business with each other, the two were still friendly.
CP/M version 2.0 was released in 1979. This version did better than all preceding versions commercially. This release was the first to ship on five and a quarter inch floppy disks (as opposed to single density eight inch disks), and this version increased the operating system’s portability, increased the number of supported disk drive controllers, and extend the operating system’s utilities. Beyond all those improvements, version 2 supported hard disk drives. Another version of CP/M with a more radical change began development in 1979, MP/M. This was the work of Tom Rolander who joined DRI after leaving Intel. MP/M was very advanced for the time having a multitasking kernel, memory protection, spooling, queueing, and simultaneous input/output. MP/M required an 8080 or Z80 with a minimum of 32K RAM. Version 1 of MP/M shipped that same year.
From 1976 to 1980, CP/M was ported to just about every single computer that made use of an Intel 8080 or Zilog Z80. Naturally, after IMSAI, most other S100 bus computers could make use of CP/M with minimal modifications. Other machines frequently did require some modification to make use of CP/M, as was the case with the TRS-80. Still, CP/M became a defacto standard helped, likely to a very large extent, by the software made for it such as WordStar, SuperCalc (a clone of VisiCalc, which served until VisiCalc itself was available), and dBASE. Over three thousand different computer models either shipped with CP/M or had CP/M available for them.
By 1980, DRI’s staff was over twenty people, the company had revenues of about $3.5 million, and much of that revenue was from CP/M. In 1980, DRI released both MP/M 1.1 and CP/M 2.2. Version 2.2 was wildly successful.
In 1980, CP/M made its way onto the Apple II via a Microsoft product, the Z-80 SoftCard. The SoftCard was an idea of Paul Allen’s and was a project that he directed, and a product developed by Tim Paterson of Seattle Computer Products. Once the prototypes were completed, Don Burtis redesigned the card to make it easier and more affordable to mass produce, after which California Computer Systems made the cards. As the name would suggest, the SoftCard provided a Zilog Z80 CPU on an add-in card along with necessary support circuits. For Microsoft, the card allowed Apple II owners the ability to run Microsoft’s programming language tools. For Digital Research, the SoftCard allowed Apple II owners to run CP/M. The initial deal that Gates and Kildall reached was for ten thousand CP/M licenses at $2.50 each. The card sold for $349 and it was Microsoft’s largest money maker at the time.
In 1981, DRI released MP/M II 2.0 with file sharing capabilities and CP/Net which allowed CP/M machines to act as clients to MP/M servers.
The Intel 8086 was launched in 1978. Digital Research wasn’t quick in releasing a port of CP/M to the new chip either. In late June of 1980, Tim Paterson at Seattle Computer Products had working S100 bus computers with the new chip, and he needed an OS. He then cloned CP/M and rewrote some portions to suit the more powerful sixteen bit CPU. The most immediately obvious change between Paterson’s system and CP/M was the introduction of the FAT12 filesystem. Paterson’s system was completed in six weeks with the first version made available in August of 1980. Toward the end of 1980, IBM launched Project Chess to develop a home microcomputer. The first pass at an 8088-based system board was completed in a little over a month, and a prototype system was ready by January of 1981. IBM was shopping for an operating system to ship with their computer, and they approached Digital Research at the suggestion of Bill Gates, but IBM and DRI failed to reach a mutually satisfactory agreement. At this point, Microsoft was asked to produce something. Microsoft purchased 86-DOS and hired Paterson, ported the sixteen bit CP/M clone to the IBM PC, and then they offered it to IBM. This became PC-DOS.
Still, by 1982, DRI had sales in excess of $20 million for 1981, with more than a million CP/M installations globally. The final eight bit version of CP/M was version 3 (as far as I can tell), and this was branded as CP/M Plus. This version featured bank-switching memory management allowing CP/M to access more than 64k memory on an 8080 or Z80 CPU, a feature first seen in MP/M. Also in 1982, MP/M II 2.1 was released with support for file locking.
I have readers from many of the companies whose history I cover, and many of you were present for time periods I cover. A few of you are mentioned by name in my articles. All corrections to the record are welcome; feel free to leave a comment.