DIRECTORY PBusModel, ProcessorModel; ProcessorModelImpl: CEDAR PROGRAM EXPORTS ProcessorModel = BEGIN OPEN ProcessorModel; Create: PUBLIC PROC [commandList: LIST OF ProcessorCommand _ NIL, pbus: DM.Component] RETURNS [processor: DM.Component] = { processor _ NEW [DM.ComponentRec _ [ action: [Reset, PhA, EvPhA, PhB, EvPhB], history: NIL, componentType: $Processor, specific: NEW [ProcessorSpecificRec _ [commandList: commandList, pbus: pbus]]]] }; PhA: DM.ActionProc = { private: DM.Component _ NARROW[component]; IF processor.commandList = NIL THEN ERROR; processor.pbus.pbusWires.pCmdA _ processor.commandList.first.cmd; processor.pbus.pbusWires.pData _ processor.commandList.first.adrs; }; EvPhA: DM.ActionProc = { }; PhB: DM.ActionProc = { IF processor.commandList.first.cmd = Store THEN processor.pbus.pbusWires.pData _ processor.commandList.first.data; }; EvPhB: DM.ActionProc = { IF processor.pbus.pbusWires.pRejectB THEN NULL ELSE { IF processor.commandList.first.cmd = Fetch THEN processor.commandList.first.data _ processor.pbus.pbusWires.pData; processor.history _ CONS[processor.commandList.first, processor.history]; processor.commandList _ processor.commandList.rest }; }; Reset: DM.ActionProc = { }; END. ŒProcessorModelImpl.mesa Written By: Jean Vuillemin and Pradeep Sindhu Last Edited By: Pradeep Sindhu August 21, 1985 7:21:22 pm PDT Κ2˜šœ™J™-J™=—J™codešΟk ˜ Kšœ ˜ Kšœ˜K˜—šΟbœ˜!Kšœœœ˜3K˜•StartOfExpansionS -- [cache: CacheModels.Cache, addr: DragOpsCross.Word, fromJump: BOOL _ FALSE] -- šΟnœœœœœœœ œ œ˜{šœ œœ˜$Kšœ(˜(Kšœ œ˜ K˜Kšœ œB˜O—K˜—K˜K˜šžœœ˜Kšœ œ œ ˜*Kšœœœœ˜*KšœA˜AKšœB˜BK˜K˜—šžœœ˜K˜K˜—šžœœ˜šœ(˜*KšœC˜G—K˜K˜—šžœœ˜šœ"˜$Kšœ˜ šœ˜šœ(˜*KšœC˜G—Kšœœ1˜IKšœ2˜2K˜——K˜K˜—šžœœ˜K˜—K˜Kšœ˜—J™—…—ΠŽ