VOGONS

Common searches


First post, by Arlo

User metadata
Rank Newbie
Rank
Newbie

This forum seems to have a lot of discussion on helping retro gamers emulate old environments, and I'm sure many of us must have a nostalgisa for old school BBSes, the precursors of the modern Internet, and in particular, for DOOR games we played on them, such as the popular Legend of the Red Dragon, and other similar games.

Traditionally, BBSes were run from a dedicated computer in the Sysop's home which had to be on 24/7, or at least, whenever the BBS was answering calls, and oftentimes, one or more dedicated phone lines were required for the BBS to operate. In modern days, some hobbyists still run old school BBSes, and the setup hasn't changed much. Typically, instead of using a dedicated phone number, callers to the BBS use telnet to request some web address, such as bbs.mydomain.com. But as far as running the BBS goes, not much has changed. A dedicated computer running BBS software is still needed, and typically, a monthly fee needs to be paid to some Internet provider to redirect requests to bbs.mydomain.com to a static IP address which the computer is connected to. One BBS operator told me a few years ago that he was paying as much as $60 a month for this service!

It would be nice if hobbyists could run oldschool BBSes from a VPS server, the very affordable kind that can easily be used to set up simple websites, and which go for as little as $4 a month.

This is where Node.js comes in. Node.js has gained increased popularity over the past year as a Javascript language set of libraries dedicated to making it relatively easy for an end user to set up a server. In as little as three or four lines of code, a programmer can have a server set up quickly. And although most Node.js applications are oriented around HTTP requests and, by extension, running websites, Node.js also provides support for setting up a telnet server.

It seems to me that a worthy idea would be to code BBS software in Node.js to mimmick the old school BBS software packages such as Worldgroup or Wildcat! BBS. Indeed, I'm not the first person to think of this, as a Google search produces one Github project with just that aim, and another one to provide ANSI support to Node.js

The main task of programming a BBS in Node.js would be trivial, and may already have been completed by the above-mentioned Github projects. The application would simply need to load configuration files to display menus and request user input accordingly. In fact, the task is so trivial, that an individual programmer running his own BBS could get by making changes to his menus by simply modifying the code from time to time without having any config files at all. But the harder task is enabling the BBS to run the old school DOOR games, such as LORD. My understanding is that those games were run as external programs by the BBS, meaning that Node.js code would need to be written to execute byte code and emulate an MS-DOS environment.

Since there seem to be a number of posters here who are familiar with the technicalities of how DOSBox works, I would like to know what everyone thinks of this idea, whether it would be feasible, whether anyone would like to get together to make this happen, and the next direction to go in to make Node.js emulate DOS.

Reply 1 of 24, by leileilol

User metadata
Rank l33t++
Rank
l33t++

It would also have to adapt to today's society over privacy concerns. Making a BBS require all your personal information because it's "run as a business" isn't going to fly in 2014.

apsosig.png
long live PCem

Reply 2 of 24, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

I'm pretty sure there already exists software out there that can "emulate" a door interface one way or another. The details escape me.

A dedicated computer running BBS software is still needed

It doesn't really have to be "dedicated" anymore, does it?

It seems to me that a worthy idea would be to code BBS software in Node.js to mimmick the old school BBS software packages such as Worldgroup or Wildcat! BBS.

It might mimic a BBS, but it would be entirely different under the hood, would it not? If you could use Javascript to run x86 software that people can interface with, then why not just run the original BBS software?

Anyway, there is a Javascript x86 emulator already.

Reply 3 of 24, by Arlo

User metadata
Rank Newbie
Rank
Newbie

It doesn't really have to be "dedicated" anymore, does it?

Not by modern standards of the word "dedicated." I'm sure you can do other stuff on the computer while the BBS software is running. But not everyone wants to leave their computer on all day for a variety of reasons, and it would be nice if it was as simple and cheap to set up a BBS as it is to set up a website (if you have the know-how).

It might mimic a BBS, but it would be entirely different under the hood, would it not? If you could use Javascript to run x86 software that people can interface with, then why not just run the original BBS software?

Anyway, there is a Javascript x86 emulator already.

