This has been going pretty well. I’ve probably put 10 hours of work in since the last log, and have made a lot more progress than I had by trying to think everything out ahead of time. I am currently able to collect and resolve all the name usages on a direct assembly pass, and to create and use a .resolve file for external names on a source.
To aid the remaining rom assembly work, I want to actually get imports working first. To be able to import a routine, we need to resolve all the names it uses. Anchors must be “local” but all routines must be hashes (from resolver or library), and all macros must be expanded. Also, there can be no “absolute” commands (?) in routines, so those must be flagged as errors.