FreeDOS — networking on real hardware

I installed FreeDOS 1.3RC1 from the CD onto a 12 GB partition on a Compaq Armada E500. The machine also has SliTaz Linux on it, and I can use Linux to download stuff and copy it to the DOS partition — at least until DOS networking is going.

The built-in network scripts that FreeDOS installs rather assume a VirtualBox or similar installation. I commented those out of the AUTOEXEC.BAT in order to set it up myself.

The E500 is actually perfect for FreeDOS networking because it has an Intel E100-compatible ethernet controller  — and you can get on the net just from the install CD.

  1. Install the OS
  2. Install the crynwr and mtcp and wattcp
  3. Load the E100BPKT packet driver by typing something like this at the prompt: \path\to\drive\e100bpkt 0x60
  4. Set your environment variables like WATTCP.CFG and stuff to point to the config files.

If things are not so straightforward, FreeDOS networking may still work for you.

Download Georg Potthast‘s NICSCAN.EXE, transfer it to the machine and run it. It will tell you (I hope) what your card is, and then you can find a driver, possibly in the crynwr package.

I found that loading the packet driver high did not work, so I just load it into regular DOS memory (yes, at a small cost in available RAM), in AUTOEXEC.BAT:

c:\util\e100bpkt 0x60

And … works. Also in AUSTOEXEC.BAT, I set the WATTCP.CFG environment variable to point to the directory containing the WATTCP.CFG file:

set WATTCP.CFG=C:\FDOS\BIN

(or wherever you put it). And here is the WATTCP.CFG:

my_ip = DHCP  
netmask = 255.255.255.0
gateway = 192.168.100.1 (your router IP address)
nameserver = 192.168.100.1 (your router IP address)
nameserver = [any others you want to list]
nameserver = [any others you want to list]
broadcast = put it in if you know it

Static IP works well, possibly better; once my router has allocated an IP address to the MAC address of the box, putting that in the my_ip field also works, unless the router gets reinitialised. Can make the IP address static in router config if you like.

I used that to create an MTCP.CFG file, for any applications that use it, then set the appropriate environment variable (some useful mTCP stuff is here):

SET MTCPCFG=C:\MTCP\TCP.CFG

Note that DCHP.EXE is in the path installed by the FreeDOS installer. DDHCP.EXE is also an option.

Reboot (or run the commands manually).


In summary, the DOS networking experience is better than you might expect, though limited.

Once you have a network, you can use DOS’s answer to apt-get (yum, whatever)! Anything installed from the FreeDOS repo can be added, updated or removed using the tool. You can install with or without source, etc. For example:

C:\> fdnpkg install-nosrc gopherus

Email

I found FLmail to be the best solution here. Got it to work with GMX mail with very little trouble. Also works with Gmail and others if you have a ‘app password‘. Can be slow if you have lots of mails on the server.

Explored old versions of Pine for the PC (searched for pcp_wat.zip for a version of PC-Pine that works with the wattcp stack), but met with little success. Could not get Arachne’s mail client to work either. I suspect age is a factor for both. Pegasus mail can be made to work if you use updated mail transport tools — see here: http://macall.net/.

Gopher

Gopher is an old protocol anyway, so you have a couple of options here and they work as well on DOS as anywhere else!

Gopherus — a very light and fast dedicated Gopher client, still under active development and can be installed from the FreeDOS package manager. Recommended!

Lynx — the venerable text browser is also still an active project, and can visit gopher sites as easily as HTTP ones and can be installed from the FreeDOS package manager. Nice thing here is you can moved from HTTP to gopher to FTP seamlessly. I don’t know of any other browser that can do that, at least without addons and kludges.

Usenet

Lynx is the easiest to set up (you don’t have to set it up), but not very flexible as a browser. Simplest is to ‘g’o to (say):

nntp://news.eternal-september.org:119/name.of.group

and it will take you there. But it will ask for login credentials and does not store them, and each group is browsed separately. Once the group is open, it can be added to your bookmarks. This is certainly the easiest as far as setup is concerned. I installed lynx using FDNPKG:

C:\> FDNPKG install lynx

and it ‘just worked’ because I already have the WATTCP.CFG environment variable set.

I could not get other clients to work. There are some old shareware tools out there in obscure archives that can be made to work, but I could not get the newsreader installed by FreeDOS to work.

Web browsing

A handful of browsers are available. None deal well with modern websites that use a lot of JavaScript — I could not log into any webmail or shopping sites, for example, using any of these browsers (though I did not try all that many). Nonetheless, regular reading, searching etc does work, and they are all very functional and solid, and very small and light compared with your Firefoxes and Chromes:

Lynx — works as well on DOS as anywhere: news, gopher, http, https. Text browser. Solid.

Links — Also works well. Apparently can be compiled with some JavaScript, but I’m not sure how much. It’s a text browser that can be used in graphical mode. I found that:

C:\> links -g -mode 1024x768x32k

Worked quite well. Keep in mind that graphical Links is like a text browser that inlines images; the pages do not look like what you might expect. But they look good and the browser is fast.

Dillo — I found the Dillo hosted here worked as well or better than the one that came with FreeDOS, and it worked very well.

There’s an old DOS browser called Arachne, which is very impressive in many ways but does not cope well with https. It has mail and news reader extensions, but I could not get them to work. May well be me.

ssh

The options here seem limited to sshdos and ssh2dos. ssh2 is for ssh version 2. ssh2dos works fine if you set the server up as described in this very good article: https://justinmiller.io/posts/2020/07/15/legacy-dos-ssh-keys/. Of course, this means you need access to the server… so you cannot expect to log into a public server from DOS unless you tunnel out going via some other machine that you can get root access to. Maybe you could set up an RPi or something that does not have access to any important files, then ssh into that then out into the wide world. That’s not that great a solution. But it works. The ssh2 suite also offers scp, sftp and so on, and Lynx can do FTP too.

An updated/modified SSH2DOS can work with modern key exchange: https://github.com/AnttiTakala/SSH2DOS

IRC

I’ve never been an IRCer. We have:

FLchat — seems to work out of the box like magic. Gives a list of servers, can search for channels. I don’t know much about it all, but it seems to work pretty well. If it gives a black screen on start up, pass a different video mode in the batch file that runs it.

VNC viewer

Believe it or not, a DOS VNC viewer from around the year 2000 works well and lets you remote desktop on Linux quite readily, and on Windows if you are prepared for some compromises.

Wake on LAN

There is at least one DOS WOL utility.

There it is.

Author: Darren

I'm a scientist by training, currently working as a writer, trainer and editor.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.