CoreBlock.mesa
Created by Don Curry, February 1, 1986 2:43:22 pm PST
Edited by Don Curry, October 9, 1986 8:48:56 pm PDT
DIRECTORY CD, Core, CoreClasses;
CoreBlock: CEDAR DEFINITIONS =
BEGIN
Sides: TYPE = MACHINE DEPENDENT {none(0), bottom(1), right(2), top(4), left(8), all(15)};
SidesToWord: PROC[side: Sides] RETURNS[word: WORD];
SidesFmWord: PROC[word: WORD] RETURNS[side: Sides];
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];
GetInstSideLocSize: PROC[ob: CD.Object, inst: CD.Instance]
RETURNS [side: Sides, loc, size: INT];
DeletePseudoPublics: PROC [cell: Core.CellType];
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];
MergeCell: PROC[cellType: Core.CellType];
AbutCellList: PROC[
name:   Core.ROPE,
first:   Sides,
cellTypes: LIST OF Core.CellType]
RETURNS [cellType: Core.CellType];
END.