Witajcie!

To mój pierwszy post na tym forum, także proszę o wyrozumiałość jeśli zakładając ten temat złamałem jakąś zasadę.
W każdym razie mam poważny kłopot, a sprawa jest pilna, także zwracam się z wielką prośbą o pomoc.

Mam do napisania projekt w Pascalu, który będzie wizualizował działanie sortowania bąbelkowego. Coś jak w linku poniżej:
http://www.home.umk.pl/~abak/wdimat/s/BubbleSort.html

Niestety nie wiem czemu kod, który napisałem nie działa =/
Proszę zatem o jakieś wskazówki, z góry ogromnie dziękuję!

program wizualizacjaSortowaniaBabelkowego;
uses crt, graph;

   var
     tab: array[1..10] of integer;
     i,j,zas,crl,n,t,k,y,y1,y2,y3,y4,y5,y6,y7,y8,y9,x,r :integer;

   Procedure uzupelnijTablice;
     var
       m,n,o: integer;
       tRand: array[1..100] of integer;
     Begin
     for m:=1 to 100 do
       tRand[m] := m;
     for n:=1 to 10 do
       tab[n] := tRand[random(100)];
     for o:=1 to 10 do
       writeln(tab[o]);
   End;

   Procedure rysujWykres;
    Begin
      REPEAT
        y:=y+1;
        setFillStyle(1,1);
        BAR(100,tab[1],120,720);
        setFillStyle(1,2);
      Until y=tab[1];
      REPEAT
        y1:=y1+1;
        setFillStyle(1,2);
        BAR(140,tab[2],160,720);
      Until y1=tab[2];
      REPEAT
        y2:=y2+1;
        setFillStyle(1,3);
        BAR(180,tab[3],200,720);
      Until y2=tab[3];
      REPEAT
        y3:=y3+1;
        setFillStyle(1,4);
        BAR(220,tab[4],240,720);
      Until y3=tab[4];
      REPEAT
        y4:=y4+1;
        setFillStyle(1,5);
        BAR(260,tab[5],280,720);
      Until y4=tab[5];
      REPEAT
        y5:=y5+1;
        setFillStyle(1,6);
        BAR(300,tab[6],320,720);
      Until y5=tab[6];
      REPEAT
        y6:=y6+1;
        setFillStyle(1,7);
        BAR(340,tab[7],360,720);
      Until y6=tab[7];
      REPEAT
        y7:=y7+1;
        setFillStyle(1,8);
        BAR(380,tab[8],400,720);
      Until y7=tab[8];
      REPEAT
        y8:=y8+1;
        setFillStyle(1,9);
        BAR(420,tab[9],440,720);
      Until y8=tab[9];
      REPEAT
        y9:=y9+1;
        setFillStyle(1,10);
        BAR(460,tab[10],480,720);
      Until y9=tab[10];
   End;

Begin
  detectgraph(k,t);
  initgraph(k,t, 'H:\BGI');
  SETTEXTSTYLE(2,0,2);
  setcolor(yellow);
  OUTTEXTXY(540,50,'Sortowanie babelkowe - wizualizacja');

  uzupelnijTablice;
  crl := 1;
  rysujWykres;

  while n <> 0 do
    for i:= 1 to 9 do
      if(tab[i] > tab[i+1]) then
        zas := tab[i+1];
        tab[i+1] := tab[i];
        tab[i] := zas;
        rysujWykres;
      end.
      else
        crl = 0;
      end;
    end for;
  end

  repeat until key