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; BC0 _ BootChannelDisk[ Basics, BC1, GermPrivate, PrincOpsUtils, ProcessorFace, SA4000Face]; BC1 _ BootChannelEther[ BCnull, Basics, Endian, GermPrivate, MiniEthernetDefs, PrincOpsUtils, ProcessorFace]; END. GermDorado10.config Hal Murray, May 24, 1986 10:54:18 am PDT 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...];" Κ/˜codešœ™K™(—K˜šΟk˜K˜ K˜ K˜K˜K˜K˜K˜K˜K˜K˜—šœ œœ˜KšœJ˜W—K˜šœ  œœœΟc1˜VKšœ˜&Kšœ˜ Kšœ:˜AKš˜K˜Kšœ˜K˜Kšœ˜K˜—K˜ K˜šœ˜K˜—K˜ K˜ K˜K˜K˜šœ€™€KšœF™FKšœ2™2Kšœ:™:—K˜˜K˜D—K˜˜KšœU˜UK˜—Kšœ˜K˜—…—Ψ%