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