Advertisement
MindenCucc

[CC] BiosBreaker

May 1st, 2015
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.15 KB | None | 0 0
  1. local argv = {...}
  2.  
  3. local new = tonumber(select(string.gsub(os.version(), "[^0-9%.]+", ""))) >= 1.6
  4.  
  5. local biosenv = _G
  6.  
  7. biosenv.oldshutdown = os.shutdown
  8. biosenv.oldredirect = term.redirect
  9. biosenv.oldpe = os.pullEvent
  10.  
  11. function biosenv.bootup()
  12.   setfenv(1, _G)
  13.  
  14.   biosenv.os.pullEvent = biosenv.oldpe
  15.   biosenv.term.redirect = biosenv.term.oldredirect
  16.   biosenv.os.shutdown = biosenv.oldshutdown
  17.  
  18.   biosenv.bootup = nil
  19.   biosenv.oldpe = nil
  20.   biosenv.oldredirect = nil
  21.   biosenv.oldshutdown = nil
  22.  
  23.   --init below
  24.   local ok, fun = pcall(loadfile(argv[1]))
  25.   if ok then
  26.     pcall(fun, unpack(argv, 2))
  27.     term.setTextColor(1)
  28.     term.setBackgroundColor(32768)
  29.     term.setCursorPos(1,1)
  30.   else
  31.     print("Loading error")
  32.     print(fun)
  33.   end
  34.   term.write("Program is dead, press any key to shutdown")
  35.   coroutine.yield("key")
  36. end
  37. if new then
  38.   term.redirect = function(tar)
  39.     biosenv.oldredirect(tar)
  40.     biosenv.os.shutdown = biosenv.bootup
  41.   end
  42. else
  43.   biosenv.os.shutdown = biosenv.bootup
  44. end
  45. biosenv.os.pullEvent = function(useless) os.queueEvent("dummy") return coroutine.yield() end
  46. os.queueEvent("modem_message", 56)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement