local bootOptions = {
  { prompt = 'Default Shell', file = '/sys/boot/default.boot' },
  { prompt = 'Opus'         , file = '/sys/boot/multishell.boot' },
--  { prompt = 'TLCO'         , file = '/sys/boot/tlco.boot' },
}
local bootOption = 2

local function startupMenu()
  while true do
    term.clear()
    term.setCursorPos(1, 1)
    print('Select startup mode')
    print()
    for k,option in pairs(bootOptions) do
      print(k .. ' : ' .. option.prompt)
    end
    print('')
    term.write('> ')
    local ch = tonumber(read())
    if ch and bootOptions[ch] then
      return ch
    end
  end
  term.clear()
  term.setCursorPos(1, 1)
end

term.clear()
term.setCursorPos(1, 1)
print('Starting OS')
print()
print('Press any key for menu')
local timerId = os.startTimer(1.5)
while true do
  local e, id = os.pullEvent()
  if e == 'timer' and id == timerId then
    break
  end
  if e == 'char' then
    bootOption = startupMenu()
    break
  end
end

os.run(getfenv(1), bootOptions[bootOption].file)