<> <> <> <> DIRECTORY CacheOps, Core, Dragon, Ports, Random; Cache: CEDAR DEFINITIONS = BEGIN PI: TYPE = {PhA, PhB, PData, PCmdA, PUserMode, PRejectB, PFaultB, ResetAB}; Create: PUBLIC PROC [ vm: CacheOps.VirtualMemory, nLines: NAT _ CacheOps.StdLinesPerCache, skipRejects: BOOL _ FALSE ] RETURNS [ ct: Core.CellType ]; CacheState: TYPE = RECORD [ phALast: BOOL _ FALSE, -- hack to improve simulation performance cache: CacheOps.Cache, randomStream: Random.RandomStream, cycleNo: INT _ 0, skipRejects: BOOL _ FALSE, rejectCycles: NAT _ 0, cmdAB: Dragon.PBusCommands _ NoOp, address, fetchData, storeDataBA: Dragon.HexWord _ 0, cmdType: {noOp, reset, fetch, specialFetch, store, ioStore} _ noOp, fault: Dragon.PBusFaults _ none, firstBOfCmdBA: BOOL _ FALSE, csPredicted, csNew: Dragon.HexWord _ 0 ]; END.