IFUCoreData.mesa
Copyright c 1985, 1986 by Xerox Corporation. All rights reserved.
Last Edited by Curry, October 8, 1986 8:16:00 am PDT
DIRECTORY CD, Core, CoreFrame, CoreWire, CoreXform, HashTable;
IFUCoreData: CEDAR DEFINITIONS = 
BEGIN
CellProc: PROC [
subClass: ROPE     ← NIL,
type:  ROPE     ← NIL,
name:  ROPE     ← NIL,
left:  REF     ← NIL,
right:  REF     ← NIL,
top:  REF     ← NIL,
bot:  REF     ← NIL,
in:   REF     ← NIL,
out:  REF     ← NIL,
data:  REF     ← NIL,
channels: INT     ← 6,
xform:  CoreXform.Xform ← Interleaved48 ]
RETURNS [cellType: Core.CellType]; -- dpCellClass
dpCellClass: Core.CellClass;
DpCellData:  TYPE = REF DpCellDataRec;
DpCellDataRec: TYPE = RECORD [
subClass:  ROPE,
type:   Type,
channels:  INT ← 6,
data:   REF ← NIL ];
ROPE:    TYPE = Core.ROPE;
Type:    TYPE = CoreWire.CWire; -- with CoreXform applied for .x[] access
Sequencial48:  CoreXform.Xform;
Interleaved48: CoreXform.Xform;
RegisterSubClassExpand: PROC
[type: CoreFrame.ExpandType, subClass: ROPE, expand: CoreFrame.ExpandProc];
CellWidth: PROC[chans: INT] RETURNS[INT];
NameLetterCode:  TYPE = REF NameLetterCodeRec;
NameLetterCodeRec: TYPE = RECORD[
name: ROPE, letFmNm, nmFmLet: HashTable.Table, char: CHAR, none: ROPE];
CreateNameLetterCode: PROC
[genericID: REF, list: LIST OF CoreWire.CWire, xformBit: INT]
RETURNS[ctx: NameLetterCode];
Encode: PROC[code: NameLetterCode, name: ROPE] RETURNS[letter: ROPE];
Decode: PROC[code: NameLetterCode, letter: ROPE] RETURNS[name: ROPE];
ConstantInputVariant: PROC [name, in0, in1: ROPE] RETURNS[cell: Core.CellType];
DpBitRoute: PROC[
specificCell:  Core.CellType,
genericCell:  Core.CellType,
rowWire:   CoreWire.CWire,
phyBit:   INT,
channels:   INT,
specificName: ROPENIL ] RETURNS [glue: Core.CellType];
BlockSides: PROC[cell: Core.CellType, cwire: CoreWire.CWire];
END.