Wydaje mi się iż w ogóle nie potrzebnie martwisz się o bit-rate przy zapisie, o to dba kontroler. Jeżeli wydajesz mu komendę typu II (np. read sector lub write sector) to prędkość danych jakie do niego piszesz jest uzależniona od niego samego, jeżeli jest gotowy do przyjęcia następnego bajtu to sygnalizuje to używając lini DRQ (data request). Zresztą jest to napisane w dokumentacji:
DRQ -> Data Request -> this active high output indicates the Data Register is full (on Read) or Empty (on Write operation)
Łącząc to z flow-chartem Type II Command, moża domniemać iż kontroler sam wie kiedy potrzebuje następnego bajtu bo poprzedni właśnie został zapisany i wypchnięty na wyjście w postaci szeregowej z użyciem odpowiedniego kodowania w zależności od gęstości i typu napędu z którym pracuje (FM, MFM).
Przyznaje iż ja osobiście nigdy nie miałem okazji programować żadnego kontrolera stacji dyskietek, a to co napisałem powyżej jest tylko moim domysłem zdobytym po przeczytaniu kilku datasheet-ów do różnych kontrolerów FDC. Także to co napisałem nie musi być do końca słuszne, jeżeli gdzieś nakłamałem proszę o sprostowanie :)
Co do zrobienia stacji na wspomnianych kontrolerach to nie wiem czy ktoś miał taką potrzebę i takie doświadczenie wcześniej, na pewno jednak kilka osób programowało te kontrolery, np. pisząc nowy/alternatywny firmware do stacji Karin Maxi. I to będzie chyba dobry przykład do analizy, na stronie Jer-a masz zarówno schemat stacji jak i zawartość ROM-u do niej.
schemat jest tu, a zawartość ROM-u tutaj.
Stacja Karin Maxi Drive to właściwie kontroler WD1772 wpięty w szynę PBI (Cart+Expansion port) i jest widziana przez system operacyjny ATARI jako tzw. nowe urządzenie (NEW DEVICE). Cały kod obsługujący kontroler jest zaszyty w romie i wykonuje go procesor ATARI (stacja nie ma żadnego innego mikro-kontrolera ani mikroprocesora). Analiza ROM-u tejże stacji pozwoli pewnie na rozwiązanie wszelakich wątpliwości.
Stacja KARIN-MAXI była bardzo fajnym rozwiązaniem. Była ultra szybka (podłączona pod szynę równoległą nie szeregową), jednak miała pewną wadę... była rozwiązaniem mało standardowym w tamtych czasach i część oprogramowania nie była z nią zgodna. Do tego aby umożliwić transmisję na sensownym poziomie, należało wyłączyć DMA ANTICA (wyłączony ekran przy operacjach I/O). Stacja była idealna do pracy, gdzie wymagało się szybkości (kopiowanie, programowanie [kompilacja]). Jednak część softu która miała zaszyta własne procedury I/O (tylko obsługujące SIO) po prostu na tej stacji nie działała.
A i jeszcze jedno... 0xF napisał DOS-a dla Karin Maxi Drive, udostępnił oczywiście źródła, które leżą na stronie ze źródłami Stryker-a, czyli tutaj , i z tego co pamiętam Fox wspominał iż jego MasterDos zawiera własne procedury obsługi WD1772 (Foxie popraw mnie jeżeli kłamię ;P)
UPDATE #1:
I jeszcze trochę obok tematu, pewnie Mikey zna już te linki... ale myślę iż warto je przytoczyć, oba rozwiązania trochę mało popularne chyba u nas ale dość ciekawe ze względu na sposób działania :) Mianowicie chodzi o emulatory napędów dyskietek, emulacja jest jednak na zupełnie innym poziomie :) Emulujemy bowiem sam napęd FDD. Idea projektów była taka aby zastąpić sam napęd FDD elektroniką która udawałaby napęd.
W sieci są obecnie rozwijane projekty dwóch osób: HxC Floppy Emulator oraz Sdisk Emul.
Dlaczego o tym piszę? Ano dlatego iż oba z projektów emulują napęd FDD na poziomie elektrycznym, więc zawierają kod dokonujący konwersji strumienia danych pobranych z danego obrazu dyskietki na strumień zakodowany kodem MFM. Być może byłoby to pomocne w realizacji software-owego dekodera FM/MFM nad którym pracuje Mikey :). Projekt HxC ma dwie wersje, CPLD oraz bazującą na mikro-kontrolerze PIC serii 18Fxxx... Dodatkowo projekt Sdisk Emul emuluje szeregową stację dysków (SIO) małego Atari... w dodatku ma zaimplementowane proste OSD :) Schematy, źródła, firmware oraz PCB są dostępne na stronach projektów.
Projekt HxC jest dostępny w dwóch odmianach CPLD+USB (obrazy ładowane z poziomu softu na PC) oraz tzw. stand-alone czyli PIC+ karta SD na której są trzymane obrazy dysków.
UPDATE #2:
podstawowe info o FM, MFM i GCR jest tutaj: The floppy user guide
pozdrawiam
Seban