Witam!
Mysz od pc wysyła wartości przesunięć (impulsy na cal), i dopiero na tej
podstawie driver liczy sobie o ile przesunąć kursor uwzględniająć czułość myszy, aktualną rozdzielczość ekranu itp. Wartości przesunięć podawane są względnie czyli tak jak Casper zauważył, gdy nie ruszamy myszą to odczytujemy 0,0 a gdy pojawi się ruch to odczytamy ilość impulsów na cal o jaką przesunęła się mysz od ostatniego odczytu. Liczniki w myszach są w zależności od standardu 9 lub 8 bitowe przy czym ostatni bit robi za znak, ale nie jest to kod U2. Ponadto mysz sygnalizuje przekręcenie się liczników (overflow) co oznacza, że zbyt rzadko driver odczytuje liczniki lub gość z łapą na myszy jest jakiś nerwowy (właśnie dostał w QUAKE z moździerza). Tak działają myszy na RS232 i PS2, pod USB będzie analogicznie pomijając inny protokół komunikacji. Różnica między myszami od ST i AMIGI a PC (PS2 czy RS232) polega na tym, że liczniki zliczające impulsy z rolek znajdują się w przypadku amigi i st w kompie a w przypadku pc w myszy. Czyli kabel myszy ST I AMIGI transmituje wzmocnione sygnały z fotodetektorów plus sygnalizacja wciśnięcia przycisków, a w myszach pc sygnały te obrabia mikrokontroler i nadaje szeregowo komunikaty według odpowiedniego protokołu. Zaletą tej szeregowej transmisji jest możliwość rozszerzenia protokołu a jakieś dodatkowe rzeczy bez zmiany okablowania, wtyków stąd kilka standardów protokołów obsługi myszy w zależności od liczby kółek, przycisków itp.
Ok, a teraz o myszy dla ATARI XL
Najprościej podłączyć mysz od ST lub AMIGi, hmmm to wszycy wiemy.
Oczywiście problem dla programisty - czasochłonna obsługa ustrojstwa - to też wiadomo.
Można inaczej - gdzieś w sieci znalazłem schemat podłączenia myszy także od AMIGI LUB ST, ale na kilku scalakach były zbudowane liczniki położenia. Całość była podłączona do jednego portu o ile pamiętam a odczyt z liczników następował szeregowo - zamiast kika tysięcy razy na sek wywoływać prcedurę obsługi myszy spokojnie, 50 razy na sek odczytujemy liczniki.
Po drugie - niejaki XXL straszył, źe opublikuje schemat podłączenia myszy, klawiatury, touchpada do małego atari, ale nie wiem na jakim etapie jest ten projekt - układ miał być wbudowany do atari o ile pamiętam.
Po trzecie - w sieci można znaleść schematy pod tytułem PS2 Mouse adapter for the Atari czy AMIGA. Krótko mówiąc mamy mysz PS2 i przy pomocy sprytnego urządzenia można to podłączyć do Atari ST, XL, AMIGI a zapewne do COMODORKA także. Swego czasu Elbox sprzedawał takie adaptery dla AMIGI.
I co z tego dla ATARI XL?
MOżna mysz PS2 podłączyć do atari tak jak myszy od ST/AMIGA.
W minione wakacje chciałem coś takiego zrobić i prototyp prawie działa. W założeniach układ jest prosty- mikrokontroler pic 16f84 plus złącza do PS2 i 9 pinowe do portu joysticka. http://members.aol.com/tgkirk/ps2mous.htm to jest schemat takiego urządzenia, moje różni się tym, że ma przełącznik 4 pozycyjny bo ma więcej trybów działania. Oprócz trybu emulacji ST/AMIGI miało to działać jako joystick (i działa) oraz jako mysz PS2 tzn przy pomocy specjalnego protokołu można dobrać się do liczników pozycji. Transmisja odbywa się paczkami po 4 bity (bo pic dołączony jest do jednego portu) i według mnie zajmuje mało czasu (trocchę mniej niż liczenie impulsów z myszek St). Działają trzy klawisze myszy podłączone do FIRE i obydwóch PADDLE, zamiast myszy można podłączyć jakiegoś touchpada na ps2 - niestety chwilowo teoretycznie gdzyż jeszcze nie oprogramowałem pica do końca. Niestety, chwilowo projekt stanął w miejscu i jakoś czas nie pozwala na ruszenie go. Acha, chciałem zrobić dodatkowo, aby myszka emulowała paddle czyli odczyt współrzędnych odbywał się z rejestrów paddle - jest to do wykonania - można do tego schematu dołączyć np. potencjometry cyfrowe i finał, ale ja chcę to zrobić mniejszym kosztem.
Po czwarte
Teoretycznie rzecz biorąc bierzemy myszkę PS2 i przy pomocy przejściówki podłączamy do portu joysticów lub obinamy wtyk ps2 i podpinamy ..... . Napięcia się zgadzają czyli bez zbędnych konwenterów napięć. Teraz gdy mamy to wszysko należy napisać soft który odczyta zawartości liczników z myszki PS2. Prawda że proste? Oczywiście!!! PS2 to nic innego jak 11bitów na ramkę czyli 1 bit startu 8 danych 1 bit parzystości i 1 bit stopu, zwykły RS - tylko nie pamiętam jaka jest prędkość transmisji. Ja tak robiłem i efekty były... hmmm niezadowalały mnie, jakiś błąd w sofcie mi się plątał i nie znalazłem jaki. Acha, transmisja jest na tyle duża, że niejaki ANTIC i jego DMA mogą doprowadzić do błędów, przekłamnań
Na tym kończę i sorki za przydługi tekst.
Pozdrawiam DarkDK