Say what? Yes, (yet) another macro assembler for the PDP-1. Before you yawn, this is a full-featured assembler that understands extended memory, has cross-bank support built in, has local symbols, uses cpp, and far more. See the doc, the list of features is early on.
So why does anyone need this? Nostalgia is fine, but I've been churning out a lot of pdp-1 assembler code and after the 'nostalgic experience', I'm much more interested in productivity. This makes many things so much easier, and actually has error checking.
Oh, and it also comes with a tool to convert existing macro1 source to am1 source,
including convering the macro1 defines to cpp #defines. And it's documented.
I've successfully converted, am1 assmbled, and run several of the usual programs including snowflake, spacewar, and pong.
If you got this far, it's implementing using modern(ish) tools, flex and bison. Internally, it generates a parse tree so whatever codegen you want to do can be easily added. As it comes, it can produce valid, assembleable macro1 source, or if you want extended memory support, rim-loadable tape images. It has its own loader that rim bootstraps to handle extended memory.