<> <> <> <> <<>> DIRECTORY AlpsBool, MCCtl; MCStateMachine: CEDAR PROGRAM IMPORTS AlpsBool, MCCtl EXPORTS MCCtl = BEGIN OPEN AlpsBool, MCCtl; StateMachine: PUBLIC PROC [table: TableOfVariables] = { mcop: Expression; CyclexAB: ARRAY [0..1] OF Expression; ResetxBA: Expression; CycleABZeroxAB: Expression; mcop _ And[table, EqualInt[table, "CyclexBA", 0, 1, 0], Not[Find[table, "nMAdCyclexBA"]], Find[table, "MCSelectedxBA"], Or[table, And[table, Not[Find[table, "MDataxBA[2]"]], Or[table, EqualInt[table, "MCmdxBA", 0, 3, 8], EqualInt[table, "MCmdxBA", 0, 3, 9], EqualInt[table, "MCmdxBA", 0, 3, 10], EqualInt[table, "MCmdxBA", 0, 3, 12]]], And[table, Find[table, "MDataxBA[2]"], Or[table, EqualInt[table, "MCmdxBA", 0, 3, 8], EqualInt[table, "MCmdxBA", 0, 3, 9]]]]]; CyclexAB[0] _ And[table, Not[Find[table, "ResetxBA"]], Xor[table, Find[table, "CyclexBA[0]"], Find[table, "CyclexBA[1]"]]]; CyclexAB[1] _ And[table, Not[Find[table, "ResetxBA"]], Not[Find[table, "CyclexBA[1]"]], mcop]; ResetxBA _ Find[table, "ResetxBA"]; CycleABZeroxAB _ EqualInt[table, "CyclexAB", 0, 1, 0]; AddOutput[table, NEW[OutputRec _ [expr: CyclexAB[0], name: "CyclexAB[0]"]]]; AddOutput[table, NEW[OutputRec _ [expr: CyclexAB[1], name: "CyclexAB[1]"]]]; AddOutput[table, NEW[OutputRec _ [expr: ResetxBA, name: "ResetxBA"]]]; AddOutput[table, NEW[OutputRec _ [expr: CycleABZeroxAB, name: "CycleABZeroxAB"]]]; }; END.