From 5b2ab09b814505de5ec4331da1f7d6075b125807 Mon Sep 17 00:00:00 2001 From: Astronand Date: Tue, 11 Nov 2025 11:00:25 -0500 Subject: [PATCH] Update src/disks/1h/boot/HBoot.sys --- src/disks/1h/boot/HBoot.sys | 85 ++++++++++++++++++++----------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/src/disks/1h/boot/HBoot.sys b/src/disks/1h/boot/HBoot.sys index 44ab623..fda45cb 100644 --- a/src/disks/1h/boot/HBoot.sys +++ b/src/disks/1h/boot/HBoot.sys @@ -1,77 +1,82 @@ -local args={...} -local apis=args[2] -local term=args[4] -local getfile=args[5] -local computer=args[7] -local timeout = computer.time()+5000 +local args = {...} +local apis = args[2] +local term = args[4] +local getfile = args[5] +local computer = args[7] +local timeout = computer.time() + 5000 term.print("HBoot V1.0.0 //\n") -local w,h = term.getSize() +local w, h = term.getSize() + local kernel = load(getfile("/boot/Hyprkrnl.sys").readAllText()) local recovery = load(getfile("/boot/util/shell").readAllText()) + local dbg = {} local entries = { - {"HyperionOS",function() kernel(args) end}, - {"HyperionOS (Debug options)",dbg} + {"HyperionOS", function() kernel(args) end}, + {"HyperionOS (Debug options)", dbg} } dbg = { - {"Back",entries}, - {"Boot HyperionOS in debug mode",function() kernel(args, true) end}, - {"Boot as shell",function() kernel(args, true, true) end}, - {"Boot in recovery",function() recovery(args) end} + {"Back", entries}, + {"Boot HyperionOS in debug mode", function() kernel(args, true) end}, + {"Boot as shell", function() kernel(args, true, true) end}, + {"Boot in recovery", function() recovery(args) end} } -local function render(table, select) +local function render(tbl, selected) term.clear() term.print("HBoot V1.0.0 //\n") - for i,v in pairs(table) do - if select=i then - term.print("- "..v[1]) + for i, v in ipairs(tbl) do + if selected == i then + term.print("- " .. v[1] .. "\n") else - term.print(" "..v[1]) + term.print(" " .. v[1] .. "\n") end end end render(entries, 1) -local exit=false +local exit = false + while not exit do - local ret={computer.getMachineEvent()} - if ret[1]=="keyPressed" then - timeout=math.huge + local ret = {computer.getMachineEvent()} + if ret[1] == "keyPressed" then + timeout = math.huge break end - if timeout<=computer.time() then - exit=true + if timeout <= computer.time() then + exit = true break end end -local cerent=entries -local cersel=1 +local cerent = entries +local cersel = 1 + if not exit then while true do - local ret={computer.getMachineEvent()} - if ret[1]="keyTyped" then - if ret[3]=="\n" then - if type(cerent[cersel][2])=="function" then + local ret = {computer.getMachineEvent()} + if ret[1] == "keyTyped" then + if ret[3] == "\n" then + if type(cerent[cersel][2]) == "function" then cerent[cersel][2]() - elseif type(cerent[cersel][2])=="table" then - cerent=cerent[cersel][2] - cersel=1 + elseif type(cerent[cersel][2]) == "table" then + cerent = cerent[cersel][2] + cersel = 1 end - elseif ret[3]=="\x1b[A" then - if cersel>1 then - cersel=cersel-1 + elseif ret[3] == "\x1b[A" then + if cersel > 1 then + cersel = cersel - 1 end - elseif ret[3]=="\x1b[B" then - if cersel<#cerent then - cersel=cersel+1 + elseif ret[3] == "\x1b[B" then + if cersel < #cerent then + cersel = cersel + 1 end end + render(cerent, cersel) end end else kernel(args) -end \ No newline at end of file +end