Thank you - I couldn't recall what it was that I'd have to be cautious of in assembling for the 6809.
Of the above list of opcodes handled differently on the 6809, these make an appearance in the source:
ABA, CBA, CLC, CLI, DEX, INX, INS, SBA, SEI, TAB, TBA, LSRD, LDD, STD
At that point in the game, I had almost no understanding of the source code, so I had been slightly concerned about how much would need to change for compatibility
(not as concerned now, since I have attained a marginally better understanding of the code's functionality). Some, like the last three, would be almost trivial for me to adjust in the source before dropping it into a 6809 compiler.
As for on-chip features, this MPU variant had no built-in peripherals or RAM, and used the same package as the 6800 (the pinout is ALMOST the same - only pins 3, 38, and 39 differ).
Actually, given the above, it would probably be better to say the original MPU is a 6803 with pinout similar to the 6800, and is configured to always run in expanded mode.
So, yes, the HC11 remains the better choice - it was the -F1 variant I had tried to use (either I did not load the setup registers correctly or I missed something in my design).
But now that I have a sufficient understanding of the code, I believe it should be possible to recreate it in C++ so a modern programmable controller similar to the Arduino could be used.
Before I do that, I want to get an understanding of (and try to optimize the code for) the other piece of equipment used in this system so the messaging protocol can be better understood.
I did look around for the MCS9S12, but I get the sense that it has gone out of production as well.