Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

GEL

.PAS
Скачиваний:
2
Добавлен:
26.05.2014
Размер:
43 Кб
Скачать
program gel;   {  Їа®Ја ¬¬  § «ЁўЄЁ ЈҐ«п  }
uses
crt,dos;
label ss;

const
Shag=0.0124;
Shag1=0.0062;

type
Koord=record
Xbeg, zasl, Xend, Ybeg, Yend : real;
end;


var
c,d,e:word;
a,b,u, f,l,Place , Lim,R00,R01,R08:byte  ;
smeX, smeY:real;

k:byte;
FlPr,number,r,Mash,Mash1:integer;
Sp,Sp1, { NumberKomm, } Sp0:byte;

ttime:byte;                      { ўаҐ¬п б ¬®¬Ґ­в  а §¬ҐиЁў ­Ёп ЈҐ«п  }
Time_Zal:integer;                { а ббзЁв ­­®Ґ ўаҐ¬п ®¤­®Ј® Їа®е®¤  § «ЁўЄЁ }
Temp:byte;                       { ⥬ЇҐа вга  ®Єаг¦ о饣® ў®§¤ге       }
Start_Step: integer;             { бЄ®«мЄ® и Ј®ў а §Ј®­  ®бв «®бм      }
Start_Time:integer ;              { ЇҐаҐ¬Ґ­­ п ¤«п а §Ј®­               }
NumberPoddon:byte;                { ­®¬Ґа Ї®¤¤®­ , ­  Є®в®ал© § «Ёў Ґ¬ }
NumberMax:integer;                { Є®«ЁзҐбвў® Є®¬¬гв в®а®ў ­  Ї®¤¤®­Ґ   }
oll_full:byte;                   { Є®«ЁзҐбвў® Ї®«­®бвмо § «Ёвле Є®¬¬гв в®а®ў ­  Ї®¤¤®­Ґ }
Time_Gel : word;                 { Є®«ЁзҐбвў® Їа®е®¤®ў  § «ЁўЄЁ ЈҐ«п          }
KoordYPlace, KoordXPlace : real; { ᬥ饭ЁҐ Ї®¤¤®­  ®в­®бЁвҐ«м­® ­ з «  Є®®а¤Ё­ в }
massiv1:file of integer;         { д ©« б Є®«ЁзҐбвў®¬ Є®®а¤Ё­ в  }
massiv:file of real;             { д ©« б Є®®а¤Ё­ в ¬Ё           }
KoordX,KoordY:real;              {   Є®®а¤Ё­ вл ў ­ бв®п饥 ўаҐ¬п  }
Mass1 : Array [1..1000] of Koord;    { ¬ ббЁў Є®®а¤Ё­ в   }
err:byte;                       { ЇаЁ§­ Є ­ ¦ вЁп Є­®ЇЄЁ Ћ‘’ ў® ўаҐ¬п ¤ўЁ¦Ґ­Ёп }
Speed: Array [0..9] of byte;    { бЄ®а®бвм § «ЁўЄЁ Є®¬¬гв в®а   }
flag_stop:byte;                 {  ЇаЁ§­ Є ­ ¦ вЁп Є­®ЇЄЁ бв®Ї  }
flag_ost:byte;                  {  ЇаЁ§­ Є ­ ¦ вЁп Є­®ЇЄЁ ®бв ­®ўЄ   }
flag_pusk:byte;                 {  ЇаЁ§­ Є ­ ¦ вЁп Є­®ЇЄЁ ЇгбЄ  }
flag_prod:byte;                 {  ЇаЁ§­ Є ­ ¦ вЁп Є­®ЇЄЁ Їа®¤®«¦Ґ­ЁҐ  }
avt:byte;                       { ЎЁв ᢥ⮤Ё®¤   ўв®¬ вЁзҐбЄ®© а Ў®вл }
man:byte;                       { ЎЁв ᢥ⮤Ё®¤  агз­®© а Ў®вл    }
poddon:byte;                    { ­®¬Ґа Ї®¤¤®­   }
podd:byte;                      { ЎЁв ᢥ⮤Ё®¤  Ї®¤¤®­ }
litr:byte;                      { ЎЁв ᢥ⮤Ё®¤  «Ёва  }
litr_bottl:byte;                { ®Ўкс¬ Ўгвл«ЄЁ   }
OutLitr:byte;                   { ЇҐаҐ¬Ґ­­ п ¤«п ўлў®¤  ®Ўкс¬  Ўгвл«ЄЁ  }
new_bottl:word;                 { ¬ ЄбЁ¬ «м­®Ґ Є®«ЁзҐбвў® § «Ёў Ґ¬ле Є®¬¬гв в®а®ў }
ostatok: word;                  { Є®«ЁзҐбвў® ЈҐ«п ў Ўгвл«ЄҐ   }
Led_ostatok:byte;               { ЎЁв ᢥ⮤Ё®¤  бЄ®«мЄ® ®бв «®бм  }
Led_ready: byte;                { ЎЁв ᢥ⮤Ё®¤  Ј®в®ў }
h, min , s , ms , time: word;   { ЇҐаҐ¬Ґ­­лҐ ўаҐ¬Ґ­Ё   }
Led_time:byte;                  { ЎЁв ᢥ⮤Ё®¤  ўаҐ¬п    }




{************************************************************************}
{  з⥭ЁҐ  д ©«  б ¤ЁбЄ                                                  }
procedure Read_File;

begin

