Recently I decided that I wanted to run another Color64 BBS. I don’t have any of my Commodore hardware nor do I have room in the junk room my wife calls my “office”. So I went looking for a way to emulate it. I needed to use what I had around me. Which in this case was a machine I had running Vista that was flaky. So I put Linux on it. Low and behold, the issues I had with Windows disappeared. That and suddenly I had access to software that wasn’t easy to setup in Windows.
People kept telling me that others had run a BBS in emulators but I wasn’t able to find hardly any information on how to do it. The only information I found was how to hook a real C64 up to a PC or how to use a hacked version of VICE on Windows machines. Both ways referred to using a program called “tcpser” with some commands you had to go on blind faith that they would work. They didn’t explain those commands. Tcpser on Linux has a man page, but there are still mysteries on how to use it properly with an emulator. So let me explain what I have found out.
This information should work for all versions of tcpser. My examples will be with Ubuntu 12.04 distribution of Linux. First we need to download it. Ubuntu bundles everything we need for it. Just use sudo apt-get install tcpser
Next we run the command in a terminal window. The window has to stay open the whole time the BBS is running. Unless you detach the process with something like tmux. But that’s something for a different day. 🙂
tcpser -v 25232 -p 6400 -tSs -l 7 -i "k0" -s 1200 -N "/tmp/noanswer.txt" -B "/tmp/busy.txt"
Let me explain what this command is doing. It doesn’t seem to be documented well enough for a newbie to understand it well. 🙂
- -v 25232 This is the port tcpser will present a virtual modem to VICE on. In this case we chose 25232. This can be any port as long as it is free.
- -p 6400 Tells tcpser what port to listen for incoming “calls” on. In this case we chose 6400. Once again, it can be any open port that other services aren’t using. This is the port the caller will be connecting to.
- -tSs Activates the S & s Trace flags. This is entirely optional. The ‘S’ is to put modem output to stdout. The ‘s’ sends modem input to stdout.
- -l 7 This is the logging level. In this case we chose the most verbose of 7 just to see how it works. You can also choose 0 which is the default of no logging, or 1 which only shows fatal errors. Those three levels were the only I could find in the documentation.
- -i “k0” This is the initialization string. It takes most of the commands in the Hayes ‘AT’ command set. In this case we are only setting flow control to none. If the BBS software doesn’t know how to answer an incomming call (I don’t know why it wouldn’t. But you never know right. 🙂 ) you could also put “s0=1” to answer on the first ring.
- -s 1200 This will report the incoming call as 1200 baud all of the time. Make sure VICE is set to that baud rate. If not you will get Frame Errors and probably be frustrated as to why this doesn’t work.
- -N “/tmp/noanswer.txt” This command points to a text file that will be sent to the caller if the software on the receiving port fails to issue the ata command. Make sure tcpser has permissions to read this file. I chose /tmp/ as everyone should have access to that folder. You might want to chose /etc or /var though.
- -B “/tmp/busy.txt” Points to a text file to be sent if the server is already taking a call. This way someone trying to access your board knows at least that you are up and haven’t crashed or abandoned your hobby. The same permissions and folder warnings apply for this as the -N command above.
Armed with this information you should be able to set up your “modem” to either call other BBS’s or setup your own BBS. If you discover my settings to be wrong or have new insight I overlooked please add it to the comments or send me an email. It took some time for me to figure out how to use tcpser correctly, hopefully this will save someone just a little time.
Recent Comments