That might be a better way to go. But I'm still not sure how to go about interfacing the IO of that program to the IO Node is sending across telnet. Are you suggesting emulate the entire BBS with the x86 emulator, or just the Door games?

Reply 4 of 24, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Arlo wrote:

Are you suggesting emulate the entire BBS with the x86 emulator, or just the Door games?

Why wouldn't you emulate the entire BBS? Wouldn't anything capable of emulating the door games be just as capable as emulating the entire BBS?

Reply 5 of 24, by Arlo

User metadata
Rank Newbie
Rank
Newbie

Well I would assume the BBS software would be specifically coded to access the modem, whereas Node.js actually creates its own server to respond to requests. So there would need to be some interface between the code that tries to access the modem and what Node.js is actually accessing. The Javascript x86 emulators that I found after seeing your earlier response aren't for Node.js, so they aren't going to have that interface set up. They mostly just run an operating system in a browser. I would think that writing the BBS code in Node and then having that call an emulator to launch the Door programs coupled with the software that emulates the door interface that you said you can't remember would make the most sense.

Reply 6 of 24, by mwdmeyer

User metadata
Rank Oldbie
Rank
Oldbie
Arlo wrote:

it would be nice if it was as simple and cheap to set up a BBS as it is to set up a website (if you have the know-how).

It is (if you are talking about running a telnet style server and not full dialup), just get a cheap VPS and run it on debian or something. digital ocean is $5/month and there are cheaper providers out there.

Vogons Wiki - http://vogonswiki.com

Reply 7 of 24, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Arlo wrote:

Well I would assume the BBS software would be specifically coded to access the modem

We have already established that there are BBSs that are accessible by Telnet and do not need any kind of modem.

Reply 8 of 24, by Arlo

User metadata
Rank Newbie
Rank
Newbie

Right, the modern BBS software can, although if it can be run on a VPS and still set up to respond to incoming requests, that's news to me. Is that what you're saying? Do you know of anyone actually doing this?

Reply 10 of 24, by konc

User metadata
Rank l33t
Rank
l33t

Making an actual bbs which uses the original software expecting phonecalls accessible over telnet is trivial.
There is a whole site dedicated in listing all such bbs's, http://www.telnetbbsguide.com/

I have myself modified the bbs I used to run in the early 90's and made it available over telnet just for fun (mainly removing things that don't fit into today, such as fidonet and numerous message boards etc). To push it further, it is even available through a flash application on a primitive static web site on a free hosting, so no need to even connect using telnet. For those interested, it can be found at
http://ots.site50.net/

Keep in mind that it is only a 2-node bbs and not maintained anymore, it is there for "demonstration" purposes. Don't expect to find people chatting or anything, hence the unrestricted guest account. Also please don't try to take advantage of ancient known holes in the bbs software, 1)I don't really care since it's a VM on a VLAN 2)It's just "lame" as we used to call those users back then 😀

@moderation: If there is any problem with me sharing the site, please remove it or tell me to do it.

Reply 12 of 24, by konc

User metadata
Rank l33t
Rank
l33t

What instructions exactly do you need about this? It's kind of application specific, but maybe we can help.

The general idea that you need to setup a FOSSIL driver as an additional layer between the bbs and the internet. This driver will translate telnet requests to what the bbs software expects and that's all. No further changes are needed to the bss, it will never know that it didn't receive a normal phone call. The one I'm using is NetFoss, or Net2BBS as apparently it became. I prefer it because it offers also a windows terminal telnet server that you can use and has been proven reliable over time.

I'm not aware of any specific tutorial for a FOSSIL drivers or bbs software, but my opinion is that if you understand what you're doing, the readme.txt is more that enough. You literally edit a text file changing a few values such as ports etc and you're good to go for what concerns the bbs. Dealing with your internet connection/router to be able to accept incoming telnet requests is another thing.

Reply 13 of 24, by Arlo

User metadata
Rank Newbie
Rank
Newbie

Thanks for the explanation.

Dealing with your internet connection/router to be able to accept incoming telnet requests is another thing.

