Update src/disks/1h/boot/HBoot.sys

This commit is contained in:
2025-11-11 11:00:25 -05:00
parent 7aa44031ab
commit 5b2ab09b81

View File

@@ -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
end