Oh cool this seems pretty thorough.
Though I did have some thoughts trying to go through it:
I get this is pretty niche but I still think a more gradual introduction could make it way more accessible.
As is, it's a lot to wrap your head around. As a reference it's fine maybe, but as a tutorial for a beginner it's pretty overwhelming.
Basically you explain so much stuff up front, and without any context, it's hard to remember or really understand - right now there's 200+ lines to get through before there's a concrete example of how to use it.
I'd suggest more of a build up - introduce a single concept, then put it into practice, and repeat.
To start off I think a brief description of the PC, memory, and instructions/opcodes, followed by how to use WriteMode.
Then possibly an example of say counting a register up to 10.
Next it could introduce loading a palette, and drawing a single letter to screen, also with an example.
Possibly there could be one or two more concepts with examples building on the previous ones.
At this point hopefully I'd have a better understanding of what's going on and a more detailed explanation of bytes, memory, etc., and the list of instructions and interrupts won't just go over my head.
Also I haven't play around with it too much yet, but going through the example I thought these shortcuts would have been convenient: (though maybe some of them are beyond the scope or not in the spirit of such a project I don't know)
- Set/clear all bits at current memory address
- A keyboard shortcut for switching between val and loc
- Prev/next memory address without needing to move the cursor to loc
- Insert memory address
- Copy paste maybe
- Shortcuts for some common instructions maybe, e.g. 1 could set an interrupt, 2 for LD, 3 for ST.
And one last thing - unless I'm misunderstanding something saving and loading don't seem to work properly.
Loading just does nothing, and saving doesn't work if there's already a simsuntitled.sims save file.