If you are just reading / writing "parallel" data, I would attach via the
external CPU bus. As an example with the old Atari 2600 joysticks, you
would:

    1) Decode an unused port address
    2) Connect your joystick switches through a tri-state buffer to the CPU
bus, enabled when the port address is "read"

Although maybe more complicated, hardware wise, it is an interface that is
easy to adapt to the existing computer without internal modifications, or
complicated software drivers. And for those interested in "period"
accessories, this would likely be the way it would have been done.

I have done this on computers before and it works well. Add some latches
and you could even make things go on and off, like LEDs or relays.

The reason I would use this approach is because it is easy to get the
switch value with just a BASIC  INP(x) statement, where x is the port
address. Then using several IF statements you can determine which joystick
switch is pressed. Most of the Model 100 games are in BASIC and aren't
terribly fast, so this would be easy to modify the program to accept, since
unless you are writing the game yourself, you would have to do anyway. For
example (in pseudo-code):

10 data = input(251)
20 if data AND 1 = 1 then left = true
30 if data AND 2 = 2 then right = true
40 if data AND 4 = 4 then up = true
50 if data AND 8 = 8 then down = true
60 if data AND 16 = 16 then fire = true

If you wanted to test for the diagonals then you can also test:

70 if left AND up then northwest = true
etc.

Of course if the game is in machine language, and since you won't have the
source code to modify, you would have to parallel your joystick switches
with those keyboard keys that the game uses for input. This will likely
result in an internal hardware interface to prevent long wires being
soldered directly to the keyboard switches, which will cause "noise"
problems with the keyboard.

Regards,
PeterN

On Wed, Sep 24, 2025 at 1:07 PM <[email protected]> wrote:

> ----------------------------------------------------------------------
>
> Message: 1
> Date: Tue, 23 Sep 2025 21:41:28 -0400
> From: Scott McDonnell <[email protected]>
> To: [email protected]
> Subject: [M100] Joystick using the barcode reader input
> Message-ID: <[email protected]>
> Content-Type: text/plain; charset=UTF-8; format=flowed
>
> I am back to thinking about a joystick for the Model 100. I have a
> specific reason in mind and even a specific joystick.
>
> My intent is to target the Atari/Commodore 64 digital joystick interface
> mainly because my inspiration is the Suncom Icontroller which mounts to
> the side of the machine.
>
> This interface is a series of 5 discrete switches to control direction
> and a fire button. Very basic.
>
> While the parallel port would have been ideal for something like this,
> it is not bidirectional and offers only two inputs.
>
> The serial port provides 3 inputs; still not enough
>
> While some multiplexing strategies might allow this to work, both of
> those ports are also often used for other important purposes.
>
> So I started thinking about the barcode port. It only has one input, but
> the joystick could be encoded into a serial stream. Maybe even using the
> original barcode drivers. I don't know the specifics of the BCR
> implementation? here, but often they are just keyboard wedges.
>
> Any thoughts on this or a better solution?
>
>      <big snip>


> End of M100 Digest, Vol 177, Issue 6
> ************************************
>

Reply via email to