41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
|
# 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.
|