Hlavní strana elektro projektů ZX Spectrum joystick interface

Před pár lety jsem na jednom inzertním serveru objevil osmibit Sinclair ZX Spectrum 48k. I když jsem jej nikdy předtím neměl (měl jsem Commodore 64) tak jsem jej ze zvědavosti koupil. Přece jenom je to legenda a navíc byl opravdu v super stavu. Musel jsem měnit jen membránu klávesnice, ale to se po té době dalo čekat. Vyměnil jsem i všechny elyty, dal jsem tam o něco větší kapacity, ale to bylo spíše pro dobrý pocit. Nahradil jsem i původní stabilizátor 7805, který se dost hřál, za spínanou verzi. Poslední úpravou bylo vyřazení TV modulátoru a vyvedení kompozitního videa místu RF signálu.

Následně jsem ale zjistil, že hry se na klávesnici ovládají opravdu špatně, chtělo to sehnat joystick. Klasický "digitální" joystick ale nikde nebyl k sehnání. Sehnal jsem jen dva úplně nové, ještě ve fólii zatavené, PC joysticky pro gameport. Ty jsou ovšem analogové a ke Spektru přímo připojit nejdou. Proto jsem vymyslel toto rozhranní. Musel jsem si ovšem trochu nastudovat, jak Spektrum k joystickům přistupuje. K tomu je ideální třeba tato stránka, nebo mnoho dalších na netu.

ZX Spectrum joystick interface schéma analogová část
ZX Spectrum joystick interface schéma digitální část
ZX Spectrum joystick interface schéma digitální část

Analogový joystick tvoří vlastně jenom dva potenciometry 100 kΩ, dvě tlačítka a občas obvod "auto fire" s obligátní 555-kou. Na převedení do digitální podoby stačí signál z něj prohnat přes čtyři komparátory obvodu LM339. Pak už následuje přímo budič sběrnice MHB8283. Digitální joystick standardu Kempston spíná k nule, ten se dá připojit k budiči napřímo. Rozhranní má konektory jak pro analogový joystick pro PC gameport, tak pro Kempston standard. Volba se provádí jumperem, který vlastně jen vypne napájení komparátoru, když chci použít Kempston joystick.

Zbývá už jen zajistit, aby se data na sběrnici objevila jen při požadavku na čtení stavu joysticku z adresy 0x1F (31 DEC). Toto má na starosti dekodér adresy, zde neúplný, složený z hradel obvodu 74LS32. Neúplná adresace je běžná praxe, můj dekodér kontroluje jen nejvyšší 3 bity adresy a signály RD a IORQ. Některá rozhranní jsou ještě jednodušší, podstatné ale je, aby to nekolidovalo s jinou periferií. Já používám jen divIDE a s tím je to plně kompatibilní. Na desku jsem přidal i reset tlačítko, které se vždycky hodí.

Zbývá už jen dodat, že komunita kolem osmibitových počítačů je ve světě i u nás stále živá. Měl jsem těch rozhranní celkem 31 a všechny se prodaly. Dvě třetiny do zahraničí, včetně USA a Brazílie třeba. Můj cíl byl, aby mi prodej pokryl náklady na koupi Spektra, příslušenství a hlavně čas na vývoj tohoto rozhranní.

ZX Spectrum joystick interface ZX Spectrum joystick interface DPS
©2005-2099, Milan Špaček.
All rights reserved.