PROGRAM ScreenSaver ;

USES
   Crt,
   Graph ;

VAR
   X, Y, X1,
   Y1, I : Integer ;

{-------------------------}

PROCEDURE InitialGraph ;

VAR
   GraphDriver,
   GraphMode : Integer ;

BEGIN
   DetectGraph (GraphDriver, GraphMode) ;       {Load Graphic Driver}
   InitGraph (GraphDriver, GraphMode, 'd:\tp\bgi') ;
END ;

{-------------------------------------------}

BEGIN
   ClrScr ;                                     {Clear screen}
   Randomize ;                                  {Init randam generator}
   I := 1 ;
   InitialGraph ;
   REPEAT
      BEGIN                                     {Random Numbers for:}
         X := Random (640) ; Y := Random (480) ;{Middle Point of Circle}
         X1 := Random (16) ; Y1 := Random (50) ;{Color and Radius of Circle}
         SetColor (X1) ;
         Line (1, 1, X, Y) ;                    {Line from topleft to Middle P.}
         Circle (X, Y, Y1) ;                    {Draw Cricle}
         Delay (10) ;                           {Waiting Time}
         IF (I = 500) THEN                      {After each 500 circles}
            BEGIN
               ClearViewPort ;                  {Clear graphic screen}
               I := 0 ;                         {Begin new count}
            END ;
         I := I +1                              {Count up}
      END ;
   UNTIL KeyPressed ;                           {End with any key}
   CloseGraph ;                                 {Back to text mode}
   ClrScr ;                                     {Clear screen}
END.
