[BBC-Micro] Ground Control UTA-1 Teletext Receiver: The Gory Details

Philip Pemberton philpem at philpem.me.uk
Thu Feb 11 18:26:45 GMT 2010

Hey guys,

I've got the UTA-1 grabbing Teletext pages off-the-air!

Basically, it's using a ByVac BV4221 USB-to-I2C adapter to talk to the 
CITAC (tuner) and EuroCCT (teletext) chips in the UTA, and is 
successfully grabbing pages off the air and printing them out on a Linux 
terminal. Any non-printable characters (e.g. control codes) get replaced 
with spaces at the moment, but it is, as you can see, working pretty well:

philpem at cheetah:~/dev/iic$ ./test
channel 47, tunerval 14368
tuner status: 8c LOCKED
Requested page 100...
Waiting for page... Page found!
eurocct ram req done
            Teletext   100 Feb11 18:19:58

       `pp0`p0`0  pp ppp pp p `0ppp
       "k7! s j5 jw{5# #jw{5+t>!# #
        j5  ssjupjws1   jws1~'o4
        "! "#!"## ##  #  ## # "! #
              ITV1 YORKSHIRE        4/8ML

                   00 7#################5
  Destinations    210 5 BALEARICS   205 5
  Special Offers  220 5 Discover that   5
  City Breaks     230 5 the Balearics   5
  Regional Depts  239 5 have something  5
  UK Breaks       240 5 for everyone;   5
  Cruise Holidays 270 5 quiet bays and  5
  Hol Companies   280 5 lively,vibrant  5
  ``````````````````` 5 party resorts.  5
  TV Channels     397 5                 5
  Telephony       140 5     z `>/<d     5
  Bookmakers      524 5    x  'xo7di    5
  NHS Choices  C4 700 5    l|< %&"      5
  ``````````````````` 5    ,(0$ j ((,`  5
  Subtitles       888 5        p~t      5
  Digital Switch  283 -,,,,,,,,,,,,,,,,,%

Yes, it's ITV1 Teletext (didn't they get stripped of their Operator's 
Licence?) so no accounting for taste, but it works :)

I'd love to set the Page Request Block to "don't care" and see what 
happens, but I bet it won't be anything good -- after all, this thing 
only has a few K of SRAM (enough for one Teletext page and the Ghost Rows).

It looks like it's possible to make it grab "any" page, though I can't 
tell if the completion of a page request terminates that request -- that 
is, once it has a page, does it wait for you to send another page 
request before it goes looking again? Need to RTFM a bit more for this. 
Also not sure how to handle saving of pages that change. Maybe hash all 
but Row 0 (page header) and save the page if it changes? Hmm.

The code is written in C++ and will probably be going up on my Mercurial 
code-dump later this evening, but I want to see if I can get any sane 
output from Rob's Viewdata PHP script first.

Rick -- I think I've said this, but thanks A LOT for posting the link to 
the SAA5240/EuroCCT manual. It's been VERY handy (much moreso than the 
pitiful SAA5240 datasheet which contains a register map and not much else).

philpem at philpem.me.uk

More information about the bbc-micro mailing list