-- BasicHeadsDicentra.pack, HGM,  3-Jul-85  3:46:58

-- TO BE FIXED:
--   The Resident code pack currently includes some pieces of SetGMTUsingEthernet and EthernetOneHeadDummy that should really be in ResidentCool, but cause warning messages (packager bug) if placed there

BasicHeads: SEGMENT =
BEGIN

BasicHeadsResident: CODE PACK =
  BEGIN
  ProcessorHeadDicentra EXCEPT BasicHeadsInitialization;
  EthernetHeadDicentra EXCEPT BasicHeadsInitialization;
  EthernetOneHeadDicentra EXCEPT BasicHeadsInitialization;
  TTYPortHeadDicentra[InitializeCleanup, ENTRY VECTOR];
  DisplayHeadDummy EXCEPT
    SwappableBasicHeads, BasicHeadsInitialization,
    SmoothScrollingScrolling, SmoothScrollingCreateDelete;
  SetGMTUsingEthernet[FixupClock, ENTRY VECTOR, CATCH];
  EERomDicentra;
  WatchdogDicentra;
  END;

BasicHeadsSpecialResident: CODE PACK =
  BEGIN
  RealMemoryImplDicentra[ENTRY VECTOR, SpecialResidentCodeHandle];
  GMTUsingIntervalTimer EXCEPT BasicHeadsInitialization;
  END;

SwappableBasicHeads: CODE PACK = {
  DisplayHeadDummy[
    InitializeCleanup, BeepOff, BeepOn, Connect, Disconnect, GetBitBltTable,
    TurnOn, TurnOff, SetBackground, SetBorderPattern, SetCursorPattern,
    SetCursorPosition, SetPosition];
  SA4000HeadDummy[
    ENTRY VECTOR, DetermineDiskShape, GetControllerAttributes, GetDeviceAttributes,
    GetDeviceType, GetDriveInfo, GetFormattingUnit, GetNextController, GetNextDevice, Reset,
    Recalibrate];
  FloppyHeadDummy[ENTRY VECTOR, GetNextDevice] };

SmoothScrollingScrolling: CODE PACK = {
  DisplayHeadDummy[Scroll]};

SmoothScrollingCreateDelete: CODE PACK = {
  DisplayHeadDummy[CreateScrollWindow, DeleteScrollWindow]};

SwappableTTYHeads: CODE PACK =
  BEGIN
  TTYPortHeadDicentra[
    GetCommand, GetLineCount, GetStatus, On, Off, PutCommand, SendBreak,
    SetParameter, ReadyToGet, ReadyToPut];
  END;

BasicHeadsInitialization: CODE PACK =
  BEGIN
  ProcessorHeadDicentra[InitializeClocks, Start, MAIN];
  EthernetHeadDicentra[MAIN, Start];
  EthernetOneHeadDicentra[MAIN, Start];
  GMTUsingIntervalTimer[
    MAIN, ExternalEvent, SetAutomaticPowerOn, ResetAutomaticPowerOn];
  HeadStartChainPlug;
  SA4000HeadDummy[InitializeController, InitializeCleanup, Initiate, Poll, Start, MAIN];
  FloppyHeadDummy[ErrorProc, Initialize, Start, SuggestedTries, MAIN];
  SetGMTUsingEthernet[MAIN, EthernetExists, GetNetworkGMT, SetGMT];
  TTYPortHeadDicentra[MAIN];
  DisplayHeadDummy[Initialize, Start, MAIN];
  RealMemoryImplDicentra[
    Count, FreeReservedMemory, PCBank, Initialize, MoveIntervalToDisplayMemory, MAIN];
  END;

END;


BasicHeadsResidentFrames: FRAME PACK =
  BEGIN
  ProcessorHeadDicentra;
  RealMemoryImplDicentra;
  EthernetHeadDicentra;
  EthernetOneHeadDicentra;
  TTYPortHeadDicentra;
  GMTUsingIntervalTimer;
  SetGMTUsingEthernet;
  SA4000HeadDummy;
  FloppyHeadDummy;
  DisplayHeadDummy;
  HeadStartChainPlug;
  EERomDicentra;
  WatchdogDicentra;
  END;