{  ®Ў­г«Ґ­ЁҐ ¬ ббЁў  Є®®а¤Ё­ в  }
  for r:=1 to 1000 do
     begin
         Mass1[r].Xbeg:=0;
         Mass1[r].Ybeg:=0;
         Mass1[r].Xend:=0;
         Mass1[r].Yend:=0;
         Mass1[r].zasl:=0;
     end;


     number:=1;
  assign (Massiv1, 'a:\tp\1gel.jkl' );
  reset(massiv1);
  read(massiv1,numberMax);
  close(massiv1);


  assign (Massiv,'a:\TP\gel.jkl');
  reset(massiv);
     read(massiv,smeX);
     read(massiv,smeY);

  for r:=1 to numberMax do
     begin
          read(massiv,Mass1[r].Xbeg);
          read(massiv,Mass1[r].Ybeg);
          read(massiv,Mass1[r].Xend);
          read(massiv,Mass1[r].Yend);
          read(massiv,Mass1[r].zasl);
     end;


  close(massiv);
   {§¤Ґбм бзЁвлў овбп ¤ ­­лҐ б ¤ЁбЄ }


 end;
 {***********************************************************************}

 {***********************************************************************}
 procedure tormoz;
 begin
    {  ЇаЁЎл«Ё ­  в®зЄг , в®а¬®§Ё¬ ¤ўЁЈ вҐ«п¬Ё }
                     {    ўЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }
                     Port[$301]:=19+128;
                     Port[$300]:=a;
                     Port[$301]:=3+128; {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
                     Port[$301]:=19+128;

                     Port[$301]:=20+128;
                     Port[$300]:=b;
                     Port[$301]:=4+128; {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
                     Port[$301]:=20+128;

                     {     § ¤Ґа¦Є  ­  в®а¬®¦Ґ­ЁҐ  ¤ўЁЈ вҐ«Ґ¬   }
                     Delay(25);
                     {    ўлЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }
                     Port[$301]:=19+128;
                     Port[$300]:=0;
                     Port[$301]:=3+128; {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
                     Port[$301]:=19+128;

                     Port[$301]:=20+128;
                     Port[$300]:=0;
                     Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
                     Port[$301]:=20+128;


                     {   ®бв ­®ўЁ«Ёбм ­  в®зЄҐ   }

                     {  ўлЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
                     Port[$301]:=153;
                     Port[$300]:=1;
                     Port[$301]:=137;
                     Port[$301]:=153;

                     { 㤥ঠ­ЁҐ ­  в®зЄҐ б Ї®¬®ймо ¤ўЁЈ вҐ«Ґ©   }
                     {    ўЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }
                     Port[$301]:=19+128;
                     Port[$300]:=a;
                     Port[$301]:=3+128; {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
                     Port[$301]:=19+128;

                     Port[$301]:=20+128;
                     Port[$300]:=b;
                     Port[$301]:=4+128; {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
                     Port[$301]:=20+128;
                     delay(100);
   end;

{*********************************************************************}
               {  ўлў®¤ бЁЈ­ «®ў гЇа ў«Ґ­Ёп и Ј®ўл¬Ё ¤ўЁЈ вҐ«п¬Ё    }
 procedure  V_UP;
        begin
       if b=1 then b:=3
        else  if b=3 then b:=2
            else if b=2 then b:=6
                else if b=6 then b:=4
                    else  if b=4 then b:=12
                        else if b=12 then b:=8
                            else if b=8 then b:=24
                                else if b=24 then b:=16
                                     else if b=16 then b:=48
                                         else  if b=48 then b:=32
                                             else if b=32 then b:=33
                                                 else if b=33 then b:=1;
       end;
 procedure      V_DOWN;
      begin
       if b=1 then b:=33
        else  if b=33 then b:=32
            else if b=32 then b:=48
                else if b=48 then b:=16
                    else  if b=16 then b:=24
                        else if b=24 then b:=8
                            else if b=8 then b:=12
                                else if b=12 then b:=4
                                     else if b=4 then b:=6
                                         else  if b=6 then b:=2
                                             else if b=2 then b:=3
                                                 else if b=3 then b:=1;

        end;
 procedure   Rig_ht;
     begin
     if a=1 then a:=3
        else  if a=3 then a:=2
            else if a=2 then a:=6
                else if a=6 then a:=4
                    else  if a=4 then a:=12
                        else if a=12 then a:=8
                            else if a=8 then a:=9
                                else if a=9 then a:=1;
        end;
 procedure   Le_ft;
       begin
     if a=1 then a:=9
        else  if a=9 then a:=8
            else if a=8 then a:=12
                else if a=12 then a:=4
                    else  if a=4 then a:=6
                        else if a=6 then a:=2
                            else if a=2 then a:=3
                                else if a=3 then a:=1;
        end;
{***************************************************************************}


{***************************************************************************}
{      ¤ўЁ¦Ґ­ЁҐ ­  ®¤Ё­ и Ј                                                 }
       procedure Step;
       begin

case k of
     8: begin
            V_UP;
            KoordY:=KoordY+Shag;
        end;
     2: begin
            V_DOWN;
            KoordY:=KoordY-Shag;
        end;
     4: begin
            Le_ft;
            KoordX:=KoordX-Shag;
            end;
     1: begin
            Rig_ht;
            KoordX:=KoordX+Shag;
        end;
   128: begin
            V_UP;
            Rig_ht;
            KoordY:=KoordY+Shag;
            KoordX:=KoordX+Shag;
        end;
    32: begin
            V_DOWN;
            Le_ft;
            KoordY:=KoordY-Shag;
            KoordX:=Koordx-Shag;
        end;
    64: begin
            V_UP;
            Le_ft;
            KoordY:=KoordY+Shag;
            KoordX:=KoordX-Shag;
         end;
    16: begin
            V_DOWN;
            Rig_ht;
            KoordY:=KoordY-Shag;
            KoordX:=KoordX+Shag;
        end;
 end;
           {    ўЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }
 Port[$301]:=19+128;
 Port[$300]:=a;
 Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
 port[$301]:=19+128;

 Port[$301]:=20+128;
 Port[$300]:=b;
 Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
 port[$301]:=20+128;
            {     § ¤Ґа¦Є  ­  ўа йҐ­ЁҐ ¤ўЁЈ вҐ«п   }
            { а §Ј®­ ¤ўЁЈ вҐ«п ў ­ з «Ґ ¤ўЁ¦Ґ­Ёп }
            if Start_Step<>1 then
            begin
                  Start_Step:=Start_Step - 1;
                  delay(Start_Step);
            end;


            Delay(1);
           {    ўлЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }

 Port[$301]:=19+128;
 Port[$300]:=0;
 Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
 port[$301]:=19+128;

 Port[$301]:=20+128;
 Port[$300]:=0;
 Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
 port[$301]:=20+128;


      {   Їа®ўҐаЄ  ­ ¦ вЁп Є­®Ї®ЄЁ Ћ‘’   }
 Port[$301]:=152;
 Port[$301]:=136;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
 R08:=Port[$300];
 Port[$301]:=152;
 if (( R08 and 4 ) = 4 ) then
 begin
     err:=4;
     exit;
 end;



 end;
{***************************************************************************}


 {************************************************************************}
 {        Ї®¤Їа®Ја ¬¬  ў®§ўа йҐ­Ёп ў в®зЄг 0,0                           }
 procedure GOTO_00;
 begin
       Start_Step:=Start_Time; {  гбв ­®ўЄ  и Ј®ў ¤«п а §®­  }
      {     ў®§ўа в ў в®зЄг 0,0  }
writeln('goto00');
 Port[$301]:=144;
 Port[$301]:=128;       {  бзЁвлў Ґ¬  ¤ взЁЄЁ Xmin Ё Ymin   }
 R00:=Port[$300];
 Port[$301]:=144;
 Repeat
      case ( R00 and 3 ) of
          1: begin
             k:=2;

             Step;     {   § ¬­Є­гв в®«мЄ® ¤ взЁЄ X  }
             end;
          2: begin
             k:=4;

             Step;     {   § ¬­Є­гв в®«мЄ® ¤ взЁЄ Y  }
             end;
          0: begin
             k:=32;
             Step;     {   ­Ё ®¤Ё­ ¤ взЁЄ ­Ґ § ¬­Є­гв   }
             end;
      end;

 Port[$301]:=16+128;
 Port[$301]:=128;       {  бзЁвлў Ґ¬  ¤ взЁЄЁ Xmin Ё Ymin   }
 R00:=Port[$300];
 Port[$301]:=16+128;

until ( R00 and 3 ) =3;
KoordX:=0;              { ®Ў­г«Ґ­ЁҐ Є®®а¤Ё­ в }
KoordY:=0;


          Port[$301]:=19+128;
          Port[$300]:=0;
          Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
          Port[$301]:=19+128;

          Port[$301]:=20+128;
          Port[$300]:=0;
          Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
          Port[$301]:=20+128;

end;

{*********************************************************************}
 procedure CUT(Xn,Yn,Xk,Yk:real);
 var
 Napr:byte;
 Ugol:real;
 tt:word;
 Nstep:LongInt;

 begin
 Start_Step:=Start_Time; {  гбв ­®ўЄ  и Ј®ў ¤«п а §®­  }
 {  ®ЇаҐ¤Ґ«Ґ­ЁҐ ®б­®ў­®Ј® ­ Їа ў«Ґ­Ёп ¤ўЁ¦Ґ­Ёп   }
 if abs(Xk-Xn) >= abs(Yk-Yn) then
 {  ®б­®ў­®Ґ ¤ўЁ¦Ґ­ЁҐ Ї® ®бЁ X  }
 if Xk >= Xn then Napr:=1 else Napr:=4
 else     {  ®б­®ў­®Ґ ­ Їа ў«Ґ­ЁҐ ¤ўЁ¦Ґ­Ёп Ї® ®бЁ Y  }
   if Yk >= Yn then Napr:=8 else Napr:=2;

   case Napr of
   1: begin {  ­ Їа ў«Ґ­ЁҐ ¤ўЁ¦Ґ­Ёп Ї® ®бЁ +X }
      if Yk >= Yn then   { ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ +X +Y  }
      begin
           Ugol:=(Yk-Yn)/(Xk-Xn);
           Nstep:= Trunc((Xk-Xn)/ Shag );
           for tt:=1 to Nstep do
           begin
                if ((KoordY+Shag)-(Yn+(KoordX-Xn+Shag)*Ugol))<= Shag1 then
                begin
                     k:=128;
                     Step;
                     if err=4 then exit;
                end
                else
                begin
                     k:=1;
                     Step;
                     if err=4 then exit;
                end;
            end ;      {  For tt }
        end
        else       {  ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ +X -Y  }
        begin
        Ugol:=(Yk-Yn)/(Xk-Xn);
        Nstep:= trunc((Xk-Xn)/ Shag);
        for tt:=1 to Nstep do
        begin
             if ((Yn+(KoordX-Xn+Shag)*Ugol) - (KoordY-Shag))<= Shag1 then
             begin
                  k:=16;
                  Step;
                  if err=4 then exit;
             end
             else
             begin
                  k:=1;
                  Step;
                    if err=4 then exit;
             end ;   {  if  }
        end ;  {  for tt  }
        end ;   {  else  }
    end;   {   case   1  }

   4: begin {  ­ Їа ў«Ґ­ЁҐ ¤ўЁ¦Ґ­Ёп Ї® ®бЁ -X }
           if Yk >= Yn then   { ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ -X +Y  }
           begin
                Ugol:=(Yk-Yn)/(Xn-Xk);
                Nstep:= Trunc((Xn-Xk)/ Shag );
                for tt:=1 to Nstep do
                begin
                     if ((KoordY+Shag)-(Yn+(Xn-KoordX-Shag)*Ugol))<= Shag1
                     then
                     begin
                          k:=64;
                          Step;
                          if err=4 then exit;
                     end
                     else
                     begin
                           k:=4;
                           Step;
                           if err=4 then exit;
                     end ;
                  end ;    {   for tt }
            end
            else       {  ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ -X -Y  }
            begin
                 Ugol:=(Yn-Yk)/(Xn-Xk);
                 Nstep:= trunc((Xn-Xk)/ Shag);
                 for tt:=1 to Nstep do
                 begin
                      if ((Yn-(Xn-KoordX+Shag)*Ugol) - (KoordY-Shag))<= Shag1
                      then
                      begin
                           k:=32;
                           Step;
                           if err=4 then exit;
                      end
                      else
                      begin
                           k:=4;
                           Step;
                           if err=4 then exit;
                      end;    {  if  }
                 end ; { for tt }
             end;   {  else  }
      end;     {  case 4  }
  8: begin {  ­ Їа ў«Ґ­ЁҐ ¤ўЁ¦Ґ­Ёп Ї® ®бЁ +Y }
             if Xk >= Xn then   { ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ +X +Y  }
             begin
                  Ugol:=(Xk-Xn)/(Yk-Yn);
                  Nstep:= Trunc((Yk-Yn)/ Shag );
                  for tt:=1 to Nstep do
                  begin
                       if ((KoordX+Shag)-(Xn+(KoordY-Yn+Shag)*Ugol))<= Shag1
                       then
                       begin
                            k:=128;
                            Step;
                            if err=4 then exit;
                       end
                       else
                       begin
                            k:=8;
                            Step;
                            if err=4 then exit;
                       end;
                  end;
             end
             else       {  ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ  +Y  - X }
             begin
                  Ugol:=(Xn-Xk)/(Yk-Yn);
                  Nstep:= trunc((Yk-Yn)/ Shag);
                  for tt:=1 to Nstep do
                  begin
                       if ((Xn-(KoordY-Yn+Shag)*Ugol) - (KoordX-Shag))<= Shag1
                       then
                       begin
                            k:=64;
                            Step;
                            if err=4 then exit;
                       end
                       else
                       begin
                            k:=8;
                            Step;
                            if err=4 then exit;
                       end ;
                  end;
             end ;
     end;
  2: begin {  ­ Їа ў«Ґ­ЁҐ ¤ўЁ¦Ґ­Ёп Ї® ®бЁ -Y }
             if Xk >= Xn then   { ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ  -Y +X   }
             begin
                  Ugol:=(Xk-Xn)/(Yn-Yk);
                  Nstep:= Trunc((Yn-Yk)/ Shag );
                  for tt:=1 to Nstep do
                  begin
                       if ((KoordX+Shag)-(Xn+(Yn-KoordY+Shag)*Ugol)) <= Shag1
                       then
                       begin
                            k:=16;
                            Step;
                            if err=4 then exit;
                       end
                       else
                       begin
                            k:=2;
                            Step;
                            if err=4 then exit;
                       end ;  {   if }
                  end;  { for tt }
             end
             else       {  ­ Їа ў«Ґ­ЁҐ Ї® ®бЁ -Y -X  }
             begin
                  Ugol:=(Xn-Xk)/(Yn-Yk);
                  Nstep:= trunc((Yn-Yk)/ Shag);
                  for tt:=1 to Nstep do
                  begin
                       if ((Xn-(Yn-KoordY+Shag)*Ugol) - (KoordX-Shag))<= Shag1
                       then
                       begin
                            k:=32;
                            Step;
                            if err=4 then exit;
                       end
                       else
                       begin
                            k:=2;
                            Step;
                            if err=4 then exit;
                       end;
                  end;
             end ;
end;
end;
end;    {  Є®­Ґж Ї®¤Їа®Ја ¬¬л  }
 {***********************************************************************}

 {***********************************************************************}
 {        ўлў®¤ ­  Ё­¤ЁЄ в®а Є®«ЁзҐбвў  Ё«Ё ­®¬Ґа  Є®¬¬гв в®а            }
 procedure OutNumber(NumberKomm:Word);
var
M2,M1,M0,M21:byte;
begin
    M2:=NumberKomm div 100;
    M1:=(NumberKomm - M2*100) div 10;
    M0:=NumberKomm - M2*100 -M1*10;
    M21:=(M1 shl 4 ) + M0;
     Port[$300]:= M21;
     Port[$301]:=150;
     Port[$301]:=134;
     Port[$301]:=150;
     Port[$300]:=M2;
     Port[$301]:=151;
     Port[$301]:=135;
     Port[$301]:=151;
 end;
 {**************************************************************************}
 {***********************************************************************}
 {       ўлў®¤ ­  Ё­¤ЁЄ в®а ⥪г饣® ўаҐ¬Ґ­Ё § «ЁўЄЁ ЈҐ«п               }
 procedure OutSpeed(ps:byte);
 begin
 Port[$301]:=149;
 Port[$300]:=ps;
 delay(1);
 Port[$301]:=133;
 Port[$301]:=149;
 end;

 
{*************************************************************************}
{      Їа®Ја ¬¬  § ¦ЁЈ ­Ёп ᢥ⮤Ё®¤®ў                                     }
procedure Led;
begin

Port[$301]:=146;
Port[$300]:=avt+man+podd+litr+Led_ready+Led_ostatok+Led_time;
delay(1);
Port[$301]:=130;
Port[$301]:=146;
if  Led_ready =128 then
    begin
          Port[$301]:=28+128;
          Port[$300]:=14;
          Port[$301]:=12+128;
          Port[$301]:=28+128;
     end;


end;



{*************************************************************************}
procedure Zalivka;
                    { а бзҐв ўаҐ¬Ґ­Ё ­  § «ЁўЄг Є®¬¬гв в®а    }
begin





Gettime(h,min,s,ms);
                ttime:=(h*60+min)+15;

  { Є®а४жЁп ўаҐ¬Ґ­Ё § «ЁўЄЁ Ї® ўаҐ¬Ґ­Ё }
         case ttime of
         0..5:   Time_Zal:=50;
         6..8:   Time_Zal:=51;
         9..12:   Time_Zal:=52;
         13..14:   Time_Zal:=53;
         15..16:   Time_Zal:=54;
         17..18:   Time_Zal:=55;
         19..20:   Time_Zal:=56;
         21..22:   Time_Zal:=57;
         23..24:   Time_Zal:=58;
         25..26:   Time_Zal:=58;
         27..28:   Time_Zal:=59;
         29..30:   Time_Zal:=60;
         31..32:   Time_Zal:=60;
         33..34:   Time_Zal:=60;
         35:   Time_Zal:=61;
         36:   Time_Zal:=61;
         37:   Time_Zal:=61;
         38:   Time_Zal:=62;
         39:   Time_Zal:=62;
         40:   Time_Zal:=62;
         41:   Time_Zal:=63;
         42:   Time_Zal:=63;
         43:   Time_Zal:=63;
         44:   Time_Zal:=64;
         45:   Time_Zal:=64;
         46:   Time_Zal:=66;
         47:   Time_Zal:=67;
         48:   Time_Zal:=68;
         49:   Time_Zal:=70;

         50:   Time_Zal:=72;
         51:   Time_Zal:=73;
         52:   Time_Zal:=75;
         53:   Time_Zal:=76;
         54:   Time_Zal:=77;
         55:   Time_Zal:=79;
         56:   Time_Zal:=80;
         57:   Time_Zal:=82;
         58:   Time_Zal:=84;
         59:   Time_Zal:=86;
         60:   Time_Zal:=88;
         61:   Time_Zal:=89;
         62:   Time_Zal:=90;
         63:   Time_Zal:=91;
         64:   Time_Zal:=92

         end;

         { Є®а४жЁп ўаҐ¬Ґ­Ё § «ЁўЄЁ ЇаЁ ®Є®­з ­ЁЁ ЈҐ«п ў Ўгвл«ЄҐ  }

         case new_bottl of

               1:    Time_Zal:= round(Time_Zal*1.25);
               2:    Time_Zal:= round(Time_Zal*1.24);
               3:    Time_Zal:= round(Time_Zal*1.23);
               4:    Time_Zal:= round(Time_Zal*1.22);
               5:    Time_Zal:= round(Time_Zal*1.20);
               6:    Time_Zal:= round(Time_Zal*1.18);
               7:    Time_Zal:= round(Time_Zal*1.16);
               8:    Time_Zal:= round(Time_Zal*1.14);
               9:    Time_Zal:= round(Time_Zal*1.12);
              10:    Time_Zal:= round(Time_Zal*1.10);
              11:    Time_Zal:= round(Time_Zal*1.08);
              12:    Time_Zal:= round(Time_Zal*1.06);
              13:    Time_Zal:= round(Time_Zal*1.04);
              14:    Time_Zal:= round(Time_Zal*1.02)
         end;







end;





{*************************************************************************}
{  Їа®жҐ¤га  § «ЁўЄЁ ЈҐ«п ­  Ї®¤¤®­  }
procedure full_poddon;
begin

    Zalivka;      {  вг⠡㤥⠧ ¤Ґа¦Є  а ббзЁвлў вмбп  }

    for r:=oll_full to numberMax do
    begin
        Cut(KoordX,KoordY,Mass1[r].Xbeg+KoordXPlace,Mass1[r].Ybeg+KoordYPlace);

         {  Ґб«Ё Ўл«  ­ ¦ в  Є­®ЇЄ  Ћ‘’ в® ўл室Ё¬ Ё§ Ї®¤Їа®Ја ¬¬л }

         if err=4 then exit;

         tormoz;
             {   ®бв ­®ўЁ«Ёбм ­  в®зЄҐ а §«Ёў  ЈҐ«п  }


          {   Їа®ўҐаЄ  ­ ¦ вЁп Є­®Ї®ЄЁ Ћ‘’   }
          Port[$301]:=152;
          Port[$301]:=136;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
          R08:=Port[$300];
          Port[$301]:=152;
          if (( R08 and 4 ) = 4 ) then
          begin
              err:=4;
              exit;
          end;



          {   ўЄ«о祭ЁҐ Є« Ї ­  ®вЄалў ­Ёп ЈҐ«п  }

          Port[$301]:=28+128;
          Port[$300]:=5;
          Port[$301]:=12+128;
          Port[$301]:=28+128;

          {   ­ з «® § «ЁўЄЁ    }

          for Time_Gel:=0 to Speed[Sp]   do
          begin
               {    ®Є®­з ­ЁҐ § «ЁўЄЁ Ї® Є­®ЇЄ ¬               }
               {   Їа®ўҐаЄ  ­ ¦ вЁп Є­®Ї®ЄЁ Ћ‘’   }
               Port[$301]:=152;
               Port[$301]:=136;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
               R08:=Port[$300];
               Port[$301]:=152;
               if (( R08 and 4 ) = 4 ) then
               begin
                   err:=4;
                   {   ўЄ«о祭ЁҐ Є« Ї ­  § Єалў ­Ёп ЈҐ«п  }
                   Port[$301]:=28+128;
                   Port[$300]:=6;
                   Port[$301]:=12+128;
                   Port[$301]:=28+128;
                   exit;
               end;

             
               delay(Time_Zal );

          end;  {  Є®­Ґж § «ЁўЄЁ ЈҐ«п  }
          oll_full:=oll_full+1;
          {   ўЄ«о祭ЁҐ Є« Ї ­  § Єалў ­Ёп ЈҐ«п Ї®б«Ґ Ї®«­®© § «ЁўЄЁ   }

          Port[$301]:=28+128;
          Port[$300]:=6;
          Port[$301]:=12+128;
          Port[$301]:=28+128;

          {    ўлЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©  : Є®­Ґж 㤥ঠ­Ёп  }
          Port[$301]:=19+128;
          Port[$300]:=0;
          Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
          Port[$301]:=19+128;

          Port[$301]:=20+128;
          Port[$300]:=0;
          Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
          Port[$301]:=20+128;

              {  ЇҐаҐў®¤ Ёбв®з­ЁЄ  ЇЁв ­Ёп ­  ўлб®Є®Ґ ­ Їа殮­ЁҐ   }

          Port[$301]:=153;
          Port[$300]:=0;
          Port[$301]:=137;
          Port[$301]:=153;




              {  Ї®¤бзсв Ё ўлў®¤ Є®«ЁзҐбвў  Є®¬¬гв в®а®ў, Є®в®алҐ ¬®¦­® а §«Ёвм }
               New_bottl:= New_bottl-1;
               OutNumber( New_bottl );
               if  New_bottl<2 then
               begin
                    tormoz;
                    err:=4;
                    exit;
               end;
    end;   {  ®зҐаҐ¤­®© Є®¬¬гв в®а § «Ё«Ё  }
end;






 {**************************************************************************}
 {      Їа®Ја ¬¬  § «ЁўЄЁ ЈҐ«п                                              }
 procedure Gell;
 begin
      {  Ј иҐ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
      Led_ready:=0;
      Led;
    

      {  ўЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
      Port[$301]:=153;
      Port[$300]:=0;
      Port[$301]:=137;
      Port[$301]:=153;

      { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
      GOTO_00;

      case poddon of

      1: begin     { § «Ёў Ґвбп в®«мЄ® ЇҐаўл© Ї®¤¤®­ }
             KoordXPlace:=0;
             KoordYPlace:=0;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
                 { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
             GOTO_00;
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
             Led_ready:=128;
             Led;
         end;
      2: begin     { § «Ёў Ґвбп в®«мЄ® ўв®а®© Ї®¤¤®­ }
             KoordXPlace:=0;
             KoordYPlace:=158;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
                    { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
             GOTO_00;
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
             Led_ready:=128;
             Led;
         end;
      3: begin     { § «Ёў Ґвбп в®«мЄ® ваҐвЁ© Ї®¤¤®­ }
             KoordXPlace:=193;
             KoordYPlace:=158;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
                    { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
              GOTO_00;
                    {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
              Led_ready:=128;
              Led;
         end;
      4: begin     { § «Ёў Ґвбп в®«мЄ® зҐвўсавл© Ї®¤¤®­ }
             KoordXPlace:=193;
             KoordYPlace:=0;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
                    { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
             GOTO_00;
                    {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
             Led_ready:=128;
             Led;
         end;
      5: begin     { § «Ёў овбп ўбҐ Ї®¤¤®­л Ї®®зҐаҐ¤Ё  }
             writeln('ўбҐ');
             if NumberPoddon= 1 then
             begin
                 { § «Ёў Ґвбп  ЇҐаўл© Ї®¤¤®­ }
             KoordXPlace:=0;
             KoordYPlace:=0;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
             NumberPoddon:=2;
             oll_full:=1;
             end;

              if NumberPoddon=2 then
              begin
                 { § «Ёў Ґвбп ўв®а®©  Ї®¤¤®­ }
             KoordXPlace:=0;
             KoordYPlace:=158;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
             NumberPoddon:=3;
             oll_full:=1;
             end;
             goto_00;
             if NumberPoddon =3 then
             begin
                 writeln('3');
                 { § «Ёў Ґвбп ваҐвЁ©  Ї®¤¤®­ }
             KoordXPlace:=193;
             KoordYPlace:=158;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
             NumberPoddon:=4;
             oll_full:=1;
             end;

             if NumberPoddon =4 then
             begin
                 { § «Ёў Ґвбп зҐвўсавл©  Ї®¤¤®­ }
             KoordXPlace:=193;
             KoordYPlace:=0;
             full_poddon;
             if err=4 then
             begin
                 {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  ѓЋ’Ћ‚  }
                 Led_ready:=128;
                 Led;
                 exit;
             end;
             end;        { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
             GOTO_00;
         end
      end;  { case }
                          {   ўбҐ Ї®¤¤®­л § «Ёвл }

          

 end;   { gell }




{***************************************************************************}

procedure Manual;
label aa,bb;
begin
          Port[$301]:=19+128;
          Port[$300]:=0;
          Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
          Port[$301]:=19+128;

          Port[$301]:=20+128;
          Port[$300]:=0;
          Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
          Port[$301]:=20+128;

man:=1;
avt:=0;
Led;
 Port[$301]:=17+128;
 Port[$301]:=1+128;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
 R01:=Port[$300];
 Port[$301]:=17+128;
 case R01 of

     
      2 : begin         {   㬥­м襭ЁҐ бЄ®а®бвЁ § «ЁўЄЁ   }
                if Sp=9 then Sp:=0;
                Sp:=Sp+1;
                OutSpeed(Sp);
                 Delay(1000);
           end;
     32 : begin       {       гЄ § ­ЁҐ ­  а Ў®зЁ© Ї®¤¤®­   }
                      {  § ¦ЁЈ ­ЁҐ ᢥ⮤Ё®¤  Ї®¤¤®­ }
                podd:=2;
                Led;
                { ўлў®¤ ­®¬Ґа  Ї®¤¤®­  }
         aa:    if poddon < 5 then
                begin    { Ј бЁ¬ ­Ґ­г¦­лҐ Ё­¤ЁЄ в®ал Ё ўлў®¤Ё¬ ­®¬Ґа Ї®¤¤®­  }
                     Port[$300]:= 240+poddon;
                     Port[$301]:=150;
                     Port[$301]:=134;
                     Port[$301]:=150;
                     Port[$300]:=15;
                     Port[$301]:=151;
                     Port[$301]:=135;
                     Port[$301]:=151;
                end
                else     {  ўлў®¤Ё¬ 1 4}
                begin
                     Port[$300]:= 244;
                     Port[$301]:=150;
                     Port[$301]:=134;
                     Port[$301]:=150;
                     Port[$300]:=1;
                     Port[$301]:=151;
                     Port[$301]:=135;
                     Port[$301]:=151
                end;

                delay(1000);
                Port[$301]:=17;
                Port[$301]:=1;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
                R01:=Port[$300];
                Port[$301]:=17;
                if ((R01 and 32) =32) then
                begin     {  ўбс Ґйс ­ ¦ в  Є­®ЇЄ  Ї®¤¤®­ }
                          {  ­ зЁ­ Ґ¬ Ё§¬Ґ­пвм ­®¬Ґа Ї®¤®­  }
                     if poddon=5 then poddon:=1 else poddon:=poddon+1;
                     goto aa;
                end;
                delay(1000);
                podd:=0;
                Led;
                OutNumber(New_bottl);
                exit;
           end;
     8:    begin    {  гбв ­®ўЄ  с¬Є®бвЁ Ўгвл«ЄЁ  }
                litr:=4;
                Led;
         bb:    if litr_bottl < 5 then
                begin    { Ј бЁ¬ ­Ґ­г¦­лҐ Ё­¤ЁЄ в®ал Ё ўлў®¤Ё¬ ®Ўкс¬ Ўгвл«ЄЁ }
                case litr_bottl of

                    1: OutLitr:=5;
                    2: OutLitr:=16;
                    3: OutLitr:=21;
                    4: OutLitr:=32
                end;

                     Port[$300]:= OutLitr;
                     Port[$301]:=150;
                     Port[$301]:=134;
                     Port[$301]:=150;
                     Port[$300]:=15;
                     Port[$301]:=151;
                     Port[$301]:=135;
                     Port[$301]:=151;
                end ;

                delay(1000);
                Port[$301]:=17;
                Port[$301]:=1;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
                R01:=Port[$300];
                Port[$301]:=17;
                if ((R01 and 8) =8) then
                begin     {  ўбс Ґйс ­ ¦ в  Є­®ЇЄ  «Ёва }
                          {  ­ зЁ­ Ґ¬ Ё§¬Ґ­пвм ­®¬Ґа «Ёва }
                     if litr_bottl= 4 then litr_bottl:=1 else litr_bottl:= litr_bottl+1;
                     goto bb;
                end;
                delay(1000);
                litr:=0;
                Led;

                 case litr_bottl of
                   1: New_bottl:=55;
                   2: New_bottl:=160;
                   3: New_bottl:=245;
                   4: New_bottl:=320;
                end;


                OutNumber(New_bottl);
                exit;
           end;

     16:   begin    {  бЎа®б в ©¬Ґа  беў влў ­Ёп ЈҐ«п  }
                    {  гбв ­®ўЄ  ¬ ЄбЁ¬ «м­®Ј® Є®«ЁзҐбвў  Є®¬¬гв в®а®ў  }
                SetTime(0,0,0,0);
                Led_ostatok:=16;
                Led;
                case litr_bottl of
                   1: New_bottl:=55;
                   2: New_bottl:=160;
                   3: New_bottl:=245;
                   4: New_bottl:=320;
                end;
           
            delay(1000);
            led_ostatok:=0;

            Led;
                OutNumber(New_bottl);
            exit;
            end;
      4:    begin   {  ўлў®¤ ўаҐ¬Ґ­Ё, ®б⠢襣®бп ¤® беў влў ­Ёп ЈҐ«п }
                Led_time:=8;
                Led;
                Gettime(h,min,s,ms);
                time:=120-(h*60+min);
                OutNumber(time);
                delay(1000);
                Led_time:=0;
                Led;
                OutNumber(New_bottl);
                exit;

            end;
       64: begin   {   ­ ¦ «Ё Є­®ЇЄг ўЇҐас¤  }
            err:=0;
            writeln('ghj');
                if oll_full< NumberMax then
                begin
                     Led_Ready:=0;
                     Led;

                     {  ўЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
                     Port[$301]:=153;
                     Port[$300]:=0;
                     Port[$301]:=137;
                     Port[$301]:=153;
                                       writeln('ghj');
                     Cut(KoordX,KoordY,Mass1[oll_full+1].Xbeg+KoordXPlace,Mass1[oll_full+1].Ybeg+KoordYPlace);
                     oll_full:=oll_full+1; { 㢥«ЁзҐ­ЁҐ ­®¬Ґа  Ї®§ЁжЁЁ      }
                     tormoz;
                     Led_Ready:=128;
                     Led;
                end;
           end;
       128:begin   {  ­ ¦ «Ё Є­®ЇЄг ­ § ¤   }
                err:=0;
                if  oll_full > 1 then
                begin
                     Led_Ready:=0;
                     Led;


                     {  ўЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
                     Port[$301]:=153;
                     Port[$300]:=0;
                     Port[$301]:=137;
                     Port[$301]:=153;

                     Cut(KoordX,KoordY,Mass1[oll_full-1].Xbeg+KoordXPlace,Mass1[oll_full-1].Ybeg+KoordYPlace);
                        oll_full:=oll_full-1; { 㬥­м襭ЁҐ  ­®¬Ґа  Ї®§ЁжЁЁ      }

                       {  ЇаЁЎл«Ё ­  в®зЄг , в®а¬®§Ё¬ ¤ўЁЈ вҐ«п¬Ё }
                     tormoz;
                     Led_Ready:=128;
                     Led;
                end;
                 
           end;


   end;   {  case  }

end;
{***************************************************************************}
{***************************************************************************}

procedure Avtom;
label TT;
begin
          Port[$301]:=19+128;
          Port[$300]:=0;
          Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
          Port[$301]:=19+128;

          Port[$301]:=20+128;
          Port[$300]:=0;
          Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
          Port[$301]:=20+128;

avt:=64;
man:=0;

Led;
 Port[$301]:=152;
 Port[$301]:=136;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
 R08:=Port[$300];
 Port[$301]:=152;

 case ( R08 and 31 ) of
    1:begin  { ­ ¦ «Ё ЇгбЄ,  ­ зЁ­ Ґ¬ а §«Ёў вм ЈҐ«м  }
             { Їа®ўҐаЄ  ®б⠢襣®бп ўаҐ¬Ґ­Ё }
             Gettime(h,min,s,ms);
             time:=(h*60+min);
             if time > 118 then  {  ўаҐ¬Ґ­Ё ®бв «®бм ¬ «® }
             begin               {   ўв®¬ вЁзҐбЄЁ а §«Ёў вм ­Ґ«м§п  }
                 Led_time:=8;
                 Led;
                 delay(100);
                 Led_time:=0;
                 Led;
                 delay(100);
                 exit;
             end;

      err:=0;
      oll_full:=1;
      NumberPoddon :=1;
      gell;
      end;
    2:begin  { ­ ¦ «Ё бв®Ї,  ў®§ўа й Ґ¬бп ў в®зЄг 00  }
      err:=0;
      {  ўЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
      Port[$301]:=153;
      Port[$300]:=0;
      Port[$301]:=137;
      Port[$301]:=153;

      { ў®§ўа йҐ­ЁҐ ў в®зЄг 00 }
      GOTO_00;

      oll_full:=1;  {  бЎа®б Є®«ЁзҐбвў  а §«Ёвле Є®¬¬гв в®а®ў  }
                    { ­ зЁ­ Ґ¬ ўбс б­ з «                      }
      NumberPoddon:=Poddon;  { гбв ­ ў«Ёў Ґ¬ гЄ § вҐ«м Ї®¤¤®­  }
                             { ­  ­ з «м­л© Ї®¤¤®­             }
      end;

    4:begin  { ­ ¦ «Ё ®бв ­®ўЄ  }

          {   вгв ўЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ© ­  㤥ঠ­ЁҐ : ЇҐаҐў®¤ Ёбв®з­ЁЄ  ЇЁв ­Ёп }
          {   ­  ­Ё§Є®Ґ ­ Їа殮­ЁҐ                                              }
          Port[$301]:=153;
          Port[$300]:=1;
          Port[$301]:=137;
          Port[$301]:=153;

                   {    ўЄ«о祭ЁҐ ¤ўЁЈ вҐ«Ґ©   }
          Port[$301]:=19+128;
          Port[$300]:=a;
          Port[$301]:=3+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м X  }
          Port[$301]:=19+128;

          Port[$301]:=20+128;
          Port[$300]:=b;
          Port[$301]:=4+128;        {   ўлў®¤ гЇа ў«Ґ­Ёп ­   ¤ўЁЈ вҐ«м Y  }
          Port[$301]:=20+128;
      end;

      16:    begin    {  гбв ­®ўЄ  ⥬ЇҐа вгал  }

                OutNumber(Temp);  { ўлў®¤ ⥬ЇҐа вгал }
                delay(1500);

          tt:   Port[$301]:=152;
                Port[$301]:=136;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
                R08:=Port[$300];
                Port[$301]:=152;

                if ((R08 and 16) =16) then
                begin     {  ўбс Ґйс ­ ¦ в  Є­®ЇЄ  ⥬ЇҐа вга  }
                          {  ­ зЁ­ Ґ¬ Ё§¬Ґ­пвм ⥬ЇҐа вгаг }
                     if Temp= 29 then Temp:=15 else Temp:= Temp+1;
                       OutNumber(Temp);  { ўлў®¤ ⥬ЇҐа вгал }
                       delay(1500);
                     goto tt;
                end;
                delay(1000);
              
                OutNumber(New_bottl);
                exit;
           end;



    8:begin  { ­ ¦ «Ё Їа®¤®«¦Ґ­ЁҐ  }

      err:=0;
      gell;
      end

     

 end; {case}

end;
{***************************************************************************}
{                   Џ ђ Ћ ѓ ђ Ђ Њ Њ Ђ                                       }

begin



              {  ЇҐаҐў®¤ Ёбв®з­ЁЄ  ЇЁв ­Ёп ­  ўлб®Є®Ґ ­ Їа殮­ЁҐ   }

          Port[$301]:=153;
          Port[$300]:=0;
          Port[$301]:=137;
          Port[$301]:=153;

Temp:=20;
Start_Time:=10; { ЇҐаўлҐ и ЈЁ б г᪮७ЁҐ¬  }
a:=1;
b:=1;
goto_00;
     
Read_File;
Sp:=3;                   {  ­ з «м­ п бЄ®а®бвм § «ЁўЄЁ         }
avt:=0;
man:=0;
podd:=0;
litr:=0;
Led_ready:=0;
Led_ostatok:=0;
time:=120;
Led_time:=0;

              {  а Ў®зЁ© ЇҐаўл© Ї®¤¤®­              }
poddon:=1;
              {   Ўгвл«Є  0.5 «                     }
litr_bottl:=1;
Led_ready:=128;
OutSpeed(sp);
port[$301]:=128;  {   ўЄ«о祭ЁҐ ЁбЇ®«­ЁвҐ«м­ле гбва®©бвў  }

Speed[4]:= 50;
Speed[5]:= 63;
Speed[6]:= 78;            {   гбв ­®ўЄ  ᮮ⢥вбвўЁп бЄ®а®б⥩ § «ЁўЄЁ  }
Speed[7]:= 93;
Speed[8]:= 110;
Speed[9]:= 130;
Speed[0]:= 25;
Speed[1]:= 30;
Speed[2]:= 35;
Speed[3]:= 42;
a:=1;
b:=1;
New_bottl:=100;
OutNumber(New_bottl);
  ss:
{ OutNumber(New_bottl);  }
tormoz;

 Port[$301]:=24;
 Port[$301]:=8;       {  бзЁвлў Ґ¬  Є­®ЇЄЁ гЇа ў«Ґ­Ёп    }
 R08:=Port[$300];
 Port[$301]:=24;
 if ((R08 and 32)=32) then Avtom else Manual;
 goto ss;

 end.





















             { Їа®ўҐаЄ  ®б⠢襣®бп ЈҐ«п  }
             if New_bottl < 1 then
             begin
                 led_ostatok:=16;
                 Led;
                 delay(1000);
                 led_ostatok:=0;
                 Led;
                 delay(1000);
             end;





               {

          repeat
          ss:
          read(a);

          {  ўЄ«о祭ЁҐ ўлб®Є®Ј® ­ Їа殮­Ёп ­  ¤ўЁЈ вҐ«Ё  }
      Port[$301]:=153;
      Port[$300]:=a;
      Port[$301]:=137;
      Port[$301]:=153;
             goto ss;


          until keypressed;

      Port[$301]:=153;
      Port[$300]:=1;
      Port[$301]:=137;
      Port[$301]:=153;
      exit;

        }

Соседние файлы в предмете Системное программное обеспечение