New Apple II Virtual Card Platform?

benfranske

New Tinkerer
Dec 30, 2021
16
9
3
I'm toying with the idea of designing a card for the Apple II which is super programmable/flexible with the idea that it could emulate a bunch of other peripherals/cards such as: Disk II, SmartPort/ProDos HDD, Serial, Parallel, Apple II Workstation (EtherTalk w/ network booting), Printers, etc. as well as new ideas for experimentation and virtual cards people might have.

This came about because I really want to have a Disk II interface/drive emulation situation which is more like RaSCSI (i.e. does not use onboard thumb drive/CF card/SD card but is able to have disk images uploaded/swapped from another device over a network connection). I originally got excited about the Apple2-IO-RPi project and built one of those to see if I could hack out some software to do this since it supports a virtual ProDos HDD from the Pi but upon closer examination of the schematics it seems like this is not possible with the current hardware revision. In particular, unless I've missed something A0, A1, and A2 are needed for detecting the pseudo head location but those are not actually available to the Pi in the A2-IO-RPi. I do suspect that the Pi would be fast enough to directly emulate the Disk II controller without needing CPLD glue logic as the Pseudo Disk II did with it's AVR chip.

If I am going to have to design and spin my own PCB (instead of basing off the Apple2-IO-RPi board) this did get me thinking about what I would really, really want... and that is to use the Pi as a general purpose "software re-programmable Apple II expansion card" including the ability to do DMA on the Apple 2. This would allow it to be a platform which people with software skills, who lack hardware skills, could use to develop interesting Apple 2 cards entirely in software. To really do that though you need all the address lines and data lines available to the Pi. That's more I/O lines than the Pi has available...

So, then I started thinking if I need to do GPIO expansion (e.g. with an SPI or I2C I/O chip) why not instead do it with a RP2040 controller... That would allow for IRQs on all the pins in case there are ultra time-sensitive things that people might want to do. So my current plan is to design a PCB which basically is nothing more than an EEPROM, and connection via level shifters for all the address and data bus lines from the Apple 2 (plus a few others of import) to the RP2040 which then communicates to an outboard Pi for the real processing. That connection is probably to be over USB for simplicity. I also want to make the EEPROM re-programmable from the Pi via the Pico so that the whole card can be flexibly reprogrammed on demand.

Terrible idea? Great idea? Not feasible? Anyone want to help? I'm more confident in my hardware design and implementation skills than in the software side of things. I suspect I could hack the code together eventually (e.g. sometime in the next 30 years) but it would be neither pretty nor very good, especially the UI, I hate UI design :)
 
  • Like
Reactions: landogriffin