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)