logo
несколько программ / bsp33

Определение положения головки

// ---------------

// Код функции 1

// ---------------

#pragma pack(1)

typedef struct _HeadLocation

{

BYTEbFunctionCode;

BYTEbAddressMode;

DWORD lpHeadLocation;

} HeadLocation;

Поле

Описание

bFunctionCode

Код функции

bAddressMode

Режим адресации:

0 – HSG;

1 – Redbook;

2 – 255 – зарезервировано

lpHeadLocation

Положении головки. Значение зависит от режима адресации

Здесь необходимо сделать замечание относительно режимов адресации.

По умолчанию устройство чтения CD-ROM находится в режиме адресацииHSG, описанный в стандартеHigh Sierra. При этом в качестве адреса указывается логический номер блока.

Другой режим адресации описан в стандарте Redbook. В нем адрес представляет собой набор из трех значений: минуты(MIN), секунды(SEC), фреймы (FRAME). Каждое значение занимает один байт, причем в младшем байте хранится значениеFRAME, в следующем байте - значение SEC, и в последнем, третьем байте, - значение MIN.

С помощью следующей формулы вы можете преобразовать адрес из формата Redbook в форматHSG:

SECTOR = MIN * 60 * 75 + SEC * 75 + FRAME – 150