Gary Kildall - CP/M, Digital Research and GEM
Written by Harry Fairhead   
Article Index
Gary Kildall - CP/M, Digital Research and GEM
Missed Opportunity

Gary Kildall is someone who had most influence during the early days of the microcomputer revolution. Because of the way history unfolded not much of his legacy is visible today - but he was an important pioneer and one of the first people to take microprocessors seriously. 

It is tempting to compare him with Bill Gates - they both produced computer language implementations, operating systems and large companies - but the similarity is only superficial.


Bill Gates was an enthusiast, a garage entrepreneur, a stylish programmer; very much the product of the computer revolution of the 70s. Kildall on the other hand was less of an enthusiast, more of an outsider and an onlooker as the revolution progressed.


Gary Kildall (1942-1994)


Kildall was born and grew up in Seattle, Washington, where his family operated a seafaring school. At the University of Washington he initially studied mathematics and it was here he became interested in computer technology. When he graduated he was drafted into the Navy where he taught at the Naval Postgraduate School (NPS).

He received his PhD in computer science in 1972 at a time when the first microcomputers were making their appearance. He then resumed his teaching computer science and programming in particular at NPS, preaching the then reasonably new creed of structured, modular, top-down programming. This slightly academic view of programming and background might help to explain some of the strange events in his career. Like all academics Kildall worked on various `real' projects including his lucky break - PL/M.

At the time microcomputers looked very underpowered compared to the mainframe and mini computers that most academics had access to. The general attitude of the computer professional towards the microcomputer was "what can you do with it?" They looked more like electronic toys.

The enthusiasts with no access to more powerful computers looked at them rather differently because they were the only computers that they were likely to get their hands on and in this case the question was how rather than what.

Gary Kildall was involved in a project (1972) for Intel to develop a compiler for a highish level language for the 8080 - the first in the family of processors that leads directly to today's multicore Pentium designs. The language was PL/M, fancifully named to sound like IBM's PL/1 super language.

PL/M was certainly no super language but it was a block structured low level language similar to C. To give you some idea of how much out of the mainstream of the personal computer revolution Kildall was, it is worth mentioning that he used an Intel development system for the work on the compiler. This was a high priced microprocessor hardware/software development tool bought by electronics companies and not enthusiasts. And this is exactly the group who bought and used the PL/M compiler.  In short PL/M wasn't a hobbyist or enthusiasts language. 

The PL/M compiler was written in Fortran 66 and it occupied about 90KBytes and a sample PL/M programmer looked like:



First operating system

Now comes the strange part of the story.

The Intel development system had an 8-inch floppy disk drive.  You might not believe it but when these were first introduced no one had any software to make them work. Lots of people wrote small program loaders to work with floppy drives that had been added onto minis and micros.

Microcomputers were mainly tape based and these were controlled by very simple programs stored in ROM (mostly called something-BUG). For example Motorola had a monitor called MikBug which fitted into a single 512Byte ROM. You could load a program, save a program and usually do the same to any area of memory. Notice that the loading and saving was to audio cassette tape which was slow and unreliable. A very common method of getting a program into memory was to key it in using Hex. 

There was no real equivalent to the operating system that we have all grown accustomed to. The ROM monitor programs were the software equivalent of the banks of switches and flashing lights that the previous generation of computers used to get them started running a program. 

Kildall faced the same problem when it came to implementing PL/M on the 8080 development system so he wrote a small interface to the 8" floppy disks.


The Intel MDS - A Very Expensive 8080 Machine

The difference between this other people's attempts was that he separated out the part of the program that talked to the hardware. As a result he had a customisable simple operating system. In other words, you could re-write the disk drivers to make it work with almost any 8080 machine, irrespective of hardware differences. 

The module that worked with the hardware was given the name BIOS - for Basic IO System. This is the origin of the PC BIOS ROM which was supposed to provide the same facilities to software running on the PC.

The operating system was named CP/M meaning Control Program for Micros, but I think it was an attempt to link it to PL/M which Intel had commissioned. CP/M was written, initially, in PL/M. 


Kildall offered CP/M to Intel as a natural companion for PL/M - and they turned it down!

At this point CP/M might have sunk without trace, and some would say that it deserved to, but by some strange process it started to catch on in the USA. It became the de-facto standard after a number of computer magazines printed a story that it was just that. Most microcomputer users hadn't seen or even heard of CP/M until that moment, but they all felt obliged to seek it out, buy it and thus ensure that it was the de- facto standard. This one product made Digital Research the most important microcomputer software company overnight.

How this happened is an even bigger mystery when you realize that the only machine that the CP/M Kildall sold worked on was the Intel development system. A very standard task at that time for programmers wanting to run CP/M was to modify the standard BIOS so that it would work on what ever homebrewed hardware you were working with. Slowly off the shelf machines started to support it and you could buy customized version of CP/M.

After its initial adoption CP/M dug itself deeper into the fabric of the personal computer. There were one or two attempts to introduce alternative operating systems - Flex, UniFlex, OS/9, Unix, TRS DOS - but a machine that couldn't run the latest CP/M was the exception.



A CP/M 2.2 manual

What was CP/M like?

If you know MS-DOS then you will recognize much of CP/M. Its command line supported DIR to get a catalog of what was on the disk. ERA to erase a file. There was no need for commands to create or change directory because each diskette had only one main directory containing files. A key command line program was PIP - Peripheral Interchange Program which could be used to copy and move files and even print them.  File  names were in 8.3 format i.e. an 8 character name followed by a three letter extension. 













Last Updated ( Friday, 01 April 2022 )