39 thoughts on “Puzzle: 1200 Baud Archeology”

  1. As i have done some side-channel power attacks to crypto controllers, could it be the power consumption of a slow running CPU ?
    First you hear the Reset “piep”, then followed by the inits (silence), then the copy from flash to ram (linear noise) , and then the computation starts.
    The sound is very simelar to this.

  2. Is that the sound of data stored on a cassette tape using the encoding and decoding routine s on the Apple ][?

  3. This reminds me of an old underground CD that I had, you had to take the final track and play it through an acoustic coupler to a PCMCIA modem and then you could pipe the output to Minicom. It wound up being an ANSI version of the album credits at 9600 baud. In most cases simply playing the sound through the air into a sound card input was enough to get a tty from it although I can not recall the configuration for doing that.

  4. This is an MP3, which would interleave a binaural beat recording with a frequency difference of 10hz for instance and not in separated channels that would broadcast as an MP2 properly for it’s purposes.


  5. Hi, sorry for my next posting.
    After thinking over night, we have to conclude:
    1200 Baud = ancient history
    as we know mist, it has to be maybe something like:
    driven by
    http://en.wikipedia.org/wiki/Bell_202 (or simelar)
    produced by
    it was not compatible to this
    or this
    as we know i-woz too 🙂 we have to belive everything.
    As we know too, that a telephone line has a frequency limit of 3.5kz (sometimes 4khz) it could be a modem, but as it was ancient, a VERY VERY old one, without filters
    the diagramm i postet, shows a “typical modem” in ancient history.
    the frequency’s above the 800hz spectrum (http://picasaweb.google.at/hamtitampti/Pagetable/photo#5218137326898124066) seems to be the datacarrier middle frequency
    the rest is “noise” and comming from freaky hardware
    and this is hayes offset of the first generation.
    The theory of noise is also “realistic” as if there would be more offset carriers the datarate would be defintifly higer as 1200 baud
    also the 2 Z-Diodes (1N4733) in the analog circut of my posted Novation Modem make this theory very likely.

    after looking to the spectrum of the comodore datasette i would say: this is definitve “no”

    But mybe in ancient history, they used the modem voice for storage on an audio tape.
    Decoding this ?
    Nearly impossible- the modulation was not even defined – everyone cooked his own protocoll.
    An all the necessary equipment is already boxed inside glass in museums :-))
    pictures @ http://picasaweb.google.at/hamtitampti/Pagetable


  6. my goodness. you folks should step away from google/wikipedia for a second and look at the damn signal.

  7. Hey everyone,

    ok here is a bit more info from what I found:

    This file looks like it is encoded in a FSK style modulation.
    However running the file through various decoder didn’t gave me more ideas on what it is.
    After running the audio analysis tool SpectraFoo on the file, I found that we have (after the steady tone) two fundamentals at roughly 990 and 1980 Hz. If we make the assumption that the tape player (or recorder) speed was not precise and round those numbers to 1 kHz and 2 kHz, we can find that this is a modulation used for Apple ][ cassettes.

    Quoting this website: http://oldcomputers.net/byteappleII.html

    “The Apple-II cassette interface is simple, fast, and I think most reliable. The data transfer rate averages over 180 bytes per second, and the recording scheme is compatible with the interface used with the Apple-I. This tape recording method can be used with any inexpensive recorder, but as with any such use of audio media only high quality tapes should be used in order to avoid problems due to dropouts from poor oxide coatings on the tapes. In the Apple audio cassette interface, timing is performed by software which is referenced to the system clock. A zero bit is defined as a full cycle of a 2000 Hz signal (500 us long), while a one bit is defined as a full cycle of a 1000 Hz signal (1 ms long). While reading data, full cycles are sampled, never half cycles, a method which tends to provide immunity to DC offset and other forms of distortion. All the cassette management routines are available to user programs as subroutine calls from assembly language directly, or through hooks in the BASIC interpreter.”

    What I did after, was to import the audio into a file using the CiderPress tool (which is tool for Apple ][ disk image management). What I got was a binary stream, which I have been able to extract some text.
    I found those strings: “TOO MANY PARENS” and “BAD BRANCH”.
    Google headed me to the Integer BASIC source (here: http://www.scribd.com/doc/2429807/Integer-BASIC-Disassembly), and this what makes me think that it is an Apple ][ Integer BASIC cassette.

    It would have been possible to write a simple program to interpret the wavecycles as binary 0 and 1 values and convert the stream to a file, but searching this way was faster.


  8. @Camille:

    Very well done – so far. 😉 But
    * Do you get the same MD5? Do you get a filesize that makes sense? Can you make sure all bits are correct?
    * It may have some of the same strings in it, but is is not the code that you link to.


  9. @hamtitampti:

    Congratulations, the SHA-1 is correct. Now what is the meaning of the data you decoded? 🙂

    @everyone else: You can prove that you have a working decoder by using different hash/CRC algorithms (“openssl” can do md2, md4, md5, mdc2, rmd160, sha, sha1). And the second part of the race is still open: What exactly is the decoded data?


  10. I’m joining a little late here, but I decoded the data. My MD5 signature matches.

    My RMD160 digest is:

    I have no idea what the data means, yet.

  11. @moeffju:

    The Apple I BASIC disassembly you posted doesn’t assemble to the decoded data. However, the character frequencies for the decoded data and the BASIC disassembly are very similar, so I believe that the decoded data is probably Apple I or II bytecode.

  12. @Tim Maxwell:

    I thought about posting my solution and a whole lot of background on this file today, but as I noticed that some people are still working on deciphering this themselves, I’ll only post some hints now, to help others:

    Yes, this is the audio recording of a cassette tape that was used to store computer programs in the 1970s. There is no need to transform the data into the frequency domain, as the computers back then only measured the width of pulses to decode the data. Just look at the waveform in Audacity, and you’ll see that it should take you maybe an hour to write a decoder in C.

    Someone mentioned that the left and right tracks in the MP3 differ a little – just take the left one, it’s of higher quality.

  13. You’re retro geeks? Haha! Not Apple I, but Sinclair ZX Spectrum headerless data block recorded from audio tape!!! Just convert it via MakeTZX utility to some emulator format (TAP or TZX), make a simple headrless loading asm routine on Speccy and load it into an emulator to some address which does make sense. The block seems to be machine code (not Basic) via listening and approximately 5-6kB long.

  14. Pingback: relaxation guide

Leave a Comment