Amiga 4-joystick parport extension
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Parallel port pins:

 (2) - Up1	 (6) - Up2
 (3) - Down1	 (7) - Down2
 (4) - Left1	 (8) - Left2
 (5) - Right1	 (9) - Right2
(13) - Fire1	(11) - Fire2
(18) - Gnd1	(18) - Gnd2

Amiga digital joystick pinout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) - Up
(2) - Down
(3) - Left
(4) - Right
(5) - n/c
(6) - Fire button
(7) - +5V (50mA)
(8) - Gnd
(9) - Thumb button

Amiga mouse pinout
~~~~~~~~~~~~~~~~~~
(1) - V-pulse
(2) - H-pulse
(3) - VQ-pulse
(4) - HQ-pulse
(5) - Middle button
(6) - Left button
(7) - +5V (50mA)
(8) - Gnd
(9) - Right button

Amiga analog joystick pinout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1) - Top button
(2) - Top2 button
(3) - Trigger button
(4) - Thumb button
(5) - Analog X
(6) - n/c
(7) - +5V (50mA)
(8) - Gnd
(9) - Analog Y

Amiga lightpen pinout
~~~~~~~~~~~~~~~~~~~~~
(1) - n/c
(2) - n/c
(3) - n/c
(4) - n/c
(5) - Touch button
(6) - /Beamtrigger
(7) - +5V (50mA)
(8) - Gnd
(9) - Stylus button

-------------------------------------------------------------------------------

NAME     rev ADDR type chip   Description
JOY0DAT      00A   R   Denise Joystick-mouse 0 data (left vert, horiz)
JOY1DAT      00C   R   Denise Joystick-mouse 1 data (right vert,horiz)

        These addresses each read a 16 bit register. These in turn
        are loaded from the MDAT serial stream and are clocked in on
        the rising edge of SCLK. MLD output is used to parallel load
        the external parallel-to-serial converter.This in turn is
        loaded with the 4 quadrature inputs from each of two game
        controller ports (8 total) plus 8 miscellaneous control bits
        which are new for LISA and can be read in upper 8 bits of
        LISAID.
        Register bits are as follows:
        Mouse counter usage (pins  1,3 =Yclock, pins 2,4 =Xclock)

    BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
JOY0DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
JOY1DAT   Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0

        0=LEFT CONTROLLER PAIR, 1=RIGHT CONTROLLER PAIR.
        (4 counters total).The bit usage for both left and right
        addresses is shown below. Each 6 bit counter (Y7-Y2,X7-X2) is
        clocked by 2 of the signals input from the mouse serial
        stream. Starting with first bit recived:

         +-------------------+-----------------------------------------+
         | Serial | Bit Name | Description                             |
         +--------+----------+-----------------------------------------+
         |   0    | M0H      | JOY0DAT Horizontal Clock                |
         |   1    | M0HQ     | JOY0DAT Horizontal Clock (quadrature)   |
         |   2    | M0V      | JOY0DAT Vertical Clock                  |
         |   3    | M0VQ     | JOY0DAT Vertical Clock  (quadrature)    |
         |   4    | M1V      | JOY1DAT Horizontall Clock               |
         |   5    | M1VQ     | JOY1DAT Horizontall Clock (quadrature)  |
         |   6    | M1V      | JOY1DAT Vertical Clock                  |
         |   7    | M1VQ     | JOY1DAT Vertical Clock (quadrature)     |
         +--------+----------+-----------------------------------------+

         Bits 1 and 0 of each counter (Y1-Y0,X1-X0) may be
         read to determine the state of the related input signal pair.
         This allows these pins to double as joystick switch inputs.
         Joystick switch closures can be deciphered as follows:

         +------------+------+---------------------------------+
         | Directions | Pin# | Counter bits                    |
         +------------+------+---------------------------------+
         | Forward    |  1   | Y1 xor Y0 (BIT#09 xor BIT#08)   |
         | Left       |  3   | Y1                              |
         | Back       |  2   | X1 xor X0 (BIT#01 xor BIT#00)   |
         | Right      |  4   | X1                              |
         +------------+------+---------------------------------+

-------------------------------------------------------------------------------

NAME      rev ADDR type chip    Description
JOYTEST       036   W   Denise  Write to all 4  joystick-mouse counters at once.

                  Mouse counter write test data:
     BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx
  JOYxDAT  Y7  Y6  Y5  Y4  Y3  Y2  xx  xx     X7  X6  X5  X4  X3  X2  xx  xx

-------------------------------------------------------------------------------

NAME    rev ADDR type chip   Description
POT0DAT  h  012   R   Paula  Pot counter data left pair (vert, horiz)
POT1DAT  h  014   R   Paula  Pot counter data right pair (vert,horiz)

        These addresses each read a pair of 8 bit pot counters.
        (4 counters total). The bit assignment for both
        addresses is shown below. The counters are stopped by signals
        from 2 controller connectors (left-right) with 2 pins each.

  BIT#  15  14  13  12  11  10  09  08     07  06  05  04  03  02  01  00
 RIGHT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0
  LEFT  Y7  Y6  Y5  Y4  Y3  Y2  Y1  Y0     X7  X6  X5  X4  X3  X2  X1  X0

         +--------------------------+-------+
         | CONNECTORS               | PAULA |
         +-------+------+-----+-----+-------+
         | Loc.  | Dir. | Sym | pin | pin   |
         +-------+------+-----+-----+-------+
         | RIGHT | Y    | RX  | 9   | 33    |
         | RIGHT | X    | RX  | 5   | 32    |
         | LEFT  | Y    | LY  | 9   | 36    |
         | LEFT  | X    | LX  | 5   | 35    |
         +-------+------+-----+-----+-------+

         With normal (NTSC or PAL) horiz. line rate, the pots will
         give a full scale (FF) reading with about 500kohms in one
         frame time. With proportionally faster horiz line times,
         the counters will count proportionally faster.
         This should be noted when doing variable beam displays.

-------------------------------------------------------------------------------

NAME   rev ADDR type chip   Description
POTGO      034   W   Paula  Pot port (4 bit) bi-direction and data, and pot counter start.

-------------------------------------------------------------------------------

NAME   rev ADDR type chip   Description
POTINP     016   R   Paula  Pot pin data read

        This register controls a 4 bit bi-direction I/O port
        that shares the same 4 pins as the 4 pot counters above.

         +-------+----------+---------------------------------------------+
         | BIT#  | FUNCTION | DESCRIPTION                                 |
         +-------+----------+---------------------------------------------+
         | 15    | OUTRY    | Output enable for Paula pin 33              |
         | 14    | DATRY    | I/O data Paula pin 33                       |
         | 13    | OUTRX    | Output enable for Paula pin 32              |
         | 12    | DATRX    | I/O data Paula pin 32                       |
         | 11    | OUTLY    | Out put enable for Paula pin 36             |
         | 10    | DATLY    | I/O data Paula pin 36                       |
         | 09    | OUTLX    | Output enable for Paula pin 35              |
         | 08    | DATLX    | I/O data  Paula pin 35                      |
         | 07-01 |   X      | Not used                                    |
         | 00    | START    | Start pots (dump capacitors,start counters) |
         +-------+----------+---------------------------------------------+

-------------------------------------------------------------------------------
