Commit Graph

10 Commits

Author SHA1 Message Date
Elliot Nunn
3921dbd4a3 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-11-27 11:04:23 +08:00
Elliot Nunn
debed6c064 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-10-07 12:30:01 +08:00
Elliot Nunn
2415ed21b7 Make the final ROM link depend on the actual linker
Now the linker (RomLayout) does not need to be built manually.
2017-09-26 00:13:22 +08:00
Elliot Nunn
3e6f715fc8 Consider GoNativeResources worthy of a 'rsrc' type 2017-09-26 00:05:43 +08:00
Elliot Nunn
695baf22a7 Update list of resources in ROM 2017-09-25 23:58:16 +08:00
Elliot Nunn
7deeb23f98 Add RomLink, a bytecode interpreter
The "RomLink" bytecode language can be used to link a tree of binary chunks
into a flat file. The bytecode specifying each binary chunk lives in a
Resource Manager resource. The RomLink's only purpose is to flatten
DeclData.rsrc into a "Slot 0" (motherboard) DeclData, so it seems like
overkill. Nonetheless, DeclData.rsrc is very complicated (and so are its
antecedents, DeclData.r and the include file RomLink).

This implementation is incomplete. It is just enough to build the vestigial
DeclROM that TNT and later machines retain for Open Transport.
2017-09-25 00:25:16 +08:00
Elliot Nunn
d934e7e93c Add a script to convert line endings between Mac (CR) and Unix (LF) formats
ConvertLineEndings acts only on TEXT files, so run SuggestFileTypes first.
Then:

:Make:ConvertLineEndings > "{TempFolder}FixLines" ; "{TempFolder}FixLines"

ConvertLineEndings is both an MPW script and a C program. The script builds
the fast MPW C Tool, and suggests a command that will use the Tool to fix all
the line endings in the repository.
2017-09-23 23:16:09 +08:00
Elliot Nunn
de930505f5 Add scripts to make a git-mangled repo buildable
CreateBuildResultsFolders is necessary because git does not track empty
directories (fair enough) despite the build system requiring their presence.

SuggestFileTypes is necessary because git does not track Finder metadata.

Both scripts are flexible in how they are run and robust -- important in a
newly cloned repo.
2017-09-20 20:10:19 +08:00
Elliot Nunn
9f1fa052dc Build updated MainCode image (matches Mac OS ROM 9.6.1+) 2017-09-20 19:58:54 +08:00
Elliot Nunn
0ba83392d4 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-09-20 18:04:16 +08:00