The normal joystick for the Coco is a simple
potentiometer. That means it is a variable resistor with one end at 5v
DC, the other at ground, and measurements taken from a variable tap. The
measurements are made with the Coco ADC/DAC but this device is a 6 bit
unit and can only resolve 64 distinct values.
Unfortunately, this method does not have
sufficient resolution to handle even the PMODE graphics screens much less
the Coco3 HSCREEN modes. Therefore Tandy and several other companies created
a high resolution joystick adapter. These adapters use timed RC (resistance/capacitance)
circuits instead of a potentiometer. The two most popular were the Tandy
and CocoMax units. The circuits were slightly different but it was possible
to adapt the Tandy unit by adding a switch so that either type could be
selected at will; see diagram.
There was virtually no software written
other than the RAT, CocoMaxIII, and Max10 which used the highres adapter
under Basic. OS-9 had built-in support for the adapter, but again the Coco
community did not write programs requiring the unit.
I present here a simple Basic program to
demonstrate how the adapter can be used in either the Tandy or CocoMax
modes. Most of the work is done by an assembly language routine, one for
each mode. This is not the only way to write useful code, it is just an
example to get you started on your own projects. Keep in mind that the
timed circuit values change when the Coco CPU clock changes. It may be
difficult to get the full resolution at fast clock speeds.
Joystick.zip
demo Basic program and 2 asm source code files in EDTASM format
binary files included plus Tandy/CocoMax circuit (joystick.gif)