Retro Challenge - 2015/01

Another year and a new global format, due to the fact that in the UK we don't really get a summer (Winter warm-up is basically the same as the summer one) we are now numbering the challenges by month (does this mean we can have mini 2015/03 challenges in-between?).

Mini Me...

This year I've got a miniature clone on the way due in February so I'll be fairly busy sorting out various things ready for the new arrival.
Thus this time I'm going for a small project that I might actually have chance to finish.

The Challenge...

As you may have gathered I'm a bit of an Acorn Computer nutcase, my collection of various machines is no longer welcome at my girlfriends so I have to hide my precious at an undisclosed location and secretly sneak them into the house when she's not around.

I recently acquired a set of SJ Research MDFS units from a friend and have all the elements to connect my BBCs together using an Econet network (Acorns cheap networking solution for the time).
Econet is basically a bus network with a clock signal to synchronise each of the hosts.

Initial Econet Network

To create the initial network I will need the following...

  • BBC Micros (I Have lots)
  • Econet cards for BBCs (these are internal cards that upgrade the BBC to allow for Econet use)
  • Econet clock (This provides the clock on the network and synchronises the machines)
  • Econet terminators (These are basically a set of resistors that sit at the end of the cables to stop reflection of the signal back down the cables)
  • Cable (Need to wire these up)
  • Socket boxes (Ideally I'll pull out the socket boxes that provide and easy way to plug the machines into the core network cable)

To start with I will get the clock working and set each machine an ID on the network, they should then be able to use basic services.

File Server

Once the main network is setup I want to look at getting the MDFS file server running, the initial bits to get working are...

  • SJ MDFS (This is a fileserver for the Econet network, it can also act as a clock but we are not using it for this) (I have 2 of these so hopefully at least one will work ok)
  • SJ MDFS Floppy Disk Unit (Add in the ability to load floppy disks and thus boot the system)

Then we can add...

  • SJ MDFS Hard Disk Unit (The SCSI disk unit which will store our files)
  • SJ MDFS Tape Unit (The tape backup unit which I have some backup tapes for, might see if we can restore some data)

Extra bits...

If we get everything working on the MDFS then I have these extra goals...

  • Econet bridge (Allows me to create a fast and slow Econet network, one for the BBCs and another for Archimedes which can have a much higher clock speed)
  • Risc PC / Archimedes (Connect one of the newer Acorn machines to the network, I have an Econet card for the Risc PC which would be interesting to get working)
  • SJ Nexus (This was a newer version of the MDFS that served data via a ATM type networking protocol)
  • A5000 Gateway (An Acorn A5000 which I originally setup to bridge the Nexus to a normal TCP/IP network thus allowing access to the Nexus from newer machines, Ideally I would like to include connecting this to the MDFS via Econet and using it as a bridge to all data sources, it should also allow me to access the internet from Econet enabled machines)


I have promised to do a session at RONWUG (RISC OS North West User Group) around the use of Econet so would like to get a basic network running and setup ready for 21st January.
We can also use this evening to configure bits and play around with various aspects such as the MDFS and clock speeds etc and generally play around with stuff.
Depending on how far along I am we may try and do something cool like get a BBC on the internet.

Can't Wait...

So there is my challenge. Now to get Christmas out of the way so we can get started :)

Acorn Risc PC @ Hull University 1997

Here is my Risc PC from 1997 in my university room. Bought this at the Acorn World show that year.
Acorn disbanded the entire desktop division the year after.

The spec if I remember was..

233 Mhz Strong Arm
32 MB Ram
2 MB VRam
1.6 GB Hard Disk
CD Rom
Network Card
PC Card

Still have the machine and the Viglen 486 that is on the floor below this.

Retro Challenge - 2014 SC - Day 27

Countdown To Failure...

Well its not been going very well on the challenge, probably going to have to concede defeat unless something amazing happens before the weekend.

Another summer of customers projects getting in the way.

Still determined to carry on with the project and actually end up with a fully working system. All of the key blocks are in place it just requires me having much more time available to do stuff.

Tandata Terminal

I did get round to looking at the Tandata TD1100 terminal I bought from eBay a while ago.
It fires up but I just get a black screen on the TV.

It's looking like something is goosed on the machine, according to a manual I found on line it should bring up a dialling menu.
Might strip it down and test the connections etc on the board, can't see anything fried or damaged.

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 SC - Day 2

Source Control

