// 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