ATARI 8-Bit Rulez! BBS and Telnet
Thunderdome BBS was born in 1995, running on an ATARI 130XE computer. The software used was BBS Express! from Orion Micro Systems and was already out of date at the time I installed it, but it was a shareware software package and it did the job. A 2400 baud modem was connected to an Atari 850 interface and it went smooth. As storage I used 4 diskdrives, an Atari 1050 with Happy upgrade, Atari 1050 with Speedy DS upgrade, a stock 1050 and a stock Atari XF551 diskdrive. When starting-up the BBS I had to insert a floppy in the Speedy diskdrive which booted up Sparta-Dos with a RamDisk and copied the most important files to the 64KB RamDisk. Then I had to flip the disk to load the BBS and it was ready to go, with the messagebases installed on the 360KB XF551 diskdrive and with the downloads stored on the other 2 diskdrives.

In 1996 I ordered a license to run a more up-to-date BBS package, which was BBS Express! Professional 5.0b. It was much more flexible and was able to network with other nodes. From 1997 to 1999 I was in an international network with nodes from the USA, Canada, Germany and the Netherlands, but as we all know the internet made the BBS scene pretty much go down, untill a few people started to think about ways to run a BBS using the internet as data-connection in stead of using real modems. The first attempts where done by running the BBS software in an emulator on PC systems, but this is not the real thing as no real 8-bit hardware was involved anymore. There had to be a way to use both the real thing and internet. Telnet server software was the key...

As of today there are several ways to emulate a modem. One way is using special hardware that converts all serial signals into TCP/IP signals. (Lantronix, anyone?) Unfortunately this hardware usually is expensive and has much more features then the BBS scene will ever need. On a PC system, software exists to make it possible for old computers connected by a nullmodem cable to think they are dealing with a real modem. The software takes care of all translations from telnet to serial data, and since more and more people have internet using cable or ADSL connections their computers are running anyways, so it looked like a nice solution.

However, the commercial tools available to do this have the same unwelcomed side effect as the TCP/IP to serial hardware converters. They have way too much features, making them expensive. What we need is a quick and dirty tool that does exactly what we want without too much bells and whistles. As for the Atari 8-bit computers, Steven Tucker's
A.P.E. software for Windows made a good start, but it has one problem. It communicates with the Atari 8-bit using it's SIO bus without a possibility to use an RS232 port connected directly to an Atari 8-bit computer. Those who have a Black Box know what the big advantage is of it's serial port: 19,200 baud with CTS/RTS hardware handshake. Another disadvantage is that this software requires an up to date PC system to keep up with the translations between serial port and telnet. Besides of that, I'm already a registered user of the A.P.E. DOS software, which hasn't got the telnet feature built in, and I don't really want to register the same software for the Windows platform for just the telnet feature. I did some experiments using the 850 interface emulation in the DOS version, running A.P.E. in a DOS-box on a Windows 2000 system, with the COM port re-directed to a virtual COM-port, which was in fact a serial-to-telnet software tool. All I can say is that it did work. However it should emulate a 19,200 baud connection, it was slower then a real 19,200 connection using the RS232 port on the Black Box, and the A.P.E. software acts weird sometimes when using real floppydrives connected to the Atari SIO port. When using my Speedy 1050 diskdrives, A.P.E. sometimes thinks it should give a reply to the modem emulator, which is not something one wants.

Anyways, on the internet I found an interesting tool that looked promising. It was a
telnet BBS server tool, designed to hook up a Commodore64 BBS to the internet. Since they used an RS232 interface on the C64 side of the nullmodem cable I thought it would be a plug-n-play operation. Unfortunately, it was not. The C64 BBS in the example runs at 2400 baud, so hardware handshake wasn't required. Another thing is that this BBS doesn't require that a modem is hooked up at the time no connection is made, so the telnet server dropped the DTR line when there was no user connected to the BBS. Problematic, as my BBS does only run when a modem is active, no matter if someone is connected to the BBS or not. This is cause when the BBS does it's events, it takes up the hook to keep the line busy to prevent users to log on at the time events are running, and will go on hook again when it has finished it's housekeeping jobs.

Also, since this telnet server does not really emulate a modem, but manipulates RS232 signals in stead, no real connection string was sent to the BBS at the time a user ''called'' the board, so in my case it would drop the connection immediatly after someone logged on.

Luckily the author decided to make the source code available to all. A little less fun was that it is written in Visual Basic, which is way too much of a distance for a 6502 coder like me. I decided to dig into his code and by looking at the syntax of routines already done in the code I tried to add some extra things to make it compatible with my BBS without loosing compatibility with the original version.
As of today, 27 February 2004, it's running on a test set-up. I modified the DTR issue so that it's always enabled except at the time a user logs off, where it'll drop DTR (and RTS) for a few seconds to give the BBS the time to detect a carrier-drop and act upon. The lenght of time DTR is dropped can be altered by the SysOp. In my case it is set to a safe 6 seconds. In the code this will translate to 2 short pauses of 3 seconds.
It will now also send a proper connection string to the BBS, like ''RING'' and ''CONNECT19200''. The baudrate can be configured in an extra selection box I added, from 50 baud up to 460800 baud and every standard speed in between, which is more then enough for our needs.

Things that are not solved yet are:

* Detect ''ATA'' string at log on. It now just waits a few seconds and then always assumes the ''ATA'' has been sent by the BBS.
* Set the telnet server to ''busy'' when the BBS has sent an ''ATH1'' or similar string.

Those things need more or less really to be solved for smooth operation.
Other ideas to add (but not today!) are:

* Read PC Time/Date on BBS. There is an AT command that reads the time and date from modems which support it. Only a few modems did support it in the past, but the fact a standard Hayes command exists to do it made me think ''why not?''.
* Option to ''BEEP'' the PC speaker when someone connects to the BBS.
I'm probably not the only one who has too much computers stacked in his house (am I?) and to save some space, more systems are connected to the same monitor display. This is true for my 4 PC systems, sharing the same XVGA monitor, and all my ATARI stuff (programming Atari 130XE, Atari BBS 130XE, MegaSTe and Jaguar) sharing the same display. Didn't even mention the Apple system and the Jaguar Developers System which ''fight for their right to party''.
Anyways, it would be nice to be notified when someone logged on to the BBS at the time both my monitors are switched to other systems, and since my server PC has no audio except for the built-in speaker it would be a welcomed feature for me.

[update: 28-Feb-2004]
The Beep-thing is added. The PC speaker now beeps two times when someone connects, and one time at disconnect. It's an extra option in the Advanced menu, so one can enable it, or run it in silent mode.

[update: 07-Mar-2004]
I think I solved the ATA connect issue. It's running in betatest now. When using a countdown counter based on SystemTime it seems possible to loop and poll for modem commands while still going through the required DoEvents procedure. Any Sleep() instruction in the code is now replaced by a similar structure based on the SystemTime counter so the Telnet Server runs more smoothly.

Some links of interest:
The site of Leif Bloomquist , who's software has started my adventure.

Jeff Ledger's Guide to 8bit internetBBS and the PETSCII Telnet BBS forum , despite it's name not just Commodore only, but all 8-bit systems.

Back to Index    Back to BBS info    Top of Page   

Some picture's of the mess required to do it all.

(click to view full size)
130XE close-up overview overview
overview screenshot weather
Back to Index    Back to BBS info    Top of Page