[Contents] [Commodore] [New] [Search] [Home]

What Is CP/M?

Charles Brannon, Program Editor

CP/M has been available for the 64 for a while now, but many people still don't know what it is or what it does. Commodore 64 CP/M consists of a disk and a plug-in cartridge. The disk contains the actual CP/M software; the cartridge contains a Z80 microprocessor. In effect, the CP/M system turns your 64 into another computer. The new Commodore 128 incorporates a built-in Z80 chip, and comes complete with the CP/M disk.

Why CP/M? The usual answer is that CP/M opens up a world of software, thousands of programs that you can run with the right hardware and operating system. But are these programs worth it? Many Apple owners would say yes. For a while, Z80 cards were the hottest add-ons available for Apples. It seemed logical that Commodore 64 owners would also want this power, at a fraction of the price. But CP/M has not caught on so far, at least in home computing.

The CP/M System

CP/M is an acronym for Control Program for Microcomputers. In essence, CP/M is merely an operating system, primarily a disk operating system. An operating system is the base software for a computer. It takes care of routine system tasks, and provides a link between the computer and any other software you may be running.

CP/M began when Gary Kildall, working for Intel, developed a package of compactly written subroutines for the tiny 4-bit 4004 microprocessor. These useful sub-programs could be used by other programs, simplifying the work of a programmer. As technology advanced, CP/M became a full-blown operating system for the Intel 8080 microprocessor, and was upgraded for the 8080-compatible Zilog Z80 microprocessor. Curiously, Intel, the designer of the 8080, was not interested in CP/M, and gave Kildall the go-ahead to market it on his own. He started up a company called Digital Research. (Digital is still going strong; they recently developed GEM, the Macintosh-like operating environment of the new Atari ST computers.)

Before CP/M, there was no real operating system for these computers, so it was quickly seized upon by most users and manufacturers of Z80 computers. There were no successfully competitive operating systems, and CP/M easily became a standard. Since almost everyone had CP/M, all the Z80 machines had more in common with each other. CP/M made it possible for one program to run on many different computers.

Most Z80 computer systems included a keyboard and monitor (or terminal), one or two disk drives, and 48K or 64K of memory. These computers were never designed to be compatible with each other, but CP/M took care of that.


Built into CP/M is a library of sub-programs for performing tasks like printing a character to the screen. Each computer might use a different kind of video display, so some portions of CP/M, the BIOS (Basic Input/Output Subsystem) were customized for each machine, but BIOS acted the same way on every machine. Because of the BIOS, programmers could write their routines to use these universal subprograms instead of directly programming their particular computer's video chip. The program, if written properly, could run on any computer with CP/M. Machine-specific tasks became standardized routines.

A CP/M software market thrived, since developers could write a single program that would run on many different computers. Woe be to the computer that lacked CP/M. Even though the TRS-80 used a Z8O, it took the efforts of third-party developers to bring CP/M to this machine. For a while, TRS-80 owners were isolated from the mass market, with a separate, smaller, library of software. CP/M was the leader of the 8-bit world, and most small businesses used Z80 CP/M computers. CP/M machines occupied the niche that the IBM PC and PC clones control today.

Is It Obsolete?

The boom went to bust with the introduction of the IBM PC. CP/M machines just couldn't keep up with advances in hardware and software. Although the IBM PC was not a real breakthrough, it expanded the memory ceiling from 64K to 640K. Disk storage jumped from 100K to as much as 370K (double-sided disks). The faster and more powerful 8088 microprocessor made it easier to write better programs in less time. IBM's open architecture encouraged additional power, as more and more hardware companies enhanced the IBM with add-ons. The microprocessor used in the IBM could not run CP/M, so a whole new standard was forged. (Digital Research's CP/M-86 was not available in time for the release of the PC, so it failed to establish itself as a standard. Microsoft's MS-DOS, which is much like CP/M, beat out CP/M-86 not because it was better, but because it was first.) The 8-bit Z80 world of CP/M was replaced by IBM's 16-bit 8088 world. Software developers jumped on the bandwagon, and CP/M was put on the back burner.

