interface

{...}
procedure CreateScreenBuffer;
                           {создание экранного буфера}
procedure DestroyScreenBuffer;
                        {уничтожение экранного буфера}
procedure ScreenBufferToScreen;
                         {отображение буфера на экран}

implementation
var
   IsBuffer : boolean;  {признак существования буфера}
{...}

procedure CreateScreenBuffer;
begin                      {создание экранного буфера}
   if not IsBuffer then begin
      IsBuffer := TRUE;
      getmem(scr,64000);
   end;
end;

procedure DestroyScreenBuffer;
begin                   {уничтожение экранного буфера}
   if IsBuffer then begin
      IsBuffer := FALSE;
      freemem(scr,64000);
      scr := ptr(SegA000,0);
   end;
end;

procedure ScreenBufferToScreen;
begin                    {отображение буфера на экран}
   if IsBuffer then
      move(scr^,mem[SegA000:0],64000);
end;

begin
   scr := ptr(SegA000,0);
   IsBuffer := FALSE;
end.

назад