• Please review our updated Terms and Rules here

Tandy 1000 joysticks

geoffm3

Veteran Member
Joined
Oct 9, 2009
Messages
1,272
Location
Huntsville, AL
Hey all...

I'm trying to adapt an IBM PC joystick to use on my 1000HX but haven't had much success. I believe that my IBM gameport->Tandy adapter is wired correct, but X&Y aren't work as expected (the buttons do however). I believe that the resistance ranges are different between IBM PC game port and Tandy, but I didn't think they were completely incompatible. I'm trying to determine if I have a component issue in the computer itself or if I need a bona-fide Tandy stick. I have tried several PC compatible joysticks, both analog and digital.
 
Should be able to debug the situation pretty quickly with a volt/ohm meter.
Do you own one? Can you borrow one?
 
Yeah, the physical connections are not the problem. Rather, I'm unsure about what resistance ranges a real Tandy joystick presents to the system vs. an IBM controller, or if the port on my computer is busted.
 
Yeah, the physical connections are not the problem. Rather, I'm unsure about what resistance ranges a real Tandy joystick presents to the system vs. an IBM controller, or if the port on my computer is busted.
Give me a day or so to climb up in my garage loft (these old legs ain't what they used to be) and I'll pull down the box with all the Tandy stuff. I have an original Tandy joy stick. If you want just the resistance readings, I can due that. Or, do you need more info?
 
Give me a day or so to climb up in my garage loft (these old legs ain't what they used to be) and I'll pull down the box with all the Tandy stuff. I have an original Tandy joy stick. If you want just the resistance readings, I can due that. Or, do you need more info?

That might be helpful. I haven't been able to find much specwise on the port. I guess I could have a gander at the schematic and see if I can figure anything out from that.
 
They should be the same as the Tandy Color Computer if you can find information on those. Personally you are better off just getting Tandy joysticks.
 
I remember trying to make a PC joystick work on a 1000A back in the 80's. As I recall, I was not able to get it working. The technical reference is available online.
 
The Coco idea was a good one... hadn't thought about that. I found this thread here on a CoCo forum that discusses this in a little more detail. Apparently the IBM PC joysticks and the Tandy joysticks both use 100kohm pots:

http://www.coco3.com/community/2009/04/connector-pinouts-and-joysticks

That leads me to think that either my adapter is not right (which I doubt... I've checked it several times) or the port is bad. I haven't been able to test the second port cause I don't have a game for two players installed. Does anyone have a suggestion for one or a nifty diag program? :)
 
Here is how they operate according to the technical reference manual. Maybe this would help?
Code:
Joystick Interface
The joystick interface converts positional information from hand-held joysticks
(1 or 2) into CPU data. Each joystick provides 1 or 2 push-buttons and X, Y
position for a total of 4 bits each. You can use 2 joysticks. The joystick handle
is connected to two potentiometers mounted perpendicular to each other; one
for X position, one for Y position. Through the cable, the main logic board applies
+ 5 VDC to one side and ground to the other of the pots. The pot wiper
is the position signal: a voltage between 0 and + 5 VDC. This signal is applied
to one input of a comparator U119. The other comparator input is the reference
signal (a ramp between 0.0 to +5.0 volts.) When the position signal is equal
or less than the reference signal, the comparator output goes true. This comparator
output is the X or Y position data bit. The ramp is reset to 0.0 VDC
whenever a “write” is made at Port 200/201 Hex. The IOW* signal turns on
Q2, which drains C6 to 0.0 volts. When Q2 is turned off, Q1, R3, R4, R9, and
CRl create a constant-current source that linearly charges C6 to + 5.0 VDC
in 1.12 milliseconds. The joystick information is “read” by the CPU at Port
2001201 Hex through U18. See Figure 11.
Here is the schematic for the interface too. View attachment joystick.zip I had to zip the PDF because I couldn't get it small enough and have it still be usable.
 
Last edited:
Late to the party - but hey...

kb2syd's post hits it on the head -- Tandy sticks can often work with a PC using an adapter, but the other direction rarely works without popping them open for a rewire. The reason for this is that on the tandy/coco port the stick runs power to ground on the end pins and 'taps' the middle for signal. PC sticks only use two of the connectors on the pot running power and port, and that's it. No ground line, it doesn't work on a tandy1k/coco.

It's also just part of why Tandy sticks were more accurate and required a different logic or a TSR to work. PC joysticks just connect the POT and power to a capacitor... The first thing you do when you read it is discharge the cap and then just time how long it takes to charge. Because the pot is 'open ended' and is sending the voltage to the read port, many things can upset the timings making it unstable and semi-unreliable -- it's also why you end up having trim pots or adjusters to change the pot positions... and why one of the more annoying parts of interfacing old PC joysticks is that the code ran faster with the stick in the upper left position than it did in the lower left.

The Tandy method uses a DAC and a comparator -- you set a value on the DAC and check if the current output from the POT is higher or lower than the voltage on the DAC. The software emulation of the PC joystick just looks for when you send a reset to the port, then slowly ramps up the DAC until it matches. Because the power is routed to ground it stabilizes the pot increasing the accuracy -- and it's why the early COCO joysticks didn't even NEED trim pots. (neither do the newer ones when used on a Tandy or TRS-80 Coco, they were included because the Kraft designed sticks had them already moving the entire pot).

Either method is bad enough to make you wish they'd have sprung for a real ADC.

In any case, if you connect the missing ground wire to the pots and get them to the connector, that PC joystick should work on an old one -- assuming the potentiometers even HAVE the third connect available.
 
Late to the party - but hey...

kb2syd's post hits it on the head -- Tandy sticks can often work with a PC using an adapter, but the other direction rarely works without popping them open for a rewire. The reason for this is that on the tandy/coco port the stick runs power to ground on the end pins and 'taps' the middle for signal. PC sticks only use two of the connectors on the pot running power and port, and that's it. No ground line, it doesn't work on a tandy1k/coco.

It's also just part of why Tandy sticks were more accurate and required a different logic or a TSR to work. PC joysticks just connect the POT and power to a capacitor... The first thing you do when you read it is discharge the cap and then just time how long it takes to charge. Because the pot is 'open ended' and is sending the voltage to the read port, many things can upset the timings making it unstable and semi-unreliable -- it's also why you end up having trim pots or adjusters to change the pot positions... and why one of the more annoying parts of interfacing old PC joysticks is that the code ran faster with the stick in the upper left position than it did in the lower left.

The Tandy method uses a DAC and a comparator -- you set a value on the DAC and check if the current output from the POT is higher or lower than the voltage on the DAC. The software emulation of the PC joystick just looks for when you send a reset to the port, then slowly ramps up the DAC until it matches. Because the power is routed to ground it stabilizes the pot increasing the accuracy -- and it's why the early COCO joysticks didn't even NEED trim pots. (neither do the newer ones when used on a Tandy or TRS-80 Coco, they were included because the Kraft designed sticks had them already moving the entire pot).

Either method is bad enough to make you wish they'd have sprung for a real ADC.

In any case, if you connect the missing ground wire to the pots and get them to the connector, that PC joystick should work on an old one -- assuming the potentiometers even HAVE the third connect available.

Excellent info. I still haven't gotten around to playing with the 1000 since before Christmas, but this helps out a lot. The joystick I have is sacrificial, so I may just pop it open and connect ground to the POTS. It'll be nice to have a working stick. :)
 
It's also just part of why Tandy sticks were more accurate and required a different logic or a TSR to work. PC joysticks just connect the POT and power to a capacitor... The first thing you do when you read it is discharge the cap and then just time how long it takes to charge. Because the pot is 'open ended' and is sending the voltage to the read port, many things can upset the timings making it unstable and semi-unreliable -- it's also why you end up having trim pots or adjusters to change the pot positions... and why one of the more annoying parts of interfacing old PC joysticks is that the code ran faster with the stick in the upper left position than it did in the lower left.

I've never been able to get reliable results from regular 15-pin PC joysticks. Even when using a "PC ProPad", which basically uses a DAC to adapt a Nintendo-style controller to the analog joystick input, and games which were designed to use that kind of simple 4-direction "digital" control (Pac Man, Tetris, Frogger, etc.), I get unpredictable results: some games work fine, others work with erratic glitches, and some don't work at all in joystick mode.

$(KGrHgoH-C0EjlLlt+dzBKlzqJhE(g~~_12.JPG
 
This post is great, I know believe that I understand much of how these interfaces work and the subtle differences between the two. In short, to convert an IBM joystick to a Tandy joystick, you need to connect ground to the unused prong of a pot. I assume you could use the ground that the buttons use so you did not have to entirely replace the cable. Then you need a pin adapter.
 
Back
Top