3Com 3c509 in an 8088-based PC/XT

Last Updated on October 22, 2022 by Dave Farquhar

Officially, the old reliable–and super common–3Com 3c509 Ethernet card requires a 286 or better processor. Unofficially, you can get one to work in an 8088-or 8086-based based XT-class system. Here’s the trick to using a 3com 3c509 in an 8088 PC/XT.

Processor limitations of the 3c509

3Com 3c509 in 8088
Officially, the 3Com 3c509 and a PC/XT don’t work together. But hobbyists have made them work in recent years.

The official 3Com-provided driver required used 80186 processor instructions. The 80186 was an obscure chip in the PC landscape, so we generally said 286 or better. The 16-bit bus wasn’t a problem, as long as you used one of the interrupts available on the original 8-bit ISA bus and the card fit in the available space.

Since it only really used 186 instructions, that meant it would work with the original drivers on a V20- or V30-upgraded system, if you configured it to use one of the IRQs available on an XT, such as IRQ 4 or 7. But if you had an 8088 or 8086 CPU in a system like an IBM 5150 or 5160 or clone, or a Tandy 1000, and wanted to stay with the factory CPU for originality or compatibility reasons, you were out of luck.

The lack of ROM sockets in some of the later examples is less of a problem, since you have less reason in an XT-class system to need a NIC-based ROM socket. If you need the XT-IDE BIOS, you’re using an XT-IDE card that has the ROM socket on it.

Advantages of the 3c509 in an 8088 PC/XT-class system

So in some ways the 3C509 is an ideal card for this task. It is extremely common, and a very well built and reliable card. It is something that a competent professional would have used at the time. And the XT probably doesn’t need the ROM socket. I like a specific Intel card better, but 3c509s are usually easier to find on Ebay. Just check the photos to make sure the card has an RJ-45 jack before you buy. Most do, but not all.

The other cool thing about these cards is they were made in the USA. That was unusual even in the ’90s.

The only downside is the need to use an unofficial packet driver. The target market for these cards was 286 and faster systems, ideally 386 or 486. When these cards were new, they retailed for more than an 8088 based system was worth.

Using the 186 instruction set made the driver take less memory and perform slightly faster. We were fine with this in the mid-90s. If anything, we were frustrated they didn’t optimize for an even higher end processor.

But since the packet driver was open source, it wasn’t hard to rewrite to use the simpler 8086 instruction set and make the card functional on these older systems, at the cost of a bit of memory usage and slightly lower performance. You can get this version off Github.

Configuring the card

You will need to install the card in a system to configure it. If you want to use the official configuration utility, plug it in to any AT or better system with a free expansion slot. Or you can use the unofficial configuration utility that developers hacked to run on an 8088.

Run a tool like MSD or Checkit or your favorite DOS system configuration utility to see what IRQs are available. Depending on your system, IRQ3, 4, 5, or 7 may be available. IRQs 3-4 typically are for serial ports, while 5 and 7 are typically for parallel ports or sound cards. You’ll have to decide what to forgo in order to make room for your network card.

In this day and age, probably the serial port on IRQ4 is easiest to live without. You can still use a dual serial card on IRQ3 to support a mouse and a Wi-Fi modem if you want. You may or may not care about printing and you may or may not want sound in an XT, but you have a better idea how you will use your computer than I do.

Here’s how to configure the card:

3CCFG.EXE CONFIGURE /int:3 /optimize:dos /modem:none /pnp:disabled /xcvr:auto

3CCFG.EXE CONFIGURE /int:3 /optimize:dos /modem:1200 /pnp:disabled /xcvr:auto

Set int parameter to one of 3, 4, 5, or 7. Set the modem parameter to none if you don’t use serial ports. If you use a serial mouse, set the speed to 1200. If you use a wifi modem, set it to the appropriate speed for your modem.

Once you have your card configured, simply load the packet driver and MTCP in autoexec.bat to give yourself a usable TCP/IP stack and utilities. Add this line to autoexec.bat:

3c509.exe 0x60

Then configure MTCP the same way I did for the NE2000.

You will probably find that a 3C509 is easier to get up and running and more reliable than a random NE2000 clone card. I had mixed success getting NE2000 clone cards running and keeping them running, both then and now. The 3c509 was a better card, which was why it cost more when it was new. It’s still more expensive than a random NE2000 card, but you can usually find one for $20-$25, so the price isn’t outrageous.

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