diff --git a/modules/base/virt.lua b/modules/base/virt.lua new file mode 100644 index 0000000..2e6b040 --- /dev/null +++ b/modules/base/virt.lua @@ -0,0 +1,26 @@ +do + local fs=component.proxy(computer.bootAddress()) + local fi=fs.open("/boot.lua","rb") + local nc,ls,ne="","",{} + repeat + ls=ls..nc + nc=fs.read(fi,2048) + until nc == "" or nc == nil + fs.close(fi) + setmetatable(ne,{__index=_G}) + ne.computer = _G.computer + function ne.computer.pullSignal(n) + local et = computer.uptime()+n + while true do + local eT = {C.yield()} + if eT ~= {} then + return table.unpack(eT) + elseif computer.uptime() >= et then + break + end + end + end + local fscr=load(ls) + setfenv(ls,ne) + s("virt process",fscr) +end