Я пишу двухэтапный загрузчик для файловой системы FAT12. Stage1 загрузчика загружает stage2 с дискеты, которая находится в файловой системе FAT12. Теперь у меня возникла проблема с преобразованием номера кластера (который я получил из таблицы FAT) в формат, содержащий номер дорожки, заголовка и сектора. Я следил за учебником http://www.brokenthorn.com/Resources/OSDev6.html для того, чтобы сделать загрузчик.
Меня беспокоит то, что в учебнике номер кластера, полученный из FAT, сначала преобразуется в формат LBA (линейный адрес блока), а затем преобразуется в формат CHS (сектор головки цилиндра) перед чтением сектора в память.
Почему я не могу напрямую преобразовать номер кластера в формат CHS ?? Таблица FAT не хранит номера кластеров линейно ?? Я хочу точно знать, что мне здесь не хватает?
Ссылка на исходный код загрузчика, используемого в руководстве, находится в конце страницы ссылки http://www.brokenthorn.com/Resources/OSDev6.html.