bmc64 icon indicating copy to clipboard operation
bmc64 copied to clipboard

Feature Request: Hardware I/O

Open Monotoba opened this issue 8 months ago • 2 comments

I would love to see some kind of emulated USER PORT. Perhaps using some of the I2C or SPI to parallel interface chips. I have some old hardware projects that interfaced with the C64 that I would love to use. What I would love to see is the USER PORT emulated. No need for 9VAC. Just the I2C or SPI interface chips on a daughter board or pi-place with the 24-pin connector with original pin-outs. Of course these pins need to be addressable at the same address(s) the original user port was, and needs I/O configurable. No emulator contains anything like this. But imagine being able to use a few of the old original peripherals!

Monotoba avatar Oct 27 '23 23:10 Monotoba

There is some support for configuring GPIO pins as a user port. I think it can CIA2 port B from within the C64 emulation. But you would have to look at the changes to be sure. It was added by Mark Bush for his side-project. See https://github.com/randyrossi/bmc64/blob/master/README.md#gpio-config-4--userport-and-joysticks

It has limitations though. It might be okay for turning LEDs on/off but I would not expect to be able to talk to real devices due to timing as described in the link.

On Fri, Oct 27, 2023 at 7:44 PM R Morgan @.***> wrote:

I would love to see some kind of emulated USER PORT. Perhaps using some of the I2C or SPI to parallel interface chips. I have some old hardware projects that interfaced with the C64 that I would love to use. What I would love to see is the USER PORT emulated. No need for 9VAC. Just the I2C or SPI interface chips on a daughter board or pi-place with the 24-pin connector with original pin-outs. Of course these pins need to be addressable at the same address(s) the original user port was, and needs I/O configurable. No emulator contains anything like this. But imagine being able to use a few of the old original peripherals!

— Reply to this email directly, view it on GitHub https://github.com/randyrossi/bmc64/issues/249, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAI3HKEAWWP4HWUEXRNPEULYBRBMLAVCNFSM6AAAAAA6TP3KJOVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE3DMMZQGY3DONI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Randy Rossi

  • "There are only two things that are hard about computer science; Naming things, Cache Invalidation, and Off-by-one errors."

randyrossi avatar Oct 28 '23 14:10 randyrossi

Thanks! I'll look into it. I think timing issues could be dealt with. I expect the kernel does maintain a clock. And as fast as the PI is, keeping the port timing should be doable.But I am only guessing as I have not looked at the code.

On Sat, Oct 28, 2023 at 8:33 AM randyrossi @.***> wrote:

There is some support for configuring GPIO pins as a user port. I think it can CIA2 port B from within the C64 emulation. But you would have to look at the changes to be sure. It was added by Mark Bush for his side-project. See

https://github.com/randyrossi/bmc64/blob/master/README.md#gpio-config-4--userport-and-joysticks

It has limitations though. It might be okay for turning LEDs on/off but I would not expect to be able to talk to real devices due to timing as described in the link.

On Fri, Oct 27, 2023 at 7:44 PM R Morgan @.***> wrote:

I would love to see some kind of emulated USER PORT. Perhaps using some of the I2C or SPI to parallel interface chips. I have some old hardware projects that interfaced with the C64 that I would love to use. What I would love to see is the USER PORT emulated. No need for 9VAC. Just the I2C or SPI interface chips on a daughter board or pi-place with the 24-pin connector with original pin-outs. Of course these pins need to be addressable at the same address(s) the original user port was, and needs I/O configurable. No emulator contains anything like this. But imagine being able to use a few of the old original peripherals!

— Reply to this email directly, view it on GitHub https://github.com/randyrossi/bmc64/issues/249, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAI3HKEAWWP4HWUEXRNPEULYBRBMLAVCNFSM6AAAAAA6TP3KJOVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE3DMMZQGY3DONI>

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Randy Rossi

  • "There are only two things that are hard about computer science; Naming things, Cache Invalidation, and Off-by-one errors."

— Reply to this email directly, view it on GitHub https://github.com/randyrossi/bmc64/issues/249#issuecomment-1783831141, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACEWM3WACBRMICGLKWEGTFLYBUJTRAVCNFSM6AAAAAA6TP3KJOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBTHAZTCMJUGE . You are receiving this because you authored the thread.Message ID: @.***>

-- If you ask me if it can be done. The answer is YES, it can always be done. The correct questions however are... What will it cost, and how long will it take?

Monotoba avatar Oct 28 '23 22:10 Monotoba