Since no one volunteered to figure out the rim loader kalah uses, it dawned on me that the pidp-1 creates a nice memory image file. Sooo, now there's a memory file disassembler, similar to the tape disassembler (which I also updated to fix some issues).
I have successfully captured the memory image from kalah running, disassembled it, reassembled it, and with a minor change, it runs like the original.
The minor change? The kalah loader clears memory. If that isn't done, it doesn't work. I just added a few lines of code to do that before jumping to the actual start address.
Now to figure out why it doesn't work properly.
Bill