TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Archiving C64 Tapes Correctly

99 pointsby kencauseyover 6 years ago

8 comments

Diederichover 6 years ago
In the early 1980s, I had a <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;TRS-80_Color_Computer" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;TRS-80_Color_Computer</a> For storage, unlike the C64, the CoCo used normal, consumer level cassette machines, with their associated cassettes.<p>I was quite busy with that system, and ended up building a library of several dozen tapes, containing off the shelf software, but mostly software and data that I&#x27;d created and saved.<p>The problem I had was tape reliability. At the time, I estimated that each tape had about a 2-3% chance of becoming corrupt <i>per day</i>. Having more time than sense, I ended up going forward with an intensive, structured tape backup&#x2F;duplication scheme, not unlike tape backup rotations I&#x27;d end up administering professionally some years later.<p>With the gear that I had, a tape duplication took 30-40 minutes, so this was a time consuming process, but it worked.<p>Why did my tapes go bad so frequently? In retrospect, there were two factors:<p>1. There was a high voltage step down transformer on a power pole about 20 feet from my room. I remember as a child that this transformer had problems at least a couple of times. In one case, it spectacularly sprayed sparks down on our back yard, and the electric company came out and messed with it multiple times besides.<p>2. In the other direction, our neighbor had a very tall CB antenna. Probably 30 feet or more, and the base of this thing was only 60 or so feet from my room. We know that he transmitted on illegal frequencies. (We sometimes heard <i>his voice</i> on our TV, I&#x27;m totally not kidding.) It would not surprise me if he was using illegal power levels too.<p>Good times.
评论 #18668508 未加载
评论 #18667461 未加载
评论 #18668492 未加载
ungzdover 6 years ago
Can anyone recommend decent method of decoding such signal? Here is description[1], it uses variant of frequency-shift keying (continuous phase FSK?).<p>According to Wikipedia[2], which cites service manual[3], actual hardware just clips this signal, and (probably) software on C64 just detects zero crossing, using CPU clock for sampling. Are there better approaches, more tolerant to noise and inconsistent tape speed? Maybe using matched filters? Almost everything that I found was about radio which does not have problem of &quot;changing speed of time&quot;: you have to correct drifting phase, but not frequency. I know only basics of DSP.<p>I&#x27;m interested primarily in ZX Spectrum, not Commodore 64, but it has almost the same modulation&#x2F;encoding. It uses regular tape recorder, input port with two levels (above zero and below zero), no dedicated clock for sampling, and software decoding. Routine in ROM finds zero crossings and measures time of pulses. I think it&#x27;s possible to do better with modern computers, and achieve better noise and tape speed tolerance.<p>[1] <a href="http:&#x2F;&#x2F;wav-prg.sourceforge.net&#x2F;tape.html" rel="nofollow">http:&#x2F;&#x2F;wav-prg.sourceforge.net&#x2F;tape.html</a><p>[2] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Commodore_Datasette#Physical_coding" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Commodore_Datasette#Physical_c...</a><p>[3] ftp:&#x2F;&#x2F;www.zimmers.net&#x2F;pub&#x2F;cbm&#x2F;schematics&#x2F;datassette&#x2F;C2N-1530-1531_Service_Manual_Preliminary_314002-002_(1984_Oct).pdf
评论 #18664656 未加载
评论 #18668834 未加载
ekphrasisover 6 years ago
A key method I&#x27;ve learned through various sources for ensuring good conversion from WAV to TAP is to invert the whole waveform in Audacity through Effects -&gt; Invert before the actual conversion process.<p>I can also recommend the command line tool UberCassette for easy conversion: <a href="http:&#x2F;&#x2F;www.retroreview.com&#x2F;iang&#x2F;UberCassette&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.retroreview.com&#x2F;iang&#x2F;UberCassette&#x2F;</a>
评论 #18665047 未加载
bloopernovaover 6 years ago
If one was able to collect, say, a couple dozen tapes of the same game or magazine supplement, and the tapes all had different bits lost, would it be possible to recreate the tape with the WAV representations?<p>May be a way to find a bunch of different tapes on ebay, and recreate old classics.<p>EDIT: this is actually performed later in the article, whoops, I should have read the whole thing before commenting.
评论 #18664346 未加载
评论 #18664190 未加载
tyingqover 6 years ago
I wonder if they ever tried duplicating a bad tape on a higher end audio double cassete deck, to a brand new tape.<p>It sounds like most of the devices used in the article would have low end quality motors, heads, etc. Such that a (still glitchy) copy on a new tape might read better.<p>I suppose it&#x27;s possible the important bits of a high end cassete player aren&#x27;t any better. Audiophile equipment is sometimes funny that way.<p>Edit: Found the full service manual for the Commodore 1530&#x2F;1531 Datasette: ftp:&#x2F;&#x2F;www.zimmers.net&#x2F;pub&#x2F;cbm&#x2F;schematics&#x2F;datassette&#x2F;C2N-1530-1531_Service_Manual_Preliminary_314002-002_(1984_Oct).pdf (hrm, guess HN doesn&#x27;t linkify ftp:&#x2F;&#x2F; urls?)
评论 #18664348 未加载
评论 #18664316 未加载
评论 #18664031 未加载
rrauenzaover 6 years ago
As a kid I sometimes played our PET tapes through a tape recorder to listen to the data.<p>At the time I wondered if data could be written to the tape to play a particular song. Anyone else wonder this and actually try it?
评论 #18666327 未加载
weinzierlover 6 years ago
I don‘t have tapes but more than 100 old floppies. I still have the original 1541 II the disks were written with. I‘m willing to throw some money at the task but can‘t spend more than a day or two for this. Any tips for a realistic plan to save my floppies?
评论 #18664378 未加载
评论 #18664217 未加载
评论 #18664175 未加载
评论 #18664274 未加载
评论 #18664167 未加载
squarefootover 6 years ago
Don&#x27;t throw away the old unreadable tapes, I&#x27;m sure they can be read other ways. Long ago I built an interface to the 1531 to allow tape duplication via my external Aiwa tape deck. I tapped the signal somewhere near the output of the device, sent it through some TTL gates to make its shape more squarish, then it went through a voltage divider into the deck input. Results were astonishing: I didn&#x27;t have any tool at hand to condition the signal, but merely making it more loud and clean did wonders; no more hours spent adjusting the head azimuth. To be clear, a cassette which required adjustment could turn into a perfectly readable copy if recorded <i>without</i> adjusting the azimuth. In other words the problem wasn&#x27;t the azimuth but low signal level (which is <i>also</i> a product of bad head alignment).<p>Now back to those old cassettes. If saving them from one device to another or sampling and filtering them doesn&#x27;t work, it may just be the poor 1531 that cannot cope with a signal too much dirty because it lacks the brains to recognize it, but our eyes could indeed spot the problem. No kidding, In the old days I spent hours for every single music track cleaning them from vinyl scratches by zooming the waveform in Cool Edit Pro until I could see every single sample. Scratches became clearly visible for having a very different shape, often a few samples at a level not compatible with normal music. With time I learnt to spot them even more easily, and after finding them and verifying that they were actual scratches, I spent even hours for a single track cleaning them by reshaping the waveform, by hand, one sample at a time. The reason behind this was Cool Edit&#x27;s vinyl cleaning algorithm which at the time sounded like garbage.<p>Cleaning digital data should be much easier: one can load the waveform into an editor then zoom it until the signal becomes visible. It doesn&#x27;t have to be readable by a 35 years old 1531, but merely recognizable by a human. Then either correct it manually (slow!), or write some macros to put x 1 or 0 samples where the mouse is according to a keypress. Then one can scroll the wave to a point where it starts an unknown bit; we know both data speed and carriers speed, therefore we know how many samples a bit is made of, this way when an unknown bit is met we know what to search for and based on this interpretation press a key which turns that series of unreadable samples into a nice 0 or 1 of the right duration and frequency. Still slow, but doable.<p>Analyzing the waveform at single sample level would also make possible to correct wow and flutter: again, we know the carriers frequencies and tape speed, so we know for sure how much long a bit must be and apply corrections where necessary.<p>Also, it might be interesting to sample all tracks at the same time into a multitrack file just like the cassette was a single side media. The reason being if the tape got damaged at a point, we can analyze the other track as well (yes, it&#x27;s reversed but we&#x27;re aware) to see if recovering one of them can help to save the other one too just by comparing a probably very similar damage done to two signals, one of which hopefully is easier to recover.