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. ��r��RosemaryUser.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˜�—�…—����Ì��ã��