plbyrd wrote:I wrote a quick memory configurator for Ultimem last night and saw a consistent behavior. When I applied a value to the registers and the Ultimem was there, leaving the program resulted in a soft-boot with the correct configuration. When I didn't have Ultimem in place, the program just drops back to basic when it finishes. If this is a safe and repeatable process then I could that behavior to determine the presence of Ultimem. However, I was hoping for a less invasive way to do it.
You *could* just assume Ultimem is there, and get the desired result when accessing its registers. And make sure, that your program doesn't crash, when no cartridge at all is connected.
However, you have no way to make sure what happens when any other cartridge than Ultimem is connected. Of course you could check against all known cartridges *) with something mapped into I/Ox, but even if you happen to find an unsuspecting address which works with all current cartridges, that doesn't prevent mishaps with new developments.
*) Final Expansion 3, Mega-Cart, VIC-1112 IEEE 488, misc. 40- and 80-column boards (like Data-20, Protecto-80, etc.) or 'one-of-a-kind'-like cartridges like MCes' +123K board spring to my mind here.