IFUCoreData.mesa
Copyright c 1985, 1986 by Xerox Corporation. All rights reserved.
Last Edited by Curry, October 8, 1986 8:16:00 am PDT
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: ROPE ← NIL ] RETURNS [glue: Core.CellType];
BlockSides: PROC[cell: Core.CellType, cwire: CoreWire.CWire];
END.