Using an iPod with voice memos to load and save programs using the Commodore Datassette

There are times when it’s necessary for you to use the tape interface with your Commodore computer. For instance, some games on the Vic-20, like Adventure Land, require a tape drive for loading and saving games. If you use an emulator, this is not a problem since the tape device is also emulated, but if you are using a physical Commodore, then this may be problematic.

Thankfully, there are a number of modern tape emulators available these days. For example, there’s the Tapuino, the CBM Tape Pi, and the Tapecart. You can find these and other alternatives for sale online. I constructed my own Tapuino and it works well for my purposes. With the addition of a mux board, I can even copy physical tapes to tap format. If you are serious about using the tape interface with your Commodore, I really recommend getting a modern solution.

But what if you wanted to be somewhat low-tech and you wanted to use your working Datassette? Let’s say that on top of that you had few or no cassette tapes. In this post, I describe how I modified my Datassette so that it can be used with an iPod to load and save programs. With this modification, regular tapes can still be used, so the regular functionality of the Datassette is not sacrificed.

I used an iPod with “Voice Memos” capability, and a pair of Apple earphones with remote and mic (the one with 3.5 mm jack). On such iPods, the Voice Memo menu option is activated when you plug in earphones with a mic. This feature of the iPod will be used to save programs.

A small circuit was added to the Datassette so that the iPod pauses and resumes playback whenever the Commodore pauses or resumes the motor of the tape device. This was added because some long programs will pause and resume multiple times during loading. You can try pausing the iPod manually, but this means that you need to keep a watchful eye on the Datassette; miss the pause and you have to start all over again. The circuit monitors the Datassette motor for activity and sends a pause signal to the iPod when the motor starts or stops.

The modification I describe here is for my Datassette model NP-090B. There are many variations of the Datassette, so if you want to implement this solution, you will have to get familiar with the circuitry of your own tape device. The service manual for the Datassette contains schematics for many variations, so check there for specific information on your own Datassette.

Apple earphones with remote and mic

Find the wires on your earphones with mic
  1. Cut a long enough segment of the earphone cable with the 3.5mm jack attached. Strip the cable and identify the wires (use this page for help). Note that the microphone wire is “hidden” inside the ground wire for the microphone. You should find:
  • red wire: right audio
  • red and copper wire: ground for right audio
  • green wire: left audio
  • green and copper: ground for left audio
  • red and green sheath with a copper wire inside: inner copper wire is the microphone signal, outer sheath is the microphone ground
  • strength cord (yellowish). You can ignore this.
Prepare the connections
  1. Connect all ground wires together. Connect the left and right audio wires together. Headphone wires can be tricky to solder together. These wires are usually thin and are coated in very thin plastic. I like to use a soldering iron to melt off some of the plastic and, with some patience, I let the solder be slowly absorbed by the wire as the plastic coating melts. Many other other methods are described online… learn and use a method that works you.
  2. This next step is taken directly from the information described in a load64.com online forum. The forum describes a modification that is similar to the “universal cassette interface” described in the Commodore 64 Interfacing Blue Book. However, instead of creating a new interface as described in the book, we are piggybacking on the existing circuitry of the Datassette. Attach a 22K resistor and 100 nF capacitor in series with the audio wire (combined left and right). Solder the combined ground wire to the ground on the Datassette circuit board. The solder points for the audio and mic connections are given in the figure bellow. Basically, the mic feed is picked up after the resistor R23, and the audio is injected between the second and third op amplifier, after resistor R11. Use the figure below as a guide for implementing the solution if your Datassette is not an NP-090.
  3. At this point you can reassemble the Datassette to use the iPod to load and record.
Solder points for audio and mic wires.

Pause/Resume Circuit

When you click on the remote control on Apple earphones, the microphone wire is momentarily connected to ground which causes the iPod to pause or resume playing. I designed a circuit that detects changes in motor activity. Whenever the motor starts or stops, the circuit momentarily grounds the microphone wire (which causes the iPod to pause or start playing a song).

The circuit uses the following components:

  • 1 x 74LS86 quad XOR gate IC
  • 1 x 4N35 octocoupler
  • 2 x BC547 NPN transistors
  • 1 x 47uF electrolytic capacitor
  • 1 x 5kΩ resistor
  • 1 x 330Ω resistor
  • 3 x 1kΩ resistors
  • 2 x 1N4148 diodes
Schematic for the pause/resume circuit

Basically, the circuit consists of an R/C delay and an XOR gate. As the voltage in the motor changes, pin 2 of the XOR gate registers the change in voltage right away. Less than a half second later, pin 1 also registers the change. The resulting output is a pulse which causes the mic to be grounded momentarily.

I made the circuit and attached the motor, 5V, ground and microphone lines to the appropriate connections on the circuit. The best place to put the circuit is in the front right corner of the case (see figure below).

Attaching the pause circuit on the lower case, front right corner

I passed the 3.5mm iPod jack through the rubber ring that holds the Datassette wire and put the case back together. For nostalgia, I put a broken tape that has no ribbon in the Datassette; I like to see the tape reals turning! Here is the finished result:

The finished result, with the 3.5mm jack passed through the rubber ring that holds the Datassette wire

Loading a program

  1. Get a high quality wav file of your program and put it on the iPod. I use the utility tapclean to clean the tap and convert tap files to wav format. Because of the way the audio is injected into the Datassette, the wav needs to be inverted (which tapclean can do).
  2. Connect the iPod to the Datassette via the 3.5mm jack.
  3. Select the wav file on your iPod, but don’t let it play.
  4. Enter the load command on the Commodore and press the play button on the Datassette.

If all goes well, the computer will find the program and load it. When the computer finds the program, the computer pauses the Datassette for a few seconds. If the pause/resume circuit works correctly, the iPod will be automatically paused and then resumed when the computer reactivates the Datassette.

On a Commodore 64, try a complex game like Aliens by Activision. Aliens will stop and load the Datasette multiple times during play, so it’s a good program to use to test the pause circuitry.

Saving a program

  1. On the iPod go into “Voice Memos”
  2. Enter the save command on the Commodore.
  3. Press the record & play buttons on the Datassette.
  4. Press “Start Recording” on the iPod.
  5. When the Commodore finishes saving the program, the iPod should stop recording and present you with a Menu. Choose “Stop and Save” to save the file as a timestamped m4a file.