• Please review our updated Terms and Rules here

Feeling lucky, is the 3c509B compatible with 8088 using NE1000 drivers?

Yeah maybe think of it less like a 'hack' and more like an 'unofficial patch', fixing those nasty 8088 bugs they had in there ;)
 
Good news! I managed to replace all the 286 specific asm instructions with generic 8086 asm instructions and now the packet driver seems to work in a 8088 based XT machine.
Please test it, you will find the files attached to this post.

Holy crap, this actually works for me. Good stuff. I am a bit excited, I've got a box full of these 3C509B cards and I've been low on 8-bit ethernet cards for a while. I have a few 8088 machines that need a NIC. I figured the chipset on these 3C509 cards required a 16-bit bus. Thanks for the upload.

EDIT: Just a heads up, it doesn't seem to work with the 3C509B-TP cards. It only works with my 3C509B-TPO cards. The -TP cards try to use IRQ 10, which obviously doesn't exist in an 8-bit system. This is verified in two different machines. The -TP cards are the ones that have a built-in AUI port in addition to the RJ45 port. They might be able to be made to work if the packet driver is modified to be able to tell the card to use a different interrupt. I think the original configuration utility will only work on a 286 or better. I'm going to do some research and look into writing a custom config utility for use on an 8088.
 
Last edited:
Ahhh the problems with "hacks" (not an unofficial patch). Exactly the point I was making, illustrated.... Getting off soap box now...
 
Ahhh the problems with "hacks" (not an unofficial patch). Exactly the point I was making, illustrated.... Getting off soap box now...

Well, the packet driver works exactly like it does on a 286+. This isn't really unexpected behavior. We'll just need a config utility to go with it for some cases.

Another (substantially more ghetto) option would be to solder a wire to bridge the IRQ 10 line on the card to another IRQ line that will work in an 8-bit slot and patch the packet driver to always use that interrupt instead of what the card tells it. :)
 
I have 3c509.c driver from the linux kernel, it has code to do the configuration along with some fairly detailed info in the comments. I should be able to base a config utility for 8088s on this. I'll tinker with this bit tomorrow and see what I can come up with.
 
Great work! :D

Great work! :D

Good news! I managed to replace all the 286 specific asm instructions with generic 8086 asm instructions and now the packet driver seems to work in a 8088 based XT machine.
Please test it, you will find the files attached to this post.

Great work nestor! XD Thought this was worth a shot and it has worked for me too! In my case, it's on a homebrew computer system (Flea86) with a some basic 8-bit ISA support bolted on..

For members who are keen to make this work for them in their XT-class machine, here's what I did:
1.) Install the card into an EISA slot on an (un-powered) 286+ machine first and then power on
2.) Run the 3C5X9CFG.EXE utility (available online) and configure it in the following manner..
- Turn off plug-n-play
- Set the desired IRQ channel & Base address
- DOS client network driver optimisation
- No Modem installed
- Port Transciever = RJ45 (or whatever you prefer here.. :)
3.) Save settings to the card's on-board EEPROM. exit the utility and power down the 286+ machine
4.) Install newly configured 3C509B card into XT-class machine
5.) Power on PC/XT (or clone) and install nestor's modified 3C509 driver along your TCP/IP apps of your preference (I prefer mTCP :)

Cheers Valentin
PS: Nestor's modified driver should work with any 3C509B series card (TP/TPO, etc) using the above guide imho, since those last 2/3 letters (ie. 3C509B-xxx) relate to the physical ethernet port options installed on the card (and nothing more?)
 
Last edited:
I haven't verified this on real hardware yet, but when I recompile Fake86 without support for 80186/V20 instructions 3C5X9CFG.EXE still runs just fine in it. It should work an a real 8088 as-is.
 
I haven't verified this on real hardware yet, but when I recompile Fake86 without support for 80186/V20 instructions 3C5X9CFG.EXE still runs just fine in it. It should work an a real 8088 as-is.

Mike,

It still might not work because the card can be configured expecting to see a true 16-bit ISA (ie AT) Bus. I'd be willing to bet that a 3C509B configured in this manner will fail in an 8-bit ISA slot (and no amount of modification of the 3C5X9CFG.EXE utility would help this..)

