CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: ComSoft6128 on 11:41, 18 February 21

Title: Arduino IO card for Amstrad CPC 6128
Post by: ComSoft6128 on 11:41, 18 February 21
One for the hardware community.....


https://hackaday.io/project/169565-arduino-io-card-for-amstrad-cpc-6128


I was looking for info on the CPC in Australia when this popped up so I'm assuming that it's Australian in origin.
Title: Re: Arduino IO card for Amstrad CPC 6128
Post by: Gryzor on 13:45, 18 February 21
My favorite part:

QuoteMy floppy emulator has not yet arrived and I have some time to spare so I need to find a way to get software on and off this machine. I could use the cassette port but thats too easy so I need to access one of the ports. The printer port is only an output, the floppy is controlled by the floppy disk controller so would require a long winded deciphering process to use it, so that leaves the expansion port.
Title: Re: Arduino IO card for Amstrad CPC 6128
Post by: VintageAdvantage on 15:45, 17 March 21
Quote from: Gryzor on 13:45, 18 February 21My floppy emulator has not yet arrived and I have some time to spare so I need to find a way to get software on and off this machine. I could use the cassette port but thats too easy so I need to access one of the ports. The printer port is only an output, the floppy is controlled by the floppy disk controller so would require a long winded deciphering process to use it, so that leaves the expansion port.

Oh my, those story tellers... and of course, the Joystick port would have been to straight forward for digital input as well :-) It's a funny read though.

As much as I admire the solution of "capacitor + diode" and pulling Z80 waitstates with the microcontroller, I would nevertheless always prefer a more reliable and fully digital solution. A capacitor might age... an additional latch / tri-state bus driver for latching and managing the databus properly adds only 50 Cents to the design. IMHO having the timing rely on some analog circuitry is a bit "too smart" and hackish. Admittedly, it saves a lot of circuit complexity, but ties down the CPC bus too much by pulling READY all the time. What does that do in combination with other expansions? Scratching my head about the motivation for all of this.

But here is what I really wanted to discuss: what do you guys think? Is this actually the KISS principle at work, or not? One could argue 2 ways:
https://en.wikipedia.org/wiki/KISS_principle (https://en.wikipedia.org/wiki/KISS_principle)

1. yes, because it reduces circuit complexity
2. no, because it is far from obvious how it works, and requires a lot of very precise  microcontroller timing fidling etc. to get right (reasons above)

I would argue, despite having saved a few components, that it actually violates the KISS principle, because it is "too smart"! As I said, I admire the solution (and this is not a backhanded compliment!), but I don't think I would ever go for it or try to replicate it.

Yes, sometimes less is more. However, sometimes a little bit more is needed - like Einstein said: Everything should be as simple as possible, but not simpler ;-)
Title: Re: Arduino IO card for Amstrad CPC 6128
Post by: WacKEDmaN on 09:31, 09 June 22
i was going to build something like this...so i could do stuff like load disks and snapshots directly into ram ...and of course some addition IO to screw around with...(much like the Z80-MBC2 does)

im now thinking about rolling the ps2 keyboard adapter, tzxduino, joystick adapter and this IO all into one device (eg Arduino Mega2560) as it would make things soo much neater.. im probably going to run a bit short on pins on the mega tho..but could maybe use a couple of 16 pin GPIO extenders via i2c for the address and data buses..(all logic will be taken care of in arduino code)

Powered by SMFPacks Menu Editor Mod