//9 has graphics

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







#define X                       330
#define Y                       35

F64 t0 = Beat;

U0 DrawIt(CTask *,CDC *dc)
{
        I64 i;
        F64 x, y, dt = Beat - t0;

        Sprite3(dc, X, Y, 0, <1>);
        if (Beat - t0 < 24)
        {
                if (Rand < 0.7)
                {
                        dc->color = YELLOW;
                        GrPlot(dc, X - 12, Y + 1);
                        GrPlot(dc, X - 12, Y + 2);
                        GrPlot(dc, X - 11, Y + 4);
                        GrPlot(dc, X + 10, Y + 4);
                        GrPlot(dc, X + 4,  Y + 4);
                        GrPlot(dc, X + 5,  Y + 4);
                        GrPlot(dc, X + 6,  Y + 4);
                        GrPlot(dc, X + 7,  Y + 5);
                        GrPlot(dc, X + 8,  Y + 5);
                }
                for (i = 0; i < 512; i++)
                {
                        x = 1.0 - Rand ` 3.0;
                        y = Rand;
                        x = 5.0 * Sin(pi * Sqrt(y)) * x;
                        y = 25.0 * y;
                        if (Rand * (x * x + 2.0) * Sqrt(y) < 4.0)
                        {
                                if (Rand < 0.5)
                                        dc->color = BLUE;
                                else
                                        dc->color = LTBLUE;
                        }
                        else
                                dc->color = YELLOW;
                        if (RandI16 < 0)
                                x = -x;
                        x += 150.0 * Sin(pi * dt) / (35 - y) ` 1.5;
                        GrPlot(dc, X + x, Y - y);
                }
        }
}

U0 Song()
{
        SettingsPush; //See SettingsPush
        Fs->text_attr   = BLACK << 4 + LTGRAY;
        Fs->draw_it             = &DrawIt;
        Fs->task_end_cb = &SoundTaskEndCB;
        MusicSettingsReset;
        music.tempo = 2.0;
        try
        {
                "$BG+H,BLACK$$FD+H,LTGRAY$";
                while (TRUE)
                {
                        t0 = Beat;
                        "$WHITE$God said this was a dirge.\n$FG$";
                        Play("5FqDqD4eA5CqEqEqDqDq",
                                        "Gone \0to \0sleep \0for \0the \0fi\0nal \0time.\n\0");
                        Play("5FqDqD4eA5CqEqEqDqDq",
                                        "Gone \0to \0sleep \0for \0the \0fi\0nal \0time.\n\0");
                        Play("5DqGqFeGFqFqEqE4qBq",
                                        " \0Ash \0to... \0and \0 \0dust \0to \0dust.\n\0");
                        Play("5DqGqFeGFqFqEqE4qBq",
                                        " \0Ash \0to... \0and \0 \0dust \0to \0dust.\n\0");
                }
        }
        catch
                PutExcept;
        SettingsPop;
}

Song;