[CDG5] CubeE status

Elliot Nunn elliotnunn at fastmail.com
Sat Nov 17 22:55:30 AWST 2018


Hi all,

When I last put serious effort into the CubeE tree about a year ago, we
got it to the point where about 30% of the ~600k main code image could
be built from source, with the remainder coming from "unlinked" object
files of variable quality (https://github.com/elliotnunn/unlink). All of
this source was assembly, because I was unable to get more than a
handful of C functions to round-trip with the included MPW C 3.2.1.
While the nitty-gritty of building the tree was fairly doable (git
filters, empw), it was still moderately prone to breakage (type and
creator codes especially) and likely to get much worse in the future
(resource forks being deprecated, GetFile/SetFile/Rez/DeRez going away,
modern-macOS-only). It represented a cool technical achievement, but one
with little room for incremental improvement. (This became apparent when
I tried to produce a Classic ROM branch.)

So without further ado, please welcome the new CubeE source and build
script:

	https://github.com/elliotnunn/CubeE
	https://github.com/elliotnunn/BuildCubeE

I have neatened up both the original source tree (removed gremlins,
converted to LF and Mac Roman) and the changes that I made in the
mac-rom repo. I am currently trying to weave these into a meaningful and
realistic commit history, so expect frequent rebases, and especially for
the "JUNK" commit to change.

Most excitingly, I have found the precise compiler version that Apple
used to build their ROMs: MPW C 3.3.3, the final release, from ETO 14.
With this version I have gotten the ROM Font Manager, weighing in at a
respectable 88 KB and mostly written in C, to round trip perfectly. That
and some other improvements bring the from-source fraction up to 45%,
with plenty of work still to be done.

You already know about the other tooling that I have created to get this
working, but I don't think I mentioned their PyPI pages:

	https://pypi.org/project/machfs/
	https://pypi.org/project/macresources/

Cheers,

Elliot



More information about the cdg5 mailing list