GermDorado10.config
Hal Murray, May 24, 1986 10:54:18 am PDT
PACK
GermSwapImpl,
TrapsImpl,
TeledebugImpl,
BootChannelDisk,
BootChannelEther,
MiniEthernetDriver,
ProcessorHeadDorado,
DiskHeadDorado,
EthernetHeadDorado;
Germ: CONFIGURATION LINKS: CODE
IMPORTS Basics, BootFile, DeviceCleanup, Endian, PrincOpsUtils, SoftwareTextBlt = BEGIN
GermHeads: CONFIGURATION LINKS: CODE -- A nested configuration, to have a control list
IMPORTS DeviceCleanup, SoftwareTextBlt
EXPORTS ALL
CONTROL ProcessorHeadDorado, DiskHeadDorado, EthernetHeadDorado =
BEGIN
ProcessorHeadDorado;
DiskHeadDorado;
EthernetHeadDorado;
END;
GermHeads;
[BCnull, GermPrivate] ← BootSwapGerm[Basics, BC0, BootFile, GermPrivate, GermSwap, MesaRuntimeInit, PrincOpsUtils, ProcessorFace, RuntimeError];
GermSwapImpl;
TrapsImpl;
TeledebugImpl;
MiniEthernetDriver;
BootChannel implementations. The modules implementing various types of BootChannel's are daisy chained together. BootSwapGerm is the "real" importer of BootChannel and also exports BCnull, a dummy BootChannel to terminate the chain. To add a new driver named "BootChannelNew" to the chain:
1) Find the end of the chain, i.e. "BCn ← BootChannelX[...BCnull...];"
2) Change it to "BCn ← BootChannelX[...BCn+1...];"
3) Append after it "BCn+1 ← BootChannelNew[...BCnull...];"
BC0 ← BootChannelDisk[
Basics, BC1, GermPrivate, PrincOpsUtils, ProcessorFace, SA4000Face];
BC1 ← BootChannelEther[
BCnull, Basics, Endian, GermPrivate, MiniEthernetDefs, PrincOpsUtils, ProcessorFace];
END.