Vhex is a kernel which provide development and retro ingenierie platform for the Casio's OS
Go to file
yann MAGNIN 76aeea1fa5 Update License used by the project --> switch to CC0.
Add change project name to Vhex.
Update command handling, now we generate and hide the cache
	(and command block) during the compilation.
Add documentations.
Add manual pages.
Add units tests.
Update some modules.
2019-06-14 14:49:13 +02:00
include Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
src Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
tests Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
.gitignore All instructions can be traducted "on-the-fly". (except FPU instruction because 2019-06-10 02:14:49 +02:00
LICENSE Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
Makefile Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
README.md Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
bootstrap.ld Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
global.mk Update License used by the project --> switch to CC0. 2019-06-14 14:49:13 +02:00
icon.bmp All instructions can be traducted "on-the-fly". (except FPU instruction because 2019-06-10 02:14:49 +02:00

README.md

Vhex disassembler

Vhex is a GUI, Vim based, disassembler for fx9860g. The Casio's OS code is not open-source but we can read the binary for understand his working. There are in particular the syscalls, OS's functions that can be called as a library since the add-ins, which are a gold mine of clues about the functioning of the material.

features

  • All SH3 instructions is traduced "on-the-fly".
  • Can handle 3 modes for movements.
  • Can handle commands.
  • Commands history.
  • Compatible with SH3 and SH4 architecture.

List of currently supported commands:

  • systab jump to the syscall entry (Casio do not use TRAPA instruction, just jump into constant address).
  • vbrjmp int jump to the Casio interrupt handler.
  • vbrjmp except jump to the Casio exception handler.
  • vbrjmp fault jump to the Casio memory fault handlers.
  • syscall <id> jump to the syscall function.
  • ram <zone> jump to the ram mapped in zone (p0,p1,p2,p3,p4).
  • jmp <address> jump to the address.
  • rom jump to the start of the ROM.

List of currently supported modes:

TODO WRITE DOC

  • UNUSED
  • NORMAL
  • COMMAND

Building

Before compiling for the first time, There are a few dependencies:

  • A suitable GCC toolchain in the PATH. You can absolutely not build Vhex with your system compiler!sh3eb-elf is strongly advised.
  • g1a wrapper to generate the Casio header.
  • P7 communication utilities.

To compile the project, you just plug the calculator and execute:

% make
% make install