p7utils/src/p7os/cake.exe/README.md

41 lines
1.6 KiB
Markdown
Raw Normal View History

2019-12-29 22:28:26 +01:00
# 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.