added more bus bricks
This commit is contained in:
154
bricks/bus/8BitBuffer.cs
Normal file
154
bricks/bus/8BitBuffer.cs
Normal file
@ -0,0 +1,154 @@
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitBuffer_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x8f_8i_8o_p.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Bus";
|
||||
uiName = "8 Bit Buffer";
|
||||
iconName = $LuaLogic::Path @ "icons/8 Bit Buffer";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "8 Bit Buffer";
|
||||
logicUIDesc = "8 bit buffer with clock propagate";
|
||||
|
||||
logicUpdate =
|
||||
"return function(gate) " @
|
||||
" if gate.ports[9].state then " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(gate.ports[i].state) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(true) " @
|
||||
" else " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(false) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(false) " @
|
||||
" end " @
|
||||
"end "
|
||||
;
|
||||
|
||||
numLogicPorts = 18;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "-7 0 0";
|
||||
logicPortDir[0] = 3;
|
||||
logicPortUIName[0] = "D7";
|
||||
|
||||
logicPortType[1] = 1;
|
||||
logicPortPos[1] = "-5 0 0";
|
||||
logicPortDir[1] = 3;
|
||||
logicPortUIName[1] = "D6";
|
||||
|
||||
logicPortType[2] = 1;
|
||||
logicPortPos[2] = "-3 0 0";
|
||||
logicPortDir[2] = 3;
|
||||
logicPortUIName[2] = "D5";
|
||||
|
||||
logicPortType[3] = 1;
|
||||
logicPortPos[3] = "-1 0 0";
|
||||
logicPortDir[3] = 3;
|
||||
logicPortUIName[3] = "D4";
|
||||
|
||||
logicPortType[4] = 1;
|
||||
logicPortPos[4] = "1 0 0";
|
||||
logicPortDir[4] = 3;
|
||||
logicPortUIName[4] = "D3";
|
||||
|
||||
logicPortType[5] = 1;
|
||||
logicPortPos[5] = "3 0 0";
|
||||
logicPortDir[5] = 3;
|
||||
logicPortUIName[5] = "D2";
|
||||
|
||||
logicPortType[6] = 1;
|
||||
logicPortPos[6] = "5 0 0";
|
||||
logicPortDir[6] = 3;
|
||||
logicPortUIName[6] = "D1";
|
||||
|
||||
logicPortType[7] = 1;
|
||||
logicPortPos[7] = "7 0 0";
|
||||
logicPortDir[7] = 3;
|
||||
logicPortUIName[7] = "D0";
|
||||
|
||||
logicPortType[8] = 1;
|
||||
logicPortPos[8] = "7 0 0";
|
||||
logicPortDir[8] = 2;
|
||||
logicPortCauseUpdate[8] = true;
|
||||
logicPortUIName[8] = "ClockIn";
|
||||
|
||||
logicPortType[9] = 0;
|
||||
logicPortPos[9] = "-7 0 0";
|
||||
logicPortDir[9] = 0;
|
||||
logicPortUIName[9] = "ClockOut";
|
||||
|
||||
logicPortType[10] = 0;
|
||||
logicPortPos[10] = "-7 0 0";
|
||||
logicPortDir[10] = 1;
|
||||
logicPortUIName[10] = "Q7";
|
||||
|
||||
logicPortType[11] = 0;
|
||||
logicPortPos[11] = "-5 0 0";
|
||||
logicPortDir[11] = 1;
|
||||
logicPortUIName[11] = "Q6";
|
||||
|
||||
logicPortType[12] = 0;
|
||||
logicPortPos[12] = "-3 0 0";
|
||||
logicPortDir[12] = 1;
|
||||
logicPortUIName[12] = "Q5";
|
||||
|
||||
logicPortType[13] = 0;
|
||||
logicPortPos[13] = "-1 0 0";
|
||||
logicPortDir[13] = 1;
|
||||
logicPortUIName[13] = "Q4";
|
||||
|
||||
logicPortType[14] = 0;
|
||||
logicPortPos[14] = "1 0 0";
|
||||
logicPortDir[14] = 1;
|
||||
logicPortUIName[14] = "Q3";
|
||||
|
||||
logicPortType[15] = 0;
|
||||
logicPortPos[15] = "3 0 0";
|
||||
logicPortDir[15] = 1;
|
||||
logicPortUIName[15] = "Q2";
|
||||
|
||||
logicPortType[16] = 0;
|
||||
logicPortPos[16] = "5 0 0";
|
||||
logicPortDir[16] = 1;
|
||||
logicPortUIName[16] = "Q1";
|
||||
|
||||
logicPortType[17] = 0;
|
||||
logicPortPos[17] = "7 0 0";
|
||||
logicPortDir[17] = 1;
|
||||
logicPortUIName[17] = "Q0";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitBuffer_Data");
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitBufferAL_Data : LogicGate_8BitBuffer_Data){
|
||||
uiName = "8 Bit Buffer Active Low";
|
||||
iconName = $LuaLogic::Path @ "icons/8 Bit Buffer Active Low";
|
||||
|
||||
logicUIName = "8 Bit Buffer Active Low";
|
||||
logicUIDesc = "8 bit buffer with clock propagate; clock is active low";
|
||||
|
||||
logicUpdate =
|
||||
"return function(gate) " @
|
||||
" if not gate.ports[9].state then " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(gate.ports[i].state) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(false) " @
|
||||
" else " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(false) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(true) " @
|
||||
" end " @
|
||||
"end "
|
||||
;
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitBufferAL_Data");
|
@ -1,3 +1,4 @@
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitDFlipFlop_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x8f_8i_8o_p.blb";
|
||||
@ -118,3 +119,21 @@ datablock fxDTSBrickData(LogicGate_8BitDFlipFlop_Data)
|
||||
logicPortUIName[17] = "Q0";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitDFlipFlop_Data");
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitDFlipFlopAL_Data : LogicGate_8BitDFlipFlop_Data){
|
||||
uiName = "8 Bit D FlipFlop Active Low";
|
||||
iconName = $LuaLogic::Path @ "icons/8 Bit D FlipFlop Active Low";
|
||||
|
||||
logicUIName = "8 Bit D FlipFlop Active Low";
|
||||
logicUIDesc = "8 bit d flipflop with clock propagate, clock is active low";
|
||||
|
||||
logicUpdate =
|
||||
"return function(gate) if gate.ports[9]:isfalling() then " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(gate.ports[i].state) " @
|
||||
" end " @
|
||||
"end " @
|
||||
"gate.ports[10]:setstate(gate.ports[9].state) end"
|
||||
;
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitDFlipFlopAL_Data");
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitEnabler_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/1x8f_8i_8o_p.blb";
|
||||
@ -130,3 +131,28 @@ datablock fxDTSBrickData(LogicGate_8BitEnabler_Data)
|
||||
logicPortUIName[17] = "Q0";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitEnabler_Data");
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_8BitEnablerAL_Data : LogicGate_8BitEnabler_Data){
|
||||
uiName = "8 Bit Enabler Active Low";
|
||||
iconName = $LuaLogic::Path @ "icons/8 Bit Enabler Active Low";
|
||||
|
||||
logicUIName = "8 Bit Enabler Active Low";
|
||||
logicUIDesc = "8 bit enabler with enable propagate; enable is active low";
|
||||
|
||||
logicUpdate =
|
||||
"return function(gate) " @
|
||||
" if not gate.ports[9].state then " @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(gate.ports[i].state) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(false) " @
|
||||
" elseif gate.ports[9]:isrising() then" @
|
||||
" for i = 1, 8 do " @
|
||||
" gate.ports[i+10]:setstate(false) " @
|
||||
" end " @
|
||||
" gate.ports[10]:setstate(true) " @
|
||||
" end " @
|
||||
"end"
|
||||
;
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_8BitEnablerAL_Data");
|
||||
|
269
bricks/bus/bus16.cs
Normal file
269
bricks/bus/bus16.cs
Normal file
@ -0,0 +1,269 @@
|
||||
|
||||
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 "
|
||||
;
|
||||
};
|
Reference in New Issue
Block a user