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