CoreBlock.mesa
Created by Don Curry, February 1, 1986 2:43:22 pm PST
Edited by Don Curry, July 14, 1986 2:10:06 pm PDT
DIRECTORY CD, Core, CoreClasses;
CoreBlock: CEDAR DEFINITIONS =
BEGIN
sides: ATOM; -- CoreProperty of REF Sides
Sides: TYPE = MACHINE DEPENDENT {none(0), bottom(1), right(2), top(4), left(8), all(15)};
OtherSide:  PROC[side:  Sides] RETURNS[Sides];
AddSide:  PROC[new, old: Sides] RETURNS[Sides];
DelSide:   PROC[new, old: Sides] RETURNS[Sides];
OnSide:   PROC[new, old: Sides] RETURNS[BOOL];
GetInstSideLoc: PROC[ob: CD.Object, inst: CD.Instance]
RETURNS [side: Sides, loc: INT];
MarkSides:  PROC[cell: Core.CellType, cap: Sides ← none];
MergeSides: PROC[cell: Core.CellType];
GetCellSide: PROC[cell: Core.CellType]     RETURNS[side: Sides];
PutCellSide: PROC[cell: Core.CellType, side: Sides];
GetWireSide: PROC[wire: Core.Wire]      RETURNS[side: Sides];
PutWireSide: PROC[wire: Core.Wire,  side: Sides];
AddWireSide: PROC[wire: Core.Wire,  side: Sides] RETURNS[sameWire: Core.Wire];
DelWireSide: PROC[wire: Core.Wire,  side: Sides] RETURNS[sameWire: Core.Wire];
AbutCellInstances: PROC[
name:   Core.ROPE,
first:   Sides,
instances:  CoreClasses.CellInstances]
RETURNS [cellType: Core.CellType];
AbutCellList: PROC[
name:   Core.ROPE,
first:   Sides,
cellTypes: LIST OF Core.CellType]
RETURNS [cellType: Core.CellType];
END.