summaryrefslogtreecommitdiff
path: root/src/debug.rs
Commit message (Collapse)AuthorAge
* Fix reported address of debug instruction in debug outputBen Bridle2024-12-16
| | | | | | | | | | Because the program counter is incremented immediately after an instruction byte is loaded, the value of the program counter reported by a debug instruction was actually the address of the following byte. This made the SYM symbol name line in the debug output report the wrong symbol name in some situations. This was fixed by decrementing the value used.
* Print debug messages as info-level log messagesBen Bridle2024-10-31
| | | | | Debug messages are now printed with a blue [INFO] prefix, to match the style of the information messages printed by the rest of the project.
* Only print stack debug information in debug modeBen Bridle2024-10-31
| | | | | The stack state when halting was previously being printed even outside of debug mode.
* Show memory address on SYM line in emulator debug outputBen Bridle2024-10-31
| | | | | | | | | The memory address of the most recent symbol is now displayed next to the name of that symbol in the emulator debug output, to make it easier to see how close the program counter is to that symbol. The source location of that symbol is now also shown as dimmed to make it less distracting.
* Load and display symbols in debug informationBen Bridle2024-10-30
| | | | | | The assembler saves out symbols files, which are loaded automatically by the emulator when present. The name and location of the most recent label is displayed with the debug information when symbols are loaded.
* Rewrite emulatorv1.0.0-alpha1Ben Bridle2024-10-28
This is a complete rewrite and restructure of the entire emulator project, as part of the effort in locking down the Bedrock specification and in creating much better tooling for creating and using Bedrock programs. This commit adds a command-line argument scheme, an embedded assembler, a headless emulator for use in non-graphical environments, deferred window creation for programs that do not access the screen device, and new versions of phosphor and bedrock-core. The new version of phosphor supports multi-window programs, which will make it possible to implement program forking in the system device later on, and the new version of bedrock-core implements the final core specification.