422 .Приложение
LegalDiskett :<" False;
DSK := 4;
Exit end else
begin {Проверяем содержимое сектора} for k := 2 to 256 do
Buf[k] := Buf[k] xor Buf[l];
N := 0;
l$R-f for k := 2 to 255 do N :- N+Buf[k] ;
if (N mod 256°Buf[256]) then begin
DSK :=• 0;
LegalDiskett :- True end else begin
DSK :- 4;
LegalDiskett := False end end end end else
LegalDiskett := False end; {LegalDiskett} ^————__-——————;
Function LegalHD(var DSK: Byte): Boolean;
{Проверяет легальность стационарной копии) var
k: Word;
Date :^TDate;
Legal: Boolean;
label
ExitL;
begin {Расшифровываем ключ!
TrassBlockl;
with Key do for k := 2 to 5 do KeyW[k] :- KeyW[k] xor KeyW[l];
{Проверяем дату изготовления ПЗУ)
TrassBlock2;
k := 1;
Date := ptr($FOOO,$FFF5);
repeat
Legal :-Date"[k]=Key.Dat[k] ;
inc(k)
until not Legal or (k=5) ;
LegalHD := Legal; ,
TrassBlockl;
{Проверяем дискету)
if Legal then DSK := 0
else
Legal :- LegalDiskett(DSK) ;
LegalHD := Legal end; {LegalHD} /————————————;