How to read CP/M discs

One of the questions I've been asked most frequently since creating this site is:

I've got these old discs from a Kaypro/PCW/Microbee... How do I get the data into my PC?

Physical media

The first thing to check is: Will your discs physically fit in the PC's drives? If they don't, skip to The discs aren't compatible

Just because the discs fit in the drives doesn't mean that the PC's disc controller will be able to read them. There are some formats (like the Apple II, Commodore 64 or Macintosh 800k) which require special drives and controllers.

Amstrad PCW / CPC / Spectrum +3 discs

Amstrad computer owners have it relatively easy here. Their disc format is well understood, the floppy controller is the same as the one in the PC, and a lot of people have had a go at doing this over the years. As long as the Amstrad has been fitted with a 3.5" floppy drive, you shouldn't have too much trouble finding software to read the discs, including:

Examining the disc

This is where you start needing special software. The Windows Explorer is not appropriate here!

DOS, Windows 95, Windows 98

The software for this platform is mainly designed to run without Windows present. If you are using Windows 95 or 98, this means restarting in "MS-DOS mode" before running the programs.

Download the shareware version of Sydex's 22DISK; this is a command-line program which understands a wide range of floppy formats. If your particular disc format is on their list, you're home and dry - just:

	CDIR /[format] A:
	CTOD /[format] A:*.* C:

If this doesn't work, you'll need another program from Sydex - ANADISK. You'll also need a fair bit of technical know-how. Use ANADISK to do a scan of the disc; if it can't read it, you'll need to get a special drive or find someone who has one. If ANADISK did read the disc, you'll have to construct a format definition for 22DISK from the data that ANADISK gave you.

Linux and other Unixes

CP/M disc access under Linux is supported using Michael Haardt's cpmtools. You may well have to program the floppy drive with the correct number of tracks and sectors first (man setfdprm for details).

Windows NT

Install a copy of DOS to floppy, and then use 22DISK to get the files onto DOS-formatted floppies. Just pretend your PC is one of the original XTs with no hard drive, and improvise from there :-)

I have successfully ported cpmtools to Windows NT, but the discs will need to have standard geometries (9 x 512-byte sectors, 80 cylinders, that sort of thing). You will also need the free Borland C++ to compile cpmtools.

Anything else (Arcs, Macs... )

Sorry, I'm out of ideas here. Probably the best way is to find someone with a PC and use the PC as an intermediate step.

The discs aren't compatible

So, you can't use discs to transfer data. What else can be done?

One course of action is to find a bureau with the appropriate hardware, who will do the transfers for a fee. In the UK, for instance, there are Locomotive Software themselves, who can copy between Amstrad 3" and PC 3.5" formats.

The other thing that can be tried is a cable connection. If the CP/M computer has a serial port, then try connecting the two computers this way. Text documents may transfer with the commands:

	pip aux:=file
at the CP/M end and
	copy com1 file
at the PC end; but you'd get on better using real communications tools such as Zmodem or Kermit.

Amstrad PCWs don't normally have serial ports; you can either try to find a serial interface such as a CPS8256 second-hand, or buy LocoLink, which connects using the PC's parallel port.

John Elliott 10-3-2000