DIRECTORY DM, DragOpsCross, DMPBusModel; DMPBusModelImpl: CEDAR PROGRAM IMPORTS DM EXPORTS DMPBusModel = BEGIN OPEN DMPBusModel; Create: PUBLIC PROC [] RETURNS [pbus: DM.Component] = { pbus _ NEW [DM.ComponentRec _ [ action: [Reset, PhA, EvPhA, PhB, EvPhB], history: NIL, componentType: $PBus, subComponents: NIL, specific: NEW [PBusSpecificRec]]] }; Cmd: PUBLIC PROC [pbus: DM.Component] RETURNS [PCmdType] = { pvt: PBusSpecific _ NARROW[pbus.specific]; RETURN [pvt.pCmdA] }; DrCmd: PUBLIC PROC [pbus: DM.Component, pCmdA: PCmdType] = { pvt: PBusSpecific _ NARROW[pbus.specific]; pvt.pCmdA _ pCmdA; }; Data: PUBLIC PROC [pbus: DM.Component] RETURNS [DM.Word] = { pvt: PBusSpecific _ NARROW[pbus.specific]; RETURN [pvt.pData] }; DrData: PUBLIC PROC [pbus: DM.Component, pData: DM.Word] = { pvt: PBusSpecific _ NARROW[pbus.specific]; pvt.pData _ pData; }; Reject: PUBLIC PROC [pbus: DM.Component] RETURNS [BOOL] = { pvt: PBusSpecific _ NARROW[pbus.specific]; RETURN [pvt.pRejectB] }; DrReject: PUBLIC PROC [pbus: DM.Component, pRejectB: BOOL] = { pvt: PBusSpecific _ NARROW[pbus.specific]; pvt.pRejectB _ pRejectB; }; PhA: DM.ActionProc = { }; EvPhA: DM.ActionProc = { pvt: PBusSpecific _ NARROW[component.specific]; component.history _ DM.ConsHistory[EvPhA, NEW[PBusSpecificRec _ pvt^], component.history] }; PhB: DM.ActionProc = { }; EvPhB: DM.ActionProc = { pvt: PBusSpecific _ NARROW[component.specific]; component.history _ DM.ConsHistory[EvPhB, NEW[PBusSpecificRec _ pvt^], component.history] }; Reset: DM.ActionProc = { component.history _ NIL }; END. ŠDMPBusModelImpl.mesa Written By: Jean Vuillemin and Pradeep Sindhu Last Edited By: Pradeep Sindhu September 2, 1985 11:42:36 pm PDT Κά˜™J™-J™@—J˜codešΟk ˜ Kšœ˜—J˜J˜šΟbœœ˜Kšœ˜ Kšœœœ ˜-K–36 sp tabStops˜•StartOfExpansionS -- [cache: CacheModels.Cache, addr: DragOpsCross.Word, fromJump: BOOL _ FALSE] -- š Οnœœœœœ˜7šœœœ˜Kšœ(˜(Kšœ œ˜ K˜Kšœœ˜Kšœ œ˜!—K˜—K˜š Ÿœœœœ œ˜Kšœœ˜*Kšœ˜K˜—K˜šžœœ˜K˜—K˜šžœœ˜Kšœœ˜/Kšœœœ,˜YK˜—K˜–; -- [cache: CacheModels.Cache, addr: DragOpsCross.Word] -- šžœœ˜K˜K˜—–; -- [cache: CacheModels.Cache, addr: DragOpsCross.Word] -- šžœœ˜Kšœœ˜/Kšœœœ,˜YK˜K˜—–" -- [cache: CacheModels.Cache] -- šžœœ˜Kšœ˜K˜K˜—Kšœ˜K˜K˜—J˜—…—* 