Multi Joy 8
From Atariki
(Różnice między wersjami)
Wersja z dnia 07:01, 12 mar 2006 KMK (Dyskusja | wkład) (zmieniłem zdanie) ← Previous diff |
Wersja z dnia 18:33, 6 kwi 2006 Miker (Dyskusja | wkład) (chyba nic nie pomyliłem...) Next diff → |
||
Linia 1: | Linia 1: | ||
- | {{SDU}} | + | Zbudowany przez [[Raster]]a/C.P.U. prosty interfejs, pozwalający na podłączenie do 8 joysticków Atari [[XL]]/[[XE]], używając w tym celu obu portów joysticka. |
+ | |||
+ | |||
+ | Kontrola programowa: | ||
+ | |||
+ | Inicjalizacja:<pre> | ||
+ | LDA #$0 | ||
+ | STA $D302 ;PACTL | ||
+ | LDA #$F0 ;4HIGHERBITS=OUT,4LOWERBITS=IN | ||
+ | STA $D300 ;PORTA | ||
+ | LDA #$3C | ||
+ | STA $D302 ;PACTL</pre> | ||
+ | |||
+ | Uwaga! Ściśle zaleca się poczekać przynajmniej 30 cykli pomiędzy zapisem do rejestru PORTA i kolejnym odczytem tego rejestru (lub przycisku FIRE), ponieważ niektóre interfejsy MultiJoy mogą reagować nieco wolniej. | ||
+ | |||
+ | |||
+ | Wybór aktywnego joysticka:<pre> | ||
+ | |||
+ | LDA #N ;N=numer joysticka: od 0 do 7 (lub od 0 do 15 dla MultiJoy16) | ||
+ | ASL A | ||
+ | ASL A | ||
+ | ASL A | ||
+ | ASL A | ||
+ | STA $D300 ;PORTA | ||
+ | LDX #$06 ;tu czekamy 30 cykli przed odczytem z PORTA | ||
+ | WAI DEX ;poniewaz niektore interfejsy MultiJoy | ||
+ | BNE WAI ;moga byc nieco wolniejsze. | ||
+ | LDA $D300 ;PORTA | ||
+ | AND #$0F | ||
+ | ;Teraz stan wybranego joysticka (STICK) jest w rejestrze A | ||
+ | LDA $D010 ;TRIG0 | ||
+ | ;Teraz stan wybranego FIRE'a w joysticku (TRIG) jest w rejestrze A</pre> | ||
<center>[[Grafika:Multijoy_8.jpg]]</center> | <center>[[Grafika:Multijoy_8.jpg]]</center> | ||
+ | == Zewnętrzne linki == | ||
+ | *[http://raster.infos.cz/atari/english.htm#MULTIJOY MultiJoy - na stronie Rastera (wersja angielska)] | ||
+ | *[http://raster.infos.cz/atari/hw/multijoy.gif Schemat MultiJoy'a] | ||
+ | *[http://raster.infos.cz/atari/hw/multigam.htm Gry dla MultiJoy'a] | ||
{{stub}} | {{stub}} | ||
[[Kategoria:Peryferia 8-bit]] | [[Kategoria:Peryferia 8-bit]] |
Wersja z dnia 18:33, 6 kwi 2006
Zbudowany przez Rastera/C.P.U. prosty interfejs, pozwalający na podłączenie do 8 joysticków Atari XL/XE, używając w tym celu obu portów joysticka.
Kontrola programowa:
LDA #$0 STA $D302 ;PACTL LDA #$F0 ;4HIGHERBITS=OUT,4LOWERBITS=IN STA $D300 ;PORTA LDA #$3C STA $D302 ;PACTL
Uwaga! Ściśle zaleca się poczekać przynajmniej 30 cykli pomiędzy zapisem do rejestru PORTA i kolejnym odczytem tego rejestru (lub przycisku FIRE), ponieważ niektóre interfejsy MultiJoy mogą reagować nieco wolniej.
LDA #N ;N=numer joysticka: od 0 do 7 (lub od 0 do 15 dla MultiJoy16) ASL A ASL A ASL A ASL A STA $D300 ;PORTA LDX #$06 ;tu czekamy 30 cykli przed odczytem z PORTA WAI DEX ;poniewaz niektore interfejsy MultiJoy BNE WAI ;moga byc nieco wolniejsze. LDA $D300 ;PORTA AND #$0F ;Teraz stan wybranego joysticka (STICK) jest w rejestrze A LDA $D010 ;TRIG0 ;Teraz stan wybranego FIRE'a w joysticku (TRIG) jest w rejestrze A
Zewnętrzne linki
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.