Тексты программ 421

DSK := 2 (Закончить с ошибкой} until not Disk_Error or (DSK=2);

TrassBlock2;

if Disk_Error then

begin {Нет доступа ни к А:, ни к В:! DiskettPrepare := False;

Exit end;

(Проверяем тип дискеты} TrassBlockl;

with Info do begin

if (TracksOETracks) or

(TrackSizOETrackSiz) then begin {He эталонный тип) DiskettPrepare := False;

DSK := 3;

Exit end;

{Переустанавливаем ТПД} TrassBlockl;

GetIntVec($lE,P) ;

OldDBT := P;

New(DBT);

DBT^'OldDBT'1;

with DBT" do begin

SizeCode := SIZ;

LastSect := ETrackSiz end;

SetIntVec($lE,DBT) end;

DiskettPrepare := True end; {DiskettPrepare} /————————————;

Function LegalDiskett(var DSK: Byte): Boolean;

(Проверяет легальность мобильной копии} var

k,n: Word;

begin

(Подготавливаем дискету} if DisltettPrepare(DSK) then

begin

{Читаем ключевой сектор} TrassBlockl;

with R do begin

ah :=• 2;

al := 1;

ch :- TRK;

Cl := SEC;

dh := HED;

dl := DSK;

es := seg(Buf) ;

bx := ofs (Buf) ;

Intr($13,R) ;

SetIntVec($lE,P) ;

if (Flags and FCarry)<>0 then begin