270 lines
6.3 KiB
C#
270 lines
6.3 KiB
C#
|
|
datablock fxDTSBrickData(LogicGate_16BitBuffer_Data){
|
|
brickFile = $LuaLogic::Path @ "/bricks/blb/16bitbus.blb";
|
|
category = "Logic Bricks";
|
|
subCategory = "Bus";
|
|
uiName = "16 Bit Buffer";
|
|
iconName = $LuaLogic::Path @ "icons/16 Bit Buffer";
|
|
hasPrint = 1;
|
|
printAspectRatio = "Logic";
|
|
orientationFix = 0;
|
|
|
|
isLogic = true;
|
|
isLogicGate = true;
|
|
isLogicInput = false;
|
|
|
|
logicUIName = "16 Bit Buffer";
|
|
logicUIDesc = "16 bit buffer with clock propagate";
|
|
|
|
logicUpdate =
|
|
"return function(gate) " @
|
|
" if gate.ports[33].state then " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(gate.ports[i].state) " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(true) " @
|
|
" else " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(false) " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(false) " @
|
|
" end " @
|
|
"end "
|
|
;
|
|
|
|
numLogicPorts = 34;
|
|
|
|
logicPortType[0] = 1;
|
|
logicPortPos[0] = "0 -15 0";
|
|
logicPortDir[0] = 0;
|
|
logicPortUIName[0] = "In0";
|
|
|
|
logicPortType[1] = 1;
|
|
logicPortPos[1] = "0 -13 0";
|
|
logicPortDir[1] = 0;
|
|
logicPortUIName[1] = "In1";
|
|
|
|
logicPortType[2] = 1;
|
|
logicPortPos[2] = "0 -11 0";
|
|
logicPortDir[2] = 0;
|
|
logicPortUIName[2] = "In2";
|
|
|
|
logicPortType[3] = 1;
|
|
logicPortPos[3] = "0 -9 0";
|
|
logicPortDir[3] = 0;
|
|
logicPortUIName[3] = "In3";
|
|
|
|
logicPortType[4] = 1;
|
|
logicPortPos[4] = "0 -7 0";
|
|
logicPortDir[4] = 0;
|
|
logicPortUIName[4] = "In4";
|
|
|
|
logicPortType[5] = 1;
|
|
logicPortPos[5] = "0 -5 0";
|
|
logicPortDir[5] = 0;
|
|
logicPortUIName[5] = "In5";
|
|
|
|
logicPortType[6] = 1;
|
|
logicPortPos[6] = "0 -3 0";
|
|
logicPortDir[6] = 0;
|
|
logicPortUIName[6] = "In6";
|
|
|
|
logicPortType[7] = 1;
|
|
logicPortPos[7] = "0 -1 0";
|
|
logicPortDir[7] = 0;
|
|
logicPortUIName[7] = "In7";
|
|
|
|
logicPortType[8] = 1;
|
|
logicPortPos[8] = "0 1 0";
|
|
logicPortDir[8] = 0;
|
|
logicPortUIName[8] = "In8";
|
|
|
|
logicPortType[9] = 1;
|
|
logicPortPos[9] = "0 3 0";
|
|
logicPortDir[9] = 0;
|
|
logicPortUIName[9] = "In9";
|
|
|
|
logicPortType[10] = 1;
|
|
logicPortPos[10] = "0 5 0";
|
|
logicPortDir[10] = 0;
|
|
logicPortUIName[10] = "In10";
|
|
|
|
logicPortType[11] = 1;
|
|
logicPortPos[11] = "0 7 0";
|
|
logicPortDir[11] = 0;
|
|
logicPortUIName[11] = "In11";
|
|
|
|
logicPortType[12] = 1;
|
|
logicPortPos[12] = "0 9 0";
|
|
logicPortDir[12] = 0;
|
|
logicPortUIName[12] = "In12";
|
|
|
|
logicPortType[13] = 1;
|
|
logicPortPos[13] = "0 11 0";
|
|
logicPortDir[13] = 0;
|
|
logicPortUIName[13] = "In13";
|
|
|
|
logicPortType[14] = 1;
|
|
logicPortPos[14] = "0 13 0";
|
|
logicPortDir[14] = 0;
|
|
logicPortUIName[14] = "In14";
|
|
|
|
logicPortType[15] = 1;
|
|
logicPortPos[15] = "0 15 0";
|
|
logicPortDir[15] = 0;
|
|
logicPortUIName[15] = "In15";
|
|
|
|
logicPortType[16] = 0;
|
|
logicPortPos[16] = "0 -15 0";
|
|
logicPortDir[16] = 2;
|
|
logicPortUIName[16] = "Out0";
|
|
|
|
logicPortType[17] = 0;
|
|
logicPortPos[17] = "0 -13 0";
|
|
logicPortDir[17] = 2;
|
|
logicPortUIName[17] = "Out1";
|
|
|
|
logicPortType[18] = 0;
|
|
logicPortPos[18] = "0 -11 0";
|
|
logicPortDir[18] = 2;
|
|
logicPortUIName[18] = "Out2";
|
|
|
|
logicPortType[19] = 0;
|
|
logicPortPos[19] = "0 -9 0";
|
|
logicPortDir[19] = 2;
|
|
logicPortUIName[19] = "Out3";
|
|
|
|
logicPortType[20] = 0;
|
|
logicPortPos[20] = "0 -7 0";
|
|
logicPortDir[20] = 2;
|
|
logicPortUIName[20] = "Out4";
|
|
|
|
logicPortType[21] = 0;
|
|
logicPortPos[21] = "0 -5 0";
|
|
logicPortDir[21] = 2;
|
|
logicPortUIName[21] = "Out5";
|
|
|
|
logicPortType[22] = 0;
|
|
logicPortPos[22] = "0 -3 0";
|
|
logicPortDir[22] = 2;
|
|
logicPortUIName[22] = "Out6";
|
|
|
|
logicPortType[23] = 0;
|
|
logicPortPos[23] = "0 -1 0";
|
|
logicPortDir[23] = 2;
|
|
logicPortUIName[23] = "Out7";
|
|
|
|
logicPortType[24] = 0;
|
|
logicPortPos[24] = "0 1 0";
|
|
logicPortDir[24] = 2;
|
|
logicPortUIName[24] = "Out8";
|
|
|
|
logicPortType[25] = 0;
|
|
logicPortPos[25] = "0 3 0";
|
|
logicPortDir[25] = 2;
|
|
logicPortUIName[25] = "Out9";
|
|
|
|
logicPortType[26] = 0;
|
|
logicPortPos[26] = "0 5 0";
|
|
logicPortDir[26] = 2;
|
|
logicPortUIName[26] = "Out10";
|
|
|
|
logicPortType[27] = 0;
|
|
logicPortPos[27] = "0 7 0";
|
|
logicPortDir[27] = 2;
|
|
logicPortUIName[27] = "Out11";
|
|
|
|
logicPortType[28] = 0;
|
|
logicPortPos[28] = "0 9 0";
|
|
logicPortDir[28] = 2;
|
|
logicPortUIName[28] = "Out12";
|
|
|
|
logicPortType[29] = 0;
|
|
logicPortPos[29] = "0 11 0";
|
|
logicPortDir[29] = 2;
|
|
logicPortUIName[29] = "Out13";
|
|
|
|
logicPortType[30] = 0;
|
|
logicPortPos[30] = "0 13 0";
|
|
logicPortDir[30] = 2;
|
|
logicPortUIName[30] = "Out14";
|
|
|
|
logicPortType[31] = 0;
|
|
logicPortPos[31] = "0 15 0";
|
|
logicPortDir[31] = 2;
|
|
logicPortUIName[31] = "Out15";
|
|
|
|
logicPortType[32] = 1;
|
|
logicPortPos[32] = "0 -15 0";
|
|
logicPortDir[32] = 3;
|
|
logicPortUIName[32] = "ClockIn";
|
|
logicPortCauseUpdate[32] = true;
|
|
|
|
logicPortType[33] = 0;
|
|
logicPortPos[33] = "0 15 0";
|
|
logicPortDir[33] = 1;
|
|
logicPortUIName[33] = "ClockOut";
|
|
};
|
|
|
|
datablock fxDtsBrickData(LogicGate_16BitBufferAL_Data : LogicGate_16BitBuffer_Data){
|
|
uiName = "16 Bit Buffer Active Low";
|
|
iconName = $LuaLogic::Path @ "icons/16 Bit Buffer Active Low";
|
|
|
|
logicUIName = "16 Bit Buffer Active Low";
|
|
logicUIDesc = "16 big buffer with clock propagate; clock is active low";
|
|
|
|
logicUpdate =
|
|
"return function(gate) " @
|
|
" if not gate.ports[33].state then " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(gate.ports[i].state) " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(false) " @
|
|
" else " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(false) " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(true) " @
|
|
" end " @
|
|
"end "
|
|
;
|
|
};
|
|
|
|
datablock fxDtsBrickData(LogicGate_16BitDFlipFlop_Data : LogicGate_16BitBuffer_Data){
|
|
uiName = "16 Bit D FlipFlop";
|
|
iconName = $LuaLogic::Path @ "icons/16 Bit D FlipFlop";
|
|
|
|
logicUIName = "16 Bit D FlipFlop";
|
|
logicUIDesc = "16 big D FlipFlop with clock propagate";
|
|
|
|
logicUpdate =
|
|
"return function(gate) " @
|
|
" if gate.ports[33]:isrising() then " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(gate.ports[i].state) " @
|
|
" end " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(gate.ports[33].state) " @
|
|
"end "
|
|
;
|
|
};
|
|
|
|
datablock fxDtsBrickData(LogicGate_16BitDFlipFlopAL_Data : LogicGate_16BitBuffer_Data){
|
|
uiName = "16 Bit D FlipFlop Active Low";
|
|
iconName = $LuaLogic::Path @ "icons/16 Bit D FlipFlop Active Low";
|
|
|
|
logicUIName = "16 Bit D FlipFlop Active Low";
|
|
logicUIDesc = "16 big D FlipFlop with clock propagate; clock is active low";
|
|
|
|
logicUpdate =
|
|
"return function(gate) " @
|
|
" if gate.ports[33]:isfalling() then " @
|
|
" for i = 1, 16 do " @
|
|
" gate.ports[i+16]:setstate(gate.ports[i].state) " @
|
|
" end " @
|
|
" end " @
|
|
" gate.ports[34]:setstate(gate.ports[33].state) " @
|
|
"end "
|
|
;
|
|
};
|