CP/M is organized into three parts: The CCP, the BDOS, and the CBIOS. The CCP is the Console Command Processor. This is the command line interface for CP/M. The BDOS is the Basic Disk Operating System, the heart of the disk file management part of the operating system. The CBIOS is the Customized Basic I/O System. It is the interface between the operating system and the microprocessor hardware.
There were 3 major releases of CP/M, and other than the changes that were incorporated for these different releases, the CCP and BDOS have remained fairly consistent. The functionality of the BDOS was expanded somewhat as CP/M evolved. Non-proprietary "drop-in" replacements for both have become available: most notably, ZCPR for the CCP, and ZRDOS for the BDOS.
The CBIOS is the most interesting part of CP/M because it contains everything necessary to make the local hardware congifuration function with the more standard CCP and BDOS. It is the interface between the microprocessor hardware and CP/M. In more current terms, it would probably be considered a collection of "drivers". But it also has the capability to start up, and restart, CP/M. Every vendor, that sold a CP/M system, had their own BIOS that was customized for their hardware. One of the biggest sources of variability in CBIOSes is the disk drive (usually two, or more, floppies). It is not uncommon to find 128-, 256-, 512-, or 1024-byte floppy disk sector sizes, and there are literally hundreds of CP/M diskette formats. The CBIOS has to translate the BDOS's requests for 128-byte logical "records" to physical disk parameters for the local disk drive, and serve as a buffer to aggregate these 128-byte "records" into physical disk sectors and unpack physical disk sectors into 128-byte "records".
The more astute CP/M hackers modified and customized their own CBIOS code, and in some cases, built their own homemade systems running with one-of-a-kind CBIOSes. So, the CBIOS reflects much of the creativity that was embodied in CP/M.
This part of the site is under construction and will change with time. I plan to put source code for old CBIOSes out here, as I have access to them.
Roger Hanscom
E-mail me at: