Skip to content

This is a GDB like time travel debugger and emulator for the intel 8080.

Notifications You must be signed in to change notification settings

Cool-Cole/ttdbg8080

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Time Travel Debugger and Emulator for the Intel 8080

Or ttdbg8080 for short.

An image of the intel 8080A (Image courtesy of wikipedia)

Features

  • 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

Using ttdbg8080

Printing the help page

ttdbg8080 -h

Loading a rom file

ttdbg8080 -l rom.bin

How it works

The Disassembler

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

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.

Time Travel Debugging

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.

Disclaimer

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/.

About

This is a GDB like time travel debugger and emulator for the intel 8080.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published