А такой алгоритм не пойдет? (Не помню точно, у одностороннего дисковода только верхняя или только нижняя сторона, пишу в предположении, что только верхняя)
1. Идем на 0-й цилиндр.
2. Читаем 0-й сектор нижней стороны. Если дискета не форматирована, поступаем как TR-DOS: убеждаемся, что верхняя сторона не форматирована, форматируем нижнюю, смотрим, с какой стороны смогли прочитать 0-й сектор.
3. Если дискета форматирована, но сектора 0 нет, ищем на нижней стороне первый существующий сектор.
4. Читаем найденный сектор, читаем его же с верхней стороны. Если на верхней такого сектора нет, значит, дисковод двусторонний.
5. Если сектора не совпадают по длине или по информации, значит, дисковод двусторонний.
6. Если сектора сверху и снизу совпадают, пишем инверсию информации в найденный сектор нижней чтороны и перечитываем. По равенству данных принимаем решение.