diff --git a/bricks/memory/SRLatch.cs b/bricks/memory/SRLatch.cs new file mode 100644 index 0000000..eb74e50 --- /dev/null +++ b/bricks/memory/SRLatch.cs @@ -0,0 +1,18 @@ +datablock fxDTSBrickData(LogicGate_SRLatch_Data : LogicGate_DFlipFlop_Data) +{ + subCategory = "Memory"; + uiName = "SR Latch"; + iconName = $LuaLogic::Path @ "icons/D FlipFlop"; + + logicUIName = "SR Latch"; + logicUIDesc = "Q becomes 0 if R is on, else 1 when S is on"; + + logicUpdate = "return function(gate) if gate.ports[1].state then gate.ports[3]:setstate(false) elseif gate.ports[2].state then gate.ports[3]:setstate(true) end end"; + + logicPortUIName[0] = "R"; + logicPortCauseUpdate[0] = true; + logicPortUIName[1] = "S"; + logicPortCauseUpdate[1] = true; + logicPortUIName[2] = "Q"; +}; +lualogic_registergatedefinition("LogicGate_SRLatch_Data"); diff --git a/scripts/brickdata.cs b/scripts/brickdata.cs index 6e2feb4..6279088 100644 --- a/scripts/brickdata.cs +++ b/scripts/brickdata.cs @@ -38,7 +38,8 @@ exec($LuaLogic::Path @ "bricks/bus/8BitDFlipFlop.cs"); //Memory exec($LuaLogic::Path @ "bricks/memory/DFlipFlop.cs"); +exec($LuaLogic::Path @ "bricks/memory/SRLatch.cs"); exec($LuaLogic::Path @ "bricks/memory/DFlipflopGridMemory2.cs"); //Special -exec($LuaLogic::Path @ "bricks/special/EventGate.cs"); \ No newline at end of file +exec($LuaLogic::Path @ "bricks/special/EventGate.cs");