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)