[Coco] Coco3 joystick action survey

Robert Gault robert.gault at worldnet.att.net
Mon Mar 10 23:01:26 EDT 2008


I could use some help with this. I've been acting as a beta tester on a 
game for the Coco3. The game has a cursor that is moved around on the 
screen to select items. At the moment, there are two other testers and 
the cursor action on my system seems to be unique in that the cursor 
jitters. That is the pointer at most locations on the screen is never 
stationary but always jiggles slightly. The cursor is completely steady 
on the other systems.

This has been very frustrating for the programmer because it is unlikely 
that my system is unique and it has been impossible (using software) to 
remove the jitter. What I would like to find out is how many Coco3s 
exhibit jitter in the joystick values vs those that don't. I'm asking 
readers to run the short Basic program below and very slowly move 
joystick (right, left, or both) around the screen. Try to find a 
locations where the value obtained by the JOYSTK(#) command is not 
stable. Please report back here what you see.

10 POKE &HFFD9,0       2MHz CPU clock
20 WIDTH80         or you can use 40
30 FOR I=0 TO 1 STEP 0
40 EXEC &HA9DE         the ROM joystick routine
50 PRINT PEEK(&H15A),PEEK(&H15B),PEEK(&H15C),PEEK(&H15D)
60 NEXT

The values at $15A and $15B are for the right stick and those at $15C 
and $15D the left. On my system, the values are stable at 1MHz
(POKE &HFFD8,0) but unstable at many positions at 2MHz. I've tried this 
with two Coco3s serial numbers 1001703 and 1308368. I've used three 
joysticks, two deluxe and one regular. There is jitter for all at 2MHz 
with the ROM routine and worse jitter in the game under development.

The ROM routine for reading the joystick is slower than that used in the 
game which may be why it works at 1MHz. The main questions are whether 
this is a quality control issue in the Coco3 design and what if anything 
can be done about it.

Both the game routine and the ROM routine are stuck with the resolution 
of the internal DAC, 64 steps. A joystick being a continuously variable 
resistor can easily be set at values in between those of any two DAC 
steps. Depending on the circuit design intermediate values could cause 
oscillation between the two adjacent steps. This could be caused by 
inadequate ICs or by noise on the power supply. I've put a scope on my 
Cocos and they meet or exceed the waveforms in the service manual.

Hopefully there will lots of response to this request for help. I'd like 
to solve this problem and the programmer wants to solve this more than I 
do.  :)



More information about the Coco mailing list