-
February 19, 2026
2026-02-19 What happened Built a hardware-level simulator that runs the unmodified firmware binary. Rather than porting the decompiled C, this approach uses jarikomppa/emu8051 as the CPU core and implements the MMT-8 peripheral hardware in C around it. SDL2 renders the LCD, buttons, and LEDs. The key insight with emu8051 is that it exposes function-pointer callbacks for external memory reads/writes and…
-
February 18, 2026
2026-02-18 What happened Started by dumping the EPROM from the MMT-8 — 32KB 27C256, straight binary read. Used dis51 to get an initial assembly listing (29,208 lines), then brought it into Ghidra 12.0 for decompilation and annotation. Wrote three Ghidra Jython scripts to automate the tedious parts: ghidra_setup.py seeds the disassembly from known entry points (reset vector, interrupt vectors), ghidra_annotate.py…
-
February 18, 2026
2026-02-18 What happened Wrote up a detailed plan for porting the decompiled firmware to compilable C running on Linux. The target is a working emulator with ncurses LCD display — not cycle-accurate hardware simulation, just the firmware logic running natively. The plan splits into four layers: HAL ( mmt8_hal.h/c ) — replaces 8051 hardware with C arrays and macros. XDATA[65536]…