Ground Control / Octopus receiver
The original boxes were supplied with a choice of printer lead, where some clever software
'faked' the IIC protocol down a special printer lead, or a podule socket in which the RISC OS
IIC was used.
It is believed that the printer port system only works with the 'discrete' printer ports as supplied on the A3xx, A4x0, and the A3000.
The Ground Control teletext receiver is assumed to have come in three variants. This assumption
is based upon my having two. A dead model UTA-1 and a working model UTA-3.
It is not known what sort of units were being sold by Octopus Systems. As he (Paul Skirrow) bought the remaining Ground Control stock, I think it is safe to assume the UTA-3 or something close.
The earliest, the UTA-1, is based around the Philips Euro CCT design, featuring the SAA 5240 Euro CCT, the SAA 5231 VIP, the SAB 3035 CITAC, and a selection of other chips for television picture extraction.
The later, the UTA-3, contains the slightly later SAA 5243 Euro CCT. Additionally, the CITAC is missing. The UHF tuner is different, this one accepting IIC signals itself, so we might assume the CITAC (or a compatible clone) is built into the tuner itself.
The memory capability of the unit appears to be 2Kb. This is wired as A0-A9 for 1Kb addressing, and A12 for bank selecting. This allows the Euro TTX to operate in "ghost row" mode. Ironically, it appears that the Euro TTX might not be operating in full "ghost row" mode, so it'd only fetch the TSDP and the linked pages information (rows 30 and 27). I plan to look into making more use of "ghost row" for rudimentary Level 2 support.
The incoming UHF signal is tuned by the CITAC (or whatever does the same job inside the later tuner). This demodulated signal is then processed minimally to split off the video and the audio. These signals are provided for you at the AUX socket. Possibly useful if you have a digitiser. A gimmick for a website could be "pick a channel and see what's on". From here, the video is presented to the VIP - the Video Input Processor. This detects if the signal is 'worthy', and if it is, it pulls out the teletext data-stream and feeds it to the Euro CCT. The Euro CCT examines the data-stream for our desired page, and when it finds it, it is copied to memory. From here, we can retrieve the information from memory via the IIC bus.
If you are interesting in the timings of the device: the VIP data extraction (and the teletext
bit rate) is 6.9375MHz. The VIP also provides timing for the rest of the receiver systems, which
operate at 6MHz (teletext frame generation) or 1MHz (most stuff).
This is dealt with in more detail in the description of the older Acorn receiver.
It is perhaps particularly ironic that the Euro CCT has a number of additional features that
could have been provided for us. The first of these is that the Euro CCT includes a full
character set generator and masking options. These might have been used to 'overlay' teletext
frames on the output video signal, much as the same is possible with any TV set. The Euro CCT
takes care of the re-sychronisation for us. We simply need to convert RGB into composite video,
and merge it as directed by the Euro CCT. It would support "newsflash", subtitles, etc.
It is theoretically possible to build a 'cheap' plug-in keypad that generates the necessary IIC
commands to control the text output in this way. Maybe originally using a 6502 or a Z80, or
these days one of the PIC devices... you would then have a simple yet effective way to add
teletext to any device that can accept a composite video input (even if the device has no tuner
of it's own, you can turn it into a teletext TV!) and be able to control it via a plug-in keypad
that could be powered from the receiver, and operate without any computer attached and
simply swap leads and it will function - as it does now - as a data acquisition device for a
Perhaps of much greater use to the everyday user would have been the inclusion of 8Kb of memory. The Euro CCT can actually search for FOUR pages, completely independently of each other. In other words, each time the magazine wraps around, it could fetch four pages, in any order. These would take 1Kb per page, plus an additional 1Kb for the "ghost row" data.
SAA5243P/R £33.97 (AUV06) SAA5231/V7 £ 4.59 (AUV02) SAB3036/C1 £13.71 (AUW02) TBA120U/V5 £ 1.43 (AUX19) TDA8341/N6 £ 3.18 (AUZ18)
The SAA 5240 is a second-generation LSI teletext decoder. It takes over several of the functions
provided by individual integrated circuits in the first-generation decoders, namely the SAA5040
TAC (this retrieves the teletext data from the video data-stream) and the SAA5050 TROM character
generator that everybody who's ever used a BBC micro will be familiar with.
All of these functions are provided by the SAA 5240 Euro CCT, which greatly reduces the component count and makes for more reliable and compact hardware. In addition, the dot-mapping for the generated characters is on a 12x10 matrix instead of the original 5x9. However as the Ground Control receiver does not make any use of this facility, we won't discuss it further.
The video data-stream is split (by the VIP2) into data and clock, which is input into the Euro
CCT. The data acquisition function searches for the requested page using an extremely flexible
system (you can tell it to look for... from ANY page, to any page in a given magazine such as
p1xx, right down to a specific sub-frame only, like p110.7).
The Euro CCT provides four parallel systems to search for pages, but this is not utilised by the Ground Control hardware - though provision has been made for it as a modification.
Once the page has been fetched, it is stored in memory. This facility is provided either for display by the Euro CCT itself, or for later transmission to a controlling computer via the IIC bus.
The Euro CCT responds as IIC device 17 (or #34 to write and #35 to read).
The first step is to convert your UHF channel (21-69) to a frequency. We know that channel UHF21 is 471.250MHz, and that the channels are 8MHz apart, so we can use the formula:
( ( ( UHF_channel - 21 ) * 8000 ) + 471250 )
Note that channel tunings are calculated in kilohertz.
To convert this into something we can send to the tuner...
( ( ( kHz_value + 38900 ) * 16 ) / 1000 )
To IIC device #192 (or #96 in write mode), we send three bytes. The first is a zero byte, presumably to select register zero. The second is the high byte (i.e. value >> 8). The third is the low byte (value AND 255).
Previously this document said that this information was theoretical (and untested), worked out using frequency charts and examining data sent to the tuner module.
Since then, WinTTX has been written, and it uses the following code to select which channel you are wanting:
Those good at maths and/or optimisations may spot a short-cut. If you wish to gain the tuning value for a fixed UHF channel, the following will work:
( ( UHF_channel << 7 ) + 5474 )
As you can see, the UHF channel is shifted into the high byte, so it is possible to insert sub-channel adjustments into the low byte if desired. I think each increment represents 31.25kHz from the selected UHF frequency.
Endnote: Disassembling the code within the Colin's teletext module shows that the above short-cut is used, with specific additional calculations for the fine tuning value. The primary difference, however, is that the formula used is:
( ( UHF_channel << 7 ) + 5478 )
The two pins marked '*' can carry either the (not)Write Enable, or A11. Which is which is
selected by cutting a track and soldering across a pad. By default, it appears that (not)Write
Enable is carried on these pins.
The pin marked '#' is A10 from the point of view of the memory device, and A12 from the point of view of the Euro CCT. It is marked A12 here to reinforce the fact that it is wired for operation in "ghost row" mode and not for a second frame fetch.
The upper four pins are 'unused' in current designs, so it appears to be fairly simple to add more memory to the receiver.
This is as viewed from above.