Since you said this, I want to be clear that I'm specifically talking about getting a cheap VPS and running the BBS from there. Is this what you're referring to in your answer?

Also, since the cheapest VPSes are usually Linux-based, I would assume some emulator would be needed to run, say, Worldgroup BBS? Since it seems (not only from your answer) that there's some confusion over what I want to do, let's make this more specific. Let's say I want to set up a Worldgroup BBS of the '90s style kind, and set it up to run Legend of the Red Dragon as well as some other similar Door games and programs. I want to set it up to run on a cheap VPS which users are able to Telnet into, and when they connect to it, it should behave just like the old '90s BBSes. And the VPS that's running it will probably be Linux based.

Reply 14 of 24, by konc

User metadata
Rank l33t
Rank
l33t

I meant that with having something to answer telnet and redirect it to the bbs software, there is no need to even go the VPS way. Bandwidth of a simple line is more than enough for you to host it at your own place, as we used to to with bbs's. You can of course run the bbs software with door games etc either on a VM or a physical cheap and power-efficient machine such as a thin client since requirements are very small. Sorry if you specifically wanted to use a VPS, but the logic remains the same, only the hosting machine changes. Again you will need to setup bbs software on it with a telnet server and FOSSIL driver.

Reply 15 of 24, by Arlo

User metadata
Rank Newbie
Rank
Newbie

Ah, yeah, I specifically wanted to use a VPS for it. I'm not someone who likes to leave his computer running, or wants to have the computer running the BBS software 24/7, and I'm sure some others in the community must feel the same way.

So to be clear, I would need some FOSSIL driver for Linux, and then I would need to be running some DOS emulator to run the BBS software? And then on top of that, a Telnet server? Seems like a lot, which is why I was thinking of Node.js, as it's relatively easy to set up a Telnet server with that.

Reply 16 of 24, by konc

User metadata
Rank l33t
Rank
l33t

Yes, this is what you need. It is really simply to setup them, I just gave you the whole picture. You just need an application running (the telnet server + FOSSIL driver) which will fire the bbs software. Configuring this application is as simple as choosing to what port it listens and which file it runs to launch the bbs. In the case of a vps not much change, but you'll have to pass the telnet calls to the dos emulator running the above.

Reply 17 of 24, by Stull

User metadata
Rank Member
Rank
Member
Arlo wrote:

Since there seem to be a number of posters here who are familiar with the technicalities of how DOSBox works, I would like to know what everyone thinks of this idea, whether it would be feasible, whether anyone would like to get together to make this happen, and the next direction to go in to make Node.js emulate DOS.

You can basically achieve what you're after if you sign up for a Windows Server 2008 R1 32-bit VPS somewhere (Amazon used to offer this). Rick Parrish's GameSrv (http://gamesrv.ca/) runs under Windows, accepts telnet connections, presents menus, and launches doors. If NTVDM gives you trouble, you can still probably set it to launch DOSBox instances for the doors (though I think I read somewhere that there are issues if you do this for multi-node doors). I'd try Taewoong's DOSBox SVN Daum if I was going to do it that way...

[EDIT!] Wait a sec, you can just run GameSrv under linux with dosemu: http://www.gamesrv.ca/docs/

You could probably also run Mystic BBS (http://mysticbbs.com/) natively under linux and launch doors with dosemu. That's also an option since it supports telnet connections.
http://pcmicro.com/elebbs/faq/mystic_linux.txt

Reply 18 of 24, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie

I wasn't really "around' for the days of BBSes, unfortunately, though they do sort of pique my interest. I wonder, back when they were run from phone lines, was it possible for multiple people to connect to one at the same time, or did they have to wait and take turns? Also, what exactly is a "door" game?

Reply 19 of 24, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
mr_bigmouth_502 wrote:

I wonder, back when they were run from phone lines, was it possible for multiple people to connect to one at the same time, or did they have to wait and take turns?

If you had multiple phone lines, multiple people could connect at the same time. This was however a rather costly prospect for most hobbyists. Whether or not your software could support multiple connections depended on the specific software.

Also, what exactly is a "door" game?

😒
http://en.wikipedia.org/wiki/BBS_door