Files
BarotraumaLuaProjects/atlas_os/IOC.lua
2026-06-14 02:06:00 +03:00

40 lines
932 B
Lua

-- IOC.lua — I/O Controller (AtlasOS Terminal v2.0)
-- out[1] = display_text → Terminal
-- out[2] = display_clear → Terminal
-- out[3] = display_color → Terminal
-- out[4] = cmd_tx → CMC.in[1] (IN|command)
-- in[1] = user_input ← Terminal
-- in[2] = text_rx ← CMC.out[1] (OUT|text)
-- in[3] = clear_rx ← CMC.out[2] (1 = clear)
-- in[4] = color_rx ← CMC.out[3] (R,G,B)
local txActive = false
inp = {}
function upd()
if inp[1] ~= nil then
out[4] = "IN|" .. tostring(inp[1])
txActive = true
elseif txActive then
out[4] = ""
txActive = false
end
if inp[2] ~= nil then
local msg = tostring(inp[2])
local _, arg = msg:match("^(%w+)%|(.+)$")
if arg then out[1] = arg end
end
if inp[3] ~= nil and tonumber(inp[3]) == 1 then
out[2] = 1
end
if inp[4] ~= nil then
out[3] = tostring(inp[4])
end
table.clear(inp)
end