Since CP/M is no longer the dominant environment for high-end microcomputing (although CP/M machines are still selling today), why is it an issue on Commodore machines? It would seem the best bet would be an IBM MS-DOS emulator, with an 8088 instead of a Z80. Commodore probably went with CP/M because it is built around cheap, proven technology. The Z80 simply costs less than the 8088. And CP/M is more generalized, easier to adapt, than the MS-DOS used on IBM PCs. CP/M may be Commodore's way of crossing over from home computing to small business computing. Commodore is even translating some IBM software to CP/M, taking advantage of the similarities between CP/M and MS-DOS.

Most CP/M programs are written in 8080 or Z80 machine language. CP/M takes care of the minor differences between Z80 machines, but you still have to have a Z80 microprocessor. CP/M could be translated to run on any computer, such as the 6502, but what good is a 6502 version of CP/M if all the programs that run under CP/M are written in Z80 machine language?

Commodore CP/M

The CP/M cartridge for the 64 is a Z80 with some control circuitry. It's designed so that it can take control of the 64's memory. When using this cartridge, you're essentially using another computer. The Commodore 64 CP/M BIOS was actually written in 6510 machine language. The Z80 remains in control until it needs to do something like printing a character to the screen, or reading a byte from disk. The Z80 then reawakens the 6510, and puts itself "on hold." The 6510 takes over, finds a request from the Z80, acts on it, then transfers control back to the Z80. It's unusual, but it works.

However, the 64 does not make a great CP/M computer. To get around memory limitations, CP/M resorts to intensive disk access. At the speed of the 1541, this makes programs run quite slowly. Also, most CP/M computers use a 64 or 80-column wide screen. The Commodore 128, with its 80-column screen and high-speed disk interface, may be much more suitable as a CP/M machine.

The disk that comes with 64 CP/M contains the CP/M operating system, plus some utility programs that let you do things like copy files and format disks. When you run CP/M, all you really have is an alternate DOS. It does nothing on its own, unless you're merely interested in programming the Z80 on your own. The missing link is CP/M software.

Where's The Software?

Thousands of good programs were written for CP/M and are still in use today. CP/M users and user groups created a vast amount of public-domain software. Most of this software would run under 64 CP/M, if you could get it into memory. But the 1541 disk drive can't read a CP/M disk. More 1541-readable software is necessary for CP/M to have any value at all. A large New York user group has been busy transferring public-domain software to 1541 format (see the "Horizons" column in the October 1984 GAZETTE for more information), but the amount of usable CP/M soft- ware is still dismally small. Commodore, at the time of this writing, has two programming languages you can run under CP/M: Nevada Cobol and Nevada Fortran. Soon, Commodore will release a set of business tools, the Perfect software series (see the CES feature story for more on this).

The new 1571 disk drive helps solve the problem, CP/M for the Commodore 128 reprograms the disk drive so that it can directly read disks created on other disk drives.

Why bother with CP/M at all? There are many good CP/M word processors, but there are several word processors for the 64 that are every bit as good. There's much more business software available to CP/M machines, but most home computerists won't really want to run an Accounts Receivable program. When the 64 was first introduced, CP/M looked like an excellent way to get around the paucity of available software, but there's now almost too many 64 programs to choose from.

A Business Bargain

However, CP/M may make the Commodore 128 a bargain buy for small businesses. The price of the Commodore 128 with the 1571 disk drive is competitive with the IBM PCjr. CP/M software has been around long enough to be time-tested and bug-free. There's so much CP/M software that there's a good chance you'll find special-interest programs - programs that wouldn't have mass appeal, but could be just what you're looking for. For example, some programs are customized for particular businesses, such as a bookkeeping system designed especially for a dental practice.

CP/M promises a cornucopia of software. Some of this software may be useful to you, although most of it probably won't. It remains to be seen though, with all the technological advances we're now seeing in hardware and software, if anyone really wants to run five-year old software.

Published in COMPUTE!'s Gazette, Issue 22, April 1985. Copyright © 1985 COMPUTE! Publications, Inc.

[Contents] [Commodore] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated December 08, 1998.