Connecting MS-DOS 6.22 to the internet — and the fediverse#retrocomputing #msdos #mastodon #fediverse
Microsoft released the last standalone version of MS-DOS as MS-DOS 6.22 in 1994.
Even though this operating system is decades old and a true relic of the past, people still develop new software for it. Thanks to a couple of modern tools, we can connect MS-DOS to the internet. Since just having a connection to the outside world itself is pretty boring, we connect MS-DOS 6.22 to something fairly modern and amazing: the fediverse.
Let’s have a look.
A little bit of history
Today, getting connected to the internet is very simple: Just enable your WiFi or connect an ethernet cable and you are good to go. In many cases, everything just works without having to configure anything.
Modern systems include all the drivers and tools you need for an internet connection right out of the box.
Back then, things were not that easy.
For connecting a machine running MS-DOS to the internet, you needed the matching packet driver for your network card and a set of tools for providing the TCP/IP stack. Yes, TCP/IP is not the only way to do networking, and since other protocols were a lot more popular in the world of small to medium-sized businesses, it was a common practice to ship the OS without any networking capabilities so you could install whatever software your network required.
Setting up the connection
Thanks to emulation, hardware compatibility isn’t a problem anymore, so we can just emulate a network card compatible with the widespread NE2000 standard which 86Box conveniently supports.
As I mentioned before, we need both the networking driver and the TCP/IP stack. For the driver, we are going to use the NE2000/NE2100 driver available at http://www.georgpotthast.de/sioux/packet.htm. Support for TCP/IP will be provided by the mTCP toolset.
If you are mainly interested in connecting MS-DOS to the fediverse, you only need the packet driver, since DOStodon, the software we will be using, includes a full TCP/IP stack. However, if you want to use your brand new Internet connection for other software, I recommend that you install mTCP as well.
In 86Box, we can use SLiRP for connection handling, so we don’t need to worry about it on your host machine at all. SLiRP’s virtual router is able to provide dynamic networking configuration with DHCP, making it the perfect match for mTCP’s DHCP client.
To add the virtual network card to the VM, open the VM settings and use the following configuration:
- Mode: SLiRP
- Adapter: [ISA16] Novell NE2000
- Address: 0x300
- IRQ: IRQ 3 (or any other IRQ if IRQ 3 is already used by other virtual cards)
- BIOS address: Disabled
The hardware is done, now to the software side of things!
Part 1: The internet.
To add some life to the virtual network card, we extract the .ZIP archives of the NE2000/NE2100 driver and the mTCP package. The software is pretty small and will fit on a single 1.44MB floppy disk. For this experiment, I created a floppy image with WinImage and copied all the files to it.
Do not skip the
SAMPLES directory of the mTCP package - we’ll need it later!
Installing the networking stack is pretty easy. After booting the VM, we mount the floppy image containing the driver and mTCP to the VM and copy everything to the
After copying the files, it is time to check if the networking driver works. To do so, we try to load the NE2000 driver manually:
C:\NET\NE2000.COM 0x60 3 0x300
Great, the driver found the network card!
Now, we can try to get an IP address. First, we have to copy the file
C:\NET\MTCP.CFG. Since we are using only the DHCP client and none of the other services (like an FTP or HTTP server) from the mTCP package, the default configuration works just fine.
Prior to using mTCP, we have to tell it where the configuration file is located by using the
SET MTCPCFG=C:\NET\MTCP.CFG command. Finally, we can try to get an IP address.
As you can see, the DHCP server provided by the virtual router assigned an IP address to the VM. The DHCP server doesn’t seem to support requesting a hostname, but for our purposes, this won’t matter at all.
Time to test if outbound connections work:
Now that we confirmed that the setup we want to run is working properly, it is time to auto-load it in the
AUTOEXEC.BAT file with the following modifications:
SET PATH=C:\DOS;C:\NET SET MTCPCFG=C:\NET\MTCP.CFG LH C:\NET\NE2000.COM 0x60 3 0x300 C:\NET\DHCP.EXE
These modifications will ensure that the networking stack will be loaded each time the system starts up.
Part 2: The fediverse.
Now that we have a working internet connection, it is time to connect MS-DOS to the fediverse.
Installing DOStodon is very simple. All we have to do is to get a copy of the git repository, which includes the necessary program files already compiled.
I transferred the extracted files to an ISO image and mounted the image in the virtual machine. Then, I copied all files to a new directory.
When starting DOStodon for the first time, we have to pass the login credentials as arguments. Since DOStodon stores the login information, we only have to do this on the first start.
C:\PROGRAMS\DOSTODON\DOSTODON.BAT example.com email@example.com yourPassword123`
After a couple of seconds, DOStodon starts up and shows us the Home timeline. As you’ll see in the next couple of screenshots, this is not just a simple tech demo. DOStodon is a complete Mastodon client with all the timelines, hashtag search, and a compositor for new posts and replies.
And because a picture is worth a thousand words, I’ll close this article with some screenshots.
Do you have any comments or suggestions regarding this article? Please drop an e-mail to firstname.lastname@example.org!