Atari Jaguar Joypad na 8bit Atari

Máte Atari Jaguar? Chtěli byste používat jeho ovladač i na osmibitovém Atari?

Nejprve si řekněme, jak vůbec Jagpad funguje. Na první pohled se jaguáří ovladač liší od klasického Atari joysticku počtem tlačítek. Kromě D-padu má 3 "fire" tlačítka, dále tlačítka Pause a Option a klávesnici podobnou té, co najdete na telefonu. Ovladač se k Jaguáru nebo k Atari STE (Atari STE a Falcon mají podobné porty jako Jaguár) připojuje pomocí třířadého 15 pinového konektoru. Každé tlačítko tedy nemůže mít přiřazen svůj pin tak, jako joystick na 8 bitu.

Na první pohled je tedy jasné, že není možné zjistit kompletní stav ovladače najednou. Tlačítka jsou proto rozdělena do čtyř skupin:

1: OPTION, #, 9, 6, 3
2: FIRE C, 0, 8, 5, 2
3: FIRE B, *, 7, 4, 1
4: PAUSE, FIRE A, UP, DOWN, LEFT, RIGHT

Naráz lze zjistit polohu tlačítek pouze v jedné z nich. K otestování stavu celého Jagpadu je tedy potřeba 4 kroků. Každý z nich vypadá takto: nejprve se musí zvolit skupina, která se bude číst a následně je možné zjistit stav tlačítek v této skupině. Celé to vlastně funguje podobně jako známý interface MultiJoy.

Piny 1, 2, 3 a 4 na ovladači jsou vstupní a slouží k výběru skupiny tlačítek. Piny 6, 10, 11, 12, 13 a 14 jsou výstupni, z nich se zjišťuje poloha jednotlivých tlačítek. Piny 7 a 9 slouží k napájení Jagpadu.

Pokud si postavíte adaptér, jehož schéma je na obr. JAGPAD.GR8, můžete si jednoduše vyzkoušet čtení celého ovladače.

Podle schématu port JOY 0 na Atari bude sloužit ke čtení a JOY 1 pro nastavování aktivní pětice tlačítek.

Nejdříve se tedy musí port JOY 1 přepnout do výstupního režimu, JOY 0 zůstane vstupní.

V basicu by to vypadalo takto:

POKE 54018, 0
POKE 54016, 240
POKE 54018, 60

Potom se vybere skupina tlačítek zapsáním hodnoty podle nasledující tabulky do registru $D300 (54018)

239 ($EF) vybere skupinu 1  
223 ($DF) vybere skupinu 2  
191 ($BF) vybere skupinu 3  
127 ($7F) vybere skupinu 4

po prodlevě asi 30 taktů je v dolních 4 bitech registru $D300 připraven stav tlačítek ve vybrané skupině. Příslušné tlačítko FIRE přečteme z adresy $D010 (53264) a PAUSE (aktivní je pouze ve skupině č. 4) z adresy $D011 (53265). Pro zjištění stavu tlačítek není vhodné používat basicové funkce STICK(X) a PTRIG(X), které zřejmě inicializují nějakým způsobem obvod PIA a tak jejich výstupní hodnoty jsou v našem případě zkreslené.

Použití Jagpadu jako joysticku

Jagpad lze použít i jako klasický joystick. Musime si ale pomoci jednoduchou redukcí. Samozřejmě v tomto režimu nebude možné používat celý jagpad, ale pouze D-pad a tlačítko FIRE.

Na obrázku JAG2JOY.GR8 je schéma zapojení redukce mezi Jagpadem a joystick portem na 8bitu. Za povšimnutí stojí výběr 3 skupin tlačítek najednou připojením log 0 na piny 2, 3 a 4. Dosáhne se tim toho, že tlačítka FIRE A, FIRE B a FIRE C budou reagovat stejně. Kromě toho i funkce UP, DOWN, LEFT bude přenesena na tlačítka z číselné klavesnice na Jagpadu, což ale není na závadu.

Tento adaptér funguje nejen na 8bit Atari, ale i na jiných počítačích (třeba Atari ST) nebo herních konzolích (Atari 2600), které používaji standardní joysticky s 9 pinovým D-sub konektorem.

krupkaj/JaySoft