Abych vyvrátil některé mýty a omyly, které panují okolo floppy mechanik, připravil jsem (zřejmě s křížkem po funuse) pár obecných informací, které poslouží nejen zájemcům o MZ-800 (a jiné osmibity), ale i lidem okolo průmyslových strojů, hudebních kláves atd.
Mechaniky 8"
Zmiňuju jen pro úplnost, už totiž skoro nejsou vidět. Je to v podstatě zvětšená "pětačtvrtka", většinou s trvale běžícím motorem s mechanismem pro přiklápění hlav elektromagnetem. Jedno takové monstrum mám kvůli počítači TNS Z-80
Mechaniky 5.25"
Jednostranné 160 (180)KB znám jen z Commodore 64, mechanika pracuje jen s dolním povrchem diskety, disketa se musí obracet, má dva indexové otvory a dva pro detekci "write protect". Kapacita 160KB znamená 256B na sektor krát 16 sektorů na stopu krát 40 stop (180KB -> 9x512x40). Dolní povrch je "nultý". Signál "Side one" mechanika ignoruje, je trvale v úrovni HIGH.
Oboustranné 5.25" 320 (360)KB jsou nativní pro PC (PC-XT) a mnohé osmibity. Kapacita 320KB znamená 16x256x40 krát dva "povrchy" (360KB -> 9x512x40x2). Signál "Side one" mechanika akceptuje (dolní nultý" povrch=HIGH, horní "první" povrch=LOW).
Oboustranné 5.25" 720KB quad density (QD) - řídký výskyt, víceméně komerčně potlačené, kapacita vzrůstá díky 80ti stopám (9x512x80x2). Mechaniku obslouží i dual density (DD) řadič (pokud obslužné rutiny počítají s 80ti stopami na disketě).
Oboustranné 5.25" 1.2MB - standard pro PC-AT. Je to jediná mechanika, jejíž motor se točí otáčkami 360/min. (jinak 300/min., včetně mechanik 3.5"). Médium 360 (720KB) DD se v mechanice 1.2MB čte ve zvláštním režimu 300Kb/s (standardní čtení DD disket v DD mechanikách se děje 250Kb/s). Existuje i možnost čtení v režimu 250Kb/s, ale mechanika musí snížit otáčky na 300/min. (akceptuje signál na pinu č.2 datového konektoru, pokud je toto navoleno konfiguračními propojkami na mechanice).
Perlička: pokud navolíme otáčky 300/min. trvale, stává se z 5.25" 1.2MB mechanika 1.44MB a pokud ji takto nadefinujeme v BIOSu PC (1.44MB 3.5"), O.S. ji považuje za 3.5" high density (HD) a nic nepozná!!!
Fungovala by za předpokladu, že by měla takto naformátované médium, samozřejmě.
Mechaniky 3.5" 720KB a 1.44MB
Jiná velikost kotouče média, pevný obal, detekční otvory, toť základní rozdíly oproti 5.25kám. Formát 720KB byl u PC komerčně potlačen. Mechaniky jsou téměř stejné, liší se jen čtecí/zápisové obvody hlav (vyšší proudy u HD disket). HD mechanika přejde do režimu DD buď na základě signálu na pinu č. 2 datového konektoru nebo automaticky díky otvoru na pouzdře diskety (na protější straně, než je otvor "write protect"). Kapacita 720KB znamená 9x512x80x2 stejně jako 720KB 5.25" (1.44MB -> 18x512x80x2, jediný rozdíl je v počtu sektorů na stopu - osmnáct).
Principiálně není žádný rozdíl mezi řadičem DD a HD. Počítač MZ-800 dokáže s řadičem na bázi WD279x pracovat s disketou 360KB, 720KB a jemu jedno, jestli je to mechanika 5.25" nebo 3.5". Používá se tzv. "data polling" - během čtení/zápisu sektoru se periodicky čte stavový registr řadiče a při aktivním bitu "data request" dojde k přečtení/zápisu bajtu. Toto nestačí v případě disket HD (proto je v PC odjakživa použit pro čtení/zápis nikoliv softwarový polling, ale kanál DMA). MZ řadič upravený pro HD funguje tak, že využívá signál IRQ hlavního čipu, díky němuž čtecí/zápisová rutina "stíhá". HD úpravou prošel i O.S. CP/M (verze 1.4 LEC CP/M pro MZ-800).
Hardware řadičů je postaven buď na obvodech WD279x (Sharp MZ-800, částečně Sinclair/Didaktik, MSX, Atari ST) nebo na obvodech Intel 8272 resp. NEC uPD765 a modernějších WD37C65, UM8388, W83765P, DP8473, resp. jsou jádra řadičů v obvodech multiřadičů do ISA slotů - Goldstar Prime 2, nebo v obvodech čipových sad základních desek (PC, Amstrad CPC, částečně Sinclair/Didaktik). Softwarová obsluha v PC je stejná bez ohledu, jde-li o XT nebo PC s CPU P4. Commodore Amiga používá speciální čipy, mechanika je standardní 720KB 3.5" s médiem formátovaným na 880KB (11x512x80x2).
Datový konektor mechaniky
5.25" -> přímý konektor plošného spoje, 34 kontaktů
3.5" -> nepřímý konektor 90° MLW34
liché vývody jsou spojeny s GND
Sudé vývody
2 - density select, reduced write current, RPM
4 - in use, head load
6 - drive select 3
8 - index
10 - drive select 0
12 - drive select 1
14 - drive select 2
16 - motor on
18 - direction
20 - step
22 - write data
24 - write gate
26 - track 0
28 - write protect
30 - read data
32 - side one
34 - disk change, ready
Význam signálů (uvádím jen ty, které se liší u jednotlivých druhů mechanik nebo se liší podle platformy - PC/non PC):
[2] Bez významu v případě mechanik 180/360/720KB, u HD mechanik řídí přepínání jejich čtecích/záznamových obvodů do režimů DD/HD, případně lze tímto signálem volit otáčky motoru mechaniky - 300 resp. 360/min. Logiku signálu lze nastavovat propojkami na mechanice, výchozí konfigurace mechanik PC-AT je taková, že úroveň LOW na vývodu 2 znamená DD a požadavek na změnu otáček se ignoruje (i případě, že [2]=HIGH). Nové mechaniky HD 3.5" bez nastavovacích jumperů signál ignorují a režim DD/HD si volí podle detekčního otvoru na pouzdře diskety. Některé nejnovější mechaniky senzor DD/HD nemají vůbec (=bez drobné HW úpravy 720KB disketu nepřečtou).
[4] Jako "head load" tento signál interpretují jen mechaniky s elektromagnetickým spouštěním hlav k povrchu diskety, což bylo aktuální v dobách mechanik 8". Jedinou mě známou mechanikou, která reaguje na LOW na vývodu č. 4 je TEAC FD-55BR 101-U (5.25" 360KB). Konfigurací propojek na mechanice se dá dosáhnout toho, že tato signál ignoruje a hlavy se přiklápí automaticky po spuštění motoru (je-li zasunuta disketa, zajištěná aretační páčkou).
Má-li vývod č. 4 význam "in use", pak jím řadič přikazuje mechanice, aby indikační diodou na předním panelu oznamovala, že "pracuje". Aktivní je úroveň LOW. Signál se dá zakázat konfiguračními propojkami na mechanice a přední LED poté svítí za jiných stanovených podmínek (drive select=LOW AND ready=LOW, drive select=LOW OR in use=LOW atd.). Nové mechaniky bez možnosti konfigurace signál ignorují a jejich LED se rozsvěcí s aktivním signálem "drive select" (stejné je výchozí tovární nastavení mechanik s jumpery).
[6,10,12,14] Původní koncepce floppy řadičů předpokládala nasazení až čtyř mechanik na společné "kšandě" rozlišených propojkami DS0..DS3. Řadič pak umožní komunikaci jen jedné mechanice, jejíž "drive select" je v úrovni LOW. Díky "specialitě" zvané křížený kabel toto neplatí pro PC-AT.
[16] Na motor on=LOW reagují všechny připojené mechaniky současně (3.5" jen s vloženou disketou). Neplatí pro PC-AT, viz výše.
[34] Vývod se dá propojkami nakonfigurovat jako "disk change" nebo "ready". Je-li nakonfigurován jako "disk change", oznamuje jím mechanika absenci diskety v šachtě (nebo nedostatečně zasunutou). Aktivní je úroveň LOW. Do úrovně HIGH přechází po prvním odkrokování hlav libovolným směrem (je-li disketa zasunuta a příslušný drive select=LOW). Je-li vývod nakonfigurován jako "ready", oznamuje jím mechanika svou "připravenost k práci". Mechanika je "ready", je-li vybraná signálem drive select=LOW a zároveň generuje index pulzy na vývodu č. 8 (=motor je v chodu, disketa zasunuta, zajištěná aretační páčkou). V PC-AT je vývod č. 34 všech mechanik nakonfigurován jako "disk change". V případě osmibitů, non PC počítačů, teoreticky i PC (PC-XT) je nakonfigurován jako "ready".
Křížení datového kabelu PC-AT
Citace z knihy Mark Minassi - IBM PC, velký průvodce hardwarem:
"... IBM se rozhodla (a snad právem), že chtít po uživateli, aby si sám volil DS0 pro jednotku A a DS1 pro jednotku B, je pro něho poněkud náročné ..."
Zajímavé je, že manipulace s propojkami master/slave pevných disků žádného IT fachmana nikdy neobtěžovala
![Smile :-)](./images/smilies/icon_smile.gif)
. Překřížení způsobí, že:
- signál řadiče na vývodu 16 skončí po překřížení na mechanice na vývodu 10
- signál řadiče na vývodu 14 skončí po překřížení na mechanice na vývodu 12
- signál řadiče na vývodu 12 skončí po překřížení na mechanice na vývodu 14
- signál řadiče na vývodu 10 skončí po překřížení na mechanice na vývodu 16
Příklad z praxe: (podmínka - obě mechaniky jsou nastavené jako DS1) obvod UM8388 má signály MOTOR A ON, MOTOR B ON, DRIVE A SELECT, DRIVE B SELECT. Tyto vedou na vývody konektoru řadiče 10, 16, 14, 12. Má-li pracovat mechanika B - "nekřížená", řadič aktivuje vývody 16 a 12 (na mechanice 16=motor on, 12=drive select 1, obé aktivní v log. LOW). Za překřížením se na mechanice A nic neděje, protože jsou příslušné vývody (10=drive select 0, 14=drive select 2) nezapojené.
Má-li pracovat mechanika A - "křížená", řadič aktivuje vývody 10 a 14 (za překřížením na mechanice 16=motor on, 12=drive select 1, obé aktivní v log. LOW). Na "nekřížené" mechanice B se nic neděje, protože jsou příslušné vývody (10=drive select 0, 14=drive select 2) nezapojené.
Zdá se to býti šalamounské, ale historicky vzato je to naprd. Za prvé, počet mechanik na kšandě se redukuje na dvě (pro čtyři mechaniky by musely být čtyři samostatné signály "select" a čtyři "motor on", jediný PC obvod s těmito vývody je DP8473V, ale na kšandě nejsou volné žíly). Za druhé, ztěžuje to náhradu mechanik 3.5" v non PC aplikacích. U klávesových nástrojů stačí překonfigurovat mechaniku na DS0, i současné mechaniky mívají SMD jumper pro nastavení DSx. MZ-800 vyžaduje "ready" na vývodu 34 a nastavení DS0 ..DS3 dle počtu mechanik. Podobně u Amstradů, Specter, Didaktiků. Amiga je pracnější, vyžaduje DS0, "ready" na vývodu 34 a "disk change" na vývodu 2! I potíže s průmyslovými stroji, jaké popisuje Hill např. zde:
http://www.ebastlirna.cz/modules.php?na ... hlight=fdd
jdou vyřešit s poznatky, co jsem sepsal. Jde "pouze" o čas a chuť
![Smile :-)](./images/smilies/icon_smile.gif)
. Ale asi už to není aktuální ...
Petr de Zviqov