That's why a blown I/O chip was so common on C64's: shuffle across your carpet or pet your cat to build up a nice static charge and then brush against the joystick port pins when you pick up your computer.
On Fri, Sep 26, 2025 at 3:48 PM Peter Vollan <[email protected]> wrote: > Okay, I have been using the terms backwards. > BTW I know Joe Decuir, he comes to the Seattle Retro Computing Society > meetings. > > On Fri, 26 Sept 2025 at 11:58, scottgmcdonnell <[email protected]> > wrote: > >> >> https://en.m.wikipedia.org/wiki/Atari_joystick_port >> >> https://tedium.co/2022/08/24/atari-2600-joystick-port-history/ >> >> The joystick has a female connector and the computer has a male connector. >> >> >> Sent from my T-Mobile 5G Device >> >> >> -------- Original message -------- >> From: Peter Vollan <[email protected]> >> Date: 9/26/25 1:34 PM (GMT-05:00) >> To: [email protected] >> Subject: Re: [M100] Joystick using the barcode reader input >> >> All of my Atari type joysticks have a male plug on the end, and all of >> the classic systems I have have a female plug to receive it. >> >> On Fri, 26 Sept 2025 at 06:52, Brian White <[email protected]> wrote: >> >>> Atari joystic has a female de9 on the end of it's cable. So the computer >>> side needs a male de9. >>> >>> bkw >>> >>> On Thu, Sep 25, 2025, 12:52 PM Peter Vollan <[email protected]> >>> wrote: >>> >>>> I'm confused.... shouldn't it be a db9 female connector to plug the >>>> joystick into? >>>> >>>> On Thu, 25 Sept 2025 at 09:21, Mike Stein <[email protected]> wrote: >>>> >>>>> How often are you going to need the printer port when you're using >>>>> the joystick? >>>>> >>>>> Here's one approach from way back when: >>>>> >>>>> >*From Kim Holviala kim at holviala.com <http://holviala.com> >>>>> *Wed Feb 23 2011 >>>>> >>>>> Yup, got my side project, the Atari/Commodore joystick interface for >>>>> M100 working reliably. >>>>> >>>>> This is a simple passive interface only requiring two connectors, some >>>>> cable and five diodes. Total cost is under $10 including a case for the >>>>> Sub-D9 connector. >>>>> >>>>> Schematic: >>>>> >>>>> LPT port D9 male >>>>> 3 PD0 ------|<------- 1 UP >>>>> 5 PD1 ------|<------- 2 DOWN >>>>> 7 PD2 ------|<------- 3 LEFT >>>>> 9 PD3 ------|<------- 4 RIGHT >>>>> 11 PD4 ------|<------- 6 BUTTON >>>>> 21 BUSY -------------- 8 GROUND >>>>> >>>>> Parts: >>>>> >>>>> 1 2x13 pin female flat cable connector (0.1" spacing) >>>>> 1 D9 male connector (solder type) >>>>> 1 D9 connector case >>>>> 6" 26-pin flat cable (or at least 4 inches) >>>>> 5 1N4148 (or similar) >>>>> >>>>> I used 1N4007 for the diodes, but using something physically smaller >>>>> like 1N4148 is easier if you want to fit everything into the D9 case. >>>>> >>>>> Theory of operation: >>>>> >>>>> We're doing it all backwards. Instead of feeding ground through joystick >>>>> port pin 8 and reading the directions from pins 1-4 and 6, we're feeding >>>>> signals through 1-4 and 6 and reading the result from pin 8 (which is >>>>> connected to BUSY in LPT port). >>>>> >>>>> Using with 100% Basic: >>>>> >>>>> This works (even though it shouldn't) but isn't very reliable. We're >>>>> fighting with the keyboard interrupt, and quite often it hits between >>>>> our OUT and IN messing up the readings. >>>>> >>>>> OUT 185,254:U=INP(187) AND 4 >>>>> OUT 185,253:D=INP(187) AND 4 >>>>> OUT 185,251:L=INP(187) AND 4 >>>>> OUT 185,247:R=INP(187) AND 4 >>>>> OUT 185,239:B=INP(187) AND 4 >>>>> >>>>> Variables U/D/L/R and B now contain 0 if that particular direction is >>>>> selected and 4 if the direction is not selected. >>>>> >>>>> Mostly Basic, but some assembly required: >>>>> >>>>> This version seems to be 100% reliable even though it doesn't disable >>>>> interrupts between the assembler out and in. >>>>> >>>>> 10 CLS >>>>> 20 A$=CHR$(211)+CHR$(185)+CHR$(219)+CHR$(187)+CHR$(119)+CHR$(201) >>>>> 30 AS=PEEK(VARPTR(A$)+1)+(256*PEEK(VARPTR(A$)+2)) >>>>> 40 U%=0:D%=0:L%=0:R%=0:B%=0 >>>>> 50 CALL AS,254,VARPTR(U%):U%=U% AND 4 >>>>> 60 CALL AS,253,VARPTR(D%):D%=D% AND 4 >>>>> 70 CALL AS,251,VARPTR(L%):L%=L% AND 4 >>>>> 80 CALL AS,247,VARPTR(R%):R%=R% AND 4 >>>>> 90 CALL AS,239,VARPTR(B%):B%=B% AND 4 >>>>> 100 IF U%=0 THEN PRINT " U" ELSE PRINT " *" >>>>> 110 IF L%=0 THEN PRINT "L "; ELSE PRINT "* "; >>>>> 120 IF R%=0 THEN PRINT "R" ELSE PRINT "*" >>>>> 130 IF D%=0 THEN PRINT " D" ELSE PRINT " *" >>>>> 140 IF B%=0 THEN PRINT "BTN" ELSE PRINT " * " >>>>> 150 PRINT CHR$(11); >>>>> 160 GOTO 50 >>>>> >>>>> The assembler code on line 20 is as follows (needs a bitmask in A, >>>>> outputs joystick info to [HL]): >>>>> >>>>> out 185 >>>>> in 187 >>>>> mov m,a >>>>> ret >>>>> >>>>> That's about it. Now back to the WiFi adapter... >>>>> >>>>> >>>>> - Kim >>>>> >>>>> >>>>> On Wed, Sep 24, 2025 at 4:57 PM Scott McDonnell < >>>>> [email protected]> wrote: >>>>> >>>>>> The BCR port was attractive to me because it is a port I wouldn't be >>>>>> using for anything else. That is really the main reason aside from >>>>>> the >>>>>> interrupts. >>>>>> >>>>>> The idea was to use a microcontroller which would allow me to fit the >>>>>> electronics inside the joystick body. I really only need a start bit >>>>>> to >>>>>> get the CPU attention and then stream my switch states. That was the >>>>>> idea, anyway. That is pretty much how the BCR would work, I would >>>>>> think. >>>>>> Well, originally the thought was to duplicate the BCR and send >>>>>> keycodes >>>>>> which could use the existing driver. But I am not sure if the arrow >>>>>> keys >>>>>> would be included somehow. If so, it could potentially work with any >>>>>> software that uses the arrow keys. >>>>>> >>>>>> I am surprised that I had not thought of scanning the keyboard the >>>>>> opposite way, though. That is a clever idea. >>>>>> >>>>>> I did think about simply wiring into the arrow keys on the keyboard, >>>>>> but >>>>>> I was trying to keep it external for community use. >>>>>> >>>>>> I still think the community should decide on some standard for a mod >>>>>> and >>>>>> make use of the several NC wires in the BCR port. I am aware of the >>>>>> mod >>>>>> to add a serial port there and that seems very useful. >>>>>> >>>>>> Thanks for all of the suggestions. >>>>>> >>>>>>
