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.
>>>>>>
>>>>>>

Reply via email to