The Highres Joystick Adapter
and
How It Works

   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)