418 _____ Приложение

ReadLn(C[200]);

C[17] := 0;

{Считаем контрольную сумму} М := 0;

for k := 2 to 255 do N := N+C[k];

C[256] := M mod 256;

{Шифруем сектор}

С[1] := Random(255)+1;

for k := 2 to 256 do C[k] :» C[k] xor C[1] ;

{Записываем сектор}

ah := $03; {Код операции записи)

а1 :-=• 1; {Записать 1 сектор}

ch :- TRK; {На дорожке TRK}

с1 := 1; {Начиная с сектора 1}

dh := 0; ^На поверхности 0}

dl := DSK; №ск DSK1

es := seg(C); {Адрес буфера С для записи}

Ьх :-. ofs(C) ;

Intrl3(R,'Ошибка записи');

{Читаем сектор)

ah := $02; ^Код операции чтения) а1 :=• 1;

ch := TRK;

с1 :- 1;

dh :- 0;

dl := DSK;

es := seg(D); {Адрес буфера D для чтения) Ьх :» ofs(D) ;

Intrl3(R,'Ошибка чтения') end;

{Проверяем совпадение) for k := I to Size do if c[k:]<>d[k] then begin

WriteLn('Несовпадение данных') ;

SetIntVec($lE,01d) ;

Halt end;

WriteLn('Создана и проверена ',TRK+1,

'-я дорожка с секторами по ',Size,' байт');

{Измеряем время доступа к новой дорожке)

Write('Время доступа к скрытой дорожке: ');

MriteLn(AccessTime(DSK,TRK):6:2,' с') ;

{Измеряем время доступа к стандартной дорожке)

DBTA.SizeCode := 2; {Указываем стандартную длину сектора в ТПД} Write('Доступ к обычной дорожке: ');

WriteLn(AccessTime(DSK,20):6:2,' с') ;

{Восстанавливаем старую ТПД}

SetIntVec($lE,01d) end.

П10.2. Модуль F_Prot

Описание модуля см. п.7.4.

^»=-«==»=====»=; unit F_Prot; {"»..-"=—==-="=»}

{

+--_----—---—-._------——-——---------—-——-,+