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

1.6 KiB

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 >= 4.9
binutils >= 2.25

Building

Just make.

Other useful targets:

  • mostlyclean, clean: remove built files.
  • re: remake.