--CacheMInterface.Mesa --created by RoseTranslate from CacheMInterface.Rose of May 22, 1984 8:23:40 pm PDT for Barth.pa at May 30, 1984 4:30:14 pm PDT DIRECTORY RoseTypes, RoseCreate, Dragon, SwitchTypes, NumTypes, EnumTypes, CacheMCAMDriver, CacheMCtl, CacheMRAMDriver, CacheMPads; CacheMInterface: CEDAR PROGRAM IMPORTS RoseCreate, NumTypes, EnumTypes, CacheMCAMDriver, CacheMCtl, CacheMRAMDriver, CacheMPads = BEGIN OPEN RoseTypes; --Signal Type decls MBusCommands: TYPE = Dragon.MBusCommands; PBusFaults: TYPE = Dragon.PBusFaults; PBusCommands: TYPE = Dragon.PBusCommands; RegisterCells: PROC = BEGIN CreateMInterfacePorts[]; [] _ RoseCreate.RegisterCellClass[className: "MInterface", expandProc: MInterfaceExpand, ioCreator: CreateMInterfaceIO, initializer: NIL, evals: [], blackBox: NIL, stateToo: NIL, ports: MInterfacePorts, drivePrototype: NEW [MInterfaceDrive]]; END; CreateMInterfacePorts: PROC = {MInterfacePorts _ RoseCreate.PortsFromFile["CacheMInterface.MInterface.rosePorts"]}; MInterfaceIORef: TYPE = REF MInterfaceIORec; MInterfaceIORec: TYPE = MACHINE DEPENDENT RECORD [ fill0(0:0..14): [0..32767], PhA(0:15..15): BOOLEAN, fill1(1:0..14): [0..32767], PhB(1:15..15): BOOLEAN, fill2(2:0..14): [0..32767], Vdd(2:15..15): BOOLEAN, fill3(3:0..14): [0..32767], Gnd(3:15..15): BOOLEAN, fill4(4:0..14): [0..32767], PadVdd(4:15..15): BOOLEAN, fill5(5:0..14): [0..32767], PadGnd(5:15..15): BOOLEAN, fill6(6:0..14): [0..32767], LatchBias(6:15..15): BOOLEAN, MDataBA(7:0..31): ARRAY [0..2) OF CARDINAL, fill8(9:0..11): [0..4095], MCmdBA(9:12..15): MBusCommands, fill9(10:0..14): [0..32767], MNShared(10:15..15): BOOLEAN, fill10(11:0..14): [0..32767], MParityBA(11:15..15): BOOLEAN, fill11(12:0..14): [0..32767], MNError(12:15..15): BOOLEAN, fill12(13:0..14): [0..32767], MReadyBA(13:15..15): BOOLEAN, fill13(14:0..14): [0..32767], MRq(14:15..15): BOOLEAN, fill14(15:0..14): [0..32767], MNewRq(15:15..15): BOOLEAN, fill15(16:0..14): [0..32767], MGnt(16:15..15): BOOLEAN, fill16(17:0..14): [0..32767], ResetAB(17:15..15): BOOLEAN, fill17(18:0..14): [0..32767], DHoldAB(18:15..15): BOOLEAN, fill18(19:0..14): [0..32767], DShiftAB(19:15..15): BOOLEAN, fill19(20:0..14): [0..32767], DExecuteAB(20:15..15): BOOLEAN, fill20(21:0..14): [0..32767], DNSelectAB(21:15..15): BOOLEAN, fill21(22:0..14): [0..32767], DDataInAB(22:15..15): BOOLEAN, fill22(23:0..14): [0..32767], DDataOutAB(23:15..15): BOOLEAN, fill23(24:0..14): [0..32767], PhAb(24:15..15): BOOLEAN, fill24(25:0..14): [0..32767], nPhAb(25:15..15): BOOLEAN, fill25(26:0..14): [0..32767], PhBb(26:15..15): BOOLEAN, fill26(27:0..14): [0..32767], nPhBb(27:15..15): BOOLEAN, fill27(28:0..14): [0..32767], PhAh(28:15..15): BOOLEAN, fill28(29:0..14): [0..32767], PhBh(29:15..15): BOOLEAN, fill29(30:0..14): [0..32767], Resetb(30:15..15): BOOLEAN, VirtualPage(31:0..31): ARRAY [0..2) OF CARDINAL, fill31(33:0..9): [0..1023], VirtualBlock(33:10..15): [0..63], RealPage(34:0..31): ARRAY [0..2) OF CARDINAL, nRealPage(36:0..31): ARRAY [0..2) OF CARDINAL, fill34(38:0..9): [0..1023], RealBlock(38:10..15): [0..63], fill35(39:0..9): [0..1023], nRealBlock(39:10..15): [0..63], CAMPageAccess(40:0..383): PACKED ARRAY [0 .. 23] OF SwitchTypes.SwitchVal, nCAMPageAccess(64:0..383): PACKED ARRAY [0 .. 23] OF SwitchTypes.SwitchVal, CAMBlockAccess(88:0..95): PACKED ARRAY [0 .. 5] OF SwitchTypes.SwitchVal, nCAMBlockAccess(94:0..95): PACKED ARRAY [0 .. 5] OF SwitchTypes.SwitchVal, PBits(100:0..1055): PACKED ARRAY [0 .. 65] OF SwitchTypes.SwitchVal, nPBits(166:0..1055): PACKED ARRAY [0 .. 65] OF SwitchTypes.SwitchVal, MBits(232:0..1055): PACKED ARRAY [0 .. 65] OF SwitchTypes.SwitchVal, nMBits(298:0..1055): PACKED ARRAY [0 .. 65] OF SwitchTypes.SwitchVal, fill44(364:0..14): [0..32767], nVirtualMatch(364:15..15): BOOLEAN, fill45(365:0..14): [0..32767], nMatchPageClean(365:15..15): BOOLEAN, fill46(366:0..14): [0..32767], nMatchCellShared(366:15..15): BOOLEAN, fill47(367:0..14): [0..32767], nMapValid(367:15..15): BOOLEAN, fill48(368:0..14): [0..32767], nRealMatch(368:15..15): BOOLEAN, fill49(369:0..14): [0..32767], nVictimClean(369:15..15): BOOLEAN, fill50(370:0..7): [0..255], CellAdr(370:8..15): [0..255], fill51(371:0..7): [0..255], nCellAdr(371:8..15): [0..255], fill52(372:0..14): [0..32767], VirtualAccess(372:15..15): BOOLEAN, fill53(373:0..14): [0..32767], nVirtualAccess(373:15..15): BOOLEAN, fill54(374:0..14): [0..32767], SelCell(374:15..15): BOOLEAN, fill55(375:0..14): [0..32767], SelVictimAdr(375:15..15): BOOLEAN, fill56(376:0..14): [0..32767], SelMapAdr(376:15..15): BOOLEAN, fill57(377:0..14): [0..32767], SelRealData(377:15..15): BOOLEAN, fill58(378:0..14): [0..32767], SelPageFlag(378:15..15): BOOLEAN, fill59(379:0..14): [0..32767], SelVictimData(379:15..15): BOOLEAN, fill60(380:0..14): [0..32767], SelRealAdr(380:15..15): BOOLEAN, fill61(381:0..14): [0..32767], FinishSharedStore(381:15..15): BOOLEAN, VPValid(382:0..15): SwitchTypes.SwitchVal, nVPValid(383:0..15): SwitchTypes.SwitchVal, RPValid(384:0..15): SwitchTypes.SwitchVal, nRPValid(385:0..15): SwitchTypes.SwitchVal, RPDirty(386:0..15): SwitchTypes.SwitchVal, nRPDirty(387:0..15): SwitchTypes.SwitchVal, Master(388:0..15): SwitchTypes.SwitchVal, nMaster(389:0..15): SwitchTypes.SwitchVal, Shared(390:0..15): SwitchTypes.SwitchVal, nShared(391:0..15): SwitchTypes.SwitchVal, Victim(392:0..15): SwitchTypes.SwitchVal, nVictim(393:0..15): SwitchTypes.SwitchVal, TIP(394:0..15): SwitchTypes.SwitchVal, nTIP(395:0..15): SwitchTypes.SwitchVal, Broken(396:0..15): SwitchTypes.SwitchVal, nBroken(397:0..15): SwitchTypes.SwitchVal, fill78(398:0..14): [0..32767], MAdrLow(398:15..15): BOOLEAN, fill79(399:0..14): [0..32767], nMAdrLow(399:15..15): BOOLEAN, fill80(400:0..14): [0..32767], VictimFeedback(400:15..15): BOOLEAN, fill81(401:0..14): [0..32767], nVictimFeedback(401:15..15): BOOLEAN, fill82(402:0..14): [0..32767], ShiftVictim(402:15..15): BOOLEAN, fill83(403:0..14): [0..32767], nShiftVictim(403:15..15): BOOLEAN, fill84(404:0..14): [0..32767], ForceDataSelect(404:15..15): BOOLEAN, fill85(405:0..14): [0..32767], MDoneAB(405:15..15): BOOLEAN, fill86(406:0..14): [0..32767], MHeldAB(406:15..15): BOOLEAN, fill87(407:0..12): [0..8191], MFaultAB(407:13..15): PBusFaults, fill88(408:0..14): [0..32767], PKillRequestB(408:15..15): BOOLEAN, fill89(409:0..14): [0..32767], PAdrHigh(409:15..15): BOOLEAN, fill90(410:0..14): [0..32767], PAdrLowToM(410:15..15): BOOLEAN, fill91(411:0..11): [0..4095], PCmdToMAB(411:12..15): PBusCommands, fill92(412:0..14): [0..32767], DoShiftBA(412:15..15): BOOLEAN, fill93(413:0..14): [0..32767], DoExecuteBA(413:15..15): BOOLEAN, fill94(414:0..14): [0..32767], DoHoldBA(414:15..15): BOOLEAN, fill95(415:0..14): [0..32767], ShiftDataToPCAM(415:15..15): BOOLEAN, fill96(416:0..14): [0..32767], ShiftDataToMCtlPads(416:15..15): BOOLEAN]; -- port indices: MInterfaceCAMPageAccessPortIndex: CARDINAL = 36; MInterfaceNCAMPageAccessPortIndex: CARDINAL = 37; MInterfaceCAMBlockAccessPortIndex: CARDINAL = 38; MInterfaceNCAMBlockAccessPortIndex: CARDINAL = 39; MInterfacePBitsPortIndex: CARDINAL = 40; MInterfaceNPBitsPortIndex: CARDINAL = 41; MInterfaceMBitsPortIndex: CARDINAL = 42; MInterfaceNMBitsPortIndex: CARDINAL = 43; MInterfaceVPValidPortIndex: CARDINAL = 62; MInterfaceNVPValidPortIndex: CARDINAL = 63; MInterfaceRPValidPortIndex: CARDINAL = 64; MInterfaceNRPValidPortIndex: CARDINAL = 65; MInterfaceRPDirtyPortIndex: CARDINAL = 66; MInterfaceNRPDirtyPortIndex: CARDINAL = 67; MInterfaceMasterPortIndex: CARDINAL = 68; MInterfaceNMasterPortIndex: CARDINAL = 69; MInterfaceSharedPortIndex: CARDINAL = 70; MInterfaceNSharedPortIndex: CARDINAL = 71; MInterfaceVictimPortIndex: CARDINAL = 72; MInterfaceNVictimPortIndex: CARDINAL = 73; MInterfaceTIPPortIndex: CARDINAL = 74; MInterfaceNTIPPortIndex: CARDINAL = 75; MInterfaceBrokenPortIndex: CARDINAL = 76; MInterfaceNBrokenPortIndex: CARDINAL = 77; MInterfaceDrive: TYPE = MACHINE DEPENDENT RECORD [ fill0(0:0..14): [0 .. 32768), PhA(0:15..15): BOOLEAN, fill1(1:0..14): [0 .. 32768), PhB(1:15..15): BOOLEAN, fill2(2:0..14): [0 .. 32768), Vdd(2:15..15): BOOLEAN, fill3(3:0..14): [0 .. 32768), Gnd(3:15..15): BOOLEAN, fill4(4:0..14): [0 .. 32768), PadVdd(4:15..15): BOOLEAN, fill5(5:0..14): [0 .. 32768), PadGnd(5:15..15): BOOLEAN, fill6(6:0..14): [0 .. 32768), LatchBias(6:15..15): BOOLEAN, fill7(7:0..14): [0 .. 32768), MDataBA(7:15..15): BOOLEAN, fill8(8:0..14): [0 .. 32768), MCmdBA(8:15..15): BOOLEAN, fill9(9:0..14): [0 .. 32768), MNShared(9:15..15): BOOLEAN, fill10(10:0..14): [0 .. 32768), MParityBA(10:15..15): BOOLEAN, fill11(11:0..14): [0 .. 32768), MNError(11:15..15): BOOLEAN, fill12(12:0..14): [0 .. 32768), MReadyBA(12:15..15): BOOLEAN, fill13(13:0..14): [0 .. 32768), MRq(13:15..15): BOOLEAN, fill14(14:0..14): [0 .. 32768), MNewRq(14:15..15): BOOLEAN, fill15(15:0..14): [0 .. 32768), MGnt(15:15..15): BOOLEAN, fill16(16:0..14): [0 .. 32768), ResetAB(16:15..15): BOOLEAN, fill17(17:0..14): [0 .. 32768), DHoldAB(17:15..15): BOOLEAN, fill18(18:0..14): [0 .. 32768), DShiftAB(18:15..15): BOOLEAN, fill19(19:0..14): [0 .. 32768), DExecuteAB(19:15..15): BOOLEAN, fill20(20:0..14): [0 .. 32768), DNSelectAB(20:15..15): BOOLEAN, fill21(21:0..14): [0 .. 32768), DDataInAB(21:15..15): BOOLEAN, fill22(22:0..14): [0 .. 32768), DDataOutAB(22:15..15): BOOLEAN, fill23(23:0..14): [0 .. 32768), PhAb(23:15..15): BOOLEAN, fill24(24:0..14): [0 .. 32768), nPhAb(24:15..15): BOOLEAN, fill25(25:0..14): [0 .. 32768), PhBb(25:15..15): BOOLEAN, fill26(26:0..14): [0 .. 32768), nPhBb(26:15..15): BOOLEAN, fill27(27:0..14): [0 .. 32768), PhAh(27:15..15): BOOLEAN, fill28(28:0..14): [0 .. 32768), PhBh(28:15..15): BOOLEAN, fill29(29:0..14): [0 .. 32768), Resetb(29:15..15): BOOLEAN, fill30(30:0..14): [0 .. 32768), VirtualPage(30:15..15): BOOLEAN, fill31(31:0..14): [0 .. 32768), VirtualBlock(31:15..15): BOOLEAN, fill32(32:0..14): [0 .. 32768), RealPage(32:15..15): BOOLEAN, fill33(33:0..14): [0 .. 32768), nRealPage(33:15..15): BOOLEAN, fill34(34:0..14): [0 .. 32768), RealBlock(34:15..15): BOOLEAN, fill35(35:0..14): [0 .. 32768), nRealBlock(35:15..15): BOOLEAN, fill36(36:0..14): [0 .. 32768), CAMPageAccess(36:15..15): BOOLEAN, fill37(37:0..14): [0 .. 32768), nCAMPageAccess(37:15..15): BOOLEAN, fill38(38:0..14): [0 .. 32768), CAMBlockAccess(38:15..15): BOOLEAN, fill39(39:0..14): [0 .. 32768), nCAMBlockAccess(39:15..15): BOOLEAN, fill40(40:0..14): [0 .. 32768), PBits(40:15..15): BOOLEAN, fill41(41:0..14): [0 .. 32768), nPBits(41:15..15): BOOLEAN, fill42(42:0..14): [0 .. 32768), MBits(42:15..15): BOOLEAN, fill43(43:0..14): [0 .. 32768), nMBits(43:15..15): BOOLEAN, fill44(44:0..14): [0 .. 32768), nVirtualMatch(44:15..15): BOOLEAN, fill45(45:0..14): [0 .. 32768), nMatchPageClean(45:15..15): BOOLEAN, fill46(46:0..14): [0 .. 32768), nMatchCellShared(46:15..15): BOOLEAN, fill47(47:0..14): [0 .. 32768), nMapValid(47:15..15): BOOLEAN, fill48(48:0..14): [0 .. 32768), nRealMatch(48:15..15): BOOLEAN, fill49(49:0..14): [0 .. 32768), nVictimClean(49:15..15): BOOLEAN, fill50(50:0..14): [0 .. 32768), CellAdr(50:15..15): BOOLEAN, fill51(51:0..14): [0 .. 32768), nCellAdr(51:15..15): BOOLEAN, fill52(52:0..14): [0 .. 32768), VirtualAccess(52:15..15): BOOLEAN, fill53(53:0..14): [0 .. 32768), nVirtualAccess(53:15..15): BOOLEAN, fill54(54:0..14): [0 .. 32768), SelCell(54:15..15): BOOLEAN, fill55(55:0..14): [0 .. 32768), SelVictimAdr(55:15..15): BOOLEAN, fill56(56:0..14): [0 .. 32768), SelMapAdr(56:15..15): BOOLEAN, fill57(57:0..14): [0 .. 32768), SelRealData(57:15..15): BOOLEAN, fill58(58:0..14): [0 .. 32768), SelPageFlag(58:15..15): BOOLEAN, fill59(59:0..14): [0 .. 32768), SelVictimData(59:15..15): BOOLEAN, fill60(60:0..14): [0 .. 32768), SelRealAdr(60:15..15): BOOLEAN, fill61(61:0..14): [0 .. 32768), FinishSharedStore(61:15..15): BOOLEAN, fill62(62:0..14): [0 .. 32768), VPValid(62:15..15): BOOLEAN, fill63(63:0..14): [0 .. 32768), nVPValid(63:15..15): BOOLEAN, fill64(64:0..14): [0 .. 32768), RPValid(64:15..15): BOOLEAN, fill65(65:0..14): [0 .. 32768), nRPValid(65:15..15): BOOLEAN, fill66(66:0..14): [0 .. 32768), RPDirty(66:15..15): BOOLEAN, fill67(67:0..14): [0 .. 32768), nRPDirty(67:15..15): BOOLEAN, fill68(68:0..14): [0 .. 32768), Master(68:15..15): BOOLEAN, fill69(69:0..14): [0 .. 32768), nMaster(69:15..15): BOOLEAN, fill70(70:0..14): [0 .. 32768), Shared(70:15..15): BOOLEAN, fill71(71:0..14): [0 .. 32768), nShared(71:15..15): BOOLEAN, fill72(72:0..14): [0 .. 32768), Victim(72:15..15): BOOLEAN, fill73(73:0..14): [0 .. 32768), nVictim(73:15..15): BOOLEAN, fill74(74:0..14): [0 .. 32768), TIP(74:15..15): BOOLEAN, fill75(75:0..14): [0 .. 32768), nTIP(75:15..15): BOOLEAN, fill76(76:0..14): [0 .. 32768), Broken(76:15..15): BOOLEAN, fill77(77:0..14): [0 .. 32768), nBroken(77:15..15): BOOLEAN, fill78(78:0..14): [0 .. 32768), MAdrLow(78:15..15): BOOLEAN, fill79(79:0..14): [0 .. 32768), nMAdrLow(79:15..15): BOOLEAN, fill80(80:0..14): [0 .. 32768), VictimFeedback(80:15..15): BOOLEAN, fill81(81:0..14): [0 .. 32768), nVictimFeedback(81:15..15): BOOLEAN, fill82(82:0..14): [0 .. 32768), ShiftVictim(82:15..15): BOOLEAN, fill83(83:0..14): [0 .. 32768), nShiftVictim(83:15..15): BOOLEAN, fill84(84:0..14): [0 .. 32768), ForceDataSelect(84:15..15): BOOLEAN, fill85(85:0..14): [0 .. 32768), MDoneAB(85:15..15): BOOLEAN, fill86(86:0..14): [0 .. 32768), MHeldAB(86:15..15): BOOLEAN, fill87(87:0..14): [0 .. 32768), MFaultAB(87:15..15): BOOLEAN, fill88(88:0..14): [0 .. 32768), PKillRequestB(88:15..15): BOOLEAN, fill89(89:0..14): [0 .. 32768), PAdrHigh(89:15..15): BOOLEAN, fill90(90:0..14): [0 .. 32768), PAdrLowToM(90:15..15): BOOLEAN, fill91(91:0..14): [0 .. 32768), PCmdToMAB(91:15..15): BOOLEAN, fill92(92:0..14): [0 .. 32768), DoShiftBA(92:15..15): BOOLEAN, fill93(93:0..14): [0 .. 32768), DoExecuteBA(93:15..15): BOOLEAN, fill94(94:0..14): [0 .. 32768), DoHoldBA(94:15..15): BOOLEAN, fill95(95:0..14): [0 .. 32768), ShiftDataToPCAM(95:15..15): BOOLEAN, fill96(96:0..14): [0 .. 32768), ShiftDataToMCtlPads(96:15..15): BOOLEAN]; MInterfaceExpand: ExpandProc = { PrivateLookupNode: PROC [name: ROPE] RETURNS [node: Node] = {node _ RoseCreate.LookupNode[from: thisCell, path: LIST[name]]}; PhA: Node _ PrivateLookupNode["PhA"]; PhB: Node _ PrivateLookupNode["PhB"]; Vdd: Node _ PrivateLookupNode["Vdd"]; Gnd: Node _ PrivateLookupNode["Gnd"]; PadVdd: Node _ PrivateLookupNode["PadVdd"]; PadGnd: Node _ PrivateLookupNode["PadGnd"]; LatchBias: Node _ PrivateLookupNode["LatchBias"]; MDataBA: Node _ PrivateLookupNode["MDataBA"]; MCmdBA: Node _ PrivateLookupNode["MCmdBA"]; MNShared: Node _ PrivateLookupNode["MNShared"]; MParityBA: Node _ PrivateLookupNode["MParityBA"]; MNError: Node _ PrivateLookupNode["MNError"]; MReadyBA: Node _ PrivateLookupNode["MReadyBA"]; MRq: Node _ PrivateLookupNode["MRq"]; MNewRq: Node _ PrivateLookupNode["MNewRq"]; MGnt: Node _ PrivateLookupNode["MGnt"]; 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"]; PhAb: Node _ PrivateLookupNode["PhAb"]; nPhAb: Node _ PrivateLookupNode["nPhAb"]; PhBb: Node _ PrivateLookupNode["PhBb"]; nPhBb: Node _ PrivateLookupNode["nPhBb"]; PhAh: Node _ PrivateLookupNode["PhAh"]; PhBh: Node _ PrivateLookupNode["PhBh"]; Resetb: Node _ PrivateLookupNode["Resetb"]; VirtualPage: Node _ PrivateLookupNode["VirtualPage"]; VirtualBlock: Node _ PrivateLookupNode["VirtualBlock"]; RealPage: Node _ PrivateLookupNode["RealPage"]; nRealPage: Node _ PrivateLookupNode["nRealPage"]; RealBlock: Node _ PrivateLookupNode["RealBlock"]; nRealBlock: Node _ PrivateLookupNode["nRealBlock"]; CAMPageAccess: Node _ PrivateLookupNode["CAMPageAccess"]; nCAMPageAccess: Node _ PrivateLookupNode["nCAMPageAccess"]; CAMBlockAccess: Node _ PrivateLookupNode["CAMBlockAccess"]; nCAMBlockAccess: Node _ PrivateLookupNode["nCAMBlockAccess"]; PBits: Node _ PrivateLookupNode["PBits"]; nPBits: Node _ PrivateLookupNode["nPBits"]; MBits: Node _ PrivateLookupNode["MBits"]; nMBits: Node _ PrivateLookupNode["nMBits"]; nVirtualMatch: Node _ PrivateLookupNode["nVirtualMatch"]; nMatchPageClean: Node _ PrivateLookupNode["nMatchPageClean"]; nMatchCellShared: Node _ PrivateLookupNode["nMatchCellShared"]; nMapValid: Node _ PrivateLookupNode["nMapValid"]; nRealMatch: Node _ PrivateLookupNode["nRealMatch"]; nVictimClean: Node _ PrivateLookupNode["nVictimClean"]; CellAdr: Node _ PrivateLookupNode["CellAdr"]; nCellAdr: Node _ PrivateLookupNode["nCellAdr"]; VirtualAccess: Node _ PrivateLookupNode["VirtualAccess"]; nVirtualAccess: Node _ PrivateLookupNode["nVirtualAccess"]; SelCell: Node _ PrivateLookupNode["SelCell"]; SelVictimAdr: Node _ PrivateLookupNode["SelVictimAdr"]; SelMapAdr: Node _ PrivateLookupNode["SelMapAdr"]; SelRealData: Node _ PrivateLookupNode["SelRealData"]; SelPageFlag: Node _ PrivateLookupNode["SelPageFlag"]; SelVictimData: Node _ PrivateLookupNode["SelVictimData"]; SelRealAdr: Node _ PrivateLookupNode["SelRealAdr"]; FinishSharedStore: Node _ PrivateLookupNode["FinishSharedStore"]; VPValid: Node _ PrivateLookupNode["VPValid"]; nVPValid: Node _ PrivateLookupNode["nVPValid"]; RPValid: Node _ PrivateLookupNode["RPValid"]; nRPValid: Node _ PrivateLookupNode["nRPValid"]; RPDirty: Node _ PrivateLookupNode["RPDirty"]; nRPDirty: Node _ PrivateLookupNode["nRPDirty"]; Master: Node _ PrivateLookupNode["Master"]; nMaster: Node _ PrivateLookupNode["nMaster"]; Shared: Node _ PrivateLookupNode["Shared"]; nShared: Node _ PrivateLookupNode["nShared"]; Victim: Node _ PrivateLookupNode["Victim"]; nVictim: Node _ PrivateLookupNode["nVictim"]; TIP: Node _ PrivateLookupNode["TIP"]; nTIP: Node _ PrivateLookupNode["nTIP"]; Broken: Node _ PrivateLookupNode["Broken"]; nBroken: Node _ PrivateLookupNode["nBroken"]; MAdrLow: Node _ PrivateLookupNode["MAdrLow"]; nMAdrLow: Node _ PrivateLookupNode["nMAdrLow"]; VictimFeedback: Node _ PrivateLookupNode["VictimFeedback"]; nVictimFeedback: Node _ PrivateLookupNode["nVictimFeedback"]; ShiftVictim: Node _ PrivateLookupNode["ShiftVictim"]; nShiftVictim: Node _ PrivateLookupNode["nShiftVictim"]; ForceDataSelect: Node _ PrivateLookupNode["ForceDataSelect"]; MDoneAB: Node _ PrivateLookupNode["MDoneAB"]; MHeldAB: Node _ PrivateLookupNode["MHeldAB"]; MFaultAB: Node _ PrivateLookupNode["MFaultAB"]; PKillRequestB: Node _ PrivateLookupNode["PKillRequestB"]; PAdrHigh: Node _ PrivateLookupNode["PAdrHigh"]; PAdrLowToM: Node _ PrivateLookupNode["PAdrLowToM"]; PCmdToMAB: Node _ PrivateLookupNode["PCmdToMAB"]; DoShiftBA: Node _ PrivateLookupNode["DoShiftBA"]; DoExecuteBA: Node _ PrivateLookupNode["DoExecuteBA"]; DoHoldBA: Node _ PrivateLookupNode["DoHoldBA"]; ShiftDataToPCAM: Node _ PrivateLookupNode["ShiftDataToPCAM"]; ShiftDataToMCtlPads: Node _ PrivateLookupNode["ShiftDataToMCtlPads"]; MDataI: Node _ RoseCreate.CreateNode[within: thisCell, name: "MDataI", type: NumTypes.NumType[32]]; NodeCreateHack1: PROC [name: ROPE] RETURNS [node: Node] = {node _ RoseCreate.CreateNode[within: thisCell, name: name, type: NumTypes.boolType]}; MDataDrive: Node _ NodeCreateHack1["MDataDrive"]; MDataIDrive: Node _ NodeCreateHack1["MDataIDrive"]; MDataPipeBypass: Node _ NodeCreateHack1["MDataPipeBypass"]; MDataPipeTransfer: Node _ NodeCreateHack1["MDataPipeTransfer"]; MParityI: Node _ NodeCreateHack1["MParityI"]; MCmdIn: Node _ RoseCreate.CreateNode[within: thisCell, name: "MCmdIn", type: EnumTypes.EnumType["Dragon.MBusCommands"]]; MCmdOutBA: Node _ RoseCreate.CreateNode[within: thisCell, name: "MCmdOutBA", type: EnumTypes.EnumType["Dragon.MBusCommands"]]; MCmdDrive: Node _ NodeCreateHack1["MCmdDrive"]; MCmdDriveToDataTransport: Node _ NodeCreateHack1["MCmdDriveToDataTransport"]; MCmdDriveToNoOp: Node _ NodeCreateHack1["MCmdDriveToNoOp"]; MNSharedSenseBA: Node _ NodeCreateHack1["MNSharedSenseBA"]; MNSharedDriveHigh: Node _ NodeCreateHack1["MNSharedDriveHigh"]; MNSharedDriveLow: Node _ NodeCreateHack1["MNSharedDriveLow"]; MNErrorDriveLow: Node _ NodeCreateHack1["MNErrorDriveLow"]; MReadySense: Node _ NodeCreateHack1["MReadySense"]; MRqIBA: Node _ NodeCreateHack1["MRqIBA"]; MNewRqIBA: Node _ NodeCreateHack1["MNewRqIBA"]; MNewRqEnableBA: Node _ NodeCreateHack1["MNewRqEnableBA"]; MGntSense: Node _ NodeCreateHack1["MGntSense"]; ShiftDataToMRAM: Node _ NodeCreateHack1["ShiftDataToMRAM"]; ShiftDataToMCtl: Node _ NodeCreateHack1["ShiftDataToMCtl"]; ShiftDataToMCAM: Node _ NodeCreateHack1["ShiftDataToMCAM"]; ShiftEqual: Node _ NodeCreateHack1["ShiftEqual"]; nShiftEqual: Node _ NodeCreateHack1["nShiftEqual"]; ShiftFeedBack: Node _ NodeCreateHack1["ShiftFeedBack"]; nShiftFeedBack: Node _ NodeCreateHack1["nShiftFeedBack"]; ShiftShift: Node _ NodeCreateHack1["ShiftShift"]; nShiftShift: Node _ NodeCreateHack1["nShiftShift"]; PageAccessToAccess: Node _ NodeCreateHack1["PageAccessToAccess"]; BlockAccessToAccess: Node _ NodeCreateHack1["BlockAccessToAccess"]; PageVirtualToAccess: Node _ NodeCreateHack1["PageVirtualToAccess"]; BlockVirtualToAccess: Node _ NodeCreateHack1["BlockVirtualToAccess"]; MatchToAccess: Node _ NodeCreateHack1["MatchToAccess"]; MDataToMatch: Node _ NodeCreateHack1["MDataToMatch"]; AccessToMatch: Node _ NodeCreateHack1["AccessToMatch"]; PageAccessToMData: Node _ NodeCreateHack1["PageAccessToMData"]; nPageAccessToMData: Node _ NodeCreateHack1["nPageAccessToMData"]; BlockAccessToMData: Node _ NodeCreateHack1["BlockAccessToMData"]; nBlockAccessToMData: Node _ NodeCreateHack1["nBlockAccessToMData"]; AccessToPageBlockAccess: Node _ NodeCreateHack1["AccessToPageBlockAccess"]; nAccessToPageBlockAccess: Node _ NodeCreateHack1["nAccessToPageBlockAccess"]; ShiftToPageBlockAccess: Node _ NodeCreateHack1["ShiftToPageBlockAccess"]; nShiftToPageBlockAccess: Node _ NodeCreateHack1["nShiftToPageBlockAccess"]; AccessDrive: Node _ NodeCreateHack1["AccessDrive"]; nAccessDrive: Node _ NodeCreateHack1["nAccessDrive"]; PageBlockAccessToShift: Node _ NodeCreateHack1["PageBlockAccessToShift"]; nPageBlockAccessToShift: Node _ NodeCreateHack1["nPageBlockAccessToShift"]; nCAMAccessPrecharge: Node _ NodeCreateHack1["nCAMAccessPrecharge"]; nMBitsPrecharge: Node _ NodeCreateHack1["nMBitsPrecharge"]; MuxRight: Node _ NodeCreateHack1["MuxRight"]; MuxLeft: Node _ NodeCreateHack1["MuxLeft"]; MBitsDrive: Node _ NodeCreateHack1["MBitsDrive"]; nMBitsDrive: Node _ NodeCreateHack1["nMBitsDrive"]; MRamRegToMDataI: Node _ NodeCreateHack1["MRamRegToMDataI"]; nMRamRegToMDataI: Node _ NodeCreateHack1["nMRamRegToMDataI"]; SenseMBits: Node _ NodeCreateHack1["SenseMBits"]; SenseMDataI: Node _ NodeCreateHack1["SenseMDataI"]; ParityIn: Node _ NodeCreateHack1["ParityIn"]; ParityOut: Node _ NodeCreateHack1["ParityOut"]; SensePBitsLeft: Node _ NodeCreateHack1["SensePBitsLeft"]; SensePBitsRight: Node _ NodeCreateHack1["SensePBitsRight"]; DrivePBits: Node _ NodeCreateHack1["DrivePBits"]; nDrivePBits: Node _ NodeCreateHack1["nDrivePBits"]; MRamRegToMBits: Node _ NodeCreateHack1["MRamRegToMBits"]; nMRamRegToMBits: Node _ NodeCreateHack1["nMRamRegToMBits"]; ShiftToMBits: Node _ NodeCreateHack1["ShiftToMBits"]; nShiftToMBits: Node _ NodeCreateHack1["nShiftToMBits"]; MBitsToShift: Node _ NodeCreateHack1["MBitsToShift"]; nMBitsToShift: Node _ NodeCreateHack1["nMBitsToShift"]; [] _ RoseCreate.CreateCell[within: thisCell, instanceName: "mCAMDriver", className: "MCAMDriver", interfaceNodes: ""]; [] _ RoseCreate.CreateCell[within: thisCell, instanceName: "mCtl", className: "MCtl", interfaceNodes: ""]; [] _ RoseCreate.CreateCell[within: thisCell, instanceName: "mRAMDriver", className: "MRAMDriver", interfaceNodes: ""]; [] _ RoseCreate.CreateCell[within: thisCell, instanceName: "mDataPads", className: "MDataPads", interfaceNodes: ""]; [] _ RoseCreate.CreateCell[within: thisCell, instanceName: "mCtlPads", className: "MCtlPads", interfaceNodes: ""]; }; CreateMInterfaceIO: IOCreator = { cell.realCellStuff.switchIO _ NEW [MInterfaceIORec]; cell.realCellStuff.newIO _ NEW [MInterfaceIORec]; cell.realCellStuff.oldIO _ NEW [MInterfaceIORec]; }; MInterfacePorts: Ports _ NEW [PortsRep[97]]; RegisterCells[]; END.