[comp.sys.ibm.pc] Using a Joystick instead of a Mouse

edlee@chinet.UUCP (Edward Lee) (07/22/88)

Setup:
  I have a Toshiba 1100+ laptop computer with a 9-pin DIN serial interface.

Question:
  Have any of you plugged an Atari joystick into the serial port and used it
  instead of a mouse?  Doing so would make playing some games easier.


-Ed L

isaac@gethen.UUCP (Isaac Rabinovitch) (07/31/88)

In article <6069@chinet.UUCP>, edlee@chinet.UUCP (Edward Lee) writes:
> 
>   Have any of you plugged an Atari joystick into the serial port and used it
>   instead of a mouse?  Doing so would make playing some games easier.
I've no doubt it can be done, but my advice is, Forget it!  In
mouse-oriented applications you need to have the cursor on *just* the
right spot for a fraction of second while you press the button.
Painfully difficult with a joystick, especially at the edge of the
screen.  I speak from experience:  I used to have an Apple II, and tried
to run a couple of programs (Chipwits and Sundog) that were originally
designed to be used with a mouse but adapted for the joystick in the
Apple II versions.  *Quite* painful.

edlee@chinet.chi.il.us (Edward Lee) (08/01/88)

In article <1129@gethen.UUCP> isaac@gethen.UUCP (Isaac Rabinovitch) writes:
>In article <6069@chinet.UUCP>, edlee@chinet.UUCP (Edward Lee) writes:
>> 
>>   Have any of you plugged an Atari joystick into the serial port and used it
>>   instead of a mouse?  Doing so would make playing some games easier.

>I've no doubt it can be done, but my advice is, Forget it!  In
>mouse-oriented applications you need to have the cursor on *just* the
>right spot for a fraction of second while you press the button.
>Painfully difficult with a joystick, especially at the edge of the
>screen.  I speak from experience:  I used to have an Apple II, and tried
>to run a couple of programs (Chipwits and Sundog) that were originally
>designed to be used with a mouse but adapted for the joystick in the
>Apple II versions.  *Quite* painful.


I also speak from experience.  In my original posting, I mentioned
games.  I had Flight Simulator, Jet, and other software in mind
that would be more comfortable to play with a joystick.  The mouse
doesn't have to be completely replaced by the joystick, but the
joystick is better than the mouse for certain applications, and
vice versa.

I've played Flight Simulator before with only the keyboard, and I
didn't like the fact that the plane would keep making steeper and
steeper turns unless the player manually pressed the center key.
I would like to use a joystick along with a keyboard to play
Flight Simulator on my Toshiba laptop computer.

With regard to editing graphics screens with a mouse versus a joystick,
it would be less of a problem to use a joystick if the editing software
had a zoom function, as in Doodle! for the Commodore 64, that would
allow the user to edit full-sized characters that would each correspond
to a pixel on the unmagnified graphics screen.


-Ed L

kg0r+@andrew.cmu.edu (Kenneth Gober) (08/04/88)

In article <6069@chinet.UUCP>, edlee@chinet.UUCP (Edward Lee) writes:
>
>   Have any of you plugged an Atari joystick into the serial port and used it
>   instead of a mouse?  Doing so would make playing some games easier.

It is unfortunate that both the 9-Pin Serial Port and the Atari Game Port look
identical, because they're not.

If by Atari joystick, you mean the ones used with the 2600, 400 and 800; the
ones that work with Commodore 64's also, then I say you can't do it (easily).
Such a joystick consists of 4 small switches for movement (up, down, right,
left; diagonals are combinations: e.g. down+left) and 1 small switch for the
single fire button.  Ignoring the fact that most mice have 2 or more buttons,
the problem is:  How do you build a circuit that translates the 5 switches
coming in on 5 wires (parallel data) into a stream of (correctly encoded)
pulses on 1 wire (serial data)?

