Repair & Schematics
Amiga 600

Mouse & Joystick (Amiga 600)

7min

The mouse and Joystick on the Amiga 600 and many other versions are basically the same.

Inputs are sent through a multiplexer that is strobed by the Agnus chip at the video carrier frequency (PAL 3.547MHz / NTSC 4.434MHz), so that 2 buttons / signals can be read per pin (M0V, M0H, M1V, M1H, FIRE0, FIRE1, POT0X, POT0Y, POT1X, POT1Y) by Denise.

Mouse Joystick Schematic
Mouse Joystick Schematic
īģŋ

The mouse and joystick have their hardware design and layout the same, but the Amiga processes the mouse differently to the joystick.

The Multiplexer

The buttons from both the mouse and Joystick go into a multiplexer 74LS157.

74
74
īģŋ

The multiplexer !A/B pin strobed by Agnus (CCKQ_A pin 38) at the video carrier frequency (PAL 3.547MHz / NTSC 4.434MHz) to toggle the Y output between the A input when low, or B input when high.

This allows the Amiga to read one button on the up portion of the strobe, and another button on the down.

!A/B Strobing
!A/B Strobing
īģŋ

Joystick Interface

The joystick is surprisingly the simpler of the two interfaces so let's cover that first.

Document image
īģŋ

The joystick pins are all pulled up to 5V through the R370 4.7k resistors on each pin.

When the joystick direction buttons, or fire buttons are pressed they are simply sunk to ground by the joystick.

Each button pin also has a 6.8nF debounce capacitor, labelled E365 to E368 respectively.

The buttons go into a multiplexer 74LS157. The UP and LEFT buttons go to M1V, and the DOWN and RIGHT buttons go to M1H which is then processed by the Denise IC.

That in a nutshell is the Joystick interface.

Mouse Interface

The mouse interface is wired identical to the Joystick only its signals are processed a little differently.

The Left, Right and Middle mouse buttons are all the same as the joystick. They are simply high when not pressed and low when pressed.

For the mouse wheel movement, the principle is the same, that both inputs to the multiplexer get strobed out, but the mouse pinout is different firstly. Instead of Up Down Left Right it goes V H VQ HQ.

Mouse Pinout
Mouse Pinout
īģŋ

If you probe both V and VQ for the vertical movement, and trigger on rising edge of V, we can see the way to identify an upward scroll over a downward.

When V goes high, on the rising edge if VQ is high, we are moving up. If it is low, we are moving down. It is that simple.

Document image
īģŋ

The speed of the movement is determined by the pulse width i.e. how long the V pin is high for. The shorter the period the faster the mouse move because there are more high pulses during the same period of time and each high pulse triggers a move update.

The output (so the Y pin of the multiplexer) results in constant strobe pulses where the signals between V and VQ differ, and a constant high or low pulse when the two signals match up.

The below shows V on the blue trace, and the Y output of the multiplexer pin 4 on the red trace.

Document image
īģŋ

The left and right movement works the same way as the up and down, where if HQ is high during a rise of H the mouse is moving left, otherwise its moving right.

Components

If you are having a hard time finding all the debounce capacitors or pull up / termination resistors here is an easy map.

Component Map
Component Map
īģŋ

īģŋ