Vďaka hoši.
S tým "dobre otestovať IMD" som myslel najmä také diskety, kde logické číslo stopy nezodpovedá fyzickému, teda napríklad na stope 30 je zakódovaná stopa 99 a ešte vnútri takej je iné číslovanie sektorov (interleave != 1) s tým, že každý taký sektor môže ešte mať rozdielne číslo povrchu (0 alebo 1), nezávisle od toho, na ktorý je "nasetovaná" disková operácia. Do toho ešte podpora adresných značiek s DAM príznakom (deleted address mark), a či je to bad sector alebo neni, komprimovaný atď.
Regulérny build MegaFDC s "dosovským" príkazovým riadkom takéto kraviny nedával, ale tým že som zaviedol možnosť IMD formátu, musel som tomu všetkému pridať podporu, ostatne - preto je IMD build oproti regulérnemu pomalší, callback funkcia má toho vyše na práci.
Nu, čo šlo, som otestoval, naimplementoval, opravil. Ak by to niekde padalo na hubu, dajte mi vedieť. V poslednom builde som musel spomaliť časovanie 8" motora na 16ms kroky, pretože mi zle indexoval oklahomský osmipalec, aspoň som si vyskúšal seek test. Zvyšné dva typy (5,25" a 3,5") idú rýchlejšie.
Ešte som chcel prísť so zlepšovákom, aby sa nevyžadoval ten IMDTRIM.PY, ale na implementáciu čokolvek sofistikovanejšieho než je XMODEM (teda fixná veľkosť dátových paketov) a už mi dochádza v arduine pamäť... A na druhú stranu, na také 3,5" 2,88MB diskety treba zvoliť regulérny build, ktorý z nich spraví binárne image - pretože tieto zas nepodporuje IMD formát.