Or ttdbg8080 for short.
- Emulation of the 8080 architecture (excluding Auxiliary carry CPU flag)
- Supports break points
- Supports watch points
- Builtin disassembler
- Supports printing internal memory
- Step forwards in program execution
- Step backwards in program execution
- Dump the emulator memory to a file
- Facilitates user modification of memory and register values
- User modification of memory and registers persists across time travel replays
ttdbg8080 -h
ttdbg8080 -l rom.bin
The disassembler is a typical linear sweep disassembler, as such it doesn't follow the programs control flow. This may result in incorrectly disassembled bytes so make sure to keep an eye out for that if you are using ttdbg8080.
The emulator works by combing through instructions one by one and executing their related function found in handlestate.c. These functions manipulate a global state as defined by the cpuState structure found in handlestate.h.
The emulator/debugger facilitates the ability to step backwards in program execution. To accomplish this, the emulator simply reruns the program back to the desired point in execution. Breakpoints are kept and still checked for while the emulator reruns the program. At this point any modifications to the program by the user are not preserved when this action occurs.
This is just a toy project that I occasionally work on. Feedback on this project's code is highly encouraged and appreciated. You can find my contact information here https://cole.pizza/contact/.