The TELSTAR Videotex System

From GlassTTY
Revision as of 14:11, 4 December 2018 by John (talk | contribs) (Connecting and Using the Service)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Welcome Page
Telstar being accessed using BBC Basic for SDL
Telstar being accessed in 2018 using a Torch CPN based computer using Torch's own Uniview software
Telstar Gateway Services
Colossal Cave Adventure
Weather Services
Five Day Forecast
Travel Pages
Highways England Road Reports
Office of Road and Rail
Telesoftware Pages
Service Pages
Engineering Test Page
Up to date News from Reuters
Up to date News from the BBC
The worlds leading liberal voice
Up to date News from the Mail
Up to date News from the Express

The TELSTAR videotex system, developed in 2018, is a modern application that provides a simple viewdata/videotext platform similar to those that were prevelant during the 1980s such as Prestel (https://en.wikipedia.org/wiki/Prestel).

The aim of the system is to provide a Viewdata experience for anyone who is interested in how things 'used to be'. Services in the past typically provided access via the public switched telephone network (PSTN) connection, however, Telstar makes use of a simple internet connection. Three Telstar servers currently operate from Digital Ocean's data centre in London and can be accessed using either a Telnet modem in conjunction with a home computer or from a PC/Mobile device using Richard T Russell's BBC Basic for SDL 2.0 example (see below).

For a full up to date list of content available through Telstar, please se the TELSTAR Directory.

Connecting and Using the Service

BBC Micro, Apple II and other Vintage Systems

The service can be accessed using a vintage computer such as the BBC Microcomputer, Apple //e, Torch or Archimedes using an internet modem, see below.

A vintage home computer requires suitable videotext software. Software designed for use with Prestel will work with Telstar, packages are available for the BBC Micro such as Commstar, or Gazelle for the Apple II. Other software packages produced in the 1980-90s exist for other systems. Ideally the software should be configured as follows

   Baud Rate:   2400
   Parity:      None
   Word Length: 8
   Stop Bits:   1


Each internet modem will have its own method for connecting to an IP Address and Port combination, Telstar is listening on the following endpoints.

There are three instances of the TELSTAR service, these are named 'CURRER', ELLIS' and 'ACTON' respectively, see the article Telstar: What's in a Name. The first two are identical and are available at the following addresses.

   Url:  glasstty.com
   Port: 6502
   Url:  glasstty.com
   Port: 6503

The third service is used to test new features and may be subject to short periods of interruption.

   Url:  glasstty.com
   Port: 6504

Please Note that these endpoints are not Telnet Servers nor Web Servers, they are simply TCP listeners.

RiscOS 5

Telstar can be accessed using RiscOS on modern hardware, such as a Raspberry Pi, using software written by David Pilling called Hearsay II (https://www.davidpilling.com/hearsay.html). This package has been updated to include direct TCP connections. This allows the software to be connected directly to Telstar by simply entering glasstty.com, 6503 when prompted. Naturally this will require a DNS server to have been configured within RiscOS. Alternatively the IP address of glasstty.com can be used.

Windows, Linux, Mac OS-X, IOS, Android and Raspberry Pi

To experience Telstar properly it needs to be accessed by an early microcomputer for the videotex era. However, there are several methods of accessing the service using modern devices.

Richard T Russell has written BBC BASIC for SDL 2.0 (https://www.bbcbasic.co.uk/bbcsdl/) which is available for desktop (Windows, Linux, Mac OS-X, Raspberry Pi) and mobile devices (Android/IOS). This product includes a Telstar client within the General section of the included examples.

Matrix Brandy is a fork of Brandy Basic, a BBC Basic V interpreter written by David Daniels and distributed under the GNU General Public Licence Version 2. It was Developed on a CentOS 6 32-bit machine, tested on both CentOS 6 64-bit and a Raspberry Pi. Matrix Brandy BASIC V for Linux with SDL can be found here (http://brandy.matrixnetwork.co.uk/), it includes a 'Telstar' client.

Internet Modem

The service can be accessed using an internet modem such as the Arduino based device described in the article Building an Arduino Based TELSTAR Modem. Alternatively, for a Wifi based solution, see Daniel Jamesons article (http://www.amibay.com/showthread.php?99878-WiFi-retro-Modem-for-under-a-tenner) or consider a WiModem232 (https://www.cbmstuff.com/proddetail.php?prod=WiModem232OLED).

Content

For a full list of the content available please see the TELSTAR Directory. This is currently a 'work in progress' and will be expanded as the content is developed.

There are four main sources of content, these are described below.

Auto-Generated Content

Currently the system takes several live feeds from the BBC, Reuters, Daily Mail, Express, Stardot.co.uk and others. This provides current and automatically updated news and financial information as well as information relating to arts, culture, sport etc. The data is typically refreshed every 10 minutes.

Static Content

Some static content is provided, this includes index and routing frames as well as those encoded frames used for Telesoftware.

API Content

Some content is created by accessing external APIs. For example, the Weather service accesses the Yahoo Weather API.

Gateway Content

Telstar has a simple gateway facility that allows content from other systems to be presented within Telstar, one such source is the Colossal Cave Adventure game. The adventure game is actually run on a separate server to that of Telstar with the interactive content passing through the gateway service.

Routing

Routing is loosly based on the Prestel system, where navigation can take place by following the menu system, additionally, direct access to a page can be gained by using the special combination shown below.

   *<page number>#
       
       e.g. *890#

Some special combinations allow for pages to be redisplayed of for navigation to a previous page as follows;

   *00 Re-display current frame.
   *09 Re-diaplay current frame (included for compatibility).
   *#  Navigate to the previous page.


'Routing Map' support has been added which means that when following the menu selections pages, data from different IPs can be displayed. This mimics the original Prestel Cross Referencing service and allows full interlinking of content.

There are a few differences between Prestel and Telstar. Under Prestel, page rendering could be interrupted with a keypress. This was very useful in navigating deep hierarchical trees. This does not work with Telstar at the moment due to some nuances with streaming data to a TCP socket whilst listening at the same time. This is less of an issue with Telstar than it would have been with Prestel, as the Prestel database was far larger and the system was therefore far more hierarchal than Telstar. It also helps if Telstar is accessed at the recommended baud rate of 2400 baud rather than 1200 baud that Prestel used.

Prestel used to have a three frame history allowing the special sequence *# to move back up to three frames. Telstar has an unlimited history. All other special sequences used by Prestel are supported.

Telesoftware

The protocol used for Telesoftware is described in the document File:Prestel Telesoft Protocol Low Res.pdf.

The provided TEST program is a tokenised BBC BASIC program aimed at providing a simple mechanism for users to test their respective client systems.

More software will be published as it becomes available.

Copyrights and Trade Marks

It is the aim of TELSTAR to respect all copyrights and trade maeks. Please let me know if you are affected by any software and content that is published on the system.

Gateway Facilities

TELSTAR now features Gateway access to other viewdata systems. At the time of writing it is possible to 'gateway' to CCL4, over at fish.ccl4.org, and to the test version of TELSTAR for a sneak preview of any new features.

In addition, it is also possible to access some none viewdata systems, see #Colossal Cave Adventure below.

Colossal Cave Adventure

TELSTAR, via its #Gateway Facilities can now access the famous 360 point version of Colossal Cave Adventure.

Colossal Cave Adventure (also known as ADVENT, Colossal Cave, or Adventure) is a text adventure game, developed originally in 1976, by Will Crowther for the PDP-10 mainframe. The game was expanded upon in 1977, with help from Don Woods.

Response Frames

TELSTAR includes the facility to present forms to the user requesting input. The frames are referred to as response frames. The first use of this functionality was for the city/town/region search facility for the Yahoo weather service.

Meta-Data

Telstar sends meta-data in a short text response just prior to the first frame being sent and allows clients to automatically update system clocks etc. The meta-data (UTC Date and time only at the moment) sits between the first character 0x0C and a subsequent 0x0C. The char 0x0C is a clear screen character which means that normal users of the system will not see this data, however, clients will.

The first data received from Telstar will look something like the following:

   \x0c20180720T1005Z\x0c ...

The date and time in UTC is shown as follows 20180720T1007Z, meaning 10:05, 20 July 2018 UTC.

PLEASE NOTE, this is only appears on the initial page (page 99), however this page can be re-displayed at anytime by accessing page *99#.

Technical Details

Introduction

TELSTAR is a modern application written in Python 3.x. It is hosted on Digital Ocean cloud based servers in the London data centre and each 'live' server can handle many concurrent connections. The host OS is Linux and all TELSTAR services are managed by systemd.

TELSTAR is character based with each received character passing through a Routing object before being echoed back to the user. Once routing has established the frame to be displayed (rendered) the frame is loaded and takes over responsibility for rendering itself. Routing handles all menu selections, direct page requests and commands such as back or re-display.

Routing

Routing by default follows the pure appraoch, e.g. if the user is viewing page 2 and selects a 1, page 21 will be shown. This is not always appropriate therefore, the Routing object includes an in-memory Routing Map dictionary. In cases where the pure routing method is inappropriate e.g. in the above example where pressing 1 should route to page 800 the Routing Map will define this.

In cases where a page cannot be found or the data entered is invalid, a partial render will update the existing displayed page to indicate such. Once again the Frame object takes responsibility for this rendering process.

Once the initial connection is made and the initial frame has been displayed, a reference to this frame is held. This allows the frame to be updated (partial render) and/or interrogated in order to, for example, extract data from a response frame.

Gateway Pages

Gateway pages provide a means to connect to other systems, for example the Colossal Cave Adventure server. Each gateway page definition includes an associated connection object, this provides the means to connect to other TCP systems.

Pre-Processing Filters

TELSTAR includs a telnet parser to provide better support for telnet modems and clients and buffer protection that hanldes, and discards, application protocol requests e.g. http requests.

Response Processor

Response Frames (frames that can accept data entered by the user) are defined as standard Frame objects but include a collection of Field objects. The field objects include field validations and rendering information and are passed to a Response Processor object when submitted by the user. The Response Processor handles the users request (e.g. get weather info) and generates temporary in-memory frames to provide the results.

The Database

TELSTAR does not make use of a database engine. All static Frame objects are created from the TELSTAR GIT source repository at the time of deployment and stored as pickled Frmae objects. During deployment, the dynamic content frames are built and stored in the same way as the static frames, however, these frames are re-created every 20 minutes in order to update the content.

The Routing Map is also defined within the TELSTAR GIT source repository and is loaded into memory when the TELSTAR service starts.

Acknoledgements

Weather Services

Artwork

Technical Help

References

  • [1] Fedida, S. & Malik, R. (1979) The Viewdata Revolution Associated Business Press
  • [2] Martin, J. (1982) Viewdata and the Information Society Prentice Hall
  • [3] Money, S.A. (1979) Teletext and Viewdata Newnes
  • [4] Stokes, A. (1980) Viewdata: a public information utility (2nd Ed.)
  • [5] Council for Educational Training (CET) (1986) Format Recommendations for Prestel Telesoftware CET

See Also