Write(F,с) ;

end (если непустой описатель) until S»0

end; {есть хотя бы один ЛД} {Записываем заголовок архива} BegDat ;= FilePos(F) ;

Seek(F,0) ;

Write(F,Head.CT) ;

Seek(F,BegDat);

(Защищаем COMMAND.СОМ} SetFile(GetEnv('COM3 PEC'));

end; (BuildHead} ^————————————;

Function CheckHead: Boolean;

(Проверяет заголовок архивного файла} var

s: String;

k: Word;

Sum: LongInt;

DI: TDisk;

begin

{Подсчитываем КС BIOS}

Sum := 0;

for k := 0 to $FFFF do Sum := Sum+Mem[$FOOO:k] ;

{Получаем конструктивные параметры ЖД}

GetDiskInfo(2,DI) ;

(Читаем заголовок архива}

Read(F,Head.CT) ;

(Проверяем его}

S := •ANTIVIR';

with Head do

if (Hdos) or (SumOBIOS) or

not Equal(Begl3,IntlJ^,SizeOf(Begl3)) or (SecTrODl.TrackSiz) or (HeaasODI. Heads) then begin

WriteLn('Архивный файл содержит ошибочные данные!');

if not Okay('Создать новый архив') then

Halt else

CheckHead := False end else

CheckHead :» True end; {CheckHead} ^————————————;

Function Auto: Boolean;

{Контролирует параметры обращения, открывает или создает DAT-файл. Возвращает

TRUE, если обнаружен ключ /AUTO}

var

s: String;

к,j: Byte;

AF: Boolean; Флаг ключа /АОТО}

с: CheckType absolute Head;

313,013: Word;

DI: TDisK;

labe.i.

SetF,Errria;

const

tx='Архивный файл содержит ошиоо-чные данные. Создать новый файл ;