Re: C64 CP/M

From: Marko Mäkelä (
Date: 1998-09-14 09:53:37

The quoted message was sent to mailing list.  I just
returned from Spain, and will answer the message now.  A copy of it goes
to the cbm-hackers mailing list, a list for 8-bit Commodore freaks.  My
answer is at the end of the message.

On Sat, 5 Sep 1998, Stephen Ames & Jennifer Lynne Wise, Jr. wrote:

> Hello!
>      Let me first praise you folks for the excellent job
> that has been done maintaining the CP/M library at FUNET.
> Now I'll introduce myself, my name is Stephen Wise and I'm
> a Commodore 64 & 128 user.  I also have several types of
> IBM PCs and clones.  Finally, and funny as this may sound,
> I also use several Timex Sinclair 1000s.
> The following links may be of interest to you:
>      Caldera's CP/M Archive -
>      The Unofficial CP/M WEB SITE -
>      You may think that this project sounds like it is ab-
> surd but it is one that I've taken on and I'm keeping my
> fingers crossed that you will be able to assist me!
>      Currently, I'm an active participant on Jack Raats'
> ZX-81 List Server.  As you probably know, this little
> machine operates with a Z-80 CPU and has never had a disk
> drive or any real operating system of its own.  To commem-
> orate its up coming 20th birthday, we have decided to adopt
> Commodore's various 15xx series disk drives to it and give
> it CP/M.  It was decided in order to speed up development,
> we would adapt certain things from Commodore's CP/M while
> creating a CP/M 2.2 for the ZX-81/TS1000 because we are
> using thier drives.
>      At one time, Commodore released a version of CP/M for
> the C64 and I need a copy of it so that we can study its use
> and operation.  For us to be able to use a 1541 disk drive
> we must first load from tape a 1541 driver so that we can
> access the 1541 through a parallel interface like those used
> on IBM PCs and then load in CP/M from the drive just as it
> is done with a C64.
>      If you know somebody that has CP/M for the C64 and can
> make a copy and send it to me it will be greatly appreciat-
> ed.  Likewise, any documentation and source code would also
> be of help!  I will pay costs!  Even purchase a cartridge
> and other materials.  Any links or email addresses would be
> of help too!
>     Thanks for your time!
>     Sincerely,
>               Steve Wise

Hello Steve,

The C64 CP/M requires a special cartridge that has a Z80 processor.  As
far as I know, the cartridge was manufactured maybe from 1982 or 1983 to
1984 or 1985, and it is extremely rare.  But it isn't that complicated,
you could maybe build one yourself.  I haven't seen the C64 CP/M in
action, but I think it will be extremely slow.  Although most of the CP/M
functions were written in 6502 machine language to speed them up (that's
what I've read; I haven't verified it from the C64 CP/M disk images
available from, a Z80 running at 1
megahertz will be extremely slow.  Most Z80 machines had at least 4 MHz
clock speed, which gives about the same speed as a 6502 running at 1 MHz.

Maybe it wouldn't be so difficult to modify a C64 emulator such as VICE to
make it run the CP/M cartridge.  There's some info about the CP/M
cartridge in the C64 Programmer's Reference Guide, starting from page 368.
These pages were removed from later prints, but they are present in the
e-text copy you can find at

Hmm, it seems that the e-text copy doesn't have all the info.  I remember
seeing a figure of the C64 CP/M disk layout (which is different from the
C128 CP/M disk layout, because each track uses a constant number of
sectors, thus wasting lots of disk space) somewhere.  Maybe it was the
C128 Programmer's Reference Guide then.

Someone on the cbm-hackers list might sell his cartridge to you, but I
recommend that you instead write a patch for an emulator so that it will
run C64 CP/M.  That would make the thing accessible for more users.

For your project, the C128 CP/M seems more feasible.  You can get even
some source code to the C128 CP/M from /pub/cpm/sys/c128/system/. 


This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.