Amiga 500 Joystick and Mouse Port Repair

The Amiga 500 has two nine-pin game ports, CN1 and CN2, used for the mouse, joysticks and a light pen; Commodore's manual says the mouse must go in the first port.[1] The four direction or mouse-movement lines of each port pass through EMI filters to U15, a 74LS157 multiplexer that feeds them to Denise (U4). The fire or left mouse button goes to CIA U7, and the right mouse button and the potentiometer inputs go to Paula (U3). Pin 7 of each port carries +5 V through a low-value resistor, R401 for CN1 and R408 for CN2.[2][3] Plugging or unplugging a controller with the machine on can short a pin to the connector shell, "blowing a resistor (or worse an 8520 CIA chip!)".[4] Each line can be traced from the port to the chip that reads it.
Symptoms
[edit | edit source]Use a known good mouse and joystick first; Commodore and Perry both start there.[3][5] Perry's Amiga Troubleshooter chart lists:[5]
| Symptom | Suspects |
|---|---|
| Mouse pointer does not move; both buttons and the joystick work | EMI401, the 5.1 Ω resistor that supplies 5 V to the mouse; Denise U4; U15 (74LS157) |
| Mouse or joystick not working | U15; Denise U4; U33 (74F04) |
| Left mouse button and joystick fire button not working | CIA U7 |
| Right mouse button not working | Paula U3 |
The game port pin-outs are in Commodore's manual: pins 1 to 4 carry the directions (forward, back, left, right) or the mouse quadrature signals, pin 5 is POT X or the middle button, pin 6 fire or the left button, pin 7 +5 V at up to 100 mA, pin 8 ground, and pin 9 POT Y or the right button.[1]
Tools and parts
[edit | edit source]- A multimeter and a logic probe or oscilloscope. Sams uses logic readings and pulse checks; Commodore takes its readings with an oscilloscope.[6][7]
- A known good mouse and joystick.[3]
- AmigaBASIC, for Sams' test programs.[6]
- A Torx T10 screwdriver for the case and top shield.[8]
- Replacement parts as needed: a 74LS157 for U15, an 8520 for U7 (socketed on both board revisions), and a resistor for R401 or R408. The schematic marks R401 and R408 as 4.7 Ω; the Rev. 6A/7 parts list gives 5.1 Ω, 1/2 W, and Perry gives 5.1 Ω.[2][9][5]
Procedure
[edit | edit source]Open the machine
[edit | edit source]Remove the six T10 Torx screws along the front and rear edges of the bottom case and lift off the top. Unplug the keyboard from CN13 and its ground lead from the drive, lift the keyboard out, then remove the four T10 screws of the top shield, straighten its four tabs and lift it off.[8]

