Problem number one: Identifying the network card. Mark helped there; depending on how it's configured (via jumpers as I found out) it shows up as either a WD80x3 or an NE2000 clone.
The other two cards (important later on) are a 3Com503 (for the internal network and yes, I realize it's an old card) and an NE2000 compatible (for the external connection to the DSL unit) that I can't change the settings on because it's software configurable and I don't have the software (MS-DOS only of course) to change the configuration. Pitty—I find those cards all over the place!
Problem number two (and this is the embarresing one): don't forget to include the IDE drivers when compiling the Linux kernel!
Transfer the new kernel and install. Shut machine down. Install card. Bring machine up. See it find three network cards and immediately kernel panic because it can't mount the root partition.
Keep from having heart attack.
Boot old kernel (yes, I did have an option to boot the previous working kernel. Standard operating procedure around here). Good, it comes up and the filesystem is not corrupted at all. Try to reboot the new kernel.
Kernel panic trying to mount the root device.
Okay, something odd is going on here.
Since my roommate is home and knows Linux, maybe he can help me. I go to his room and start describing the problem when it hits me! I probably forgot to include the IDE drivers!
Sure enough, no IDE drivers.
D'oh! (Which I can now use since it's part of the Oxford English Dictionary)
Problem number three: The 3Com503. It kept spewing these error messages about bogus packets. Probably some strange interaction with the WD80x3 driver I now have. Play around with the settings on the WD80x3 and that doesn't fix the problem.
Heck, I can reconfigure the 3Com since unlike the NE2000 it has jumpers. I change the 3Com to use I/O instead of shared memory and even though I get this message on boot-up:
3c503.c:v1.10 9/23/93 Donald Becker (email@example.com) eth0: 3c503 at i/o base 0x330, node 02 60 8c d8 75 17, using internal xcvr. eth0: 3c503-PIO, 16kB RAM, using programmed I/O (REJUMPER for SHARED MEMORY).
it works fine with the three cards.
I also changed the firewall settings to log all unused ports below 1022. I found out the hard way that Linux (2.0—it's too much work to upgrade to 2.2 or 2.4) seems to use 1023 as the first available port when making outgoing connections, instead of 1024. How odd.