xref: /OK3568_Linux_fs/kernel/Documentation/input/devices/amijoy.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~
2*4882a593SmuzhiyunAmiga joystick extensions
3*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunAmiga 4-joystick parport extension
7*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunParallel port pins:
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun=====  ======== ====   ==========
13*4882a593SmuzhiyunPin    Meaning  Pin    Meaning
14*4882a593Smuzhiyun=====  ======== ====   ==========
15*4882a593Smuzhiyun 2     Up1	 6     Up2
16*4882a593Smuzhiyun 3     Down1	 7     Down2
17*4882a593Smuzhiyun 4     Left1	 8     Left2
18*4882a593Smuzhiyun 5     Right1	 9     Right2
19*4882a593Smuzhiyun13     Fire1	11     Fire2
20*4882a593Smuzhiyun18     Gnd1	18     Gnd2
21*4882a593Smuzhiyun=====  ======== ====   ==========
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunAmiga digital joystick pinout
24*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun=== ============
27*4882a593SmuzhiyunPin Meaning
28*4882a593Smuzhiyun=== ============
29*4882a593Smuzhiyun1   Up
30*4882a593Smuzhiyun2   Down
31*4882a593Smuzhiyun3   Left
32*4882a593Smuzhiyun4   Right
33*4882a593Smuzhiyun5   n/c
34*4882a593Smuzhiyun6   Fire button
35*4882a593Smuzhiyun7   +5V (50mA)
36*4882a593Smuzhiyun8   Gnd
37*4882a593Smuzhiyun9   Thumb button
38*4882a593Smuzhiyun=== ============
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunAmiga mouse pinout
41*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun=== ============
44*4882a593SmuzhiyunPin Meaning
45*4882a593Smuzhiyun=== ============
46*4882a593Smuzhiyun1   V-pulse
47*4882a593Smuzhiyun2   H-pulse
48*4882a593Smuzhiyun3   VQ-pulse
49*4882a593Smuzhiyun4   HQ-pulse
50*4882a593Smuzhiyun5   Middle button
51*4882a593Smuzhiyun6   Left button
52*4882a593Smuzhiyun7   +5V (50mA)
53*4882a593Smuzhiyun8   Gnd
54*4882a593Smuzhiyun9   Right button
55*4882a593Smuzhiyun=== ============
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunAmiga analog joystick pinout
58*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun=== ==============
61*4882a593SmuzhiyunPin Meaning
62*4882a593Smuzhiyun=== ==============
63*4882a593Smuzhiyun1   Top button
64*4882a593Smuzhiyun2   Top2 button
65*4882a593Smuzhiyun3   Trigger button
66*4882a593Smuzhiyun4   Thumb button
67*4882a593Smuzhiyun5   Analog X
68*4882a593Smuzhiyun6   n/c
69*4882a593Smuzhiyun7   +5V (50mA)
70*4882a593Smuzhiyun8   Gnd
71*4882a593Smuzhiyun9   Analog Y
72*4882a593Smuzhiyun=== ==============
73*4882a593Smuzhiyun
74*4882a593SmuzhiyunAmiga lightpen pinout
75*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun=== =============
78*4882a593SmuzhiyunPin Meaning
79*4882a593Smuzhiyun=== =============
80*4882a593Smuzhiyun1   n/c
81*4882a593Smuzhiyun2   n/c
82*4882a593Smuzhiyun3   n/c
83*4882a593Smuzhiyun4   n/c
84*4882a593Smuzhiyun5   Touch button
85*4882a593Smuzhiyun6   /Beamtrigger
86*4882a593Smuzhiyun7   +5V (50mA)
87*4882a593Smuzhiyun8   Gnd
88*4882a593Smuzhiyun9   Stylus button
89*4882a593Smuzhiyun=== =============
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun-------------------------------------------------------------------------------
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun======== === ==== ==== ====== ========================================
94*4882a593SmuzhiyunNAME     rev ADDR type chip   Description
95*4882a593Smuzhiyun======== === ==== ==== ====== ========================================
96*4882a593SmuzhiyunJOY0DAT      00A   R   Denise Joystick-mouse 0 data (left vert, horiz)
97*4882a593SmuzhiyunJOY1DAT      00C   R   Denise Joystick-mouse 1 data (right vert,horiz)
98*4882a593Smuzhiyun======== === ==== ==== ====== ========================================
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun        These addresses each read a 16 bit register. These in turn
101*4882a593Smuzhiyun        are loaded from the MDAT serial stream and are clocked in on
102*4882a593Smuzhiyun        the rising edge of SCLK. MLD output is used to parallel load
103*4882a593Smuzhiyun        the external parallel-to-serial converter.This in turn is
104*4882a593Smuzhiyun        loaded with the 4 quadrature inputs from each of two game
105*4882a593Smuzhiyun        controller ports (8 total) plus 8 miscellaneous control bits
106*4882a593Smuzhiyun        which are new for LISA and can be read in upper 8 bits of
107*4882a593Smuzhiyun        LISAID.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun        Register bits are as follows:
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun        - Mouse counter usage (pins  1,3 =Yclock, pins 2,4 =Xclock)
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun======== === === === === === === === === ====== === === === === === === ===
114*4882a593Smuzhiyun    BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
115*4882a593Smuzhiyun======== === === === === === === === === ====== === === === === === === ===
116*4882a593SmuzhiyunJOY0DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
117*4882a593SmuzhiyunJOY1DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
118*4882a593Smuzhiyun======== === === === === === === === === ====== === === === === === === ===
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun        0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
121*4882a593Smuzhiyun        (4 counters total). The bit usage for both left and right
122*4882a593Smuzhiyun        addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
123*4882a593Smuzhiyun        clocked by 2 of the signals input from the mouse serial
124*4882a593Smuzhiyun        stream. Starting with first bit received:
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun         +-------------------+-----------------------------------------+
127*4882a593Smuzhiyun         | Serial | Bit Name | Description                             |
128*4882a593Smuzhiyun         +========+==========+=========================================+
129*4882a593Smuzhiyun         |   0    | M0H      | JOY0DAT Horizontal Clock                |
130*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
131*4882a593Smuzhiyun         |   1    | M0HQ     | JOY0DAT Horizontal Clock (quadrature)   |
132*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
133*4882a593Smuzhiyun         |   2    | M0V      | JOY0DAT Vertical Clock                  |
134*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
135*4882a593Smuzhiyun         |   3    | M0VQ     | JOY0DAT Vertical Clock  (quadrature)    |
136*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
137*4882a593Smuzhiyun         |   4    | M1V      | JOY1DAT Horizontal Clock                |
138*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
139*4882a593Smuzhiyun         |   5    | M1VQ     | JOY1DAT Horizontal Clock (quadrature)   |
140*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
141*4882a593Smuzhiyun         |   6    | M1V      | JOY1DAT Vertical Clock                  |
142*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
143*4882a593Smuzhiyun         |   7    | M1VQ     | JOY1DAT Vertical Clock (quadrature)     |
144*4882a593Smuzhiyun         +--------+----------+-----------------------------------------+
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun         Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be
147*4882a593Smuzhiyun         read to determine the state of the related input signal pair.
148*4882a593Smuzhiyun         This allows these pins to double as joystick switch inputs.
149*4882a593Smuzhiyun         Joystick switch closures can be deciphered as follows:
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun         +------------+------+---------------------------------+
152*4882a593Smuzhiyun         | Directions | Pin# | Counter bits                    |
153*4882a593Smuzhiyun         +============+======+=================================+
154*4882a593Smuzhiyun         | Forward    |  1   | Y1 xor Y0 (BIT#09 xor BIT#08)   |
155*4882a593Smuzhiyun         +------------+------+---------------------------------+
156*4882a593Smuzhiyun         | Left       |  3   | Y1                              |
157*4882a593Smuzhiyun         +------------+------+---------------------------------+
158*4882a593Smuzhiyun         | Back       |  2   | X1 xor X0 (BIT#01 xor BIT#00)   |
159*4882a593Smuzhiyun         +------------+------+---------------------------------+
160*4882a593Smuzhiyun         | Right      |  4   | X1                              |
161*4882a593Smuzhiyun         +------------+------+---------------------------------+
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun-------------------------------------------------------------------------------
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun========  === ==== ==== ====== =================================================
166*4882a593SmuzhiyunNAME      rev ADDR type chip    Description
167*4882a593Smuzhiyun========  === ==== ==== ====== =================================================
168*4882a593SmuzhiyunJOYTEST       036   W   Denise  Write to all 4  joystick-mouse counters at once.
169*4882a593Smuzhiyun========  === ==== ==== ====== =================================================
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun                  Mouse counter write test data:
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun========= === === === === === === === === ====== === === === === === === ===
174*4882a593Smuzhiyun     BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
175*4882a593Smuzhiyun========= === === === === === === === === ====== === === === === === === ===
176*4882a593Smuzhiyun  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
177*4882a593Smuzhiyun  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
178*4882a593Smuzhiyun========= === === === === === === === === ====== === === === === === === ===
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun-------------------------------------------------------------------------------
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun======= === ==== ==== ====== ========================================
183*4882a593SmuzhiyunNAME    rev ADDR type chip   Description
184*4882a593Smuzhiyun======= === ==== ==== ====== ========================================
185*4882a593SmuzhiyunPOT0DAT  h  012   R   Paula  Pot counter data left pair (vert, horiz)
186*4882a593SmuzhiyunPOT1DAT  h  014   R   Paula  Pot counter data right pair (vert,horiz)
187*4882a593Smuzhiyun======= === ==== ==== ====== ========================================
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun        These addresses each read a pair of 8 bit pot counters.
190*4882a593Smuzhiyun        (4 counters total). The bit assignment for both
191*4882a593Smuzhiyun        addresses is shown below. The counters are stopped by signals
192*4882a593Smuzhiyun        from 2 controller connectors (left-right) with 2 pins each.
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun====== === === === === === === === === ====== === === === === === === ===
195*4882a593Smuzhiyun  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
196*4882a593Smuzhiyun====== === === === === === === === === ====== === === === === === === ===
197*4882a593Smuzhiyun RIGHT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
198*4882a593Smuzhiyun  LEFT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
199*4882a593Smuzhiyun====== === === === === === === === === ====== === === === === === === ===
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun         +--------------------------+-------+
202*4882a593Smuzhiyun         | CONNECTORS               | PAULA |
203*4882a593Smuzhiyun         +-------+------+-----+-----+-------+
204*4882a593Smuzhiyun         | Loc.  | Dir. | Sym | pin | pin   |
205*4882a593Smuzhiyun         +=======+======+=====+=====+=======+
206*4882a593Smuzhiyun         | RIGHT | Y    | RX  | 9   | 33    |
207*4882a593Smuzhiyun         +-------+------+-----+-----+-------+
208*4882a593Smuzhiyun         | RIGHT | X    | RX  | 5   | 32    |
209*4882a593Smuzhiyun         +-------+------+-----+-----+-------+
210*4882a593Smuzhiyun         | LEFT  | Y    | LY  | 9   | 36    |
211*4882a593Smuzhiyun         +-------+------+-----+-----+-------+
212*4882a593Smuzhiyun         | LEFT  | X    | LX  | 5   | 35    |
213*4882a593Smuzhiyun         +-------+------+-----+-----+-------+
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun         With normal (NTSC or PAL) horiz. line rate, the pots will
216*4882a593Smuzhiyun         give a full scale (FF) reading with about 500kohms in one
217*4882a593Smuzhiyun         frame time. With proportionally faster horiz line times,
218*4882a593Smuzhiyun         the counters will count proportionally faster.
219*4882a593Smuzhiyun         This should be noted when doing variable beam displays.
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun-------------------------------------------------------------------------------
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
224*4882a593SmuzhiyunNAME   rev ADDR type chip   Description
225*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
226*4882a593SmuzhiyunPOTGO      034   W   Paula  Pot port (4 bit) bi-direction and data, and pot
227*4882a593Smuzhiyun			    counter start.
228*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun-------------------------------------------------------------------------------
231*4882a593Smuzhiyun
232*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
233*4882a593SmuzhiyunNAME   rev ADDR type chip   Description
234*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
235*4882a593SmuzhiyunPOTINP     016   R   Paula  Pot pin data read
236*4882a593Smuzhiyun====== === ==== ==== ====== ================================================
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun        This register controls a 4 bit bi-direction I/O port
239*4882a593Smuzhiyun        that shares the same 4 pins as the 4 pot counters above.
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
242*4882a593Smuzhiyun         | BIT#  | FUNCTION | DESCRIPTION                                 |
243*4882a593Smuzhiyun         +=======+==========+=============================================+
244*4882a593Smuzhiyun         | 15    | OUTRY    | Output enable for Paula pin 33              |
245*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
246*4882a593Smuzhiyun         | 14    | DATRY    | I/O data Paula pin 33                       |
247*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
248*4882a593Smuzhiyun         | 13    | OUTRX    | Output enable for Paula pin 32              |
249*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
250*4882a593Smuzhiyun         | 12    | DATRX    | I/O data Paula pin 32                       |
251*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
252*4882a593Smuzhiyun         | 11    | OUTLY    | Out put enable for Paula pin 36             |
253*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
254*4882a593Smuzhiyun         | 10    | DATLY    | I/O data Paula pin 36                       |
255*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
256*4882a593Smuzhiyun         | 09    | OUTLX    | Output enable for Paula pin 35              |
257*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
258*4882a593Smuzhiyun         | 08    | DATLX    | I/O data  Paula pin 35                      |
259*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
260*4882a593Smuzhiyun         | 07-01 |   X      | Not used                                    |
261*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
262*4882a593Smuzhiyun         | 00    | START    | Start pots (dump capacitors,start counters) |
263*4882a593Smuzhiyun         +-------+----------+---------------------------------------------+
264