Commit Graph

22 Commits

Author SHA1 Message Date
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
d42472fb9e Identify trap AA7F as _MPDispatch 2017-12-26 09:52:54 +08:00
Elliot Nunn
ba23f80fd4 Fix typos in suggested NK log code 2017-12-26 09:52:54 +08:00
Elliot Nunn
d6259012e0 Make the final ROM link depend on the actual linker
Now the linker (RomLayout) does not need to be built manually.
2017-12-26 09:52:53 +08:00
Elliot Nunn
634961dee4 Consider GoNativeResources worthy of a 'rsrc' type 2017-12-26 09:52:53 +08:00
Elliot Nunn
47d2507b23 Correct the hard-coded DeclData build date
The ROM now round-trips perfectly (cf. Mac OS ROM 9.6.1).
2017-12-26 09:52:53 +08:00
Elliot Nunn
bfdc32871e Add RomLayout, the ROM postlinker 2017-12-26 09:52:53 +08:00
Elliot Nunn
d697a7b029 Update list of resources in ROM 2017-12-26 09:52:53 +08:00
Elliot Nunn
56f7e5c784 Dump new resources in updated ROM 2017-12-26 09:52:53 +08:00
Elliot Nunn
4d4dd13e2b Update declarative ROM resources 2017-12-26 09:52:52 +08:00
Elliot Nunn
2951b5c1b4 Get InSANE (PACKs 4 and 5) building
Only had to add it to the reconstructed Toolbox.make
2017-12-26 09:52:52 +08:00
Elliot Nunn
26978a00fb Update SANE (PACK 7) and get it building
SANE is the Standard Apple Numeric Environment (a float library deprecated in
favour of the native PowerPC float unit). The only change to the PACK 7
resource was in the vicinity of a _StripAddress call. SANE also had to be
added to the reconstructed Toolbox.make file.
2017-12-26 09:52:52 +08:00
Elliot Nunn
0bd74145ca Update the EDisk (RAM Disk) driver 2017-12-26 09:52:52 +08:00
Elliot Nunn
3a7bff43c0 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-12-26 09:52:52 +08:00
Elliot Nunn
269a655a67 Add a script to convert line endings
Git works better with LFs but MPW mostly requires CRs.
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-12-26 09:52:36 +08:00
Elliot Nunn
666baba343 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-12-26 09:52:26 +08:00
Elliot Nunn
1c43f478a3 Build updated MainCode image (matches Mac OS ROM 9.6.1+) 2017-12-26 09:52:25 +08:00
Elliot Nunn
283a0c5ba8 Reimplement the Vectorize tool 2017-12-26 09:52:24 +08:00
Elliot Nunn
4325cdcc78 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-12-26 09:52:23 +08:00