<> <> <> <<>> DIRECTORY CD, CDFrame, CDOrient, Commander, Dragon, IFUAsm, IFUPW, IFUPWControl, REFBit, Rope; 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.