Курсовая работа: Защита программы от нелегального копирования
ClusSize:Byte; {Количество секторов в кластере}
MaxClus:Word; {Максимальный номер кластера}
FATLock:Word; {Номер 1-го сектора FAT}
FATCnt:Byte; {Количество FAT}
FATSize:Word; {Длина FAT в секторах}
FAT16:Boolean; {Признак 16-битового элемента FAT}
RootLock:Word; {Начало корневого каталога}
RootSize:Word; {Количество элементов каталога}
DataLock:Word; {Начальный сектор данных}
end;
{Список описателей диска}
PListDisk=^TListDisk;
TListDisk=record
DiskInfo:TDisk;
NextDisk:PListDisk
end;
var
Disk_Error:Boolean; {Флагошибки}
Disk_Status:Word; {Кодошибки}
const
Disks:PListDisk=NIL; {Начало списка описателей диска}
function ChangeDiskette(Disk:Byte):Boolean;
{Возвращает TRUE, если изменялось положение
запора на указанном проиводе гибкого диска}
procedure FreeListDisk(var List: PListDisk);
{Удаляетсписокописателейдисков}
procedure GetAbsSector(Disk,Head:Byte; CSec:Word; var Buf);
{Читает абсолютный дисковый сектор с помощью прерывания $13}
function GetCluster(Disk:Byte; Sector:Word):Word;