An emulator and disassembler for the CASIO calculator series using the nX-U8/100 core.
Each argument should have one of these two formats:
key=value.path: equivalent toinput=path.
For the supported values of key: see args_assoc in disassembler.lua file.
See models folder.
Each argument should have one of these two formats:
key=valuewherekeydoes not contain any equal signs.path: equivalent tomodel=path.
Supported values of key are: (if value is not mentioned then it does not matter)
paused: Pause the emulator on start.model: Specify the path to model folder. Examplevalue:models/fx570esplus.ram: Load RAM dump from the path specified invalue.clean_ram: Iframis specified, this prevents the calculator from loading the file, instead starting from a clean RAM state.preserve_ram: Specify that the RAM should not be dumped (to the value associated with theramkey) on program exit, in other words, preserve the existing RAM dump in the file.strict_memory: Print an error message if the program attempt to write to unwritable memory regions corresponding to ROM. (writing to unmapped memory regions always print an error message)pause_on_mem_error: Pause the emulator when a memory error message is printed.history: Path to a file to load/save command history.script: Specify a path to Lua file to be executed on program startup (usingvalueparameter).resizable: Whether the window can be resized.width,height: Initial window width/height on program start. The values can be in hexadecimal (prefix0x), octal (prefix0) or decimal.exit_on_console_shutdown: Exit the emulator when the console thread is shut down.
Those Lua functions and variables can be used at the Lua prompt of the emulator.
-
emu:set_paused: Set emulator state. Call with a boolean value. -
emu:tick(): Execute one command. -
emu:shutdown(): Shutdown the emulator. -
cpu.xxx: Get register value.xxxshould be one ofr0tor15- One of the register names. See
register_record_sourcesarray inemulator\src\Chipset\CPU.cpp. erN,xrN,qrNare not supported.
-
cpu.bt: A string containing the current stack trace. -
code[address]: Access code. (By words, only use even address, otherwise program will panic) -
data[address]: Access data. (By bytes) -
data:watch(offset, fn): Set watchpoint at addressoffset-fnis called whenever data is written to. Iffnisnil, clear the watchpoint. -
data:rwatch(offset, fn): Set watchpoint at addressoffset-fnis called whenever data is read from as data. Iffnisnil, clear the watchpoint.
Some additional functions are available in lua-common.lua file.
To use those, it's necessary to pass the flag script=emulator/lua-common.lua.
Run make in the emulator folder. Dependencies: (listed in the Makefile)
- Lua 5.3 (note: the include files should be put in
lua5.3folder, otherwise change the#includelines accordingly) - SDL2
- SDL2_image
- pthread (already available for UNIX systems)
Run the generated executable at emulator/bin/casioemu.
To interact with the calculator keyboard, use the mouse (left click to press, right click to stick) or the keyboard (see models/*/model.lua for keyboard configuration).