108 lines
2.9 KiB
Python
108 lines
2.9 KiB
Python
from fallout_functions import slowWrite
|
|
from fallout_functions import INPUT_PAUSE
|
|
from fallout_functions import TYPE_DELAY
|
|
from fallout_functions import upperInput
|
|
import curses
|
|
|
|
######################## global 'constants' ##############
|
|
|
|
ENTRY_1 = 'SET TERMINAL/INQUIRE'
|
|
|
|
ENTRY_2 = 'SET FILE/PROTECTION=OWNER:RWED ACCOUNTS.F'
|
|
|
|
ENTRY_3 = 'SET HALT RESTART/MAINT'
|
|
|
|
ENTRY_4 = 'RUN DEBUG/ACCOUNTS.F'
|
|
|
|
|
|
######################## text strings ####################
|
|
|
|
MESSAGE_1 = 'WELCOME TO ROBCO INDUSTRIES (TM) TERMLINK'
|
|
|
|
MESSAGE_2 = 'RIT-V300'
|
|
|
|
MESSAGE_3 = [
|
|
'\nInitializing Robco Industries(TM) MF Boot Agent v2.3.0\n',
|
|
'RETROS BIOS\n',
|
|
'RBIOS-4.02.08.00 52EE5.E7.E8\n',
|
|
'Copyright 2201-2203 Robco Ind.\n',
|
|
'Uppermem: 64 KB\n',
|
|
'Root (5A8)\n',
|
|
'Maintenance Mode\n\n'
|
|
]
|
|
|
|
|
|
######################## functions #######################
|
|
|
|
def runBoot(scr, hardMode):
|
|
"""
|
|
Start the boot portion of the terminal
|
|
|
|
hardMode - boolean indicating whether the user has to enter the ENTRY
|
|
constants, or if they are entered automatically
|
|
"""
|
|
curses.use_default_colors()
|
|
scr.erase()
|
|
scr.move(0, 0)
|
|
|
|
curses.noecho()
|
|
scr.scrollok(True)
|
|
|
|
slowWrite(scr, MESSAGE_1 + '\n\n')
|
|
|
|
if hardMode:
|
|
# use must enter the correct text to proceed
|
|
entry = ''
|
|
while entry.upper() != ENTRY_1.upper():
|
|
slowWrite(scr, '>')
|
|
entry = upperInput(scr)
|
|
else:
|
|
# input is entered for them
|
|
slowWrite(scr, '>')
|
|
curses.napms(INPUT_PAUSE)
|
|
slowWrite(scr, ENTRY_1 + '\n', TYPE_DELAY, True)
|
|
|
|
slowWrite(scr, '\n' + MESSAGE_2 + '\n\n')
|
|
|
|
if hardMode:
|
|
entry = ''
|
|
while entry.upper() != ENTRY_2.upper():
|
|
slowWrite(scr, '>')
|
|
entry = upperInput(scr)
|
|
while entry.upper() != ENTRY_3.upper():
|
|
slowWrite(scr, '>')
|
|
entry = upperInput(scr)
|
|
else:
|
|
slowWrite(scr, '>')
|
|
curses.napms(INPUT_PAUSE)
|
|
slowWrite(scr, ENTRY_2 + '\n', TYPE_DELAY, True)
|
|
slowWrite(scr, '>')
|
|
curses.napms(INPUT_PAUSE)
|
|
slowWrite(scr, ENTRY_3 + '\n', TYPE_DELAY, True)
|
|
|
|
for LINE in MESSAGE_3:
|
|
slowWrite(scr, LINE)
|
|
|
|
if hardMode:
|
|
entry = ''
|
|
while entry.upper() != ENTRY_4.upper():
|
|
slowWrite(scr, '>')
|
|
entry = upperInput(scr)
|
|
else:
|
|
slowWrite(scr, '>')
|
|
curses.napms(INPUT_PAUSE)
|
|
slowWrite(scr, ENTRY_4 + '\n', TYPE_DELAY, True)
|
|
|
|
curses.napms(INPUT_PAUSE)
|
|
return True
|
|
|
|
def beginBoot(hardMode):
|
|
"""
|
|
Initialize curses and start the boot process
|
|
|
|
hardMode - boolean indicating whether the user has to enter the ENTRY
|
|
constants, or if they are entered automatically
|
|
Returns true if hardMode == false or if the user entered the correct string
|
|
"""
|
|
res = curses.wrapper(runBoot, hardMode)
|
|
return res
|