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