begin

WriteLn('Ошибка в данных файла '+ Name);

Halt end;

for k := 1 to Count do with LD[k] do begin

SetAbsSector($8O,BHd,BSC,Sec) ;

if Disk_Error then begin

WriteLn('Ошибка записи на жесткий диск['If-Halt end end;

{Сообщаем об окончании} Write ('Структура ЖД восстановлена. Перезагружать ДОС (Y/N, Enter'«Y) ? ');

ReadLn(Name) ;

if (NameO'n') or (NameO'N') then asm

mov ax,$FOOO {Сегмент перезапуска) push ax {Помещаем его в стек} mov ax,$FFFO {Смещение} push ax {Помещаем в стек} retf {Перезапуск ДОС} end end.

П10. МОДУЛЬ F_PROT ДЛЯ ЗАЩИТЫ ПРОГРАММ ОТ НЕЛЕГАЛЬНОГО КОПИРОВАНИЯ

ШОЛ.. Программа Diskette для подготовки ключевой дискеты

Описание программы см. п.7.2.5.

/

+_-__----_-------------------—--—-------------+

¦ Форматирование дорожки нестандартными секто- ¦ ¦ рами с помощью прерывания $13. Используется ¦ ¦ дисковод 5 1/4 дюймов в режиме 360 Кбайт. ¦ ¦ Эта программа готовит дискету для работы \ ¦ с модулем F_Prot. \ +--__----------------.------_-------------------+;

Program Diskette-Uses DOS,F_disk;

const

TRK = 40; {Номер нестандартной дорожки} DSK =- 0; {Номер диска} SIZ = 1; {Код размера сектора} type

PDBT_Type ^DBTJType; {Указатель на ТПД1 {Таблица параметров дискеты} DBT_Type = record

Reservl array [0..2] of Byte;

SizeCode Byte; {Код размера сектора}

LastSect Byte; {Количество секторов на дорожке!

Reserv2 array [5..7] of Byte;

FillChar Char; {Символ-заполнитель форматирования} ReservS Word