Цитата(kolobok0 @ Oct 25 2013, 14:47)

не вдаваясь логику работы...
немного подробностей:
1) e_cyl (b_cyl) - 16 или 32-битная пременная если смотреть исходники f_fdisk()
2) Под номер цилиндра используется 10-bit
3) p[6] должна содержать в старших 2х битах -> 8,9 биты номера цилиндра, а в младших 6 битах - номер сектора
В итоге:
допустим e_cyl = 0b0000001010001100 (0x028C)
0b0000001010001100 >> 2 == 0b0000000010100011 (0x00A3)
0b0000000010100011 + 63 == 0b0000000011100010 (0x00E2)
9й бит номера цилиндра не тот, номер сектора получился тоже непонятно какой, вот и интересуюсь...