
The Dewtronics M6811 Disassembler is a Code-Seeking Disassembler. What's so special about it? Well, unlike
ordinary disassemblers that treat the entire source file as code, which produces mostly erroneous output, the Code-Seeking
disassembler will actively trace code paths to fascilitate the separation of code and data.
So why did I write a 68HC11 disassembler? I originally wrote the disassembler while working on transplating
a 1994 4.3L CMFI Vortec engine into my 1985 Grand Prix. GM uses mostly Motorola processors and this one in
particular was a MC68HC11F1 or a slight variant of the F1. So I rewrote the 6809 Code-Seeking disassembler
that I wrote several years prior (wrote it to disassemble the code on the SuperFlow SF-901 engine dyno) to handle
6811 opcodes and here it is.
The other problem I have with most generic disassemblers is that they don't target a specific assembler. This
means that if you want to disassemble a binary, make a few changes, and reassemble it -- you'll spend hours trying
to rewrite the output so that your assembler can assemble it. So, I targetted this disassembler for the
AS6811 assembler written by Alan Baldwin at Kent State University. Do NOT confuse his AS6811 assembler
with the Motorola AS11 Freeware Assembler!. Alan's assembler is a very nice assembler package and is
freeware and distributed with source code.
So what is planned? The current version I have available (Version 1.0) is a DOS 16-Bit command-line application. It
was written in Borland Pascal 7.0 and so has all of the limitations of a real-mode DOS application. However, it is
a fully functional program and is a good starting point. I am in the process of rewriting it into C using
Microsoft's Visual C++ 5.0. (I know, I know... Don't say it... Soon I'll be converting it into GNU C++)... The
rewrite, which will be Version 1.2 (Version 1.1 was an intermediate step that will not be released to the public), will
be a DOS 32-Bit application. This means that even though it is a DOS program, it must run in a 32-Bit environment,
such as a DOS window inside of Windows. But, part of the rewrite will be the creation of a Generic Disassembly
Class (GDC) that will encapsulate the disassembler within a DLL. This will allow easy porting into a Windows GUI
application, and will allow users to write DLL modules for additional processors without having to rewrite the GUI or
front-end to the program.
Version 1.2 is well underway and once a few more "tweaks" have been completed, it will be ready for
release. Following it will be Version 2.0 which will be a Microsoft Windows GUI front-end for the M6811 GDC
module. Later, this will be expanded into GenREP -- Generic Reverse Engineering Platform --
which will be a commercial reverse engineering package that will work on any processor and do a whole lots more
than just disassemble code!
Additional plans are being made for Version 3.0 and Version 4.0 which will be Linux command-line and GUI versions,
respectively. Now that I have switched my home machine to Linux (and will soon switch my office machine), I will
probably be placing a higher priority on the Linux versions. Current reports from users indicate that the
present DOS applications will work under the DOS Emulator in Linux -- though I haven't checked this myself for
confirmation. But, if you need to run it in Linux before I officially port it to Linux, give it a try.