intro
=====
Remember the good old ATARI/CBM64/AMIGA joystick? With only a few resistors and some connectors this type of joystick may be interfaced to your PC using the parallel port. Actually any kind of digital joystick may be interfaced in this manner.
advantages
==========
disadvantages
=============
disclaimer
==========
I take NO responsibility whatsoever for any damage you might cause to your hardware by making this cable.
the interfaces
==============
There are actually three methods of making the interface. Each method has it's pro's and con's. They are all outlined below.
The one to make depends on your requirements and your parallel port. The software handles all versions of the cables. To make the interface you will require a soldering iron, one 25pin D-SUB male and one 9pin D-SUB male. For the "intermediate" & "advanced" interface you will need 5-8 4.7K resistors as well.
Read the entire document before rushing off to get the soldering iron!
Note:
You only need the 9pin D-SUB male if you want to interface to an ATARI
joystick. If you want to use a real arcade joystick you will have to sort
out the connections yourself.
Warning:
If your joystick has an auto fire feature do not try to enable this
feature by using 5V from the parallel port. Use an external 5V source instead.
the "beginner"
==============
Pros:
ATARI Joystick PC Parallel port
pin 1 (UP) --------------------- pin 10 (-ACK)
pin 6 (FIRE_1) --------------------- pin 11 (BUSY)
pin 2 (DOWN) --------------------- pin 12 (PE)
pin 3 (LEFT) --------------------- pin 13 (SLCT)
pin 4 (RIGHT) --------------------- pin 15 (-ERROR)
pin 8 (GND) --------------------- pin 18 (GND)
the "intermediate"
==================
Pros:
ATARI Joystick PC Parallel port
+---------------- pin 3 (Data bit 1)
| +------------- pin 6 (Data bit 4)
| | +---------- pin 7 (Data bit 5)
| | | +------- pin 8 (Data bit 6)
| | | | +---- pin 9 (Data bit 7)
| | | | |
@ @ @ @ @ (resistors)
@ @ @ @ @
| | | | |
pin 1 (UP) ----|--|--|--|--+---- pin 10 (-ACK)
pin 6 (FIRE_1) ----|--|--|--+------- pin 11 (BUSY)
pin 2 (DOWN) ----|--|--+---------- pin 12 (PE)
pin 3 (LEFT) ----|--+------------- pin 13 (SLCT)
pin 4 (RIGHT) ----+---------------- pin 15 (-ERROR)
pin 8 (GND) --------------------- pin 18 (GND)
Pros:
ATARI Joystick PC Parallel port
+------------------------- pin 5 (Data bit 3)
| +---------------------- pin 4 (Data bit 2)
| | +------------------- pin 3 (Data bit 1)
| | | +---------------- pin 2 (Data bit 0)
| | | | +------------- pin 6 (Data bit 4)
| | | | | +---------- pin 7 (Data bit 5)
| | | | | | +------- pin 8 (Data bit 6)
| | | | | | | +---- pin 9 (Data bit 7)
| | | | | | | |
@ @ @ @ @ @ @ @ (resistors)
@ @ @ @ @ @ @ @
| | | | | | | |
pin 1 (UP) --|--|--|--|--|--|--|--+---- pin 10 (-ACK)
pin 6 (FIRE_1) --|--|--|--|--|--|--+------- pin 11 (BUSY)
pin 2 (DOWN) --|--|--|--|--|--+---------- pin 12 (PE)
pin 3 (LEFT) --|--|--|--|--+------------- pin 13 (SLCT)
(FIRE_2) --|--|--|--+---------------- pin 14 (-AUTO FEED)
pin 4 (RIGHT) --|--|--+------------------- pin 15 (-ERROR)
(FIRE_3) --|--+---------------------- pin 16 (-INIT)
(FIRE_4) --+------------------------- pin 17 (-SLCT IN)
pin 8 (GND) ---------------------------- pin 18 (GND)
how does it work
================
The parallel port has 5 input lines. They are read in the status register
of the parallel port. By using a pull-up resistor on these lines and 5
switches we can read the values from the status register.
The three extra inputs are actually outputs in the control register!
Since the control register is both r/w we can write a value to the register
and read it back. If we write a one to the line and the output is shorted
we will read back a 0 (these outputs are open-collector). Thus we're
able to use them as inputs as well. See the example programs for details.
troubleshooting
===============
If your interface doesn't work properly:
the code
========
The code supplied should compile under most compilers. It was specifically developed for djgpp. But I've tested it under Zortech, Watcom, Symantec and Turbo C. Running under DOS, Win 3.11 and Windows 95.
credits
=======
contacting the author
=====================
My ISP is moving us around these days so if you have any trouble try searching for my full name on the net.
(saint) Thanks Tormod!
Remember, if you want the source or downloads, those are on his home
page!