DIRECTORY Buttons, ChoiceButtons, Core, CoreFlat, HashTable, IO, PlotGraph, Ports, Rosemary, ViewerClasses; RosemaryUser: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Core.ROPE; DisplayViewer: PROC [simulation: Rosemary.Simulation, cellType: Core.CellType, name: ROPE _ NIL, displayWires: CoreFlat.FlatWires _ NIL, graphWires: CoreFlat.FlatWires _ NIL] RETURNS [handle: RoseDisplay]; LogSettle: PROC [handle: RoseDisplay, time: INT]; UpdateDisplay: PROC [handle: RoseDisplay]; InitializeDeltas: PROC [handle: RoseDisplay]; RecordDelta: PROC [handle: RoseDisplay, wire: Rosemary.RoseWire, time: INT]; DeltaFinished: PROC [handle: RoseDisplay, time: INT]; WireTimeValue: PROC [handle: RoseDisplay, flatWire: CoreFlat.FlatWire, time: INT] RETURNS [value: Ports.LevelSequence]; TestProcedureViewer: PROC [cellType: Core.CellType, testButtons: LIST OF ROPE, name: ROPE _ NIL, displayWires: CoreFlat.FlatWires _ NIL, graphWires: CoreFlat.FlatWires _ NIL, cutSet: CoreFlat.CutSet _ NIL, historySize: NAT _ 0, steady: BOOL _ FALSE, recordDeltas: BOOL _ TRUE] RETURNS [tester: Tester]; StartTest: PROC [tester: Tester]; SetProceedUntil: PROC [tester: Tester, count: INT]; RegisterTestProc: PROC [name: ROPE, proc: TestProc]; TestProc: TYPE = PROC [cellType: Core.CellType, p: Ports.Port, Eval: PROC [memory: BOOL _ TRUE]]; DisplayPortLeafWires: PROC [root: Core.CellType, flatCell: CoreFlat.FlatCellTypeRec _ CoreFlat.rootCellType] RETURNS [displayWires: CoreFlat.FlatWires]; AddWireToPlot: PROC [handle: RoseDisplay, wire: CoreFlat.FlatWire] RETURNS [msg: Core.ROPE _ NIL]; RemoveWireFromPlot: PROC [handle: RoseDisplay, wire: CoreFlat.FlatWire] RETURNS [found: BOOL _ FALSE]; Tester: TYPE = REF TesterRec; TesterRec: TYPE = RECORD [ intermediatePort: Ports.Port _ NIL, runState: ViewerClasses.Viewer _ NIL, evalsSinceStart: ViewerClasses.Viewer _ NIL, evalSinceStartCount: INT, proceedUntil: ViewerClasses.Viewer _ NIL, evalUntil: INT, historyTrigger: ViewerClasses.Viewer _ NIL, historyTriggerCount: INT, currentStatePoint: NAT _ 0, displayedStatePoint: NAT _ 0, validStates: NAT _ 0, historySize: NAT _ 0, testVectorBuffer: Rosemary.PortSequence _ NIL, proceed: CONDITION, testStarted: BOOL _ FALSE, waiting: BOOL _ FALSE, abort: BOOL _ FALSE, interrupt: BOOL _ FALSE, singleEval: BOOL _ FALSE, testButtonList: LIST OF Buttons.Button, currentTestProc: ROPE _ NIL, display: RoseDisplay _ NIL, steadyInit: BOOL _ TRUE, recordDeltas: BOOL _ TRUE]; RoseDisplay: TYPE = REF RoseDisplayRec; RoseDisplayRec: TYPE = RECORD [ name: Core.ROPE _ NIL, cellType: Core.CellType, simulation: Rosemary.Simulation, displayWires: LIST OF ChoiceButtons.PromptDataRef _ NIL, tsin: IO.STREAM _ NIL, tsout: IO.STREAM _ NIL, path: ViewerClasses.Viewer _ NIL, currentWire: ViewerClasses.Viewer _ NIL, plot: PlotGraph.Plot _ NIL, ps: IO.STREAM _ NIL, psLock: BOOL _ FALSE, psWait: CONDITION, psHash: HashTable.Table _ NIL, lastValidTime: INT _ -1, wDir: REF ANY _ NIL, logChanges: BOOL _ FALSE, cutSet: CoreFlat.CutSet _ NIL]; END. rRosemaryUser.mesa Copyright c 1985, 1986 by Xerox Corporation. All rights reserved. Barth, February 17, 1987 10:58:08 am PST Bertrand Serlet October 17, 1986 10:03:12 pm PDT Client Controlled Simulations Same as Rosemary.Settle but pays attention to the log button and records changes. Resets the initial state of all the wires to the current state. Must be called from a Rosemary.UpdateProc if plotting is to be used. Says that data is valid up to time. Gets the value of the wire. May raise Rosemary.NotInstantiated. Test Procedure Simulations Wire Display Data Structures Not intended to be understood by clients. สฅ˜codešœ™Kšœ ฯmœ7™BK™(K™0—K˜šฯk œ4žœ,˜kK˜—Kšฯn œžœž œž˜'K˜Kšžœžœžœ˜head™šŸ œžœBžœžœ%žœ#žœžœ˜อJ˜—šŸ œžœžœ˜1J™QJ˜—šŸ œžœ˜*J˜—šŸœžœ˜-J™?J˜—šŸ œžœ6žœ˜LJšœD™DJ˜—šŸ œžœžœ˜5J™#J˜—šŸ œžœ:žœžœ˜wKšœ@™@K˜——™š Ÿœžœ(žœžœžœžœžœ%žœ#žœžœžœžœžœžœžœžœ˜ฎK˜—šŸ œžœ˜!J˜—šŸœžœžœ˜3J˜—šŸœžœžœ˜4J˜—š œ žœžœ*Ÿœžœ žœžœ˜aK˜——™ šŸœžœSžœ$˜˜K˜—š Ÿ œžœ0žœ žœžœ˜bK˜—š Ÿœžœ0žœ žœžœ˜fK˜——™K™)K™Kšœžœžœ ˜procšœ žœžœ˜Kšœžœ˜#Jšœ!žœ˜%Jšœ(žœ˜,Jšœžœ˜Jšœ%žœ˜)Jšœ žœ˜Jšœ'žœ˜+Jšœžœ˜Jšœžœ˜Jšœžœ˜Jšœ žœ˜Jšœ žœ˜Jšœ*žœ˜.Jšœ ž œ˜Jšœ žœžœ˜Jšœ žœžœ˜Jšœžœžœ˜Jšœ žœžœ˜Jšœ žœžœ˜Jšœžœžœ˜'Kšœžœžœ˜Kšœžœ˜Kšœ žœžœ˜Kšœžœžœ˜K˜—Jšœ žœžœ˜'šœžœžœ˜Jšœ žœžœ˜Kšœ˜Jšœ ˜ Jšœžœžœžœ˜8Kšœžœžœžœ˜Kšœžœžœžœ˜Kšœžœ˜!Kšœ$žœ˜(Kšœžœ˜Kšœžœžœžœ˜Jšœžœžœ˜Jšœž œ˜Jšœžœ˜Kšœžœ˜Kšœžœžœž˜Kšœ žœžœ˜Kšœžœ˜J˜——Jšžœ˜J˜—…— ฬใ