-- Copyright (C) 1982, 1983, 1985  by Xerox Corporation. All rights reserved. 
-- UtilityPilot.bootmesa    4-Feb-85 16:21:35 by EKN 
-- Tim Diebert 15-Jun-87 10:15:35 

-- THIS VERSION HAS HAD MORE STATE VECTORS ADDED TO FACILITATE VM TESTING.

-- For UtilityPilot-based systems, all code for the heads, Communication, and client must be PACKed together in the top-level config.  It is made resident below by mentioning a module in this PACK.

WART: PilotControl;

RESIDENT:
  CODEPACK [KernelResidentBooting, KernelSpecialResident, HighStoreResident],
  CODEPACK [ScavengersResident],
  FRAMEPACK [UtilityPilotKernelResidentFrames],
  CODEPACK [BasicHeadsResident, BasicHeadsSpecialResident],
  CODEPACK [SwappableBasicHeads, SwappableTTYHeads],  -- resident in UtilityPilot.
  FRAMEPACK [BasicHeadsResidentFrames],
  GLOBALFRAME [UtilityPilotClientImpl],
  UtilityPilotClientImpl;  -- hook for client code pack.

IN:
  -- Initialization code only.  Code in this section will get swapped out (permanently!) if we need main storage.
  CODEPACK [KernelBasicsInitialization, HighStoreInitialization],
  CODEPACK [ScavengerInitialization],
  FRAMEPACK [UtilityPilotKernelInitializationFrames],
  CODEPACK [BasicHeadsInitialization],
  CODEPACK [SmoothScrollingScrolling, SmoothScrollingCreateDelete];

NOTRAP: PilotControl, Traps;

-- Process Data Area:
PROCESSES: 35;  -- used to easily fit in a few pages with little slop. STILL a reasonable number?

STATEVECTORSIZE: 20;  -- (D0 and Dandelion)

-- Priority levels 3, 4, 6, and 7 are reserved for Pilot.  If you add a (faultable) process at that level, you must also add a stateVector for it.
STATEVECTORCOUNT: 0, 1;  -- Client Low.
STATEVECTORCOUNT: 1, 1;  -- Client Main.
STATEVECTORCOUNT: 2, 1;  -- Client High.
STATEVECTORCOUNT: 3, 2;  -- PageFaultLow:
STATEVECTORCOUNT: 4, 3;  -- PageFaultHigh:
STATEVECTORCOUNT: 5, 3;  -- Faultable real-time processes
STATEVECTORCOUNT: 6, 3;  -- Real Time Processes.
STATEVECTORCOUNT: 7, 1;  -- FrameFaultProcess.

FRAMEPAGES: 15;  -- This MIGHT be too much for the ordinary UtiltyPilot client..
FRAMEWEIGHT: 0, 11;
FRAMEWEIGHT: 1, 15;
FRAMEWEIGHT: 2, 11;
FRAMEWEIGHT: 3, 10;
FRAMEWEIGHT: 4, 9;
FRAMEWEIGHT: 5, 8;
FRAMEWEIGHT: 6, 6;
FRAMEWEIGHT: 7, 4;
FRAMEWEIGHT: 8, 4;
FRAMEWEIGHT: 9, 2;
FRAMEWEIGHT: 10, 2;
FRAMEWEIGHT: 11, 1;
FRAMEWEIGHT: 12, 1;
FRAMEWEIGHT: 13, 1;
FRAMEWEIGHT: 14, 1;
FRAMEWEIGHT: 15, 1;
FRAMEWEIGHT: 16, 1;
FRAMEWEIGHT: 17, 1;
FRAMEWEIGHT: 18, 1;
FRAMEWEIGHT: 19, 0;
FRAMEWEIGHT: 20, 0;
FRAMEWEIGHT: 21, 0;
FRAMEWEIGHT: 22, 0;
FRAMEWEIGHT: 23, 0;
FRAMEWEIGHT: 24, 0;
FRAMEWEIGHT: 25, 0;
FRAMEWEIGHT: 26, 0;
FRAMEWEIGHT: 27, 0;
FRAMEWEIGHT: 28, 0;
FRAMEWEIGHT: 29, 0;
FRAMEWEIGHT: 30, 0;  -- "30" = PrincOps.LastAVSlot.
-- END Temporarily added stuff.

LOADSTATEMODULES: 10;
LOADSTATEBCDS: 1;

MDSBASE: 1000B;
CODEBASE: 1400B;


-- LOG   (For earlier entries, please see Mesa 10.0 archive version)

-- LXD        26-Feb-82 15:24:48  Added SwappableTTYHeads.
-- WDK        28-Sep-82 21:26:54
--     Split UtilityPilotKernelFrames into UtilityPilotKernelResidentFrames,
--     UtilityPilotKernelInitializationFrames. ResidentDescriptor is
--     now an obsolete concept.
-- WDK        21-Oct-82 10:46:52   Temporarily add state vectors at pri [0..2] for testing.
-- AWL         27-Dec-82 15:38:41   
--    Modified for Klamath
-- JXP   	 4-Jan-83 10:57:29   
--    Added GLOBALFRAME [UtilityPilotClientImpl] to RESIDENT section.
-- JXP   	10-Feb-83 11:33:10   
--    Temporarily add FRAMEPAGES and FRAMEWEIGHT specifications.
-- JXP   	23-Mar-83 10:56:57   
--    Add ScavengersResident and ScavengersInitialization Code Packs.
-- JXP   	26-Sep-83 16:04:19   
--    get rid of GFT Entry.
-- JXP   	28-Sep-83 10:27:07   
--    Add LOADSTATEMODULES and LOADSTATEBCDS entries. Use new keywords. Add swappable code pack. Alphabetize list of same. Put state vector counts back down to proper value.
-- EKN  	 4-Feb-85 16:22:06
--   added one more state vector at priority 3 for floppyspace.