• Please review our updated Terms and Rules here

New 8 bit Ethernet cards on Tindie

mbbrutman

Associate Cat Herder
Staff member
Joined
May 3, 2003
Messages
6,419
For those of you looking for an 8 bit Ethernet card, check out this NE2000 based card that works in an 8 bit slot:


The price is more than the occasional steal you will find in the bargain bin at a swap meet, but it's a newly designed card made from new parts. And best of all, it's going to work out of the box as is - no playing "will it work" roulette with 35 year old cards.

I bought one and tested it on a PCjr with an ISA bus adapter. Sergey Kiselev has a few open source projects out there and has been an active supporter of VCF and vintage computing in general.


-Mike
 
There is a problem with the official Realtek (binary) packet driver on XT computers. It works fine *except* if you try to use IRQ2 since the driver assumes that its mapped to IRQ9. This assumption is true on ATs but, obviously, not in XTs and it refuses to load since that IRQ number (9) is higher than 7 ...

I've found the source code of latest RTL8019 packet driver (PNPPD.COM) here:

http://www.bitsavers.org/components/realtek/RTL8019/0001-Develop_Kit_pw_rtl8019as.zip (password is: rtl8019as)

There is a batch file (make.bat) to build it using TASM but it assembles just fine with MASM.

Now returning to the problem. There is a table in PNPPD.ASM:

Code:
IRQTable   db 9,3,4,5,10,11,12,15    ; Jasper 10/05/94


so the fix is very simple Change this to:

Code:
IRQTable   db 2,3,4,5,10,11,12,15    ; DRR 18/12/21

and problem solved. Notice that this works also on ATs because in TAIL.ASM there is code to map IRQ 2 to IRQ 9 for them:

Code:
;
; Map IRQ 2 to IRQ 9 if needed
;
test  sys_features,TWO_8259  ; 2nd 8259 ?
je     no_mapping_needed        ; no, no mapping needed
cmp int_no,2                          ; map IRQ 2 to IRQ 9.
jne   no_mapping_needed
mov int_no,9
:no_mapping_needed

And, if you don't what to reassemble it, you can simply hexedit PNPPD.COM, changing the byte at offset 1493 (hex) from 09 to 02 with an hex editor.

Here is the patched binary:
 

Attachments

  • pnppd_irq2.zip
    5.9 KB · Views: 2
Last edited:
I reported problems with Realtek drivers on an integrated-on-the-motherboard Socket 939 setup. Never got a resolution, so I just stuck in a D-Link PCI NIC and used that.
 
I'll take one, set a pre-order up if you ever do make another batch.

Meanwhile, if anyone else needs a NIC solution for the IBM PC 5150, I have notes here:
<https://voidstar.blog/5150-setting-up-nic-network-interface-card-and-mtcp/>

Basically, "3COM Etherlink III 3C509B-TPO" (TPO means twisted-pair RJ45 only, not any kind of special protocol) which are still fairly plentiful. The issue is, you need 256KB of memory to run its setup program. That's not a HUGE problem - just some of us like to roll with 64KB or even 16KB now and then :) Such as to find what "minimalist" kind of software we can find that could do anything across the network.

I don't know what the "16-bit" portion of that particular card does, but it does work in my own 5150 slots just fine. While a 16-bit bus is in theory faster, does it go faster than the 10Mb/s cap that the NIC can do anyway? I never did any kind of benchmark testing - I've written a TCP/IP based bandwidth tester before (ANT, as a replacement to iperf3) but wouldn't be able to compile it to old 16-bit x86 DOS. I guess one manual benchmark would be to take a large file (like the BadApple demo file) and just time how long it takes to copy over on a 5150 vs same setup on a 5170, and see if the "16-bit-ness" of the NIC makes any difference.
 
I don't know what the "16-bit" portion of that particular card does, but it does work in my own 5150 slots just fine. While a 16-bit bus is in theory faster, does it go faster than the 10Mb/s cap that the NIC can do anyway? I never did any kind of benchmark testing - I've written a TCP/IP based bandwidth tester before (ANT, as a replacement to iperf3) but wouldn't be able to compile it to old 16-bit x86 DOS. I guess one manual benchmark would be to take a large file (like the BadApple demo file) and just time how long it takes to copy over on a 5150 vs same setup on a 5170, and see if the "16-bit-ness" of the NIC makes any difference.
mbbrutman's mTCP already comes with a bandwidth tester that you can use so that it's a fair comparison against other PCs/XTs.

Beyond the 16 bit vs 8 bit transfers, another difference with these cards and your 5150 vs. 5170 is that 80186, V20, and later CPUs all have a single instruction to fill a memory block with bytes read from the network card using port i/o (rep insb or rep insw) while this is missing from the original 8088/8086. They have to use an in/stosb/loop construct instead, and every time an 8088 executes a loop instruction the prefetch queue gets flushed and it forgets what it was doing and has to retrieve the instructions from memory again. Whereas, a V20 (or of course, a 286) could get the rep insb instruction into its execution unit and just do I/O as one self-repeating instruction.

In fact, it looks like taking out those rep ins/rep outs instructions and replacing them with loops is what that Nestor 509B driver that you posted is all about: https://github.com/hackerb9/3C509B-nestor/commit/a3a211027d397733f03029aff00e0347077bb6fe
So you'd want to use the original driver on your AT in order to take full advantage of its 286 CPU.
 
Back
Top