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} /————————————;