Hahahaha (laughing at myself, once again).... :)
The first time I saw your table of data, Mark, I was fairly stupefied by what I was looking at. A damning indication that I had plenty of work ahead of me, despite my preliminary successes. (I had managed to compile a working version of Pong.asm/.hack, but I was using different memory registers... that's when I came here to poke around for ideas...)
At that time I had been using a C# Dictrionary<string, int> for my symbol-table. I saw how you've broken yours into C and D types... I didn't see any immediate benefit to that data-point, but it did nudge me into getting off the dictionary and simply making my own class/container for symbols. I still used the objects inside a C# List<SymbolEntry> to use List features, however.
Wow, that was way more time spent refactoring than most sane people would have applied, methinks,
but... I finally got Pong.asm to compile and match the supplied Assembler!
Obviously(?) I could have just stuck with the dictionary. I think I'd have about half-as-much source-code right now, too, had I done so. Nevertheless, the exercise was entertaining and rewarding. Once my headache goes away, I'll have to go back and finish tidying/refactoring, but for now, I might have an award-winner for
Most Bloated Hack Assembler:Thanks for the support. Now on to chapter 7!