Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libti*: add support for reading, sending (, writing ?) TI-eZ80 bundle files #27

Open
5 tasks
debrouxl opened this issue Oct 28, 2018 · 0 comments
Open
5 tasks

Comments

@debrouxl
Copy link
Owner

debrouxl commented Oct 28, 2018

With the advent of OS 5.3.0 for the 83PCE and 84+CE, TI introduced a new "bundle" format for combined OS + FlashApps upgrades, containing:

  • a METADATA file containing, well, simple metadata about the bundle;
  • a set of 1 8pu (83PCE) / 8eu (84+CE) file, multiple 8ek FlashApps, multiple 8ca images;
  • a trailing _CHECKSUM file

wrapped in a plain ZIP file (that is, it doesn't have a special header, unlike Nspire OS upgrades). The file extension is .b83 for the 83PCE and .b84 for the 84+CE.

Chances are that apart from the metadata, this could be modeled using existing data structures.

Foreseeable tasks:

  • libtifiles:
    • add support for the .b83 and .b84 extensions;
    • add support for parsing the ZIP content to (probably) TigContent containing FileContent and FlashContent instances;
    • should support for writing bundle files be added ?
  • libticalcs:
    • add support for handling more than one file in calc_84p.cc::send_os_834pce();
    • obtain the OS version before trying to send it again. Maybe we should ask for user confirmation to overwrite even if same version... but that would require splitting ticalcs_calc_send_os() and the underlying functions and data structures, and adjusting the callers;
    • try to do whatever it takes to handle calculator disconnect and reboot properly. Again, if that's made easier by splitting the send OS worflow, so be it ?
    • does TI-Connect CE perform delta updates for FlashApps ? If so, how ? Maybe by using the 0x0031 parameter ID, which I dubbed DUSB_PID_FLASHAPPS... would need a dump to confirm.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant