The MEGA Audio card is amazing, but doesn't save the parameters across cold boots.
Disclaimer: Your mileage may vary: It is supposed to persist parameters, but several of us have independently reproduced a parameter drop across cold boots that was saved by using this stuff. We haven't talked to the manufacturer about this because this was a fun project. Plamen is still the best and I'm still gonna buy at least one of everything he makes.
I was talking to Jay, and we agreed that a .SYSTEM stub like the No Slot Clock uses would be fun: Use CAT.DOCTOR or other directory sorter to push it up towards the top of the catalog, so PRODOS will run it, it'll restore your saved parameters, then hunt the next .SYSTEM file and invoke it. This took about 6 hours to get right but I'm proud of it anyway.
I began by saving and disassembling the MEGA Audio's configurator ROM, something like:
] CALL -151
* CFFF
* C700 (card's in slot 7)
* 8000<C800.CFFFM
* 3D0G
] BSAVE MEGAROM,A$8000,L$800
From there, I disassembled it and found the salient parts, clearly visible towards the end of the Merlin source included. After I got that working, I decided to look at how the No Slot Clock .SYSTEM stub works: It relocates itself to $1000 to load the next .SYSTEM file at $2000, then reads ProDOS variable $BF30 to find the last deviceid used, then reads block $0002 from that device, and hunts through the catalog structure for satisfaction. I rewrote this logic from scratch and it seems to work for me at least.
Merlin assembly source, high bit stripped
Applesoft BASIC configurator for the .SYSTEM file
Tu veux ou tu veux pas?
Download megaset.po disk image (right-click, Save As, etc)
- iigs@ballmerpeak.org