begin {CheckBootsf
{Устанавливаем в вектор $62 BIOS-адрес входа в начало обработки прерывания
Intl3, чтобы обмануть utealth-вирусы}
GetIntVec($62,01d62); {Сй&саби век-гор $62} SetIntVec($62,Head.Intl3) ;
WriteLn;
WriteLn('Для досрочного завершения работы программы нажмите ESC")? WriteLn;
WriteLn('Антивирусный контроль описателей структуры ЖД:');
WriteLn('Головка','Сектор/цилиндр':20);
{Проверяем ссылки и описатели ЛД) with Head do
for k := 1 to NDisk do with LDisk[k] do begin
Write(BHD:4,BSC:17) ;
RWSecIntl3(2,BHd,BSC,Buf) ;
Read(F,c) ;
if Equal(c.SecO,Buf,512) then
WriteLn('Норма':20) else begin
WriteInCИзменен!'l20);
Alarm {Обнаружены изменения) end end;
{Нормальное завершение проверки} SetIntVec($62,01d62) ;
IntlSAddr := MIL;
BegDat :° FilePos(F) ;
{Наполняем коллекцию архивными файлами} WriteLn;
WriteLn('Читается архивный файл ANTIVIR.DAT...') ;
while not EOF(F) do begin
New(oh) ;
Read(F,ch^) ;
FColl".Insert(ch) ;
if KeyPressed and (ReadKey°#27) then
Halt end;
HriteLn
end; {CheckBoots} ^————————————/
Procedure SetFile(FName: String);
{Помещает в архив эталон файла FRAME} vac
ch: ^CheckType;
k, nz,sz: Word;
P : Pointer;
FP : file;
begin {SetFile}
Assign(FF,FName) ;
{$!-}
Reset (FF,1) ;
{?I+t
if lOResult <> 0 then MsgC Ошибка доступа к файлу Ч-FName)
else begin
{Искать в архиве одноименный файл:}