//Puts the cursor at the bottom.
Message(MESSAGE_KEY_DOWN, 0, SC_CURSOR_DOWN | SCF_CTRL);
"\n";

TourPut(    "Now, we're going to demonstrate how to work "
            "with programs.  We'll change to the "
            "$GREEN$/Demo/Games$FG$ directory.\n\n"
            "Note that directories are specified with "
            "a forward slash, not a backslash.  "
            "Drives can be specified in a $GREEN$Cd()$FG$ command "
            "and the boot drive is specified with \"$GREEN$::$FG$\".\n\n"
            "$GREEN$<ENTER>$FG$ to complete the command.\n");

InPrint(25, "Cd(\"::/Demo/Games\");Dir;");
InGetStr("\n");


TourPut(    "Now, we're going to edit a file.  Normally, "
            "you'll probably left-click on a directory "
            "listing to edit a file, but we're going to "
            "type it on the command line.\n\n"
            "$GREEN$<ENTER>$FG$ to complete the command.\n");

InPrint(25, "Ed(\"CastleFrankenstein.ZC\");");
InGetStr("\n");
Message(MESSAGE_KEY_DOWN_UP, 0, SC_CURSOR_UP | SCF_CTRL);

Sleep(1000);
Message(MESSAGE_KEY_DOWN_UP, 0, SC_CURSOR_DOWN | SCF_CTRL);
TourPut(    "This is a first-person-shooter.\n\n"
            "There is no \"$GREEN$main()$FG$\" function in ZealOS "
            "programs.  Any program statements outside "
            "functions get executed when you $GREEN$#include$FG$ "
            "them at the command line.\n\n"
            "The \"$GREEN$CastleFrankenstein;$FG$\" statement at the "
            "bottom will run the program when we "
            "$GREEN$#include$FG$ it.\n",TRUE);

TourPut("Press $GREEN$<SHIFT-ESC>$FG$ to abort the editor.\n");

InCharGet(CH_ESC,CH_SHIFT_ESC);


TourPut("Now, run the CastleFrankenstein.ZC program.  Press $GREEN$<ENTER>$FG$.\n");

InPrint(25, "#include \"CastleFrankenstein\";");
InGetStr("\n");
TourPut(    "Move around with cursor keys and press $GREEN$<SHIFT-ESC>$FG$ when you "
            "are done.\n");
InUntilChar(CH_ESC, CH_SHIFT_ESC);

TourPut(    "The program is still in memory and we can start it again by typing "
            "\"$GREEN$CastleFrankenstein;$FG$\".\n\n"
            "Press $GREEN$<ENTER>$FG$ at the command line to run it again.\n");

InPrint(25, "CastleFrankenstein;");
InGetStr("\n");
TourPut(    "Move around with cursor keys and press $GREEN$<SHIFT-ESC>$FG$ when you "
            "are done.\n");
InUntilChar(CH_ESC, CH_SHIFT_ESC);

TourPut(    "$GREEN$<CTRL-ALT-a>$FG$\tExtended ASCII.\n"
            "$GREEN$<CTRL-ALT-c>$FG$\tBreak(interrupt) program.\n"
            "$GREEN$<CTRL-ALT-m>$FG$\tMutes sound.\n"
            "$GREEN$<CTRL-ALT-n>$FG$\tNext tasks.\n"
            "$GREEN$<CTRL-ALT-t>$FG$\tTerminal window.\n"
            "$GREEN$<CTRL-ALT-x>$FG$\tKill task (window).\n", TRUE);

InPrint(50, "Ed(\"CastleFrankenstein.ZC\");\n");

TourPut("Press $GREEN$<F5>$FG$ in the editor to run the file being edited.\n");

InKeyGet(SC_F5);
Sleep(1000);
CTask *task = sys_focus_task;

TourPut(    "Press $GREEN$<SHIFT-ESC>$FG$ to abort the application.  "
            "Then, press $GREEN$<CTRL-ALT-x>$FG$ to kill the task.\n");
WinToTop(task);
DeathWait(&task);

TourPut("Press $GREEN$<SHIFT-ESC>$FG$ to abort the editor.\n");

InUntilChar(CH_ESC, CH_SHIFT_ESC);

TourPut(    "Explore the $RED$DemoIndex$FG$.  "
            "You'll find it on your menu.  It's arranged by difficulty.  "
            "Hit $GREEN$<SPACE>$FG$ on a demo index listing "
            "and $GREEN$<F5>$FG$ to run from the editor.\n", TRUE);