1

Poszukuję opisu protokołu ST-Mouse (Przy okazji Amiga-Muse też). Jest teoretycznie sporo tego na atari-forum, ale wszystko trafia w niedziałające linki na aol, geocities itd.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

2 Ostatnio edytowany przez seban (2013-07-22 21:14:29)

Hej!

Tam nie ma żadnego protokołu, na piny są wystawione sygnały z czterech fototranzystorów. dwa dla osi X, dwa dla osi Y. Typowy koder kwadraturowy (Quadrature Encoder), aby sobie to zdekodować możesz użyć albo software-owego dekodera albo zaimplementować to w sprzęcie. Wszelakie programy na 8-bit Atari jeżeli korzystają z myszy Amiga/Atari ST to próbkują stan pinów PIA (Joy Port) minimum kilka razy na ramkę (im częściej tym szybsze ruchy myszka można "wyczaić" :] ).

http://www.fpga4fun.com/QuadratureDecoder.html

Myszy od Atari ST różnią się tylko zamianą kilku sygnałów.

3

Nie chcę tego dekodować tylko kodować :D
Dziękuję.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

4

Willy, ja to mam gdzieś szczegółowo opisane - poszukam i dam znać.

Arguing with an engineer is a lot like wrestling in the mud with a pig, after a couple of hours you realize the pig likes it...

5 Ostatnio edytowany przez seban (2013-07-24 00:22:29)

Hej!

To jak chcesz generować te sygnały to jest to jeszcze łatwiejsze :)

https://dl.dropboxusercontent.com/u/44199/rotary.png

Incremental Rotary Encoder

6

Enkoder kwadraturowy mówi samo za siebie :D

Jeszcze jedno, jak często np Atari ST próbkuje port ? (zdaje się że wszystkie robią to tak samo często)
Chodzi jak często można sygnał zmieniać aby Atari nie gubiło kroków?

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

7

Jeżeli dobrze pamiętam to obsługą myszy/joyów i klawiatury w Atari ST zajmuje się MCU (bodajże HD6301), po czym już obrobione dane wysyła UART-em dalej (chyba w ST odbiera to ACIA 6850). Z jaką częstotliwością analizuje sygnał HD6301, ja niestety nie mam pojęcia ;/ jedyne co pamiętam to to iż dane wysyła/odbiera z prędkością 7812,5bps.

Jedyne co znalazłem sensownego to ten opis:

https://www.kernel.org/doc/Documentatio … arikbd.txt

a tam piszą:

4. Mouse

The mouse port should be capable of supporting a mouse with resolution of
approximately 200 counts (phase changes or 'clicks') per inch of travel. The
mouse should be scanned at a rate that will permit accurate tracking at
velocities up to 10 inches per second.

The ikbd can report mouse motion in three distinctly different ways. It can
report relative motion, absolute motion in a coordinate system maintained
within the ikbd, or by converting mouse motion into keyboard cursor control
key equivalents.

The mouse buttons can be treated as part of the mouse or as additional
keyboard keys.

8

O i tu jest wszystko napisane:
200 imp na cal, 10 cali na sekunde - czyli 2000 imp na sekunde - reszta to już kwestia dobrania parametrów. Ale to po wakacjach :)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

9 Ostatnio edytowany przez seban (2013-07-24 17:21:57)

no dlatego pozwoleniem sobie wkleić linka do opisu ikbd :) tyle że ja nie weryfikowałem tego w praktyce i nie wiem czy to jest prawda ;)

Trochę zbaczając z tematu co całkiem sporo zmieścili w tym 6301 :) 4k ROM i 128bajtów RAM, a protokół sobie rozbudowali całkiem pokaźnie :) stare dobre czasy :]

10

W każdym razie jest to jakiś punkt zaczepienia.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

11

Willy, znalazłem to o czym mówiłem, wprawdzie jest to o myszy amigowej, ale działają one identycznie, jedyna różnica to zamienione miejscami dwa sygnały we wtyku (Yb i Xb z tego co pamiętam)


