DIRECTORY Atom, Core, CoreCreate, CoreOps, CoreProperties; TRWireIcons: CEDAR PROGRAM IMPORTS CoreCreate, CoreOps, CoreProperties ~ BEGIN Wire: TYPE = Core.Wire; Side: TYPE = {Top, Bottom, Left, Right}; extractSchematic: BOOL _ TRUE; --extract everything from schematics, don't use .core files testSchematic: BOOL _ FALSE; --substitute simpler functions for things Rosemary can't simulate WirePosition: PROC [side: Side, index, size, inc, pos: NAT] RETURNS [wire: Wire] ~ { posProp: ATOM _ SELECT side FROM Top => $TopPosition, Bottom => $BottomPosition, Left => $LeftPosition, Right => $RightPosition, ENDCASE => NIL; IF size=0 THEN ERROR; IF inc=0 THEN ERROR; IF pos+1>inc THEN ERROR; IF size>1 THEN { wire _ CoreCreate.Seq[name: "X", size: size]; FOR i: NAT IN [0..size) DO CoreProperties.PutWireProp[wire[i], posProp, NEW[INT _ (index+i)*inc+pos]]; ENDLOOP; } ELSE wire _ CoreOps.CreateWire[name: "X", props: CoreProperties.Props[[posProp, NEW[INT _ index*inc+pos]]]]; }; END. άTRWireIcons.mesa Copyright Σ 1987, 1988 by Xerox Corporation. All rights reserved. Last Edited by: Gasbarro June 8, 1988 3:36:02 pm PDT Currently the only substituted cellTypes are: SampleUp and SampleDn in PE. Κ›˜™Icode™BK™4—J™šΟk ˜ Kšœ0˜0K˜—K˜KšΟn œœ˜Kšœ$˜+šœ˜K˜—Kšœœ ˜Kšœœ˜(K˜KšœœœΟc;˜[šœœœŸA˜_KšœJ™J—K˜šž œœ%œœ˜Tšœ œœ˜ Kšœ˜Kšœ˜Kšœ˜Kšœ˜Kšœœ˜K˜—Kšœœœ˜Kšœœœ˜Kšœ œœ˜šœœ˜Kšœ-˜-šœœœ ˜Kšœ-œœ˜KKšœ˜—KšœœLœœ˜n—K˜K˜—Kšœ˜J˜—…—ΰW