An 8080/Z80 C Compiler:
Now Open Source and Public Domain!
Initial Commercial Release: August, 1979
Released into the Public Domain: September 20, 2002
This Distribution Last Updated: October 10, 2002
In 1979, I wrote a compiler for a subset of the pre-Standard ("K&R Classic") C Programming Language. The package was developed on, and targeted for, CP/M-80 floppy-based systems with as little as 32K of available system RAM. Originally intending to publish the source code in BYTE, I was eventually persuaded to turn the project into a retail product. Version 1.0 was released in August of 1979. The full package sold somewhere in the neighborhood of 25,000 copies domestically, and a stripped-down version for Japanese-market MSX machines (distributed under the name Alpha-C) probably sold somewhere in the 50,000 copy range.
Now BDS C's commercial potential is well in the past. Until recently, I had not been aware of the continuing international interest in 8-bit CP/M (and derivative) systems... upon this discovery, I found no reason not to render BDS C, along with all of its source code (including the 8080 assembly language compiler/linker sources), free to the public. For the record:
Plus, as Al Stevens graciously pointed out in his DDJ online C newsletter, BDS C may be used to produce 8080/8085/Z80 embedded systems code (it generates CP/M-resident code by default, but the runtime package can be configured easily enough to run in the absence of an operating system.)
To see the main README file, with change log information and some additional historical notes, click here.
To download a combined ZIP archive containing the CP/M-80 and ZCPR3 retail distributions of BDS C, the complete 8080 assembly language source code for the compiler and linker and a PDF of the User's Guide, click here (1.5 MB).
For compiler/linker source code only, click here (153K).
The code archives are also available on Gaby Chaudry's CP/M site in Germany.
Two PDF flavors of the BDS C User's Guide are available. A short version with full text content, but without the scanned color cover and title page, has already been incorporated into the full archive above. For this short version alone: click here for the ZIP file (570K) or here for the straight viewable PDF.
Oba Masaki's page
Oba Masaki maintains a web site with many interesting BDS C-related applications and tools, including an ANSI C-to-K&R source converter for BDS C and other tooks specific to the MSX (Japanese mass-market CP/M platform supported by Sony and Sharp back in the day) version of BDS C.
BDS C on the SIMH Altair 8800 Simulator
Peter Schorn has built a distribution of BDS C and its sources that plays nice with his SIMH Altair 8800 simulator package. From just this link, I was able to have BDS C running in the simulated CP/M environment on my XP machine in about ten minutes. All you need are the two simulator files labeled "Executable for PC" and "Documentation" in the "Simulator Executables and Sources" section, and the "BDS C 1.60" download in the "Software Packages" section. Unzip everything to the same directory, and enter the command:
You'll then be in a virtual Altair machine...but faster than any actual one ever was! Now, if I could just remember those WordMaster key bindings...
Many thanks to Brian Hess, Fritz Chwolka, Gaby Chaudry and Craig Finseth for their help in reviving the User's Guide and finessing it into PDF format for this distribution. Truly a global effort!
A very special thanks to Jay Sage for his contribution to ZCPR3 development, his guardianship of BDS C during its last incarnation as a Z-System application, for his configuration of the distribution files as they now exist, and for salvaging the compiler/linker source files...making it possible for me to distribute them.
What's Leor up to now?