If you roamed the Earth in the time when every household had a personal computer but only a few had ever heard of something called the Internet, then you probably remember using a modem to dial into a Bulletin Board System or BBS.
At that time, unless you were among the lucky few with access to the early Internet through a University or employer, then about the only way to connect to other people using the computer was to dial a BBS. On a BBS, you could exchange messages posted to public bulletin boards of various topics, send electronic mail to other users (sometimes even relayed to other BBS systems in another city), upload and download files, or even play simple online games. A BBS was an exchange of messages and data in a local community, and an early precursor to the Internet fulfilling that purpose on a global level.
There is still today a small but enthusiastic community of BBS sysops and users. Most are accessible now via the Internet, but a proud few are still available to reach via phone line and a modem if you seek that hit of ultimate nostalgia.
I recently wanted to see what it was like to host a BBS myself. BBS software originally ran on early 8-bit Commodore, Apple, and Atari computers before it later transitioned to more modern 16-bit IBM/PC or Amiga systems near the peak of the BBS age in the early 90s. Even the early 8-bit BBS software was extremely sophisticated for its time, and the more popular BBS software has evolved as BBS hobbyists have continued to tinker with it over the past few decades.
For the purposes of learning about BBS software, I didn’t want something with a steep learning curve or a lot of features. Instead, I wanted something that represented the common features of a BBS, could be run on a Commodore 64, and was as simple as possible. After a bit of searching, I eventually found the perfect fit!
G.S.T. BBS is a real gem! It was almost lost to time, but thankfully discovered and preserved online by Commodore enthusiasts. G.S.T. BBS has all of the basic features: bulletin boards, e-mail, file uploads/downloads, and real-time chat between the sysop and the caller. It also runs on a Commodore 64 and a single floppy drive!
I had G.S.T. BBS running in no time at all on my Commodore 64 using an original 1541 floppy disk drive.
The final (known) version of G.S.T. BBS is v6.0 released in 1987 by brothers Guy and Serge Turgeon, according to the documentation on the floppy:
This BBS program was written and conceived by Guy and Serge Turgeon of Sudbury Ontario Canada. To reach the original GST BBS in the making call (705)/566-7521 at 300/1200 baud 24 hours a day.
After running the BBS for a couple of days, I had a question about modifying the program source code to modify the default new user access level. As the program is compiled to machine code, making a modification is a bit more tricky than if it was BASIC. I starting to wonder if the authors might still have the source code squirreled away somewhere.
So, I located Guy Turgeon via the Internet and I sent him an email complimenting him on this excellent work on this BBS and asking my question about the source code. I got lucky locating the correct person, and I was very happy when he replied. I think he was just as surprised to remember this software and find it still in existence and being used!
Hi, Guy! – if you’re reading this. 🙂
Oh! WOW! Thank you for reaching out! Yes, I am the original author. I would have been in high-school and around 16 years old at the time. The assembly code was really only for the RS-232 I/O, the rest was in BASIC - but based on your ask, I must have run it through a compiler to speed it up and get rid of the interpreter at run-time. Unfortunately, I no longer have a copy of the software. I would love to get it and run it in an emulator of some sort if you could share.
Running G.S.T. BBS on the VICE Emulator
I am providing instructions next for running G.S.T. BBS on an emulator, as I realize that not everyone has or wants to run software on original hardware. What follows is a guide on how to install and run G.S.T. BBS using VICE, the Versatile Commodore Emulator. These instructions will get you up and running. This assumes that you have already downloaded the G.S.T. BBS D64 disk image and also have access to a Linux (or other) machine on your network that has ‘tcpser‘ installed.
With VICE up and running, first create and attach an empty disk image on device 8. This is where the BBS data files will be stored.
Next, attach the gst-bbs-v6.0.d64 disk image to device 9. On real hardware you can do this with one drive and two floppy disks, but in VICE it is easier to just load the program from device 9.
Now that you have the BBS program disk attached on device 9 and and empty data disk on device 8, you should be able to load a directory listing from both of these devices to verify that the disks are present and ready.
Before running G.S.T. BBS for the very first time, you need to load and run the GST BBS EDIT program. This will create all of the necessary configuration and data files on the data disk that are required to run the BBS.
First select the [+] Create files option, and this will create and save the initial set of data files to the data disk.
Next select the [-] BBS setup option, and you will be able to configure the BBS. You will almost certainly want to set the modem type to Hayes compatible [lo]. This is the standard for any modern Hayes modem where the Data Carrier Detect (DCD) status will be set to HIGH when the modem is online, including emulated modems like ‘tcpser’ or the Zimodem firmware for the ESP32/ESP8266 chipsets.
You will also want to change the sysop password now.
You can optionally set up things like Bulletin Boards or Upload/Download levels here.
Now that you have created the data files, you can do a soft reset in VICE to exit the GST BBS EDIT program with the drives still attached.
Before running the BBS itself, we need to configure the RS-232 serial device in VICE. To do that, go into VICE Settings, and select RS232 from the Peripheral Devices section.
Check the box to Enable Userport RS232 emulation.
Then set one of the four RS232 devices to the IP address and port 25232 of a Linux (or other) machine on your network where you can run tcpser. In my case, this is 192.168.1.111:25232 (shown below). Set the Baud for that device to 300, and make sure to check the IP232 option.
Finally, make sure the Userport RS232 emulation device above is set to the Serial device you just configured and that the Baud rate matches. In the example below, you can see that the Device immediately beneath the Enable Userport RS232 emulation option is set to Serial 1 at 300 Baud (shown below).
Make sure Save Settings On Exit is checked, and then close the Settings dialog.
Now, go to the terminal of the Linux machine with the IP address that you just specified, and run the following tcpser command:
tcpser -v 25232 -p 6400 -tsS -i 'K0' -l 7 -s 300 -N “/tmp/noanswer.txt” -B “/tmp/busy.txt”
I’m not going to explain tcpser in depth here, but in short this is telling tcpser the following:
- The TCP port for VICE is 25232
- The listen port is 6400
- The modem initialization string is ATK0, which I believe disables flow control in tcpser.
- Log at level 7 (DEBUG)
- Trace both modem input (s) and modem output (S)
- Run at 300 baud
- Send the specified No Answer and Busy files in those cases
Note: If you want to run GST BBS on a real C64 rather than VICE, replace the “-v 25232” option with “-d /dev/ttyUSB0” specifying the serial port on the Linux machine that is connected by serial cable to the RS-232 device on the C64.
Also if you are using a real modem or serial terminal, be aware that GST BBS sends an <ENQ> control character at some of the user prompts. If your callers are using a terminal program such as Minicom, they will want to check their Terminal settings (Ctrl-A + T in Minicom) and make sure they are not sending a text string when receiving an ENQ. By default, Minicom will send “Minicom X” for an ENQ and this will make it impossible to use the BBS software. Remove this string in the terminal settings so that it just sends an empty string (no data) when receiving ENQ.
Finally, you are ready to load and run the ” GST BBS MAIN” program! Press enter to have it read the data files from device 8.
When the BBS program loads, you should see data recieved in the tcpser logging. If so, then you know that VICE is correctly configured to send RS232 serial data to tcpser on the Linux machine.
This is the moment of truth! Telnet to port 6400 on the Linux machine, and you should connect to the BBS!!
If the BBS software answers but hangs up on you immediately afterward, make sure that the modem type is set to Hayes compatible [lo] in the BBS Setup.
You should now be able to connect and create a new handle to log on and interact with your BBS!
Good luck and happy BBSing my friends!!