-- NewPadsImpl.sak -- last edited by Suzuki: 20-Jan-82 16:35:48 DIRECTORY SakuraRT: TYPE, NewPads: TYPE; NewPadsImpl: MONITOR IMPORTS SakuraRT EXPORTS NewPads = BEGIN MAIN: PROC = {SakuraRT.SIMRead["newpads.sim"]}; PadsFunc: PUBLIC PROC [Clock, Enable: SakuraRT.Handle, A, B: SakuraRT.Handle, Equal: SakuraRT.Handle] = { SakuraRT.SIMMultiConnectInit[A, 8]; {ENABLE {ABORTED => GO TO Aborted}; SakuraRT.SIMMultiConnectAssign[A, "A00", 0]; SakuraRT.SIMMultiConnectAssign[A, "A01", 1]; SakuraRT.SIMMultiConnectAssign[A, "A02", 2]; SakuraRT.SIMMultiConnectAssign[A, "A03", 3]; SakuraRT.SIMMultiConnectAssign[A, "A04", 4]; SakuraRT.SIMMultiConnectAssign[A, "A05", 5]; SakuraRT.SIMMultiConnectAssign[A, "A06", 6]; SakuraRT.SIMMultiConnectAssign[A, "A07", 7]; SakuraRT.SIMMultiConnectInit[B, 8]; SakuraRT.SIMMultiConnectAssign[B, "B00", 0]; SakuraRT.SIMMultiConnectAssign[B, "B01", 1]; SakuraRT.SIMMultiConnectAssign[B, "B02", 2]; SakuraRT.SIMMultiConnectAssign[B, "B03", 3]; SakuraRT.SIMMultiConnectAssign[B, "B04", 4]; SakuraRT.SIMMultiConnectAssign[B, "B05", 5]; SakuraRT.SIMMultiConnectAssign[B, "B06", 6]; SakuraRT.SIMMultiConnectAssign[B, "B07", 7]; SakuraRT.SIMMultiConnectInit[Enable, 2]; SakuraRT.SIMMultiConnectAssign[Enable, "AEnable", 0]; SakuraRT.SIMMultiConnectAssign[Enable, "BEnable", 1]; SakuraRT.SIMMultiConnectInit[Equal, 2]; SakuraRT.SIMMultiConnectAssign[Equal, "AEqual", 0]; SakuraRT.SIMMultiConnectAssign[Equal, "BEqual", 1]; {criticalSection1: ENTRY PROC = { NULL}; DO SakuraRT.GetNewChange[Clock]; criticalSection1[]; SakuraRT.Delay[10]; SakuraRT.SIMSet[Enable]; SakuraRT.SIMSet[A]; SakuraRT.SIMSet[B]; SakuraRT.SIMStep[]; SakuraRT.SIMGet[Equal]; SakuraRT.Delay[5] ENDLOOP}; SakuraRT.ProcessEnd[]} EXITS Aborted => SakuraRT.ProcessEnd[]}; MAIN[]; NULL END.