The Acorn Teletext Adapter


John Williams kindly brought with him an Acorn Teletext Adapter that he had around.

It's a big bugger!

The Acorn Teletext Adapter; JPEG 12K

Housed in one of the infamous 'cheese slice' boxes, this thing is half the width of a BBC Micro, and the same height/depth!
Indeed, it is the same casing used for the various co-processors (including the rare ARM system, how I'd like to get one of those!).


The guts

(you can read a more complete description here)

The adapter connects to the 1MHz bus of the BBC microcomputer and BBC Master devices (but not the Master Compact as it has no 1MHz bus).
Using clever logic and paging, it is possible to address around 16K via the 1MHz bus, my EPROM programmer does just this to allow 32K EPROMs to be programmed in one pass. This, sadly, suggests to me that the teletext adapter may directly address the memory used to store teletext pages; as surely if the 1MHz bus was only used as a way to implement an I²C bus, they could have used the user port?

Internally, much of the board appears to be populated with logic chips. The two primary ICs are the SAA 5030 (VIP) and the SAA 5020 (TIC).
There is a bit of a problem figuring out what IC does what (read the How It Works for details), suffice to say that these ICs are concerned with extracting the teletext data from the video input, and the timing of the decoder.

Taking the point of view of the signal, the aerial socket is connected to a tuner module. Like in those old VCRs, the tuning lock is provided externally via twiddly-bits. In this case, four BIG red twiddlies at the back of the adapter. Strangely, the left-most twiddly-bit is for "C4/S4C". This order would make sense if you have the unit facing away from you, but given the size of these twiddlies, there is no need for that. Just reach behind (remembering they are then backwards) and twiddle the twiddlies! (and now cue Frankie Howerd to say something...)

This IF signal is then decoded and converted into a composite video signal. Now here is a box that could easily have found space for a video signal amplifier and an audio amplifier. It could even have offered 'normal' sockets at the back instead of the 5-pin DIN used on the Ground Control receivers. But, alas, they didn't.

The composite video is fed into VIP (one of the main ICs). This analyses the video signal and extracts the 'lines' used for teletext. One row of video provides 45 bytes, which equals five bytes for addressing and forty bytes being a row of teletext data. Thus, it would appear, that it takes around 12 frames (quarter of a second) to transmit one page of teletext, however this is reduced slightly as blank lines are not transmitted.

The teletext data, when located, is processed and then written into memory. The BBC micro can read this memory and show the pages, or otherwise process the information retrieved.


Together, these parts effectively form half of a first generation teletext receiver. The only things we are missing are the SAA 5050 TROM (there is one inside the BBC micro, used for MODE 7) and the SAA 5040 TAC - and I strongly suspect, via the 1MHz bus, the BBC micro does the functions that the TAC provides.
The first generation design, originally implemented by Mullard, is rather restricted in what it can offer the end user - certainly the SAA 5050 provides a lower-resolution text output, and it does not understand 'black' as a colour (which, strictly speaking, is correct, but it has been supported by later hardware since 1984 so it isn't unexpected to find it used twenty years on!). Perhaps the most severe limitation is the chip count. Okay, four chips might not seem so much but remember you also need the RAM addressing logic and the design is wasteful of RAM as it holds a page in a rather inefficient manner.
The later second generation design (used in the Ground Control receiver) makes better use of memory, as well as talking to it directly - thus removing the interface logic. Also, the VIP2 deals specifically with the video side of things, and the SAA5240/SAA5243 deals specifically with the entire teletext side of things, meaning the chip count is now three (including the memory chip).
Later versions do exist, I should point out. The SAA 5246 combines the teletext receiver and the VIP on the one IC; and I've no doubt designs exist for an entire teletext solution on one IC (which includes ~8K of memory inside it as well).


It is perhaps rather ironic that the first generation receiver design was made in 1976, and revised to be a second generation receiver (the simpler to use SAA 5240) in late '83 (my document on using the SAA 5240 is dated 1984/01/01 - which is an unlikely date unless the author, J. R. Kinghorn, didn't fancy celebrating the new year!). The power supply for the adapter is dated 1985/09/08, suggesting that the adapter was manufactured after the introduction of the second generation receiver.
I say this, because replacing the VIP with the VIP2, and replacing much of everything else with the EuroCCT, may have made a much more compact, and more resilient, system. Tant pis.


Interfacing trials and tribble trouble

I downloaded the ATS 3 ROM (I think it came from "The BBC Lives!" but I was zipping around Google too quickly to actually notice) and burned it onto a 27256 EPROM that I had spare. This, it seemed, was a mistake. The BBC resolutely refused to accept that this EPROM even existed, never mind contained a program.
So next I tried the AKA10 user/analogue port on the A5000 and !65Host to control it. Amazingly this combination very nearly worked. However the 1MHz bus on the AKA10 is actually clocked at 2MHz as that is the speed of the podule bus - and I guess the guys at Acorn never actually bothered trying a flip-flop on the clock lines and a little bit of extra logic to run the 1MHz bus at 1MHz! After all, the BBC micro's processor runs at 2MHz so anything that actually wanted to run at 2MHz could plug itself into the Tube. Anyway, I figure the timings, if provided by the 1MHz bus, are running too fast, the device will simply never work in this configuration. Or maybe I'm missing an interrupt link? Who knows?

So it is back to the BBC micro. Now this is a simple logic fault. The EPROM was blown and verified twice. The code is present. Now you hear stories of BBC micros hooked to robots that juggle radioactive rods, and BBC micros that get stomped on by runaway AT-ATs, and still survive to burrr-bip another day, so getting my little Beeb to recognise a ROM was not going to be difficult.
Because I said so.
Using my multimeter on continuity beep, I discovered the top two pins on the right (that would be pins 27 and 28) were connected to +5V. This was not so in the case of the OS ROM. So I carefully prised the EPROM out of its socket and nudged the second-from-top leg (#27) so that it would not connect when the EPROM was re-socketed.
And it still didn't work. I pressed Ctrl-Break and there it was. ATS with No unit.
I have to switch on the adapter, then the Beeb, then press Ctrl-Break to get it to notice the ROM. I think the Ctrl-Break weirdness is because I haven't bothered to hold that ROM leg low, so it 'floats' at the first start-up when the OS scans the ROMs. This does, however, suggest to me that I could actually program two different teletext images into this EPROM, and use the state of this unconnected pin to swap between them!


Setting it up

Connecting the hardware is possibly trickier than it should have been since Acorn didn't bother to fit a 'keyed' plug on the 1MHz bus cable. There are two ways up that this thing can go. One way shoves the cable into the underside of the Beeb and the other way looks tidy. It should be obvious to you which way is the correct way...
If it still isn't obvious, notice that the arrows pointing to the sockets are actually lined up with the right side of the socket. This marks 'pin 1', and the red stripe on the ribbon cable should be on the side with the arrow.
It's not difficult really, but a keyed plug would have made it truly dummy-proof.

Setting it up was pretty simple on the software side. With everything connected and switched on, I typed *TUNE and the following appeared:

Tuning; JPEG 7K

After a lot of fiddling with the tuning adjustments, I was happy to see...

Tuning; JPEG 8K

You have to get the tuning pretty spot-on for it to work. Luckily, the tuning bar and the rolling header give instant feedback - although as you come close to an accurate tune, the cyan bar acts like it is keeping beat to some sort of insane rock music... (here, I would nominate the group "Die Ärzte", but I won't as I figure most of my readers won't have a clue who I'm referring to)


Using the adapter

Switch on the adapter, then the Beeb. You cannot do this the other way around as the Beeb will freeze itself. It doesn't pay to do funny things with the 1MHz bus!
At the command line, enter *TELETEXT to go to teletext mode. Note that ATS 3 is also a language, so if it is installed to the right of the BASIC ROM, it'll be entered at start-up.

Example; JPEG 41K

I must take a moment here to discuss the contents of this example screen. I think the guy is being ripped off here. We all know Vegas is loaded. They could stand to give this man a much better result than simply doubling his money. Perhaps the fact that he is worth a quarter less than he thought is an omen? Either way, I wish this guy luck. He's mad, but hey, good luck anyway.

[added a week later: Damn! The guy only went and won, didn't he? Actually, things were a bit simpler for him as he only needed to pick a colour (red or black) and not an actual number, but I still reckon they should have given him a better win than just double. Still, he can't complain, he bet everything he had on a colour and walked away with nearly a quarter of a million dollars. Like I said, damn! ]


Example; JPEG 29K

This shows up two problems that you will encounter in modern teletext. There are actually three, but one is harder to spot. So here we go...
  1. The SAA 5050's character matrix has less definition than later teletext devices, with only a 5x9 matrix.
  2. The SAA 5050 does not support different character sets, hence the '¼' in the last line of the news ticker.
  3. Very visibly - the SAA 5050 does not support the 'black' attribute. For all intents and purposes, 'black' as a colour is a Level 2 feature, however as far as I am aware, the SAA 5050 is the only Level 1 hardware that doesn't support it; so it is not uncommon to see pages using black as a colour. Sadly, here, this doesn't work.

Now it is important to understand that this is not a fault of the adapter itself. The SAA 5050 is built into the BBC micro, it provides the MODE 7. Unfortunately because of its age, when looking at the teletext system as a whole, these things need to be taken into consideration.
Things will be rosier for many of you reading this. BBC and the like won't be using international option characters, and I don't expect BBC will be making much use of 'black' as a colour, just in case it could cause a problem...
Having said all of this, we must give due credit for things working pretty well on a 21 year old computer!

Example; JPEG 32K

This leads us to a problem that could be a software/adapter problem. As you can see from the above, the FastText links are available, so the software is reading the ghost rows. When I try *TIME or *DATE, the response "No TSDP" is returned. I know CNN's TSDP is broken, but I was unable to get a result from MTV (which is not broken), arte, or RTL...

I have determined the key presses by playing with the software. If they are wrong, or some are missing, email me...

          F0   Select page 100
          F1   'Red' link
          F2   'Green' link
          F3   'Yellow' link
          F4   'Cyan' link
          F5   BBC telesoftware (no longer useful)
          F6   Hold
          F7   Hold (seems to duplicate F6!?)
          F8   For (long removed) alarm facilities?

  Shift + F0   Tune
  Shift + F1   Select 'BBC1' channel
  Shift + F2   Select 'BBC2' channel
  Shift + F3   Select 'ITV' channel
  Shift + F4   Select 'C4/S4C' channel
  Shift + F5   IBM telesoftware (no longer useful)
  Shift + F6   Load page
  Shift + F7   Save page
  Shift + F8   (no function?)
  Shift + F9   (no function?)

      Return   Statistics

        Copy   Insert/remove page from buffer

 numbers 0-9   Select a page
      Delete   Delete the last number entered
There appears to be no 'Reveal', so try F6 and F7 on a page that needs something to be revealed.

The status display looks something like this:

Example; JPEG 18K


Operational perceptions

In use, this device appears to be pretty slick. There is an oddity in that your requested page rolls by and nothing else happens, then the page turns up a few moments later. Given that it is a 2MHz BBC micro and not a 40MHz RiscPC, I think some concessions are in order here!
What I have noticed is a number of pages appearing instantly. An example is the various linked pages and the next page. I suspect this hardware is capable of fetching multiple pages at any one time (the SAA 524x can fetch four independently but for some reason they only installed 2K RAM in the Ground Control unit, so we cannot make use of these facilities!). The software seems pretty intelligent in knowing what to fetch, and it really does make using live teletext that much better for it.


In conclusion

That, people, is the Acorn teletext adapter. A piece of hardware coming on to twenty years old (on a computer even older) and still in good working condition.

Sadly, I do not expect it will ever be supported in the context of my !Teletext software, however if anybody has some code or circuit diagrams, I'll see what I can do. It may be possible to 'fake' the 1MHz bus somehow, maybe two buffers on the printer port? Who knows... One thing is for sure, it'll need an entirely different driver! :-)


Now, read the nerdy 'how it works' stuff
or return to Teletext software index
Copyright © 2004 Richard Murray