Была помимо дампящего функционала у меня еще задумка о некотором «изображении» FDC, т.е. в том числе и форматирования и записи. Это три функции:
1. Форматирование. Загружать в буфер (макс 1.5кб) данные о формате. Весь трек понятное дело не вместится. Но в некотором «запакованном» формате — вполне. Что-то типа RLE, в рилтайме, думаю, вполне потянет.
2. Чтение отдельных секторов, максимальный размер 1кб. Подстройка по «кратчайшим» таймингам (серия 12х00), вылавливание синхрокода A1A1A1, Чтение данных — заголовка, потом самого сектора.
3. Запись сектора. Сначала вылавливание заголовка (как в функции выше) а потом спустя некоторое время (чтобы попасть куда надо) — запись самих данных, предварительно загруженных в буфер.
CRC считать можно было бы только у заголовка (как раз в промежутке, плюс там всего 8 байт). Контрольная сумма данных должна считаться или хостовым софтом, или перед записью / после чтения. Хостом быстрее, но неизвестно насколько будет хватать скорости, чтобы при записи «всасывать» очередные данные сектора, и потом их писать. Вероятно будет по 1 сектору за оборот.
Но это так, параллельные мысли, не особо резонные. Смысл в этом разве что только чтобы какой-нибудь эмулятор научить работать с таким псевдо-контроллером флоппа. Но это вообще вряд-ли. Возможно, просто проверить этот proof of concept.

