Joystick Tester
Robert Rochon
This short routine permits you to easily test your joysticks and pinpoint potential problems.
The Atari joysticks are mass-produced and tend to malfunction. I have seven joysticks and only three are working properly. The problems are in the contacts which are held together with tape which loosens much too easily. What a pity; the general design of the joysticks is very good.
This program quickly reveals any flaws in a joystick. You should be able to make the screen red when the fire button is pressed. You should also be able to make nine blue dots for the nine different joystick positions. To clear the screen, press any key.
You can also find out how sensitive a joystick is by controlling it with one finger only. With this test a sticky joystick will show up like a sore thumb. For easy identification, number your best joystick. I always use my most sensitive joystick for Star Raiders. Hint: Jamming a ¾ inch plastic, T-shaped pipe connector onto the stick of the joystick will make it twice as sensitive.
Program Design
2 | turns on GR. 3, turns off cursor (POKE 752). |
5-15 | records joystick position. |
200 | erases old line and draws new line. |
230 | plots center and outside dot. |
300 | colors the screen red when fire button is pressed. |
500-520 | writes the value of STICK(0) AND STRIG(0); PEEKs 656 & 657 keeps the writing in one place. |
540 | Keep the screen when any key is pressed. |
999 | C & D last joystick position (C & D are used to minimize blinking on the screen.) A & B new joystick position creates continuous loop. |
PROGRAM. Joystick Tester.
2 GRAPHICS 3 : POKE 752, 1 : GOTO 999 5 A = 24 : B = 14 : GOTO 200 6 A = 24 : B = 6 : GOTO 200 7 A = 25 : B = 10 : GOTO 200 9 A = 16 : B = 14 : GOTO 200 10 A = 16 : B = 6 : GOTO 200 11 A = 15 : B = 10 : GOTO 200 13 A = 20 : B = 15 : GOTO 200 14 A = 20 : B = 5 : GOTO 200 15 A = 20 : B = 10 200 IF C< >A OR D< >B THEN COLOR 4 : DRAWTO 20, 10 : COLOR 2 : DRAWTO A, B 230 COLOR 3 : PLOT 20, 10 : PLOT A, B 300 POKE 712, 66 - STRIG(0) * 66 500 POKE 656, 1 : POKE 657, 5 510 ? "STICK(0) = "; STICK(0), 520 ? "STRIG(0) = "; STRIG(0) 540 IF PEEK(764)< >255 THEN POKE 764, 255 : RUN 999 C = A : D = B : GOTO STICK(0)
Return to Table of Contents | Previous Section | Next Section