Gary Kildall - CP/M, Digital Research and GEM
Written by Harry Fairhead   
Article Index
Gary Kildall - CP/M, Digital Research and GEM
CP/M Takes Off
CP/M Celebrated

To mark the 50th anniversary of CP/M, the first personal computer operating system to achieve commercial success, we delve into our archive for the history of Gary Kildall, an important influencer 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 Gary Kildall with Bill Gates - they both produced computer language implementations, operating systems and large companies - but the similarity is only superficial.

Banner

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, increasingly an outsider and an onlooker as the microcomputer revolution progressed, but while acting as a consultant for Intel he was involved in a project (1972) to develop PL/M. This was intened as a compiler for a highish level language for the 8080, the first in the family of Intel processors that led directly to the multicore Pentium designs.

For the pinnacle of his achievments Kildall was responsible for the first computer operating system, CP/M (Control Program for Micros). Intel turned down the opportunity to couple CP/M to PL/M so Kildall and his wife Dorothy established a company, originally called "Intergalactic Digital Research", but later renamed Digital Research, Inc., to market CP/M through advertisements in hobbyist magazines.  

 

Gary Kildall (1942-1994)

Education

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.

PL/M Compiler

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:

SUMSQUARE: PROCEDURE (A,B) ADDRESS;
  DECLARE (A,B) ADDRESS;
  RETURN A*A+B*B;
END SUMSQUARE
 

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.

intellecmds

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!

Banner

<ASIN:0316013854>

<ASIN:0124916503>



Last Updated ( Friday, 26 April 2024 )