In the (unlikely?) scenario where one doesnt have an EISA equipped PC, the only other real alternative would be to:
Step 1.) De-solder/remove the little 8-pin EEPROM chip from the 3C509B
Step 2.) Stick the EEPROM into a dedicated programmer
Step 3.) modify the necessary bytes within that EEPROM to tell the 3C509B it is going to live in an 8-bit slot..
Step 4.) Resolder the EEPROM back on to the card.
 
Just curious, does anyone have a "pre-programmed" hex file to program a eeprom with these settings?

Or does anyone happen to know if a Tandy 1000 SL/2 with a V30 (I have one on its way) will run the 5C5X9CFG.EXE will run to disable plug and play? :0). In my excitement to get a nic card with an RJ45 connector I purchased a couple on eBay before reading to the end of the thread. (that will teach me).

I also noticed some of the 509b-TPO cards on eBay also have what looks like a memory chip on them, would this be a plug and play rom? Some of the 509b-tpo do not have this extra chip.

One other quic question, I have another nic with the AUI connector on it, if I create a custom cable and pul the R-, R+, T-, and T+ signals can I use it as a regular network hub or switch? Or would there be more to it?
 
There's more to it (notice the collision detect wires). You'll need a converter cirquit (or in the first place an AUI/BNC or whatever converter).
 
Okie doke thanks. I knew there were additional signals on the aui but I was hoping it was "downward lay compatible. So to speak. Thanks for letting me know. I'm hoping some one might shed light on the other inquires in my post. :0). Thanks in advance of any assistance.

Cheers!
 
Well I just acquired a Tandy 1000 LT which is a 80286 computer so I should be able to install the two ebay 3C509B-TP cards, boot up dos, and then run the config program to disable plug and play and then pick a suitable IRQ for both the TL and the SL/2 computers. :) so I should be ok. :) Now I have to purchase another XT ISA Compact Flash card from Lo-Tech...

:) cheers. :)
 
I found the config program that works... :) runs fine on the Tandy 1000 TL :)
 
Last edited:
And more power to you. I prefer to buy the right tool for the right job. Not everything can be fixed with a hammer ;) Sometime the right tool is historically correct and sometime it is not. But it doesn't have to be forced to made to work for your needs.

This kind of modification of a driver is absolutely valid and in keeping with the history and mechanism of both hardware & software usage, customization, and distribution.

The driver was not "hacked", anymore so than any piece of software that needs to be modified in some sense, to work with a variant on the norm.
I have written and rewritten drivers for all shades of Windows, Linux, Unix 5, VMS, and OS/2 for longer than I care to remember, but NEVER did I consider what needed to be done, a "hack"!

Kudos to the programmer that made this happen!!!

gwk
 
Absolutely, I will post the zip file when I get home later today, sorry I should have thought of that...

http://www.siconic.com/download/network/3C5X9CFG.EXE

this is a link to it, i could not attach as it would not let me attach a zip larger than 97k here for some reason :)

please make sure you scan this before running it. :) i scanned it on my pc and it seemed ok :)
 
Last edited:
Hello. I have just recently tried this out. The packet driver detects my card perfectly, but then DHCP fails to work.

My configuration settings are as follows:

IPADDR 192.168.1.100
NETMASK 255.255.255.0
GATEWAY 192.168.1.1
NAMESERVER 192.168.1.1
LEASE_TIME 86400


IMAG2993.jpg

Any assistance would be appreciated. Though I know I'm posting on a 3-year old thread that's bound to be dead at this point.
 
Packet driver appears to be working, so two things come to mind: 1. IRQ 3 is already used by something else in the system (do you have a COM2/COM4?) or... 2. You're trying to connect over a wireless bridge that isn't forwarding DHCP, use a direct cable to your router/switch instead.
 
Packet driver appears to be working, so two things come to mind: 1. IRQ 3 is already used by something else in the system (do you have a COM2/COM4?) or... 2. You're trying to connect over a wireless bridge that isn't forwarding DHCP, use a direct cable to your router/switch instead.

Sorry for the late reply, I was waiting for my NEC V20 till I came back and tried again.
As it currently is I do not have a COM2, or any COM ports allocated at the time. As for the second solution, it's on a wire going directly to the router.
I appreciate the assistance though. My friend has an IBM XT with a similar card and he claims to have gotten it to work on his machine. I wonder what's preventing me from going further.
 
Back
Top