IFUAsmRightColumn.mesa
Copyright c 1985 by Xerox Corporation. All rights reserved.
Last Edited by Curry, January 23, 1986 4:47:19 pm PST
IFUAsmRightColumn:
CEDAR
PROGRAM
IMPORTS CDFrame, Commander, IFUAsm, IFUPW, IFUPWControl, REFBit
EXPORTS IFUAsm =
BEGIN OPEN IFUAsm;
module: Rope.ROPE ← "IFUAsmRightColumn";
PassLtB:
TYPE =
RECORD[
auConnected: BOOL,
euCondition2: BOOL,
dpFault: Dragon.PBusFaults];
PassRtBA:
TYPE =
RECORD[
euAluLeftSrc1: Dragon.ALULeftSources,
euAluRightSrc1: Dragon.ALURightSources,
euStore2ASrc1: Dragon.Store2ASources,
euSt3AisCBus2: BOOL,
euRes3AisCBus2: BOOL,
euWriteField3: BOOL];
PassRtAB:
TYPE =
RECORD[
euAluOp2: Dragon.ALUOps,
euCondSel2: Dragon.CondSelects,
euRes3BisPBus3: BOOL,
euWriteToPBus3: BOOL,
dpCmnd3: Dragon.PBusCommands];
RightColumnProc: CDFrame.ExpandProc = {
IFUAsm.MainControl.orient ← CDOrient.mirrorX;
IFUAsm.InstrDecode.orient ← CDOrient.mirrorX;
new ←
IFUPW.
NFS[module, y,
LIST[
CDFrame.Glue[t:ext, b:conn],
MainControl,
CDFrame.Glue[t:ext, b: conn],
InstrDecode,
CDFrame.Glue[t:ext, b:conn],
IFUPW.
NFS[
"PassLtB", x,
LIST[
CDFrame.Glue[l: ext, r: conn, tDir: vertical],
IFUPWControl.RefToDriverFrame[
name: "PassLtBDr", xory: y, data: NIL, unordered: TRUE,
refRec: REFBit.NEWFromName["IFUAsmRightColumn.PassLtB"],
initial: [drDir: out, dualOut: FALSE, in:[pos, B], ref: [pos, B], out: [pos, BA]] ] ],
CDOrient.mirrorX],
IFUPW.
NFS[
"PassRtB", x,
LIST[
CDFrame.Glue[l: ext, r: conn, tDir: vertical],
IFUPWControl.RefToDriverFrame[
name: "PassRtBADr", xory: y, data: NIL, unordered: TRUE,
refRec: REFBit.NEWFromName["IFUAsmRightColumn.PassRtBA"],
initial: [drDir: in, dualOut: FALSE, in:[pos, BA], ref: [pos, B], out: [pos, BA]] ] ],
CDOrient.mirrorX],
IFUPW.
NFS[
"PassRtAB", x,
LIST[
CDFrame.Glue[l: ext, r: conn, tDir: vertical],
IFUPWControl.RefToDriverFrame[
name: "PassRtABDr", xory: y, data: NIL, unordered: TRUE,
refRec: REFBit.NEWFromName["IFUAsmRightColumn.PassRtAB"],
initial: [drDir: out, dualOut: FALSE, in:[pos, AB], ref: [pos, A], out: [pos, AB]] ] ],
CDOrient.mirrorX],
CDFrame.Glue[t:conn, b:ext]
] ]};
RightColumn: PUBLIC IFUPW.Frame ← CDFrame.NewExpandFrame[ module, RightColumnProc ];
RightColumnCT: Commander.CommandProc =
{IFUPW.AssembleFrame[IFUAsm.RefDesign[], RightColumn, cmd ] };
Commander.Register [proc: RightColumnCT, key: module];
END.