I've found a binary copy of a DOS freeware game I was fond of back in the day (Firefighter, downloadable as FIRE.COM
) but the source code is not available. I'd like to re-implement it in C or Python using Unix curses and while I'm fully competent to do that part, I know almost nothing about tools for reverse-engineering and decompiling DOS .COM file binaries.
Going by documentation that says .COM is headerless raw machine code, I tried running objdump -D -b binary -m i386
on it. The result didn’t look valid. objdump -D -b binary -m i8086 –adjust-vma=0×100
appeared to do the trick as did using NASM with ndisasm -b 16 -a -o 0×100
and both of those do seem to produce plausible assembly listings.
Ideally, though, I'm looking for something that decompiles and renders to C in as-if-it-were-assembler style with generated variable names and useful annotations on the DOS traps. I understand that such a beast may not exist, but on the chance one does I'm seeking recommendations.