bx := ofs (Buf) ;

Intr($13,R) ;

if (Flags and FCarry)<>0 then

goto ErrWrt end;

{Нормальное завершение} SetOnHD := Inst;

SetIntVec($lE,P) ;

Close(F) end; {SetOnHD} ^———————__——;

Function RemoveFromHD: Integer; ' (Удаляет стационарную копию. Возвращает:

-1 - не вставлена дискета;

-2 - не мастер-дискета;

-3 - защита от записи или ошибка записи ГД;

-4 - программа не скопирована на ЖД;

-5 - ошибка доступа к ЖД;

>=0 - количество оставшихся установок} var

k,n: Integer;

NameF: String;

В: array [1..512] of Byte;

F: file;

DSK,Inst: Byte;

begin

TrassBlockl;

if Key.Hard=0 then begin

RemoveFromHD := -4;

Exit end;

if not LegalDiskett(DSK) then begin

if DSK=2 then

RemoveFromHD := -1 else RemoveFromHD := -2;

Exit end;

{Стираем файл с программой на ЖД} NameF := FExpand(ParamStr(0); ;

if NameF[1] in ['А'..'В'] then begin

RemoveFromHD := -4;

Exit end;

Assign(F,NameF);

Ifl-t Reset(F,I» ;

{$!+} if IOResult<>0 then begin

RemoveFromHD :" -5;

Exit end;

{Уничтожаем заголовок файла} FillChar(B,512,0) ;

BlcckWrite(F,B,51z,n) ;