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.
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.)
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.
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
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.
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)
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.
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.
AUI is the “classic” ethernet interface, followed by BNC – RJ45 is “modern” !
I think in that age, BNC was the classic and RJ45 was the newcomer.
BNC worked great for home networking, as you could just build your own cables and connect as many computers as you wanted. Many medium-size business also initially preferred it. It was classic CSMA/CD, and that was a fine trade-off at the time.
When RJ45 came around, it offered relatively little benefit, other than nobody accidentally taking down the network by splitting the shared medium. But the downside was that you now needed to buy a hub and you could of course no longer daisy-chain computers. That got expensive, as you needed a lot more cable. CAT5 wasn’t cheap back then.
You still ran into the same pesky maximum cable-length issues. And people frequently tried to connect multiple hubs back-to-back with hilarious results.
Things only improved when actual switches entered the market. But those were prohibitively expensive until the later part of the 1990s.
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)
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.
It is a 20MHz manchester signal, so the waterfall would be quite boring.
It would be, but you would still get a lot of internet traffic for one day. It would be sent in bursts and collisions might be interesting lots of harmonics.
I never had issues with NE2000 Cards. However I had issues with the 3COM stuff.
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.
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.
The NE200 was an okay card, but the 3c501 was utter trash. By the time the 507 and 509 came out, 3com were really good cards.
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.
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.
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.
I’m surprised, there’s one for sale on Ebay…
https://www.ebay.com/itm/Intel-PCL2A-PPCL2ANIA-8bit-ISA-Communications-Card-Ethernet-P82586-/200971535816
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.
The board was designed in 1985 and released in 1986. I was the product manager for it.
Macintosh had a similar deal where some NuBus network cards had a Motorola 68000 CPU and were essentially a single board computer specifically programmed to handle network packets. The A/ROS (Apple / Realtime Operating System) extension was required for those cards. I often wondered if one of those network cards could be programmed to do something else. Running the same CPU as the original Macintosh computer seemed a bit overkill just to be doing networking.
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.
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.
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.
The ubiquity of device drivers must be why so many PC emulators and VM hypervisors support emulated NE2000.
Yes, early Linux versions (Debian) had NE2000 drivers.
IIRC, I bought a number of cheap NE2000 boards off of Egghead, because of that.
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!
All jokes aside, LANTastic was pretty great when it came out. TeleVantage, too.
No. Just No.
Awful.
It made Netmare (version 2 earned that name) look good. Even made Windows for Workgroups/LanManager look good.
I took a job at a small company running that steaming pile. It took six months, but 2 hours a week of network downtime was finally enough for the boss to pry open his wallet and let me buy one copy of Netware 3 to replace the three ‘dedicated’ Lancrappy servers. IIRC he made me buy the Lantastic Novel cross abomination first, but we returned it and went to straight up big red.
Of course I had to educate him on Novell grey market and the uselessness of CNE certs…this certifies the the holder paid us lots of money. I digress.
The crew were backing up all their work to floppy because they all new Lantastic was crap. These were $200/hour billing rate consultants. Of course they billed the clients for the backup time, so not that terrible.
Yes! I was trying to persuade a friend that I saw the Hyundai brand name on a memory chip long before I saw it on a car. Now I have proof!
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.
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.
At least you never had someone install a Netware 4.11 Beta version onto a production server as an “upgrade” to version 4.1. Didn’t matter that printed right across the disc was NOT FOR USE IN A PRODUCTION ENVIRONMENT.
The company had sent my predecessor to Salt Lake for Novell’s two week course. Damn them for ‘helpfully’ sending her that beta CD. She’d tried installing the RTM version of 4.11 over that mess.
I tried everything I could think of or find to straighten the system out. Two CNEs directly from Novell HQ in Salt Lake were unable to fix it.
I suggested to the VP, Bob (yes, his real name) that we should buy a second server license for 4.11 for the old server (running 3.12 and all but one user password to it lost), make sure all the student loan data was really backed up to DAT, then take the upcoming three day weekend to wipe both servers, all the Win95 workstations (they were in various states of FUBAR too), do clean installs on everything, then have the database guys out from New York to install the latest, Y2K ready version of their massive DOS batch files that had been ported from COBOL.
Bob said it sounded great. We went to the big boss who shot it down as “too expensive”.
To say I was quietly seething inside at the sheer idiocy is putting it mildly. Too expensive? So having the system crap the bed every second day and losing the previous day’s processing was OK? Having it so screwed up that the capital A Administrator account on the Netware server was incapable of doing things like setting a backup job, changing print queues, or even adding new user accounts was OK? About the only thing Administrator was allowed to do was delete user accounts that existed before 4.11 Beta got installed, and manually start a backup job.
Seeing that the top people would not be moved by reason I essentially spun my wheels until being let go as “not a good fit” with the company. Literally everything that could be tried to fix it in-situ had been tried, with a 100% failure rate. Nuke and Pave was the only way anything was going to get fixed.
This situation is when I realized “Dilbert is truth!”. Bob the VP was in charge of marketing our technology to financial institutions to do their student loan processing. In my head I called him Bob The Dinosaur because he was exactly as clueless about computers and technology as that Dilbert character. The top guy only lacked the pointy hair… Oh he was pretty sharp about a number of things, but unfortunately knew just enough about computers to think he knew more than anyone younger than he.
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…
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”
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.
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!
I remember how great it was back in the day to find cheap cards that were fully compatible with NE2000s, because they would work with just about anything. My favorite were Genius GE2000s, mine saw use in DOS and Windows and even in Linux, before there were cheap 100baseT PCI cards.
I have only fond memories of the NE2000 itself; super reliable with openly available schematics so that anyone could clone them. They deliberately created a design that would be easy to clone and sold their cards at a low price in a successful attempt to make ethernet networks ubiquitous.
It’s not the NE2000s fault that people are always going to cut corners if there’s a buck to be made. There were plenty of cheap network cards that were either fully NE2K compatible or could be put into a compatible mode like Accton’s cards, it was an unfortunate case of buyer beware if you didn’t buy certified compatible cards, and used them with generic NE2000 drivers.