-- GermDlion.config
-- Last Edited by: Sturgis, July 24, 1983 4:28 pm
-- Last Edited by: Birrell, October 31, 1983 11:09 am

PACK
  BootSwapGerm,
  BootSwapCross,
  TeledebugImpl,
  BootChannelDisk,
  BootChannelEther,
  MiniEthernetDriverDLion,
  ProcessorHeadDLion,
  SA4000HeadDLion,
  EthernetHeadDLion;

Germ: CONFIGURATION LINKS: CODE
  IMPORTS Boot, DeviceCleanup, DLionInputOutput, Frame, Inline, MicrocodeVersion, PageMap,
    PilotDisk, PrincOpsRuntime, ProcessOperations, SoftwareTextBlt, Trap, Utilities =
  BEGIN

  [BCnull, HSCnull, ResidentMemory] ←
    BootSwapGerm[Boot, BC0, BootSwap, Frame, HSC0, Inline, ProcessorFace,
    PageMap, PrincOpsRuntime, ProcessOperations, ResidentMemory, Teledebug, Trap];

  GermSwapImpl;
  TrapsImpl;

  -- Teledebugger
    TeledebugImpl;

  -- 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...];"
  -- (Similar remarks apply to the HeadStartChain (HSCn) linking heads.)
  BC0 ← BootChannelDisk[Boot, BC1, Inline, MicrocodeVersion, PilotDisk, SA4000Face];
  BC1 ← BootChannelEther[Boot, BCnull, Inline, MiniEthernetDefs, ProcessorFace, ResidentMemory];

  -- Communication
  MiniEthernetDriverDLion;

  -- Heads
  ProcessorHeadDLion; -- NOT in HeadStartChain

  [HSC0, SA4000Face] ← SA4000HeadDLion[DLionInputOutput, DeviceCleanup, HSC1, Inline, PageMap, PilotDisk, Utilities];
  [EthernetFace, HSC1] ←
    EthernetHeadDLion[DLionInputOutput, DeviceCleanup, HSCnull, Inline];

  END.

LOG
Time:July 18, 1983 1:32 pm: Sturgis: convert GermDoradoDlion.config to be a GermDLion.config (the original for Rubicon has been archived).  Had to leave out teledebugging for the moment, as the miniEthernetDriver wants to talk to an ethernetOne (3 megabit) rather than EthernetFace (10 megabit).
 Hence commented out (TeledebugImpl, BootChannelEther [watch magic involving BCNull and BC1], MiniEthernetDriver).  Added FakeTeleDebugImpl.
 July 24, 1983 4:23 pm: Sturgis: Having obtained MiniEthernetDriverDLion from a saved version of APilot70, have now added back in the teledebug stuff.