Ghidra is an amazing open source reverse engineering tool. Of course it doesn’t support the m88k yet, but it’s architected in a way that allows processors to be added via a plug-in mechanism. So, I’ve decided to try coding up the m88k so that I can use Ghidra to disassemble the NCD roms and Xterm image. My repo is here. It’s still work in progress, but I’m able to disassemble hello.c compiled on OpenBSD.
The processor description language is called SLEIGH. All the supported processor descriptions are also available in the source for reference, but it’s quite overwhelming. I had to read several blog posts on the internet to get started. My understanding of SLEIGH is still superficial, and in particular I took many shortcuts with the semantic definitions of the instructions so the decompiler output is still not useful. I do hope to continue a bit more on this path to get to a point where the disassembler for m88k is useful.