RetroChallenge - 2018/09

2018/09 RetroChallenge...

Back several years ago I won the Retro Challenge with my ViewData BBS.
I want to fully re-write it using .Net Core to provide a more streamlined version with the ability to run on other platforms other than Windows. 

My goals for this are as follows...

Cross Platform / Containerisation

I want to be able to run the new system on multiple platforms including cloud based services such as Azure.
I want to be able to possibly containerise the system so that I can easily deploy multiple copies via containers such as Docker.

Pipeline With Modular Framework Components

Create a modular framework that allows pipelining of components together.
Currently the system has a fixed coded pipeline, I want the new system to have no requirement on any component that plugs into the pipeline.
This should allow me to create a generic BBS alongside the ViewData version by switching out components.
I also allows me to insert new functionality into the pipeline just by adding in new components.
The configuration of the pipeline will not be fixed and will be set in the configuration files.

Connectivity

The system needs to be able to handle both direct Telnet and dial up connections.
I intend to create the same sort of gateway for Dial up as before.
I also want to ideally have a web based terminal that can connect to the system. I have seen an example of a Minitel system doing this with Web sockets and may look at creating a gateway to allow this.

Commands

The system will respond to the standard * and # commands that the original Prestel system did. It will also allow for the use of keywords to quickly navigate to pages.
Basic command and navigation will be provided by a module that will allow the user to navigate between pages on the system.

Input Forms

I previously started on a prototype input mechanism that allows for input fields to be defined.
I want to expand on this and provide a framework for creating entry forms and applications.

Graphics

A library of utilities for mapping graphics to areas of the screen would be useful. I would like to be able to load in images / sprites and have the system map them to the correct graphical output. Colour changes and mapping of colours would need to be optimised by the system to get the best output available.

Screen Optimisation

When updating the screen the system creates a buffer on the server side and remembers the state of the screen.
I want to be able to do clever things such as scroll / change areas of the screen without re-drawing the entire screen.
There are commands for moving the client cursor so I want the system to be able to calculate the commands to send to change just the parts of the screen that are necessary to minimise the amount of traffic required and to speed up client rendering. 

Telnet Gateway

The previous system had a telnet gateway that can connect to other online system and pass through the data.
This allows for connecting to other online only ViewData BBSs such as CCL4 and the new Telstar system. 

Telesoftware Implementation

The original Prestel system had a mechanism for downloading software via multiple pages.
A client could run special software that would move through the pages reading various embedded headers and encoded body data to retrieve data.
I would like to have the system be able to index various retro files and allow the client to download them.

Mail System

A mail system that allows users to send (internal) or maybe later full email needs to be implemented. I may try and make it reasonably authentic to the original Prestel by using the built in user ids to send message between users.

Search Engine

An implementation of a simple search engine that allows users to search Google and return results in a paginated way would be nice.

Twitter Feed

I'd like to have various twitter integration points. Ideally the system will tweet events that happen in the system such as users logging in and out and possibly display twitter feeds as pages in the system (these may be built offline and served as static pages).

Background Jobs

To update certain pages I will require a backend agent that updates static pages with content. 
The system may contain template pages that can be used by these agents to create content.
Automatic content such as Weather, news and other content that can be refreshed periodically will be created by background jobs.

Content

The system will need static pages defined to add interesting content to the system.
There are a lot of original pages that I'd like to use as a base for certain parts of the system to give the users an experience as near to the original as possible.

Other 

Lots of other stuff I've either missed or will think of later...

The chance of me actually getting a large amount of this done is not very likely but I am away at the ABUG (Acorn BBC User Group) meeting for the weekend of the 8th so that would give me a reasonable time period to actually start something.

Retro Challenge - 2017/04

2017/04 RetroChallenge...

I'm supposed to be demonstrating a ViewData system at the Wakefield RISC OS show at the end of April where I have a stand booked.

Therefore my Retro Challenge is to sort the stuff I need for the show...

Re-Write BBS Software

