Сообщение от
cy6
Наверное, надо писать программу, отключающую экран и читающую трек целиком прямо с контроллера FDD
Итак, первые результаты дампера трека на SD карту.
Разрушаем легенду о "плавающем секторе".
Размер секторов вместе со служебными заголовками фиксированный. Расстояние между метками EA-D3 и DD-F3 всегда 16 + 3 байта.
Код:
EA D3 TT SS KK 00 00 00 00 00 06 06 06 06 06 0D 00 00 00 00 00 DD F3
Обратите внимание на недокументированый в журнале байт OD между синхробайтами и нулевым разделителем. Он есть в коде программы FORMAT и в образцах дампа.
Пытливый ум возможно задается вопросом, почему значение байта 0Dh, что за сакральное значение?
Все просто, двоичная версия 1101b, это управляющая команда для DD1, PC6 (110b) = 1, или отключение схемы формирования синхробайта. Оно было занесено в регистр A за мгновение до, и зачем то разработчик программы форматирования выводит на диск, после вывода в регистр управления DD1. (см. исходники команды FORMAT).
Размер трека плавающий, и никогда не будет составлять расчетные 3125 байт, так как скорость вращения необязательно 300 об/мин.
На моем дисководе размер трека составил 3090 байт, это 303 об/мин. Это допустимое отклонение скорости вращение в большую сторону от эталона (300 об/мин), но может быть и в меньшую. В последнем случае, размер трека превысит 3125 байт.
Дисковая операционная система Радио-86РК предусматривает плавающий размер трека, и потому занимает лишь ту его часть, которая в пределах допустимого отклонения вращения. Размер трека всегда меньше 3090 байт (чуть позже подробно о размере всего сектора, с образцами).
Остаток трека (после вывода пяти секторов 00-03-01-04-02 и разделителей между ними) РК ДОС просто не пишет, оставляя кусок до индексной отметки.