diff --git a/init.lua b/init.lua index 0beefd2..c28762c 100644 --- a/init.lua +++ b/init.lua @@ -2,43 +2,43 @@ local gpu = component.proxy(component.list("gpu")()) local resX, resY = gpu.getResolution() local function loadfile(file) - checkArg(1, file, "string") - local handle = component.invoke(computer.getBootAddress(), "open", file, "r") - local data = "" - repeat - local tmpdata = component.invoke(computer.getBootAddress(), "read", handle, math.huge or math.maxinteger) - data = data .. (tmpdata or "") - until not tmpdata - component.invoke(computer.getBootAddress(), "close", handle) - return assert(load(data, "=" .. file)) + checkArg(1, file, "string") + local handle = component.invoke(computer.getBootAddress(), "open", file, "r") + local data = "" + repeat + local tmpdata = component.invoke(computer.getBootAddress(), "read", handle, math.huge or math.maxinteger) + data = data .. (tmpdata or "") + until not tmpdata + component.invoke(computer.getBootAddress(), "close", handle) + return assert(load(data, "=" .. file)) end local function handleError(errorMessage) - return(errorMessage.."\n \n"..debug.traceback()) + return (errorMessage .. "\n \n" .. debug.traceback()) end function loadBoot() - local foundArchitecture = false - for _, arch in pairs(computer.getArchitectures()) do - if arch == "Lua 5.3" then - foundArchitecture = true - break - end - end + local foundArchitecture = false + for _, arch in pairs(computer.getArchitectures()) do + if arch == "Lua 5.3" then + foundArchitecture = true + break + end + end - if foundArchitecture then - local _, errorMesage = computer.setArchitecture("Lua 5.3") - if errorMessage then - error(errorMessage) - end - else - gpu.set(1, 1, "Required architecture (Lua 5.3) is not supported.") - gpu.set(1, 2, "Halting.") - while true do - computer.pullSignal() - end - end - loadfile("/halyde/kernel/boot.lua")(loadfile) + if foundArchitecture then + local _, errorMesage = computer.setArchitecture("Lua 5.3") + if errorMessage then + error(errorMessage) + end + else + gpu.set(1, 1, "Required architecture (Lua 5.3) is not supported.") + gpu.set(1, 2, "Halting.") + while true do + computer.pullSignal() + end + end + loadfile("/halyde/kernel/boot.lua")(loadfile) end gpu.setBackground(0x000000) @@ -50,39 +50,41 @@ local beep = computer.beep local result, reason = xpcall(loadBoot, handleError) if not result then - local bgColor - if gpu.getDepth() == 1 then - bgColor = 0x000000 - else - bgColor = 0x000080 - end - gpu.setBackground(bgColor) - gpu.fill(1, 1, resX, resY, " ") - local function render() - gpu.setForeground(0xFFFFFF) - local i = 2 - reason = "A fatal error has occurred.\nHalyde cannot continue.\n \n" .. tostring(reason or "unknown error"):gsub("\t", " ") - for line in string.gmatch(reason, "([^\n]*)\n?") do - gpu.set(2, i, line) - i = i + 1 - end - gpu.set(1, resY - 1, string.rep("─", resX)) - gpu.setForeground(bgColor) - gpu.setBackground(0xFFFFFF) - gpu.set(2, resY, "🠅 🠄 🠇 🠆") - gpu.setForeground(0xFFFFFF) - gpu.setBackground(bgColor) - gpu.set(4, resY, " / ") - gpu.set(9, resY, " / ") - gpu.set(14, resY, " / ") - gpu.set(20, resY, "Scroll" .. string.rep(" ", resX - 21)) - end - render() - beep(440, 0.2) - beep(465, 0.2) - beep(440, 0.2) - beep(370, 0.5) - while true do -- TODO: Make this scrollable - pullSignal() - end + local bgColor + if gpu.getDepth() == 1 then + bgColor = 0x000000 + else + bgColor = 0x000080 + end + gpu.setBackground(bgColor) + gpu.fill(1, 1, resX, resY, " ") + local function render() + gpu.setForeground(0xFFFFFF) + local i = 2 + reason = "A fatal error has occurred.\nHalyde cannot continue.\n \n" + .. tostring(reason or "unknown error"):gsub("\t", " ") + for line in string.gmatch(reason, "([^\n]*)\n?") do + gpu.set(2, i, line) + i = i + 1 + end + gpu.fill(1, resY - 1, resX, 1, "─") + gpu.fill(1, resY, resX, 1, " ") + gpu.setForeground(bgColor) + gpu.setBackground(0xFFFFFF) + gpu.set(2, resY, "🠅 🠄 🠇 🠆") + gpu.setForeground(0xFFFFFF) + gpu.setBackground(bgColor) + gpu.set(4, resY, " / ") + gpu.set(9, resY, " / ") + gpu.set(14, resY, " / ") + gpu.set(19, resY, " Scroll" .. string.rep(" ", resX - 21)) + end + render() + beep(440, 0.2) + beep(465, 0.2) + beep(440, 0.2) + beep(370, 0.5) + while true do -- TODO: Make this scrollable + pullSignal() + end end