//Practice your ASCII knowledge ;-)

U0 SafePutChar(U8 ch)
{
        if (CH_SPACE <= ch < 0x7F)
        {
                if (ch == '$')
                        "%02X $RED$$$$FG$ ", ch;
                else
                        "%02X $RED$%c$FG$ ", ch, ch;
        }
        else
                "%02X $RED$ $FG$ ",ch;
}






                                                <1>/* Graphics Not Rendered in HTML */

U0 ASCIIOrgan()
{
        I64 i, ch;

        for (i = 0; i < 32; i++)
        {
                SafePutChar(i);
                SafePutChar(i + 32);
                SafePutChar(i + 64);
                SafePutChar(i + 96);
                '\n';
        }

        "\nPress keys to make sounds\n"
        "and press $GREEN$<SHIFT-ESC>$FG$ to exit.\n";
        do
        {
                //We don't want echo or scan codes, so we use NULL and FALSE...
                ch = CharGet(, FALSE);
                Sound(ch - CH_ESC);
        }
        while (ch != CH_ESC && ch != CH_SHIFT_ESC);

        Sound;

        //Note the %d in the string for sprite number.
        '\n\n\n\n\n\n\n';
        Sprite(<1>, "$SP+PU,\"Click for better organ\",LM=\"#include \\\"::/Apps/Psalmody/Run\\\";\",BI=%d$");
        '\n\n\n\n\n';
}

ASCIIOrgan;