Ask Bill [Gates] why the string in [MS-DOS] function 9 is terminated by a dollar sign. Ask him, because he can’t answer. Only I know that. Gary Kildall
Gary Kildall worked to enable microprocessors take on the attributes of a full-featured computer. He developed one of the earliest and widely adopted PC operating systems.
Drafted into the US Navy, he was posted to its Naval Postgraduate School, a short drive from Silicon Valley. He caught the ‘bug’, buying an early 4004 MPU. He was assisted in learning how to program working as a consultant at Intel.
After national service his doctorate in computer science developed data-flow analysis, a process that gathered likely values to be calculated at various stages of a program. Armed with this ’scoping’ the compiler could then readily maximise a program.
Kildall then designed software to control floppy disk drives. In 1972 Intel loaned him 8008 and 8080 systems and he developed one of the first high-level programming languages for use with Intel MPUs; this was PL/M, programming language for microcomputers. PL/M drew upon other languages, including Algol and XPL, but was optimised for the MPU. It could address any location in its memory, any input-output location and processor interrupt flags.
Kildall formed his own operation with the grandiose name of Intergalactic Digital Research, later simplified to DRI, Digital Research Inc.
1973/4 Kildall adapted his software to use Shugart floppy-disk drives. This updated software became control program monitor, CP/M. During trademarking this changed to ‘control program for microcomputers’. CP/M was developed on a DEC mainframe and was heavily influenced by DEC’s TOPS-10 OS. Originally written for a single-user 8-bit MPU, when combined with an S-100 bus rapidly it became the de facto standard for many early PC and software developers.
DRI needed to accommodate CP/M for an array of freshly released PC systems and Kildall developed a simple and effective approach. He placed much of the specifics of CP/M into a segment named the basic disk operating system, BDOS; this managed CP/M files.
The other basic building block of CP/M was BIOS, basic input/output system. BIOS provided the vital connection between the software and the specifics of the host hardware. It was thus an interpreter between CP/M and its host PC ensuring software could recognise individual keyboard key-strokes, enable the writing/reading of floppy disk sectors, the buffering of data…
BIOS promptly became a fixture on all PCs that followed. It was instantly adopted for example by IBM when it entered the fray.
DRI enabled software authors to produce a program that was transportable across a whole range of microprocessors and PCs. Authors realised if they wrote in CP/M this would open up a much bigger market potential than writing in any machine-specific OS. PC system builders avoided the time and cost of developing their own OS; by adopting CP/M they accessed existing software programs.
CP/M was selected by two of the most significant early applications – WordStar word processing and dBASE database management. Later versions of VisiCalc also ran in CP/M.
1978 Bill Gates and Gary Kildall discussed the potential for a merger of Microsoft and DRI, a coming together of languages and operating systems, but they could not reach an agreement.
CP/M was implemented on around 500,000 PCs by 1978 and by 1981 had clocked up over 3,000 different platforms. DRI’s concentration on 8-bit processors meant it was slow to develop a 16-bit version, and this would soon prove significant.