Some joysticks (Apple II joysticks, for instance) have 2 switches for the 2
fire buttons (digital signals- either on or off) and 2 wires which carry the X
and Y position of the stick (analog signals- varying voltage).  Since a serial
port is digital, you would have to convert the analog signals to digital, then
translate them into serial data.  You would also have to decide if you wanted
the joystick to indicate absolute position (centered joystick moves cursor to
center of screen) or indicate movement direction (centered joystick means sit
still).  You may have to rewrite the mouse driver (usually called MOUSE.SYS on
MS-DOS machines) or the game software itself if it includes its own driver.

Both cases require a hardware adapter which you would have to build yourself.
They also require you to have intimate knowledge of the protocols a mouse uses
(there are many; choose which kind of mouse you want to emulate).  It sounds
like more trouble than it's worth.

Kenneth Gober
kg0r@andrew.cmu.edu

cdold@starfish.Convergent.COM (Clarence Dold) (08/06/88)

>   Have any of you plugged an Atari joystick into the serial port and used it
>   instead of a mouse?  Doing so would make playing some games easier.

Assuming we're talking about an 'Atari 400/800/1200' joystick:
The joystick only has switches, not pots.  The return value will be a bit or
two indicating direction, there is no 'off-center' value to indicate how
far you might be pushing the stick.
With the polling rate on the Atari, that was okay, but on a PC or AT, I would 
expect to reach the limits of the screen before I could let go of the stick.

albaugh@dms.UUCP (Mike Albaugh) (08/09/88)

I do not read comp.sys.ibm.pc, but have cross-posted because of point
1 below. Please don't assume that if two plugs are physically the same
you can safely plug them together!

Mild (?) flaming and some info here:

From article <618@starfish.Convergent.COM>, by cdold@starfish.Convergent.COM (Clarence Dold):
>>   Have any of you plugged an Atari joystick into the serial port and used it
>>   instead of a mouse?  Doing so would make playing some games easier.

1) Has anyone considered that there is more to an interface spec than the
number of pins and the shape of a connector. The Atari game connectors,
used on 2600,7800,400/800... and also several other computers from various
manufacturers, were intened to hook up to "controllers" that had two analog
(resistance) inputs and 5 (? it's been a while) switch-closure inputs, plus
power and ground. One of the switch inputs was connected in such a way as
to be usable as a light-pen on the 400/800... Anyway, this scheme has NOTHING
but the shape/number of pins in common with a DB9 serial port. Several years
back Lafayette Radio sold intercoms with connectors that had two flat blades
the right distance apart to plug into power-strips etc. I suppose they
thought it would make cabling easier, but too many folks "accidentally"
plugged them into the wall (REAL flames!)

> 
> Assuming we're talking about an 'Atari 400/800/1200' joystick:
> The joystick only has switches, not pots.  The return value will be a bit or

2) As mentioned above, some "controllers" used the pot inputs. I agree that
the common four-position joystick was switches only. Incidentally, these
were _real_ common. "a major manufacturer of home computers" went so far
as to clone the stick, removing only the Atari logo when copying the mold.
Forgot to remove the Atari part number... hello lawyers :-)

> With the polling rate on the Atari, that was okay, but on a PC or AT, I would 
> expect to reach the limits of the screen before I could let go of the stick.

