"DeVectorize" was a hideous several-thousand-line Python script that
split 70% of the ROM into barely passable MPW object files. The new
unlinker, "unlink", produces much nicer files and enjoys a clean
separation of code from data. Using DumpObj, you can get a very readable
listing of a given object file (GoNativeROMLib.o has improved a great
deal). With a bit more work, unlink will be superior to FDisasm for all
68k Mac ROM reversal.
That is to day, put *something* in its place with the right length and
symbol locations. Now we can be sure that no incorrect bytes are due to
confused branch instructions, and therefore that they must all be fixed.
The ExpansionBusDispatch trap (AAF3) is implemented in ROM using a
DispatchHelper table. Using a header from the embryonic Expansion Bus Mgr in
CubeE (rather suspect) and from the Universal Interfaces (solid), the names of
24 of the 47 dispatch selectors have been found. This commit updates the
dumped ExpansionBusMgr.lib with new symbol names.
All but two of the 47 dispatch selectors are Vectorized, so this commit also
updates VectorTable.a with selector numbers and, where possible, names. The
two non-Vectorized dispatch selectors (27 and 28) both point to the same 'nop'
function immediately before ExpansionBusDispatch.