DIRECTORY CD USING [Design, Instance, InstanceList, Object], CDCommandOps USING [CallWithResource], CDMenus USING [CreateEntry], CDOps USING [InstList], CDSequencer USING [Command, ImplementCommand], Core USING [CellType, Wire], PrincOpsUtils USING [], Process USING [priorityBackground, SetPriority], Rope USING [Cat, ROPE], Sinix USING [Extract, Mode], SinixCMos USING [extractAMode, extractBMode], SinixNMos USING [extractMode], SoS USING [CheckDesignRules], TerminalIO USING [WriteRope]; SoSTest: CEDAR PROGRAM IMPORTS CDCommandOps, CDMenus, CDOps, CDSequencer, Process, Rope, Sinix, SinixCMos, SinixNMos, SoS, TerminalIO ~ BEGIN Execute: PROC [comm: CDSequencer.Command] ~ BEGIN abort: REF BOOL _ NEW [BOOL_FALSE]; ExtractAndCheck: PROC [comm: CDSequencer.Command] ~ BEGIN tech: Sinix.Mode; SELECT comm.design.technology.key FROM $cmos => tech _ SinixCMos.extractAMode; $cmosB => tech _ SinixCMos.extractBMode; $nmos => tech _ SinixNMos.extractMode; ENDCASE => 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, cdInstKey: tech.instanceProp, cdInstListKey: tech.wireGeometryProp]; 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. ZSoSTest.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 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˜—Icode2šΟl™šΟk ˜ Kšžœžœ*˜2Kšœ žœ˜&Kšœžœ˜Kšœžœ ˜Kšœ žœ˜.Kšœžœ˜Kšœžœ˜Kšœžœ#˜0Kšœžœžœ˜Kšœžœ˜Kšœ žœ˜-Kšœ žœ˜Kšœžœ˜Kšœ žœ ˜—LšΠlnœž ˜Lšžœg˜nšœž˜šΟnœžœž˜1L™3Lš œžœžœžœžœžœ˜#unitš œžœž˜9K™Kšœ˜šžœž˜&Kšœ'˜'Kšœ(˜(Kšœ&˜&šžœž˜Kšœ{˜{Kšž˜Kšžœ˜——š žœžœ7žœžœž˜Tšžœžœž˜ Kšžœ4˜;šž œ'ž ˜Ešœž˜ Kš œžœžœžœ žœF˜Έ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™—…—