CP/M Source

CP/M Source

Introduction

In March 2014, Emmanuel Roche sent me email after he saw references to XYBASIC on my website. When I mentioned that I had a hard copy of CP/M 1.3 source in my office closet, Emmanuel convinced me to scan it for posterity (see below). This page describes the provenance and contents of that hard copy. As far as I know, it's the earliest surviving copy of CP/M source. I donated it to the Computer History Museum in Mountain View, CA in April 2014. Their Early CP/M Source Code page includes a link for downloading CP/M source code.

Provenance

Bob Swartz, founder of Mark Williams Company, hired me in February 1977 to write a BASIC interpreter (eventually called XYBASIC) for 8080s. At that time, it was possible to get S-100 bus 8080 hardware, but there was a waiting list for 8" floppy drives. Bob already had a CP/M machine and knew Gary Kildall and John Torode, and he arranged for me to use Gary's hardware initially. I commuted from my apartment in Palo Alto to Pacific Grove for several months. On my first visits, I used machines in Gary's garage/toolshed (781 Bayview). Very soon after, Gary and Dorothy moved Digital Research to the top floor of 716 Lighthouse, and I worked there until I got my own machine, probably in May or June of 1977. I typically spent several days in PG before returning to Palo Alto, so I often slept in the tiny overlook at the top of the building. My PG commute ended before the rapid growth of DRI and their move across the street to 801 Lighthouse.

Gary Kildall gave me a hard copy of CP/M 1.3 source during that period (i.e., between 2/77 and 6/77). I remember a shelf of identical copies in the office; each customer who bought CP/M source received one, in addition to machine-readable source on floppies. The front label and yellow index tabs on my copy were added by me at that time.

Document details

Format: 8.5"x11", left edge Velo binding, blue plastic front/back cover. Spine: CP/M SOURCE (written by Steve Ness). Pages are single-sided xeroxes of lineprinted originals. A few pages are misaligned, losing a little information at the margin. Each original page was rubberstamped with version/cr/serial# block. Each section consists of 1 header page (portrait) followed by multiple source pages (2-up landscape), with sections separated by single gray unprinted page. Some sections (and subsections) have a handwritten ID on the first page, and in some cases have VERSION and SER.# filled in. Each separator page has yellow index tab added by Steve Ness. Page counts below are sheet counts; e.g., ASM source is 72 original pages printed 2-up on 36 sheets. The original does not have page numbers.

Scanned document

Contents (click on Description to load PDF):

Page Description Pages Lang. ID VERSION SER. # Comments
000 Front cover blue plastic; label (by Steve Ness): CP/M SOURCE
001 Dear Digital Research Customer 1 portrait
002 SOFTWARE LICENSE AGREEMENT 1 portrait
004 MDS COLD START LOADERS 1 + 2 .asm
008 CONSOLE COMMAND PROCESSOR (CCP) 1 + 7 .asm CCP
017 BASIC DISK OPERATING SYSTEM (BDOS) 1 + 10 .plm 1.3 BDOS
029 MDS BASIC I/O SYSTEM (BIOS) 1 + 4 .asm BIOS
035 CP/M ASSEMBLER (ASM) 1 + 36 .asm ASM 1.0 1.3 ASM 1.0
073 SYSTEM GENERATION (SYSGEN) 1 + 3 .asm SYSGEN SYSGEN
078 CP/M CONTEXT EDITOR (ED) 1 + 12 .plm ED 1.0 missing lines 738 to 748, see patch
092 STATUS PROGRAM (STAT) 1 + 5 .plm STAT
098 DYNAMIC DEBUGGING TOOL (DDT) 1 + 24 .asm
125 DDT UTILITIES 1 + 6 .asm
133 PERIPHERAL INTERCHANGE PROGRAM (PIP) 1 + 13 .plm 1.3 PIP 1.5
148 BATCH PROCESSOR (SUBMIT) 1 + 3 .plm SUBMIT
152 Back cover blue plastic

Here's a compressed tarball of PDFs of individual pages (before rotation), and here's the entire source as as single PDF (huge!).

Scanned to PDF 3/21/14 - 3/30/14 by Steve Ness using HP6700: 300 dpi, b+w (except color for covers and separator pages), quality high. PDF pages rotated and combined using ImageMagick.

Dedication

This page is dedicated to the memory of Gary Kildall, who left us much too soon.