I wrote an example BBS system for a previous Retro Challenge (and won :)). I want to re-write the system to make it more expandable and easier to pipeline the components so that they can also be used for generic BBS systems as well as the more specific ViewData one.

Setup Example Pages

Once the system is up and running I need to provide some actual content for people to explore while connected to the system.

ViewData Demonstration Machines

On the last Retro Challenge I wanted to setup a set of 3 demo machines that can be used for connecting to my ViewData BBS. The idea is that I want to have a set of machines setup to show the "Internet" in 1985.
Each setup will consist of a BBC Micro, Cub Monitor and Acorn Prestel adapter.

I have decided that I will concentrate on 1 machine and then do the other 2 if I get time.

Each machine will need...

1) Cleaning
2) RetroBriting
3) Fixing / refurbishing (Probably power caps etc)
4) Configuring

TV

I managed to acquire a nice 80s TV that will sit on the side showing clips and videos from 1980 - 1985.
Originally I wanted to show a mash-up of adverts, cartoons and music videos. After looking into the licencing for this it would require me to find the original copyright holders. Therefore I may look at getting a licence for displaying movies and I think could possibly display the BBCs "Micro Men" and possibly the old Micros Live series using the licence (although I need to verify this).

Phone

A while ago I converted a 746 phone to use tone dialling, I have the parts to do a few more and today just received new cables for them. I would like to therefore setup at least one for the demo.

Phone System

Once everything is setup it needs to be connected together using a PABX. I bought another cheap one and intend to use it exclusively for this task. It will be configured to have several modems connected to the server and the machines connected to the ports to allow dialling into the system. Ideally I want to set it up to ring the next available modem so that I can also connect it to a real external phone line (it has 3 connections so I probably will have 1 real line and 2 voip ones).

Server

I have a small HP Micro server that I want to configure as a portable BBS server, I could however run the system as I do now over a VPN from my server in Manchester. To do this I have a Draytek router that can be configured to use VPN and might be setup as a WIFI client to connect to the wireless on site.

Other Stuff

To make the stand at the show more interesting I need to print out some instructions on how to use the system. Maybe a few movie posters from 1980-1985 and also litter the desk with Prestel guides.

Retro Challenge - 2016/10 - Day 15

Slow start...

Well I've been on holiday for the beginning of the month so have had a slow start. Can't believe we are half way through already and I've barely done anything.

ViewData Demonstration Machines

Have managed to get the machines I'm going to use together, they need cleaning and the caps replacing in the power supplies but all of them work ok.

Ordered the parts for the power supplies and they arrived yesterday, next job is to dismantle the units and replace the caps.

Got another PABX to use so that I can keep the one on my desk and have one specifically for the ViewData BBS setup.

Kryoflux Imaging

Did a run of imaging yesterday, started with a few Archimedes games.

Created a raw copy and a disk image for emulation.
Opened the created disk image on RiscPCEmu.

Retro Challenge - 2016/10

2016/10 RetroChallenge...

I'm going to try fairly simple tasks this time round, the intension is that I actually complete them.

ViewData Demonstration Machines

I want to setup a set of 3 demo machines that can be used for connecting to my ViewData BBS. The idea is that I want to have a set of machines setup to show the "Internet" in 1985.
Each setup will consist of a BBC Micro, Cub Monitor and Acorn Prestel adapter. I also want to get a nice 80s TV that can sit on the side showing clips and videos from 1980 - 1985.

Each machine will need...

1) Cleaning
2) RetroBriting
3) Fixing / refurbishing (Probably power caps etc)
4) Configuring

Kryoflux Imaging

For the last RetroChallenge I setup a PC to do my software imaging using a Kryoflux. I have since sorted the machine and it now has all the software I need to image disks.
I have a large amount of software that needs imaging, I'll start with some of the BBC titles and then continue with the Archimedes software.

Pimped Out Master

I currently have a BBC Master on my desk but I'd like to fully pimp the machine out.
I've also looked at doing a custom black paint job on the machine (I have special Vinyl paints so may give that a go).

