alawlor@dit.ie (Aengus Lawlor) (11/29/89)
The following program from PC Magazine of July 1988 will print the 12 digit ethernet address of a 3COM 3C501 Ethernet card. It doesn't work for my Western Digital WD8003Es, or D-Link DE-001s (NE-1000 clones). The 3C501 uses IRQ 3, I/O base address 300H, and DMA channel 1. The D-Link uses IRQ 3,I/O base address 300H, and no DMA, with a Base Memory address of D0000H. The WD8003E uses IRQ 3, I/O base address 280H, and no DMA, with a Ram Buffer I/O Base address of C4000H. These are the factory default settings of the cards. Can anyone tell me exactly what this program does, and what I need to change to make it work for all three cards?. In a similiar vein, our primary Network is a 3Com. The drivers for each card are loaded as devices in the CONFIG.SYS file. Is there any way of making a universal boot floppy, that would load the correct driver for the card? Any suggestions appreciated. Aengus. /* from PCMAG july 88 */ #include "stdio.h" #define L_GETEAR 6 /* bytes in binary E/N address */ #define L_EA (2 * (L_GETEAR + 1)) /* size of ASCII E/N address */ #define IE_GP 8 /* xmit, station addr PROM pointer */ #define IE_SA 12 /* station address prom window */ #define EA_BASE 0x300 /* Ethernet adapter base address */ main () { int i, byte, base = EA_BASE; /* 3c501 adapter I/O base address */ for (i=0; i<L_GETEAR; i++) { outport (base + IE_GP, i); /* point to E/N address byte */ byte = inportb (base + IE_SA); /* fetch address byte */ printf ("%02x", byte & 0xff); } printf("\n"); } Aengus Lawlor Dept of Computer Science, College of Technology Kevin St, Dublin 8. Ireland. Time flies like an Arrow, Fruit flies like a banana.