Wednesday, August 17, 2016

The PC Joystick to Tandy 1000 Joystick Port Adapter

IBM PC-compatible joysticks using the DA-15 connector came in all shapes and sizes.  Some have a hat switch, some have a throttle wheel, and many are quite durable.  The CH Flightstick Pro is among my favorite PC joysticks.  Its large enough to fit in my hand, has easy movement and feels very precise.

Unfortunately, Tandy 1000 users do not have many options, thanks to the 6-pin DIN connector the 1000 line used.    The official Tandy joystick line consists of the miserable black box joystick with the single button and non-self centering stick, the Deluxe Joystick which fixes those issues but is still rather boxy and uncomfortable, and the Pistol Stick Joystick, which has a handle but is really basic.  Not many third parties released joysticks with the Tandy plug, but in this blog article, I will tell you how to adapt any standard PC-style joystick to work in a Tandy 1000 joystick port.

This guide only works for standard analog PC joysticks.  It won't work for a Gravis Gamepad, a Microsoft Sidewinder or any other joystick, even if it has a DA-15 connector, that does not use a pair of potentiometers for directionals.

The first step is to build a pin adapter.  You will need a DIN-6 Male plug and a DA-15 Female plug and some wire to connect the pins.  I would suggest getting a Commodore 64 IEC cable for the 6-pin plug and cutting it in half for two.

The DIN-6 Male Tandy CoCo/1000 joystick connector pin assignments are as follows :

Pin 1 - X Axis
Pin 2 - Y Axis
Pin 3 - Ground
Pin 4 - Fire 1
Pin 5 - +5v
Pin 6 - Fire 2

The DA-15 Female IBM PC joystick connector pin assignments are as follows :

Pin 1 - +5v
Pin 2 - Fire 1
Pin 3 - X Axis
Pin 4 - Ground
Pin 5 - NC or Ground
Pin 6 - Y Axis
Pin 7 - Fire 2

Unless you have a throttle or more than 2 unique buttons on your joystick, you don't need to worry about pins 8-15.  Pin 10 is Fire 4, Pin 11 is 3rd Axis, Pin 13 is 4th Axis and Pin 14 is Fire 3.  Pins 8, 9 and 15 are also +5v and Pin 12 is Ground.

IBM PC compatible joysticks usually do not use pins 8-15.  If you want to use two joysticks on a PC, you buy a joystick splitter or a gameport with two joystick ports.  Tandy always physically separates the 1000 joystick ports.

The second step is a simple, reversible modification to any PC joystick you wish to use with a Tandy 1000.  Open up the joystick and solder a wire from the third potentiometer terminal to the ground line, which is used by the buttons.  This turns it from a variable resistor, which is what IBM PC joystick interfaces use, into a variable voltage divider, which is what the Tandy 1000 joystick interface requires.  You could even install a switch into the joysticks casing to connect and disconnect this wire, making for a switchable PC/Tandy joystick.

Here is what my adapter looks like.  It isn't pretty, but it works :

The Tandy 1000 RLX-B uses a 6-pin mini-DIN cable instead of a full size DIN cable.  Tandy never sold a joystick with a mini-DIN connector, so it sold adapters to allow full size DINs to be plugged in.  These adapters are hard to come by these days, so if you don't have them, you will need to use a mini-DIN plug instead.  Here are the pinouts from the Tandy Support website :
|8-pin Mini DIN|Signal      |6-pin DIN|
|    (Male)    |Descriptions| (Female)|
|      1       | X Position |    1    |
|      2       | Y Position |    2    |
|      3       | Ground     |    3    |
|      4       | N/C        |         |
|      5       | Power +5V  |    5    |
|      6       | Ground     |         |
|      7       | Button #1  |    4    |
|      8       | Button #2  |    6    |

And here is the pin numbering for the Male 8-pin mini-DIN connector :

No-mod PC Joystick Usage in Later Tandys

If you have a Tandy TL, SL, RL or RLX (including the /2s, /3s, -HDs and -Bs), you can disable the built-in Tandy joystick ports with a software program.  Then you can install an ISA PC gameport card and use PC gameport sticks without modification or adapters.

Copy or input the hex values below into a hex editor and save the file as :

BA EB FF EC 24 FD EE B8 00 4C CD 21

This code will disable the built-in Tandy joystick port.  However, games that use the Tandy DAC will not read from the joystick port regardless of the interface you use.  Software cannot really detect whether you are using an IBM PC or Tandy 1000 joystick.  It also may not be useful with PC booters, but it may work if you boot the system to DOS, run the program and then perform a soft reset with Ctrl-Alt-Del.


  1. So I built myself a nice adapter based on your instructions and it works great.

    Then I modified one of the better quality 2 button quickshot joysticks and it too works really well .... except for one small problem ... the axises are each inverted. :-p

    Btw I dont mean X & Y are swapped, I mean they are inverted - left = right, right = left and so on.

  2. This happened to me also. I ended up reversing 5v and ground on the pots.

  3. Rather than modify the joystick, can a small adapter be made.