Because I'm lazy I had a large set of development directories that I date stamped when doing the last RetroChallenge. I decided these should really be under source control so that if I change functionality and decide that code I've changed needs to be reverted back to previous version its much easier as I have a proper list of changes to files over time.

The first problem is that my source control server was destroyed when I moved my server to a new data centre. I have a backup of all the source control files but needed to rebuilt a virtual machine and install the source control software before I could start.

Once done I found all the old versions of my source and sorted them into date order, one by one I copied the files over the top of the previous version and checked them in, ensuring each time to removed unused files that had been deleted or renamed in the project. Each time also ensuring that everything still compiled correctly.
Now I have a nice an clean project with all of the changes I've made over the last RetroChallenge so that any code that has been removed is still there if required.

Once complete I then got a fresh version from source control and ensured everything is working.
At this point I found a few issues that need addressing with hard coded machine names (bad I know) which need to be setup in the configuration file instead.
Everything was working fine apart from the terminal program that I was fiddling with back along, somehow I've managed to mess up the line feed and everything is not displayed where it should be, I think this is the actual terminal program at fault in rendering the frame not the backend. I will need to test this against the other terminal program I have to check that is isn't the back end.


Started on the database for my BBS backend which will hold the system frames and control the functionality within the backend.

Tried to make the frame store as compatible with the current saved frame formats that are out there, most of them contain details of the frame owner, permissions and routes to other frames.

As the ViewData system works on frame numbers even gateways etc will be allocated a frame, therefore I have abstracted out the frame details so that I can base other entities on them for future functionality. Started off by creating a page (based on frame) which can hold the code for a static page. These are date stamped so that the system can tell if the frame has been updated. Backend systems such as news feeds etc can update these pages to change content in the system. Also added a gateway (based on frame) which is a frame that takes the user to another BBS, this holds the remote connection details of the other BBS and will be contacted when you navigate to this specific frame type. This allows me to just add frame addresses that access other systems.

The system also allows for multiple systems to be run from the same database, this allows me to have multiple BBS systems running with different content in each. Ideally this may include examples of old BBSs and example Prestel pages.


Originally the entire BBS ran on a PC in my office, this is mainly due to the numerous modems connected to it.

As I have a dialup gateway as a separate module I'm intending to run the dialup gateway on the PC and then have everything else installed on a new virtual server.
This will enable me to have the backend available even if the dialup lines aren't. The backend and database can then run on the new virtual machine and can then talk to the gateway wherever it is.

So ended up building another virtual machine just for this. Installed SQL, IIS (for the web based interface later on) and later once recompiled, the services that run the BBS.

Retro Challenge - 2014 SC - Day 1

Wanting To Start...

Well its gone Midnight and I'd love to be starting on my project but am currently working various things that need doing for customers.
Just got back from holiday yesterday so its going to be a few days before I get started on the project.

Cool Projects This Time Round

Well we have a good number of entries this time round, I've had a good look through and can't wait for the blogs to start updating.


Turtles are cool, I have one of the old ones that looks like a turtle (valiant), needs a little attention but I have the IR interface for the BBC.
Can't wait to see what you come up with. Needs to be programmed using LOGO though Smile


Modula 2, now that brings back memories of my college days.
Looking forward to seeing what you do with the Amiga.


Doom brings back great memories for me, remember setting up a network with multiplayer doom and a custom map of the building we were in.
Would like to see Duke Nukem 3D as well as that was great in multiplayer.


Never heard of the Northstar Horizon so will be looking forward to seeing you resurrect the machine.


Its great to find those old bits of code you started as a kid, looks cool already.
Will be amazing to see it when you finish it off.


Firstly I'm extremely jealous that you have a PDP11 with drives to clean, will be interesting to see what's required to clean them up using DECs procedures.
Creating a ROM monitor sounds cool, why use someone else's when you can make your own especially if you have built the hardware from scratch as well, Nice.


With no Internet to get in the way you will probably get more done, can't wait to see what you get working etc.
Wire the smartphone up to a machine and use as a modem to connect to my BBS Smile


Always nice to have a Mac being restored. There's something great about the old Macs, the new ones are just shiny toy versions.


Not content with one platform he goes all in and is creating for 3.
Will be cool to see the differences between the platforms when you are porting your games.


More cool Apple stuff, a web server running on an old Mac is always a cool sight.


Not content with his current programming languages Michael is creating a new improved version of Basic.
Cool new commands and a new parser, can't wait to see how its done.


