88 Глава 3

Функция GetSector. Преобразует номер кластера в номер сектора для указанного диска. Заголовок:

Function GetSector(Disk: Byte; Cluster: Word): Word.

Здесь Disk — номер диска; Cluster — номер кластера.

Функция возвращает значение $FFFF (65535), если задан неверный номер кластера (меньше 2 или больше MaxClus] или несуществующий диск.

Функция PackCylSec. Преобразует номер сектора и номер цилиндра в формат слова, используемого при обращении к функциям прерывания $13. Заголовок:

Function PackCylSec(Cyl,Sec: Word): Word. Здесь Cyl — номер цилиндра; Sec — номер сектора.

Процедура ReadSector. Осуществляет чтение одного или нескольких последовательных секторов с дискового носителя в оперативную память. Заголовок:

Procedure ReadSector (Disk: Byte; Sector, Count: Word;

var Buffer).

Здесь Disk — номер диска; Sector — номер дискового сектора, с которого начинается чтение информации; Count — количество читаемых секторов; Buffer — переменная любого типа размером не менее Counf'512 байт, в которую будет записана прочитанная информация.

В процессе работы процедура никак не контролирует истинного размера переменной Buffer, поэтому обращение к процедуре с переменной недостаточного размера может привести к непредсказуемым результатам.

В процедуре предусмотрена работа с дисками большой емкости.

Процедура SetAbsSector. Реализует запись на диск сектора по его абсолютному номеру с помощью прерывания $13. Заголовок:

Procedure SetAbsSector (Disk, Head: Byte; CSec: Word;

var Buffer).

Здесь Disk — номер физического диска (0 = 1 — и ГД, 1 = 2 — и ГД, $ 8 О = 1—й ЖД, $81 = 2—и ЖД); Head — номер головки (поверхности), нумерация начинается с нуля; С5ес — номер цилиндра и сектора в виде 16—разрядного упакованного слова (нумерация цилиндров начинается с нуля, а секторов — с единицы); Buffer — переменная длиной 512 байт, содержимое которой будет записано на диск.

Процедура SetDefaultDrv. Устанавливает указанный диск в качестве текущего (умалчиваемого) диска. Заголовок:

Procedure SetDefaultDrv(Disk: Byte). Здесь Disk номер диска.