Press "Enter" to skip to content

Gotek floppy emulator

Hoci mám postavenú ruskú variantu SD HxC, na Goteku sa mi páčilo, že funguje na obyčajné USB flashky a tak som po ňom vždy poškuľoval. Ďalšie čo zavážilo bolo, že ma nebavilo neustále preswitchovávať HxC, keď som ho prehadzoval medzi +3 a ZX-EVOm, a tak som si jeden Gotek zaobstaral.

Samozrejme, že originálny firwmare neumožňuje pripojenie k ľubovoľnému spektráckemu radiču. Respektíve pripojenie aj áno, ale tým to končí, pretože ten emuluje len 1.44MB MS-DOS HD formát (prípadne 720kB DD, podľa varianty firmware). Našťastie jeho zapojenie je veľmi jednoduché a jeho srdcom je veľmi bežný a kutilmi často používaný ARM STM32F105, takže netrvalo dlho a niekto to zreverzoval. Potom už je len krôčik k alternatívnemu firmware. Asi najznámejší je Cortex Amiga Floppy Emulator, z ktorého amigisti jasali, pretože k Amigám sa nedá pripojiť len tak hocijaká floppyna a počet tých funkčných originálnych sa už len znižuje.

Nás však zaujíma iný firmware, ktorý je omnoho univerzálnejší a sú v ňom priamo podporované najznámejšie spectristické formáty obrazov diskiet. Volá sa FlashFloppy a je to pomerne živý projekt, čo je veľmi potešujúce. Ja som ho aktívne v mojom Goteku používal, až kým sa mi prednedávnom nepokazil. Samozrejme som sa ho pokúšal opraviť. Závadu sa mi však nepodarilo odhaliť, tak som ho hodil do elektroodpadu a kúpil som si nový. Až neskôr ma napadlo, že mohol byť len zlý ARM a ten sa dá vymeniť, ale už je neskoro. S novým Gotekom som však narazil na trable pri preprogramovaní a to bol aj impulz pre napísanie toho článku. No a tak sa mu poďme pozrieť bližšie na zub.

Všetky detaily k preflashovaniu síce nájdete priamo vo wiki FlashFloppy, ale sú vo videách a to ja bytostne neznášam. Oveľa lepší je návod pri Cortex Amiga emulatore, tak radšej postupujte podľa neho, len použite FlashFloppy firmware. No a v krátkosti to zosumarizujem aj v rodnom jazyku.

Sú dve možnosti ako sa do Goteku dá dostať nový firmware. Tá jednoduchšia je cez DFU režim, ale treba k nej nie veľmi bežný USB A-A kábel, tak som ju už pri prvom Goteku zavrhol a použil som druhú, trocha komplikovanejšiu možnosť a tú si aj popíšeme. Čo k nej budete potrebovať?

Ako hlavnú súčasť si treba zohnať sériový USB-TTL prevodník. Je lacný, ľahko zohnateľný a jeho úlohou je vytvoriť COM port v počítači. Je to to červené, vyššie na fotke. Ak ešte máte v počítači sériák, tak ho nebudete potrebovať. Potom treba obyčajný mini USB kábel a štyri Dupont kábliky, ktorými všetko pospájate. No a nakoniec treba príslušný software. Pod Linuxom si vystačíte s opensourcovým stm32flash, pre Windowsy si musíte stiahnuť STM32 Flash Loader Demonstrator.

Pred začatím treba ešte Gotek rozobrať, a naspájkovať do neho pinovú lištu do pripravených otvorov, pri napájacom konektore, viď fotka:

Význam pinov je v návode pri Amiga Cortex Emulatore, ale pre istotu zopakujem (popisované zhora): prvé dva su BOOT, tretí je TX, štvrtý RX a tie dva kolmé sú RESET. Pospájajte všetko podľa popisu – teda switchom spojte piny BOOT, TX pripojte na RX USB-TTL adaptéra (alebo vášho sériáku), RX pripojte na TX USB-TTL adaptéra (alebo vášho sériáku), na niektorý zo stredných pinov napájacieho konektora pripojte GND a na pravý pin +5V z USB-TTL adaptéra. Celé to pripojte pomocou USB kábla do počítača a môžete pristúpiť k preprogramovaniu.

Pod Linuxom si pozrite aký /dev/ttyUSB port vám to vytvorilo (obyčajne ttyUSB0), vojdite do adresára kde máte firwmare a následne odpáľte v konzole nasledujúce príkazy:

sudo stm32flash -k /dev/ttyUSB0
sudo stm32flash -vw FF_Gotek*.hex /dev/ttyUSB0

