//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.CC\");");
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$\" stmt 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.CC 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.CC\");\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);