2019-06-14 14:49:13 +02:00
# Vhex disassembler
2019-06-10 01:57:25 +02:00
2019-06-14 14:49:13 +02:00
Vhex is a GUI, Vim based, disassembler for fx9860g.
2019-06-14 19:24:48 +02:00
The Casio's OS code is not open-source, but we can read the binary for understand his working.
2019-06-20 15:49:09 +02:00
There are in particular the syscalls, OS's functions that can be called as a library by the add-ins, which are a gold mine of clues about the functioning of the material.
2019-06-14 14:49:13 +02:00
![](https://framapic.org/kMVBl2hbDXOo/PBd7D1FR0LF2.gif)
## features
2019-06-20 15:49:09 +02:00
* All SH3 and SH4 instructions traduced "on-the-fly".
2019-06-14 14:49:13 +02:00
* Can handle 3 modes for movements.
* Can handle commands.
* Commands history.
* Compatible with SH3 and SH4 architecture.
2019-06-14 19:24:48 +02:00
### List of currently supported commands:
2019-06-14 14:49:13 +02:00
2019-06-14 19:24:48 +02:00
* `systab` jump into the Casio "syscall handler".
* `vbrjmp <zone>` jump into the Casio interrupt, exception or tlb miss handlers.
* `syscall <id>` jump into the syscall function.
* `ram <zone>` jump into the RAM mapped at different parts of the Virtual Memory.
* `jmp <address>` jump where you want.
* `rom <zone>` jump into the ROM mapped at different parts of the Virtual Memory.
* `help <cmd>` display command's help.
2019-06-14 14:49:13 +02:00
2019-06-14 19:24:48 +02:00
### List of currently supported modes:
2019-06-14 14:49:13 +02:00
2019-06-14 19:24:48 +02:00
* `UNUSED` The session is unused.
* `NORMAL` User can move freely where it wants.
* `COMMAND` User can type some commands.
2019-06-14 14:49:13 +02:00
## Building
2019-06-14 19:24:48 +02:00
Before compiling for the first time, There are few dependencies:
2019-06-14 14:49:13 +02:00
* A suitable GCC toolchain in the `PATH` . You can absolutely *not* build Vhex
2019-06-14 19:24:48 +02:00
with your system compiler! `sh3eb-elf` is strongly advised.
2019-06-14 14:49:13 +02:00
* [g1a wrapper ](https://bitbucket.org/Lephenixnoir/add-in-wrapper/src/master/ ) to generate the Casio header.
* [P7 ](https://p7.planet-casio.com/ ) communication utilities.
To compile the project, you just plug the calculator and execute:
% make
% make install