So there are my goals, we'll see if I can actually accomplish any of them next month :)

 

 

Retro Challenge - 2014 SC - Day 2

Plain Text Gateway

As the dial up part of the system is separate from the main BBS I'm going to look into creating a plain text (ASCII) gateway that removes the ViewData codes and provides a generic interface for standard machines to connect to.

ViewData connects at 1200/75, the system needs to be able to take other speeds including modern modems.

Most of the ViewData characters are compatible with ASCII although there are other mapping that will need to be done to correct certain characters.
There are a whole set of graphics characters that are used to create ViewData graphics, these are basically just standard characters that have been escaped.
ViewData uses escape codes to change colour, change to graphics mode and various other effects such as flashing text. This will need to be removed from the ASCII stream.

Unlike most ASCII BBSs the ViewData screen is a set size and doesn't scroll. Therefore any page will need to ensure that the ASCII screen is cleared before sending any page to the client.

Keyboard entry on the incoming system needs to be mapped to the correct character. Also there are several shortcut keys on most ViewData terminals, these provide navigation such as # *0# etc
The client will need to enter the keyboard commands in full or map a function key to send the correct string to the server.
Basic functionality should work as most pages use the numeric keys and the hash (pound in the US) to move to the next screen.

Once the basic functions are there I may look into getting more feature rich terminals working including maybe getting coloured ASCII working.

Retro Challenge - 2014 WW - Day 23

Entry Forms

Managed to do a little more on the entry forms for the ViewData system.

The system now navigates from field to field and allows for cursor control and correction of entries in each box.
The user can use the cursor keys to edit the entries and move between fields. Keys such as delete also work correctly and the cursor is constrained within the field area when moving around.

Initially I've implemented a text box, today I added a new field type called password which is based on the textbox but hides the characters entered and changed them to set character.

The demo screen below shows the output from the screen where I have entered a bogus user and password and it has been extracted from the field model and displayed at the bottom in white.

This framework is to be the basis of the applications I want to create within the system. The first thing to implement will be a proper login and signup page at the start.

Retro Challenge - 2014 WW - Day 15

VOIP Setup (Again)

Reconfigured my other firewall that has VOIP built in to sit on one of my Internet facing IPs.

I have configured 4 VOIP lines each with a local rate number (not like the 1980s where it would cost you 10p a minute).
The lines are using the G711A codec which is uncompressed, this uses more bandwidth but should be able to cope with the limited frequencies used by the V23 modem.

So to dial into the system you can contact it on...

(0845) 0950081

Just set your modem to V23 (1200 / 75, 7E1) and use a suitable ViewData / VideoTex terminal.

I will be setting up the other lines next week.

Prism VTX 5000

I managed to get hold of one of these units on ebay the other day, this was the piece of kit that I remember using at a friends house when I first used Prestel.

Below you can see the manual toggle switch for putting the unit online. There are also Rx and Tx modes that let you connect to other modems instead of Micronet.

Tried dialing the server, its very fussy about the line. Managed to get it to connect once but I think it needs to be connected directly to the wall rather than through a long extension lead.

Retro Challenge - 2014 WW - Day 9

New BBS Features

Added some new features to my ViewData BBS...

Menu

Created a new menu from which to select the new options that I've added to the system.

TeleText Pages

I've added some static TeleText pages that are stored as files on the server.
They are loaded in a carousel and displayed in sequence.

I can also use this for displaying saved ViewData pages or my own pages for viewing.

External ViewData BBS Access

I wanted to be able to access other ViewData BBSs from the dial up terminal. As most of the surviving ones are only available by Telnet I decided that I would create a gateway from within my BBS.
When you select the option the system creates a telnet session out to the other BBS and passes data through to your terminal.
Once you have finished on the external system and the Telnet connection is terminated the user is returned back to my menu.

Connecting to CCL4 through my BBS...

What's new? Not a lot since 1996 :)

And logging off...