Buggy code in the ROM can be overridden with code on disk. While the Mac still requires a disk with a System file to boot, having much of the OS in ROM saves loading it from a slow disk drive and conserves precious RAM.
The first Macintosh shipped with a 64 KB ROM containing much of the high-level Macintosh Toolbox as well as low-level hardware-specific code. Flags are declared in `:Make:FeatureList` and enabled in `:Make:NewWorld.make`. Your file will end up in `:BuildResults:NewWorld:Mac OS ROM`.Īs we develop useful patches to the ROM code, we will conditionalize them using feature flags. Set MPW's current directory to the cdg5 repo, then: The `:Make:Build` script wraps the `:Make:NewWorld.make` makefile. (Hit Command-Return or the numpad Enter key to issue the command.) Clone this repo, set MPW's current directory to your local clone, and run the script `:Tools:FixRepo` from your Worksheet: (Once we understand MPW's PPCAsm better, our annotated NanoKernel disassembly will be merged in.)īecause we deal with generously sized binaries, you should increase MPW's memory allocation to well over 8 MB before you build. Binaries are in `:Prebuilt:LateNewWorld:`, and we prefer to keep them in Rez format so that we can apply compile-time conditionals. This repo currently uses only unlinked binaries in lieu of reversed code, but this will improve very quickly.
It was put on hold for a couple of months while we moved our build system away from a motley collection of Python scripts. Reversing the ROM is an ongoing, open-ended process (and heaps of fun!).
The contents of this repository can be built using the Macintosh Programmer's Workshop (MPW) into a complete "Mac OS ROM" file, which can then be used to boot Mac OS 9.2.2 on any compatible NewWorld Mac. CDG5 is a project aiming to reverse, patch and rebuild the Macintosh NewWorld ROM.