C64 CP/M Cartridge

The cartridge that makes a C64 a “dual processor” computer: Commodore’s CP/M cartridge for C64 contains a Z80 CPU and comes with version 2.2 of the CP/M operating system. Here are some pictures.

The CP/M operating system was popular for its large library of business applications. It required an Intel 8080 compatible CPU, so it didn’t work on the C64. Commodore’s CP/M cartridge from 1983 does nothing more than add a Z80 (which is 8080 compatible) to the C64. The OS and its applications ran on the Z80 CPU, which could switch back to the 6502 for screen, keyboard and disk access.

The device was unsuccessful on the market because the Commodore 1541 disk drive was unable to read any of the variants of the MFM disk format that most software was released in, and software manufacturers were reluctant to release 1541 disks – so there was simply no software. Commodore learnt from their mistake: The C128 (1985) came with the additional Z80 CPU on the mainboard and CP/M 3.0, and the 1571 disk drive had the ability to work with MFM disks.

This is the box. The back says:

The Commodore 64 CP/M® 2.2 Operating System

Now you can turn your Commodore 64 into a DUAL PROCESSOR home computer. The Commodore 64 CP/M® version 2.2 Operating System lets you expand the software applications you can use with your Commodore 64. When you add this easy-to-install system, you can begin using some of the many available CP/M® programs, including these:

  • Widely used business applications
  • Word processing
  • High level computer language compilers (e.g., COBOL, FORTRAN]
  • And many other specialized software programs

The easy-to-install Commodore 64 CP/M® Operating System includes all these items:

  • A Z80 microprocessor, called the Commodore 64 CP/M Cartridge
  • The CP/M® disk, which contains both the CP/M® operating system and some utility programs
  • A user manual, which contains instructions for using the CP/M® Operating System and utilities

*CP/M is a registered trademark of Digital Research Incorporated


© Copyright 1983 by Commodore Electronics, Ltd. All rights reserved. No part of the programs or manual included in this work may be duplicated, copied, transmitted or reproduced in any form or by any means without the prior written permission of Commodore.

Commodore Business Machines, Inc. • 1200 Wilson Drive • West Chester, PA 19380

The cartridge only says “Commodore 64 CP/M® Cartridge / CP/M is a trademark of Digital Research”. There are no other labels.

The board (ASSY. NO 326232 REV. B; FAB NO 326229 REV. B) contains the 3 MHz Z80 CPU as the only major chip.

The users manual is available from archive.org. The operating system comes on a 1541-formatted disk (cpm22.d64).

0 "CP/M DISK       " 65 2A
1     "CPM"               PRG

From the Commodore DOS point of view, it only contains a small boot program. The rest of the disk uses the CP/M filesystem:

A: ED       COM : ASM      COM
A: DDT      COM : LOAD     COM
A: DUMP     COM : DUMP     ASM


