I realized just after sending the last message that the problem of loadable vs. nonloadable is not so difficult.
Just define each BIOS module with a series of attributes
module=(attribute1,attribute2,.....)
module would be hard drive, terminal, ....
attribute 1 would be none, generic or type
attribute 2 would be fixed or loadable
defining the hard drive as
hard drive=(generic,fixed) would tell the BIOS maker to use the one size fits all BIOS hard drive driver and it would be placed in the ROM.
hard drive=(none,fixed) means that no hard drive is present No driver will ever be required.
hard drive=(none,loadable) means do not put a HD driver in the PROM but reserve space for one in shadow ram. It may be loaded later
hard drive=(Promise4030,fixed) means to put a Promise 4030 unique driver into the ROM and it will not be replaced at run time.
other attributes would indicate special conditions or executions such as POST (power on self test)
ie.
video=(generic,fixed,post=generic)
or
video=(trident9680,fixed,post=none)
Other parameters could be defined such as terminal= where terminal would be the system control device (not the display terminal)
For example
terminal=(com1,com1) would mean that a serial device is connected to com port 1 and that will be used as the primary input/output device.
terminal=(keyboard,vidio) would generate the customary PC interface.