Program Parrot;{Version 3.0}
const
   fnp:string[26]='parrot.shu';
var
   f              : Text;
   Useranswer     : String[80];
   Frazes         : array[1..795] of String[80];
   i              : Integer;
   x              : Boolean;
{^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^}
Procedure Delay;Assembler;
asm
 @1:
    mov      cx, 30
    mov      dx, 0000
    mov      ah, $86
    int      $15
    jc       @1
end;
Procedure ClrScr; Assembler;
asm
 mov  ax, 3
 int  $10
end;
Procedure Rem_f;{���������� �����, ���������� � �����.}
begin
 i:=1;
 Assign(f,fnp);
 Reset(f);
 While NOT EOF(f) Do
    begin
     ReadLn(f,Frazes[i]);
     i:=i+1;
    end;
 Close(f);
end;
{--------------------------------------------}
Procedure Mem_f;{���������� ����� � ����}
begin
 Assign(f,fnp);
 Rewrite(f);
 for i:=1 to 795 Do
    begin
     Writeln(f,Frazes[i]);
    end;
 Close(f);
end;
{============================================}
begin {parrot}
 ClrScr;
 WriteLn('�������� "� � � � � � �". ������ 3.0');
 WriteLn('������� ������� 2000 �., 27 ����.');
 WriteLn('����� ����������.');
 WriteLn('�������� ����������!');
 WriteLn;
 WriteLn('        ������������-������� �.�.');
 Delay;
 ClrScr;
 {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
 x:=false;
 Rem_f;
 Randomize;
 Repeat
    begin
     Writeln(Frazes[Round(Random(795)+1)]);
     Readln(UserAnswer);
     if (Useranswer<>'.') and (Useranswer<>'���� �����')
                                     and (Useranswer<>'����� ����')
          Then  Frazes[Round(Random(795)+1)] :=Useranswer
          else x:=true ;
    end;
 until (Useranswer='.') or (Useranswer='���� �����')
                         or (Useranswer='����� ����') or (x=true) ;
 Mem_f;
 WriteLn('�����!!! ����!');
end.  {parrot}

�����