/* Variablendeklaration */
  ...
var FREE;                // Status der Masse-Bewegung Loslösung der Masse
var TOUCH;               // Status der Masse-Bewegung Landen der Masse
var FIRST = false;       // Status für händische Masse-Bewegung
  ...
function setup()
  {
    ...
  }
function draw()
  {
    ...
    if (START)
      {
        ...
      }
    else
      {
        startDiagram = true;
        vyf = vyf + (-2*delta*vyf -n*(yf-l_)/m - g)*dt;      // Berechnung DGl. Feder-Masse
        yf = yf + vyf*dt;
        vyk = vyk - g*dt;                                // Berechnung DGl. Masse freier Fall
        yk = yk + vyk*dt;
        if (yk > yf)
          { //Masse nicht mit Feder verbunden: Freier Fall
            m = mf;             // nur Federmasse wirksam
            TOUCH = false;
          }
        else
          { //Schwingung
            if(TOUCH)
              { //erste Berührung Kugel-Feder
                if (yf > l_ && !FREE)
                  { // Parameterübergabe Feder -> Masse
                    FREE = true; //<>//
                    m = mf;       // Feder schwingt nur mit Federmasse
                  }
                else
                  {
                    FREE = false;
                    m = mf + mk;        // effektive Masse = Feder- + Kugelmasse
                  }
                vyk = vyf;    // Parameterübergabe Feder -> Masse
                if (!result[0]) yk = yf;  // Parameterübergabe Ort, wenn nicht von Hand bewegt
              }
            else
              {
                TOUCH = true;
                m = mf + mk;
                vyf = vyk;         // Parameterübergabe Masse -> Feder
                yf = yk;
              }
          }
      }