<> <> <> <> <> <<>> <> DIRECTORY CacheOps, Dragon, IO, LizardRosemary, Rope, RoseDisplayInsides, RoseTypes, ViewerClasses; ClusterParams: CEDAR DEFINITIONS = BEGIN vm: PUBLIC CacheOps.VirtualMemory; randomBackground: PUBLIC Rope.ROPE; randomStartPC: PUBLIC Dragon.Word; iCacheSkipRejects: PUBLIC BOOL; iCache: PUBLIC CacheOps.Cache; eCache: PUBLIC CacheOps.Cache; clusterLog: PUBLIC IO.STREAM; ifuLogRef: PUBLIC REF IO.STREAM; euLogRef: PUBLIC REF IO.STREAM; eCacheLogRef: PUBLIC REF IO.STREAM; lizardSimRef: PUBLIC REF LizardRosemary.Simulation; clusterPanel: PUBLIC REF ControlPanel; ControlPanel: TYPE = RECORD [ diagnostic: Rope.ROPE _ NIL, cycle: INT _ 0, slowFromCycle: INT _ 10000000, instrCount: INT _ 0, slowFromInstr: INT _ 10000000, phase: Dragon.Phase _ a, stopInPh: ARRAY Dragon.Phase OF BOOL _ ALL[TRUE], repeatPhase: BOOL _ FALSE, continueTestFromAbort: BOOL _ FALSE, reset, resched: BOOL _ FALSE, enaECacheLog: BOOL _ FALSE, enaIFULog: BOOL _ FALSE, enaEULog: BOOL _ FALSE, lizardToo: BOOL _ TRUE, emulateBreakpoint: BOOL _ TRUE, randomSeed: INT _ 0, randomCycleLimit: INT _ 0, ckptAtCycle: INT _ -100, ckptEveryNCycles: INT _ 0, ckpt: BOOL _ FALSE, rollbk: BOOL _ FALSE, ckptFile: IO.ROPE _ NIL, errMsg: IO.ROPE _ NIL ]; Remark: PROC [message: IO.ROPE]; PanelCheck: PROC; CheckPoint: PROC [fileName: IO.ROPE, root: RoseTypes.Cell]; RollBack: PROC [fileName: IO.ROPE, root: RoseTypes.Cell] RETURNS [oldPanel: REF ControlPanel]; InsertRandomProgramInVM: PROC[vm:CacheOps.VirtualMemory, seed:INT, log:IO.STREAM]; END.