Prvý vám odomkne ochranu proti prečítaniu zapnutú vo výrobe a druhým sa priamo naflashuje firmware. Po ukončení môžete všetko porozpájať, nezabudnite vytiahnuť BOOT switch a voilá, máte FlashFloppy hotové.

Pod Windowsom si nainštalujte STM32 Flash Loader Demonstrator, pozrite sa v správcovi zariadení na ktorom COM porte vám visí prevodník a postupujte podľa návodu pre Cortex Amiga Emulator, ale je to intuitívne aj bez neho. Port si nastavíte, pri prvom flashovaní treba spraviť “Remove protection”, typ ARMa si to zdetekuje samo, podhodíte mu firmware, naflashujete, porozpájate a máte hotovo.

To by som ale nebol ja, keby mi niečo fungovalo na prvý šup, takže mi flashovacie utilitky nechceli komunikovať s ARMom. Windowsácka mi nešla vôbec a linuxácka sa chytala len každý druhý krát a nebola schopná ARMa naprogramovať. Vždy mi to spadlo niekde okolo 30%. Ako prvé ma napadlo dať kratšie kábliky na RX a TX signály, čo čiastočne pomohlo pod Linuxom, detekcia už fungovala vždy, ale programovanie stále padalo. Pod windowsami stále ani ťuk. Pomohlo až pridanie pull-up odporov na RX a TX, viď fotka:

Dal som tam 10k, ale lepšie asi budú 8k2, lebo vo Windowse sa mi to rozbehlo a firmware som úspešne naflashoval, ale pod Linuxami mi to stále padalo, takže tie pull-upy by mali byť tvrdšie. Zaujímavé na tom je to, že toho prvého Goteka čo sa mi pokazil, som pred pár rokmi pod linuxami v pohode naflashoval na tom istom prevodníku cez dlhé káble a bez pull-upov, takže sa tie revízie Goteka predsalen v niečom líšia.

No a následne už to je jednoduché. Spojíte si switchom piny S0 alebo S1, podľa toho ako je to potrebné pre váš radič, (S0 pre Betadisk, +D a +3, S1 pre MB-02+) pripojíte si Gotek k vášmu radiču, na FAT32 flashku si nakopírujete obrazy diskiet, zastrčíte do Goteka a je to. Tlačítkami si potom vyberáte obraz diskety.

So ZX-EVOm a +3 to funguje krásne, ale s MB-02+ to funguje zvláštne. Gotek ako keby nestíhal dodávať BS-DOSu data, a chvíľu mu trvá, kým sa prejaví zmena diskety, občas normálne dostávam data integrity error. Stačí nebyť prirýchly, a funguje to celkom dobre, vrátane zápisu, rozhodne to však nie je štandardné správanie a zaujímavé je, že tomu pomôže príkaz .KILL. Chcem to viac potestovať, nech som si istý čím to je a potom to skúsim keirfovi nahlásiť. Čo sa mi tiež neveľmi páči je, že FlashFloppy v asi sekundových intervaloch hobľuje USB flashku, čo pre dlhšie používanie nemusí byť celkom kóšer, ale pri občasnom prenose súborov z PC do ZXS a opačne to asi nevadí.

Čo je ešte na FlashFloppy zaujímavé? Dá sa k nemu pripojiť malý OLED display (namiesto trojmiestnej LED segmentovky), na ktorom už poskytuje plnohodnotné informácie, takže som si ho už objednal. Po pripojení malého piezo speakra dokonca simuluje zvuk floppy mechaniky, čo je síce nie veľmi užitočná, ale rozhodne vtipná featura. Aj ovládanie sa dá vylepšiť pripojením rotačného voliča. Všetko nájde vo wiki FlashFloppy.

Ešte som zabudol na dôležitý fakt, že na MB-02+ je potrebné cez utilitku “setup” nastaviť pre Gotek parameter ready na Negatívne READY, inak sa Gotek nehlási.

Inak ak má niekto chuť frflať, že chýba podpora D40/D80, tak keirf dosť dobre reaguje na požiadavky, takže pridať podporu D40/D80 by nemal byť zásadný problém. Obyčajne stačí otvoriť issue na githube a pridať popis štruktúry obrazu disku.

A tým som obsah článku dnes vyčerpal. Gotek je určite zaujímavý kus železa a aspoň u mňa prispel k tomu, že môžem klasické diskety už definitívne odložiť do histórie. Niežeby som ich nemal rád, ale v dnešnej dobe sú už maximálne nepraktické.

Be First to Comment

Leave a Reply

Your email address will not be published.