|
|
|
|
Преобразование кластеров в логические сектора
Если вы пишете программу, которая будет обращаться к области
хранения данных на диске, вы найдете, что такие средства операционной системы MS-DOS, как прерывание "int 25h" (Абсолютное считывание с диска) и прерывание "int 26h" (Абсолютная запись на
диск), а также программа-отладчик DEBUG, требуют, чтобы вы указывали номера логических секторов. Несмотря на то, что на иллюстрациях структур диска (см.рисунки 11-2 и 11-3) указывается первый
сектор диска, как сторона 0, дорожка 0, сектор 1, первый сектор в
действительности равняется логическому сектору 0. Все последующие
логические сектора представляют собой последовательные смещения
от 0. Таким образом, логический сектор 1 будет представляться,
как сторона 0, дорожка 0, сектор 2, а логический сектор 2 будет
представляться, как сторона 0, дорожка 0, сектор 3. Поскольку
каждый элемент таблицы FAT, согласно результатам, полученным после выполнения указанных выше пяти действий, всегда создает номер
кластера, перечисленные ниже действия покажут вам, как нужно преобразовывать номер кластера в номер логического сектора:
1. Вычесть 2 из номера кластера.
2. Умножить полученный результат на количество векторов, используемых в кластере, следующим образом:
а. Для всех односторонних форматов гибких дисков или
для двухстороннего 80-трекового, 5,25-дюймового формата диска повышенной плотности записи произвести умножение на 1.
б. Для всех двухсторонних 40-трековых, 5,25-дюймовых форматов дисков повышенной плотности записи произвести
умножение на 2.
в. Для двухсторонних 8-дюймовых гибких дисков повышенной
плотности записи произвести умножение на 4.
г. Для жестких дисков следует использовать одно из четы рех вышеприведенных значений или другое число, завися щее от формата диска.
3. Добавить результат к номеру логического сектора начала
области хранения данных.
Применяя соответствующую последовательность действий в правильном порядке, вы теперь можете перейти от элемента каталога к
элементу таблицы FAT, к номеру кластера, к номеру логического
сектора. А если есть такое средство, кому нужна операционная система MS-DOS?! Вы и сами можете считывать файлы сектор за сектором!
|
|