# cake.exe - communautary Update.Exe for CASIO calculators ## Introduction There is a special command in CASIO's Communication Protocol 7.00: the 0x56 command, considered by the community to be the "upload and run" command. CASIO uses it to modify the OS on the calculator: - The tools uploads an UpdateExe kernel; - The OS checks the UpdateExe, transfers it to RAM and transfers full machine control to it; - The kernel sets up a Protocol 7 server; - The tool communicates with this server to make operations on the calculator (mainly on flash memory): backup the OS, flash a new OS, ... Simon Lothar made his own for fxRemote, using bootcode functions for displaying and communicating (USB, Protocol 7). This project is a community-made update.exe to imitate proprietary CASIO ones and Simon Lothar's one. ## Restrictions In order to be SH3 and SH4 compatible, the size of the kernel musn't be greater than 64Kio. Also, a full independence from the OS and the bootcode should be seeked, so that this update.exe can also serve for flash-erasure operations - which may come in a very very long time. Also, the binary should finish with an identification block -- see `src/endblock.c` for details. ## Making dependencies | Name | Version | | -------------------------------------------------- | ------- | | [sh3eb-elf-gcc](https://gcc.gnu.org/) | >= 4.9 | | [binutils](https://www.gnu.org/software/binutils/) | >= 2.25 | ## Building Just `make`. Other useful targets: - `mostlyclean`, `clean`: remove built files. - `re`: remake.