!Teletext User Guide


                          Teletext  v1.50

What does this software offer?

  * Fully compatible with the Ground Control and Octopus teletext receivers.
    [including a modification program to allow compatibility with RiscTV, if
     you have the Octopus !Teletext+]

  * Script interpreter to make even better use of teletext; now includes
    floating point variables for handling numerical data such as stock market

  * Customisable 'preferred' pages listing, will allow you to keep track
    of all of your favourite pages - however many there may be!

  * Option to update your system clock automatically. If the channel you
    choose offers full TSDP and is broadcasting in the same timezone as you
    are configured, it will also set the date and 'daylight savings' for you.

  * Save frames as a teletext file, sprite, ANSI, OvationPro, or plain ASCII.
    Optional UUcoding if you'd like to send frame by email.

  * Click on page numbers in the window to select that page, making teletext
    as easy as point'n'click.

  * Control window available in vertical or horizontal formats. This window
    allows you to directly access ALL available pages, as well as HOLD,
    REVEAL, LAST FRAME and more.

  * Full keyboard control.

  * Simple interactive configuration.
    The configuration can be 'locked', providing a small measure of security
    in, say, a classroom environment.

  * Ability to switch the teletext palette on and off as you need.
    Default is off, but switching it on and off again is only one menu
    option away...
    !Teletext even goes as far as remembering your current palette and
    restoring it for you, in case it is not the same as the default WIMP
    This facility is only of use in 16 colour screen modes, as 256, 32k and
    16m colour modes support the necessary colours, and 2/4 colour modes are

  * Help is available 'on-line' in the teletext browser. Just select P000.

  * To view teletext saved frames, simply drag and drop into !Teletext.
    Alternatively, just double-click on the saved frame.

  * Compatible with other software: You can view teletext frames from any
    compatible software...
    The frame must be 1080 bytes in length containing the header, frame and
    links data. The filetype is amp;112. The older Ground Control software
    outputs compatible frames. I will be happy to implement convertors upon

  * Supports the Level 1 teletext specification, INCLUDING FLASHING TEXT.

  * Several print methods, to get the best results whatever your printer.


  * You will need a Ground Control or Octopus teletext receiver.
    [Given the loan of suitable hardware and driver modules, I will be happy
     to modify !Teletext to support other devices]

  * A driver module suitable for Ground Control teletext adaptors is included
    with this software.
    My gracious thanks to Colin Granville for permission to distribute his

    This module only works with the adaptor connected via IIC.
    It is my understanding that the printer-port method does not work on
    'newer' parallel hardware such as is used in the A5000 and later models.

    It is not recommended that you use your existing driver module. However
    it should be possible to use it provided you do not try to update your
    clock and you do not try to read the channel ID (these functions use
    facilities not provided in the original software).

  * This software can be modified to work with the Irlam RiscTV card. You
    will need the teletext upgrade, and also the Octopus !Teletext
    application; both of which must be 'seen' before applying the
    modification. Read the notes below for further information.
  * RISC OS 3.10 with 256K memory, or better...

How to install

  1. Unarchive somewhere convenient...

  2. Run the program. Set up tuning and defaults.

  3. Use!

Notes on drivers for Octopus/Ground Control receivers

  The Teletext module supplied within !Teletext should work with the teletext
  hardware as was sold by Ground Control, and latterly by Octopus Systems.

  It is recommended that you do NOT use your existing driver if at all
  possible. However if it is necessary (ie, you use the parallel port to
  connect your receiver), then copy the existing module into this !Teletext
  application, and rename it "Teletext". You may also need to edit the !Run
  file so it doesn't say you need a newer Teletext module...

  Please be aware that !Teletext uses some newer features that were not
  provided with the original drivers. It is thought that the older drivers
  should still work, provided that you do not attempt to read the channel ID
  or update your clock.
  If !Teletext crashes with an error such as "Unknown SWI" or "Unknown
  Teletext operation", this is because you're trying to do something that
  your driver doesn't support.

  IMPORTANT: If you set "Check clock" as a start-up option, and you are
             using the old driver, you may find that !Teletext crashes on
             start-up with the "Unknown Teletext operation" error. In this
             case, you will need to delete the !Teletext "Configure" file.
             This will prompt !Teletext to restore the default settings,
             which does not check the clock...

Notes on the Octopus driver and RiscTV cards

  This software can be used with the Octopus Systems Teletext+ module, and
  an Irlam RiscTV card.

  In order to do this, amend the !Run file to run "TTX+patch" before running
  !RunImage (simply uncomment the appropriate lines in the !Run file).

  Please note that you should NOT attempt to save the patched Teletext+
  module back in to !Teletext+, as the patch does things to the Teletext+
  module that prevent it from working with !Teletext+. Please refer to the
  "TTX+patch" program to find out what it does...

Notes on other hardware

  Apparently the teletext driver will work with "standard IIC teletext
  hardware", for example:
    Computer Concepts teletext receiver
    DezignIT's teletext receiver
    Ground Control/Octopus receiver
    Irlam's Teletext card
    Morley Teletext unit
  I have not tried it with anything other than the Ground Control unit.

  I don't know about the Acorn teletext receiver. You could try...

  I have had reports that it works well with the Morley unit, though I do not
  know how it was set up.

  If anybody has any old teletext hardware for ANY Acorn machine, please send
  it to me! It would be a great benefit if some sort of driver software was
  included, but don't worry too much if it's been lost over time.

Setting up IIC (GC/Octopus units; techie)

  Please be aware that this is a bit of a bodge, so the usual disclaimers
  shall apply. Provided you are careful, you shouldn't fry anything. But if
  you are the least bit unsure.....DO NOT DO THIS.


  Please also refer to:
    1. The documentation provided with your teletext receiver, it may provide
       you with details of the socket wiring. If not, refer to details of any
       of the IIC devices and use a multimeter to check which pin is which.
    2. Any of the technical documentation for your RISC OS computer. The
       various "Technical Reference Manuals" contain details of the expansion
       ports. Failing that, the general "Expansion Specification" should be
       available from the mirror of the old Acorn FTP site (you should find
       this at http://www.riscos.com/ ), or on various AcornUser CD-ROMs.

  Always check what you have done with the proper documentation before
  switching your computer back on.

  Open your computer and locate your podule backplane. If you have a spare
  slot, you may be able to push your wires into the holes (though this is not
  recommended). Otherwise, you'll need to strap them onto the backplane
  connection of a convenient podule. The exact method depends upon the type
  of wire you use. I recommend soldering as it is less likely to come
  'unstuck' to leave wires in danger of dangling down onto the motherboard.

  My preference is to use an Econet drop lead, as the DIN plug is the correct
  type for the teletext adaptor. Remember, IIC is supposed to be used inside
  videos and television sets, and is used inside your computer. Keep the
  leads as short as you can.

  Looking at your decoder, you have a five-pin DIN socket in the middle of
  the front panel. It should be marked "Data":
            Not connected  O       O  +5V
                IIC clock   O     O   IIC data    <-- Looking at the
                   Ground      O                      adaptor from the
  I only connect the IIC data/clock and the ground.

  On your podule backplane, there are two rows of pins. The bottom set is
  row A, the upper set is row C. Some podules (old style co-processor or new
  style with DMA) have the middle B row as well.

  IIC is available on pins 19 (clock) and 20 (data). Ground is on pin 26, or
  pin 1 if you prefer. All on the C (upper) row, where it is easy to get to.

  Check your wiring carefully. There are a lot of system signals, including
  -5V and +12V on the podule bus (pins 2 and 32 respectively), so don't make
  any mistakes here. Also ensure the wires are not touching.
  You will probably get away with a frozen system if the IIC wires are
  touching nearby wires (data bus, podule select, DMA...) but if you use pin
  1 for ground, -5V is right next to it. This will cause severe cookage.

  Leave the teletext adaptor unconnected and power up. All should be fine.
  Switch off.

  Connect the teletext adaptor and switch it on. Then power up the computer.

  If you notice anything odd, like your monitor fails to lock into the video
  signal, or most of your modules have vanished - even the ones in ROM, then
  simply switch off and swap the IIC clock and data pins. If this is wired up
  incorrectly, RISC OS is unable to read your CMOS RAM settings.

  ** IMPORTANT: If, upon connecting your teletext adaptor, your RiscPC seems
                to die - no valid video signal, no beep, and dead keyboard;
                give it a hardware reset (the button 'round the back) and
                watch the keyboard LEDs carefully. They should flash four or
                five times, then the keyboard becomes non-reponsive.
                This means your IIC data/clock signals are incorrect.
                It seems the RiscPC panics more than my A5000 did, in this

  ** IMPORTANT: Upon disconnecting your teletext adaptor, even after
                correcting the backwards clock/data, your RiscPC may still
                refuse to start up - as described above.
                Switch the machine off, count to twenty. Hold 'R' and then
                switch back on (with 'R' held down). You should get a beep
                and working keyboard, but probably no valid video signal.
                To get one:
                  Press F12
                  Hold Ctrl and tap G. You should hear a beep.
                  Enter the following (typing blind, so take care):
                    *Configure MonitorType 3
                    *Configure Sync 0
                    *Mode 28
                  Reboot, holding shift and keypad-*.
                  You should now be in the command line. You will need to
                  restore your CMOS RAM settings. For me, I'd type:
                    *LoadCMOS $.Utilities.!SaveCMOS.Saved
                  Please check your computer's clock, as it might have reset
                  itself to 1996. You can use !Teletext to set the clock
                  accurately. :-)
                Like I said... it seems the RiscPC panics more than my A5000
                did, in this situation.

  That done, you can dangle the lead out the back of your computer in a nice
  and inelegant fashion reminiscent of the days of the BBC micro when your
  status as a user was judged soley upon how many wires protruded out of the
  machine. I suggest you give the wire a small hole (such as between two
  podules?) and tie a knot in the wire, so if the wire is tugged, it doesn't
  do damage inside your machine.

  I prefer IIC to the parallel option as my parallel port is in use (Zip
  drive and printer) and, besides, I lost the lead for the decoder years ago!

  The supplied teletext module expects an IIC connection. It will not work
  with parallel port wiring.

Setting up the software
  Assuming you have the Ground Control software, you will probably have
  already tuned in. If so, you can use the 'GCConv' program (in the Utilities
  directory) to create a default configuration file for you. This assumes
  both !Teletext and the older Ground Control program have been 'seen' by the

  If not, then run !Teletext and click [ADJUST] on the iconbar icon.

  The viewer window will open, and the configure window will open in front
  of that.

  Select the required channel using the up/down toggles beside the 'Channel'
  icon. Default is '1'.

  Enter a channel name in the 'Name' icon space. Press [Return] to get the
  name 'accepted'.

  Then use the up/down toggles by the 'UHF' icon to tune in to your channel.
  Once some form of data is receivable, you'll see the viewer window (in the
  background) displaying what is received. Use the header line to make sure
  your tuning is spot-on.

  Usually you won't need to bother with fine tuning. However if you are
  trying to tune off a VCR or satellite receiver, you may find that the
  output is not bang on a channel.

  Tuning is between 21 and 67 UHF, and this wraps around.
  Fine tuning is between -50 and 50, and this wraps around.

  Don't know the channel tuning? Use the 'Automatic Search' to search for
  channels for you. Click SELECT to begin searching, and click ADJUST to
  stop search. It will stop on its own once a channel has been found.
  Some devices, such as satellite decoders, may not be picked up by the
  tuning search. If the search fails, you will need to tune manually.

  Change channels, and repeat the tuning as required.

  Start options...

  When !Teletext starts, you can have it automatically check your clock for
  you. Select "Check computer's clock" if you wish it to perform this action
  for you. "No messages" means you want your clock checked and updated, but
  you don't want to be told about it. At all.

  The "Open viewer window" option will make the teletext viewer pop up as
  soon as the program has initialised, without you having to click on the
  iconbar icon.
  To aid this, the "Default channel" selector chooses which channel you are
  tuned to at start-up.

  The cache...

  !Teletext offers a cache. This will not make new pages appear any faster,
  but it will make previous pages appear instantly. This is useful when, say,
  you are reading the television schedule with several frames (thus meaning
  the "Last frame" icon won't work) and you wish to go back to the television
  guide index to see what else to look at.
  Without the cache, you would need to wait for the guide page to roll around
  to then select the particular page you are interested in. With the cache,
  it comes back instantly.

  Select the "Cache found frames" option to use the cache.

  The "Clear cache upon exit" option wipes the cache when you quit !Teletext.
  This may not be necessary - see below.

  You can set your frames to 'expire' after a certain time. When !Teletext is
  making a list of the cache entries, it will warn you pages may be getting
  old if they are over 12 hours old. You, however, can control the expiry
  time as you see fit. 12 hours is recommended, however.
  Set the expiry time to 0 hours to disable automatic expiry.

    The cache is automatically 'tidied' when you start !Teletext, and all
    out-of-date frames are removed. If you have a reasonably short expiry
    time (such as less than 24 hours) then you need not choose to clear the
    cache upon exit.
    If you disable the expiry, !Teletext will return from the cache the first
    matching frame discovered. It cannot 'know' when a frame is too old as
    you do not specify what you consider to be 'old'.

    The script interpreter manages it's own virtual cache within the main
    cache. Basically, a flag is set to mark frames as belonging to the script
    system. Therefore the script will make no use of entries already in the
    cache. The viewer, however, is less discriminating and will make use of
    frames fetched by the script.


    There is only one option, whether or not to allow scripts to be run.


    The speed that !Teletext operates is user-configurable. This allows you
    to make the most appropriate choice of whether to have smooth desktop
    operation, or fast Teletext updates. In general, you don't really need to
    see every digit roll by on the page header (don't worry, if you didn't
    see your chosen page number, it'll still be retrieved - nothing is lost,
    it just keeps you informed less often!).
    You have three options:

      Flash update : This is the rate at which screens with 'flashing' text
                     will be redrawn. In other words, this is the delay
                     between flash on and flash off, and vice versa. The
                     default is 50cs, but I personally prefer 45cs as it is
                     just a touch quicker.
                     Flash ticks can be set from 5cs to 500cs in 5cs jumps.

      Main update  : This is the rate at which the main "is a page ready?"
                     loop runs. This should, for good results, be set to 50cs
                     as well, but I prefer 60cs as you won't really notice an
                     extra 10cs, but it gives your computer that much extra
                     CPU time.
                     Main ticks can be set from 5cs to 500cs in 5cs jumps.

      Null update  : If you 'freeze' !Teletext with flashing text, it will
                     instruct the desktop to pass control to it at the speed
                     you have told it to for 'main' update.
                     If you 'freeze' !Teletext with no flashing text, it will
                     instruct the desktop to pass back control only once
                     every 'x' centiseconds. As you'd be passing back control
                     to do nothing, you can set quite a high figure here;
                     like 6000cs (a minute).
                     Null ticks can be set from 100cs (a second) to 12000cs
                     (two minutes) in 100cs jumps. Default is 6000cs.

    If you set your flash update to be quite small, like 10cs, and your main
    update to be larger, like 100cs, then you may notice two things:
      1. The page header updates more frequently than once every second
      2. It might take up to a second between your page 'arriving' and you
         getting to see it.
    This is because, when displaying flashing text, the frame header is
    ALWAYS updated, so that the page sequence always runs in the correct
    order...and the time too! However, the main "is a page ready?" check is
    only happening every second. This explains the delay.
    If there is no flashing text, the header will, obviously, slow down to
    the normal 'main' update speed.

    I should clarify how the polling occurs:

        Teletext claims EVERY poll cycle. This means the desktop hands
        control over to Teletext every single time it cycles around the
        available programs. It needs to do this, because Teletext has a high
        degree of "stuff is happening in the background". However it does not
        actually need this much processor time on a fast machine. If the
        pages are coming in every 40cs (like on CNN), then there's little
        point in checking for a new page every 5cs. You'll be checking eight
        times more than is necessary.
        So what we do is to ask the desktop to pass control over to us each
        time around, and we work out if we need to do anything now. If we do,
        then we do it. If not, we say "okay, I'm done".
        We make two seperate checks. The first is for the flash update. If it
        is time for a flash transition, we change the displayed frame for the
        flash or non-flash one, as applicable.
        Then, we check the main update. If it is not time for the main update
        we'll return control to the desktop. Otherwise, we'll do the update
        if it is ready, and a few other things too.

        Script processing is a special case. Basically, every poll cycle is
        passed on to the script interpreter, and for each poll it will
        execute one line of script.

        Claiming every poll cycle is 'expensive'. It isn't quite as simple as
        the desktop saying "here teletext, do something". It has to 'map' in
        the teletext software (every application 'believes' it is loaded at
        amp;8000 in memory, but in truth only one thing can be there at any one
        time, so each application is 'mapped' every time it is called to run)
        and this takes time, both in setting up the memory map, and in
        generally shoving internal memory and tables around in order to do
        it. For this reason, the desktop has an 'idle' mechanism, where an
        application can say "don't bother calling me until...". When Teletext
        is 'frozen', very little will happen in the background. In fact, to
        be precise, only one thing will happen in the background... Flashing
        If the page you are looking at contains flashing text, then Teletext
        will tell the desktop only to call it according to the main update
        rate. Yes, this may be slower than your flash rate, accordingly your
        page will flash more slowly.
        If you are not viewing a page with flashing text, then Teletext can
        be entirely user-responsive ... there are no background things to
        worry about, so it will tell the desktop to call it according to the
        null update. You have to give the desktop a time, so you might as
        well just say "in a minute!". This will NOT affect your use of this
        software, as the desktop will always call Teletext when "something
        happens", like an icon click or you choosing a menu option. The time
        is used for when "nothing happens". You'd be surprised how much
        processing time is saved by NOT loading an application for it to say
        "I'm not doing anything".

      'For nerds':
        As well as displaying the rolling header, we need to call a SWI to
        see if a new page has arrived, and also to time the flashing text.
        Therefore, I feel my method is the best trade-off between time delays
        to the desktop and time delays to the user. This is particularly
        notable in the switch between 'normal' polling and PollIdle. However,
        as a lot of things occur in the background (like the header change,
        or the 'page ready'), it is not practicable to PollIdle all the time.
        I did save a little bit of speed on a 'clean' system by PollIdling
        for 15cs, but when lots of tasks were loaded, it actually ran more
        slowly to do that - as the idle was not coming back within 15cs and
        it was 'wasting' time working out the next 15cs delay time. I suspect
        the situation would be similar on slower hardware.
        A possible alternative is to use the PollWord system, and have a
        small module time the flash update and also check if a page is ready,
        and set a PollWord accordingly. However I feel that this is a rather
        unnecessary complication - extra modules to load, callbacks, etc...

  I have Teletext running as I type this. The system is not that laden with
  it. There are slight pauses as the new page is fetched, but given the fetch
  is ~1.5K over IIC, there's nothing I can do about it.

  Page 100, CNBC, flashing text, refreshed every five seconds:
    Flash update 10cs, main update 30cs; Teletext uses ~80% processor time.
    Flash update 30cs, main update 60cs; Teletext uses ~65% processor time.
    Flash update 75cs, main update 75cs; Teletext uses ~55% processor time.

  Page 182, CNBC, non-flashing text, refreshed every twenty four seconds:
    Main update 30cs; Teletext uses ~48% processor time.
    Main update 60cs; Teletext uses ~44% processor time.
    Main update 75cs; Teletext uses ~40% processor time.

  Frozen / not in use, viewer window closed, or open with non-flashing text:
    Null update 100cs; Teletext uses 2% processor time.
    Null update 6000cs; Teletext uses 0% processor time.

  Frozen, viewer window open with flashing text:
    Teletext uses 6% processor time (main update 30cs).


  If you are a school, or have young kids <grin>, you might like to click
  on 'Lock configs' to lock out the configuration window. To unlock, you can
  either delete the 'Configure' file or use the supplied 'UNLOCK' program.
  This option is only available if you toggle the window to full size.

  Happy? Then click 'Save configuration'.

  Close the configure window to end configure mode and bring back the control

The iconbar icon

  Click SELECT to open the viewer window.
    Also, hold down Ctrl while clicking to call up the Preferred Pages list.
    Or, hold down Shift while clicking to call up the Cache list.
    Holding Ctrl and Shift while clicking will call up both lists.

  Click ADJUST to enter configuration mode.

  If the Teletext receiver is not operating (ie, not connected/plugged in),
  you'll be told of this. In this case, you can still use Teletext in an
  "off line" mode, whereby dragging/double-clicking files will open them in
  the viewer.

  Clicking MENU...

             |   Teletext   |
             | Info       > |
             | Check clock  |
             | Help         |
             |- - - - - - - |
             | HardwareTest |
             |- - - - - - - |
             | Quit         |

    Tells you the software version.

  Check clock:
    This will compare the received clock signal with your system clock, and
    allow you to update it if they differ.

    Shows you this text.

    This tries to read from the three primary parts of the teletext decoder
    (the teletext decoder, the tuner controller, and the video processor).
    This was added so if your teletext decoder is connected, but not
    responding, you can test that it is running correctly. Alternatively, if
    you just like fiddling with menu entries... :-)
    This will report "Your teletext decoder is responding correctly." if it
    is, and up to three error messages if you turn it off. If it is on, but
    acting up, you should get an error message to aid you in diagnosing the

    Please tell me you don't want to know what this option is for! :-)

Clock update
  !Teletext will update your clock if it is more than five seconds out. It is
  recommended that you always update your time from the same channel as
  channels tend to differ in their perception of 'real time'.

  The time adjustment is taken from the TSDP broadcast every second by most
  stations. This is a very accurate way to set your clock, which is much
  better than trying to decode the rolling time in the frame headers.

  If your computer's timezone is correctly configured and you are setting
  your clock from a broadcaster in that same timezone, then !Teletext will
  also set your computer's "daylight savings".

  Here is an example for the United Kingdom:
    Territory 1
    TimeZone +0:0
  And you'll be watching BBC, ITV, Channel4, Channel5, or a plethora of Sky

  Here is an example for central Europe:
    Territory 1     <-- this is less important, so it could be 6 or 7, say...
    TimeZone +1:0
  And you'll be watching RTL or something on one of the Astra analogue birds.

  Provided your timezone (and, territory if non-standard) and broadcaster
  match, this system should work anywhere in the world.

  Please do not attempt to set a UK timezone from a CET station, or vice
  versa. !Teletext tries to check the time zone offset broadcast matches one
  of your available time offsets.

  Some stations (such as CNN, I'm surprised) do not broadcast a valid time
  offset. !Teletext will warn you of this, then ignore the time zone. The
  clock and date will be updated. Other stations (such as Germany's MTV, I'm
  even more surprised) broadcast a valid and correct time zone offset.

  Some of the 'lesser' stations (I'm afraid this includes Viva and VivaPlus)
  don't broadcast a TSDP at all, so clock updating is not possible with those
  stations. Please select another...

  When I load !Teletext, I set my satellite decoder to German MTV, then I
  let !Teletext start up. It updates my clock with no messages. Sometimes, if
  I look very closely, I can see the display in !Alarm hiccup ever so
  slightly as the new time is added. Or, the time rolls according to DST.

  I have been informed that the Octopus Teletext+ has a time zone offset set
  up in the !Run file, and it (v7) apparently only really works in the UK.
  Come on Paul! You can do better than that! :-) Use the Territory module!

Viewer window

  This is where the frames received via teletext are displayed. The header
  line constantly updates and the frame itself is redrawn every ten seconds
  or so.

  This window is, more recently, referred to as the browser window. So if you
  see references to "viewer" or "browser", I mean the main window that you
  read the teletext frames in.

  As soon as this window is opened, !Teletext claims the "input focus", thus
  allowing you to use keyboard controls if you find that easier or quicker.

  Within this window, you can click the [SELECT] button on a frame number.
  This will tell the teletext system to hunt for this new page... It is
  easier than using the control keypad. :-)

  You will notice many pages have a line down the very bottom with text in
  RED, GREEN, YELLOW and CYAN. This is called 'FastText'. It is a series of
  'hotlinks' to other related pages. You can click down the bottom of the
  window to use FastText.

  Note that you do NOT click on the text itself. The bottom line of the
  window is divided into four equal zones. The first zone, on the left, is
  for the RED link. Then another zone for GREEN and so on. The software
  cannot tell where the FastText prompts really are... Maybe in a later
  version. :-)

  Like always, you can click on [MENU] to bring up more functions...

             |   Teletext   |
             | Freeze       |
             | Save frame   |
             | Notes        |
             | Palette      |
             | Configure    |
             |- - - - - - - |
             | Print      > |
             |- - - - - - - |
             | Cache      > |
             |- - - - - - - |
             | Open 'Pages' |
             |- - - - - - - |
             | Preferred    |
             | Script     > |
             | Channel ID   |

    Selecting this will freeze the teletext system. Useful if you want to
    switch it off for a while without quitting the application. When the
    system is frozen, a little tick will appear beside this menu option.
    Click again to 'defrost'.
    With my tasks idling, I monitored !Teletext taking 75% of the available
    time when it was running. When frozen, this dropped down to zero as the
    page headers were no longer being updated, the pages no longer refreshed
    and the window no longer redrawn. When frozen, !Teletext only polls once
    a minute.
    Note that this is a purely subjective assessment. There was no noticable
    delay in system use as it was available time. It also depends on the
    other tasks in use. Measurements taken with Ran Mokady's !Usage.

  Save frame:
    This will open a window with options for you to store the current frame
    on disc.

    This will open a window in which you can make notes as you are going
    NOTE: Do not click in the viewer window with ALT held down if you have
          notes. Doing so will fill the notepad with status information on
          the current frame.

    This will active the 'teletext' palette, updating the WIMP colours to
    that used by teletext (that olive colour is actually magenta!). When you
    select this, your current palette is stored. When the teletext palette
    is in use, this option is ticked. Click again to revert to your normal
    This option is only useful in 16 colour screen modes. !Teletext will warn
    you if you try to set the palette in another mode. You can, however,
    restore the original palette in any mode.

    This will close the control panel and open the configuration window.

    This brings up a sub-menu with two options:
             |    Print    |.-------------.
             |=============|| Print image |
             | Text only   ||=============|
             | Image     > || Enhanced    |
             '-------------'| - - - - - - |
                            | Normal      |
                            | Inverted    |

      Text-only    will print the current teletext frame as pure text.

      Enhanced     will print the current teletext frame as seen on-screen,
                   except the background will be white and the white text a
                   mid-shade of grey. This is so that the teletext frames can
                   be printed roughly correctly in either monochrome or
                   colour without wasting too much ink.

      Normal       will print the current teletext frame as seen on-screen,
                   exact colours. This, obviously, will use a fair amount of
                   black ink (or toner) so obviously isn't preferred for
                   normal use.

      Inverted     will print the current teletext frame as seen on-screen,
                   but with a converted palette (inverted greys) which
                   should make it print better, and with less ink. The
                   difference between this an enhanced is there are no
                   colours (it is monochrome), and the colours have been
                   swapped so light is dark and vice versa. This may give the
                   best and most solid print of textual information, but
                   things using colours (ie, adverts) may look bizarre.

    The print system uses the RISC OS printer drivers, and will invoke the
    !Paint application in order to print the bitmap images.

    Here's a little "easter egg". You can 'see' how these pages (should)
    appear when printed by doing the following:
      1. Ensure your chosen page does not 'flash'.
      2. HOLD your chosen page.
      3. Open the viewer menu, and drag it off of the page. Go to a print
         option, like, say, "Print -> Image -> Enhanced".
      4. HOLD DOWN THE ALT KEY and then click on the print option.
    The teletext frame will be redrawn in the colours that would be used to
    print. Causing a redraw, any method, will redraw in the normal teletext

    These options are explained in the section describing the cache

  Open 'Pages':
    Will open "<Teletext$Dir>.Pages", the default save path.

    This will display your "preferred pages" list. Double-click on a page to
    select it in the viewer, or use the menu to add or modify entries.

    This will run a script. Open the submenu and choose a script. If you
    wish to write your own scripts, please read the accompanying script
    To cancel a script, click the iconbar icon.
    Sometimes, a script may single-task. You can tell this by your pointer
    turning into an hourglass. Hit Esc to cancel the script, in this case.
    If you do not have the script guide, you can download a copy from the
    teletext website. It is available as a StrongHelp document.

  Channel ID:
    This will display the TSDP channel identification. Please note that it
    may have odd spacing... Have you ever seen the channel name banner pop up
    on a fairly modern TV when changing channel? Well, that's what the TSDP
    name is for, and why it might have odd spacing. Some broadcasters like to
    'centre' their idents.

You can drag a saved teletext file into !Teletext to view it. All current
teletext operations will be suspended. The receiver will be 'frozen' and
your saved page will be drawn on the screen.

Control window

  The control window allows you to select frames, channels and control
  various other aspects of the teletext system. By using the menus, you can
  select a vertical (default) or horizontal control panel, and you can
  choose 'preset' pages, if any are configured.

  0 1 2 3 4 5 6 7 8 9 A B C D E F
    These are your frame/channel selection icons.

    This sets the system into channel select mode. The next icon you select
    (from 1 to 9) will select that channel for you and initiate scanning for
    frame 100.

    This sets the system into frame select mode (P is for Page). Unless you
    click on 'C', the system stays in frame select mode so you don't have to
    click this each time. It can also be used to cancel channel select if
    you clicked on 'C' by accident...
    Any frame number between 001 and FFF may be selected. You must enter
    leading zeros. As you may have noticed, this teletext system offers you
    direct access to all 4095 possible frames.
    Note that teletext magazine zero (page 0xx) is invalid. Try it on any
    teletext television - an initial zero will be changed to an eight.

    Once three numbers have been entered, the system will search for that

    If the clock stops, or the header line vanishes, it is possible the
    magazine you are looking for doesn't exist. If the numbers at the top of
    the frame wrap around a few times then it is likely the frame you are
    looking for doesn't exist.

    Some channels loop around all pages. Some loop only in the magazine you
    are looking in. This is controlled, somehow, by the broadcaster.

    This will hold the current frame so the further frames (say, in a news
    reel) don't overwrite what you are currently reading. Note that further
    frames will not be stored, you will have to wait for the cycle to loop
    around again.

    Sometimes brain-teaser type things ask you questions and hide the
    answers. Use this to display these hidden things.

  Local index
    All frames are part of a magazine. We all know frame 100 is the entry
    screen and frame 199 is (usually) a full index. However neither is
    really appropriate when you are viewing what is on Meridian and you want
    to look up information on what is on TV now and next. So click this icon
    to go to the local (in this case, the television magazine) index.

    It appears that many satellite broadcasters simply set this option to
    redirect you to the entry index (frame 100). How very useful - NOT!

  Last frame
    When you select this, the system will enter 'Hold' mode, and the current
    and last frame will be swapped. This is useful if you just missed that
    last sentence, or if you selected the wrong frame by accident.

    I repeat again, this will select 'Hold' mode automatically.

  Save frame:
    Click this icon to bring up the Save window.

    Click this icon to go to the default entry index frame on all services.

    Some satellite broadcasters, such as Bravo/*Living, used to pop up a page
    telling you the main page is p200. Go figure.

    Click this to go to the full index frame, on most services.

    Again, this differs on some satellite broadcasters. QVC used to output a
    series of test pages on 199.


  You can control the teletext viewer by clicking in the viewer window (not
  on a teletext page link) to give it 'input focus' (the highlight).
  Then, certain keys allow you to manipulate the viewer...

    0 - 9   Select a page, or a channel in channel mode.

    ^C      Channel selection - type ^C then a number from 1 to 9.

    ^P      Go back to page selection from channel selection, if you do not
            want to change channel.

    ^F      Toggle Freeze.

    ^G      Print (in graphics mode).

    ^H      Toggle Hold.

    ^I      Go to index (normally page 100).

    ^K      Keep this frame (and this channel) in your preferred pages list.

    ^L      Go back to previous frame.

    ^Q      Close the viewer.
            This does not 'quit' !Teletext, only the viewer.

    ^R      Toggle Reveal.

    ^S      Open Save frame window.

    ^U      Toggle Palette (only in 16 colour modes).

    ^T      Print (in text mode).

    +       Select next frame (you may also use cursor up).

    -       Select previous frame (you may also use cursor down).

    <--     Cursor left and Cursor right will step through the available
    -->     subframes. Please note that this does not 'skip' missing ones.
            For example: You have subframes 1, 3, 4, and 5 and you are
            currently looking at #4. You can use the left and right cursors
            to look at subframes 3, 4, and 5. You cannot look at subframe 1
            until subframe 2 has arrived (to complete the sequence).
            !Teletext will beep if it couldn't find a subframe.
            [this will not work if you aren't using the cache]

    Esc     Abandon current selection.

The Notes window

  This little window is where you can jot down notes as you wander through
  teletext. It is a set of ten normal RISC OS writable icons, so you can use
  the usual operations like ^U to wipe that line... Cursor up/down will move
  around the lines. Press Return for the next line. There is no word-wrap.
  And it looks peculiar in a Desktop supporting the global use of outline
  fonts (WindowManager v3.22 or later).

  The single menu option 'Clear' will reset the notes to a blank window.

  It is as simple as that. :-)

  If you pressed ALT and clicked in the viewer window on purpose or by
  mistake, you'll have noticed the Notes window pop up with lots of
  information. I'll explain it all to you...

  Line 1 :
    This is the program name and version.

  Line 2 :
    This is the date of this version.

  Line 4 :
    This shows you the current channel settings. Firstly the channel number.
    Then the channel name. This is terminated early if it's a long name.
    Next comes the channel tuning in UHF channels and fine-tuning offsets.
    Finally an 'I' is appended if the channel is set up to use the IRCS.

  Line 5
    This shows you the current frame and subframe. You'll notice some frames
    have subframes even though there is no conventional '1/10' type
    indicator. An example of this is the entry frame 100, where the menu
    changes every so often to highlight what is available.

  Line 6
    This shows the link frames for the Red, Green, Yellow and Cyan frames.
    Now you are a trustable person aren't you? Good... I thought so.
    Untrustable people might use a facility like this to cheat at Bamboozle
    (oh! the shame! the shame!). <giggle>

  Line 7
    This shows the local index linked frame and the telesoftware catalogue

    TeleSoftware was transmitted quite regularly on BBC2 until about 1988
    or so. Then it stopped. Shame really, but I suppose downloading a
    modern program (like !Teletext itself?) via teletext would take longer
    than the week the program was available for...
    It is a shame it can't be used by local broadcasters for community
    information and revision aids for students. For example, a CSV file
    listing 'important numbers' (Telecom fault reporting, Samaritans, local
    hospitals etc etc) or a CSV file with the periodic table of the elements.

  Line 8
    Shows the language of the frames.

  Line 9
    Tests the frame to see if it arrived intact. A number of times it flags
    an error, the actual frame looks okay. This is because it performs a
    full and complicated computational check on the data. I don't think I've
    yet had a frame come in and CRC pass.

  Line 10
    When you last did the ALT-click bit...

The Save window

  When you open the save window, and when new frames are received, the
  program supplies you with a default file name made up as follows: 

  Use this name or enter your own. Then select the save type, be it teletext
  or sprite or ASCII. Finally, drag the icon to a directory viewer or click
  Okay to save to the Teletext frames directory inside !Teletext.

  RAMtransfers (sprite into paint etc) are not supported, but <Wimp$Scrap>
  saved files will be Filer_Run... An oddity of my method is if you drag a
  sprite to !Paint, it may give an error of the filename.

  The most efficient way to save a file is to use the Teletext file option.
  Then to view the file and possibly save it again as a sprite or ASCII, you
  simply drag the saved teletext file back into the !Teletext application.

  If you save your frame by pressing Return, the input focus will be given
  back the the viewer afterwards.

Printing your teletext frames

  There are four options available to you.

  Firstly, you can print the Teletext frame as pure text. This is the
  quickest method, uses the least ink, gives the most dire output if the
  page contains a lot of 'graphics'.
  The Sky One logo looks something like:
      pp`0``0 0   h,,,,,,,,,,l          
     ju"ju>*}h%   "x|0ht|t x|2          
      +}j7} k7    j j j j j ~           
     *,'*%*%*%    "o~'j j "o|<          

  Secondly, you can print the Teletext frame as you see it. On a colour
  printer, it will be printed in full colour. On a monochrome printer, it
  may look a bit weird - with reds and blues both printed as black, so...

  The third option is a converted print. This is for monochrome printers and
  those who wish to save their ink. The whole image is converted to
  four-shade monochrome and then inverted. The colour mapping was chosen to
  give the most satisfactory results with ArcFax. So yes, you can even fax
  teletext pages around!!!

  The final, and possibly most desirable version, simply removes the black
  background and darkens the white to be a mid-shade of grey. Thus, colours
  are pretty much preserved and it should look 'correct' when printed.

  The print system uses the RISC OS printer drivers. It is NOT able to print
  directly to the printer port, as this defeats the point of a multi-tasking
  resource. The pure text option can be printed by the printer driver
  itself. The image options, however, require the assistance of the !Paint
  application, so expect to see this pop up during the print operation.

  *ALL* of the print options work by instructing the !Printers application to
  print, and letting it (!Printers) get on with the job. Therefore, the usual
  method of loading the drivers for things like DTP (load !Printers, choose
  your printer, then quit the front end) will *NOT* work here. The front-end
  must be loaded.

  Yes... I know it is pretty easy to generate a printed page. Maybe in a
  later release...

Using the cache

  The cache is designed to make the teletext system appear more responsive.
  It will not make the frames download faster.

  The benefit of the cache can be explained as follows:
     a.   You go to Sky's television index (120).
     b.   You go to the "Now and next" (124) and watch both subframes.
     c.   You go back to the index (120).

  At point 'b', you have watched both frames, so the "Last frame" option will
  not take you to the index.
  So at point 'c' you might have to wait for the television index to appear.
  Not so with the cache, it comes back instantly.

  Please note that the main index (100) is never retrieved from the cache.

  Please also note that unlike other software, the cache is entirely disc
  based. Not even the entire cache index is kept in memory at one time. This
  has a potentially severe performance hit for floppy-only systems, but
  weighed up against a smaller memory requirement on harddisc systems. A
  trade-off for floppy users would be to place the cache in a RAMdisc, you'll
  probably need to modify "netsetup" in this case.

  You have five menu options to help with cache management:

  Show cache:
    This displays the cache list window. You can double-click on ANY valid
    frame shown, even expired frames, to show them in the viewer.
    You can also hold down Shift and click on the iconbar icon to open the
    cache list window.

    This is possibly the most useful of the cache options. When you are not
    going to be using !Teletext for a while, you can set it to autofetch as
    many frames as it can in the time that you give it. It will fetch frame
    101, then 102 and so on (it will only fetch each number once, so
    subframes will not be stored).

    When you come to use !Teletext, provided it is within the configured
    time-out, your frames will appear instantly, so you could browse the
    news and television highlights (for example) without waiting for the
    frames to be fetched. As you select a frame to read it, !Teletext will
    search for any subframes, which will begin updating in the usual way.

    As AutoScan is a background operation, opening the viewer window will
    cancel AutoScan. If a frame cannot be fetched in fifty seconds, it will
    be skipped and the next frame searched for.

    It is recommended that you flush the cache before AutoScan.

    An alternative, which provides more control, is to write a script which
    can change channel, and fetch exactly the pages you require.

  List index and Print index:
    These options will create a list of the contents of the cache index.
    This was primarily a debugging feature, but has been retained as it can
    be useful to look at. Or fun. If you are in to really geeky things. :-)
    The "List" option will load the index listing into !Edit, and the
    "Print" option will cause the RISC OS printer drivers to print the

      "Entry" shows which index entry this is.

      "Channel" and "Frm / Sub" show the channel, frame and subframe that
      this entry is.

      "Time" shows the time (according to your computer) that this frame was
      cached at.

      "Offset" shows you the offset into the "Data" file where you will find
      this frame.

      "Rqs" will show you how often this frame has been requested, this will
      currently say "0". If you are, or were, running a script file then this
      may say '!' to denote that it is a cache entry used by the script

      Finally, "NOTES" will say "Current", "Current (old)", "Outdated" or
      "Current" will be used for anything up to your configured time-out, or
      twelve hours, whichever is sooner.
      "Current (old)" is used between twelve hours and your configured time
      out to show the frame is still being treated as current, but it is
      getting old.
      "Outdated" is used after your configured time-out.
      "Deleted" is used when an old frame is replaced.
      You may also see "No expiry (#)" if you have disabled the time-outs,
      the # being the number of hours old the page is.
      Frame "000 / 00" (with a weird date) is an outdated frame marked as
      'deleted', and it should say "Deleted".

    This is the last option available. It will cause the Index and Data
    files to be blanked, effectively erasing the cache. You should do this
    if the cache grows too large. The exact definition of 'too large'
    depends upon the speed of your computer and how long you are prepared to
    wait for the cache to be searched, but I would suggest that if the index
    shows more than 1000 entries (in total), or over half of them are no
    longer current, you should flush the cache.

  Sometimes you may see cache entries with a date such as "1st January 1900".
  These are 'deleted' frames, which have been deleted by the script
  interpreter. You can still view them.

  The cache is automatically compacted, and outdated/deleted frames removed,
  every time you run the program. Thus, it is only rarely that you are likely
  to need to flush the cache.

            WINDOW. You can double-click on ANY valid frame shown, even
            expired frames, to show them in the viewer.

Preferred pages
  This stores your preferred pages. I won't say any more as it is pretty
  simple really.
  I've tested it with 32768 entries (and a harddisc, of course!). :-)

Online help

  From the iconbar menu is a help option. This will open the teletext browser
  with page 000 loaded. Pages below 100 are not valid on teletext, so this
  software uses them to implement a built-in guide.

Network issues

  !Teletext is quite an old application. Thus, it originally stored its
  configuration, data, and cache internally. Indeed, it is still set to do
  just this.

  However this is not of much help if !Teletext is being shared from a
  read-only applications server, be it Level4 or something else.

  As of version 1.27, the location of the cache, data, and configuration
  files are controlled by system variables. By default, the "netsetup"
  application looks to see if Teletext is being run from Econet or ShareFS.
  If so, then the values will be set up as follows:
    What   Variable           Where
    ====== ================== ==============================================
    Cache  <Teletext$Cache>   Directory "Teletext.Cache" within !Scrap.
    Pages  <Teletext$Pages>   Directory "Teletext.Pages" within !Scrap.
    Temp   <Teletext$Temp>    Directory "Teletext" within !Scrap.
    Config <Teletext$Config>  File "Teletext.Configure" within <Choices$Dir>

  Otherwise, the older setup style is retained:
    What   Variable           Where
    ====== ================== ============================================
    Cache  <Teletext$Cache>   Directory "Cache" within !Teletext.
    Pages  <Teletext$Pages>   Directory "Pages" within !Teletext.
    Temp   <Teletext$Temp>    Within !Teletext.
    Config <Teletext$Config>  File "Resources.Configure" within !Teletext.

  An alternative you might prefer for use stand-alone is to hardwire the
  settings to those used for the networking option - ie storing things in
  !Scrap and the settings in Choices.
  To do this, open both !Boot and !Run within !Teletext, and remove:
    %WimpSlot -min 8K -max 8K
    %Run <Teletext$Dir>.netsetup
  Replace with:
    %CDir <Wimp$ScrapDir>.Teletext
    %CDir <Wimp$ScrapDir>.Teletext.Cache
    %CDir <Wimp$ScrapDir>.Teletext.Pages
    %CDir <Choices$Dir>.Teletext
    %Set Teletext$Cache  <Wimp$ScrapDir>.Teletext.Cache
    %Set Teletext$Pages  <Wimp$ScrapDir>.Teletext.Pages
    %Set Teletext$Temp   <Wimp$ScrapDir>.Teletext
    %Set Teletext$Config <Choices$Dir>.Teletext.Configure

The Utilities


    If you have tuned your Ground Control teletext system, why go through
    all that bother to retune !Teletext? Simply make sure both the Ground
    Control software and the !Teletext have been seen by the filer (but not
    Then run this software and it will create a basic configuration file for


    This provides a procedure and a wrapper for it. The procedure fetches
    all the frames of the specified page, and exits when it has done so.
    By default, it is set up to fetch all of the "Movies at 9 on Channel 5"
    information. You are supposed to run it in a taskwindow (when you will
    not be using !Teletext, obviously) and let it get on with it in the
    You will need to have a rudimentary knowledge of BASIC in order to use
    this utility. It is supplied in plain source form. Hack away!


    This is an off-line teletext frame viewer (dedicated to Emlyn Owen).
    Upon loading, it will try to catalogue the contents of the !Teletext
    frames directory ("<Teletext$Dir>.Pages" - where frames are stored if
    you clicked Okay to save. It will ask you to enter a filename. Once you
    have done so, the screen will change to MODE 7 (the teletext mode) and
    the frame will be displayed for you. Press SPACE to exit.


    This will unlock a previously locked configuration file. If you keep the
    configuration locked, hide this program.

    If you are in a school environment, and you are worried about smarter
    pupils downloading the !Teletext distribution for the unlocking program,
    the easiest way to protect your configuration is to set it to be locked
    (thus, !Teletext will not attempt to update the settings when quit) and
    then simply share or serve the Configure file as read only.

So what's so good about Teletext?

  Teletext is free, simple and up-to-date (well, mostly). It is broadcast in
  the vbi lines of your television signal. Play with the vertical hold on
  your television. You'll see it there, a few lines of blinking and flashing
  dots above your normal TV picture.

  These frames contain up-to-date news, TV guides, chat and lots of
  advertising (if you think ITV/C4 have a lot of advertising, you obviously
  haven't seen Sky Text!!!). BBC2 has a good range of information on shares
  and sports.

  By default, Teletext offers frames 100 to 999 broken into several
  Not all magazines are used.

  However, some channels use additional magazine frames, in the hexadecimal
  frame number range. One example was Bamboozle on Channel 4 (are they still
  doing it?). Another example is the hidden Reuters stuff on CNN.

  There are even a few test frames - keep your eye on the header line as it
  scans through every frame and see if there are any that seem out of
  sequence. Some broadcasters seem to like "7FF".

  For whatever reason, these frames aren't supposed to be directly
  accessible with a TV keypad (except via FastText).

  Tough. :-)

The shameless grovel

  Like anybody, I would appreciate something in return for coding this...
  Maybe a meeting with Alyson Hannigan... Or Samantha Mathis... Or...

  Failing that, if you have any esoteric 'Archie' hardware that you no longer
  have a need for (old co-processors, mono scanners, digitisers, I/O podules,
  and the like). Or, if you have one of the earlier digital cameras (ie, the
  lower resolution type that plug into a standard serial port)...

  Money is good too... Uh, on second thoughts (after looking at the currency
  info on teletext), probably not. Should I invest in Euros? Maybe I should
  buy Lira [*]. It makes it seem like you have so much more money. Can you
  imagine selling the "Would You Like To Be A Millionaire" [TM] format to
  them? And when they win you give them a hundred quid. :-)


  Solid lumps of Gold. Nobody can argue with the real deal. Metal has value,
  don't you think? So maybe if you could send me some Gold? Failing that, a
  metric tonne of pre-stressed steel RSJs? A few aluminium drinks cans? A
  lousy ring-pull?

  Aw, c'mon! :-)

  [*] This comment was written pre-Euro, but left in as I found it amusing.


0 to F
   See hexadecimal.

   "American Standard Code for Information Interchange". It's a techie
   acronym that means basically a "text file".

   A general knowledge game "for fun" on Channel 4. It uses FastText so you
   can't cheat (normally!).

CNN (properly "CNNI" for the service received on Astra)
   Central News Network International. Ted Turner's news channel for "the
   rest of the world". Interesting in that the 'live' Larry King show and
   other good stuff appears in the middle of the night, due to time
   differences. They pride themselves on impartiality and balanced reporting,
   while managing to be about as biased as possible without the whole
   hand-on-heart "I pledge allegiance to the southern hick gunslinger"...

   My slang for un-Freeze.

   On some televisions, the FastText frames are cached for instant access.
   However more often than not, the FastText system is just used as a series
   of hotlinks to other magazines and frames of interest.
   It is not possible to instantly cache FastText frames for you, as the
   receivers that do that contain sufficient memory/hardware/software to
   support the fetching of several frames at one time.

   A teletext "page". Usually used to mean a "page" as seen on the screen,
   but proper use refers to any and all sub-frames.

Hexadecimal (sometimes spelled "hexidecimal")
   A different number system used by computer programmers due to it's
   closeness to the binary system used internally by the computer.
   In base 10 (what we all learn to count in school), you have the numbers 1
   to 9 which represent the numbers 1 to 9. This is repeated up the scale of
   things, 10 is ten 1s, and 100 is ten 10s or a hundred 1s.
   Hexadecimal uses the numbers 1 to F to represent 1 to 15. There is no
   '11' number, so we begin to use letters of the alphabet. So, far example:
      Denary 10   Hex  A         Denary  7   Hex  7
      Denary 22   Hex 16         Denary 16   Hex 10
   Hexadecimal is just like denary with the exception that you are dealing
   with units that can take one of 16 values instead of 10.
   If you were interested, each hexadecimal digit translates directly into 4
   bits in binary.

Level 1
   The basic specification for teletext. Level 2 is available, but not
   supported by many televisions and receivers. When TV goes digital, all
   this will be junked in favour of a much more modern system with fancy
   graphics, that is nowhere near as computer-friendly and half as fast (!).

Level 2
   The next level for teletext. This allows more colours and better graphics
   whilst being compatible with Level 1.
   Take a look at some of the BBC 2 magazine indexes with !Teletext (or a
   teletext TV), and then watch the rolling teletext presentation they show
   in the off-hours. Notice a difference in the little graphic thingies?

Level 4
   This is the advanced level for teletext, with fonts and vector-graphics.
   You may have seen this in action in train stations on the train
   information monitors.

   A group of 255 frames (x00 to xFF). All the frames beginning with 1 are
   in the first magazine, frames beginning 2 are in the second and so on and
   so forth.
   Magazine 0 is not used, and magazines 10 to 15 are rarely used.

   When the BBC micro was released, it had an SAA5050 chip inside it which
   provided the well-known teletext character set. This has been followed
   through on the RISC OS computer by an emulated MODE 7 (the ARM processor
   is powerful enough to do it all by itself!).
   In fact, all Acorn computers except the Electron (and early machines like
   the Atom, though I believe it was available for both as an extra) provide
   a MODE 7.

   The channel formerly known as "Sky Movies", uh, or was it "The Movie
   Channel"? Why can't they leave things alone!
   Still, it has been MovieMax for a couple of years now. Will it change, or
   d'you think they are happy with the name?
   Of course, this is now only relevant if you have SkyDigital and a valid
   Sky card...

   My Pace satellite receiver. Not top of the range in its time, certainly
   an old heap compared to modern boxes, but gets the job done perfectly
   Above and beyond this you got the sexy bits (front-panel display and Dolby
   Surround) at a less-than-sexy price. Ah well...
   A couple of pounds for a SkyDigital box doesn't seem bad, does it?
   Shame I can't apply.
   Read the "Version" notes if you want to know exactly what I think of Sky,
   and why I'd be tempted to turn them down if they OFFERED me the equipment
   and channels, free, for a year.

   Programme Delivery Control. A new idea where teletext controls your video
   recorder. If you want to record an episode of "Buffy the Vampire Slayer"
   you don't need to worry about recording something else because some lame
   sport event (like the WorldCup) messed up the schedules. PDC will tell
   your video recorder to start and stop at the correct times. The facility
   also exists to pause your video recorder during the advert breaks - but
   that is unlikely to appear on commercial stations as it would switch off
   your VCR during the advertisements - bearing in mind that the commercial
   station's main revenue is from advertising! :-)

   When you drag a sprite from !Paint directly into !Draw (without saving to
   disc first), you are using the RAMsave system. !Teletext does not support
   RAMsave yet. I'll have to wade through yet more of the PRMs to suss it
   all out.

   The blue/grey/black stuff that is floating peacefully (and sometimes not
   so peacefully) over your head. Sometimes it heats you up, sometimes it
   gets you wet. Sometimes it just sits there and does absolutely nothing

   Alternatively, Rupert Murdoch's excuse for a broadcasting company that
   charges viewers a lot of money to watch imported American rubbish (okay,
   Buffy rocks, but can you find one single excuse for "Saved by the bell"?),
   and even more dire home-grown rubbish; all provided to you thanks to a
   satellite dish, and a fancy decoder.

Sub-frame (subframe)
   A single "screen" within a frame. The word "frame" is often used to refer
   to a subframe in much the same way "directory" is used to refer to a

   In the old days, when I were a lad (and all that), BBC2 used to broadcast
   computer programs over teletext in an excruciatingly tragic and dire
   method known as telesoftware. It was a good laugh though, but sadly it is
   now a little bit of history. As computer programs require big chunks of
   memory - it is unlikely Telesoftware will make a come-back.

   What all this is about. If you still don't know what Teletext is, might I
   suggest you make a nice mug of hot chocolate and curl up in bed with a
   nice book?
   You could read "Virtual Light" by William Gibson, and pretend you have
   the faintest glimmer of a clue... :^)

   Ultra-High Frequency, the band television signals are broadcast on.
   In the United Kingdom, this is allocated as follows:
   Channel 21 (band IV) has the vision at 471.25MHz (audio offset +6MHz).
   Channel 68 (band V) has the vision at 847.25MHz (audio offset +6MHz).
   Bands 35, 36, 37 and 38 (583.25MHz to 613.25MHz) were unallocated for
   VCRs, satellite receivers and home computers, but it seems that the
   wonderful government (we're not worthy etc) has allocated channel 35
   (583.25MHz) for Channel 5 in some parts of the UK. Oh fun!
   Note that if you buy a PAL compatible television in Europe, there is a
   good chance it will not work properly with your English satellite decoder 
   or English video deck.
   This is because English equipment is PAL-I, with the audio at +6MHz.
   European PAL equipment is PAL-B with the audio at +6.5MHz. I believe in
   Australia they use PAL-G with the audio at +5.5MHz.
   that! The audio on a video is recorded in digital PCM (hi-fi sound) or on
   one or two linear tracks (like a tape player, but slower and narrower
   which is why it sounds so crappy). The audio is just plain audio. The
   PAL offset stuff happens when the video and audio are modulated for output
   to the television, not before.
   For better quality, and compatibility, rig up some SCART leads. Most good
   videos have a video in and out, and audio in and out. Sadly, many of the
   cheaper British VCRs only have one SCART socket. However I would recommend
   you get to know SCART and learn how to make your own leads, as it is
   highly unlikely you'll be able to buy "the perfect lead" for your setup.
   I've made all my own leads thus far, and it's quite a flexible system
   when you "roll it yourself".

Writable icon
   An icon you can enter text into. Load !Edit, click on its icon then press
   F3. The caret is now in a writable icon...

   Vertical Blanking Interval. Space left at the top of the television
   picture to give your television scanning circuitry time to swing from the
   bottom of the picture back up to the top again. In here is inserted all
   sorts of weird stuff like closed captioning, channel identification and
   teletext. You can see it by playing with the vertical hold control on
   your television. Lots of whizz-bang bits inside your decoder convert that
   meaningless mess of dots into the teletext frames you see.

Known bugs

  This lists the 'issues' that are known about in this release of !Teletext.

    1. Clock check does not recognise time rollover; 12:03:01 is not seen as
       being only two seconds different from 12:02:59.
       This is not a severe problem, it simply means you may get an extra
       prompt if checking the time with messages. In non-message checking,
       the clock will be updated as this will be seen to be a mismatch
       between computer time and 'real' time. However, the update will set
       the correct time, so this is not a problem.
       This will be fixed in a future version of !Teletext.

    2. If you are viewing a frame with 'flashing' text, and you then run a
       script... when the script terminates and the viewer window is
       re-opened, you may see a 'flash' alternate between the frame you were
       previously viewing, and the last frame loaded by the script. This will
       correct itself when the next frame refresh arrives, and is caused
       simply because the script uses the 'current frame area' as it's
       As this is a minor thing, it'll be corrected in a future version of
       !Teletext ... probably by either reloading the previous frame from the
       cache (thus causing a 'flash' update), or by simply turning the flash
       flag off. The former is nicer... :-)

    3. Adjust-clicking the menu does not keep the menu open. Oops.

    4. Reports "The save operation could not be performed (blah)" if the
       <Teletext$Pages> directory does not exist. While not strictly a 'bug',
       it'd be nice if !Teletext would auto-create this directory, if it did
       not exist.

    5. Double-clicking a file when !Teletext has been 'seen' but is not
       loaded will cause !Teletext to load. That is correct. The clicked file
       will not be loaded into !Teletext. That is NOT correct, it should...

    6. Dragsave does not work. The core of !Teletext was written long before
       I even knew about dragsaves. This will, eventually, be added in to
       !Teletext. For now, it is suggested that you save to disc and then
       load the file into the destination software, even if it's just a small

  There may be other problems that I have not encountered. If you discover
  such a problem, please send me a letter describing the problem.

  Please, though, try to narrow the problem down. Was !Teletext the only
  thing running? (you can discount the RISC OS apps, like !Edit and !Alarm..)
  Is the problem repeatable? If so, please describe EXACTLY what steps are
  required to make the problem occur. If this is your first letter to me, or
  if you are using a different computer, please also describe your system so
  I know what it is running.

File formats

  Page data:
    !Teletext saved frame, filetype amp;112.
    Files are 1080 bytes, laid out as follows...

    Bytes 0 to 1039 are split into 26 rows of 40 characters. Row 0 is the
    header. The page information is on rows 1 to 24, and row 25 is used by
    pages with FastText links.
    The data is not normally human-readable, you should OR each byte with
    amp;80 before use.
    There is no end-of-line terminator. Each line is padded with spaces
    until the start of the next line.

    Following the page display are a series of words:
      +1040  Frame address of FastText green page
      +1044  Frame address of FastText red page
      +1048  Frame address of FastText yellow page
      +1052  Frame address of FastText cyan page
      +1056  Frame address of magazine index page
      +1060  Frame address of index local to the currently selected page
      +1064  Unused
      +1068  Page CRC
      +1072  Frame and subframe address of this page
      +1076  Byte giving language of page
      +1077  Byte giving language of header
      +1078  Unused byte
      +1079  Unused byte

    The languages are:
      0 English
      1 French
      2 Swedish
      3 Czech [not supported]
      4 German
      5 Spanish
      6 Italian

    Frame addresses are in the form amp;1230004, which means
      Magazine 1,
      Page 23,
      Subframe 4.
      In normal terms, that is page 123, and the fourth one to have rolled
      Use (frame% >>> 16) to strip off the subframe number, and (page% << 16)
      to convert a page number to a frame address.

  Cache data:
    The cache "Data" file is simply a collection of standard frames (as are
    desribed above). Each is at an offset of 1080 bytes, and are indexed by

  Cache index:
    This aids in keeping track of the cache entries.

    It consists of a series of 20 byte entries, one for each frame in the

      Byte        0 : Channel.
      Bytes  1 -  4 : Frame and subframe number, in hexadecimal (0 means
                      frame deleted).
      Byte        5 : Currently unused.
      Bytes  6 - 10 : RISC OS 5-byte time value when frame written to
                      cache. If bytes 7-10 are zero, the page is flagged
                      as to be deleted).
      Bytes 11 - 14 : Word showing offset into data file.
      Byte       15 : The number of times this frame has been requested
                      (will usually say '0', but cope with other values).
                      Bit 7 is set by the script interpreter to mark the
                      frame as being one of its own.
      Bytes 16 - 19 : Reserved for future expansion.

  Configuration file:

    The configuration file is a series of PRINT#/INPUT# values. A lot of this
    could probably be better represented as a bit field. However variables
    are used, and are the quickest method, so that's what has been done here.
    I'm not saying it's good, just that it's practical. :-)

    Repeating 9 times - channel tuning:
      Channel name (string: 28 bytes (inc. terminator))
      Channel tuning (integer: 21-69)
      Channel fine tuning (integer: -50 to +50)
      integer: not used
      integer: not used
      integer: not used

    Repeating 6 times - no longer used, set to null values.
      String, integer, integer, integer

    Use Teletext palette? (integer: TRUE or FALSE)
    Vertical or horizontal pane? (integer: TRUE or FALSE)
    Check clock at start? (integer: TRUE or FALSE)
    Clock check with no messages (integer: TRUE or FALSE)
    Automatically open viewer at start? (integer: TRUE or FALSE)
    Default channel at start (integer: 1-9)
    Use cache? (integer: TRUE or FALSE)
    Clear cache on exit? (integer: TRUE or FALSE)
    Cache expiry (integer: 0-96)
    Allow script execution (integer: TRUE or FALSE)

    12 integers for future expansion, currently set to zero.

    Configuration locked? (integer: TRUE or FALSE)

    If using !Teletext from a centralised location (ie, some sort of server)
    then the best way to prevent any unwanted meddling with the configuration
    file is to share it read-only. When doing this, you should set the Locked
    option, otherwise !Teletext will try to update the configuration when
    On network servers, set the access to WR/r.
    With ShareFS (Acorn Access), use the -readonly option.

  Preferred pages file:

    This file is a series of PRINT#/INPUT# values.

    Integer: Number of entries in the file.

      String : Entry name, up to 32 characters.
      Integer: Page number, in hex. (ie, amp;101, not 101).
      Integer: Channel TSDP identity, or 0 if omitted/unknown.
      Integer: Channel number (1-9).
      Integer: Reserved for future expansion.
      Integer: Reserved for future expansion.


Only the major transmitters for SOUTH UK are listed. There are far too many
small relay stations to list here. If you are really stuck, you should
contact your local television station. Alternatively, get !Teletext to search
for a signal, and see what comes up.

   Location       BBC1    BBC2    ITV     Ch4     Polarisation    ERP (kW)

   Blaen-Plwyf    31      27      24      21      Horizontal       100
   Carmel         57      63      60      53      Horizontal       100
   Llanddona      57      63      60      53      Horizontal       100
   Moel-y-Parc    52      45      49      42      Horizontal       100
   Presely        46      40      43      50      Horizontal       100
   Wenvoe         44      51      41      47      Horizontal       500
West Country:
   Beacon Hill    57      63      60      53      Horizontal       100
   Caradon Hill   22      28      25      32      Horizontal       500
   Huntshaw Cross 55      62      59      65      Horizontal       100
   Mendip         58      64      61      54      Horizontal       500
   Redruth        51      44      41      47      Horizontal       100
   Stockland Hill 33      26      23      29      Horizontal       250
   Bluebell Hill  40      46      43      65      Horizontal        30
   Crystal Palace 26      33      23      30      Horizontal      1000
   Dover          50      56      66      53      Horizontal       100
   Hannington    39      45      42      66      Horizontal       250
   Heathfield     49      52      64      67      Horizontal       100
   Midhurst       61      55      58      68      Horizontal       100
   Oxford         57      63      60      53      Horizontal       500
   Rowbridge      31      24      27      21      Horizontal       500
East of England:
   Sandy Heath    31      27      24      21      Horizontal      1000
   Sudbury        51      44      41      47      Horizontal       250
   Tacolneston    62      55      59      65      Horizontal       250
 This is the transmitter that serves me, so this is to what the default
  settings are applied.

Some less-boring legalish things

  The contents of this package are a proprietary product of Richard Murray.
  The exceptions are the "Teletext" module, which is a proprietary product of
  Colin Granville and has been supplied here with permission, and the high
  resolution sprites which were designed by Roger King and are supplied with
  All the software and support resources are protected by relevant national
  and international copyright law.

  Previously I stated that you cannot disassemble or modify the code except
  where permitted by law.
  But look, provided you don't pass modified versions on to anybody else, and
  provided you don't amend the copyright lines and make like you wrote this
  program, I can't say that I actually CARE if you hack this program.
  Just do me a favour, if you do anything interesting to it, please send me
  the modifications.
  Alternatively, if you do anything interesting with it (like modify it to
  work aboard a yacht on a laptop machine), please email me and tell me. I
  like to know how my software is being used.

  There is no registration fee for the use of this software. I tried that
  once (different software) and one person liked the software so much he
  paid twice. I won't mention how many times the logs indicate it had been

  Naturally, I would like something back for my efforts. !Teletext is quite a
  complex program, and has taken a lot of effort to develop and test. Please
  reward this effort in some way. Even though this software is distributed
  for no cost, it would be really nice for someone to recognize the pain,
  sweat, blood, and caffiene damage due to involved in creating software. We
  won't even discuss what an application of this size does to a programmer's
  mental sanity. It ain't pretty.
  I'm not going to fix a price on this software. I'll leave it entirely up to
  you. And as mentioned in the above section on shameless grovel, I'm open to
  alsorts - not just cash. I'm a geek, and a gadget freak, and I've got a
  steadily growing collection of eccentric podules and other hardware. If you
  have something you no longer make use of, email me. If I'm taken by it,
  I'll even offer to pay postage!

  In no event will I (Richard Murray) be liable for damages, including any
  loss of profits, lost savings, or other incidental or consequential damages
  arising out of your use or inability to use this program, even if I have
  been forewarned of the possibility of such loss or damage.

  That's been copied pretty much verbatim from a standard 'agreement' in
  another package. Is it just me, or is it really slyly saying "The user is a
  Anyway, no liability.

  There is no warranty either, that this program shall behave itself and not
  pee on the floor and chew on your favourite shoes. Of course, if it does,
  then I give you permission to reprimand it and make it sit in the corner
  of your harddisc until it looks like it has learnt it's lesson.
  Please also report the issue to me. All copies should be fully trained when
  released, and I'm keen to know of any that escape when I'm not looking.

Contacting the author
  If you have proper Internet access, you can visit my homepage:

  or (if you don't care about me <sob!>) you can go directly to the !Teletext
  support page at:

  I am no longer 'on-line', so updates will not be so regular. Also, I do not
  have regular access to my email so I won't include my email address.

  Until the beginning of May 2004, you can contact me at my old address:
    Mr. Richard T Murray
    16 Elm View
    GU12 6AN

  what it says on the Royal Mail International Redirection form. I'd like to
  hope that they'd treat "Rick Murray" as "Richard T Murray", but I don't
  want any reason for the post going astray. If it isn't redirected, I will
  never receive it. Period.

  Feel free to send me your comments, suggestions, even criticisms.

  Also, I'm always interested in knowing how my software is being used. If
  you use it for a specific purpose, or with unusual hardware (ie, a receiver
  you built yourself), please tell me about it.

  Also, if you prefer my !Teletext over Octopus' !Teletext+, please tell me
  why. Likewise, if you tried my software and preferred what you were using
  before... please tell me why.
  What's your "most annoying feature"? Do you have a wishlist? Get in touch,
  maybe I can do something about it.

                                                       2003-05-24 @ 20:58 CET

Return to !Teletext index
Copyright © 2003 Richard Murray