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)