[?7hÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ÌÍÛÍÛßÛÍßÛßÍÛßÛÍÛßÛÍÛßÛÍÛßÛÍßÛßÍÍÍÛßÛÍÛßÛÍÛßÛÍÛßÛ͹ ÌÍÛÍÛÍÛÍÍÛÍÍÛÍÛÍÛÍÍÍÛÍÛÍÛÍÛÍÍÛÍÍÍÍÍÍÛÍÛÍÛÍÛÍÍÍÛÍÛ͹ ÌÍÛÍÛÍÛÍÍÛÍÍÛßßÍÛÍÍÍÛÍÛÍÛßßÍÍÛÍÍÍÍÜßÍÍÛßßÍÛÍÍÍÛÍÛ͹ ÌͱͱͱÍͱÍͱÍÍͱÍÍͱͱͱÍÍÍͱÍÍÍͱÍÍͱÍÍͱÍÍͱͱ͹ ÌÍÛÍÛÍÛÍÍÛÍÍÛÜÛÍÛÍÍÍÛÍÛÍÛÜÛÍÍÛÍÍÍÍÛÜÛÍÛÜÛÍÛÍÍÍÛÜÛ͹ ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ GUIDE TO RUNNING A TELNET BBS IN DOSBOX ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ WHO THIS IS FOR ÚÄÄÄÄÄÄÄÄÄÄ¿ =============== ÚÄÄÄÄÄÄij CONTENTS ³ÄÄÄÄÄÄÄ¿ ³ ÀÄÄÄÄÄÄÄÄÄÄÙ ³ This guide is for people who want to set up an ³ ³ authentic DOS-era BBS in an emulator and to make it ³ Who This Is For ³ accessible via telnet. It presumes some familiarity ³ What We're Going to Do ³ with command line interfaces, chiefly MS-DOS, but ³ Step-by-Step Guide ³ Linux users will have little trouble adapting to ³ Further Possibilities ³ it. We'll be using DOSBox, which is available for ³ Useful Links ³ Windows, Linux, and OSX. This includes Linux on the ³ MS-DOS for *nix Users ³ Raspberry Pi and similar tiny computers. ³ Credits ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ There are two parallel tracks in this guide. The first is more or less the same process you'd had to have gone through in 1990 to set up a dialup BBS, with DOSBox standing in for your blazing fast 33MHz PC. The second track skips the DOS history lesson, and all you have to do is unzip some files into your DOSBox directory and edit a config file. (You'll still need to get comfortable with DOS in the course of actually running a DOS BBS, but you can cover a lot of ground before you have to return to the command line.) If you want the user experience of a classic BBS but don't care what's under the hood or want to take advantage of a modern OS, this guide is probably not for you. What you want is something like Mystic BBS, which actually is a classic BBS system that has been continuously maintained and enhanced since 1995 and which has been ported to Windows and Linux (including the Raspberry Pi). This guide is for people who want to run an actual DOS-era BBS, either nostalgic old hackers like me or younger folks with an enthusiasm for retro tech. WHAT WE'RE GOING TO DO ====================== We're going to set up DOSBox, which is an emulator for the DOS environment, and use it to install and configure Telegard 3.09, which was the final version of this venerable DOS BBS system. Almost all of the action takes place inside DOSBox, so the bulk of this guide applies equally well regardless of whether you're using Linux, Windows, or OSX. The only system-specific parts are automatically starting DOSBox (if you want to), configuring your firewall software, and, if necessary, setting up port forwarding on your router. STEP-BY-STEP ============ 1. Gather the files you'll need. 2. Install and configure DOSBox. 3. Install and patch Telegard. 4. Install the FOSSIL driver. 5. Configure and test the BBS. 6. Set up auto-start. 7. Configure your firewall. 8. Configure your router. 9. Advertise your BBS. 1. GATHER THE FILES YOU'LL NEED =============================== For the detailed track: * pkzip250.zip -- PKZip 2.50 * adf_150.zip -- ADF v1.50 freeware serial port FOSSIL driver * tg_309g2.zip -- Telegard BBS 3.09g2 * tg309sp3.zip -- Telegard BBS 3.09g2 Service Pack 3 * tg309sp4.zip -- Telegard BBS 3.09g2 Service Pack 4 (Y2K fix!) For the easy track: * tgard_aio.zip -- All-in-one easy Telegard install For both tracks: * DOSBox0.74-win32-installer.exe -- Windows installer for DOSBox. * NetRunner installer If you're a newcomer to DOS, be prepared for the fact that DOS filenames were not case-sensitive and were generally rendered in ALL CAPS. I'll follow this convention out of historical accuracy, not because I'm yelling at you. 2. INSTALL AND CONFIGURE DOSBOX =============================== It's best to visit the DOSBox site directly to get the latest version. Even if you're using the prepackaged files, it's worth checking to see if there's been an update. If you're using Windows, there's an executable installer you can download and run. For Debian-based Linux distros like Ubuntu or Raspbian, type sudo apt-get install dosbox and for RedHat-based distros like Fedora and CentOS, type sudo yum install dosbox DOSBox is configured through a plain ASCII configuration file. On Linux systems, it resides in a subdirectory of your home directory named .dosbox. On Windows systems, the location varies according to the version of Windows, but the installer provides a start menu shortcut to open the config file. (If you still want to know where it is in order to edit it in something more sophisticated than Notepad, open it using the shortcut and Save As to see the directory.) The config file is well-documented internally, and there's a lot to tweak, but we're only interested in a couple of things here. First, you need to tell DOSBox to emulate a modem. Find the [serial] section and change the entry for serial1 to look like this: serial1=modem listenport:5000 This tells DOSBox to listen to port 5000 for incoming connections and to make them available to programs via the COM1: serial port. You can use any port you like, but using a port under 1024 requires root privileges under Linux. Next, you need to create a directory to serve as the virtual hard drive for your emulated MS-DOS system. You can put this wherever you like. Go ahead and create TGARD and UTILS subdirectories under it. For the sake of this example, let's assume that you are using Windows and created your virtual hard drive directory at C:\dosbox. Now scroll down to the very end of your DOSBox config file to the [autoexec] section. This emulates AUTOEXEC.BAT, which was the startup script on DOS systems. Add these two lines: mount C C:\dosbox SET PATH=Z:\;C:\UTILS The first line tells DOSBox to mount C:\dosbox as the C: drive on your emulated DOS system. The second line sets the search path when you type the name of a program at the command line. The Z: drive is automatically created by DOSBox, and C:\UTILS is where you will install a few programs that both you and your Telegard BBS will need. You don't have to do anything about the TGARD subdirectory yet. NOTE: If you're on the easy track, go ahead and unzip tgard_aio.zip into your DOSBox directory and skip ahead to Step 4. 3. INSTALL AND PATCH TELEGARD ========================================== Unless you want an abrupt introduction to how rudimentary DOSBox's command line is compared to MS-DOS, you should probably do the unpacking and copying of files with your GUI file manager. And when you unpack archive files, remember that archives in the DOS world didn't follow the now-universal Unix practice of putting everything in a subdirectory. For that matter, most DOS era archivers didn't store or recreate directory structures by default. Trust me, it was a giant pain in the ass. Whether or not you do it the hard way, you should unpack pkzip250.zip first and copy PKZIP.EXE and PKUNZIP.EXE to your UTILS subdirectory. If you are doing it the hard way, familiarize yourself with MANUAL.TXT; you're going to need it. Now for the actual installation and patching of Telegard, unzip tg309_g2.zip and copy INSTALL.EXE and INSTALL.TWS into your TGARD directory. Then start DOSBox (you have to do this inside DOSBox because the installer is a DOS program) and type C: cd \TGARD INSTALL When prompted, the installation password is "READYTOGO". When it is done running, start Telegard by typing TELEGARD Telegard will then prompt you to continue the installation and ask if you want to make any changes to the default directories. Once it has finished, you will be returned to the DOS prompt. Clean up the install files thus: del INSTALL.EXE del UPDATE.EXE del *.TWS Finally, we have to install two patches, one of which fixes Y2K issues older than some of the people now reading this! Unzip tg309sp3.zip and copy TELEGARD.DIF and BUPDATE.EXE to your TGARD directory. Run the following command: BUPDATE -i TELEGARD.DIF The -i switch, which isn't mentioned in the original documentation, is very important. Without it, the update program will attempt to verify file dates that, because of the passage of time and a bug in the way the current version of DOSBox handles dates, you would be hard-pressed to get right. The -i switch turns off date checking. Now, for the updated data files, create a TEMP subdirectory in your TGARD directory and unzip the contents of __UPDATE.ZIP into it. (Note that if you're using your operating system's GUI file manager to extract and copy files, you may have to restart DOSbox to get it to recognize them.) Then, from the TGARD directory, execute the following commands: copy TEMP\CMPRLANG.EXE . copy TEMP\*.REF DOCS copy TEMP\LANGUAGE.SP3 DOCS copy TEMP\*.DAT DATA copy TEMP\TG_BETA.BBS DATA copy TEMP\ENGLISH.TXT LANGUAGE copy TEMP\LOGON.SCR TEXT copy TEMP\CLOSED.MSG TEXT copy TEMP\DUPTEL.TXT TEXT MAKELANG .\LANGUAGE\ENGLISH del TEMP\*.* The second patch works much the same way. Unzip tg309sp4.zip and copy TELEGARD.EXE, TELEGARD.DIF, and BUPDATE.EXE to your TGARD directory, and once more run BUPDATE -i TELEGARD.DIF del BUPDATE.EXE del TELEGARD.DIF As before, unzip __update.zip to the TEMP subdirectory (restarting DOSBox if necessary) and run the following commands from your TGARD directory: copy TEMP\BIN\*.EXE . copy TEMP\DOCS\*.* DOCS copy TEMP\DATA\*.* DATA copy TEMP\LANGUAGE\*.* LANGUAGE copy TEMP\TEXT\*.* TEXT copy TEMP\MENUS\*.* MENUS MAKELANG .\LANGUAGE\ENGLISH Delete the TEMP directory, and you're done with the installation. 4. INSTALL THE FOSSIL DRIVER ============================ A lot of DOS BBSes used FOSSIL drivers, and Telegard was one of them. What's a FOSSIL driver? It stands for Fido Opus SEAdog Standard Interface Layer -- Fido, Opus and SEAdog being the systems it was originally designed for -- and it's a serial communications driver dating back to the days when, I shit you not, serial port hardware was not yet standardized. It persisted after serial hardware was relatively standardized partly because it presented a convenient API for programmers, but also because it was a necessity for multi-node BBSes using non-standard multiple serial port cards and for early ISDN hardware. The good news is that you don't really need to know anything about FOSSIL drivers at this point; you just have to install it. (If you're on the easy track, this is already done.) We'll be using the freeware ADF FOSSIL driver. You'll find the necessary files in the adf_150.zip file you downloaded back in Step 1. Copy ADF.EXE to your \UTILS directory. Whether you're on the easy track or the detailed track, you want ADF to start when DOSBox boots, so open the DOSBox config file and add adf COM1 3F8 4 115200 16384 16384 8 to the end of the [autoexec] section. Without getting into the gnarly details -- see the documentation in ADF.TXT for that -- this starts ADF on your first emulated serial port, sets the baud rate to 115200 (as fast as it can go), and reserves 16k each for the input and output buffers. Later, if you want to set up multiple nodes, you'll have to do the same for COM2, COM3, and so on. 5. CONFIGURE AND TEST THE BBS ============================= First, reboot to make sure the FOSSIL driver is loaded. The go to the DOS prompt and type C: cd \TGARD TELEGARD -L If everything went okay, Telegard is up and running in local-only mode. Hit ESC to bring up the main menu, and then press S for the system config menu. Later on, you'll want to thoroughly explore the options, but for now, just press B to get to the BBS site information screen. Go ahead and set the name of your BBS, its location, and the sysop (that's you) name and password. You can leave the phone number as-is or leave it blank; it is irrelevant in this case. When you're done, press Q to return to the system configuration menu, then press L to edit the login config. Press S to enable aliases, then hit Q to jump back up a level, and press * to enter the system manager. Finally, press Q to enter the user manager. You have only one user so far, the sysop account, which is displayed on the screen. If you're not a crusty old DOS hacker for whom this is old hat, you've probably gotten used to navigating by text menus and hotkeys, so I'm going to stop holding your hand key-by-key now. Just press ? to display the options and set your handle, real name, and password. When you're done, press Q twice to return to the waiting-for-calls screen, hit ESC to bring up the main menu again, and press Q one more time to return to the DOS prompt. Having configured and installed your BBS, all that remains is to test it! Start Telegard again without the -L switch. If you haven't installed NetRunner already, go ahead and do so. Fire it up and press Alt-I to bring up the dialer, and then type localhost:5000 and hit enter. This should establish a connection, after which everything is pretty much self-explanatory. Because you are the sysop, you will be asked for two passwords: your personal account password and the system password. If you forgot them, just hit Alt-H to hang up, switch to your DOSBox window, and look them up via the system menu. Since this is a getting started guide, we're not going to get any deeper into configuring and running Telegard, but the documentation is available both as plain text files in C:\TGARD\DOCS\TELEGARD.DOC and C:\TGARD\DOCS\FAQ.DOC as well as through the system menu. Good luck! 6. SET UP AUTO-START ==================== In most cases, you're going to want Telegard to start when the machine boots up. To accomplish this, open the DOSBox config file and add the following to the end of the [autoexec] section, after the line where you invoke ADF: C:\TGARD\TELEGARD 7. CONFIGURE YOUR FIREWALL ========================== Under Windows, the first time you load the FOSSIL driver, you should get a popup asking if you want to grant the program access to the Internet. You'll have to give it at least private access (home/work networks) if you want to be able to access it from your LAN, and public access if you're planning to open it to the world. If you skipped this step, go to the Control Panel and start Windows Firewall. Click on the link that says "Allow a program or feature through Windows Firewall". Then click on the "Change settings" button and scroll down through the list until you find the entry for DOSBox. Check the box next to it and one or both of the checkboxes to the right. 8. CONFIGURE YOUR ROUTER ======================== There are so many different routers on the market that it is a practical impossibility to provide a step-by-step guide to configuring them all. That said, I can tell you what you're going to need to do, and you can read your router documentation (if there is any) and/or explore your router's configuration interface to figure out how to do it. There are two main tasks you have to accomplish. The first is to give your computer a fixed IP address. Somewhere in your router config, there will be a way to map the MAC address of your network interface to an IP address. Under Windows, you can find out what your MAC address is by opening a command shell -- hey, your new DOS knowledge is already paying off! -- and typing ipconfig /all which will yield several screens full of information, one chunk of which will look something like this: Ethernet adapter Ethernet: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller Physical Address. . . . . . . . . : B0-83-FE-4D-F9-3F DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::602f:1c33:fff5:cfd4%3(Preferred) IPv4 Address. . . . . . . . . . . : 192.168.1.52(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.254.0 Lease Obtained. . . . . . . . . . : Tuesday, December 8, 2015 8:52:49 AM Lease Expires . . . . . . . . . . : Wednesday, December 9, 2015 8:52:49 AM Default Gateway . . . . . . . . . : 192.168.1.1 DHCP Server . . . . . . . . . . . : 192.168.1.1 DNS Servers . . . . . . . . . . . : 192.168.1.1 NetBIOS over Tcpip. . . . . . . . : Enabled The item labeled "Physical Address" is your MAC address, in this case B0-83-FE-4D-F9-3F. Don't be surprised if your router config interface doesn't display the MAC address with hyphens; Windows just inserts them to make it easier to read. Under Linux, the command you want is ifconfig which will give you something like this: eth0 Link encap:Ethernet HWaddr 00:0c:29:30:4d:93 inet addr:10.128.158.16 Bcast:10.128.158.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe30:4d93/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:19732697 errors:0 dropped:2173 overruns:0 frame:0 TX packets:16217688 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:21484877437 (21.4 GB) TX bytes:3497862843 (3.4 GB) In this case, the MAC address appears on the first line, labeled "HWaddr" and is 00:0c:29:30:4d:93. Just as with the Windows example, only the hexadecimal numbers matter. The colons are inserted by Linux for the sake of readability. The second task is to configure your router to forward one of its outward facing ports to port 5000 (or whichever port you chose) on your computer. If your router is anything like mine, this will be buried several menu levels deep in the advanced settings. This will allow you to advertise your BBS using your router's public IP address and have connections seamlessly forwarded to Telegard. While you're digging around in there, be sure to take note of your external IP address, which you'll need for the next and final step! 9. ADVERTISE YOUR BBS ====================== The simplest way to advertise your BBS is to announce your public (router) IP address and port number to your friends, e.g., 64.233.177.139:5000, and encourage them to visit with NetRunner or another telnet client. The problem with this, as you'll soon discover, is that most home ISPs will change your IP address from time to time. The solution to this is to buy a domain name and use a dynamic DNS service to keep it updated with whatever your current IP address happens to be. The details of this are beyond the scope of this document, but you can easily find everything you need to know with a little googling. Once you've gotten that far, there are several places to announce your BBS to the general public. MS-DOS FOR *NIX USERS IN 60 SECONDS =================================== The DOS command line was inspired to some extent by Unix, so adapting to it is relatively easy. The first thing you'll need to get used to is that a DOS system with multiple file systems does not map them to one master filesystem. Instead, each one gets a drive letter starting with C: (A: and B: were reserved for floppy drives). To go to a DOS filesystem, you simply type the drive letter along with the trailing colon, e.g. Z: will switch to the Z: drive. Because each filesystem is independent, you cannot use cd to move between filesystems. Moreover, the shell keeps track of where you are in each filesystem, so if you are in \TGARD\TEXT and switch to the Z: drive and then back to the C: drive, you will still be in \TGARD\TEXT. You've probably also noticed that DOS, like Windows, uses backslashes instead of forward slashes in its paths. Forward slashes are used for command line switches the same way that hyphens are in Unix. The common Unix file management commands all have DOS equivalents, though they are generally less capable and work differently in ways that will be jarring at first. DOSBox, being primarily intended for playing old DOS games, provides an even more rudimentary shell. If you want to do a lot of work at the command line, it's a good idea to copy the more complete set of command programs from FreeDOS. The FreeDOS wiki is also a good source of free documentation on how DOS works, especially this page. Unix Command MS-DOS Equivalent ---------------- ----------------- cd, chdir cd, chdir mkdir md, mkdir rm del, rd, rmdir mv move mv ren The big difference to watch out for is that DOS distinguishes between moving (move) a file and renaming (ren) it, and move only works on files, not directories. There's a separate command for that, xcopy, which as the name suggests does a recursive copy rather than a relocation of files and directories. There's also a distinction between deleting a file (del) and deleting a directory (rd or rmdir). The rd command is likely to be highly frustrating to Unix users -- and trust me, it was annoying as hell back in the DOS era -- because it's not recursive: you can't delete a directory until you delete everything in it, at least not without using the deltree command, which you'll have to get from FreeDOS. That's all you really need to get started. Later, you may want to explore shell scripting in DOS. Shell scripts are called "batch files" and end in the .BAT extension, and the DOS batch language will make you look at your least favorite Unix shell with fresh admiration. BBS software tends to rely heavily on them, though, so buckle up and endure the ride. CREDITS ======= Thanks to [so-and-so] for help with [such-and-such].