Commit Graph

18 Commits

Author SHA1 Message Date
Elliot Nunn 72f4af9523 Dump pre-built object files 2018-05-31 19:55:03 +08:00
Elliot Nunn a71d9d38d8 Identify most DisplayMgr entry points
This was done to identify why (or indeed whether) the DisplayMgr was
crashing the mini.
2018-01-22 10:40:44 +08:00
Elliot Nunn b6a6ff6192 Identify two Expansion Bus Manager entry points
Based on boot 3 reversal.
2018-01-14 11:56:25 +08:00
Elliot Nunn bbb73bc9b7 Use placeholder files to create BuildResults/
Running the Make/CreateBuildResultsFolders script after a clone, or
after clobbering BuildResults/, was a pain. Now a clean build can be
guaranteed with:

rm -rf BuildResults
git checkout BuildResults
2017-12-26 09:53:21 +08:00
Elliot Nunn 0c319592a9 Build Slot Mgr from source
(Slot Mgr is for compatibility only on PCI Macs.)
2017-12-26 09:53:21 +08:00
Elliot Nunn c087445dd0 Correct names of NK Event Group wrapper code
The names of the NanoKernel MP calls made by this 68k ROM library were
found by inspecting the PowerPC MPLibrary, which makes these and many
other MP calls. The document "Adding Multitasking Capability to
Applications Using Multiprocessing Services" gave some background
information. It also helped to determine the function signatures of the
MP calls and of these ROM wrappers.
2017-12-26 09:53:20 +08:00
Elliot Nunn 9c4547cfdb Reverse the Universal Info table
This was tricky. The table seems to be vestigial, anyway.
2017-12-26 09:53:20 +08:00
Elliot Nunn 4204a9c355 Build MMU.lib from sources
The sources needed no changes (how embarrassing), except to remove an
unnecessary dependence on a nonexistent SoundPrivate.a. Lastly.lib had
an incorrect position for SIDESOUNDBUFFER, which has been fixed.
2017-12-26 09:53:20 +08:00
Elliot Nunn 0e4a082eb4 Remove branch islands
The unlinker's new ISLANDGUESS HIDE' option removes autogenerated BSR.L
from the binary dumps and makes tweaks that will cause them to be
regenerated by the linker. MPW's linker seems to have the correct branch
island placement policy, because round-tripping is preserved. When
building from edited sources, there is a remote possibility that the
arrangement of branch islands inside a dumped file will be changed,
disrupting references within that file.
2017-12-26 09:53:20 +08:00
Elliot Nunn 5a0785d5d8 Correctly reverse Standard and Interface libs
Previously these were lumped in with Lastly. Now they are unlinked and
correctly labelled, and Lastly contains only a small amount of PowerPC-
specific code.
2017-12-26 09:53:19 +08:00
Elliot Nunn d4a7b16d8d Declare between-file branches
The unlink tool now REFGUESSes branches between object files, with some
manual guidance. If you patch the ROM enough to change its function
offsets, it should still work fine.

(One potential exception: if the linker needs to put a new "BSR.L"
island module *within* a pre-built object file, that module file's
internal references *may* be disrupted. This situation is fairly
unlikely, but with improved reversal it will be addressed.)
2017-12-26 09:53:19 +08:00
Elliot Nunn 8dbf307712 Build Data Access Mgr stub from source
Turns out, the source was just a stub for PACK 13
2017-12-26 09:53:19 +08:00
Elliot Nunn 8908c7662c Switch to new unlinker
"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.
2017-12-26 09:53:18 +08:00
Elliot Nunn 9c249dafab Reverse 68k Color QuickDraw
The ROM now round-trips with QuickDraw mostly built from source.
(~30% of the ROM is now built from source.)
2017-12-26 09:52:55 +08:00
Elliot Nunn 6764d35537 Reverse TextEdit 2017-12-26 09:52:54 +08:00
Elliot Nunn 8cc7afaf0d Reverse printing glue 2017-12-26 09:52:54 +08:00
Elliot Nunn 76713a2368 Identify Expansion Bus Manager entry points
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.
2017-12-26 09:52:54 +08:00
Elliot Nunn 1c43f478a3 Build updated MainCode image (matches Mac OS ROM 9.6.1+) 2017-12-26 09:52:25 +08:00