DIRECTORY RoseTypes, IFU, RoseCreate, DragOpsCross, IFUPLAMainControl, IFUPLAInstrDecode, LizardRosemary, PrintTV, AMBridge, IO, SwitchTypes, Dragon, NumTypes, EnumTypes, IFUData3; IFUImpl: CEDAR PROGRAM IMPORTS RoseCreate, PrintTV, AMBridge, IO, NumTypes, EnumTypes, IFUData3 EXPORTS IFU = BEGIN OPEN RoseTypes, IFU; ALUOps: TYPE = Dragon.ALUOps; CondSelects: TYPE = Dragon.CondSelects; PBusCommands: TYPE = Dragon.PBusCommands; PBusFaults: TYPE = Dragon.PBusFaults; RegisterCells: PROC = BEGIN END; otherss: SymbolTable _ RoseCreate.GetOtherss["IFU.partsAssertions"]; OldIFU: TYPE = RECORD [args: IFUArgs, ct: CellType]; oldIFU: LIST OF OldIFU _ NIL; IFU: PUBLIC PROC [args: IFUArgs] RETURNS [ct: CellType] = BEGIN FOR old: LIST OF OldIFU _ oldIFU, old.rest WHILE old # NIL DO IF old.first.args = args THEN RETURN [old.first.ct] ENDLOOP; ct _ RoseCreate.RegisterCellType[name: IFUName[args], expandProc: IFUExpand, ioCreator: CreateIFUIO, driveCreator: CreateIFUDrive, evals: [], tests: LIST[], ports: CreateIFUPorts[args] , typeData: NEW [IFUArgs _ args]]; oldIFU _ CONS[[args, ct], oldIFU]; END; IFUName: PROC [args: IFUArgs] RETURNS [name: ROPE] = { to: IO.STREAM _ IO.ROS[]; to.PutRope["IFU"]; TRUSTED {PrintTV.Print[tv: AMBridge.TVForReferent[NEW [IFUArgs _ args]], put: to, depth: 2]}; name _ IO.RopeFromROS[to]}; CreateIFUPorts: PROC [args: IFUArgs] RETURNS [ports: Ports] = {ports _ RoseCreate.PortsFromFile["IFU.IFU.rosePorts"]}; IFUSwitchIORef: TYPE = REF IFUSwitchIORec; IFUSwitchIORec: TYPE = RECORD [ KBus: PACKED ARRAY [0 .. 32) OF SwitchTypes.SwitchVal ,EUAluOp2AB: PACKED ARRAY [0 .. 4) OF SwitchTypes.SwitchVal ,EUCondSel2AB: PACKED ARRAY [0 .. 4) OF SwitchTypes.SwitchVal ,EUSt3AisCBus2BA: SwitchTypes.SwitchVal ,EUCondition2B: SwitchTypes.SwitchVal ,EURes3BisPBus3AB: SwitchTypes.SwitchVal ,EUWriteToPBus3AB: SwitchTypes.SwitchVal ,DPCmnd3A: PACKED ARRAY [0 .. 8) OF SwitchTypes.SwitchVal ,DPData: PACKED ARRAY [0 .. 32) OF SwitchTypes.SwitchVal ,DPRejectB: SwitchTypes.SwitchVal ,DPFaultB: PACKED ARRAY [0 .. 4) OF SwitchTypes.SwitchVal ,IPCmnd3A: PACKED ARRAY [0 .. 8) OF SwitchTypes.SwitchVal ,IPRejectB: SwitchTypes.SwitchVal ,IPFaultB: PACKED ARRAY [0 .. 4) OF SwitchTypes.SwitchVal ,IPData: PACKED ARRAY [0 .. 32) OF SwitchTypes.SwitchVal ,ResetAB: SwitchTypes.SwitchVal ,DHoldAB: SwitchTypes.SwitchVal ,DShiftAB: SwitchTypes.SwitchVal ,DExecuteAB: SwitchTypes.SwitchVal ,DNSelectAB: SwitchTypes.SwitchVal ,DDataInAB: SwitchTypes.SwitchVal ,DDataOutAB: SwitchTypes.SwitchVal ,RescheduleAB: SwitchTypes.SwitchVal ,PhA: SwitchTypes.SwitchVal ,PhB: SwitchTypes.SwitchVal ]; IFUSimpleIORef: TYPE = REF IFUSimpleIORec; IFUSimpleIORec: TYPE = RECORD [ KBus: ARRAY [0..2) OF CARDINAL ,fill1: [0 .. 4095], EUAluOp2AB: ALUOps ,fill2: [0 .. 4095], EUCondSel2AB: CondSelects ,fill3: [0 .. 32767], EUSt3AisCBus2BA: BOOLEAN ,fill4: [0 .. 32767], EUCondition2B: BOOLEAN ,fill5: [0 .. 32767], EURes3BisPBus3AB: BOOLEAN ,fill6: [0 .. 32767], EUWriteToPBus3AB: BOOLEAN ,fill7: [0 .. 255], DPCmnd3A: PBusCommands ,DPData: ARRAY [0..2) OF CARDINAL ,fill9: [0 .. 32767], DPRejectB: BOOLEAN ,fill10: [0 .. 4095], DPFaultB: PBusFaults ,fill11: [0 .. 255], IPCmnd3A: PBusCommands ,fill12: [0 .. 32767], IPRejectB: BOOLEAN ,fill13: [0 .. 4095], IPFaultB: PBusFaults ,IPData: ARRAY [0..2) OF CARDINAL ,fill15: [0 .. 32767], ResetAB: BOOLEAN ,fill16: [0 .. 32767], DHoldAB: BOOLEAN ,fill17: [0 .. 32767], DShiftAB: BOOLEAN ,fill18: [0 .. 32767], DExecuteAB: BOOLEAN ,fill19: [0 .. 32767], DNSelectAB: BOOLEAN ,fill20: [0 .. 32767], DDataInAB: BOOLEAN ,fill21: [0 .. 32767], DDataOutAB: BOOLEAN ,fill22: [0 .. 32767], RescheduleAB: BOOLEAN ,fill23: [0 .. 32767], PhA: BOOLEAN ,fill24: [0 .. 32767], PhB: BOOLEAN ]; IFUDriveRef: TYPE = REF IFUDriveRec; IFUDriveRec: TYPE = RECORD [driveRecordInitialPadding: DriveTagType, drive: PACKED ARRAY IFUPort OF DriveLevel]; IFUPort: TYPE = { KBus, EUAluOp2AB, EUCondSel2AB, EUSt3AisCBus2BA, EUCondition2B, EURes3BisPBus3AB, EUWriteToPBus3AB, DPCmnd3A, DPData, DPRejectB, DPFaultB, IPCmnd3A, IPRejectB, IPFaultB, IPData, ResetAB, DHoldAB, DShiftAB, DExecuteAB, DNSelectAB, DDataInAB, DDataOutAB, RescheduleAB, PhA, PhB, IFUPortTypePad25, IFUPortTypePad26, IFUPortTypePad27}; CreateIFUIO: PROC [ct: CellType, switch: BOOL] RETURNS [ioAsAny: REF ANY] --IOCreator-- = { args: REF IFUArgs _ NARROW[ct.typeData]; {OPEN args; ioAsAny _ IF switch THEN NEW[IFUSwitchIORec] ELSE NEW[IFUSimpleIORec]; }; }; CreateIFUDrive: PROC [ct: CellType] RETURNS [driveAsAny: REF ANY] --DriveCreator-- = { args: REF IFUArgs _ NARROW[ct.typeData]; {OPEN args; driveAsAny _ NEW[IFUDriveRec]; }; }; IFUExpand: PROC [thisCell: Cell, to: ExpansionReceiver] --ExpandProc-- = { args: REF IFUArgs _ NARROW[thisCell.type.typeData]; {OPEN args; PrivateLookupNode: PROC [name: ROPE] RETURNS [node: Node] = {node _ RoseCreate.LookupNode[from: thisCell, path: LIST[name]]}; KBus: Node _ PrivateLookupNode["KBus"]; EUAluOp2AB: Node _ PrivateLookupNode["EUAluOp2AB"]; EUCondSel2AB: Node _ PrivateLookupNode["EUCondSel2AB"]; EUSt3AisCBus2BA: Node _ PrivateLookupNode["EUSt3AisCBus2BA"]; EUCondition2B: Node _ PrivateLookupNode["EUCondition2B"]; EURes3BisPBus3AB: Node _ PrivateLookupNode["EURes3BisPBus3AB"]; EUWriteToPBus3AB: Node _ PrivateLookupNode["EUWriteToPBus3AB"]; DPCmnd3A: Node _ PrivateLookupNode["DPCmnd3A"]; DPData: Node _ PrivateLookupNode["DPData"]; DPRejectB: Node _ PrivateLookupNode["DPRejectB"]; DPFaultB: Node _ PrivateLookupNode["DPFaultB"]; IPCmnd3A: Node _ PrivateLookupNode["IPCmnd3A"]; IPRejectB: Node _ PrivateLookupNode["IPRejectB"]; IPFaultB: Node _ PrivateLookupNode["IPFaultB"]; IPData: Node _ PrivateLookupNode["IPData"]; ResetAB: Node _ PrivateLookupNode["ResetAB"]; DHoldAB: Node _ PrivateLookupNode["DHoldAB"]; DShiftAB: Node _ PrivateLookupNode["DShiftAB"]; DExecuteAB: Node _ PrivateLookupNode["DExecuteAB"]; DNSelectAB: Node _ PrivateLookupNode["DNSelectAB"]; DDataInAB: Node _ PrivateLookupNode["DDataInAB"]; DDataOutAB: Node _ PrivateLookupNode["DDataOutAB"]; RescheduleAB: Node _ PrivateLookupNode["RescheduleAB"]; PhA: Node _ PrivateLookupNode["PhA"]; PhB: Node _ PrivateLookupNode["PhB"]; others: SymbolTable _ RoseCreate.GetOthers[otherss, "IFU"]; NodeCreateHack1: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.NumType[32], other: RoseCreate.GetOther[others, name]]}; XBus: Node _ NodeCreateHack1["XBus"]; NodeCreateHack2: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.boolType, other: RoseCreate.GetOther[others, name]]}; X2ASrcLit0BA: Node _ NodeCreateHack2["X2ASrcLit0BA"]; X2ASrcLit1BA: Node _ NodeCreateHack2["X2ASrcLit1BA"]; Stage1BHoldBA: Node _ NodeCreateHack2["Stage1BHoldBA"]; LoadStage1Ac: Node _ NodeCreateHack2["LoadStage1Ac"]; LoadStage1Bc: Node _ NodeCreateHack2["LoadStage1Bc"]; LoadStage2Ac: Node _ NodeCreateHack2["LoadStage2Ac"]; BubbleStage2A1BA: Node _ NodeCreateHack2["BubbleStage2A1BA"]; NormalStage2A1BA: Node _ NodeCreateHack2["NormalStage2A1BA"]; AbortStage2B2AB: Node _ NodeCreateHack2["AbortStage2B2AB"]; NormalStage2B2AB: Node _ NodeCreateHack2["NormalStage2B2AB"]; LoadStage3Ac: Node _ NodeCreateHack2["LoadStage3Ac"]; AbortStage3A2BA: Node _ NodeCreateHack2["AbortStage3A2BA"]; NormalStage3A2BA: Node _ NodeCreateHack2["NormalStage3A2BA"]; MicroExcptJmpAB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "MicroExcptJmpAB", type: EnumTypes.EnumType["IFUPLAMainControl.MicroExcptJmp"], other: RoseCreate.GetOther[others, "MicroExcptJmpAB"]]; ExceptionCodeAB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "ExceptionCodeAB", type: EnumTypes.EnumType["IFUPLAMainControl.ExceptionCode"], other: RoseCreate.GetOther[others, "ExceptionCodeAB"]]; NodeCreateHack3: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: NumTypes.NumType[8], other: RoseCreate.GetOther[others, name]]}; MicroCycleAB: Node _ NodeCreateHack3["MicroCycleAB"]; GetNextInstBA: Node _ NodeCreateHack2["GetNextInstBA"]; MacroJumpBA: Node _ NodeCreateHack2["MacroJumpBA"]; MicroCycleNextBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "MicroCycleNextBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.MicroCycleNext"], other: RoseCreate.GetOther[others, "MicroCycleNextBA"]]; InstReadyAB: Node _ NodeCreateHack2["InstReadyAB"]; OpAB: Node _ NodeCreateHack3["OpAB"]; AlphaAB: Node _ NodeCreateHack3["AlphaAB"]; BetaAB: Node _ NodeCreateHack3["BetaAB"]; GammaAB: Node _ NodeCreateHack3["GammaAB"]; DeltaAB: Node _ NodeCreateHack3["DeltaAB"]; OpBA: Node _ NodeCreateHack3["OpBA"]; AlphaBA: Node _ NodeCreateHack3["AlphaBA"]; BetaBA: Node _ NodeCreateHack3["BetaBA"]; OpLengthBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "OpLengthBA", type: NumTypes.NumType[3], other: RoseCreate.GetOther[others, "OpLengthBA"]]; JumpOffsetSelAB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "JumpOffsetSelAB", type: EnumTypes.EnumType["IFUPLAFetchPreDecode.JumpOffsetSel"], other: RoseCreate.GetOther[others, "JumpOffsetSelAB"]]; RschWaiting2BA: Node _ NodeCreateHack2["RschWaiting2BA"]; UserMode0AB: Node _ NodeCreateHack2["UserMode0AB"]; TrapsEnbled2BA: Node _ NodeCreateHack2["TrapsEnbled2BA"]; ClearTrapsEnbledBA: Node _ NodeCreateHack2["ClearTrapsEnbledBA"]; ClearUserModeBA: Node _ NodeCreateHack2["ClearUserModeBA"]; KPadsIn0BA: Node _ NodeCreateHack2["KPadsIn0BA"]; KPadsIn3BA: Node _ NodeCreateHack2["KPadsIn3BA"]; X2ALitSourceBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "X2ALitSourceBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.X2ALitSource"], other: RoseCreate.GetOther[others, "X2ALitSourceBA"]]; PCBusB: Node _ NodeCreateHack1["PCBusB"]; PCStkTopAB: Node _ NodeCreateHack1["PCStkTopAB"]; PCForLogAB: Node _ NodeCreateHack1["PCForLogAB"]; PCPipe3BA: Node _ NodeCreateHack1["PCPipe3BA"]; PCNextBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "PCNextBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCNext"], other: RoseCreate.GetOther[others, "PCNextBA"]]; PCBusSrcB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "PCBusSrcB", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCBusSrc"], other: RoseCreate.GetOther[others, "PCBusSrcB"]]; PCPipeSrcBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "PCPipeSrcBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PCPipeSrc"], other: RoseCreate.GetOther[others, "PCPipeSrcBA"]]; Push0BA: Node _ NodeCreateHack2["Push0BA"]; Pop0BA: Node _ NodeCreateHack2["Pop0BA"]; Push2BA: Node _ NodeCreateHack2["Push2BA"]; Push3BA: Node _ NodeCreateHack2["Push3BA"]; Pop3BA: Node _ NodeCreateHack2["Pop3BA"]; PushPendingAB: Node _ NodeCreateHack2["PushPendingAB"]; PopPendingAB: Node _ NodeCreateHack2["PopPendingAB"]; PushPendingBA: Node _ NodeCreateHack2["PushPendingBA"]; PopPendingBA: Node _ NodeCreateHack2["PopPendingBA"]; IStkNearlyFullBA: Node _ NodeCreateHack2["IStkNearlyFullBA"]; LBusB: Node _ NodeCreateHack3["LBusB"]; LStkTopAB: Node _ NodeCreateHack3["LStkTopAB"]; LPipe3BA: Node _ NodeCreateHack3["LPipe3BA"]; LAB: Node _ NodeCreateHack3["LAB"]; SAB: Node _ NodeCreateHack3["SAB"]; DeltaSBA: Node _ NodeCreateHack3["DeltaSBA"]; PopSa0BA: Node _ NodeCreateHack2["PopSa0BA"]; PopSb0BA: Node _ NodeCreateHack2["PopSb0BA"]; PushSc0BA: Node _ NodeCreateHack2["PushSc0BA"]; LSourceLtBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "LSourceLtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.LSourceLt"], other: RoseCreate.GetOther[others, "LSourceLtBA"]]; LSourceRtBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "LSourceRtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.LSourceRt"], other: RoseCreate.GetOther[others, "LSourceRtBA"]]; SSourceLtBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "SSourceLtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.SSourceLt"], other: RoseCreate.GetOther[others, "SSourceLtBA"]]; SSourceRtBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "SSourceRtBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.SSourceRt"], other: RoseCreate.GetOther[others, "SSourceRtBA"]]; NodeCreateHack4: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAInstrDecode.ABCSourceLt"], other: RoseCreate.GetOther[others, name]]}; ASourceLtBA: Node _ NodeCreateHack4["ASourceLtBA"]; NodeCreateHack5: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAInstrDecode.ABCSourceRt"], other: RoseCreate.GetOther[others, name]]}; ASourceRtBA: Node _ NodeCreateHack5["ASourceRtBA"]; ASourceOffBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "ASourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PlusOffset"], other: RoseCreate.GetOther[others, "ASourceOffBA"]]; BSourceLtBA: Node _ NodeCreateHack4["BSourceLtBA"]; BSourceRtBA: Node _ NodeCreateHack5["BSourceRtBA"]; BSourceOffBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "BSourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.PlusOffset"], other: RoseCreate.GetOther[others, "BSourceOffBA"]]; CSourceLtBA: Node _ NodeCreateHack4["CSourceLtBA"]; CSourceRtBA: Node _ NodeCreateHack5["CSourceRtBA"]; CSourceOffBA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "CSourceOffBA", type: EnumTypes.EnumType["IFUPLAInstrDecode.MinusOffset"], other: RoseCreate.GetOther[others, "CSourceOffBA"]]; X1ASrcStackBA: Node _ NodeCreateHack2["X1ASrcStackBA"]; X1ADstStackBA: Node _ NodeCreateHack2["X1ADstStackBA"]; XBusStackEldestBA: Node _ NodeCreateHack2["XBusStackEldestBA"]; XBusStackLBA: Node _ NodeCreateHack2["XBusStackLBA"]; X1ASrcSLimitAc: Node _ NodeCreateHack2["X1ASrcSLimitAc"]; X1ADstSLimitAc: Node _ NodeCreateHack2["X1ADstSLimitAc"]; X2ASrcStatusBA: Node _ NodeCreateHack2["X2ASrcStatusBA"]; X1ADstStatusBA: Node _ NodeCreateHack2["X1ADstStatusBA"]; AReg0BA: Node _ NodeCreateHack3["AReg0BA"]; BReg0BA: Node _ NodeCreateHack3["BReg0BA"]; CReg0BA: Node _ NodeCreateHack3["CReg0BA"]; ARegIsC2BA: Node _ NodeCreateHack2["ARegIsC2BA"]; ARegIsC3BA: Node _ NodeCreateHack2["ARegIsC3BA"]; BRegIsC2BA: Node _ NodeCreateHack2["BRegIsC2BA"]; BRegIsC3BA: Node _ NodeCreateHack2["BRegIsC3BA"]; ALUOpNeedsField0BA: Node _ NodeCreateHack2["ALUOpNeedsField0BA"]; ALUOpNeedsField1BA: Node _ NodeCreateHack2["ALUOpNeedsField1BA"]; C0IsFieldCtlBA: Node _ NodeCreateHack2["C0IsFieldCtlBA"]; C2IsFieldCtlAB: Node _ NodeCreateHack2["C2IsFieldCtlAB"]; C3IsFieldCtlAB: Node _ NodeCreateHack2["C3IsFieldCtlAB"]; CRegIsField3B: Node _ NodeCreateHack2["CRegIsField3B"]; EUAluLeftSrc1B: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUAluLeftSrc1B", type: EnumTypes.EnumType["Dragon.ALULeftSources"], other: RoseCreate.GetOther[others, "EUAluLeftSrc1B"]]; EUAluRightSrc1B: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUAluRightSrc1B", type: EnumTypes.EnumType["Dragon.ALURightSources"], other: RoseCreate.GetOther[others, "EUAluRightSrc1B"]]; EUStore2ASrc1B: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUStore2ASrc1B", type: EnumTypes.EnumType["Dragon.Store2ASources"], other: RoseCreate.GetOther[others, "EUStore2ASrc1B"]]; EStkOverflow1BA: Node _ NodeCreateHack2["EStkOverflow1BA"]; EStkOverflow2BA: Node _ NodeCreateHack2["EStkOverflow2BA"]; DPCmnd0BA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "DPCmnd0BA", type: EnumTypes.EnumType["Dragon.PBusCommands"], other: RoseCreate.GetOther[others, "DPCmnd0BA"]]; DPCmndRd0BA: Node _ NodeCreateHack2["DPCmndRd0BA"]; DPCmndRd2BA: Node _ NodeCreateHack2["DPCmndRd2BA"]; DPCmndRd3BA: Node _ NodeCreateHack2["DPCmndRd3BA"]; KIsRtOp0BA: Node _ NodeCreateHack2["KIsRtOp0BA"]; KIsRtOp1BA: Node _ NodeCreateHack2["KIsRtOp1BA"]; FCtlIsRtOp0BA: Node _ NodeCreateHack2["FCtlIsRtOp0BA"]; FCtlIsRtOp1BA: Node _ NodeCreateHack2["FCtlIsRtOp1BA"]; EUAluOp0BA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUAluOp0BA", type: EnumTypes.EnumType["Dragon.ALUOps"], other: RoseCreate.GetOther[others, "EUAluOp0BA"]]; EUCondSel0BA: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUCondSel0BA", type: EnumTypes.EnumType["Dragon.CondSelects"], other: RoseCreate.GetOther[others, "EUCondSel0BA"]]; EUCondSel3AB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUCondSel3AB", type: EnumTypes.EnumType["Dragon.CondSelects"], other: RoseCreate.GetOther[others, "EUCondSel3AB"]]; NodeCreateHack6: PROC [name: ROPE] RETURNS [node: Node] = {node _ to.class.NodeInstance[erInstance: to.instance, name: name, type: EnumTypes.EnumType["IFUPLAMainControl.CondEffect"], other: RoseCreate.GetOther[others, name]]}; EUCondEffect0BA: Node _ NodeCreateHack6["EUCondEffect0BA"]; EUCondEffect1BA: Node _ NodeCreateHack6["EUCondEffect1BA"]; EUCondEffect2AB: Node _ NodeCreateHack6["EUCondEffect2AB"]; EUCondEffect2BA: Node _ NodeCreateHack6["EUCondEffect2BA"]; EUSt3AisCBus1BA: Node _ NodeCreateHack2["EUSt3AisCBus1BA"]; EUAluLeftSrc1AB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUAluLeftSrc1AB", type: EnumTypes.EnumType["Dragon.ALULeftSources"], other: RoseCreate.GetOther[others, "EUAluLeftSrc1AB"]]; EUAluRightSrc1AB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUAluRightSrc1AB", type: EnumTypes.EnumType["Dragon.ALURightSources"], other: RoseCreate.GetOther[others, "EUAluRightSrc1AB"]]; EUStore2ASrc1AB: Node _ to.class.NodeInstance[erInstance: to.instance, name: "EUStore2ASrc1AB", type: EnumTypes.EnumType["Dragon.Store2ASources"], other: RoseCreate.GetOther[others, "EUStore2ASrc1AB"]]; DPRejectedBA: Node _ NodeCreateHack2["DPRejectedBA"]; IPFaulted0BA: Node _ NodeCreateHack2["IPFaulted0BA"]; IPFaulted2BA: Node _ NodeCreateHack2["IPFaulted2BA"]; InstStarting0BA: Node _ NodeCreateHack2["InstStarting0BA"]; InstStarting2BA: Node _ NodeCreateHack2["InstStarting2BA"]; RescheduleBA: Node _ NodeCreateHack2["RescheduleBA"]; ResetBA: Node _ NodeCreateHack2["ResetBA"]; DHold0BA: Node _ NodeCreateHack2["DHold0BA"]; DHold1AB: Node _ NodeCreateHack2["DHold1AB"]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "logger", typeName: IFUData3.IFULogger[[logRef:logRef, lizardSimRef:lizardSimRef]].name, other: RoseCreate.GetOther[others, "logger"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "fetch", typeName: "Fetch", other: RoseCreate.GetOther[others, "fetch"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "x2ALitGen", typeName: "X2ALitGen", other: RoseCreate.GetOther[others, "x2ALitGen"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "pcForm", typeName: "PCForm", other: RoseCreate.GetOther[others, "pcForm"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "stack", typeName: "Stack", other: RoseCreate.GetOther[others, "stack"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "lFormation", typeName: "LFormation", other: RoseCreate.GetOther[others, "lFormation"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "sFormation", typeName: "SFormation", other: RoseCreate.GetOther[others, "sFormation"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "sLimitTest", typeName: "SLimitTest", other: RoseCreate.GetOther[others, "sLimitTest"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "sDelta", typeName: "SDelta", other: RoseCreate.GetOther[others, "sDelta"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "aBCFormation", typeName: "ABCFormation", other: RoseCreate.GetOther[others, "aBCFormation"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "ifuStatus", typeName: "IFUStatus", other: RoseCreate.GetOther[others, "ifuStatus"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "kBusPads", typeName: "KBusPads", other: RoseCreate.GetOther[others, "kBusPads"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "mainControl", typeName: "MainControl", other: RoseCreate.GetOther[others, "mainControl"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "microCycle", typeName: "MicroCycle", other: RoseCreate.GetOther[others, "microCycle"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "instrDecode", typeName: "InstrDecode", other: RoseCreate.GetOther[others, "instrDecode"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "interlock", typeName: "Interlock", other: RoseCreate.GetOther[others, "interlock"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "controlPipe", typeName: "ControlPipe", other: RoseCreate.GetOther[others, "controlPipe"], interfaceNodes: ""]; [] _ to.class.CellInstance[erInstance: to.instance, instanceName: "misc", typeName: "Misc", other: RoseCreate.GetOther[others, "misc"], interfaceNodes: ""]; }; }; RegisterCells[]; END. âIFUImpl.Mesa created by RoseTranslate 3.1.3 of September 5, 1985 12:14:34 pm PDT created from IFU.Rose of March 18, 1986 3:23:57 pm PST created for McCreight.pa created at March 18, 1986 6:00:05 pm PST Signal Type decls Êv˜Icodešœ ™ KšœC™CKšœ6™6Kšœ™Kšœ(™(K˜K˜šÏk ˜ Kšœ œeœ5˜ª—K˜šÐblœœ˜Kšœ œ˜HKšœ˜ —K˜šœœ˜ Kšœ œ˜—K˜šœ™Kšœœ˜Kšœ œ˜'Kšœœ˜)Kšœ œ˜%K˜—K˜šÏn œœ˜Kš˜Kšœ˜—K˜DK˜Kšœœœ˜4Kšœœœ œ˜šœœœœ˜7Kšœ˜š œœœœœ˜=Kšœœœ˜3Kšœ˜—˜5K˜K˜6K˜ Kšœœ˜K˜K˜Kšœ œ˜ —Kšœ œ˜"Kšœ˜—K˜šŸœœœœ˜6Kš œœœœœ˜,Kšœ+œ(˜]Kšœœ˜—K˜KšŸœœœJ˜vK˜Kšœœœ˜*šœœœ˜Kšœœœ œ˜5Kšœ œœ œ˜;Kšœœœ œ˜=K˜'K˜%K˜(K˜(Kšœ œœ œ˜9Kšœ œœ œ˜8K˜!Kšœ œœ œ˜9Kšœ œœ œ˜9K˜!Kšœ œœ œ˜9Kšœ œœ œ˜8K˜K˜K˜ K˜"K˜"K˜!K˜"K˜$K˜K˜K˜—K˜Kšœœœ˜*šœœœ˜Kšœœœ˜K˜K˜K˜K˜K˜Kšœ˜K˜Kšœ˜K˜Kšœ˜K˜Kšœ˜K˜K˜Kšœ œœ˜!K˜Kšœ ˜K˜K˜K˜K˜K˜Kšœ ˜K˜K˜Kšœ œœ˜!K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ ˜K˜Kšœ˜K˜Kšœ˜ K˜Kšœ˜ K˜—K˜Kšœ œœ ˜$Kš œ œœ2œœ œ ˜pšœ œ˜K˜Ë—K˜šŸ œœœœ œœÏc œ˜[šœœ œ˜(Kšœœ˜ Kš œ œœœœœ˜FK˜—K˜—K˜š Ÿœœœœœ œ˜Všœœ œ˜(Kšœœ˜ Kšœ œ˜K˜—K˜—K˜šŸ œœ) œ˜Jšœœ œ˜3Kšœœ˜ Kš ŸœœœœDœ ˜}K˜'K˜3K˜7K˜=K˜9K˜?K˜?K˜/K˜+K˜1K˜/K˜/K˜1K˜/K˜+K˜-K˜-K˜/K˜3K˜3K˜1K˜3K˜7K˜%K˜%K˜;KšŸœœœœš˜ÄK˜%KšŸœœœœ—˜ÁK˜5K˜5K˜7K˜5K˜5K˜5K˜=K˜=K˜;K˜=K˜5K˜;K˜=K˜ÔK˜ÔKšŸœœœœ™˜ÃK˜5K˜7K˜3K˜ØK˜3K˜%K˜+K˜)K˜+K˜+K˜%K˜+K˜)K˜£K˜×K˜9K˜3K˜9K˜AK˜;K˜1K˜1K˜ÐK˜)K˜1K˜1K˜/K˜¸K˜½K˜ÄK˜+K˜)K˜+K˜+K˜)K˜7K˜5K˜7K˜5K˜=K˜'K˜/K˜-Kšœ ˜#Kšœ ˜#K˜-K˜-K˜-K˜/K˜ÄK˜ÄK˜ÄK˜ÄKšŸœœœœ¹˜ãK˜3KšŸœœœœ¹˜ãK˜3K˜ÈK˜3K˜3K˜ÈK˜3K˜3K˜ÉK˜7K˜7K˜?K˜5K˜9K˜9K˜9K˜9K˜+K˜+K˜+K˜1K˜1K˜1K˜1K˜AK˜AK˜9K˜9K˜9K˜7K˜ÇK˜ËK˜ÇK˜;K˜;K˜¶K˜3K˜3K˜3K˜1K˜1K˜7K˜7K˜³K˜¾K˜¾KšŸœœœœ¸˜âK˜;K˜;K˜;K˜;K˜;K˜ÊK˜ÎK˜ÊK˜5K˜5K˜5K˜;K˜;K˜5K˜+K˜-K˜-K˜ÝK˜ŸK˜«K˜¢K˜ŸK˜®K˜®K˜®K˜¢K˜´K˜«K˜¨K˜±K˜®K˜±K˜«K˜±K˜œK˜—K˜—K˜K˜K˜Kšœ˜—…—ST\¬