DEC Tulip packet drivers for DOS

Last Updated on March 12, 2024 by Dave Farquhar

Back when I was getting started in Linux, the network card to get was anything based on the DEC Tulip chipset. DEC sold them themselves for a short time, but so did Netgear, Linksys, and probably others. Unlike DEC ISA cards, which were junk, the Tulip chipset was great. At least in Linux and Windows. DOS? I never had reason to check. Here’s how (and why) I set up DEC Tulip packet drivers for DOS.

I recently came across a couple of old DEC Tulip cards in my parts stash, and I decided to try to get them working in DOS. I’ve had mixed success with PCI cards and DOS, so if I could get those old Tulip cards working, it could make life easier for me when I run DOS on that type of machine. Here’s how I did it.


Locating a DEC Tulip packet driver for DOS

DEC Tulip packet drivers for DOS
DEC’s Tulip was a good networking chip in its day, and it’s a good chip for DOS networking now, as long as you can find DEC Tulip packet drivers for DOS.

If DEC ever released a packet driver for the Tulip (aka the 21140, or 21×40), I can’t find it. But I was able to locate a good, reliable open source driver for that card. You can find it at crynwr.com/drivers (here’s a direct link). The file is rather large, but that’s because it contains source code. The file you need from it, simply named dc.com, is about 36k in size.

It works just like the packet driver for the very common NE2000 network cards. You run the executable with an argument that tells it what software IRQ to use. I use 0x60. Run that, and configure Michael Brutman’s mTCP to look for a card at interrupt 0x60, and it works really well. The card initializes quickly, and since it’s PCI, it’s running on a system with enough CPU horsepower to grab a DHCP lease quickly too. Shuttling files to and from that machine gets really easy.

Setting up MTCP

Download Brutman’s MTCP and copy it to your DOS machine somehow (a Gotek floppy emulator can help), along with the Tulip packet driver. If you wish, you can load them into a DOS boot disk if that makes things easier. I like to put all of the files in a directory named C:\NET.

When you unzip MTCP, you’ll find two sample configuration files in the samples directory, one for the MTCP package as a whole and the other for the FTP server. The example config worked well enough for me, mostly. You need to open the file and scroll down to the line that specifies the FTP passwords file, uncomment that line, and direct it to your file.

I started with the example file, and deleted all the entries except the brutman entry. I changed the username and password to something for myself.

You’ll need to set an environment variable pointing at your configuration file. I set mine in autoexec.bat. The command is set mtcpcfg=c:\net\mtcpcfg.txt .

Setting up your packet driver

First, you need to get your packet driver working. I copied the driver into the same directory as MTCP. In my case, the command dc.com 0x60 did the trick.

Testing connectivity

To test connectivity, run the command dhcp in the MTCP directory. If it pulls an IP address, try pinging yahoo.com or google.com. If it works, you know TCP/IP is working right. If it doesn’t work, it’s probably your cabling.

Setting up FTP

To set up FTP, edit your mtcpcfg.txt file. Scroll to about line 80, look for a line referencing ftppass.txt, and delete the # character at the front of the line and adjust the path if needed. Then create the file ftppass.txt in the same directory, which really only needs to be one line for your own use:

username password [none] [any] all

Just substitute the username and password you want to use for username and password.

Setting up autoexec.bat

I added the following lines to my autoexec.bat file to enable networking. You’ll have to adjust the second line to match your card:

path c:\dos;c:\net
lh c:\net\dc.com 0x60
set mtcpcfg=c:\net\mtcpcfg.txt
c:\net\dhcp

Running your FTP server

Once you have your network card working and pull an IP address, transferring files to your DOS PC becomes easy. On your DOS PC, run the command ftpsvr. Note the IP address.

Then on your modern computer, load an FTP client. You can use command-line FTP if you’re comfortable with that, or download a GUI FTP client. Open a connection to your DOS PC’s IP address, then log in with your username and password. Navigate the directory structure, make sure you’re transferring files in binary mode (most clients default to binary but not all), and then transfer files to your heart’s content.

You can also run the FTP server on one DOS machine and the MTCP FTP client from another DOS machine. As long as you’re fine with using command-line FTP, it’s useful for copying your favorite utilities from one DOS machine to another without having to mess with floppies.

What happened to the DEC Tulip chipset

DEC had a rather large chipmaking operation, but had trouble competing with Intel. Part of that, DEC believed, was due to Intel infringing on some of its intellectual property. In their waning days, DEC sued Intel. Part of the litigation outcome ended up being Intel buying the DEC chip business. This included the Alpha CPU, an ARM based CPU, and the network chip. Intel already had its own successful networking product line, so they didn’t want or need the Tulip. The Tulip soon left production, taking with it the best low-cost networking option on the market at the time. Lite-On made a clone chip for a time that Netgear used in a revised version of its FA310TX, but it soon went out of production as well.

Realtek and others stepped in to fill the void, but their chips weren’t as good.

If you found this post informative or helpful, please share it!