>I have located a workaround -
>at the end of prloader.s
>
>line 186: int 19h
>
>is executed; this command is not executed if using
>a floppy boot because of the "magic" value
>0xE44C put in AX. It seems that it is this instruction
>that causes total freeze on trying to do a local boot.
>
>Question: what is the purpose of this interrupt?
>
>I tried commenting out this instruction and now
>I can boot from network and local using both bootrom and
>floppy, strange huh?
This means your BIOS is non PnP compliant and Etherboot is being run as
a legacy ROM, which is not what you want. Even though your workaround
works, you won't get to disable the boot from the BIOS menu.
Before PnP, the way to get boot control is to hook INT 19H, let the BIOS
complete initialisation of all devices, then it will call INT 19H to get
started. Etherboot then gets control and removes the marker so that a
return from Etherboot will call INT 19H which will call the old vector,
usually floppy then disk boot.
All this doesn't work with PnP BIOS. At startup Etherboot tests the
longword at ES:DI against "$PnP". If it doesn't see this it assumes a
legacy BIOS. Your BIOS is not providing this value. The workaround is
to define BBS_BUT_NOT_PNP_COMPLIANT (5.0.4-mc3, or 5.0.4 with latest
patches from site).
|