procedure help(name:str12);
type
      page=array[1..80,1..24] of char;
var aiuto:text;
    key,key2,tasto:char;
    video1,video2,video3:page;
    code,i:integer;
    testo,testo2:str80;
    tommorow,yesterday,nop:real;
    finish:boolean;

procedure azzera(var video:page);
var x,y:integer;
begin
  for y:=1 to 24 do
    for x:=1 to 80 do
      video[x,y]:=' ';
end;


procedure get_page(var video:page;var np:real);
var key:char;
    quit:boolean;
    x,y:integer;

procedure new_line;
begin
  y:=y+1;
  x:=1;
end;

begin
  azzera(video);
  y:=2;
  x:=1;
  if not(eof(aiuto)) then
  quit:=false;
  readln(aiuto,testo);
  val(testo,nop,code);
  readln(aiuto,testo);
  str(nop:2:2,testo2);
  testo:='Pag: '+testo2+copy(testo,6,length(testo)-5);
  for i:=1 to length(testo) do
    video[i,1]:=copy(testo,i,1);
  repeat
    readln(aiuto,testo);
     if testo='' then
        y:=y+1
     else
       if testo='##' then
         quit:=true
       else
        begin
          for i:=1 to length(testo) do
            begin
              video[i,y]:=copy(testo,i,1);
              if i>78 then  ;
            end; {for}
          y:=y+1;
        end; {else }
  until eof(aiuto) or quit or (y>24);
  if eof(aiuto) then
    finish:=true;
end;

procedure display_page(video:page);
var x,y:integer;
begin
  clrscr;
  for y:=1 to 24 do
    for x:=1 to 80 do
      writexy(x,y,video[x,y]);
end;

procedure no_help;
begin
            mid('no help done');
            get_chr(30,20,'Non Š disponibile nessun men— di aiuto',key);
end;

begin
  assign(aiuto,name);
  if esiste(name) then
    begin
      reset(aiuto);
      if not(eof(aiuto))then
        begin
          nop:=0;
          yesterday:=0;
          finish:=false;
          azzera(video1);
          azzera(video2);
          get_page(video3,tommorow);
          repeat

            yesterday:=nop;
            video1:=video2;
            nop:=tommorow;
            video2:=video3;
            azzera(video3);
            display_page(video2);
            if not(tommorow=0) then
            get_page(video3,nop);
            {get_real2(1,25,4,'Inserire: 0 per uscire, enter o numero pagina per contiuare. Pag:?',tommorow);}
            get_real2(1,25,4,'',tommorow);
            if finish and not(tommorow=0) then
              begin
                nop:=tommorow;
                video2:=video3;
                display_page(video2);
                {get_real2(1,25,4,'Inserire: 0 per uscire, enter o numero pagina per contiuare. Pag:?',tommorow);}
                get_real2(1,25,4,'',tommorow);
                if tommorow<>0 then
                  begin
                     close(aiuto);
                     reset(aiuto);
                     finish:=false;
                     get_page(video3,tommorow);
                  end;
              end;
          until tommorow=0;
          end
        else
          no_help;
    end
  else
    no_help;
end;

