Timendus / ticalc-usb

A library to communicate with TI graphing calculators through WebUSB
https://ticalc.link
GNU General Public License v3.0
29 stars 4 forks source link

Application support #29

Open commandblockguy opened 3 years ago

commandblockguy commented 3 years ago

Because you need the CabriJr app to run assembly programs on the later CE OS versions, it would be nice if the library supported applications. Unfortunately, applications are a bit tricky:

I have some code for sending applications to the ez80 series on my fork, but I would best describe that as an incomplete hack. I'm unsure what the best way of handling applications (and potentially other types of flash files, in the future) would be, in terms of the API - right now, I'm adding a special case to the existing file parsing function, then creating a list of "fake" entries to return, but this might not be the best solution overall, especially if we want to support OSes in the future.

reesericci commented 3 years ago

@Timendus any comment?

debrouxl commented 3 years ago

libtifiles has separate data structures for standard variable content, for FlashApps / OS upgrades content and for backup content; arrays of variables and TIGroups reference these structures. It's definitely possible to make a unified data structure for variable content, Flash content and backup content, and then a data structure for packs of the other content structure; however, since these three types hardly have any common attributes, for any given variable entry, most fields would be empty.