DIRECTORY CD USING [Design, Instance, InstanceList, Object], CDCommandOps USING [CallWithResource], CDMenus USING [CreateEntry], CDOps USING [InstList], CDSequencer USING [Command, ImplementCommand], Core USING [CellType, Wire], CoreGeometry, PrincOpsUtils USING [], Process USING [priorityBackground, SetPriority], Rope USING [Cat, ROPE], Sinix USING [Extract, Mode], SinixOps USING [GetExtractMode], SoS USING [CheckDesignRules], TerminalIO USING [WriteRope]; SoSTest: CEDAR PROGRAM IMPORTS CDCommandOps, CDMenus, CDOps, CDSequencer, Process, Rope, Sinix, SinixOps, SoS, TerminalIO ~ BEGIN Execute: PROC [comm: CDSequencer.Command] ~ BEGIN abort: REF BOOL _ NEW [BOOL_FALSE]; ExtractAndCheck: PROC [comm: CDSequencer.Command] ~ BEGIN tech: Sinix.Mode _ SinixOps.GetExtractMode[comm.design.technology]; IF tech=NIL THEN BEGIN TerminalIO.WriteRope [Rope.Cat ["The technology ", comm.design.technology.name, " is not implemented in Sinix or SoS.\n"]]; RETURN END; FOR all: CD.InstanceList _ CDOps.InstList [comm.design], all.rest WHILE all # NIL DO IF all.first.selected THEN BEGIN TRUSTED {Process.SetPriority [Process.priorityBackground]}; WITH Sinix.Extract [obj: all.first.ob, mode: tech].result SELECT FROM coreCell: Core.CellType => BEGIN [] _ SoS.CheckDesignRules [cell: coreCell, design: NIL, abortFlag: abort, verbose: FALSE, shy: TRUE, cdObjKey: NIL, decoration: tech.decoration]; END; w: Core.Wire => NULL; ENDCASE => NULL END -- if selected ENDLOOP END; -- ExtractAndCheck TerminalIO.WriteRope ["SoS.\n"]; [] _ CDCommandOps.CallWithResource [ExtractAndCheck, comm, $SoS, abort]; TerminalIO.WriteRope ["SoS test done.\n"] END; -- Execute CDSequencer.ImplementCommand [key: $SoSSel1, proc: Execute, queue: doQueue]; CDMenus.CreateEntry [menu: $ProgramMenu, entry: "SoS paranoia", key: $SoSSel1]; TerminalIO.WriteRope ["SoS paranoia test package loaded.\n"] END. ŠSoSTest.mesa Copyright (C) 1985, 1986 by Xerox Corporation. All rights reserved. Written by gbb September 20, 1985 11:52:24 am PDT gbb June 16, 1986 1:30:49 pm PDT Bertrand Serlet September 6, 1986 0:02:10 am PDT Interface to ChipNDale. Called by ChipNDale upon activation of the command. Protected procedure. gbb March 25, 1986 10:39:05 am PST Changed labels of menu entries. gbb March 27, 1986 3:13:47 pm PST Added cosmetics to make it look more like Spinifex. changes to: DIRECTORY, IMPORTS, Execute, ExtractAndCheck (local of Execute), UpdateDRVDirectory, PrintDRVSummary, VerifyRect gbb March 30, 1986 3:17:31 pm PST Added cosmetics to make it look better than Spinifex. changes to: ListDRV (local of List), InvalidateDRV gbb June 9, 1986 6:09:27 pm PDT Tracked addition of a parameter in the call of SoS changes to: ExtractAndCheck (local of Execute): new parameter technology (is not used). Κ ˜™ J™DIcode™1K™ K™0K˜—Icode2šΟl™šΟk ˜ Kšžœžœ*˜2Kšœ žœ˜&Kšœžœ˜Kšœžœ ˜Kšœ žœ˜.Kšœžœ˜Kšœ ˜ Kšœžœ˜Kšœžœ#˜0Kšœžœžœ˜Kšœžœ˜Kšœ žœ˜ Kšœžœ˜Kšœ žœ ˜—LšΠlnœž ˜Lšžœ[˜bšœž˜šΟnœžœž˜1L™3Lš œžœžœžœžœžœ˜#unitš œžœž˜9K™KšœC˜Cšžœžœžœž˜Kšœ{˜{Kšž˜Kšžœ˜—š žœžœ7žœžœž˜Tšžœžœž˜ Kšžœ4˜;šž œ'ž ˜Ešœž˜ Kš œžœžœžœ žœ˜‘Kšžœ˜—Kšœžœ˜Kšžœž˜KšžœΟc˜——Jšž˜—Kšžœ‘˜—Mšœ ˜ KšœH˜HKšœ)˜)Lšžœ‘ ˜—LšœL˜LKšœO˜OKšœ<˜<—Lšžœ˜™"K™—™!K™3Kšœ Οr,œ’1™|—™!K™5Kšœ ’œ’ ™2—™K™2Kšœ ’œ<™W—K™—…—R |