End.
Сформируем две процедуры, пересылающие из видеопамяти в оперативную память и обратно содержимое экрана, ограниченное строками Row1 и Row2.
Procedure MoveFromScreen(Row1,Row2:byte);
Var Len : word;
Begin
New(BufAr);
Len:=(Row2-Row1+1)*80 shl 1;
Move(Screen[Row1],BufAr^,Len);
End { MoveFromScreen };
Procedure MoveToScreen(Row1,Row2:byte);
Var Len : word;
Begin
Len:=(Row2-Row1+1)*80 shl 1;
Move(BufAr^,Screen[Row1],Len);
Dispose(BufAr);
End { MoveFromScreen };
Здесь Row1, Row2 - соответственно номер первой и последней строк сохраняемой или восстанавливаемой области экрана; операция shlk(Shift Left) - сдвиг целочисленной переменной на k разрядов влево, что эквивалентно умножению ее на .