There are various tools for this job, but none (AFAIK) is capable of doing the complete work fully unassisted.
Shadow11 is one possibility. It has a very simple disassemble option which assumes all code is linear. After that you're on your own.
SIM11E (a simulator from P&E) is another possibility. Although not a code-seeking disassembler per se, it can be made into one by using the LF (LOGFILE) and LISTON options with the STEP/STEPFOR commands. Make sure you follow all possible paths in your program (by manually adjusting CCR or PC as needed. The resulting logfile (when stripped from the register contents will leave addresses and instructions in this format:
PC:D016 [LDAA #93]PC:D018 [STAA OPTION]PC:D01B [CLR TMSK2]PC:D01E [CLR BPROT]PC:D021 [LDS #5F]PC:D024 [BSR SETCHIPSELECTS]
(Example from modified Buffalo. Labels won't be available without a MAP file, though.)
Using a sort program (with the option for keeping only unique lines), you'll end up with a pretty good disassembly of all code areas. The remaining S19 data you'll have to understand how the code deals with it.
From a simple Google search, these two possibly interesting ones came up:
DHC11 from Tech Edge might help too (I haven't tried that one, so no comment). It claims to be a code-seeking disassembler.
IDA Pro claims to be most powerful 68hc11 disassembler. Wouldn't know, I haven't tried it.
Be prepared for some heavy work. 