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

TourPut("Press $GREEN$<F1>$FG$ for the main help index.\n"
        "\n"
        "The $GREEN$<F1>$FG$ key works both in "
        "the editor and at the command line.\n"
        "\n"
        "You can find the Demo Index on the help index.\n");
InKeyGet(SC_F1);

TourPut("Press $GREEN$<SHIFT-ESC>$FG$ to abort and exit.\n");
InCharGet(CH_SHIFT_ESC);

U0 RevealPopUpHelp(I64 scf)
{
    F64  t0;
    U8  *st, *st2;
    Bool old_key_desc;

    do
    {
        AutoComplete(ON);
        st = ScanCode2KeyName(scf);
        st2 = MStrUtil(st, SUF_REM_TRAILING);
        Free(st);
        st = MStrPrint( "If you have $GREEN$AutoComplete$FG$ on, you "
                        "can list the key commands.  This works both "
                        "in the editor and at the command line.\n"
                        "\n"
                        "You can click the links to jump to source code.\n"
                        "\n"
                        "Press and hold the $GREEN$<%s>$FG$ key.\n"
                        "Hold it for more than 1.0 seconds.\n",st2);
        Free(st2);
        TourPut(st);
        Free(st);

        old_key_desc = LBtr(&Fs->win_inhibit, WIf_SELF_KEY_DESC);
        while (kbd.scan_code & (SCF_CTRL | SCF_ALT | SCF_SHIFT) != scf)
            Sleep(1);

        t0 = tS;
        while (kbd.scan_code & (SCF_CTRL | SCF_ALT | SCF_SHIFT) == scf)
        {
            KeyScan(,, TRUE);
            if (1.0 < tS - t0 < 1.15)
                Sound(34);
            else
                Sound;
            Sleep(1);
        }
        LBEqual(&Fs->win_inhibit, WIf_SELF_KEY_DESC, old_key_desc);
        Sound;
    }
    while (tS - t0 < 1.0);
}

RevealPopUpHelp(SCF_CTRL);
RevealPopUpHelp(SCF_CTRL | SCF_SHIFT);
RevealPopUpHelp(SCF_ALT);
RevealPopUpHelp(SCF_ALT | SCF_SHIFT);
RevealPopUpHelp(SCF_CTRL | SCF_ALT);
RevealPopUpHelp(SCF_CTRL | SCF_ALT|SCF_SHIFT);