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