Multi-Node DOS BBS : The Hard Way (need telnet server solution) reddit / bbs ---------------------------------------------------------------------- robbiew · 2023-09-21 03:47 Reading here a while back about how multi-node BBSs were run back in the 90's had me intrigued, so I started messing around with setting up a multi-node BBS (Renegade) and spun up a small virtualized experiment, but I'm stuck at essentially the front door, literally -- how to handle inbound connections via telnet and hand them off the an open node in DOS. (I totally realize I could just run this on Win32 and be done in an hour, but... gotta do it The Hard Way) My setup: * Local ProxMox 8.04 environment for all machines: * Debian 11 + RetroNAS as a file server for multi-node shared files (via EtherDFS server) * 3x FreeDOS 1.3, mTCP, with Etherdfs client for share mTCP w/DOS file sharing via EtherDFS works great -- networking, grabs IP addresses (and less of a memory hog than MSCLIENT), fileshare mounts on all DOS nodes, etc. Actually pretty cool! But now I need to wire it all up to answer "calls" and automatically and route millions of potential "callers" to an open node... Wondering what my options are... 1. Real or virtual Windows machine connected to ProxMox, running NET2BBS with null-modem serial connections? Is that even possible? 2. Something with tcpser? Again there's the whole "Why am I even doing this?" angle, but now I can't stop with an unfinished soltution! Any thoughts? ---------------------------------------------------------------------- b33znutz · 2023-09-21 05:22 I was doing the same thing about a month ago on a pure DOS setup and I got so frustrated I put it away lol, with plans of coming back to it of course, and moved to an old p4 and winxp. which I'm having a lot of fun with I might add lol no my ISP is the problem, but that's a whole other story and set of problems lol ---------------------------------------------------------------------- robbiew · 2023-09-21 14:32 I did come across an old DOS program called "KSP-HOST": "KSP-HOST (vers 1.2) An inbound Telnet server for MS/DOS Bulletin Board Systems. Every node can answer both telnet and modem calls! Requires a fossil driver on each node, a 24 hour TCP/IP connection to the Internet, and a local area network that supports NetBios such as Novell or Lantastic. Shareware." More from README: As indicated, the small TSR program KSP-NODE, acts as a switch so that each BBS node can accept either Telnet calls or regular modem calls. This requires every BBS node to use a Fossil driver as shown. ​ Communication between KSP-SRVR and KSP-NODE uses NetBios. I.e., KSP-SRVR is a protocol converter that translates Internet TCP/IP packets into NetBios packets, and vice-versa. NetBios is commonly supported by most local area network software such as Lantastic or Novell. ​ The packet driver (or packet driver shim) is explained in the next chapter; detailed information regarding the installation and configuration of KSP-SRVR and KSP-NODE appears in subsequent chapters. ​ Anyone ever try this? Also, would mean firing up Novell or Lantastic for DOS (ugh) and might still mean every node needs its own port number... [Link to software](http://files.mpoli.fi/software/DOS/BBS/HOSTV12A.ZIP) ---------------------------------------------------------------------- highedutechsup · 2023-09-21 17:21 Probably lots of ways to skin this cat, if they have tcp/ip on the dos machines, some BBS's will allow direct connections, instead of serial, but lets make them feel like the old school days with really slow accurate bitrates. #!/bin/bash #filename: /usr/local/bin/start_tcpser.sh tcpser -d /dev/ttyS101 -s 2400 -l 7 -tsSiI -i "s0=1" -p 6400 tcpser -d /dev/ttyS102 -s 2400 -l 7 -tsSiI -i "s0=1" -p 6400 tcpser -d /dev/ttyS103 -s 2400 -l 7 -tsSiI -i "s0=1" -p 6400 #configure proxmox qm set BBS1 /dev/ttyS101 qm set BBS2 /dev/ttyS102 qm set BBS3 /dev/ttyS103 This allows all bbs's to answer on the 3 telnet ports at 2400bps on the same port. >tcpser can be configured to support multiple serial/ip232 ports on one TCP/IP port. Simply repeat the -s and -d/-v parameters on the command line for each serial/ip232 port to be configured. Options s,S,a,A,c,C,I, and T will "propagate" to subsequent connections, unless they are redefined. **I have not tried this yet. ** ---------------------------------------------------------------------- robbiew · 2023-09-21 17:58 This is great, thank you! I’ll do some exploring with this and report back. I wasn’t 100% sure how to create the serial connections in proxmox… ---------------------------------------------------------------------- highedutechsup · 2023-09-21 18:05 Yeah please let me know, I kind of just made it up and haven't tried it. The instructions didn't have an example so it could mean something like this tcpser -d /dev/ttyS101 -d /dev/ttyS102 -d /dev/ttyS103 -s 2400 -l 7 -tsSiI -i "s0=1" -p 6400 But I didn't have a box to test it on ---------------------------------------------------------------------- robbiew · 2023-09-21 21:32 So, initial test with the first virtual serial connection from Debian > DOS (Renegade) AND IT WORKS! A few modifications, but you essentially nailed it: * I used the VM's \[hardware\] GUI to add the serial ports ("socket") vs the proxmox console (/dev/tty) - not sure if this matters? * had to use SOCAT in proxmox console to hook the two serial ports together (below) - that was the secret sauce One drawback, I'll have to run socat after starting all the VMs, but I think that there's a proxmox hook for that. I'll try adding the other DOS machines next... Thanks again! Here's the socat i used, of course can only be used after the VMs start and the files are created: socat UNIX-CLIENT:/var/run/qemu-server/101.serial0 UNIX- CLIENT:/var/run/qemu-server/200.serial0 ---------------------------------------------------------------------- ziran80 · 2023-09-22 00:22 This is quite a modern problem, since back in the day, the Sysop with multiple lines would just ask the phone company to add all of the lines to a Call Circulate / Ring group. So the call would just be presented to a free line. ---------------------------------------------------------------------- f15sim · 2023-09-22 00:45 You might want to look into RLFOSSIL. It's a FOSSIL driver that uses the same type of packet driver that mTCP uses, but it presents as a Hayes Smartmodem to DOS programs that can use FOSSIL drivers. ---------------------------------------------------------------------- PaulLee420 · 2023-09-22 03:42 Don't give up!! Reach out to the community to find some support - there are MANY DOS-based bbSes that have confronted these issues, on many different platforms... you are doing so virtualized, which is another layer of 'issues', but they can be overcome! I'm on a simple Mystic setup - so I do NOT have DOS infoz, but I'd post on fsxNet, reach other to other systems that are doing this; Renegade boards, Virtual boards, DaveW... Spitfire boards.... A bit of searching on TelnetBBSGuide and reach out - this community is awesome! :P I hope to call yer bbS in the future, and be one of the 1,000,000 callers you host - lulz!!! ---------------------------------------------------------------------- robbiew · 2023-09-22 04:48 Thanks PaulLee! Making good progress with all this help. I should really tap into the FTNs for sure - maybe I'll get this single node up and dive back in! ---------------------------------------------------------------------- PaulLee420 · 2023-09-22 04:51 MetroNet has a bunch of these types of systems; the renegades, telegards, etc.... however I think you'll be more served finding the VirtualBBS, Spitfire and other older systems... ​ The people here are GREAT - find those who you want to become and ask. :P 2o fOr beeRS is a stupid 'modern' bbS... but there are a lot of wonderful retro joints around, too. ---------------------------------------------------------------------- robbiew · 2023-09-22 04:56 Holy smokes, never heard of this and it... just works as well! Thanks for the tip. So I've got an RLFOSSIL test running on a single DOS node, and it accepts connections on COM0 and passes it to Renegade via mTCP. w00t! Since I'm running one instance of Renegade per DOS virtual machine (an IP address per machine of course), I'm thinking I'd need to make it multi-node by using a different port for each node? Could work. Hoping to find a way to do what u/ziran80 mentioned in a comment would happen back in the day -- the caller would automatically be presented with a free line/node... The fun of retro tech in modern environs! ---------------------------------------------------------------------- robbiew · 2023-09-22 05:29 Spent more time on this and I don't think the socat trick does the job for multi-nodes... Went back to the original suggestion, and realized that proxmox isn't allowing me to set serial devices as "/devttyS101" etc. It only seems to work with "/dev/ttyS1" hmmm... ---------------------------------------------------------------------- slewp · 2023-09-22 15:24 As a Renegade fan, I appreciate what you're doing here, this is great! Please post a screencast once you get it working (or even if you don't, hah). I would suggest also trying to do this in OS/2 Warp 3, as another "authentic" way of running Renegade multi node. In the mid 90s, OS/2 was popular with BBS sysops, particularly Renegade. I was reading old fidonet msgs about this - while Renegade in DOS mode worked pretty well in OS/2, there was also an effort to raise money to buy an OS/2 compiler to port RG to OS/2. The Renegade official docs have some notes about tuning OS/2, and you can use Ray Gwinn's SIO / vmodem to handle telnet. ---------------------------------------------------------------------- robbiew · 2023-09-22 16:51 Funny you should mention OS/2 -- that's actually my fallback plan! I've got an ArcaOS desktop (and the last Thinkpad that shipped with OS/2) and I was thinking about using that with Warp 3 or 4. SIO worked well in my tests! Do you know if there was a specific or current RG version for OS/2? Or just running the latest in DOS mode? That's be a pretty good piece of RG - OS/2 history to preserve. Best, Robbie ---------------------------------------------------------------------- robbiew · 2023-09-23 16:57 OK, after some great suggestions here, and I think I have a solution! I'll do a write up and share, but essentially it's working like this: 1. Proxmox: multiple FreeDOS machines running mTCP; a Debian 11 machine (for shared file server for multi-node Renegade files via RetroNAS & EtherDFS). Each DOS machine gets an IP address at boot. 2. Customer Telnet server: I ended up writing a little telnet server that keeps track of the IP addresses/ports for the DOS machines, and checks to see which nodes are available (e.g. if they are down or busy). User connects to this single address, and the server shuttles them to an open node. 3. The actual bbs com connections I've got running both with each Renegade instance being launched by **RLFOSSIL** (DOS program - FOSSIL driver over TCP/IP rlogin/telnet protocols). So my server just passed off the connection to RLFOSSIL. RLFOSSIL is a *bit* sluggish, and not sure how it'll perform overall with stability, uploads, downloads, etc. but hey, it's 1991 all over again! Not too shabby, all in all. I'd also like to test against my server with a tcsper config as well, but for now this gets me closer to a LIVE Renegade BBS. Going to spend some time working on my telnet server "Telnet Shuttle" and get the GUI in a place where it displays free nodes, connected nodes, etc. I'll post it on github once I've tested it a bit more. Thanks all! ---------------------------------------------------------------------- slewp · 2023-09-25 13:25 There was never a RG released specifically for OS/2 afaik. I would use the latest in DOS mode. If the current RG docs don't mention OS/2, then look at the older docs for OS/2 tips. ---------------------------------------------------------------------- huff75 · 2023-10-12 18:16 Back in the day I used DesqView in DOS to run 2 nodes. ---------------------------------------------------------------------- pheller10 · 2023-11-25 08:59 I did a successful demo of all the KSP tools, including KSP-HOST when they were originally released. Ultimately, it came right around the time I started beta testing Wildcat 5, so was redundant. I recall it working quite well and was unique in that it was a shim that allowed a node to service either a modem or inbound telnet session. Another product from that company, KSP-MTS as I recall, was also a nice bridge between SMTP and the first party UUCP solutions for BBS packages of the day.