February 17, 2022

Callan Multibus 68k CPU board - disassemble the Roms

We have 2 pairs of roms. Each pair is an even/odd set.

We will need to merge even and odd into a single image.
Then we will turn that image into an elf file.
Then we will disassemble it.

Get a disassembler

What we want to use is objdump68k. We used to have this on our system back around 2016 or so, but I don't see it any longer. I try this:
dnf install gcc-m68k-linux-gnu
 -- installs: gcc-m68k-linux-gnu-11.2.1-1.fc34.x86_64
 -- installs: binutils-m68k-linux-gnu-2.35.2-1.fc34.x86_64
This gives me "m68k-linux-gnu-objdump", and we will see what it will do for us.

Get an even/odd merge tool and an ELF wrapper

This is pretty easy and we just code it up in C. Then we rob my "wrap.c" from the old Mightyframe project and after editing a couple of lines to set the start address for the code in ROM, that works. And then m68k-linux-gnu-objdump works OK, but for some recent it thinks it is a good idea to display many constants as decimal values rather than hex. I decided to write a post-processor to fix this. For example it displays 0xffff7fff as #-32769 when it is being used with an AND instruction to clear a single bit.

Analyze the ROMS

This is the fun part (and a lot of time and work). I put extensive notes on what I learn in the disassembly listings themselves, which are available on Github and should be examined if you are interested in this sort of thing.
Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org