# Bounce — Displays a bouncing ball

        PROC bounce:
              LOCAL posX%,posY%,changeX%,changeY%,k%
              LOCAL scrx%,scry%,info%(10)
              SCREENINFO info%()
              scrx%=info%(3) :scry%=info%(4)
              posX%=1 :posY%=1
              changeX%=1 :changeY%=1
              DO
                    posX%=posX%+changeX%
                    posY%=posY%+changeY%
                    IF posX%=1 OR posX%=scrx%
                          changeX%=-changeX%
                          REM at edge ball changes direction
                          BEEP 2,600                        REM low beep
                    ENDIF
                    IF posY%=1 or posY%=scry%            REM same for y
                          changeY%=-changeY%
                          BEEP 2,200                        REM high beep
                    ENDIF
                    AT posX%,posY% :PRINT "0";
                    PAUSE 2                              REM Try changing this
                    AT posX%,posY% :PRINT " ";
                                                  REM removes old ‘0’ character
                    k%=KEY
              UNTIL k%
        ENDP