add terminal prints

This commit is contained in:
Redo
2022-11-09 23:48:24 -06:00
parent 794d046db8
commit d5fb2b33b7
5 changed files with 499 additions and 174 deletions

View File

@@ -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"