OpenCBM and nibtools for MacOS Catalina
If you're trying to use a ZoomFloppy to read and write Commmodore 64 disks with a modern Mac, you'll probably want to install OpenCBM and nibtools. It can be difficult to sift through all of the software, manuals, forums, and blogs to figure out how to get that set up. I've done it on multiple machines, and most recently I had to install it on my new Mac Mini which is running the latest MacOS Catalina (10.15). I thought I would summarize my steps here for anyone else in a similar situation so that they would not have to put in as much effort as I did.
(These instructions are also available in GitHub Gist form.)
First install MacPorts if you haven't already. The MacPorts installation directions will also require you to have the Xcode command line tools installed.
The latest versions of Xcode include a non-working stub
svn in the command line tools, but we need a
working version for when we install
nibtools from an SVN repository (see further below). There are various
ways to work around this. Here are a couple of options:
Option 1: You could simply install it using the command
sudo port install subversion, but that will also
install a bunch of dependencies. If you are someone who does not generally use MacPorts (like me), you might
not want this.
Option 2: Per this Stack Overflow answer, which refers to these release notes, you could install the Xcode command line tools to get it. Strangely, you need to remove an existing command line tools directory (which contains the non-working version), then reinstall. This may take 5-20 minutes, as it downloads content:
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install
Prepare a working directory
Make sure you have git installed, and create a temporary working directory somewhere. For the rest of this
document, we'll you're using a directory named
c64 in your home directory:
Install OpenCBM by using the following steps:
cd ~/c64 git clone https://github.com/OpenCBM/OpenCBM.git cd OpenCBM/opencbm/ports/MacPorts sudo port install
This should just work. If it does not, you may need to open an issue on that repository. You can tell it's been successful if the OpenCBM commands are in your path:
$ cbmctrl --version cbmctrl version 0.4.99.99, built on Jun 6 2020 at 19:35:56
After the pre-requisite OpenCBM port has been installed, you can build nibtools from its SVN repository by downloading this Portfile and using it:
cd ~/c64 mkdir nibtools cd nibtools cp ~/Downloads/Portfile . sudo port install
Again this should just work, although you may see a couple ignorable warnings about opencbm not being in the port index. You can tell if it worked by seeing if the nibtools commands are in your path:
$ nibread nibread - Commodore 1541/1571 disk image nibbler (C) Peter Rittwage http://c64preservation.com Built Jun 6 2020 19:41:02 usage: nibread [options] <filename> -@x: Use OpenCBM device 'x' (xa1541, xum1541:0, xum1541:1, etc.) -D[n]: Use drive #[n] -e[n]: Retry reading tracks with errors [n] times -S[n]: Override starting track -E[n]: Override ending track -G[n]: Match track gap by [n] number of bytes (advanced users only) -s: Use SRQ transfer code instead of parallel (1571 only) -k: Disable reading of 'killer' tracks -d: Force default densities -v: Enable track matching (crude read verify) -I: Interactive imaging mode -V: Verbose (output more detailed track data) -h: Read halftracks -t: Extended parallel port tests -j: Use Index Hole Sensor (1541/1571 SC+ compatible IHS) -x: Track Alignment Report (1541/1571 SC+ compatible IHS) -y: Deep Bitrate Analysis (1541/1571 SC+ compatible IHS) -z: Test Index Hole Sensor (1541/1571 SC+ compatible IHS)
Clean Up (optional)
When you're done, you can simply delete your working directory. The tools have been installed to your system and should not reference it.
Thank you to Lallafa for creating these original articles long ago that helped me start the path to my current solution:
Thank you to Spiro Trikaliotis, Matt Dainty, and everyone else who has worked on improving the OpenCBM git repo.
Thank you to Peter Rittwage, Markus Brenner, and everyone else who has worked on nibtools, OpenCBM, and any other projects that paved the way.