// LoadIfsScav.cm
// Copyright Xerox Corporation 1979, 1980, 1981, 1982
// Last modified July 26, 1982  6:01 PM by Taft

// The first group (up to "X/Q") consists of resident code that must
// be resident and be executed in bank 0 even on an XM Alto.
// This includes all modules that execute S-group opcodes,
// generate pointers to code, or fool with the stack in non-standard ways.

// The next group (from X/Q to I/Q) is code that must be resident
// on a non-XM Alto for performance reasons, but may be moved to extended
// memory on an XM Alto, if there is enough of it.  In general, all Bcpl
// modules are OK to move, but watch out for procedure values that have
// already been copied into other places by the time XM initialization occurs.

// The last group (from I/Q to the end of the resident) is resident
// initialization that is executed before overlays and vmem work.
// This code is thrown away at the end of InitIFSPart2.

// Overlays should be loaded most frequently executed first, since
// on a 128K Alto the first 63 overlays are loaded into XM and the
// remainder swap from disk.

BLDR/LVBRI 2000/W 2000/N IfsScavenger/S ↑
Ifs IfsScavenger IfsScavCompare IfsResUtilA IfsBcplRuntime ↑
PupAl1A Context ContextSched IfsCallProc IfsDDMgrRes ↑
AltoQueue AltoTimer AltoByteBlt TimeConvA ↑
IfsFastStreamsA BfsMl IfsBcplTricks IfsCalls Calendar VMemA TfsA ↑
DspStreamsB DspStreamsA Gacha10 KeyStreamsB KeyStreamsA ↑
↑
X/Q ↑
IfsResUtilB/I IfsVMemRes IfsVMemFileRes IfsOverlays IfsBTreeRes ↑
Alloc FastStreamsB IfsDVec IfsIsf VMem VMemAux BfsBase TfsBase ↑
↑
I/Q ↑
IfsScavInit IfsScavOvInit IfsContextInit ↑
IfsOverlaysInit IfsVmemInit IfsVMemSwap ↑
ContextSchInit VMemInit ↑
BfsInit Template ↑
IfsBTreeOEP DiskStreamsOEP CmdScanOEP KeywordOEP StringOEP ↑
LoadRam IfsMc ↑
↑
ScavInit/B 0/P IfsScavInit IfsOvXMInit IfsContextInit ↑
ScavLpt/B 0/P IfsScavLpt ↑
ScavKbd/B 0/P IfsScavKbd ↑
ScavPrint/B 0/P IfsScavPrint ↑
DiskEditor/B 0/P IfsScavDEdit ↑
DirDumper/B 0/P IfsScavDump ↑
Pass1/B 0/P IfsScavPass1 DiskFindHole ↑
Pass1Phase1/B 0/P IfsScav1-1 ↑
Pass1Phase2/B 0/P IfsScav1-2 ↑
Pass1Phase3/B 0/P IfsScav1-3 ↑
Pass1Phase4/B 0/P IfsScav1-4 ↑
Pass1Phase5/B 0/P IfsScav1-5 ↑
Pass2/B 0/P IfsScavPass2 ↑
Pass2Phase2/B 0/P IfsScav2-1 ↑
Pass2Phase2/B 0/P IfsScav2-2 ↑
Pass2Phase3/B 0/P IfsScav2-3 ↑
SortPkg/B 0/P SortPkg ↑
IfsDirParse/B 0/P IfsDirParse ↑
AltoDirs/B 0/P DirScanA Dirs DiskStreamsScan ↑
DiskStreams/B 0/P DiskStreams ↑
DiskStreamsMain/B 0/P DiskStreamsMain ↑
DiskStreamsAux/B 0/P DiskStreamsAux ↑
BTreeSwap/B 0/P IfsBTreeSwap ↑
BTreeRead/B 0/P BTreeRead ↑
BTreeWrite0/B 0/P BTreeWrtMs0 ↑
BTreeWrite1/B 0/P BTreeWrtMs1 ↑
BTreeWrite2/B 0/P BTreeWrtMs2 ↑
BTreeDelete/B 0/P BTreeDel ↑
VMemSwap/B 0/P IfsVMemSwap IfsVMemFileSwap IfsIsfInit ↑
TfsWrite/B 0/P TfsWrite ↑
TfsCreate/B 0/P TfsCreate IfsDDMgrSwap ↑
TfsInit/B 0/P TfsInit TfsClose ↑
BfsWrite/B 0/P BfsWrite ↑
BfsCreate/B 0/P BfsCreate BfsDDMgr ↑
BfsInit/B 0/P BfsInit BfsClose ↑
CmdScan/B 0/P IfsCmdScan ↑
CmdScanEdit/B 0/P CmdScanEdit IfsScavCSDsp ↑
CmdScanAux/B 0/P CmdScanAux ↑
Keywords/B 0/P KeywordInit Keyword ↑
Strings/B 0/P StringStreams StringUtil ↑
OsUtils/B 0/P OsUtils Template ↑
Password/B 0/P Password ↑
Time/B 0/P IfsTimeIO TimeConvb
// normal number of undefs = 6