DIRECTORY CDFrame, Commander, IFUAsm, IFUPW, IFUPWControl, IO, PLAOps, REFBit, Rope; IFUAsmStackControler: CEDAR PROGRAM IMPORTS CDFrame, Commander, IFUAsm, IFUPW, IFUPWControl, IO, PLAOps, REFBit EXPORTS IFUAsm = BEGIN OPEN IFUAsm, IFUPWControl, CDF: CDFrame; module: ROPE _ "IFUAsmStackControler"; StackControlProc: CDF.ExpandProc = { decode, aControl, bControl: Frame; plaType: TYPE = {aCnt, bCnt, dec}; frm: INT _ 0; max: INT _ 0; plas: ARRAY plaType OF PLAOps.PLA; ins: REF _ REFBit.NEWFromName["IFUPLAStackControlx.StackControlIn"]; drs, sb: Frame; sb _ CDF.Glue[t: conn, r: conn]; drs _ RefToDriverFrame [name: "StackInDrs", xory: y, data: NIL, unordered: FALSE, refRec: ins, initial: [drDir: in, dualOut: TRUE, in: [pos, BA], ref: [pos, B], out: [pos, BA]] ]; plas[dec] _ PLAOps.ReadPLAFile["IFUPLAStackDecode.ttt"]; plas[bCnt] _ PLAOps.ReadPLAFile["IFUPLAStackBControl.ttt"]; plas[aCnt] _ PLAOps.ReadPLAFile["IFUPLAStackAControl.ttt"]; decode _ DrivenPLA[ DrPLA["Decode", plas[dec], decoder, BA, B, Ac], design, 0, 2, FALSE, 16]; aControl _ DrivenPLA[ DrPLA["AControl", plas[aCnt], static, BA, A, AB], design, 2, 1, TRUE]; bControl _ DrivenPLA[ DrPLA["BControl", plas[bCnt], static, BA, B, BA], design, 2, 1, TRUE]; new _ IFUPW.NFS["StackControl", x, LIST[ CDF.Glue[l: ext, r: conn], IFUPW.NFS["Data", y, LIST[ IFUPW.NFS["StackDecodeFill", x, LIST[decode[0], decode[1]]], IFUPW.NFS["StackIn", x, LIST[CDF.Glue[t:conn, b:conn, r:conn], drs ]], IFUPW.NFS["StackBot2", x, LIST[ IFUPW.NFS["StackBot1", x, LIST[ CDF.Glue[l: ext, r: conn], IFUPW.NFS["StackBot0",y,LIST[ aControl[0], bControl[0] ]] ]], IFUPW.NFS["StackBot",y,LIST[ aControl[1], bControl[1] ]] ]] ]] ]] }; StackControl: Frame _ CDF.NewExpandFrame["Control", StackControlProc]; StackControler: PUBLIC Frame _ IFUPW.NFS[module, y, LIST[ IFUPWControl.DriverFill[], StackControl, IFUPWControl.DriverFill[], CDF.Glue[t:conn, b:conn, r:diff], StackIndexing ] ]; StackControlerCT: Commander.CommandProc = {IFUPW.AssembleFrame[IFUAsm.RefDesign[], StackControler, cmd ] }; StackControlerCD: IFUPW.PWUserProc = {RETURN[CDF.FrameToObject[StackControler, design]]}; Commander.Register [proc: StackControlerCT, key: module]; IFUPW.Register [userProc: StackControlerCD, name: module]; END. ”IFUAsmStackControler.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last Edited by Curry, January 23, 1986 6:51:41 pm PST Ê9˜šœ™Jšœ<™