[NTLK] Einstein Monitor improvements on OS X
stevenf at panic.com
Tue Jun 30 01:00:22 EDT 2015
I've just committed a change to the master branch of Einstein that dramatically improves the appearance of the Monitor window on the OS X version.
Before, I was just capturing the output of the console version and displaying it in a text view. Now it is a completely custom view that we can draw in any way we like.
To kick things off, I added some real (non-ASCII) separator lines, a bit of color, and made the window resizable. It also highlights r0-r15 registers that have changed between steps in a brighter color. See before and after screenshots here:
Other than the new appearance, it still works exactly the same way as the original console.
* * *
This presents us an opportunity to add some features to the Monitor. For example, click on an address to jump to that address (or view a memory dump). Mouseover tooltips could show what's at a referenced memory address. We could view memory as a bitmap. Etc, etc. We could make a little mini-IDA tailored just for Einstein. :)
What I've done so far hasn't changed the original console Monitor, but to get really fancy, these two versions of the monitor are going to start to diverge, and I wanted to get feedback from the other developers on that. Is it ok/bad if the Mac Monitor starts growing a bunch of features that the Linux version (for example) doesn't have?
* * *
Another thing we could do is make the Monitor window effectively a front-end for editing the symbols/comments file format that we talked about a while ago. Einstein already loads symbols.txt if it finds it, and symbolicates the disassembly.
I'm imagining you could be on a particular line in the Monitor, hit some key (maybe semicolon), type in your comment, and have the symbols/comments file be updated with that new information? If we then checked that file into the Einstein repository, we'd have our shared ROM comments file.
One snag here is it looks like Einstein uses a simpler symbols.txt (just two fields: an address and a label), vs. Matthias' version which has type information for function parameters, differentiates between code and data, and so on. We'd need to settle on exactly what this format is supposed to look like, and then probably write some shared code to read and write it.
* * *
As always I am happy to work on other areas of Einstein too, but need directions. What I want most is to get that MMU emulation out of there, so anything I can do that helps you guys achieve that, even if it's just adding some GUI in the Monitor to make some research process faster, let me know.
More information about the NewtonTalk