Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create an Amiga/Commodore protocol card #20

Open
Peckmore opened this issue Dec 18, 2024 · 0 comments
Open

Create an Amiga/Commodore protocol card #20

Peckmore opened this issue Dec 18, 2024 · 0 comments

Comments

@Peckmore
Copy link

I'd like to ask whether it would be possible to get a protocol card created that could support Amiga/Commodore computers (and I ask this knowing it isn't easy, but I have neither the skills nor equipment to make one myself! 😁)

Keyboard
The pinouts for the various Amiga keyboard ports (Amiga 1000, Amiga 2000/3000, Amiga 4000, CDTV, CD32) can be found here. Although the pinouts are slightly different, I think the underlying keyboard protocol is the same between them all?

For the Amiga there are plenty of existing PS/2 to Amiga keyboard converters, such as the Lyra 3. The PS2toAmiga GitHub project is an open source version of such a converter, and also includes links to the Amiga keyboard protocol.

My guess would be that a 6-pin DIN connector could be located on the protocol card, and then the appropriate cable used to connect to the keyboard port of the various Amiga models?

Mouse
For both mice and joysticks, the Amiga uses the standard Atari 9-pin port.

There are again many adapters for converting both PS/2 and USB mice to the Amiga 9-pin port. By default they all support 2-button mice, but with custom drivers I believe many support 3-button mice and scroll wheels.

The HID2AMI GitHub project is an open source converter (at least for the PCB, not sure on the firmware) that converts a USB HID device into an Amiga mouse, with 3-button and scroll wheel support via a free driver. For a protocol card, 2-button support would be a great start, and it could always be updated to support 3-buttons and a scroll wheel via a firmware update?

I think for both mouse and gamepad support, 2 x DE-9 connectors could be located on the protocol card, which could then connect directly into the mice/joystick ports of an Amiga.

Gamepad
By default the Amiga supports the standard Atari 9-pin port, as discussed above, which supports 4 directions and 2 buttons. However, the CD32 came with a 6-button pad, and 6-button MegaDrive/Genesis pads can be used on an Amiga with an adapter.

This page contains a lot of information about how the CD32 supports 6 buttons via the standard 9-pin port:

The CD32 pad has two modes, determined by the state of the pin 6 JOYMODE pin. This pin is controlled by the Amiga, and is one of the three bidirectional pins the Amiga joyport has.
• If the JOYMODE pin is set High by the Amiga, the pad is set to a dumb joystick mode. The states of Fire 1 (Red) and Fire 2 (Blue) are reported to the Amiga by grounding the FIRE1OUT and FIRE2OUT pins respectively as if Fire 1 and Fire 2 were simple switches to ground.
• If the JOYMODE pin is set Low, the pad is set to seven button mode. CLOCKIN is treated as an input signal. On each rising edge of CLOCKIN, a new button state is shifted onto the DATAOUT line in a set sequence. When all seven buttons have been shifted, a final 1 signal is reported, followed by endless 0s.

So typically on an Amiga (or Commodore C64/C128) the pad/protocol card would operate in 2-button mode. But if the Amiga sets pin 6 to low, then the pad/protocol card would switch to 6-button/CD32 mode.

Commodore C128D
Everything listed above has been Amiga focused. However, the Commodore C64, C128, and C128D would I believe be able to use the same protocol card for mouse and gamepad support, as they all use the same Atari 9-pin ports.

What I think could make this protocol card even better would be supporting the keyboard port of the C128D. The C128D keyboard protocol can be found here - it's less of a protocol, and more of the row and column pins determining which key is pressed. The C128-keyboard GitHub project is an example of a USB HID to C128D keyboard adapter. This is another open source project that does the same.

To support this, I think an additional DB-25 connector would need to be located on the protocol card.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant