Skip to end of metadata
Go to start of metadata

These are my notes on the System 7 booting process.  Please be familiar with the System 6 Boot Process, as this builds on the same concepts.

After ROM selects boot disk:
boot blocks == System file's 'boot' resource ID 1.

Boot blocks initialize filesystem and try to mount the boot device, locate a blessed folder, find the System file (as defined in the boot block header), checks to see if it has a 'boot' resource ID 2. If yes, jumps into it. If no, returns back to ROM to continue booting? I believe this then executes the data fork of the located System file?

'boot' 2 then looks for 'gbly' resource ID -16385 in System, ROM resource map, and files of type 'gbly' in the System Folder, in that order.The 'gbly' resource contains a 2 byte box flag at offset 6 (I think?). If this matches the current BoxFlag global variable, it can boot the machine.
If nothing is found, it falls to 'boot' resource ID 3, with a flag set to display "system too old"

Eventually, 'boot' 3 should be entered. This is what displays the 'welcome to macintosh' startup screen.
boot3 does a bunch of fixups, checks for mmu type, and if 040 cache inhibit pram setting is set, conditionally patches things depending on boxflag.
Checks if extensions are disabled.
Checks if enough RAM is installed for system7
Loads VM and MacsBug
BootDrive global variable now converts from a drive number to a WDRefNum (volume ref)
Run 'PTCH' resource ID 0
Run 'PTCH' resource ID equal to the ROM version number (offset 8 in ROM)
Does a bunch of work with the 'ptbl' aka patch table resource, then uses the 'lodr' ID -16385
Loads 8*24GC resources 'gc24'
Loads 'scri' resources from extensions folder
Calls an A/UX specific hook for running under A/UX
Loads INITs from extensions folder
If netbooting, run the 'proc' resource ID -16507
The _Launch system trap is called, which really just continues in boot3, but this allows INITs to patch.

Start Process Manager, done.

  • None