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) ;