SCUtil.mesa
Copyright Ó 1985, 1987 by Xerox Corporation. All rights reserved.
by Bryan Preas August 29, 1985 2:48:22 pm PDT
last edited by Bryan Preas June 15, 1987 6:58:39 pm PDT
DIRECTORY
Basics, CDSymbolicObjects, Core, CoreGeometry, CoreProperties, FS, RedBlackTree, Rope, RTBasic, SC, SCPrivate;
SCUtil: CEDAR DEFINITIONS =
BEGIN
XYToPQ: PROC [handle: SC.Handle, pos: SC.Pos] RETURNS [pqPos: RTBasic.PQPos];
convert a position from x-y to p-q space.
PQToXY: PROC [handle: SC.Handle, pqPos: RTBasic.PQPos] RETURNS [pos: SC.Pos];
convert a position from p-q to x-y space.
FindPin: PROCEDURE [object: SCPrivate.Object, pinName: Rope.ROPE] RETURNS [pin: SCPrivate.ObjectPin ← NIL];
FindPinByWire: PROCEDURE [object: SCPrivate.Object, wire: Core.Wire] RETURNS [pin: SCPrivate.ObjectPin ← NIL];
FindNet: PROCEDURE [handle: SC.Handle, netName: Rope.ROPE] RETURNS [net: SCPrivate.Net ← NIL];
FindNetByWire: PROCEDURE [handle: SC.Handle, wire: Core.Wire] RETURNS [net: SCPrivate.Net ← NIL];
FindObject: PROCEDURE [handle: SC.Handle, objectName: Rope.ROPE] RETURNS [object: SCPrivate.Object ← NIL];
FindObjectByCell: PUBLIC PROCEDURE [handle: SC.Handle, cellType: Core.CellType] RETURNS [object: SCPrivate.Object ← NIL];
FindInstance: PROCEDURE [handle: SC.Handle, instanceName: Rope.ROPE] RETURNS [instance: SCPrivate.Instance ← NIL];
IsPowerName: PROCEDURE [handle: SC.Handle, name: Rope.ROPE] RETURNS [found: BOOLEANFALSE];
IsPadType: PROCEDURE [object: SCPrivate.Object] RETURNS [isPad: BOOLEANFALSE] = INLINE {RETURN[object.typeClass = io]};
translate: PUBLIC ARRAY SC.Side OF ARRAY SCPrivate.OrientationOrNone OF SC.Side;
SideTranslate: PROCEDURE [side: SC.Side, orien: SCPrivate.OrientationOrNone] RETURNS [SC.Side] = INLINE {RETURN[translate[side][orien]]};
DirectionFromSide: PROC [side: CoreGeometry.Side] RETURNS [CDSymbolicObjects.Direction];
WriteResults: PROCEDURE [title: Rope.ROPE, handle: SC.Handle, startArea: SC.Number] RETURNS [area: SC.Number];
WriteStructure: PROCEDURE [handle: SC.Handle];
DestroyRules: PROC [handle: SC.Handle];
DestroyParms: PROC [handle: SC.Handle];
GetCoreInvestmentProp: PROC [cellType: Core.CellType, prop: ATOM] RETURNS [SC.HowLongToWork];
get an investment property from a cell
WriteTWFiles: PROC [handle: SC.Handle];
write timberWolf files
AddCell: PROC [celStream: FS.STREAM, instance: SCPrivate.Instance, pathName: Rope.ROPE];
add a cell to the .cel file
AddPin: PROC [celStream: FS.STREAM, instance: SCPrivate.Instance, pin: SCPrivate.ObjectPin, net: SCPrivate.Net, first: BOOLEAN];
add a pin to the .cel file
AddPad: PROC [padTable: RedBlackTree.Table, instance: SCPrivate.Instance, pathName: Rope.ROPE];
add a pad to the .cel file
CopyPadToCel: PROC [celStream: FS.STREAM, padTable: RedBlackTree.Table];
pads must be at the end of the .cel file; write to .cel from the ordered symbol table
GetKey: PUBLIC RedBlackTree.GetKey;
Callback proc: Given the user data in a node, return the key
PROC [data: UserData] RETURNS [Key];
Compare: PUBLIC RedBlackTree.Compare;
Callback proc type: Given a key and the user data in a node, return the comparison of the keys
PROC [k: Key, data: UserData] RETURNS [Basics.Comparison];
ReadTWPlace: PROC [handle: SC.Handle];
write timberWolf files
END.