c p u ville logo
Donn Stewart
13917 Deviar Dr
Centreville, VA 20120
dstew@cpuville.com

Designing, Building, and Selling Obsolete Computers -- for Educational Purposes -- since 2004

c p u ville logo menu icon

Code for installing and running CP/M on the CPUville Z80 kit computer

The CP/M operating system was the first commercially successful disk operating system for microcomputers. As such, it recently received designation by the IEEE as a Milestone in Electrical Engineering and Computing. See the article at http://theinstitute.ieee.org/tech-history/technology-history/groundbreaking-operating-system-is-named-an-ieee-milestone. This operating system was designed by Gary Kildall in 1974, to run on microcomputers with an 8080 processor and 8-inch IBM floppy disks. However, it was designed to be portable to many different machine architectures, by having a machine-dependent, customizable basic input-output system (CBIOS) that had the software to operate the disks, console and other peripheral hardware, and a machine-independent basic disk operating system (BDOS) and console command processor (CCP), to process commands and create and use a disk file system. Since the 8080 processor uses a subset of the same machine code as the Z80, CP/M could be used on both 8080 and Z80 machines. CP/M use spread to a wide variety of machines using a wide variety of disk drives and peripherals. Eventually, the introduction of 16-bit microcomputers using MS-DOS made 8-bit microcomputers (and CP/M) obsolete, but it is still used and enjoyed by hobbyists and educators using 8-bit Z80 or 8080 systems.

As mentioned in the Single-board Z80 computer kit instructions, CP/M was recently placed in the public domain, so I am allowed to distribute the source code and assembled binary files from my website. Here is the CP/M 2.2 source file I assembled for this computer, with its list file and the resulting binary:

cpm22.asm
cpm22.lst
cpm22.sys

You need a number of programs to test the memory expansion, and to load CP/M onto the disk for use in the Z80 computer. Here are the programs for download:

memory_test.bin
z80_cbios.bin
format.bin
putsys.bin
cpm_loader.bin
monitor.bin

Listings of these files can be found in the Disk and Memory Expansion kit instructions.

PCGET and PCPUT file transfer utilities

These programs allow XMODEM-protocol transfers over the serial port onto the CP/M disk. For detailed information on using them, consult the disk and memory expansion kit instructions. These programs are written in 8080 assembly language, so if you want to modify them or assemble them yourself you will need to use an 8080/8085-capable assembler.

PCGET assembly language file
PCGET list file
PCGET Intel Hex object file
PCGET binary object file

PCPUT assembly language file
PCPUT list file
PCPUT Intel Hex object file
PCPUT binary object file

Updated CP/M system with 2 megabyte disks

The first CP/M CBIOS I developed stuck close to the original four-disk, 8-inch 250K floppy configuration. However, some users found this quite limiting. I re-wrote the CBIOS to re-define the CP/M disk system as four disks of 2 megabytes each. This required new format, putsys, and cpm loader programs. The installation method is the same as the original system above, but some of the file sizes have changed. If you use the format program, it now takes about 11 minutes to run, but gives some feedback on the terminal that it is running. I also changed how CP/M maps its sectors onto the hard disk, so it is much more efficient using the hard disk. The original CP/M system needed a miniumum 256 megabyte disk, but this new system, despite the larger CP/M disks, can be installed in a 35 megabyte disk space.

CBIOS 3 assembly language file
CBIOS 3 list file
CBIOS 3 binary file

PUTSYS 3 assembly language file
PUTSYS 3 list file
PUTSYS 3 binary file

CP/M loader 3 assembly language file
CP/M loader 3 list file
CP/M loader 3 binary file

FORMAT 3 assembly language file
FORMAT 3 list file
FORMAT 3 binary file

How I got CP/M installed and running on this new Z80 computer