[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IIc joystick port problem
In article <4vvi70$hj1@abel.richland.cc.il.us>,
s49175@abel.richland.cc.il.us (Chris Michael Tribout) writes:
>
>I bought an Apple //c about 3 years ago. I haven't had any problems up
>until now... I have tried 2 joysticks and have come up with the same
>problem with each:
>
>When the joystick is plugged in, the horizontal works fine, but the
>vertical seems to be stuck in the "up" position. I wrote a quick BASIC
>program to spit out the values... the Y value ranges from 0 in the "up"
>position to 3 in the "down" position instead of the normal 255.
>
>
Since you have tried two sticks and obtained similar results, this
does sound like a IIc hardware problem.
You can verify that your stick's vertical pot is in good shape by
trying the stick on another computer or by checking joystick vertical pot
Resistance using an Ohm meter.
Facing you, the standard 9-pin IIc joystick plug looks like this ...
1 2 3 4 5
0 0 0 0 0 2= 5V 3= GND 8= PDL1
0 0 0 0
6 7 8 9
Measure R between pins 2 (+5V) and 8 (PDL1). It should go from about
150K Ohms (stick down) to nearly 0 Ohms (stick up). If it does, your
joystick vertical pot is okay.
A fairly easy IIc hardware test is to run a program which continually
prints PDL(1) on the screen with _no_ joystick plugged in. For example:
10 zz = PDL(1)
20 PRINT "PDL(1) IS ";ZZ;"."
30 ZZ= PEEK(49152):IF ZZ<128THEN 10
The display should show "PDL(1) IS 255." over and over, until you
press a key. If it shows "PDL(1) IS 3." or any similarly low value, you
have a hardware problem of some kind on the motherboard.
Suppose it is a motherboard problem. Since there is some response to
your joystick, the indication is that one of two components is not
working:
1. The section of the 558 timer IC which handles joystick PDL1 input may
have been zapped.
2. The 0.022 uF capacitor which connects to the PDL1 input may be 'open'
or it may have come loose, or a connection solder point may have fractured
or a circuit trace to the capacitor may have broken (perhaps as a result
of stress in frequent use of the joystick socket). Whatever, it comes to
the same thing: the PDL1 RC timing circuit is working without the expected
C value. Instead of 0.022 uF, C consists of a very, very small value
(constituted, probably, from stray capacitance). Put another way, your
RxC is roughly 100 times smaller than it should be.
It is not too difficult to test for a bad or disconnected capacitor.
Open up one of your joysticks. Using clips, connect a capacitor (roughly
0.05--0.01) from the PDL1 lead of your vertical pot to the GROUND lead
(the lead going to pin 3 of the plug).
Plug in the joystick and run the program. If the value is not much
changed, a blown 558 section seems more likely. (Probably, you will need
to replace the IC.) If the value shown is notably higher, then, most
likely, a bad or loose 0.022 capacitor is the problem.
A permanent, fairly easy, 'bad capacitor' fix is to obtain a good
0.022 capacitor, open the IIc, and connect the capacitor from the PDL1
input of the 558 to GROUND. If possible, get a capacitor of about the same
size and type as the 0.022 caps on the motherboard. You can check to see
if a particular capacitor works well before installing it by using the
opened joystick & clips setup described above.
I do not have a IIc schematic; however, on a II+, IIe, and IIgs, you
could _carefully_ solder the capacitor to directly to pins of the 558--
i.e. from pin 15 (PDL1 input) to pin 12 (GROUND).
You can check to see that a 558 IC pin is the PDL1 input by measuring
R from the PDL1 lead in your joystick (which has been opened) to the IC
pin. R should be about 100 Ohms.
Rubywand