The normal joystick for the Coco is a
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.
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.
Basic program and 2 asm source code files in EDTASM format
binary files included plus Tandy/CocoMax circuit (joystick.gif)