add terminal prints
This commit is contained in:
@@ -2,33 +2,33 @@
|
||||
local function getBit(gate, val)
|
||||
local gatedata = Gate.getdata(gate)
|
||||
|
||||
--print("get bit", val)
|
||||
if gatedata.listenState=="wait" then
|
||||
if val==1 then
|
||||
gatedata.listenState = "getbits"
|
||||
gatedata.bitsReceived = 0
|
||||
--print("", "state = listen")
|
||||
end
|
||||
elseif gatedata.listenState=="getbits" then
|
||||
gatedata.valReceived = gatedata.valReceived + math.pow(2, textbrick2_bitsNeeded-1-gatedata.bitsReceived)*val
|
||||
gatedata.bitsReceived = gatedata.bitsReceived+1
|
||||
|
||||
--print("", "append", gatedata.bitsReceived-1, val)
|
||||
|
||||
if gatedata.bitsReceived==textbrick2_bitsNeeded then
|
||||
|
||||
gatedata.listenState = "terminate"
|
||||
end
|
||||
elseif gatedata.listenState=="terminate" then
|
||||
if val==1 then
|
||||
--print("", "terminate")
|
||||
|
||||
local printid = gatedata.valReceived
|
||||
local printname = textbrick2_idxToPrint[printid]
|
||||
|
||||
Gate.cb(gate, printname)
|
||||
|
||||
--print("", "set print", string.format("%02x", printid), printname)
|
||||
local v = gatedata.valReceived
|
||||
local iscolor = math.floor(v/512)==1 -- first bit
|
||||
if iscolor then
|
||||
local printdomain = (math.floor(v/128)%2)==1 and "terminal" or "terminalInv" -- 8th lowest bit
|
||||
local colorid = v % 64 -- last 6 bits
|
||||
gatedata.printdomain = printdomain
|
||||
gatedata.colorid = colorid
|
||||
else
|
||||
local printid = v % 256 -- last 8 bits
|
||||
local printname = textbrick2_idxToPrint[printid] or "space"
|
||||
gatedata.printname = printname
|
||||
end
|
||||
Gate.cb(gate, (gatedata.colorid or -1).." "..(gatedata.printdomain or "terminal").." "..(gatedata.printname or "_"))
|
||||
end
|
||||
|
||||
gatedata.listenState = "wait"
|
||||
|
||||
Reference in New Issue
Block a user