Digital Research CP/M 2.2 manuals

CP/M 2.2 in the MicroBasement

CP/M 2.2 is a classic operating system from the microcomputer era, widely used on 8-bit machines in the late 1970s-early 1980s. In the MicroBasement, CP/M 2.2 runs on several machines, including the Altair 8800, IMSAI 8080, Big Board I & II, and Osborne 1/1A, each with its own custom CBIOS (Custom BIOS). CP/M 2.2 runs on either a Z80 or 8080 processor (or compatible). For the most part, application programs can be run on any CP/M machine as long as they are not specific to the processor or hardware. Building and booting CP/M on these systems requires custom boot disks, often created with floppy emulators like the HXC on Gotek hardware. This write-up focuses on CP/M 2.2's use in the MicroBasement, the process for creating a CBIOS and boot disk, functions supported in the CBIOS, and steps to port CP/M to a new machine.

CP/M 2.2 in the MicroBasement

CP/M 2.2 is the primary OS for many 8-bit machines in the MicroBasement. It runs on the Altair 8800, IMSAI 8080, Big Board I & II, Osborne 1/1A, and others. Each machine requires a custom CBIOS to handle hardware-specific I/O. For some, boot disks are on physical floppies; for others, floppy emulators like the HXC on Gotek hardware simulate disks, allowing easy loading from modern files. This setup lets us boot CP/M quickly and experiment with period-correct software.

Creating a CBIOS

The CBIOS (Custom BIOS) is the hardware-dependent part of CP/M that interfaces the OS with the machine's console, disk drives, and other peripherals. To create a CBIOS:

  1. Start with a template CBIOS assembly source code (available from CP/M archives or tools like Z80ASM).
  2. Implement hardware-specific routines for console I/O (keyboard/screen), disk I/O (read/write sectors), and boot processes.
  3. Assemble the CBIOS code into a binary file using a Z80 assembler.
  4. Patch the CBIOS binary into the CP/M system image (CCP + BDOS + CBIOS) at the correct address (usually near the top of memory).

For MicroBasement machines, each CBIOS is tailored - e.g., IMSAI uses SIO for console, while Big Board uses onboard UART.

Building a CP/M Boot Disk

To build a bootable CP/M 2.2 disk:

  1. Obtain CP/M 2.2 distribution files (CCP.COM, BDOS.SPR, etc.) from archives like Walnut Creek or cpm.z80.de.
  2. Create or modify the CBIOS binary as above.
  3. Use tools like CPMTOOLS or 22DISK to format a blank disk image in the machine's format (e.g., 8-inch single-density for Altair).
  4. Combine CCP, BDOS, and CBIOS into a system image using a hex editor or SYSGEN tool.
  5. Write the system to the boot tracks (sectors 0-1 or similar) using IMAGEDISK or cpmtools.
  6. Copy essential files (PIP.COM, STAT.COM, etc.) to the disk using cpmtools or a running CP/M system.

For floppy emulators like HXC on Gotek, convert the disk image to .HFE format and load it onto a USB drive for emulation.

Functions Supported in the CBIOS

The CBIOS must implement 17 standard entry points (jump table) for CP/M 2.2:

These handle all hardware I/O; the OS calls them via the jump table.

Steps to Port CP/M to a New Machine

Porting CP/M 2.2 to a new machine involves adapting the OS to the hardware:

  1. Design or have a Z80-based system with at least 48-64 KB RAM, console (serial or keyboard/video), and disk storage (floppy or emulator).
  2. Write a custom CBIOS in Z80 assembly, implementing the 17 jump table functions for your hardware's I/O (use templates from CP/M archives).
  3. Assemble and test the CBIOS using a ROM monitor or emulator (e.g., Altair SIMH).
  4. Combine with standard CCP and BDOS binaries into a system image.
  5. Create a boot disk as above, or load via emulator.
  6. Boot and test; debug CBIOS as needed (e.g., console output first).

For MicroBasement ports, we used floppy emulators like HXC on Gotek for diskless testing.

Legacy

CP/M 2.2 was the OS that made microcomputers serious tools for business and development. In the MicroBasement, customizing CBIOS and building boot disks keeps the spirit of 8-bit computing alive - a hands-on way to relive the era when every machine was unique.

Back to Collection


Copyright 2026 - MicroBasement