Was Novell’s NE2000 Really That Bad?

If you used almost any form of networked PC in the late 1980s or the 1990s, the chances are that you will at some point have encountered the Novell NE2000 network card. This 16-bit ISA card became a de facto standard for 16-bit network cards, such that very few “NE2000” cards were the real thing. A host of clones filled the market, some of which followed the spec of the original rather loosely. It’s something [Michal Necasek] examines as he takes the reader through the history of the NE2000 and why it gained something of a bad reputation. An interesting read for ’90s PC veterans who battled with dodgy Windows 3.1 network drivers.

The Novell line of network cards were not a primary product of the network server OS company but an attempt to spur the uptake of networked computers in an age when few machines were supplied from the factory with a network card installed. They were largely an implementation of the reference design for the National Semiconductor DP3890 Ethernet interface chipset, and for simplicity of interfacing and drivers they used an I/O mapped interface rather than DMA. The problem with the NE2000 wasn’t the card itself which would work with any NE2000 driver, but the host of “NE2000 compatible” cards that appeared over the decade as that magic phrase became a key selling point at the bottom end of the market. Sure they might contain a DP3890 or its clones, but even minor differences in behaviour would cause them not to work with all drivers, and thus they gained a bad name. The piece reveals the original card as one that might have been slow and outdated towards the end of its reign as a standard card, but maybe one not deserving of the ire directed at it.

If ancient networking kit is your thing, we’ve got some far more obscure stuff to show you.

