Я кастрировал драйвер idesmuc, выбросив из него все процедуры чтения и записи. Оставил расчёт CHS по номеру блока. Спецпрограммой пытаюсь "прочитать" все блоки раздела по одному через драйвер и забираю у драйвера то, что он пишет в регистры CHS жёсткого диска. Потом анализирую. Никаких ошибок в процедуре расчёта CHS я не обнаружил. Осталось проверить на сколько правильно драйвер читает/пишет половинки секторов.
Проверил две другие версии Rhddsmuc - оба ведут себя одинаково и выдают мне Error 86 в одном и том же месте. Уже похоже на косяк в протоколе обмена с диском.
Попробую завтра поиграться с версией драйвера с поддержкой LBA.