Anthony Ortiz <
[email protected]> wrote:
Hello world!
I'd like to gradually expose quite a bit of functionality on my card so I expect the API is going to be pretty big, so I'd appreciate some advice
on how best to structure the API interface to make it really easy to
program with. The card has a Raspberry Pi on it and I use bit-banging to create a bus between the Apple II address/data bus and the Pi's GPIO
pins, and the GPIO seems more than capable of working at 1mhz speeds so
it can 'keep up' with the Apple II. What I'd like to do is gradually add
API support for things the Pi can provide, such as HDMI monitor and all
the resolutions a PI supports, 8gb of RAM, TCP/IP over wired/WIFI, USB storage/audio/printer, 1.5ghz co-processor capabilities, etc...
Any thoughts on how best to expose this type of API for easy consumption?
If the Pi is snooping every phase of every bus cycle you could copy the interfaces of standard peripheral cards (Uthernet II for IP, SSC for
printers, video phase of the data bus for native video) and then maybe Smartport for storage and any new facilities you want to add. By allowing
the one card to logically appear in multiple slots (user programmed e.g. Uthernet II in Slot 1, SSC in Slot 2, Mouse card in Slot 4, Smartport in
Slot 5, Disk ][ in Slot 6) backed by emulated peripherals on the Pi you
could tap into much of the existing software base and only need to create
new Apple software to take advantage of the new features.
With the user programming of functions to slots, you could even have a
helper program in the Apple interrogate the slots for physical cards and disallow use of occupied slots to avoid bus contention. If you want to get really adventurous you could require your card be placed in Slot 7 and have
it subvert the boot process by appearing as a boot device, pushing the
helper program to system RAM as a boot block, interrogating the slots to identify physical cards, allow the user to decide how to manage any
conflicts detected, and then continue the boot process as normal. That
would slow down every boot, so it might be something you’d want to be able
to disable or only perform when a certain key combination is detected.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)