In the previous post, I looked at some of the simple tape loading interfaces on machines like the ZX80 and Jupiter Ace.
This time, I look at some more complicated approaches, like this in the BBC Micro.
This is very different from the "resistor, capacitor and another resistor" designs in the ZX80.
But is it any better?
Acorn Electron
The BBC and the Electron both have quite a complicated tape interface circuit. This is the Electron version (which I think is identical to the BBC).
There is a lot going on, it takes up quite a lot of space on the Electron circuit board (most of the rest of the resistors being colour composite video generation).
It does not have the pair of 3.5mm jacks like the Sinclair machines, it as a 7 pin DIN socket, designed to use with a dedicated "computer cassette recorder", such as the Acorn ANF-03, although that was really designed for the BBC.
The Electron did have it's own, the ALF-03, but this one is broken. I must get around to fixing that one day.
It also has quite a good cassette format, with blocks and checksums and file names. You even get the block counts and file sizes listed (in hex) when you are searching for a file.
(Ah the good old days of filling a C90 with all your games.....)
I will start at the top with the tape output.
This is attenuated from the ULA output and then buffered by 1/4 of an LM324 quad op-amp.
It is fed to pins 1 and 4, in case you are driving a stereo recorder, although it only listens to pin 3, usually the left channel.
The spec says the level is 200mV peak to peak.
Next is the motor control, quite a useful feature, it uses a relay to be able to start and stop the motor, a feature that was designed for portable cassette recorders which had a switch on the microphone you could use to stop and start recording when you had something interesting to say.
That allows it to stop and start between parts of a program as it is loaded and processed, which can be quite handy.
Finally, comes the tape input.
This uses the other 3/4 of the LM324 to give three stages of processing.
The input is on the right hand side of the diagram, I have redrawn it the other way around.
There is a 10KΩ resistor to limit the current, and then a pair of diodes to clamp to the input to the +/- 5V range, to protect the rest of the circuitry. The op-amps need a -5V supply, which is there solely for them.
First there is some RC filtering, then an amplifier with a gain of about 1.25.
More filtering, and another amplifier with a gain of about 1.25.
Finally, an inverting amplifier with a gain of about -60.
The two oddly wired transistors act as diodes, which together will clamp the output voltage to +/- 600mV.
The service manual expects the resulting voltage to be between 500mV and 2V.
I tested this in Circuit Lab with a 1KHz sine wave input. (the circuit seemed very picky about the transistors-as-diodes, I had to use BC337 to get an output)
The input at the top in blue is floating around 2.5V DC, the outputs of stage 1 and 2 reduce this and center it on the 0V rail.
It also copes if the input is already floating around 0V.
The final output is clamped to +/- 600mV and decoupled by the 1µF capacitor for the ULA, which presumably have appropriate biasing to process the signal.
It seems to cope quite well with noise, this is filtered out between the first and second stages.
Oric
The Oric 1 and Oric Atmos follow a similar design, also with the 7 pin DIN and relay control, but a simplified amplifier circuit.
I think I am going to need to redraw that.
One difference here is the sound output from the Oric is connected to pins 4 and 5 (pin 4 is I suppose technically the output of the Oric's sound, and pin 5 is input to the Oric's amplifier to hear the tape, although they are wired together)
Tape output is yet another different way to arrange two resistors and a capacitor.
The tape input uses am LM358 dual op-amp.
The Oric does not have the -5V rail that the Electron doe, so the LM358 is run from 0V and 5V, single rail. The two op-amps are biased around a 1/2 VCC virtual ground.
The input is filtered (but there is no biasing or over-voltage protection). It is inverted by the first amplifier with unity gain. That is followed by a non-inverting stage with a gain of 101.
The output is then inverted again by the transistor.
The 1KΩ resistor and 2.2nF capacitor seem to be a late addition, some Oric's do not have them, and others have the resistor wired on the back
And the capacitor wired on the front of the board.
One even has both on the back, with the 1K wired to ground rather than 5V?
I am not sure that is going to work.
I also redrew that in Circuit Lab so I could show the stages on the chart.
You can see the second stage boosts the signal to clipping to get a good signal.
It also seems to cope with different offsets but the output gets a bit rough if there is some noise on the input.
Other Systems
Honourable mentions to the companies that avoided having to deal with the different input sources by using their own cassette recorders, either built in (for Amstrad and Amstrad built Sinclair machines) or external serial (Commodore and Atari).
Those systems just need to deal with boosting the signal from the tape head, rather than any unexpected offsets or automatic gain controls, or noise reduction systems, bass boost etc.
Maybe I will cover those separately if anyone is interested.
Adverts
You can all sort of kits, test gear and upgrades and recreations of the ZX80, ZX81, Jupiter ACE and Commodore PET in my Tindie store.
Patreon
If you enjoy posts like these, you can support me via Patreon, and get access to advance previews of blog posts (Part 3 is already on there), and exclusive posts.
You also get progress updates on new projects and other behind the scenes updates, as well as access to my Patreon only Discord server for even more regular updates, and to discuss your own projects.
Patreon tells me you will all be rushing to join if I give you 50% off the first month, so I have: