
I received a message on AppleFritter to add a new feature on the SmartDisk II. The request was to have the content of the SDCard to be displayed on the Apple II at startup like Slot card are able to do it. I did not reply straight because I was not sure it was possible or not.
I started reflecting on how I would do it given my knowledge of the DISK II interface card and also the way the SmartDisk II is working. I had an interesting discussion with Antoine Vignau on an approach that would use the SMARTPORT protocol with undocumented function around CMD. With this approach the SmartDisk II would issue a SmartPort CMD with specific parameters that are not used by the SmartPort ROM or the SP6 Rom. I still think this is possible, however the approach would assume that the Apple II has a SMARTPORT card or is a IIGS. This would limit the functionality and would not bring the best user experience to the user.
I had to find an alternative approach, and I think I have a better way to do it…
The better approach was to implement an interface between the Apple II using a startup disk and the SmartDisk II. to better understand the interface concept the following high level diagram is bringing more clarity
The sequence is decomposed as follow:

1/ The Apple II is booting, and the Smartdisk II is serving the smartloader.po image like any other image, the smartloader image is a PRODOS image.
2/ The smartloader image starts to execute from memory location 0x2000, and will start interacting with the SmartDisk II using 2 dedicated tracks.
3/ The smartloader send a command by writing to track 0x15 the first block 0xA8, the smartDisk is detecting the write request with the smartloader as the active image is not performing a regular write but interpreting the smartloader request. After processing the request, the SmartDisk II is serving back the content to track 0x16 block 0xB0 (Physical sector 0 & 2).
4/ The smartloader issues a READ_BLOCK via PRODOS and starts processing the result.
As I write this post, it is still in early beta stage, This approach is working like a charm and give pretty good UX performance,
the smartloader image is a pure 6502 assembly program compiled with Merlin32 on Mac0SX and using Cidepress and Cadius to have a working PO image.
The project can be found on GitHub at https://github.com/vibr77/Smartloader