37 thoughts on “Was Novell’s NE2000 Really That Bad?

  1. I loved the NE2000 stuff way back then. As the article implies, if you chose your clone carefully, there was nothing wrong with the NE2000 clones. (Conversely, if you didn’t it’d not be a great experience.)

    1. NE2000s were great if you wanted to build a diskless machine, booting over the network -providing the BIOS could, and the BootrOM was installed on the card- was like magic in a time were one had to feed floppies to a computer to boot, and hard drives were expensive.

  2. One of the issues wit the NE2000 was – as the article states – the use of Polled I/O to transfer data into and out of the card. This required the CPU to handle the transfer into the card.

    In comparison, there were other brands of network card that used DMA or shared memory – these were seen as superior to the NE2000 as the CPU could do other things while packets were being queued into and out of the card.

    While not necessarily a problem for applications under DOS, as soon as true multitasking came along the idea of a single core CPU basically blocking for every network I/O became a bit old fashioned.

    The NE2000 was definitely a good choice due to the number of operating systems that supported it, but that ubiquity did come with a price that not everyone was happy to pay

    1. Except that DMA on ISA was dirt-slow. ISA DMA was 4.77 MHz, all the time, no matter what, period, even though the bus could run noticeably faster. Even the idea that “the CPU could do other things” isn’t actually right, because the ISA DMA would hold the FSB for *so long* (again – 4.77 MHz) – so it prevented the CPU from actually accessing memory during that time. In other words, it was frequently better from a responsiveness standpoint to just do PIO.

      In other words, it wasn’t really PIO vs DMA that was the issue with the NE2K, it was the ISA bus itself.

      1. Shared memory would have been faster than PIO though.
        Of course the problem with shared memory is that it increased the cost of the card and made configuration a lot harder (conflicts with other devices taking up memory space and especially later on 386 memory managers like emm386 and such)

        1. Yeah, I disagree: I mean, obviously it’d be faster, but not by much. The fundamental indirection cost is just ~2 accesses per packet to set the keyhole’s destination, and obviously packet sizes are large enough that the overhead there’s minimal – you’re basically always writing data in consecutively, so mapping everything adds very little benefit. And as you mentioned, given configuration issues at the time, mapping 8k of memory isn’t trivial.

  3. Here in Czech Republic, 3com cards were the thing. The later of those had all three interfaces, BNC, the AUI or something, and classic RJ45 ethernet. They worked hard until realkek replaced them briefly and all of it were obsoleted by integrated network chips. But it’s good to have some when lightning blows your chips away and rest of the board works.

  4. I remember playing with NE200 card (various clones), that BNC connector and the dummy, and Novell Netware on DOS – anybosy remember Netwars? – in the late 80s and 90s, and not an IT pro. Fun times. The Novell wikipedia page make interesting reading)

  5. Now, I wonder what the waterfall of packets on a 10base2 coax cable link look like, as seen by a modern SDR (e.g. Airspy R2 + spyverter + 30 dB attenuator or a HackRF + spyverter + 30 dB attenuator or … ).

    According to the pdf in the link from the article it is “voltage swing of approximately 2V” on the cable, so 20 dB of attenuation could be enough, but 30 would definitely be safer (most modern SDR hardware expect the highest input level to be not much over 0 dBm). The datasheet for the DP8392 Coaxial Transceiver Interface, used to drive the BNC connector gives a maximum Common mode output voltage of -2.5 volts and a maximum Differential output voltage of +/- 1.2 volts, so 22dB to 30dB of attenuation looks about right.

    A quick image search on “10base2 waterfall sdr” is not showing anything that I would expect. Most are hams talking about repurposing the RG-58U cables.

    1. Let me add this. I never bothered with the 10base2 BNC but just Ethernet using CAT3. Typically used with WFW3.11 and MS Network client 3.0 if it was a DOS machine. The only issues I ran into was using TCP/IP later on it was a total RAM hog.

    2. I replaced my two 3c501 cards (pulls for old hardware), which have a known hardware lock-up bug when under load, with cheap NE2000 clones I bought at a trade show. I couldn’t have been happier. Problems disappeared. File transfers were faster. And things were less laggy in DesqView. I could finally share my BBS’s hard drive with my main PC and do admin work while people were online.

  6. The best chip of this era was the Intel 82586. It was a bus mastering coprocessor. A single 82568 based card could max out 10Mb Ethernet. The performance of the NE2000 was no where near this. If I recall correctly the NE2000 never made it over about 4Mb/s. The same held true for latency, the 82586 could do over 3,000 packets per second and the NE2000 was around 1000.

    1. Whether or not a device can effectively do device-controlled DMA (bus mastering) on its own depends on the bus, not just the chip – the 8390 is perfectly capable of DMA as well. But the problem is when you hang it off of an ISA bus, bus mastering’s nearly impossible. Instead there’s a separate DMA controller which handles it (usually horribly). Intel’s EtherExpress, for instance, has an i82586, but all the transactions are PIO.

      Really, ISA bus mastering was so bad that by the time systems had gotten to the point where they could do it, the CPUs were so fast that PIO was often faster anyway.

      1. The other way to use the 82586 is to put RAM onto the networking card. I have a pre-production unit of the first PC based Ethernet card Intel made. It has an 80186, 82586 and an 8208 DRAM controller on it. I’m not sure if it was ever seen in the wild, the US government bought every board we could make for the DOD. These cards were not cheap, but they ran the entire networking stack on the card totally off-loading the host.

        1. Makes sense that Intel would do that, given that they have all the bits and pieces in house for it. Given how bad the ISA bus was in terms of throughput, offloading anything would be a huge win.

          But, of course, the most amazing thing about that (if the eBay auction’s correct) is why would anyone in their right mind do something like that in *1993*?! At that point it was flamingly obvious ISA was a dead-end, even for networking (it had no prayer of keeping up with 100base-TX), and with computing accelerating so quickly, I can’t imagine any benefit to speeding up machines that’d be obsoleted in less than a year. It seems like the manpower alone to retrofit/install so many devices would be utterly wasted.

          I mean, in the mid-90s, there were papers that would come out demonstrating that for a while there it didn’t even make sense to start large computing jobs, because it could be completed faster by just waiting.

    2. I worked for a network monitoring company ProTools and then Network General and started out writing promiscuous mode device drivers for cards like the NE2000 and 82586-based cards. When we had a fully optimized NE2000 driver, I am fairly sure we could Tx saturate 10Mbps Ethernet as well as do full 10Mbps Rx capture. I think it was the 82586 card that made me pull my hair out trying to fix a lock-up. It crashed the 82586 and I had a devil of a time trying to figure out why. In my defense, I was 1 year out of Portland State University, so I had a lot to learn.

      As for most NDIS drivers having bugs, absolutely yes. Most drivers at that time seemed to have been written by people who didn’t know what they were doing. However, they had a template and some mostly complete hardware documentation.

      1. I remember now what the big flaw was with the NE2000. It only has a single packet buffer. That means that while you are offloading, it can’t receive. Or while you are transmitting you can’t load another one to send. So the packets can not be pipelined. Because of this the interpacket gaps on the NE2000 are much longer than the ones on the 82586. The 82586 has a linked list of packets followed by the on-chip DMA controller. That’s why the 82586 can do 3,000 packets per second and the NE2000 only 1,000.

        The NE2000 also requires and interrupt on every packet. The 82586 can endlessly chain xmits and receives without interrupts. You can set it up to only interrupt when it moves out of the idle state. Eliminate thousand of interrupts makes a huge difference.

  7. man i guess i was lucky. the specific thing i loved about ne2000 is that you never had to hunt for or fight with drivers for it. then later the rtl8139 filled that niche. just great to have a card that you knew you could get a driver for, whether it’s netboot-from-floppy or netware or winsock or linux.

    had a 3c507, always fighting to get drivers for that thing into whatever i was using. once i upgraded the linux kernel and it was broken, because alan cox had gone through all of the network stack in one fwoop and made some global change, but made a few typos in the 3c507 driver (no knock against alan, that’s hard and necessary work). it’s just such a night and day difference using the driver that is always debugged first.

  8. I was a “5 Gold Star” Certified Artisoft Lantastic Network Engineer in the 90’s. I installed and set up thousands of their NE2000 clone cards. They worked quite well. I still have my framed certificate hanging on my wall cuz as certificates go, this one was pretty fancy-shmancy!

  9. We hired a Novell “expert” to install our first 10base2 network using NE2000 at the Ag Co-op I worked at. One bad connection and the whole network goes down.

    1. His crimps were crap and all failed one by one. My vise grip crimps looked like crap but worked.
    2. Terminators! Ohms matter. One end had a 10base2 terminator, the other end Arcnet.
    3. My computer was unique. Static electricity would build on the front of the CRT. Randomly it would discharge to glare protector. The shock would take the whole network down.

    This started me down the networking path. Replaced with Intel 10baseT network hooked to a 56k modem for the internet. It also had 10base2 to keep the Novell Server connected.

    1. My brother, an accountant, wired his office network back in the late 1980s.
      At first he was the only one in the office with a PC (Lotus 1-2-3).
      But then others started getting PCs for word processing and printing, so it ended up on him (the guy that knew something about PCs) to set up a network.

  10. A started Business in 1988 with Novell installations.
    Loved the NE2000 and later 3Com 3C509 Network Cards.
    Never used cheap clones and never had any problems with them.
    Ever had an Eye to the IRQ oder HW-Adresses for concurring Serial Ports, but that was the only Problems with the X86 Architecture…

  11. I don’t remember particular trouble with NE2000s, I liked the wide compatibility. I was using BNC for a decade, had machines of varying age. I had one real NE2000 and a couple of clones, and some 8 bit cards. It’s possible that having the real one in there forced a strict compliance mode in the clones. However, I don’t think they were full duplex and when I went to twisted pair, found them slow because of that, and then favored DEC cards, DE220 DE530 I think, which also supported DMA. Not sure if later PCI “NE2000” compatibles had DMA support or not, but not noticed whether one of them was particularly bad. Mind you I don’t think I’ve had to rely on their NE2000 mode and used native driver.

    Sometime though, I might set up a retro net with BNC again, with XT,286,386,486 class and prolly a PIII “server”

  12. If this page claims to be the history of NE2000, it should at least mention the rtl8139, i bought so many of them in different brands because that was the only chip that would work under Linux. And the cards were cheap.

  13. What I remember of NE2000 was if you had a network card and you couldn’t find a driver just try the generic NE2000 driver. 50% chance it would work. Back in my days of scrounging parts from old DOS computers to build Windows and Linux computers back in the late 90s that was great! NE2000 compatibility really made life easier.

    I can’t remember when the last time was that I heard or even thought of that though! Good memories!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

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