16 thoughts on “C64 CP/M Cartridge”

  1. I had that one, and even wrote a disk driver for it, using my (somewhat) faster floppy transmission protocol so it loaded things faster from disk (1541). I could not sell it though, because there seemed to be no one else who used that, at least not in Germany.

    That CP/M system was not bad IMO, but I was young and had no clue.

  2. Problem 1: The Z80 couldn’t run in parallel to the 6510 (same as in C128).
    Problem 2: C64 with this cart was a rather slow CP/M system, also in terms of CPU poer (same as C128)
    Problem 3: Only 40 characters in a row, not really suitable for CP/M (on the C128 they put additional video chip to Z80, with a separate video output, but it’s software driver was very slow)
    Problem 4: When the cart was released, CP/M popularity was rapidly declining (when C128 was released – CP/M was considered seriously outdated)
    Problem 5: Transient Program Memory area was rather low while using this cart
    Problem 6: This cart works only on early C64 models, which has a buggy video chip; it doesn’t work with fixed VIC II.

    Seriously… CP/M on both C64 and C128 is a pure disaster. GEOS forever!

  3. I’ll just leave this here, and I’m not sure if this has gone generally unnoticed so far:
    Everyone knows the V3.0 system disks for the C128 all have their individual serial numbers (i.e. same on the sticker and in the disk data, if you know where to look). For whatever reason though, so do the V2.2 system disks for the C64 cartridge. I’ve found in various places, online as well as my own dumps from bulk disk purchases, several copies of a V2.2 system disk with the oddly low serial number “8”, which include the assembly source code files (c64confg.asm, c64copy.asm, c64boot.asm, c64fmt.asm, c64bios.asm). Later disks (including your s/n 25688 linked above) don’t have these files anymore. Either this number 8 was an early much pirated copy, or it was an early service offer by Commodore sent from right out of the labs to customers and to BBS’ and thus saw wide distribution. Coincidently, this is also the very disk that this dreadful Rossmöller emulator is based on.

  4. So I picked up a clone CP/M cartridge on Ebay that says it works with all C64 models! I wanted the older one, but wound up with a C in an auction.

    Anyways it has this issue where every char is repeated upwards of a dozen times on the screen. Just as typing can give anywhere from 1-10 chars on the keyboard. If by some luck I manage to load soft80 it then slows down to 1cps!

    Meanwhile vice is SO much faster and usable.. But I know, it’s emulation.

  5. I modified my c64 to 80 characters in a row…
    Build it in a box with 2 floppy drives and named it ” pc64’….
    It was an very early c64 ,assembled in Germany and all the ic components were on sockets…
    Easy to remove, modify an eprom, repair…modifie
    I must have still some unused chips in my junk box…
    It was fun , andrun some ham radio software on it, packet radio, rtty…..
    I throwed it away when i jumped in to a 386 pc, with win windoze 2.0…
    But had a lot of fun and learning plaesure,
    Nowadays in Debian Linux…. And still learning

    • Dear Hans,
      Imagine how much that special C64 would worth today.
      Do not cry! I have the same feeling regarding my own stuff. I sold my less special Commodore collection for a 286 “dirt cheap” to have 2MB of ram instead of 1MB. One C64c, one C16 with 64K, two floppies, one with paralell connector upgrade, MPS803, monitor, >200 discs, 30-40 cassettes with full of games, GEOS discs, etc
      Now it would worth more than 32 or 64GB or DDR4 RAM 🙂

  6. I modified my c64 to 80 characters in a row…
    Build it in a box with 2 floppy drives and named it ” pc64’….
    It was an very early c64 ,assembled in Germany and all the ic components were on sockets…
    Easy to remove, modify an eprom, repair..
    I must have still some unused chips in my junk box…
    It was fun , andrun some ham radio software on it, packet radio, rtty…..
    I throwed it away when i jumped in to a 386 pc, with windoze 2.0…
    But had a lot of fun and learning plaesure,
    Nowadays in Debian Linux…. And still learning

  7. It always struck me as odd that the 1541 drive couldn’t have been made to read MFM-formatted discs for this purpose, seeing as how its “disc controller chip” is simply another 6502 microprocessor programmed to *act* like a floppy controller, and there was even a mechanism provided within the drive’s own firmware to extend its capabilities by pushing extra code to RAM inside the unit and then jumping to it. Seems like Commodore *could* have used that mechanism to have the CP/M cartridge push some code to the 1541 during bootup that would allow it to recognize at least *one* of the more common CP/M disc formats…

    Interesting bit of kit, to be sure, but not particularly practical, and definitely more trouble than it was worth.

    • Unfortunitely the hardware in the 1541 can’t do a full DD capacity MFM modulation.

      There is an intermediate format that can store 90k per disk which can be both read and written both by a 1541 and a MFM controller such as a PC, but that was something that were produced by enthusiasts in the 90’s IIRC.

      It might be possible to make a 1541 read/write any “FM” rather than “MFM” disk format, but were those commonly used on 5.25″ disks on CP/M computers back in the days?

      Regular MFM disks uses a 500kHz data rate while GCR uses 250kHz (or thereabout, the 1541 and it’s siblings varies the speed depending on track zone) on the same type of DD media.

      As a side track, it should be possible to use HD disks and squeeze in way more than 1Mbyte per disk using GCR on an Amiga with it’s regular floppy controller (assuming that HD diskettes and HD disk drives are used). Not sure if anyone ever did this. (The Amiga has selectable MFM/GCR modes – originally the GCR mode were intended to be able to read/write Apple II disks, probably already decided before Commodore did buy Amiga. With some tricks it’s possible to read but not write 1541 disks on an Amiga)

  8. My findings are that it only works properly on the 1982 and 1983 board with the MC4044 PLL clock setup. It will also work on the SX-64 because it has the same old clock system.

    It won’t work reliably (or at all, usually) on a machine with the 8701 clock chip.

    The revision of the VIC-II does not matter. R56A/R7/R8/R9 all work.

  9. CP/M may have been dead market-wise by the time the C128 came out, but when I got my C128DCR in 1988 and started calling BBSes, there were several large CP/M-focused boards in my area. Between them they had thousands of downloads available, with new stuff uploaded daily and lots of active discussions about developing for CP/M and making the most of various applications and utilities. The userbase ranged from hobbyist developers to gamers sharing Rogue strategy to professionals who were using CP/M systems at work for Wordstar and spreadsheets. I downloaded and used quite a few things, particularly related to C and Pascal development. Neither of which was a very pleasant experience given how CP/M mode on the 128 was, compounded by the tedium of working with compilers, assemblers and linkers on a floppy-based system, but it was interesting to me nonetheless. My 128 died in 92. By then the number of people calling in for help using CP/M in the workplace had dwindled to only a handful, but the hobbyist component was still fairly lively. I can’t judge whether it was worth Commodore’s time and effort to support CP/M for the 64 and 128, but it was helpful to me in getting exposure to a command-line interface and using early compilers and build systems. That was definitely handy when I got a PC and started working with DOS and Linux, just as GEOS was useful in prepping me for using Mac and Windows.


Leave a Comment