3

Most home computers of the 70s and early 80s were able to save and load data on audio cassettes. Typically, in order to do this they encoded the data using frequency shift keying (FSK), i.e. for a '1' bit they might write a certain number of cycles at a certain frequency, while for a '0' bit they may use a different frequency and a different number of cycles (typically arranged such that both forms took the same length of time to write).

An alternative to FSK is phase-shift keying (PSK), where instead of changing the frequency, the phase of the signal is altered. This has a number of theoretical advantages, including a tighter frequency spectrum for the same symbol rate. However, the circuitry required to use it is a little more complex (a phase-locked loop is practically required for this, which is a non-trivial circuit that I don't believe was readily available on standard ICs at the time). I know that at least one computer used it (the Soviet-built Vector-06C), but (1) were there others, and (2) did it actually achieve any useful benefits over the simpler and cheaper FSK that was more commonly used?

  • 1
    All home computer I can think of implemented audio tape in as a simple signal input to some I/O port, and doing PSK in software with a tape signal which wobbles in frequency, as audio tapes do, is really, really difficult. So home computers with PSK will be probably be hard to find. – dirkt Apr 27 '18 at 4:30
  • 1
    I think that 'PSK' should be called 'manchester encoding' in this case. And yes, both encoding and decoding on home computers were done in a pure programmatical way. – lvd Apr 27 '18 at 6:24
  • 1
    I had the feeling that home cassette players are prone to introducing phase errors; if I can find evidence of that then there's an answer. – Tommy Apr 27 '18 at 11:17
  • @lvd - Manchester Encoding I think is basically the name for PSK with a 1-bit digital signal, which is of course the easiest way of producing such an encoding, but even with a modest component budget it ought to be possible to produce either an analogue oscillator and PLL circuit, or a 2-bit DAC/ADC pair, which would at least theoretically achieve a higher bit rate for the same signal bandwidth. But did anyone do this? I don't read Russian, so interpreting the only schematic I've found for the Vector-06C is tricky, but that seems to only have 1-bit audio, so presumably is also using M.E. – Jules Apr 27 '18 at 12:04
  • 1
    Aside from Manchester encoding or other pulse-length encodings, phase-based encoding requires that nothing on the signal path warps time. In the absence of multi-path interference, no matter how much noise there may be on it, a signal that is sent exactly 15.132372ms after another will arrive at the receiver exactly 15132.372ms after the other. Tape, however, is another matter. A pulse that is recorded 15.13ms after another might be just as like to arrive at the play head 15.03ms or 15.23us after the other as 15.13ms. Assuming even 1% consistency is dodgy at best. – supercat Apr 27 '18 at 16:34
3

Both the Sinclair ZX Spectrum's and the Sinclair QL's microdrives (their microtape units, which are basically the same thing in both computers) use Differential Manchester Encoding to store data on the tape.

Obviously, these devices didn't actually use audio cassettes, but rather much smaller microdrive cartridges that contained (presumably) high-quality video tape. So, apologies if this only marginally answers your question.

Data is stored on alternate tracks. A 0 is encoded as a phase shift, a 1 as a non-shift. The microdrive encoding/decoding circuitry including the (assumed) PLL is realized in a custom ULA.

enter image description here

(Picture courtesy of QL-Forum)

  • This is a good point, and of course Manchester Encoding was common on all forms of magnetic tape storage that used custom hardware. I'm wondering if Tommy's right in the comments to the question that there's something specific to audio tape equipment that makes it less reliable or difficult to achieve in that context. – Jules Apr 27 '18 at 11:47
  • @Jules: If the carrier frequency is higher than the modulation rate, use of a PLL to decode phase-shift-keyed data will make it possible to correctly receive data even in the presence of considerable noise. If the signal is "clean" and has no extraneous edges, however, data can be decoded simply by measuring the timing between edges. Since the carrier frequency used for Manchester encoding is not higher than the data rate, it can be treated as a pulse-length encoding rather than a frequency modulation or phase modulation. – supercat Apr 30 '18 at 15:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.