http://mcosre.sourceforge.net/docs/boot_blocks.html
12/15/2006
D o c u m e n t a t i o nMFS/HFS Boot Blocks |
||
|
||
name | offset/length | |
---|---|---|
Signature Bytes | $00 | 2 |
Branch Code | $02 | 4 |
Boot Block flags | $06 | 1 |
Boot Block version number | $07 | 1 |
Secondary Sound and Video Pages | $08 | 2 |
System name | $0A | pstring, up to $10 bytes |
Finder name | $1A | pstring, up to $10 bytes |
Debugger name | $2A | pstring, up to $10 bytes |
Disassembler name | $3A | pstring, up to $10 bytes |
StartUpScreen name | $4A | pstring, up to $10 bytes |
BootUp name | $5A | pstring, up to $10 bytes |
Clipboard name | $6A | pstring, up to $10 bytes |
MaxFiles | $7A | 2 |
Event Queue size | $7C | 2 |
Heap on 128K Mac | $7E | 4 |
Heap on 256K Mac | $82 | 4 |
Heap on 512K Mac (on all machines) | $86 | 4 |
Boot code | $8A | [var] |
filler | [var] | [var] |
Boot blocks are usually filled with zeros for a non-bootable MFS/HFS disk.
The SigBytes (signature bytes) identify the boot block.
$4C4B signifies that this is a bootable Macintosh system disk.
$0000 means that this is not a Macintosh system disk and thus can not be booted.
Ant other value for the SigBytes means that this is not a valid Mac disk.
$4C4B is ASCII for "LK", for Larry Kenyon who originally designed the Mac's File System.
This is the actual 68000 assembly code to use to begin executing the bootstrap code. This field is ignored if bit 6 is clear in the Boot Block flags field or if the Boot Block version number field contains $D.
BRA $88(PC) * $6000,$0086
This is a flag byte whose bits have the following meanings:
0-4 |
ignored if bit 7 is set, must be set to %00100 for a boot block that conforms to the described format if the boot code in boot blocks is to be executed |
|
5 |
must be clear; set if relative system heap sizing is to be used (relative system heap sizing is unsupported by boot blocks that conforms to the described format) |
|
6 |
set if the boot code in boot blocks is to be executed | |
7 |
set if new boot block header format is used (other than described here) |
This field signifies which version of the boot blocks this disk contains. The version number must be at least 21 ($15) to override the default settings in ROM for the System Heap size.
Secondary Sound and Video Pages
Another feature of the boot blocks is the ability to specify that the secondary sound and video pages be allocated at boot time. This is done before a debugger is loaded, so the debugger will load below the alternate screen. This is useful for debugging software that uses the alternate video page, like page-flipping demos or games.
Change the two bytes starting at location $8 in the boot blocks (usually 0) to a negative number ($FFFF
) to allocate both video and sound buffers. Change the value to a positive number ($0001
) to allocate only the secondary sound buffer.
WARNING: MacsBug may not work properly if you allocate additional pages for sound and video.
This is the name of the System file for this disk. It is usually "System".
This is the name of the program to run when leaving an application. It is usually "Finder".
This is the name of the first debugger installed during the boot process, usually "MacsBug". If this program is in the blessed folder when the startup disk is booted, then this program will be executed whenever the Programmer's Switch Interrupt button is pressed.
This is the name of the second debugger installed during the boot process, usually "Disassembler". This is here primarily for historical purposes, it is rarely used anymore.
This is the name for the disk's startup screen picture, usually "StartUpScreen". If a file with this name is in the blessed folder when the startup disk is booted, and if that file contains a graphic in the proper format for a startup screen, then this picture will be displayed on the screen for a couple of seconds in place of the normal "Welcome to Macintosh" screen.
This is the name of the first program to run after booting the disk. This will usually be "Finder".
This is the name of your Clipboard file, usually "Clipboard" or "Clipboard File". The Clipboard file is the file used to save the contents of the clipboard when switching from one application to another.
This number is one fourth of the maximum number of files that the file system can have open all at one time. These are sometimes called "File Control Blocks" or "FCBs".
Under System 7, this number may increase automatically as needed. The maximum size of an expandable FCB buffer is 32,535 bytes, so there is an absolute limit of 342 FCBs in the FCB buffer.
With Mac OS 9.0, Apple has to change the FCB structure and thus its length in order to increase the maximum number of open files.
See also: More About MaxFiles.
This is the size of the system event queue. It is usually set to 20 which means that if more than 20 events (keystrokes, mouse clicks, screen updates, etc.) happen at the same time, then the oldest ones may get lost.
This is the default size for the System Heap on a Mac with 128K of RAM. It is usually 17152 bytes ($0000 4300 bytes) or 16896 bytes ($0000 4200 bytes).
This is the default size for the System Heap on a Mac with 256K of RAM. It is usually 32768 bytes ($0000 8000 bytes).
Heap on 512K Mac (on all machines)
This is the default size for the System Heap on a Mac with 512K or more of RAM. It is usually 131,072 bytes ($0002 0000 bytes), 65,536 bytes ($0001 0000 bytes) or 49,152 bytes ($0000 C000 bytes). If this value is changed, it will only be recognized if the Boot Block version number is at least 21 ($15).
The Bootstrap code (the program code executed to boot this disk) does usually start 138 ($8A) bytes from the beginning of the boot sector. The Bootstrap code is ignored if bit 6 is clear in the Boot Block flags field or if the Boot Block version number field contains $D.