Subj : Re: Future-proofing DOS BBSs To : j0HNNY a1PHA From : akacastor Date : Thu Feb 15 2024 13:19:20 ja> I've got a thing for DOS-based BBSs. And they are becoming more rare to ja> enounter in the wild as it's becoming more difficult to run them, ja> particuarly since Windows has stopped suppoerting 32-bit/x86 OSs -- not ja> to mention the risk of running outdated Windows OSs connected to the ja> internet - sure, you can firewall them off. But more difficult. Here's ja> what I've experimented with: We share a predilection for DOS-based BBSes! (also I saw mention of Opus which brings back fond memories, I got started calling a couple local Opus BBSes, never ran Opus myself but did (and do) run Maximus which was heavily inspired by Opus) I have been experimenting with DOSBox-X inside of which I run MS-DOS 6.22 and Maximus BBS software for DOS. Inside MS-DOS I am running QEMM and X00 FOSSIL driver, really replicating my 1990s setup at a software level. Running Microsoft Network Client for DOS, a network drive is mapped to D: inside the DOS session. SHARE.EXE is loaded in config.sys and is working. Currently I have four DOSBox-X instances, each running a node of Maximus. Two nodes are connected to USRobotics V.Everything modems using 'directserial' in DOSBox-X. The other two nodes listen for telnet connections using 'modem' in DOSBox-X. Each node has the same network drive mapped to D: and this shared drive is used for storing message and file bases, and communication between BBS nodes. Some notes about DOSBox - there are multiple versions of DOSBox, including DOSBox Staging and DOSBox-X, many features are shared but there are also some differences particularly in which areas have been focused on for accurate emulation. Multiple forks of DOSBox are under active development, so they are all kind of a moving target. At the time I started searching, DOSBox-X seemed to have the best support for applications and non-game use. I have been using DOSBox-X quite a lot (daily for months) and it has been working well, running MS-DOS 6.22 and QEMM memory manager and even DESQview for multitasking within a single DOSBox-X instance. (I don't run the BBS in DESQview, because separate DOSBox instances makes it easier to manage memory constraints.) An issue I ran into with DOSBox-X is incomplete telnet support (last I checked, the other DOSBox versions had the same problem). The issue was twofold for me: 1) I didn't realize I had to specifically enable telnet mode on the 'modem' port. In DOSBox-X this is done by sending AT+NET1 - and this must be done before making/receiving a connection each DOSBox session. In some DOSBox versions there is a parameter to add to the config file to permanently enable telnet mode. If telnet mode is not enabled, then the data is sent over a raw TCP socket which will only work if the other end is using a raw socket (but mostly everyone uses telnet). Issue 2) The telnet emulation in DOSBox only processes received telnet commands (sequences starting with a 0xFF byte) - but sent data needs to also be processed. The actual problem is that if your terminal program sends a 0xFF, in telnet mode that must be escaped with a second 0xFF but DOSBox telnet emulation doesn't do that. The symptom of this problem is that Zmodem (and any other binary protocol) uploads do not work. I am now running a version of DOSBox-X with patches to the telnet emulation, so binary transfers work properly in both directions. I also added a 'callerid' feature so that the IP address of callers is passed to the BBS software in the same format as caller ID from a USRobotics modem. My DOSBox-X patches haven't been submitted yet, so I mention them to raise awareness that if you run into Zmodem problems in DOSBox connecting via telnet, it is a solvable problem. Because each node of my BBS is in its own DOSBox session and each "virtual modem" in DOSBox binds to its own port, I have a setup with node 1 on port 2301, node 2 on port 2302, node 3 on port 2303, etc. To provide one port that can accept connections and pass them to the next open node, I wrote a small "Telnet Ringdown server". The Ringdown server listens on port 23 and attempts to connect to a list of BBS ports. I am starting to work on some bot and scanner detection for the Ringdown server, to reduce the number of wasted connections to BBS nodes. (yesterday I counted 527 connections in 18 hours from IP scanners.) The Telnet Ringdown server project is at https://github.com/akacastor/ringdown I am still configuring new things (OK so it's a BBS, I know that's endless), my plan is to run several more dialin modem nodes and more telnet nodes. Things seem fairly scalable at this point, I can spin up more DOSBox-X instances for more nodes. Chris akacastor --- Mystic BBS v1.12 A48 (Linux/64) * Origin: 2o fOr beeRS bbS>>20ForBeers.com:1337 (21:2/150) .