with Pages[ActivePage] do begin

P := Ptr(VMemory,VMW[ActivePage*2]+ (Pred(Y)*MaxChar+Pred(X))*2) ;

X2 := PagePar[7]-X+2;

for X := 1 to X2 do

Buf[X] := 32+Attrib shi 8;

MoveToScreen(Buf,P^,X*2) end end; {CIrEOLf f—— _____————__——————;

Procedure CIrScr;

{Î÷èùàåò òåêóùåå îêíî (ñòðàíèöó)} begin

with Pages[ActivePage],Reg do begin

AH := 6; 1 Ñ ïîìîùüþ ïðîêðóòêè}

AL := 0; {î÷èùàåì âñå îêíî}

ÂÍ := Attrib;

CL := Lo(WBondUp) ;

ÑÍ := Hi(WBondUp);

DL :» Lo(HBondDown);

DH := Hi(HBondDown) ;

Intr($10,Reg) ;

AH :•= 2; f Óñòàíàâëèâàåì êóðñîð}

ÂÍ := ActivePage; /'â ëåâûé âåðõíèé óãîë}

DX WBondUp;

Intr($10,Reg) end

end; {CIrScr} /—————————————————^

Procedure DelLine;

(Óäàëÿåò ñòðîêó â àêòèâíîé ñòðàíèöå) var k,

S, {Äëèíà ñòðîêè îêíà} Ó: Byte; (Íîìåð ñòðîêè ñ êóðñîðîì} Ñ: Word; {Ñìåùåíèå â ïàìÿòè äëÿ ëåâîé ãðàíèöû îêíà} Buf: array [1..80,1..2] of Char; {Áóôåð ñòðîê) P: Pointer;

begin

{Ñòèðàåì ñòðîêó ïðîêðóòêîé îêíà ââåðõ} with Pages[ActivePage] do begin

{Îïðåäåëÿåì ïîëîæåíèå â âèäåîïàìÿòè ëåâîé âåðõíåé ãðàíèöû îêíà) Ñ := VMW[ActivePage*2]+PagePar[5]*2;

Y := PagePar[6]+Pred(HhereY);

S := (PagePar[7]-PagePar[5]+l)*2;

{Ïåðåíîñèì ïî ñòðîêàì} for Ê := 1+1 to PagePar[8] do begin

P := Ptr(VMemory,C+K*MaxChar*2);

MoveFromScreen (P",Q\if, a) •i P := Ptr(VMemory,C+(K-l)*MaxChar*2);

MoveToScreen(Buf,P",s) end;

{Ãîòîâèì ïóñòóþ ñòðîêó} for Ê := 1 to 80 do begin

Buf[k,l] :" ' ';

Buf[k,2] := chr(Attrib)