Transferring Files to and from CP/M .D71 Disk Images Using ctools

Using Vice to emulate a Commodore 128 running CP/M works very well, but it isn't easy to get CP/M files directly onto and off a .D64/.D71 disk image. The easiest way to do this under Linux is to use ctools.

Building ctools

First you need to get the source files for ctools, for this we can use wget:

$ wget https://github.com/mist64/ctools/archive/master.zip
$ unzip master.zip

To build the executables:

$ cd ctools-master/src
$ make
$ make install

The executable files are now in ctools-master/bin. You will probably find it useful to copy them to somewhere like ~/bin to make them easier to access.

Using ctools

ctools is fairly straightforward to use and most of the time you will only use two of the programs: cformat and ctools.

Creating a Formatted CP/M Disk Image

cformat allows us to create CP/M disk images and I find it most useful to create double sided C128 disk images using the -2 switch.

To create a disk image called work.d71:

$ cformat -2 work.d71

Working With Files on the Image

Once we have a disk image we can transfer files, erase files, show the directory, etc using the ctools command.

To copy all the .txt files from the current directory onto the disk image, work.d71:

$ ctools work.d71 p *.txt

To display the files on the image:

$ ctools work.d71 d

To get all the .txt files from the disk image and put them in the current directory:

$ ctools work.d71 g "*.txt"

Video of ctools

ctools can be seen being used to transfer files to a .D71 disk image which is then read under an emulated C128 running CP/M on Vice below.

Creative Commons License
Transferring Files to and from CP/M .D71 Disk Images Using ctools by Lawrence Woodman is licensed under a Creative Commons Attribution 4.0 International License.

Share This Post

Feedback/Discuss

Related Articles

Emulating a CP/M System With z80pack

z80pack is great for creating an emulated CP/M system. It can either be used to create a general CP/M system or can emulate a specific system such as an IMSAI or ALTAIR including a graphical front-pan...   Read More

Modula-2 Compilers on CP/M

Modula-2 is a great language in general and is a good choice for programming on CP/M. There are three good compilers available for CP/M which all require a Z80 processor and we'll compare each in turn...   Read More

XCCP: A Shell Extension for CP/M

XCCP describes itself as an Extended Console Command Processor for CP/M. It supports the 8080 and v1.0 was released by Anton R. Fleig in 1984. Like EPEX, XCCP doesn't require installing so we can begi...   Read More

EPEX: An Environment Extension for CP/M

Epex is an evironment extension for CP/M. It stands for Environmental Processing EXecutive, and v1.1 was released by James H. Whorton in 1986. It can make using CP/M much more comfortable at the cost...   Read More

File Comparison Utilities on CP/M

There are many utilities available for CP/M to compare the differences between files and to distribute those differences. All the utilities in this article can be found on the Walnut Creek CD. Binary ...   Read More