Back in the distant past of the 1980s, software was distributed on audio tape. Ones and zeroes were encoded as tones of different frequencies, and tapes were decoded by specialised hardware which could then spit out raw digital data to an attached computer. While software methods now exist to simply record audio from old tapes and turn them into data, [Francesco] wanted to do it the hardware way, and built a PC interface for his Commodore 64 Datasette.
The TrueTape64, as it has been named, is built around an Atmel ATTiny2313 microcontroller. This interfaces with the original Datasette hardware which takes care of reading the analog tape output and turning it into digital data. From there, the microcontroller communicates with an FTDI232 serial-to-USB adapter to get the data into a modern PC, where it’s compiled into a TAP image file via some Python magic.
It’s a barebones build, which goes so far as to run the Datasette’s motor off the USB power supply via a boost converter; those facing issues with the tape mechanism might do well to look there first. However, it does work, and a done job is a good job at the end of the day. We’ve seen similar hacks before, too – it’s great to see the community keeping cassette software alive!
32 thoughts on “TrueTape64 Is A PC Interface For Your C64 Datasette”
Jack Tramiel would be proud, mainly because [Francesco] GutHub site says he built it from parts he had laying around.
That explains why he used a 2313. A good lot of pins, but only 2K program memory and 128 bytes of ram! I would only use that for some blinking LEDs, much respect that he got that much from it.
Check the demoscene. It’s impressive what some people do with that or less. (just watch some 256 byte demos – I recommend Memories by Hellmood).
I used a 2313 to build a PS2 to Serial mouse adapter and even though my implementation is super inefficient, I had lots of RAM and ROM left…
The 2313 probably has enough resources left for an alignment calibration program (speed/head azimuth)…
Indeed, I could have used something smaller, there is plenty or RAM/ROM left in the current implementation. I however opted for the 2313 for a few reasons. Originally I was planning to use V-USB and skip the serial adapter entirely, but I thought it would have been pushing a bit too much given there is already some interrupt handling to do for pulse detection. Same for doing serial via software, so a reliable USART was a good compromise to keep timing accurate. Also, as you said, some spare pins never hurt and there is room for future expansion (such as motor control).
Nice hack. There are several takes on this already. I personally use the Tapuino: https://github.com/sweetlilmre/tapuino/wiki
There is also https://hackaday.io/project/2876-arduitape
Yup Tapuino is my go to. I’ve been happily using one for over 5 years
The arduitape is exactly what I have wanted to build for a while but never gotten around to. Motor control included. Perfect!
The output of a Commodore Datasette is already digital, it passes thru Schmitt trigger inverters before going to the computer.
It´s compiled by Python magic.
Decoupling caps: 0
Here we are 40 years later, and it occurs to me too wonder now, why didn’t they just stick a modem between a serial port and a regular audio tape deck.
* to wonder
because that would have been difficult to make (more) money
zx spectrum kept it simple….
People did do that, generally, but it wasn’t fast.
Most cassette interfaces were more complicated than audio tones, specifying two frequencies but more cycles on one of them. Like the Kansas City Standard.
There were some schemes to feed the cassette record head directly. So it’s a digital signal saturating the tape. But you had to modify the cassette recorder. I’m not sure if Commodore used that, but it would account for a special deck.
Sounds like the Acorn method of throwing extra hardware at the problem. The Sinclair/Amstrad machines did it by just counting cycles between edges, where a 1 bit was a single cycle of a fixed length and the 0 bit was a single cycle of half the period of the 1 bit. Blocks started with a run of 2048 1 bits in order for the reader code to precisely determine the tape speed and set the detection threshold.
I was rather amused when I discovered that the C64 read about as fast from *disk* (without a turboloader obviously) as my Amstrad did from tape… yikes.
Polish radio Rozgłośnia Harcerska (Polish Scout Association radio) transmitted C64 and Atari games over the air. From Mobygames Robbo:
“A demo version (containing the first 4 levels) was aired by Polish Rozgłośnia Harcerska radio in Radiokomputer broadcast, 1991. One could record the signal on a cassette and then load it using Atari XL/XE.”
We used to have the same in Romania, Spectrum programs were broadcasted during a dedicated TV show.
Because modems were very expensive? Tape I/O was just one input and one output. The Datasette also had a motor control line because it was extra fancy. That’s a lot less than it would take to make a full up modem (at the time).
I’ve toyed with the idea of trying to see how much data could be stuffed into an analog cassette with some kind of OFDM modulated signal. But I no longer have a working tape deck. ;( The normal audio I/O from a PC would be sufficient. Most good cassetee decks had a monitor function so you could hear what had been recorded. The PC could use that to listen to what actually made it on the tape and alter what gets written–preemphasis, change the encoding of each channel to take advantage of all the S/N available on the media, etc.
For the Love of God…. why though?
That tape deck was the bane of my existence in the ’80s. It was slow and unreliable, and I was so jealous of my friend with the disk drive. I can understand someone using one with a real C64 in a museum, or for posterity, but to hack one to work with a PC? All the emulators work with PC disk files now, and they load reliably in seconds instead of making you wait several minutes to fail with a load error. If my remaining audio cassettes from the ’90s are any indication, the chances that any data cassettes remain readable seems low anyway.
That all said, it seems like a well-designed and documented hack, so kudos there.
I don’t know if this project does this, but making tape interface emulators certainly makes sense.
Tapuino for C64 loads only a tiny piece of code in the standard speed. Then a turbo loader kicks in and data transfers over 9KB/s. Any game with load within less than 10 seconds.
The datasettes were reliable. You just had to practice with tapes and know which tapes worked and which tapes didn’t work with the datasette. The magazines made a special program to fast load the data from computer which was called turbotape:
Some programs took ice ages to load.
Next, let it show up as a thumb drive :)
I’m kind of shocked to read a story about the “datasette”, and not an explanation of how different the tape and disk situation was between the US and Europe (especially UK). In the US, various models of “home computers” went quickly from cartridges (nearly impossible to write to without expensive equipment) to 5.25 inch floppies, In the UK, especially with the Z80, Z81 and ZX Spectrum, tape drives were much more common, and this led to a DIY, or I suppose it could be called a “Hacker culture”. Hundreds of games were programmed on these tapes which were already a familiar form-factor because of music, and the playlists and mixtapes recorded onto them. They put the punk into Cyberpunk!
In the US, cartridges were so much less friendly, and even the floppies were a bit intimidating. Floppies were relatively expensive. There was single and double sided, with a copy protection notch, and they came in DD double density and HD “high density single sided”, where my classmates and teachers were forever “hacking” into double sided by making a notch. Often enough, noobs would notch the DD disks and ruin them.
There was a need for a Disk Operating System to coordinate the drives, I think later on, the significance of the name “DOS” was lost on the public. Also each computer used different incompatible formats. I’m starting to beat a dead horse here, but I think using the cheap and ubiquitous cassette tapes gave future UK programmers confidence that they could make something of value and participate in computer game culture, in contrast to the US. In Eastern Europe this cassette culture continued, as many companies behind the Iron Curtain made clones of the Spectrums, and tape cassettes dominated the market, even long after Western Europe also switched to floppies. Even as tech generally seemed so much harder to acquire, the cassette drive wasn’t.
I’m surprised that none of these cassette drives seem to be doubled up. It was very apparent that having two floppy disk drives was an important advantage, so one could be reading and one writing simultaneously, and one could have a protected disk for OSes and apps, and the other for data writing. Why wasn’t this tried with tapes? Was it because IBM so quickly become standard and dominated the market? (IBM dropped the cassette port on the XT)
There’s a story waiting to be told here.
Speaking as a both a lifetime US person and a kid from the 70s, I can vouch that Tape was indeed a thing here, then. The standard business model seemed to be to sell a ‘budget’ model as a loss leader and then make back the $$$ on the disk drive sales. The budget models invariably came with tape interfaces. The TRS80 which I can personally vouch for was about $600 for the 4K ‘Level I’, with the cheesy RCA television aka monitor, and a tape player. To get to even a single disk, you had to shell out about another $500 just to get the extra RAM (needed by the DOS), the ROM upgrade (to recognize the FDC) and the floppy controller. Individual drives were something like $395 each, on top of all that.
Drives cost so much in the 1977 to 1982 time frame that there were weird things like the Exatron ‘stringy floppy’, which was a special cassette tape unit that was straight digital and thereby way faster than regular audio tape, but still way slower than even the most primitive 5.25 inch floppy.
Pretty sure my Apple friends had similar experiences. I know when my school got a half dozen CBM PET 4032s, and one 2040(?) dual floppy for them all to share, the computer teacher told me the drive unit cost significantly more than the computers.
Tape, and mainly audio tape, was definitely a Thing here, until a couple years into the 80s, when you finally started seeing affordable (for a kid mowing lawns for money) drives like the old 1541.
Slower than a 1541? My memory of the tapes (admittedly limited) was that they were only marginally slower than the C64 5.25 drive.
Did I ever want to give someone a swift kick when I figured out why, years later.
Well, what was the reason?
The datasette transferred about 50 bytes per second without special custom load/save routines.
The 1541 transfers 300 bytes per second with the same caveat. That is 6x the speed. The 1541 was very slow compared with the other available disk drives of the era such as the Apple Disk II (15,000/s).
C64 with turbo is able to store >1MB per tape, and was faster than stock Floppy drive.
I didn’t say the 1541 was fast, just that it was cheap.
1541 wasnt cheaper than third party Floppy drives for the PC. I dug into old Byte magazine classifieds some time ago and found 360KB drives listed at hmm afair $200 at the time Commodore was selling their drives around $250. Commodore has making most of their money on the peripherals, dont forget they made most of the chips that went into the drive.
“tapes were decoded by specialised hardware” – this is wrong – most 80s home computers load software via standard cassette players. The C64 is an exception.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)