I thought this was going about the Atari SIO bus[0], which literally was a forerunner to USB. The designer of the SIO bus, Joe Decuir, gave a talk at VCF East 2019[1] in which he spoke about SIO leading up to his work on USB (and, if memory serves, being used to quash a patent troll).<p>---<p>As an aside re: the Atari joystick "standard": I have an Atari Flashback 10, which accepts Atari-style joysticks. The sticks that come with the unit are flimsy so I broke out some old Epyx 500XJ controllers from my youth to use. Unfortunately, that meant losing the on-controller buttons for game reset, game select, "rewind", and "menu" (which are implemented as "illegal" controller states-- up and down simultaneously, etc).<p>On a lark I plugged-in a female to dual-male DE-9 Y adapter I had laying around and discovered that I could just connect both the stock controller with the fancy buttons and my 500JX simultaneously. I suppose it shouldn't have surprised me, given the simplicity of the interface (just normally-open switches). It was a nice hack to get both the on-controller buttons for emulator control and a good joystick.<p>[0] <a href="https://en.wikipedia.org/wiki/Atari_SIO" rel="nofollow">https://en.wikipedia.org/wiki/Atari_SIO</a><p>[1] <a href="https://www.youtube.com/watch?v=dlVpu_QSHyw&t=2296" rel="nofollow">https://www.youtube.com/watch?v=dlVpu_QSHyw&t=2296</a>
Back in the day, the Atari 1030 modem (1200 baud, I believe) was Hayes compatible but did not have a ring detector. That makes it difficult to use it for a BBS.<p>So I ended up using a neon lamp across tip and ring to light up when the AC ringing signal hit. I placed it next to a photo resistor and hooked it up to the fire button on one of the joystick ports. The resistance didn’t drop to zero, but it was close enough.<p>Two components with the bonus of optical isolation from the phone network!
> You probably never noticed this, but physically, an Atari joystick port is just a serial port with a lightly modified design<p>It's not any kind of serial port, modified or otherwise. What makes a port "serial" or "parallel" is the way the data is transferred, not the shape of the connector.<p>Each joystick signal (up, down, left, right, trigger, paddle A, paddle B, plus power and ground) has its own pin. That makes it a parallel port.<p>Now, the Atari SIO port, mentioned by another poster, and used to connnect peripherals (such as disk drives and printers) <i>is</i> a serial bus, but the joystick port is parallel.
Regarding the Atari VCS (2600) it should be mentioned that the functionality of these ports is actually defined by the TIA (Television Interface Adaptor) chip. This provides the following capabilities (to be configured by a port register): dumped ports (for 4 paddles on 2 ports), latched ports (what we know as joystick ports), but you may also disable these latches, by which "these ports become two general purpose input ports" (Stella Guide [1]). Moreover, the ports can be configured to read two keyboards of 12 buttons each (4 rows of 3 columns), which was actually used by a few games that came with special controllers. Finally, port A, which handles all these controller inputs, can be configured as an output port using an 8-bit data direction register. (Meaning, you could set this up for full serial communication.)<p>So the Atari game ports were much more general and versatile in concept than just providing a connection for digital joysticks or paddles.<p>[1] <a href="http://atarihq.com/danb/files/stella.pdf" rel="nofollow">http://atarihq.com/danb/files/stella.pdf</a>
So D connectors themselves are really good:<p>Versions are available that are acceptable for military and space use.<p>The pins are properly wiping: it means that when you insert or remove the plug, the contact area gets wiped (cleaned).<p>You can get D connectors that use ribbon cables: this is a huge advantage, since they can be assembled quickly without hand-soldering.<p>The connectors have screws, so they can be held in place.<p>They are rated to 300V and at least some of them can handle 9A.<p>Invented by James Cannon:<p><a href="https://militaryembedded.com/unmanned/connectors/high-performance-high-density-environmentally-sealed" rel="nofollow">https://militaryembedded.com/unmanned/connectors/high-perfor...</a>
Beware Mega Drive / Genesis controller has somewhat different wiring in a way that could destroy computers. It e.g. shouldn't ever be connected to a Commodore 64 without an adapter.<p>An open source design for an adapter exists.
This was always great for having a second controller. You might have had a master system and your friends an Atari or c64 but you could always take your controller to their house and play.<p>The $20 it cost for a second controller was a lot back then.
The TI-99/4A joystick port fit an actual D-sub connector.<p>As a child, I made a kind of breakout box for the joystick port, using a standard connector, project box, and screw terminal strips. For very simple interfacing with normally-open switches. (Arduinos and RasPis are much better.) First applications were to build a burglar alarm, and grade school computer voting station.<p>(This was pre-Internet, and pre-modem, and no docs to speak of. Somehow, I didn't break the family home computer, despite blindly shorting unknown pins, and with no knowledge beyond what I could understand of the Forrest Mims intro electronics book.)
That port was the reason I learned to solder and how photocells worked. I put two photocells on the paddle pins and wrote programs on my Atari 400 that used the light levels to do things. I think the original project was in Antic Magazine. It was about recreating a sound device used in 50's scifi films. I used it later to detect if the someone was in the hall during a summer program to give us a bit of warning. Fun projects that are pretty damn hard with USB and modern programming.
Commodore missed a huge opportunity by not implementing its own joystick standard with the C64, with more than one fire button. The usefulness of a second button was already known, on consoles with Intellivision and on computers with Apple II and the PC. Had it done so, Commodore would have benefited<p>* itself, by being able to sell its own joysticks (even against the inevitable third-party competition)<p>* game developers, by giving them more fire buttons to implement<p>* game players, by giving them more fire buttons to use<p>* the industry, as the "Commodore joystick port" would likely have become a widespread standard on its own the way the Atari port was<p>I suppose that the desire to be backwards-compatible with the VIC-20 (the first time Commodore use the Atari joystick port) was too important. (This desire is partly why the C64 disk drive is normally so slow.) Instead, as the article discusses, Commodore went its own way with the joystick and other ports on the later C16 and Plus/4 machines, exactly the wrong time to do so. (The fact that the Plus/4 joystick still only has one fire button implies that any Commodore-proprietary joystick port for the C64 would have only one button too, the worst of all worlds. But one can always dream.)
The ports were great, they exposed both input/output pins. Back in the 80s, as a kid, on my Atari 800XL I used these ports to interface to electronics and used my computer to control real things! This significantly influenced what I wanted to do and sent me down the path of doing embedded systems / control systems. Even though these days I mainly do backend/web type things, I still do a bit of embedded programming.<p>The port/s details can be found here <a href="https://en.wikipedia.org/wiki/Atari_joystick_port" rel="nofollow">https://en.wikipedia.org/wiki/Atari_joystick_port</a>