This was a project that allowed anyone on the Internet to instantaneously deploy an old DOS-based bulletin board system from their web browser. The board was then reachable on a TCP port that anyone could connect to.

In the above example, a stock PCBoard 15.0 BBS was reachable at sysop.menu:4163.

A collaboration with echicken, it was meant to light-heartedly poke fun at the glut of stock Synchronet boards. It seemed like what people enjoyed most about Synchronet was clicking through a Windows installer to be able to say “I’m a sysop now!” What better way to feed that urge than by having a website that lets you do the same thing with a couple clicks?

TriBBS Console

The Patch

While echicken wrote the Node.js frontend that made this possible, I was busy at work writing a patch for Bochs. Bochs lacked a virtual modem that a lot of other emulation packages have (for emulating ‘AT’ commands, modem ringing, dialing, etc.) DOSBox has a very comprehensive virtual modem but wasn’t enough in this scenario since it doesn’t support file sharing, an important feature of running an old multi-node BBS.

Furthermore, a lot of emulators had trouble running old software at old PC speeds. The infamous Turbo Pascal “Error 200” is a perfect example of this. Bochs, on the other hand, was able to emulate an older 486-class system perfectly.

Another nice thing about Bochs was its fairly complete rendering of the emulated console to a modern terminal. The above screenshot is from a modern terminal running Bochs on the TriBBS “waiting for call” screen. This is important because it makes Bochs easy to run on headless servers via SSH.

You can download the patch here. It adds two serial modes to the existing ones in Bochs:

  • virtual-modem Adds an AT command set and emulates modem behaviour: RING, NO CARRIER, etc. An inbound TCP connection will RING the virtual modem, wait for emulated software to reply with ATA before sending a delayed CONNECT.

  • null-modem Simply brings DCD up or down depending if there’s a TCP connection or not. Useful for emulating old door games in conjunction with something like MajorBBS GHOST.

This patch is hackerware! I’m not a skilled C/C++ programmer and I’m sure that’s obvious to any experienced programmer reviewing this patch. It may contain security problems, use at your own risk.

MajorBBS running on sysop.menu

Expectations

So what were the goals of sysop.menu, exactly?

  • It allowed a user to deploy an Internet-connectable BBS instantly, anonymously, and with persistence. The average size of a DOS-based BBS of its era was a few megabytes. The VM’s ran on four megabytes of RAM. CPU usage was low. Running dozens of these on a modern server for months or years at a time wasn’t likely to strangle resources.

  • It served as a museum of sorts. A lot of people who remember connecting to these old boards enjoyed firing up an instance and connecting. The brightly-colored prompts of MajorBBS or default menu of Wildcat brought up a lot of good memories of times gone by.

  • It was a way to create custom BBS images to use elsewhere. You could download any disk image created on sysop.menu, which would then allow you to use VM software on your own PC to build it out as you like. The “mix and match” method used to construct images allowed for a lot of customization.

  • VM’s were created on the fly. There were no pre-built disk images. It was possible to create a PCBoard install with MS-DOS and Microsoft’s networking tools, or TriBBS on FreeDOS with FOSSIL drivers. Any combination was possible.

  • It gave full administrative access to the underlying OS. Using the barebones “DWHost” build, a sysop could connect to the board and get a DOS prompt. From there, using a transfer protocol like ZModem, it was possible to install anything. The VM’s had no network stack, so there was no risk of a user causing trouble on the Internet with these anonymous VM’s.

Reality

The site ran for two years with barely anyone using it. The warmest reaction came from the museum camp: people connecting for a few minutes, saying “oh cool!”, reliving their memories, then disconnecting and leaving the instance to sit.

Anyone wanting to create a board of their own would use Synchronet or go through the hoops to run a DOS board themselves. Nobody saw sysop.menu as a platform to create something.

The site was also badly misunderstood by the BBS community: most were confused about why the site existed or what made it different from how things have been done in the past.

Disk Images

Here are a handful of generated disk images from the project before it closed. You should be able to use these in any modern emulator to instantly deploy a DOS-based BBS that responds to a virtual modem on COM1.

No pirated software is used here. All of these images use FreeDOS 1.2 in conjunction with shareware or “test drive” versions of BBS software.