DimkaM wrote:Действительно, что то я ступил, четыре бита всего. Зато цилиндров до фига можно.
Геометрия должна соответствовать той - которая была у винта при форматировании, елси это флешка то CHS для нее вообще не имеет смысла, там работа идет только через LBA, на пц псевдо CHS (для int 13h внутри автоматом переводится в лба), если на пц флешка форматировалась с >16 головок, то на спектруме с CHS драйвером она вообще читаться не будет (вернее будет, но читаться будут совсем не те сектора которые нужно), но в фатале и вдц драйверы лба онли, поэтому значения CHS вообще не важны, их надо ставить 0/0/0. Значения CHS важны только для криворуких драйверов isdos и подобных систем, где было расчитано на винты 40-80Мб, которые LBA вообще не поддерживали.
В ПЦ биосах было ограничение на номер цилиндра было отведено всего 10 бит, зато на номер головки был целый байт, из за этого для винтов у которых было больше 1024 цилиндра - делали трансляцию CHS->CHS
Параметры CHS которые указаны в MBR в BPB и в таблице разделов - это параметры для int 13h (виртуальные CHS). Если уж так хочется ситать через CHS, то эти виртуальные CHS надо перевести в LBA, а затем в реальные CHS винта (для винтов <8Гб), для винтов >8Гб чтение через CHS невозможно в принципе (там ограничение на 16383 цилинда 16 головок и 63 сектора).