Here are some hints for making it work.

Try to get the floppy based version to work first before you burn any
EPROMS. Can you get the floppy based version to run? The best way is
to is either masq or comboot and prepend that boot block to the com
file and write to the raw floppy. If you are using a DOS floppy with
COMMAND.COM replaced by the boot .COM file, then make sure you have
minimal CONFIG.SYS and AUTOEXEC.BAT files. Do not load any drivers,
especially memory drivers.

Can you get the bootstrap loader to see a bootp server? Check that the
bootp packets are being received at the bootp server host by doing an
ifconfig periodically while booting. If the count of packets doesn't go
up, then you may have a cabling problem.  If it does go up, then check to
see that a bootpd is running.  Run bootpd manually from the shell with
debugging turned on to see if the requests come in. Be sure to comment
out the entry in /etc/inetd.conf and send a SIGHUP to inetd to disable
that one first. If they are seen but bootpd doesn't know the machine,
check /etc/bootptab to see if you have put the right ethernet address
in. If bootpd complains about not being able to do a SIOCSARP on Linux,
then you have an old version of bootpd that doesn't match the kernel. Get
a newer version or get the sources and recompile. bootp-2.4.3 or later
is recommended.

Can you load a file with tftp? Do you have a tftp server running?
Maybe there isn't an entry in /etc/inetd.conf for tftp? Is the boot file
in the root directory for tftpd? Check the syslog to see if tftpd can
find the file.

If you are using tagged file load, make sure you have a kernel with
NFSROOT and possibly NFS swapping enabled and converted with mknbi into
a tagged file. Check the messages the kernel prints as it boots. Did
you remember to include support for the ethernet adaptor you have?

If you are doing NFS load, did you set up NFS exports on the server? You
need to run portmap, mountd and nfsd. Did you set up a separate root
directory for each client or use the transname patch which allows
sharing of root filesystems by many clients? Directories like /usr can
be shared ro.

When you have got it all running using a boot floppy then only you should
try making an EPROM.

Check the size of EPROM required by your ethernet adapter. Many cards have
only enough room for an 8k EPROM.  For example the original NE2000 only
takes a 2764 which is 8kb.  Can you see all of the EPROM code using DEBUG
from DOS? If not, then you can't use a 16k EPROM and you should use the
cut-down version of the boot rom image that only does tagged file load.
But you don't have to put the EPROM on the Network Interface Card, just
anywhere in the PC's BIOS extension address space, starting on any 2k
boundary between C8000 and EE000 I believe.  Maybe you can do this on
the motherboard or on a defunct VGA card. Be inventive.

Make sure your EPROM is fast enough. It probably should have an access
delay of 150 ns and under.

Did you enable any jumpers to allow the ethernet adapter to map
the EPROM into the address space of the PC?

Did you disable any shadowing of the EPROM address space?

If you are using a 32k EPROM in a 16k slot, most likely the top address
line is held high, meaning the top half of the EPROM is mapped into the
memory space. This means you need to burn the code into the top half of
the EPROM. Or you could burn a copy into each half to be sure it will
work whatever the state of the top address line.

If it still doesn't run the code from EPROM, try the simple test programs
(<card>.tst). If that doesn't work it is possible the BIOS requires the
machine to be truely diskless to call INT19H. Try unplugging any disk
controllers and/or turning off any mention of disks in the CMOS setup.
I'm not totally clear on when INT19H is called but I think it's after
any disk initialisation.  So if your PC isn't truly diskless, then the
EPROM will never get executed.  If that doesn't work, then as a last
resort, try editing the Makefile to undefine INT19H and make a version
of <card>.tst that takes control as soon as the BIOS scans the EPROM. If
that works, then make the EPROMS without INT19H defined.  However this
means that any other extension BIOSes above the boot EPROM will not
be called. Gero Kuhlmann tells me that this may be dangerous for PCI
boards, as initialisation may not be complete if not all BIOS extensions
are allowed to run to completion.  And email me if you encounter this;
I want to know what kind of BIOSes are out there.