Amiga Mouse


       The Amiga supplied mouse is rather simple as mice go.  It provides the
     basic XY quadrature signals and lets the Amiga figure it out from there.
     This is actually a good thing, as it lets us use other devices by simply
     removing any back end processing or signal massaging circuits to get back
     to the raw XY signals.

       Basically, the Amiga mouse has two rollers that touch the mouse ball in
     the X and Y direction.  As the ball rotates in the X (right <-> left)
     direction, X roller shaft spins.  If the ball rotates in the Y (up down)
     direction, the Y roller shaft spins.  Any combination of XY direction, and
     the roller shafts spin a proportionate amount in the X and Y  directions.

       Each shaft is connected at the end to a slotted disk.  Each disk has a
     LED emitter/ detector pair that "reads" the slots as they spin by, creating
     a logic pulse for each slot seen.

       Notice that there are two detectors for the X disk and two for the Y
     disk.  Each pair are mounted physically 180 degrees apart on the slotted
     disk.  The odd number of slots appear to be cut into each disk, so that it
     is impossible for the pair of logic pulses to occur exactly at the same
     time.  This is how the mouse can signal the direction that the mouse is
     moving.

       For example, lets look at just the X slotted disk/detector pair.  Lets
     call the two output signals Xa and Xb.  If the mouse is moving to the
     right, the signals would look like this;

               ____         _______          _______
           Xa      |       |       |        |       |
                   |_______|       |________|       |________


                  ____         _______          _______
           Xb         |       |       |        |       |
                      |_______|       |________|       |________


       The graphics are terrible, but you get the picture.  If the mouse is
     moving in the opposite direction, then Xb would go low first, followed by
     Xa.

       The same thing happens for the Ya and Yb pair.  In fact, you can treat
     the Y pair as up down equivalent to the X pair.

       Each of the four detector signals (x pair, y pair) is conditioned by a
     LM339 Quad Voltage Comparator IC.  The LM339 basically shapes up the
     signals before being sent to the Amiga.  Each of the four comparators is
     used, one for each of the detector signals.

     


       The 10K, 2.7K resistor divider sets a trip voltage of around 1.0 volts
     for the comparator.  This is important since the detector puts out around
     .5V for a low pulse.  The resistor divider is also shared by all four
     comparators in the LM339.

       The two mouse buttons are simply switches to ground.  When you press one
     of the buttons, it grounds a DB9 pin.  The corresponding pull-up resistors
     must be inside the Amiga.

       The mouse cord terminates inside the mouse in a connector marked CN-1.
     Below is the pinouts for the mouse cord.

       DB9     CN-1       Function
     -------------------------------------
        6       1         Left Button
        9       6         Right Button
        8       9         Signal Ground
        7       8         Vcc (+5 Volts)
        3       5         Ya
        1       2         Yb
        2       3         Xa
        4       4         Xb
        5       7         No Connect
      Shield Drain Wire   Ground

Arguing with an engineer is a lot like wrestling in the mud with a pig, after a couple of hours you realize the pig likes it...

12

Zeby nie zakladac nowego tematu,

Szukam schematu klawiatury do ST (Falcona). To co znalazem to jakies nieczytelne skany...
Mam problem z zasilaniem z portu myszy, i nie wiem czy to wina slabego styku czy cos ogranicza na klawiaturze.

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477

13

Znalazłem taki, chyba dość czytelny.

Post's attachments

key1.jpg 428.72 kb, nikt jeszcze nie pobierał tego pliku. 

Tylko zalogowani mogą pobierać załączniki.
Who loves kids? Charlie Waffles!! Damn right...

14

Oto chodzilo.

Dziekuje.

Znaczy ze cos z polaczeniem jest nie tak, bo nie widze tam nic co by prad ograniczalo. ;)

"tatusiu zobacz, narysowałam tobie takie same coś jak na twojej koszulce" 
https://github.com/willyvmm/mouSTer
jmp $e477