Find the parts
[edit | edit source]On Commodore's Rev. 5 layout the game ports are at the right rear of the board, each with a row of EMI filters behind it. U15 sits below C324 and C334, and the resistor pack RP401 lies below the CN1 filters.[10]
Check the +5 V feed
[edit | edit source]- With the machine on and nothing plugged in, measure pin 7 of each port to ground. It should read +5 V.[1]
- If it is missing, measure across R401 (CN1) or R408 (CN2). The schematic feeds each from VCC, with a 0.01 µF filter, E401 or E408, after it.[2]
- Replace an open resistor. SukkoPera attributes blown resistors and CIAs on these ports to plugging and unplugging controllers with the power on, so connect them only with the machine switched off.[4]
Check the direction and movement lines
[edit | edit source]Commodore's checks for the first port, CN1, with a joystick connected:[3]
| Step | Measure | Expect | If wrong |
|---|---|---|---|
| 1 | U15 pin 2 (1A) | +5 V, 0 V when pushed UP | U15, EMI411, RP401, CN1 |
| 2 | U15 pin 3 (1B) | 0 V for LEFT | U15, EMI412, RP401, CN1 |
| 3 | U15 pin 5 (2A) | 0 V for DOWN | U15, EMI413, RP401, CN1 |
| 4 | U15 pin 6 (2B) | 0 V for RIGHT | U15, EMI414, RP401, CN1 |
| 5 | EMI415 pin 2 (FIRE0) | 0 V with fire pressed | EMI415, U7, CN1 |
| 6 | U15 pin 4 (1Y) | +5 V centred, multiplexed signal for up or left | U15, U4, RP404, RP405 |
| 7 | U15 pin 7 (2Y) | +5 V centred, multiplexed signal for right or down | U15, U4, RP404, RP405 |
For the second port, CN2, the same checks use U15 pins 11 (up), 10 (left), 14 (down) and 13 (right), filters EMI421-EMI424, fire through EMI425 (FIRE1), and outputs on pins 9 (3Y) and 12 (4Y).[3]
U15's select input, pin 1, is clocked from Agnus. Sams checks for pulses there: if they are missing, suspect Agnus (U2); if they are present and the inputs are right, check U15's outputs on pins 9 and 12 (port 2) or 4 and 7 (port 1), and if those are right, suspect Denise (U4).[6] On the Rev. 6A/7 schematic pin 1 is driven by the signal _CCK_B.[2]
Check the buttons
[edit | edit source]- Left mouse button or port 1 fire: Sams looks for a logic low at pin 8 of CIA U7 while the button is held. If it is missing, check pin 6 of the port and the mouse; if it is present, suspect U7.[6]
- Port 2 fire: look for a logic low at pin 9 of U7. Sams prints this as "pin 9 of Interface IC U9" and then refers to U7; the schematic puts FIRE1 on U7 pin 9 (port A, bit 7) and FIRE0 on pin 8.[6][11]
- Right mouse button: look for a logic low at pin 33 of Paula (U3) while it is held. If it is missing, check pin 9 of the port; if it is present, suspect Paula.[6]
Replace a chip
[edit | edit source]- U15 is a 74LS157. Desolder it and fit the new part with its notch matching the board marking.[9]
- CIA U7 is in a 40-pin socket on both board revisions, so it can be swapped for a known good 8520. U8 is the same part, and Commodore's parts lists give both as 8520 R4 (318029-02).[9]
- Denise (U4) and Paula (U3) are in 48-pin sockets.[9]
Reassemble
[edit | edit source]Reverse Sams' removal steps: the top shield and its four T10 screws, the keyboard and its ground lead, and the top case with six T10 screws.[8]
Testing
[edit | edit source]
Sams' AmigaBASIC programs read the ports directly.[6] For a joystick in port 2:
10 CLS 20 LOCATE 1,1 30 PRINT "X=";STICK(2) 40 PRINT "Y=";STICK(3) 50 PRINT "BP=";STRIG(2) 60 PRINT "BD=";STRIG(3) 70 GOTO 20
All four numbers read 0 with the joystick centred. X reads −1 for left and 1 for right; Y reads −1 for up and 1 for down. BP changes to −1 briefly when the button is pressed, and BD reads −1 while it is held.[6]
For the mouse in port 1:
10 CLS 20 LOCATE 1,1 30 FOR X = 0 TO 6 40 PRINT X+1,MOUSE(X) 50 NEXT X:GOTO 20
The first number counts left-button presses within two seconds (−1, −2 or −3). The second and third change whenever the mouse moves, the fourth and fifth when the left button is pressed after the mouse has moved, and the sixth and seventh change continuously while the button is held and the mouse moved.[6]
Related pages
[edit | edit source]- Amiga 500
- Amiga 500 Troubleshooting Guide
- Amiga 500 Maintenance Guide
- Amiga 500 Video Output Repair
- Amiga 500 Service Manual (314981-04)
- Sams Computerfacts CSCS26 Amiga 500
References
[edit | edit source]- ↑ 1.0 1.1 1.2 Service Manual A500, input/output connectors, "Mouse/Game Controller Connectors", PDF pp. 79-80: pin assignments, the +5 V warning on pin 7, and the mouse in the first connector.
- ↑ 2.0 2.1 2.2 2.3 Service Manual A500, schematic 312511-03, Rev. 6A/7, sheet 5 of 8, printed p. 5-14 (PDF p. 70): CN1, CN2, E401, E408, E411-E427, RP401, R401 and R408 (marked 4.7), U15 (74LS157) and Denise.
- ↑ 3.0 3.1 3.2 3.3 3.4 Commodore Business Machines, Service Manual A500, PN-314981-04, October 1990, section 3, troubleshooting section 6, "Troubleshooting the A500 system control ports", printed pp. 3-11 and 3-12 (PDF pp. 42-43). Hosted at Amiga 500 Service Manual (314981-04).
- ↑ 4.0 4.1 SukkoPera, OpenAmigaJoyMouseSwitcher—link(accessed 2026-10-01)
- ↑ 5.0 5.1 5.2 Ian Perry, Amiga Troubleshooter (1993), "Mouse or joystick problems", reproduced at Commodore Amiga problems—link(accessed 2026-10-25)
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 Howard W. Sams & Co., Computerfacts CSCS26, Commodore Amiga A500 (1988), troubleshooting, "Joystick" and "Mouse port", printed pp. 27-28 (PDF pp. 31-32). Hosted at Sams Computerfacts CSCS26 Amiga 500.
- ↑ Service Manual A500, basic preliminary checks, printed p. 3-3 (PDF p. 34).
- ↑ 8.0 8.1 8.2 Sams Computerfacts CSCS26, disassembly instructions, printed p. 18 (PDF p. 22).
- ↑ 9.0 9.1 9.2 9.3 Service Manual A500, component parts lists, PCB assembly 312510 Rev. 5 (PDF pp. 50-51) and Rev. 6A/7 (PDF p. 52): 40-pin sockets at U6-U8, 48-pin sockets at U3-U5; 8520 R4, 318029-02; 74LS157; R401, R405, R406 and R408 5.1 Ω 1/2 W on Rev. 6A/7.
- ↑ Service Manual A500, A500 board layout #312510, Rev. 5, printed p. 4-7 (PDF p. 54).
- ↑ Service Manual A500, schematic 312511-03, sheet 6 of 8, printed p. 5-15 (PDF p. 71): CIA U7 port A, _FIRE1 on pin 9 and _FIRE0 on pin 8.