3) Some time ago I did a study of the memory systems of the Atari 400/800,
the Apple ][, and the (original) PC. Is anyone supprised to hear that the
PC is only 5% faster than an 800, and 25% faster than an Apple ][. Please
direct flames about instruction sets and memory sizes elsewhere. I was
comparing _memory_ systems. Still, as a first order guess, the data
processing rates (without cache) will be pretty similar. Anyway, many
games sampled the switches several times a frame. If you were using pots,
the hardware allowed you to sample the pots _every_scan_line_ (although
only to six bit accuracy). I find it real hard to believe that a serial
controller on a PC would do as well. In fact, having used a serial mouse
on a PC, I find it _impossible_ to believe. Often software uses really
big steps per sample to compensate for low sampling rate, so I may
just agree that the PC would "peg" when using a switch-type joystick
(but not for the reason you say :-)

| Mike Albaugh ({decwrl!turtlevax!}weitek!dms!albaugh) voice: (408)434-1709
| Atari Games Corp (Arcade Games, no relation to the makers of the ST)
| 675 Sycamore Dr. Milpitas, CA 95035
| The opinions expressed are my own (My lawyer isn't listening)

edlee@chinet.chi.il.us (Edward Lee) (08/09/88)

I wrote:
>Have any of you plugged an Atari joystick into the serial port and used it
>instead of a mouse?  Doing so would make playing some games easier.

I have received several responses to my original posting, and more than half
of the people who responded told me something like, "Forget it."  Other
people alluded to the difficulties of interfacing a switch-type joystick to a
serial DB9 port, which I appreciate, and others simply misinterpreted my
original question.  I do not need a joystick to completely emulate a mouse.
All that I need a joystick for is to _indicate direction_.  If I manage to
interface a joystick to my Toshiba laptop, I will write custom software to
use the joystick, if necessary.  I am not too concerned with compatibility
with existing software, although that would be nice for playing some games
like Flight Simulator or Pac-Man.

Interfacing a joystick to a 9-pin serial port has been done before on the
TI-99/4A.  I recently bought a Toshiba 1100+ laptop, and it has a 9-pin
serial interface, so that's why I asked if anyone on the net had plugged an
Atari joystick into the serial port and used it instead of a mouse, with the
keyword _Laptop_ in the heading of the original post.  With the TI-99/4A,
the joystick port can be adapted to become a serial port that requires some
machine code to drive it. 

I get the impression that no one on the net has done this yet for a laptop.
I'm sure that there's money to be made if someone does.


-Ed L

cdold@starfish.Convergent.COM (Clarence Dold) (08/09/88)

>>Have any of you plugged an Atari joystick into the serial port and used it
>>instead of a mouse?  Doing so would make playing some games easier.
> All that I need a joystick for is to _indicate direction_.  If I manage to
> interface a joystick to my Toshiba laptop, I will write custom software to

Oh, now I understand...
A REAL computer hobbyist, just like in the old days!
Since the Atari joystick has four switches that close to a common pin,
you need to either use an ohmeter to find the pin shorting relationship, or
wait for me to blow the dust off my ATARI 400 Tech Ref.
Next, make an adapter cable that will couple the common pin to DTR on the 
serial port.  Then tie your choice of the direction pins to CD, DSR, RI, and
CTS on the serial port.  A program can drive DTR high, then monitor for
combinations of the status lines to see which way the stick is pointed.
A hardware purist might ask for resistors in the adapter cable, but they aren't necessary.
This is the method I use to interface a small UPS into my *IX system,
for Powerfail shutdown.


SIGNAL		PC-XT		PC-AT
		Female		Female
	DIR	25 pin		9 Pin
	
TX	<-	2	-	3
RX	->	3	-	2
RTS	<-	4	-	7
CTS	->	5	-	8
DSR	->	6	-	6
GND	--	7	-	5
CD	->	8	-	1
DTR	<-	20	-	4
RI	->	22	-	9

matthew@sunpix.UUCP ( Sun NCAA) (09/20/88)

Since this discussion is aged I'll repost the request.


>>Have any of you plugged an Atari joystick into the serial port and used it
>>instead of a mouse?  Doing so would make playing some games easier.
> All that I need a joystick for is to _indicate direction_.  If I manage to
> interface a joystick to my Toshiba laptop, I will write custom software to

If your interested in a commercial solution to problem, grab the latest issue
of Computer Shopper and look at the Dexxa International ad on page 198. They 
show a Joystick that will plug into an IBM game connector or a serial port.

Its high points are:

-Full Joystick operation
-Microsoft emulation for instant software compatibilty
-Automatic cursor control allows you to place the cursor 
 anywhere on your screen
-RS-232 ASCII output
-Ergonomical unit takes up less than 4 inches of deskspace.
-Free "Paint It!(tm) program.

Price: $49.95 + $5 Shipping 
-- 
Matthew Lee Stier     (919) 469-8300|
Sun Microsystems ---  RTP, NC  27560|          "Wisconsin   Escapee"
uucp: {sun, rti}!sunpix!matthew     |