По смещению 0Dh находится поле ClustSize (размер кластера в секторах).
Если там 1 - то соответственно 1 кластер = 1 сектор = 512 байт.
Судя по параметрам (Totsecs = 2880, FATSize = 9, FAT12) - это стандартный флоппик 3.5" 1.44 Мб.
(BPB - блок параметров биос)
вообщем такая несостыковка:
1.читаю поле BPB_Totsec16 (смещение 13h;BPB) - общее число секторов в разделе - получаю число 2880
2. читаю поле BPB_FATSz16(смещение 16h) - количество секторов занимаемых одной копией FAT12- получаю 9 секторов
3. далее несложные математические вычисления:
если общее число секторов на диске 2880 , значит число кластеров в фате 1440+2. итак 1442 умножаем на 1,5 (так как 1 кластер = 1,5 байт) получим 2163 байта (FAT в байтах)... делим это на 512 и получаем примерно 4 сектора
.. вот такая вот фигня... 4 сектора против 9 ;)
может кто объяснить?
ps. значение всех полей верны - ручаюсь
а почему ты считаешь что в fat12 кластер не = 512 байт25.09.02 21:05 Автор: Cyril <sc> Статус: Member
> один кластер отвечает за два сектора на диске.. а в фате12 > он занимает 1,5 байта... и это так :) По смещению 0Dh единица или ноль?
то что 12 бит это 1.5 байта я и не сомневался ;-)
а все таки...25.09.02 21:41 Автор: kar Статус: Незарегистрированный пользователь
> > один кластер отвечает за два сектора на диске.. а в > фате12 > > он занимает 1,5 байта... и это так :) > По смещению 0Dh единица или ноль? > то что 12 бит это 1.5 байта я и не сомневался ;-)
единица
да, что-то я тоже в непонятках26.09.02 12:30 Автор: Cyril <sc> Статус: Member
> > > один кластер отвечает за два сектора на диске.. а > в > > фате12 > > > он занимает 1,5 байта... и это так :) > > По смещению 0Dh единица или ноль? > > то что 12 бит это 1.5 байта я и не сомневался ;-) > > единица осталось выяснить сколько байтов в секторе(смещение 0x0B), если и там 512, то я сдаюсь и больше глупых вопросов задавать не буду
P.S. А что показывает какой-нибудь редактор дисков, может попробовать
сравнить ???
что тут непонятного ?26.09.02 19:52 Автор: :-) <:-)> Статус: Elderman
По смещению 0Dh находится поле ClustSize (размер кластера в секторах).
Если там 1 - то соответственно 1 кластер = 1 сектор = 512 байт.
Судя по параметрам (Totsecs = 2880, FATSize = 9, FAT12) - это стандартный флоппик 3.5" 1.44 Мб.
..допустим26.09.02 20:11 Автор: kar Статус: Незарегистрированный пользователь
> По смещению 0Dh находится поле ClustSize (размер кластера > в секторах). > Если там 1 - то соответственно 1 кластер = 1 сектор = 512 > байт. > Судя по параметрам (Totsecs = 2880, FATSize = 9, FAT12) - > это стандартный флоппик 3.5" 1.44 Мб. хм.. возможно так... тогда появляются следующие вопросы:
1. почему когда я читаю 2й сектор 0й дорожки (0й головки).. я не обнаруживаю сигнатуру фата (FF8)
2. почему когда я читаю 20й сектор (то есть 2й сектор 1й дорожки 0головки)... я не обнаруживаю данные корневого каталога - вижу лишь данные файлов...
> хм.. возможно так... тогда появляются следующие вопросы: > 1. почему когда я читаю 2й сектор 0й дорожки (0й головки).. > я не обнаруживаю сигнатуру фата (FF8)
Думаю потому что твой флоп - не жесткий диск :)
Первый байт в FAT - это Media_Id, который совпадает со своим тезкой в BPB.
F8 - жесткий диск
F0 - флоп 1.44
Второй байт всегда = 0xFF.
> 2. почему когда я читаю 20й сектор (то есть 2й сектор 1й > дорожки 0головки)... я не обнаруживаю данные корневого > каталога - вижу лишь данные файлов...
Данные идут сначала по головкам, затем по дорожкам.
20-й сектор - это 0/1/2 CHS (Cyl/Head/Sec)