Throwing himself in the deep end and keeping it all original by only using the hardware available in the 1980's this looks to be a cool project with lots of challenges.


Can't wait to see the new computer centre once he's moved all his stuff.
I'm currently moving in with my girlfriend and am trying to figure out how to bring the large quantity of retro computing into the house, hopefully might learn some tricks here.


Taking stuff apart is always good, just remember the extra screws aren't really needed when it goes back together.
Will be interesting to see what he manages to play with.


Continuing on his Fahrfall game which already looks great. 
Not happy with distributing his game via tape or disk, seems to be looking at creating cartridges instead, very cool.


Working on the age old problem of data rot, loading up data from old disks and archiving the information is something that we all should do but rarely get round to until its too late.
Lots of added complexity in that the system required is a DEC rainbow.


This is probably my favourite project so far this time round.
Creating an emulator for the WITCH machine is a huge undertaking but the lad is only in the 8th grade, this is exactly what the youth of today should be doing with their time instead of Xbox etc Smile.


Creating anything with LEDs is awesome, can't wait to see the final outcome.


After some cool stuff in the last RetroChallenge he's back trying something that is completely nuts, executing Z80 code in MS-DOS on a DEC rainbow.
I didn't realise that the Rainbow can execute both 8088 and Z80 code, will be closely following out of interest.


VT100 always was let down by the lack of flyi8ng toasters, hopefully that may now be fixed.


If at first you don't succeed cheat, with a cool editor for altering saved games on a RPG called Questron Coronax can do just that.


If successful he'll end up with a whopping 24K of memory available on his Ohio Scientific Challenger 4P, well worth a cool project this time round.


Combining programming and beer, sounds like a winning combination.


A Nintendo in a toaster, don't think I need to describe how awesome this is.


Focusing on the Atari 2600 and hopefully coming up with a new game or hardware device, can't wait.

Good Luck everyone...

Retro Challenge - 2014 Summer Challenge

More ViewData BBS Server

After winning a prize in the last Retro Challenge, I'm intending to continue on with my BBS system and add more functionality and content to it.

Now that the basic ViewData server and BBS system work I intend to do some of the following...

1) Setup a login / signup system and proper welcome page for the BBS.
2) Add some static content and various information pages.
3) Finish the database driven backend so that the pages are served from a database (this will also allow me to run multiple BBS setups with different content).
4) Load pages from archived Prestel data into one of the BBS instances.
5) Create a messaging system (possibly integrate into email).
6) Add a chat area, might have different rooms for conversations.
7) File download area (Possibly using CITT, might also support Xmodem etc).
8) Various feeds providing information such as the news and weather.
9) Gopher client
10) Gateway between BBSs.
11) Some kind of MUD or text adventure.
12) Visitor list and statistics.
13) Message wall for visitors (for WGOODF so that he can show his Dragon was connected :) )

ViewData Terminal Software

I started on a terminal program that provides a ViewData terminal that will connect to the BBS.
It mostly works but needs some polishing. As part of the clean up of the code I want to convert the graphics part so that it works on WPF and Silverlight.
The intention is to then host this on a web page so that you can access the BBS from the web.

Required Items

To start off I need to ensure the following...

1) Ensure that the PC and modems are all setup correctly and ready to go.
2) Re-enable the VOIP lines (I now have several setup so we could expand the BBS to have 4 modems).
3) Solder a set of cables for the BBC to connect to modems. (Had an issue with the connectors I bought, they won't fit in the hole on the modem so need to rethink this.)
4) Try and get terminal server box to accept incoming connections and connect out on modem.

Terminal Hardware

I've already managed to use the following to connect to the BBS...

1) Alcatel TerminalTel 257 VideoTex terminal.
2) Acorn Communicator. 
3) Sinclair Spectrum 48k with Prism VTX 5000 modem.
4) ConnectVX (A windows ViewData client).

Due to cabling issues I didn't manage to get the following connected, the plan is to get the following cabled up and connected...

1) BBC Micro with Acorn Prestel adapter. (Was still waiting for Prestel adapter to arrive during 2014 WW)
2) BBC Micro with Prism modem (1000 & 2000). (Needs cables making, had issues due to size of connector)
3) BBC Micro with Pace Nightingale modem. (Needs rom and cable creating)

I also have the following that I'd like to get connected...

1) Acorn A3000 with old modem.
2) Tatung Einstein + Prism Modem 1000 (Needs comms software)
3) Tandata TD1100 (Needs cleaning up and checking it works)